0001 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
0002 /*
0003 * Copyright (c) 2016 Protonic Holland
0004 * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
0005 */
0006
0007 /dts-v1/;
0008 #include "imx6dl.dtsi"
0009 #include "imx6qdl-vicut1.dtsi"
0010
0011 / {
0012 model = "Kverneland TGO";
0013 compatible = "kvg,victgo", "fsl,imx6dl";
0014
0015 gpio-keys {
0016 compatible = "gpio-keys";
0017 pinctrl-names = "default";
0018 pinctrl-0 = <&pinctrl_gpiokeys>;
0019 autorepeat;
0020
0021 power {
0022 label = "Power Button";
0023 gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
0024 linux,code = <KEY_POWER>;
0025 wakeup-source;
0026 };
0027
0028 enter {
0029 label = "Rotary Key";
0030 gpios = <&gpio2 05 GPIO_ACTIVE_LOW>;
0031 linux,code = <KEY_ENTER>;
0032 wakeup-source;
0033 };
0034 };
0035
0036 iio-hwmon {
0037 compatible = "iio-hwmon";
0038 io-channels = <&vdiv_vaccu>, <&vdiv_hitch_pos>;
0039 };
0040
0041 panel {
0042 compatible = "lg,lb070wv8";
0043 backlight = <&backlight_lcd>;
0044 power-supply = <®_3v3>;
0045
0046 port {
0047 panel_in: endpoint {
0048 remote-endpoint = <&lvds0_out>;
0049 };
0050 };
0051 };
0052
0053 clk50m_phy: phy-clock {
0054 compatible = "fixed-clock";
0055 #clock-cells = <0>;
0056 clock-frequency = <50000000>;
0057 };
0058
0059 rotary-encoder {
0060 compatible = "rotary-encoder";
0061 pinctrl-0 = <&pinctrl_rotary_ch>;
0062 gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>,
0063 <&gpio2 4 GPIO_ACTIVE_HIGH>;
0064 linux,axis = <REL_WHEEL>;
0065 rotary-encoder,steps-per-period = <4>;
0066 rotary-encoder,relative-axis;
0067 rotary-encoder,rollover;
0068 wakeup-source;
0069 };
0070
0071 thermal-zones {
0072 chassis-thermal {
0073 polling-delay = <20000>;
0074 polling-delay-passive = <0>;
0075 thermal-sensors = <&tsens0>;
0076 };
0077
0078 touch-thermal0 {
0079 polling-delay = <20000>;
0080 polling-delay-passive = <0>;
0081 thermal-sensors = <&touch_temp0>;
0082 };
0083
0084 touch-thermal1 {
0085 polling-delay = <20000>;
0086 polling-delay-passive = <0>;
0087 thermal-sensors = <&touch_temp1>;
0088 };
0089 };
0090
0091 touchscreen {
0092 compatible = "resistive-adc-touch";
0093 io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
0094 <&adc_ts 5>;
0095 io-channel-names = "y", "z1", "z2", "x";
0096 touchscreen-min-pressure = <64687>;
0097 touchscreen-inverted-y;
0098 touchscreen-x-plate-ohms = <300>;
0099 touchscreen-y-plate-ohms = <800>;
0100 };
0101
0102 touch_temp0: touch-temperature-sensor0 {
0103 compatible = "generic-adc-thermal";
0104 #thermal-sensor-cells = <0>;
0105 io-channels = <&adc_ts 0>;
0106 io-channel-names = "sensor-channel";
0107 temperature-lookup-table = < (-40000) 736
0108 85000 474>;
0109 };
0110
0111 touch_temp1: touch-temperature-sensor1 {
0112 compatible = "generic-adc-thermal";
0113 #thermal-sensor-cells = <0>;
0114 io-channels = <&adc_ts 7>;
0115 io-channel-names = "sensor-channel";
0116 temperature-lookup-table = < (-40000) 826
0117 85000 609>;
0118 };
0119
0120 vdiv_vaccu: voltage-divider-vaccu {
0121 compatible = "voltage-divider";
0122 io-channels = <&adc_ts 2>;
0123 output-ohms = <2500>;
0124 full-ohms = <64000>;
0125 #io-channel-cells = <0>;
0126 };
0127
0128 vdiv_hitch_pos: voltage-divider-hitch-pos {
0129 compatible = "voltage-divider";
0130 io-channels = <&adc_ts 6>;
0131 output-ohms = <3300>;
0132 full-ohms = <13300>;
0133 #io-channel-cells = <0>;
0134 };
0135 };
0136
0137 &ecspi2 {
0138 cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
0139 pinctrl-names = "default";
0140 pinctrl-0 = <&pinctrl_ecspi2>;
0141 status = "okay";
0142
0143 adc_ts: adc@0 {
0144 compatible = "ti,tsc2046e-adc";
0145 reg = <0>;
0146 pinctrl-0 = <&pinctrl_touchscreen>;
0147 pinctrl-names = "default";
0148 spi-max-frequency = <1000000>;
0149 interrupts-extended = <&gpio5 8 IRQ_TYPE_LEVEL_LOW>;
0150 #io-channel-cells = <1>;
0151
0152 #address-cells = <1>;
0153 #size-cells = <0>;
0154
0155 channel@1 {
0156 reg = <1>;
0157 settling-time-us = <700>;
0158 oversampling-ratio = <5>;
0159 };
0160
0161 channel@3 {
0162 reg = <3>;
0163 settling-time-us = <700>;
0164 oversampling-ratio = <5>;
0165 };
0166
0167 channel@4 {
0168 reg = <4>;
0169 settling-time-us = <700>;
0170 oversampling-ratio = <5>;
0171 };
0172
0173 channel@5 {
0174 reg = <5>;
0175 settling-time-us = <700>;
0176 oversampling-ratio = <5>;
0177 };
0178 };
0179 };
0180
0181 &fec {
0182 pinctrl-names = "default";
0183 pinctrl-0 = <&pinctrl_enet>;
0184 phy-mode = "rmii";
0185 clocks = <&clks IMX6QDL_CLK_ENET>,
0186 <&clks IMX6QDL_CLK_ENET>,
0187 <&clk50m_phy>;
0188 clock-names = "ipg", "ahb", "ptp";
0189 phy-handle = <&rmii_phy>;
0190 status = "okay";
0191
0192 mdio {
0193 #address-cells = <1>;
0194 #size-cells = <0>;
0195
0196 /* Microchip KSZ8081RNA PHY */
0197 rmii_phy: ethernet-phy@0 {
0198 reg = <0>;
0199 interrupts-extended = <&gpio4 30 IRQ_TYPE_LEVEL_LOW>;
0200 reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>;
0201 reset-assert-us = <10000>;
0202 reset-deassert-us = <300>;
0203 };
0204 };
0205 };
0206
0207 &gpio1 {
0208 gpio-line-names =
0209 "CAN1_TERM", "SD1_CD", "ITU656_RESET", "CAM1_MIRROR",
0210 "CAM2_MIRROR", "", "", "SMBALERT",
0211 "DEBUG_0", "DEBUG_1", "", "", "", "", "", "",
0212 "SD1_DATA0", "SD1_DATA1", "SD1_CMD", "SD1_DATA2", "SD1_CLK",
0213 "SD1_DATA3", "ETH_MDIO", "",
0214 "", "", "", "", "", "", "", "ETH_MDC";
0215 };
0216
0217 &gpio4 {
0218 gpio-line-names =
0219 "", "", "", "", "", "", "UART4_TXD", "UART4_RXD",
0220 "UART5_TXD", "UART5_RXD", "CAN1_TX", "CAN1_RX", "CAN1_SR",
0221 "CAN2_SR", "CAN2_TX", "CAN2_RX",
0222 "", "", "DIP1_FB", "", "VCAM_EN", "ON1_CTRL", "ON2_CTRL",
0223 "HITCH_IN_OUT",
0224 "LIGHT_ON", "", "ETH_RESET", "CONTACT_IN", "BL_EN",
0225 "BL_PWM", "ETH_INT", "ISB_LED";
0226 };
0227
0228 &gpio5 {
0229 gpio-line-names =
0230 "", "", "", "", "", "", "", "",
0231 "TSC_PENIRQ", "TSC_BUSY", "ECSPI2_MOSI", "ECSPI2_MISO",
0232 "ECSPI2_SS0", "ECSPI2_SCLK", "", "",
0233 "", "", "ITU656_CLK", "I2S_MCLK", "ITU656_PDN", "AUDIO_RESET",
0234 "I2S_BITCLK", "I2S_DOUT",
0235 "I2S_LRCLK", "I2S_DIN", "I2C1_SDA", "I2C1_SCL", "YACO_AUX_RX",
0236 "YACO_AUX_TX", "ITU656_D0", "ITU656_D1";
0237 };
0238
0239 &gpio6 {
0240 gpio-line-names =
0241 "ITU656_D2", "ITU656_D3", "ITU656_D4", "ITU656_D5",
0242 "ITU656_D6", "ITU656_D7", "", "",
0243 "", "", "", "", "", "", "", "",
0244 "", "", "", "", "", "", "", "",
0245 "", "", "", "", "", "", "", "";
0246 };
0247
0248 &i2c1 {
0249 keypad@70 {
0250 compatible = "holtek,ht16k33";
0251 pinctrl-names = "default";
0252 pinctrl-0 = <&pinctrl_keypad>;
0253 reg = <0x70>;
0254 refresh-rate-hz = <20>;
0255 debounce-delay-ms = <50>;
0256 interrupts-extended = <&gpio4 5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
0257 keypad,num-rows = <12>;
0258 keypad,num-columns = <3>;
0259 linux,keymap = <
0260 MATRIX_KEY(2, 0, KEY_F6)
0261 MATRIX_KEY(3, 0, KEY_F8)
0262 MATRIX_KEY(4, 0, KEY_F10)
0263 MATRIX_KEY(5, 0, KEY_F4)
0264 MATRIX_KEY(6, 0, KEY_F2)
0265 MATRIX_KEY(2, 1, KEY_F5)
0266 MATRIX_KEY(3, 1, KEY_F7)
0267 MATRIX_KEY(4, 1, KEY_F9)
0268 MATRIX_KEY(5, 1, KEY_F3)
0269 MATRIX_KEY(6, 1, KEY_F1)
0270 >;
0271 };
0272 };
0273
0274 &iomuxc {
0275 pinctrl_ecspi2: ecspi2grp {
0276 fsl,pins = <
0277 MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x100b1
0278 MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x100b1
0279 MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x100b1
0280 MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x100b1
0281 >;
0282 };
0283
0284 pinctrl_enet: enetgrp {
0285 fsl,pins = <
0286 /* MX6QDL_ENET_PINGRP4 */
0287 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
0288 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
0289 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
0290 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
0291 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0
0292 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
0293 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
0294 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
0295 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
0296 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x1b0b0
0297 /* Phy reset */
0298 MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x1b0b0
0299 /* nINTRP */
0300 MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
0301 >;
0302 };
0303
0304 pinctrl_gpiokeys: gpiokeygrp {
0305 fsl,pins = <
0306 /* ROTARY_BTN */
0307 MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x1b0b0
0308 /* nON_SWITCH */
0309 MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b0
0310 >;
0311 };
0312
0313 pinctrl_keypad: keypadgrp {
0314 fsl,pins = <
0315 MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b0b0
0316 >;
0317 };
0318
0319 pinctrl_rotary_ch: rotarychgrp {
0320 fsl,pins = <
0321 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
0322 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
0323 >;
0324 };
0325
0326 pinctrl_touchscreen: touchscreengrp {
0327 fsl,pins = <
0328 MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08 0x1b0b0
0329 MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x1b0b0
0330 >;
0331 };
0332 };