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