1/* 2 * Copyright 2013-2017 Lothar Waßmann <LW@KARO-electronics.de> 3 * 4 * This file is dual-licensed: you can use it either under the terms 5 * of the GPL or the X11 license, at your option. Note that this dual 6 * licensing only applies to this file, and not this project as a 7 * whole. 8 * 9 * a) This file is free software; you can redistribute it and/or 10 * modify it under the terms of the GNU General Public License 11 * version 2 as published by the Free Software Foundation. 12 * 13 * This file is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * Or, alternatively, 19 * 20 * b) Permission is hereby granted, free of charge, to any person 21 * obtaining a copy of this software and associated documentation 22 * files (the "Software"), to deal in the Software without 23 * restriction, including without limitation the rights to use, 24 * copy, modify, merge, publish, distribute, sublicense, and/or 25 * sell copies of the Software, and to permit persons to whom the 26 * Software is furnished to do so, subject to the following 27 * conditions: 28 * 29 * The above copyright notice and this permission notice shall be 30 * included in all copies or substantial portions of the Software. 31 * 32 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * OTHER DEALINGS IN THE SOFTWARE. 40 */ 41 42/dts-v1/; 43#include "imx53-tx53.dtsi" 44#include <dt-bindings/input/input.h> 45#include <dt-bindings/interrupt-controller/irq.h> 46#include <dt-bindings/pwm/pwm.h> 47 48/ { 49 model = "Ka-Ro electronics TX53 module (LCD)"; 50 compatible = "karo,tx53", "fsl,imx53"; 51 52 aliases { 53 display = &display; 54 }; 55 56 display: disp0 { 57 compatible = "fsl,imx-parallel-display"; 58 interface-pix-fmt = "rgb24"; 59 pinctrl-names = "default"; 60 pinctrl-0 = <&pinctrl_rgb24_vga1>; 61 status = "okay"; 62 63 port { 64 display0_in: endpoint { 65 remote-endpoint = <&ipu_di0_disp0>; 66 }; 67 }; 68 69 display-timings { 70 timing-vga { 71 clock-frequency = <25200000>; 72 hactive = <640>; 73 vactive = <480>; 74 hback-porch = <48>; 75 hsync-len = <96>; 76 hfront-porch = <16>; 77 vback-porch = <31>; 78 vsync-len = <2>; 79 vfront-porch = <12>; 80 hsync-active = <0>; 81 vsync-active = <0>; 82 de-active = <1>; 83 pixelclk-active = <0>; 84 }; 85 86 timing-etc570 { 87 clock-frequency = <25200000>; 88 hactive = <640>; 89 vactive = <480>; 90 hback-porch = <114>; 91 hsync-len = <30>; 92 hfront-porch = <16>; 93 vback-porch = <32>; 94 vsync-len = <3>; 95 vfront-porch = <10>; 96 hsync-active = <0>; 97 vsync-active = <0>; 98 de-active = <1>; 99 pixelclk-active = <0>; 100 }; 101 102 timing-et0350 { 103 clock-frequency = <6413760>; 104 hactive = <320>; 105 vactive = <240>; 106 hback-porch = <34>; 107 hsync-len = <34>; 108 hfront-porch = <20>; 109 vback-porch = <15>; 110 vsync-len = <3>; 111 vfront-porch = <4>; 112 hsync-active = <0>; 113 vsync-active = <0>; 114 de-active = <1>; 115 pixelclk-active = <0>; 116 }; 117 118 timing-et0430 { 119 clock-frequency = <9009000>; 120 hactive = <480>; 121 vactive = <272>; 122 hback-porch = <2>; 123 hsync-len = <41>; 124 hfront-porch = <2>; 125 vback-porch = <2>; 126 vsync-len = <10>; 127 vfront-porch = <2>; 128 hsync-active = <0>; 129 vsync-active = <0>; 130 de-active = <1>; 131 pixelclk-active = <1>; 132 }; 133 134 timing-et0500 { 135 clock-frequency = <33264000>; 136 hactive = <800>; 137 vactive = <480>; 138 hback-porch = <88>; 139 hsync-len = <128>; 140 hfront-porch = <40>; 141 vback-porch = <33>; 142 vsync-len = <2>; 143 vfront-porch = <10>; 144 hsync-active = <0>; 145 vsync-active = <0>; 146 de-active = <1>; 147 pixelclk-active = <0>; 148 }; 149 150 timing-et0700 { /* same as ET0500 */ 151 clock-frequency = <33264000>; 152 hactive = <800>; 153 vactive = <480>; 154 hback-porch = <88>; 155 hsync-len = <128>; 156 hfront-porch = <40>; 157 vback-porch = <33>; 158 vsync-len = <2>; 159 vfront-porch = <10>; 160 hsync-active = <0>; 161 vsync-active = <0>; 162 de-active = <1>; 163 pixelclk-active = <0>; 164 }; 165 166 timing-etq570 { 167 clock-frequency = <6596040>; 168 hactive = <320>; 169 vactive = <240>; 170 hback-porch = <38>; 171 hsync-len = <30>; 172 hfront-porch = <30>; 173 vback-porch = <16>; 174 vsync-len = <3>; 175 vfront-porch = <4>; 176 hsync-active = <0>; 177 vsync-active = <0>; 178 de-active = <1>; 179 pixelclk-active = <0>; 180 }; 181 }; 182 }; 183 184 backlight: backlight { 185 compatible = "pwm-backlight"; 186 pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>; 187 power-supply = <®_3v3>; 188 brightness-levels = < 189 0 1 2 3 4 5 6 7 8 9 190 10 11 12 13 14 15 16 17 18 19 191 20 21 22 23 24 25 26 27 28 29 192 30 31 32 33 34 35 36 37 38 39 193 40 41 42 43 44 45 46 47 48 49 194 50 51 52 53 54 55 56 57 58 59 195 60 61 62 63 64 65 66 67 68 69 196 70 71 72 73 74 75 76 77 78 79 197 80 81 82 83 84 85 86 87 88 89 198 90 91 92 93 94 95 96 97 98 99 199 100 200 >; 201 default-brightness-level = <50>; 202 }; 203 204 reg_lcd_pwr: regulator-lcd-pwr { 205 compatible = "regulator-fixed"; 206 regulator-name = "LCD POWER"; 207 regulator-min-microvolt = <3300000>; 208 regulator-max-microvolt = <3300000>; 209 gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>; 210 enable-active-high; 211 regulator-boot-on; 212 }; 213 214 reg_lcd_reset: regulator-lcd-reset { 215 compatible = "regulator-fixed"; 216 regulator-name = "LCD RESET"; 217 regulator-min-microvolt = <3300000>; 218 regulator-max-microvolt = <3300000>; 219 gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>; 220 enable-active-high; 221 regulator-boot-on; 222 }; 223}; 224 225&i2c3 { 226 pinctrl-names = "default"; 227 pinctrl-0 = <&pinctrl_i2c3>; 228 status = "okay"; 229 230 sgtl5000: codec@a { 231 compatible = "fsl,sgtl5000"; 232 reg = <0x0a>; 233 #sound-dai-cells = <0>; 234 VDDA-supply = <®_2v5>; 235 VDDIO-supply = <®_3v3>; 236 clocks = <&mclk>; 237 }; 238 239 polytouch: edt-ft5x06@38 { 240 compatible = "edt,edt-ft5x06"; 241 reg = <0x38>; 242 pinctrl-names = "default"; 243 pinctrl-0 = <&pinctrl_edt_ft5x06_1>; 244 interrupt-parent = <&gpio6>; 245 interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 246 reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; 247 wake-gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; 248 wakeup-source; 249 }; 250 251 touchscreen: tsc2007@48 { 252 compatible = "ti,tsc2007"; 253 reg = <0x48>; 254 pinctrl-names = "default"; 255 pinctrl-0 = <&pinctrl_tsc2007>; 256 interrupt-parent = <&gpio3>; 257 interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 258 gpios = <&gpio3 26 GPIO_ACTIVE_LOW>; 259 ti,x-plate-ohms = <660>; 260 wakeup-source; 261 }; 262}; 263 264&iomuxc { 265 pinctrl_edt_ft5x06_1: edt-ft5x06-1-grp { 266 fsl,pins = < 267 MX53_PAD_NANDF_CS2__GPIO6_15 0x1f0 /* Interrupt */ 268 MX53_PAD_EIM_A16__GPIO2_22 0x04 /* Reset */ 269 MX53_PAD_EIM_A17__GPIO2_21 0x04 /* Wake */ 270 >; 271 }; 272 273 pinctrl_kpp: kppgrp { 274 fsl,pins = < 275 MX53_PAD_GPIO_9__KPP_COL_6 0x1f4 276 MX53_PAD_GPIO_4__KPP_COL_7 0x1f4 277 MX53_PAD_KEY_COL2__KPP_COL_2 0x1f4 278 MX53_PAD_KEY_COL3__KPP_COL_3 0x1f4 279 MX53_PAD_GPIO_2__KPP_ROW_6 0x1f4 280 MX53_PAD_GPIO_5__KPP_ROW_7 0x1f4 281 MX53_PAD_KEY_ROW2__KPP_ROW_2 0x1f4 282 MX53_PAD_KEY_ROW3__KPP_ROW_3 0x1f4 283 >; 284 }; 285 286 pinctrl_rgb24_vga1: rgb24-vga1grp { 287 fsl,pins = < 288 MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK 0x5 289 MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 0x5 290 MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 0x5 291 MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 0x5 292 MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 0x5 293 MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1 0x5 294 MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2 0x5 295 MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3 0x5 296 MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4 0x5 297 MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5 0x5 298 MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6 0x5 299 MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7 0x5 300 MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8 0x5 301 MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9 0x5 302 MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 0x5 303 MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 0x5 304 MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 0x5 305 MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 0x5 306 MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 0x5 307 MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 0x5 308 MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 0x5 309 MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 0x5 310 MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 0x5 311 MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 0x5 312 MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 0x5 313 MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 0x5 314 MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 0x5 315 MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 0x5 316 >; 317 }; 318 319 pinctrl_tsc2007: tsc2007grp { 320 fsl,pins = < 321 MX53_PAD_EIM_D26__GPIO3_26 0x1f0 /* Interrupt */ 322 >; 323 }; 324}; 325 326&ipu_di0_disp0 { 327 remote-endpoint = <&display0_in>; 328}; 329 330&kpp { 331 pinctrl-names = "default"; 332 pinctrl-0 = <&pinctrl_kpp>; 333 /* sample keymap */ 334 /* row/col 0,1 are mapped to KPP row/col 6,7 */ 335 linux,keymap = < 336 MATRIX_KEY(6, 6, KEY_POWER) 337 MATRIX_KEY(6, 7, KEY_KP0) 338 MATRIX_KEY(6, 2, KEY_KP1) 339 MATRIX_KEY(6, 3, KEY_KP2) 340 MATRIX_KEY(7, 6, KEY_KP3) 341 MATRIX_KEY(7, 7, KEY_KP4) 342 MATRIX_KEY(7, 2, KEY_KP5) 343 MATRIX_KEY(7, 3, KEY_KP6) 344 MATRIX_KEY(2, 6, KEY_KP7) 345 MATRIX_KEY(2, 7, KEY_KP8) 346 MATRIX_KEY(2, 2, KEY_KP9) 347 >; 348 status = "okay"; 349}; 350