1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Copyright (c) 2016 Protonic Holland 4*724ba675SRob Herring * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix 5*724ba675SRob Herring */ 6*724ba675SRob Herring 7*724ba675SRob Herring/dts-v1/; 8*724ba675SRob Herring#include "imx6dl.dtsi" 9*724ba675SRob Herring#include "imx6qdl-vicut1.dtsi" 10*724ba675SRob Herring 11*724ba675SRob Herring/ { 12*724ba675SRob Herring model = "Kverneland TGO"; 13*724ba675SRob Herring compatible = "kvg,victgo", "fsl,imx6dl"; 14*724ba675SRob Herring 15*724ba675SRob Herring gpio-keys { 16*724ba675SRob Herring compatible = "gpio-keys"; 17*724ba675SRob Herring pinctrl-names = "default"; 18*724ba675SRob Herring pinctrl-0 = <&pinctrl_gpiokeys>; 19*724ba675SRob Herring autorepeat; 20*724ba675SRob Herring 21*724ba675SRob Herring key-power { 22*724ba675SRob Herring label = "Power Button"; 23*724ba675SRob Herring gpios = <&gpio2 23 GPIO_ACTIVE_LOW>; 24*724ba675SRob Herring linux,code = <KEY_POWER>; 25*724ba675SRob Herring wakeup-source; 26*724ba675SRob Herring }; 27*724ba675SRob Herring 28*724ba675SRob Herring key-enter { 29*724ba675SRob Herring label = "Rotary Key"; 30*724ba675SRob Herring gpios = <&gpio2 05 GPIO_ACTIVE_LOW>; 31*724ba675SRob Herring linux,code = <KEY_ENTER>; 32*724ba675SRob Herring wakeup-source; 33*724ba675SRob Herring }; 34*724ba675SRob Herring }; 35*724ba675SRob Herring 36*724ba675SRob Herring iio-hwmon { 37*724ba675SRob Herring compatible = "iio-hwmon"; 38*724ba675SRob Herring io-channels = <&vdiv_vaccu>, <&vdiv_hitch_pos>; 39*724ba675SRob Herring }; 40*724ba675SRob Herring 41*724ba675SRob Herring panel { 42*724ba675SRob Herring compatible = "lg,lb070wv8"; 43*724ba675SRob Herring backlight = <&backlight_lcd>; 44*724ba675SRob Herring power-supply = <®_3v3>; 45*724ba675SRob Herring 46*724ba675SRob Herring port { 47*724ba675SRob Herring panel_in: endpoint { 48*724ba675SRob Herring remote-endpoint = <&lvds0_out>; 49*724ba675SRob Herring }; 50*724ba675SRob Herring }; 51*724ba675SRob Herring }; 52*724ba675SRob Herring 53*724ba675SRob Herring clk50m_phy: phy-clock { 54*724ba675SRob Herring compatible = "fixed-clock"; 55*724ba675SRob Herring #clock-cells = <0>; 56*724ba675SRob Herring clock-frequency = <50000000>; 57*724ba675SRob Herring clock-output-names = "enet_ref_pad"; 58*724ba675SRob Herring }; 59*724ba675SRob Herring 60*724ba675SRob Herring rotary-encoder { 61*724ba675SRob Herring compatible = "rotary-encoder"; 62*724ba675SRob Herring pinctrl-0 = <&pinctrl_rotary_ch>; 63*724ba675SRob Herring gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>, 64*724ba675SRob Herring <&gpio2 4 GPIO_ACTIVE_HIGH>; 65*724ba675SRob Herring linux,axis = <REL_WHEEL>; 66*724ba675SRob Herring rotary-encoder,steps-per-period = <4>; 67*724ba675SRob Herring rotary-encoder,relative-axis; 68*724ba675SRob Herring rotary-encoder,rollover; 69*724ba675SRob Herring wakeup-source; 70*724ba675SRob Herring }; 71*724ba675SRob Herring 72*724ba675SRob Herring thermal-zones { 73*724ba675SRob Herring chassis-thermal { 74*724ba675SRob Herring polling-delay = <20000>; 75*724ba675SRob Herring polling-delay-passive = <0>; 76*724ba675SRob Herring thermal-sensors = <&tsens0>; 77*724ba675SRob Herring 78*724ba675SRob Herring trips { 79*724ba675SRob Herring alert { 80*724ba675SRob Herring temperature = <105000>; /* millicelsius */ 81*724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 82*724ba675SRob Herring type = "passive"; 83*724ba675SRob Herring }; 84*724ba675SRob Herring }; 85*724ba675SRob Herring }; 86*724ba675SRob Herring 87*724ba675SRob Herring touch-thermal0 { 88*724ba675SRob Herring polling-delay = <20000>; 89*724ba675SRob Herring polling-delay-passive = <0>; 90*724ba675SRob Herring thermal-sensors = <&touch_temp0>; 91*724ba675SRob Herring 92*724ba675SRob Herring trips { 93*724ba675SRob Herring alert { 94*724ba675SRob Herring temperature = <105000>; /* millicelsius */ 95*724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 96*724ba675SRob Herring type = "passive"; 97*724ba675SRob Herring }; 98*724ba675SRob Herring }; 99*724ba675SRob Herring }; 100*724ba675SRob Herring 101*724ba675SRob Herring touch-thermal1 { 102*724ba675SRob Herring polling-delay = <20000>; 103*724ba675SRob Herring polling-delay-passive = <0>; 104*724ba675SRob Herring thermal-sensors = <&touch_temp1>; 105*724ba675SRob Herring 106*724ba675SRob Herring trips { 107*724ba675SRob Herring alert { 108*724ba675SRob Herring temperature = <105000>; /* millicelsius */ 109*724ba675SRob Herring hysteresis = <2000>; /* millicelsius */ 110*724ba675SRob Herring type = "passive"; 111*724ba675SRob Herring }; 112*724ba675SRob Herring }; 113*724ba675SRob Herring }; 114*724ba675SRob Herring }; 115*724ba675SRob Herring 116*724ba675SRob Herring touchscreen { 117*724ba675SRob Herring compatible = "resistive-adc-touch"; 118*724ba675SRob Herring io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>, 119*724ba675SRob Herring <&adc_ts 5>; 120*724ba675SRob Herring io-channel-names = "y", "z1", "z2", "x"; 121*724ba675SRob Herring touchscreen-min-pressure = <64687>; 122*724ba675SRob Herring touchscreen-inverted-y; 123*724ba675SRob Herring touchscreen-x-plate-ohms = <300>; 124*724ba675SRob Herring touchscreen-y-plate-ohms = <800>; 125*724ba675SRob Herring }; 126*724ba675SRob Herring 127*724ba675SRob Herring touch_temp0: touch-temperature-sensor0 { 128*724ba675SRob Herring compatible = "generic-adc-thermal"; 129*724ba675SRob Herring #thermal-sensor-cells = <0>; 130*724ba675SRob Herring io-channels = <&adc_ts 0>; 131*724ba675SRob Herring io-channel-names = "sensor-channel"; 132*724ba675SRob Herring temperature-lookup-table = < (-40000) 736 133*724ba675SRob Herring 85000 474>; 134*724ba675SRob Herring }; 135*724ba675SRob Herring 136*724ba675SRob Herring touch_temp1: touch-temperature-sensor1 { 137*724ba675SRob Herring compatible = "generic-adc-thermal"; 138*724ba675SRob Herring #thermal-sensor-cells = <0>; 139*724ba675SRob Herring io-channels = <&adc_ts 7>; 140*724ba675SRob Herring io-channel-names = "sensor-channel"; 141*724ba675SRob Herring temperature-lookup-table = < (-40000) 826 142*724ba675SRob Herring 85000 609>; 143*724ba675SRob Herring }; 144*724ba675SRob Herring 145*724ba675SRob Herring vdiv_vaccu: voltage-divider-vaccu { 146*724ba675SRob Herring compatible = "voltage-divider"; 147*724ba675SRob Herring io-channels = <&adc_ts 2>; 148*724ba675SRob Herring output-ohms = <2500>; 149*724ba675SRob Herring full-ohms = <64000>; 150*724ba675SRob Herring #io-channel-cells = <0>; 151*724ba675SRob Herring }; 152*724ba675SRob Herring 153*724ba675SRob Herring vdiv_hitch_pos: voltage-divider-hitch-pos { 154*724ba675SRob Herring compatible = "voltage-divider"; 155*724ba675SRob Herring io-channels = <&adc_ts 6>; 156*724ba675SRob Herring output-ohms = <3300>; 157*724ba675SRob Herring full-ohms = <13300>; 158*724ba675SRob Herring #io-channel-cells = <0>; 159*724ba675SRob Herring }; 160*724ba675SRob Herring}; 161*724ba675SRob Herring 162*724ba675SRob Herring&clks { 163*724ba675SRob Herring clocks = <&clk50m_phy>; 164*724ba675SRob Herring clock-names = "enet_ref_pad"; 165*724ba675SRob Herring assigned-clocks = <&clks IMX6QDL_CLK_ENET_REF_SEL>; 166*724ba675SRob Herring assigned-clock-parents = <&clk50m_phy>; 167*724ba675SRob Herring}; 168*724ba675SRob Herring 169*724ba675SRob Herring&ecspi2 { 170*724ba675SRob Herring cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; 171*724ba675SRob Herring pinctrl-names = "default"; 172*724ba675SRob Herring pinctrl-0 = <&pinctrl_ecspi2>; 173*724ba675SRob Herring status = "okay"; 174*724ba675SRob Herring 175*724ba675SRob Herring adc_ts: adc@0 { 176*724ba675SRob Herring compatible = "ti,tsc2046e-adc"; 177*724ba675SRob Herring reg = <0>; 178*724ba675SRob Herring pinctrl-0 = <&pinctrl_touchscreen>; 179*724ba675SRob Herring pinctrl-names = "default"; 180*724ba675SRob Herring spi-max-frequency = <1000000>; 181*724ba675SRob Herring interrupts-extended = <&gpio5 8 IRQ_TYPE_LEVEL_LOW>; 182*724ba675SRob Herring #io-channel-cells = <1>; 183*724ba675SRob Herring 184*724ba675SRob Herring #address-cells = <1>; 185*724ba675SRob Herring #size-cells = <0>; 186*724ba675SRob Herring 187*724ba675SRob Herring channel@1 { 188*724ba675SRob Herring reg = <1>; 189*724ba675SRob Herring settling-time-us = <700>; 190*724ba675SRob Herring oversampling-ratio = <5>; 191*724ba675SRob Herring }; 192*724ba675SRob Herring 193*724ba675SRob Herring channel@3 { 194*724ba675SRob Herring reg = <3>; 195*724ba675SRob Herring settling-time-us = <700>; 196*724ba675SRob Herring oversampling-ratio = <5>; 197*724ba675SRob Herring }; 198*724ba675SRob Herring 199*724ba675SRob Herring channel@4 { 200*724ba675SRob Herring reg = <4>; 201*724ba675SRob Herring settling-time-us = <700>; 202*724ba675SRob Herring oversampling-ratio = <5>; 203*724ba675SRob Herring }; 204*724ba675SRob Herring 205*724ba675SRob Herring channel@5 { 206*724ba675SRob Herring reg = <5>; 207*724ba675SRob Herring settling-time-us = <700>; 208*724ba675SRob Herring oversampling-ratio = <5>; 209*724ba675SRob Herring }; 210*724ba675SRob Herring }; 211*724ba675SRob Herring}; 212*724ba675SRob Herring 213*724ba675SRob Herring&fec { 214*724ba675SRob Herring pinctrl-names = "default"; 215*724ba675SRob Herring pinctrl-0 = <&pinctrl_enet>; 216*724ba675SRob Herring phy-mode = "rmii"; 217*724ba675SRob Herring phy-handle = <&rmii_phy>; 218*724ba675SRob Herring status = "okay"; 219*724ba675SRob Herring 220*724ba675SRob Herring mdio { 221*724ba675SRob Herring #address-cells = <1>; 222*724ba675SRob Herring #size-cells = <0>; 223*724ba675SRob Herring 224*724ba675SRob Herring /* Microchip KSZ8081RNA PHY */ 225*724ba675SRob Herring rmii_phy: ethernet-phy@0 { 226*724ba675SRob Herring reg = <0>; 227*724ba675SRob Herring interrupts-extended = <&gpio4 30 IRQ_TYPE_LEVEL_LOW>; 228*724ba675SRob Herring reset-gpios = <&gpio4 26 GPIO_ACTIVE_LOW>; 229*724ba675SRob Herring reset-assert-us = <10000>; 230*724ba675SRob Herring reset-deassert-us = <300>; 231*724ba675SRob Herring }; 232*724ba675SRob Herring }; 233*724ba675SRob Herring}; 234*724ba675SRob Herring 235*724ba675SRob Herring&gpio1 { 236*724ba675SRob Herring gpio-line-names = 237*724ba675SRob Herring "CAN1_TERM", "SD1_CD", "ITU656_RESET", "CAM1_MIRROR", 238*724ba675SRob Herring "CAM2_MIRROR", "", "", "SMBALERT", 239*724ba675SRob Herring "DEBUG_0", "DEBUG_1", "", "", "", "", "", "", 240*724ba675SRob Herring "SD1_DATA0", "SD1_DATA1", "SD1_CMD", "SD1_DATA2", "SD1_CLK", 241*724ba675SRob Herring "SD1_DATA3", "ETH_MDIO", "", 242*724ba675SRob Herring "", "", "", "", "", "", "", "ETH_MDC"; 243*724ba675SRob Herring}; 244*724ba675SRob Herring 245*724ba675SRob Herring&gpio4 { 246*724ba675SRob Herring gpio-line-names = 247*724ba675SRob Herring "", "", "", "", "", "", "UART4_TXD", "UART4_RXD", 248*724ba675SRob Herring "UART5_TXD", "UART5_RXD", "CAN1_TX", "CAN1_RX", "CAN1_SR", 249*724ba675SRob Herring "CAN2_SR", "CAN2_TX", "CAN2_RX", 250*724ba675SRob Herring "", "", "DIP1_FB", "", "VCAM_EN", "ON1_CTRL", "ON2_CTRL", 251*724ba675SRob Herring "HITCH_IN_OUT", 252*724ba675SRob Herring "LIGHT_ON", "", "ETH_RESET", "CONTACT_IN", "BL_EN", 253*724ba675SRob Herring "BL_PWM", "ETH_INT", "ISB_LED"; 254*724ba675SRob Herring}; 255*724ba675SRob Herring 256*724ba675SRob Herring&gpio5 { 257*724ba675SRob Herring gpio-line-names = 258*724ba675SRob Herring "", "", "", "", "", "", "", "", 259*724ba675SRob Herring "TSC_PENIRQ", "TSC_BUSY", "ECSPI2_MOSI", "ECSPI2_MISO", 260*724ba675SRob Herring "ECSPI2_SS0", "ECSPI2_SCLK", "", "", 261*724ba675SRob Herring "", "", "ITU656_CLK", "I2S_MCLK", "ITU656_PDN", "AUDIO_RESET", 262*724ba675SRob Herring "I2S_BITCLK", "I2S_DOUT", 263*724ba675SRob Herring "I2S_LRCLK", "I2S_DIN", "I2C1_SDA", "I2C1_SCL", "YACO_AUX_RX", 264*724ba675SRob Herring "YACO_AUX_TX", "ITU656_D0", "ITU656_D1"; 265*724ba675SRob Herring}; 266*724ba675SRob Herring 267*724ba675SRob Herring&gpio6 { 268*724ba675SRob Herring gpio-line-names = 269*724ba675SRob Herring "ITU656_D2", "ITU656_D3", "ITU656_D4", "ITU656_D5", 270*724ba675SRob Herring "ITU656_D6", "ITU656_D7", "", "", 271*724ba675SRob Herring "", "", "", "", "", "", "", "", 272*724ba675SRob Herring "", "", "", "", "", "", "", "", 273*724ba675SRob Herring "", "", "", "", "", "", "", ""; 274*724ba675SRob Herring}; 275*724ba675SRob Herring 276*724ba675SRob Herring&i2c1 { 277*724ba675SRob Herring keypad@70 { 278*724ba675SRob Herring compatible = "holtek,ht16k33"; 279*724ba675SRob Herring pinctrl-names = "default"; 280*724ba675SRob Herring pinctrl-0 = <&pinctrl_keypad>; 281*724ba675SRob Herring reg = <0x70>; 282*724ba675SRob Herring refresh-rate-hz = <20>; 283*724ba675SRob Herring debounce-delay-ms = <50>; 284*724ba675SRob Herring interrupts-extended = <&gpio4 5 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>; 285*724ba675SRob Herring keypad,num-rows = <12>; 286*724ba675SRob Herring keypad,num-columns = <3>; 287*724ba675SRob Herring linux,keymap = < 288*724ba675SRob Herring MATRIX_KEY(2, 0, KEY_F6) 289*724ba675SRob Herring MATRIX_KEY(3, 0, KEY_F8) 290*724ba675SRob Herring MATRIX_KEY(4, 0, KEY_F10) 291*724ba675SRob Herring MATRIX_KEY(5, 0, KEY_F4) 292*724ba675SRob Herring MATRIX_KEY(6, 0, KEY_F2) 293*724ba675SRob Herring MATRIX_KEY(2, 1, KEY_F5) 294*724ba675SRob Herring MATRIX_KEY(3, 1, KEY_F7) 295*724ba675SRob Herring MATRIX_KEY(4, 1, KEY_F9) 296*724ba675SRob Herring MATRIX_KEY(5, 1, KEY_F3) 297*724ba675SRob Herring MATRIX_KEY(6, 1, KEY_F1) 298*724ba675SRob Herring >; 299*724ba675SRob Herring }; 300*724ba675SRob Herring}; 301*724ba675SRob Herring 302*724ba675SRob Herring&iomuxc { 303*724ba675SRob Herring pinctrl_ecspi2: ecspi2grp { 304*724ba675SRob Herring fsl,pins = < 305*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI 0x100b1 306*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT17__ECSPI2_MISO 0x100b1 307*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12 0x100b1 308*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT19__ECSPI2_SCLK 0x100b1 309*724ba675SRob Herring >; 310*724ba675SRob Herring }; 311*724ba675SRob Herring 312*724ba675SRob Herring pinctrl_enet: enetgrp { 313*724ba675SRob Herring fsl,pins = < 314*724ba675SRob Herring /* MX6QDL_ENET_PINGRP4 */ 315*724ba675SRob Herring MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 316*724ba675SRob Herring MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 317*724ba675SRob Herring MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0 318*724ba675SRob Herring MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0 319*724ba675SRob Herring MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0 320*724ba675SRob Herring MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0 321*724ba675SRob Herring MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0 322*724ba675SRob Herring MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0 323*724ba675SRob Herring MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0 324*724ba675SRob Herring MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x1b0b0 325*724ba675SRob Herring /* Phy reset */ 326*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT5__GPIO4_IO26 0x1b0b0 327*724ba675SRob Herring /* nINTRP */ 328*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0 329*724ba675SRob Herring >; 330*724ba675SRob Herring }; 331*724ba675SRob Herring 332*724ba675SRob Herring pinctrl_gpiokeys: gpiokeygrp { 333*724ba675SRob Herring fsl,pins = < 334*724ba675SRob Herring /* ROTARY_BTN */ 335*724ba675SRob Herring MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x1b0b0 336*724ba675SRob Herring /* nON_SWITCH */ 337*724ba675SRob Herring MX6QDL_PAD_EIM_CS0__GPIO2_IO23 0x1b0b0 338*724ba675SRob Herring >; 339*724ba675SRob Herring }; 340*724ba675SRob Herring 341*724ba675SRob Herring pinctrl_keypad: keypadgrp { 342*724ba675SRob Herring fsl,pins = < 343*724ba675SRob Herring MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x1b0b0 344*724ba675SRob Herring >; 345*724ba675SRob Herring }; 346*724ba675SRob Herring 347*724ba675SRob Herring pinctrl_rotary_ch: rotarychgrp { 348*724ba675SRob Herring fsl,pins = < 349*724ba675SRob Herring MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0 350*724ba675SRob Herring MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0 351*724ba675SRob Herring >; 352*724ba675SRob Herring }; 353*724ba675SRob Herring 354*724ba675SRob Herring pinctrl_touchscreen: touchscreengrp { 355*724ba675SRob Herring fsl,pins = < 356*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT14__GPIO5_IO08 0x1b0b0 357*724ba675SRob Herring MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09 0x1b0b0 358*724ba675SRob Herring >; 359*724ba675SRob Herring }; 360*724ba675SRob Herring}; 361