Back to home page

OSCL-LXR

 
 

    


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 = <&reg_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 };