Newer
Older
barebox / arch / arm / dts / imx6dl-victgo.dts
@Oleksij Rempel Oleksij Rempel on 18 Jun 2020 3 KB ARM: dts: imx6: add Protonic boards
// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (c) 2016 Protonic Holland
 */

/dts-v1/;
#include <arm/imx6dl.dtsi>
#include "imx6qdl-vicut1.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "Kverneland Tellus GO";
	compatible = "kvg,victgo", "fsl,imx6dl";

	memory {
		reg = <0x10000000 0x20000000>;
	};

	rotary-encoder {
		compatible = "rotary-encoder";
		pinctrl-0 = <&pinctrl_rotary_ch>;
		gpios = <&gpio2 3 0>, <&gpio2 4 0>;
		linux,axis = <8>; /* REL_WHEEL */
		rotary-encoder,steps-per-period = <4>;
		rotary-encoder,relative-axis;
		rotary-encoder,rollover;
		wakeup-source;
	};

	rotary-button {
		compatible = "gpio-keys";
		pinctrl-0 = <&pinctrl_rotary_btn>;
		#address-cells = <1>;
		#size-cells = <0>;
		autorepeat;
		button@0 {
			label = "Rotary Key";
			gpios = <&gpio2 05 1>;
			linux,code = <KEY_ENTER>;
			gpio-key,wakeup;
		};
	};
};

&fec {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet>;
	phy-mode = "rmii";
	phy-reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
	clocks = <&clks IMX6QDL_CLK_ENET>,
		 <&clks IMX6QDL_CLK_ENET>;
	clock-names = "ipg", "ahb";
	status = "okay";
};

&uart2 {
	status = "disabled";
};

&i2c1 {
	ht16k33: ht16k33@70 {
		compatible = "holtek,ht16k33";
		pinctrl-0 = <&pinctrl_ht16k33>;
		reg = <0x70>;
		refresh-rate-hz = <20>;
		debounce-delay-ms = <50>;
		interrupt-parent = <&gpio4>;
		interrupts = <5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
		keypad,num-rows = <12>;
		keypad,num-columns = <3>;
		linux,keymap = <
			MATRIX_KEY(2, 0, KEY_F6)
			MATRIX_KEY(3, 0, KEY_F8)
			MATRIX_KEY(4, 0, KEY_F10)
			MATRIX_KEY(5, 0, KEY_F4)
			MATRIX_KEY(6, 0, KEY_F2)
			MATRIX_KEY(2, 1, KEY_F5)
			MATRIX_KEY(3, 1, KEY_F7)
			MATRIX_KEY(4, 1, KEY_F9)
			MATRIX_KEY(5, 1, KEY_F3)
			MATRIX_KEY(6, 1, KEY_F1)
			>;
	};
};

&pwm2 {
	status = "disabled";
};

&iomuxc {
	pinctrl_enet: enetgrp {
		fsl,pins = <
			/* MX6QDL_ENET_PINGRP4 */
			MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
			MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
			MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0     0x1b0b0
			MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1     0x1b0b0
			MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER       0x1b0b0
			MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN       0x1b0b0
			MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0     0x1b0b0
			MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1     0x1b0b0
			MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN      0x1b0b0
			MX6QDL_PAD_GPIO_16__ENET_REF_CLK   	0x1b0b0
			/* Phy reset */
			MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26   	0x1b0b0
			/* nINTRP */
			MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30   	0x1b0b0
		>;
	};

	pinctrl_ecspi2: ecspi2grp {
		fsl,pins = <
			MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI	0x100b1
			MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO	0x100b1
			MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12	0x100b1
			MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK	0x100b1
		>;
	};

	pinctrl_rotary_ch: rotarygrp {
		fsl,pins = <
			MX6QDL_PAD_NANDF_D3__GPIO2_IO03	0x1b0b0 /* ROTARY_A */
			MX6QDL_PAD_NANDF_D4__GPIO2_IO04	0x1b0b0	/* ROTARY_B */
		>;
	};

	pinctrl_rotary_btn: rotarygrp {
		fsl,pins = <
			MX6QDL_PAD_NANDF_D5__GPIO2_IO05	0x1b0b0	/* ROTARY_BTN */
		>;
	};

	pinctrl_ht16k33: ht16k33grp {
		fsl,pins = <
			MX6QDL_PAD_GPIO_19__GPIO4_IO05	0x1b0b0 /* IRQ */
		>;
	};

	pinctrl_tsc2046e: tsc2046egrp {
		fsl,pins = <
			MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08      0x1b0b0
			MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09      0x1b0b0
		>;
	};
};