1// SPDX-License-Identifier: (GPL-2.0-only OR MIT) 2/* 3 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de> 4 */ 5 6/dts-v1/; 7#include "imx53-tx53.dtsi" 8#include <dt-bindings/input/input.h> 9#include <dt-bindings/interrupt-controller/irq.h> 10#include <dt-bindings/pwm/pwm.h> 11 12/ { 13 model = "Ka-Ro electronics TX53 module (LCD)"; 14 compatible = "karo,tx53", "fsl,imx53"; 15 16 aliases { 17 display = &display; 18 }; 19 20 display: disp0 { 21 compatible = "fsl,imx-parallel-display"; 22 interface-pix-fmt = "rgb24"; 23 pinctrl-names = "default"; 24 pinctrl-0 = <&pinctrl_rgb24_vga1>; 25 status = "okay"; 26 27 port { 28 display0_in: endpoint { 29 remote-endpoint = <&ipu_di0_disp0>; 30 }; 31 }; 32 33 display-timings { 34 timing-vga { 35 clock-frequency = <25200000>; 36 hactive = <640>; 37 vactive = <480>; 38 hback-porch = <48>; 39 hsync-len = <96>; 40 hfront-porch = <16>; 41 vback-porch = <31>; 42 vsync-len = <2>; 43 vfront-porch = <12>; 44 hsync-active = <0>; 45 vsync-active = <0>; 46 de-active = <1>; 47 pixelclk-active = <0>; 48 }; 49 50 timing-etc570 { 51 clock-frequency = <25200000>; 52 hactive = <640>; 53 vactive = <480>; 54 hback-porch = <114>; 55 hsync-len = <30>; 56 hfront-porch = <16>; 57 vback-porch = <32>; 58 vsync-len = <3>; 59 vfront-porch = <10>; 60 hsync-active = <0>; 61 vsync-active = <0>; 62 de-active = <1>; 63 pixelclk-active = <0>; 64 }; 65 66 timing-et0350 { 67 clock-frequency = <6413760>; 68 hactive = <320>; 69 vactive = <240>; 70 hback-porch = <34>; 71 hsync-len = <34>; 72 hfront-porch = <20>; 73 vback-porch = <15>; 74 vsync-len = <3>; 75 vfront-porch = <4>; 76 hsync-active = <0>; 77 vsync-active = <0>; 78 de-active = <1>; 79 pixelclk-active = <0>; 80 }; 81 82 timing-et0430 { 83 clock-frequency = <9009000>; 84 hactive = <480>; 85 vactive = <272>; 86 hback-porch = <2>; 87 hsync-len = <41>; 88 hfront-porch = <2>; 89 vback-porch = <2>; 90 vsync-len = <10>; 91 vfront-porch = <2>; 92 hsync-active = <0>; 93 vsync-active = <0>; 94 de-active = <1>; 95 pixelclk-active = <1>; 96 }; 97 98 timing-et0500 { 99 clock-frequency = <33264000>; 100 hactive = <800>; 101 vactive = <480>; 102 hback-porch = <88>; 103 hsync-len = <128>; 104 hfront-porch = <40>; 105 vback-porch = <33>; 106 vsync-len = <2>; 107 vfront-porch = <10>; 108 hsync-active = <0>; 109 vsync-active = <0>; 110 de-active = <1>; 111 pixelclk-active = <0>; 112 }; 113 114 timing-et0700 { /* same as ET0500 */ 115 clock-frequency = <33264000>; 116 hactive = <800>; 117 vactive = <480>; 118 hback-porch = <88>; 119 hsync-len = <128>; 120 hfront-porch = <40>; 121 vback-porch = <33>; 122 vsync-len = <2>; 123 vfront-porch = <10>; 124 hsync-active = <0>; 125 vsync-active = <0>; 126 de-active = <1>; 127 pixelclk-active = <0>; 128 }; 129 130 timing-etq570 { 131 clock-frequency = <6596040>; 132 hactive = <320>; 133 vactive = <240>; 134 hback-porch = <38>; 135 hsync-len = <30>; 136 hfront-porch = <30>; 137 vback-porch = <16>; 138 vsync-len = <3>; 139 vfront-porch = <4>; 140 hsync-active = <0>; 141 vsync-active = <0>; 142 de-active = <1>; 143 pixelclk-active = <0>; 144 }; 145 }; 146 }; 147 148 backlight: backlight { 149 compatible = "pwm-backlight"; 150 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>; 151 power-supply = <®_3v3>; 152 brightness-levels = < 153 0 1 2 3 4 5 6 7 8 9 154 10 11 12 13 14 15 16 17 18 19 155 20 21 22 23 24 25 26 27 28 29 156 30 31 32 33 34 35 36 37 38 39 157 40 41 42 43 44 45 46 47 48 49 158 50 51 52 53 54 55 56 57 58 59 159 60 61 62 63 64 65 66 67 68 69 160 70 71 72 73 74 75 76 77 78 79 161 80 81 82 83 84 85 86 87 88 89 162 90 91 92 93 94 95 96 97 98 99 163 100 164 >; 165 default-brightness-level = <50>; 166 }; 167 168 reg_lcd_pwr: regulator-lcd-pwr { 169 compatible = "regulator-fixed"; 170 regulator-name = "LCD POWER"; 171 regulator-min-microvolt = <3300000>; 172 regulator-max-microvolt = <3300000>; 173 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; 174 enable-active-high; 175 regulator-boot-on; 176 }; 177 178 reg_lcd_reset: regulator-lcd-reset { 179 compatible = "regulator-fixed"; 180 regulator-name = "LCD RESET"; 181 regulator-min-microvolt = <3300000>; 182 regulator-max-microvolt = <3300000>; 183 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>; 184 enable-active-high; 185 regulator-boot-on; 186 }; 187}; 188 189&i2c3 { 190 pinctrl-names = "default"; 191 pinctrl-0 = <&pinctrl_i2c3>; 192 status = "okay"; 193 194 sgtl5000: codec@a { 195 compatible = "fsl,sgtl5000"; 196 reg = <0x0a>; 197 #sound-dai-cells = <0>; 198 VDDA-supply = <®_2v5>; 199 VDDIO-supply = <®_3v3>; 200 clocks = <&mclk>; 201 }; 202 203 polytouch: edt-ft5x06@38 { 204 compatible = "edt,edt-ft5x06"; 205 reg = <0x38>; 206 pinctrl-names = "default"; 207 pinctrl-0 = <&pinctrl_edt_ft5x06_1>; 208 interrupt-parent = <&gpio6>; 209 interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 210 reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; 211 wake-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; 212 wakeup-source; 213 }; 214 215 touchscreen: tsc2007@48 { 216 compatible = "ti,tsc2007"; 217 reg = <0x48>; 218 pinctrl-names = "default"; 219 pinctrl-0 = <&pinctrl_tsc2007>; 220 interrupt-parent = <&gpio3>; 221 interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 222 gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; 223 ti,x-plate-ohms = <660>; 224 wakeup-source; 225 }; 226}; 227 228&iomuxc { 229 pinctrl_edt_ft5x06_1: edt-ft5x06-1-grp { 230 fsl,pins = < 231 MX53_PAD_NANDF_CS2__GPIO6_15 0x1f0 /* Interrupt */ 232 MX53_PAD_EIM_A16__GPIO2_22 0x04 /* Reset */ 233 MX53_PAD_EIM_A17__GPIO2_21 0x04 /* Wake */ 234 >; 235 }; 236 237 pinctrl_kpp: kppgrp { 238 fsl,pins = < 239 MX53_PAD_GPIO_9__KPP_COL_6 0x1f4 240 MX53_PAD_GPIO_4__KPP_COL_7 0x1f4 241 MX53_PAD_KEY_COL2__KPP_COL_2 0x1f4 242 MX53_PAD_KEY_COL3__KPP_COL_3 0x1f4 243 MX53_PAD_GPIO_2__KPP_ROW_6 0x1f4 244 MX53_PAD_GPIO_5__KPP_ROW_7 0x1f4 245 MX53_PAD_KEY_ROW2__KPP_ROW_2 0x1f4 246 MX53_PAD_KEY_ROW3__KPP_ROW_3 0x1f4 247 >; 248 }; 249 250 pinctrl_rgb24_vga1: rgb24-vga1grp { 251 fsl,pins = < 252 MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK 0x5 253 MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 0x5 254 MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 0x5 255 MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 0x5 256 MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 0x5 257 MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1 0x5 258 MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2 0x5 259 MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3 0x5 260 MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4 0x5 261 MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5 0x5 262 MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6 0x5 263 MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7 0x5 264 MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8 0x5 265 MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9 0x5 266 MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 0x5 267 MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 0x5 268 MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 0x5 269 MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 0x5 270 MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 0x5 271 MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 0x5 272 MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 0x5 273 MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 0x5 274 MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 0x5 275 MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 0x5 276 MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 0x5 277 MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 0x5 278 MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 0x5 279 MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 0x5 280 >; 281 }; 282 283 pinctrl_tsc2007: tsc2007grp { 284 fsl,pins = < 285 MX53_PAD_EIM_D26__GPIO3_26 0x1f0 /* Interrupt */ 286 >; 287 }; 288}; 289 290&ipu_di0_disp0 { 291 remote-endpoint = <&display0_in>; 292}; 293 294&kpp { 295 pinctrl-names = "default"; 296 pinctrl-0 = <&pinctrl_kpp>; 297 /* sample keymap */ 298 /* row/col 0,1 are mapped to KPP row/col 6,7 */ 299 linux,keymap = < 300 MATRIX_KEY(6, 6, KEY_POWER) 301 MATRIX_KEY(6, 7, KEY_KP0) 302 MATRIX_KEY(6, 2, KEY_KP1) 303 MATRIX_KEY(6, 3, KEY_KP2) 304 MATRIX_KEY(7, 6, KEY_KP3) 305 MATRIX_KEY(7, 7, KEY_KP4) 306 MATRIX_KEY(7, 2, KEY_KP5) 307 MATRIX_KEY(7, 3, KEY_KP6) 308 MATRIX_KEY(2, 6, KEY_KP7) 309 MATRIX_KEY(2, 7, KEY_KP8) 310 MATRIX_KEY(2, 2, KEY_KP9) 311 >; 312 status = "okay"; 313}; 314