GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / boot / dts / am335x-sbc-t335.dts
1 /*
2  * am335x-sbc-t335.dts - Device Tree file for Compulab SBC-T335
3  *
4  * Copyright (C) 2014 - 2015 CompuLab Ltd. - http://www.compulab.co.il/
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10
11 #include "am335x-cm-t335.dts"
12
13 / {
14         model = "CompuLab CM-T335 on SB-T335";
15         compatible = "compulab,sbc-t335", "compulab,cm-t335", "ti,am33xx";
16
17         /* DRM display driver */
18         panel {
19                 compatible = "ti,tilcdc,panel";
20                 status = "okay";
21                 pinctrl-names = "default", "sleep";
22                 pinctrl-0 = <&lcd_pins_default>;
23                 pinctrl-1 = <&lcd_pins_sleep>;
24
25                 panel-info {
26                         ac-bias           = <255>;
27                         ac-bias-intrpt    = <0>;
28                         dma-burst-sz      = <16>;
29                         bpp               = <32>;
30                         fdd               = <0x80>;
31                         sync-edge         = <0>;
32                         sync-ctrl         = <1>;
33                         raster-order      = <0>;
34                         fifo-th           = <0>;
35                 };
36                 display-timings {
37                         /* Timing selection performed by U-Boot */
38                         timing0: lcd {/* 800x480p62 */
39                                 clock-frequency = <30000000>;
40                                 hactive = <800>;
41                                 vactive = <480>;
42                                 hfront-porch = <39>;
43                                 hback-porch = <39>;
44                                 hsync-len = <47>;
45                                 vback-porch = <29>;
46                                 vfront-porch = <13>;
47                                 vsync-len = <2>;
48                                 hsync-active = <1>;
49                                 vsync-active = <1>;
50                         };
51                         timing1: dvi { /* 1024x768p60 */
52                                 clock-frequency = <65000000>;
53                                 hactive = <1024>;
54                                 hfront-porch = <24>;
55                                 hback-porch = <160>;
56                                 hsync-len = <136>;
57                                 vactive = <768>;
58                                 vfront-porch = <3>;
59                                 vback-porch = <29>;
60                                 vsync-len = <6>;
61                                 hsync-active = <0>;
62                                 vsync-active = <0>;
63                         };
64                 };
65         };
66 };
67
68 &am33xx_pinmux {
69         /* Display */
70         lcd_pins_default: lcd_pins_default {
71                 pinctrl-single,pins = <
72                         /* gpmc_ad8.lcd_data23 */
73                         AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1)
74                         /* gpmc_ad9.lcd_data22 */
75                         AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)
76                         /* gpmc_ad10.lcd_data21 */
77                         AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)
78                         /* gpmc_ad11.lcd_data20 */
79                         AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)
80                         /* gpmc_ad12.lcd_data19 */
81                         AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)
82                         /* gpmc_ad13.lcd_data18 */
83                         AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)
84                         /* gpmc_ad14.lcd_data17 */
85                         AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)
86                         /* gpmc_ad15.lcd_data16 */
87                         AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1)
88                         /* lcd_data0.lcd_data0 */
89                         AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0)
90                         /* lcd_data1.lcd_data1 */
91                         AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)
92                         /* lcd_data2.lcd_data2 */
93                         AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)
94                         /* lcd_data3.lcd_data3 */
95                         AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)
96                         /* lcd_data4.lcd_data4 */
97                         AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)
98                         /* lcd_data5.lcd_data5 */
99                         AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)
100                         /* lcd_data6.lcd_data6 */
101                         AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)
102                         /* lcd_data7.lcd_data7 */
103                         AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)
104                         /* lcd_data8.lcd_data8 */
105                         AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)
106                         /* lcd_data9.lcd_data9 */
107                         AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)
108                         /* lcd_data10.lcd_data10 */
109                         AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)
110                         /* lcd_data11.lcd_data11 */
111                         AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)
112                         /* lcd_data12.lcd_data12 */
113                         AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)
114                         /* lcd_data13.lcd_data13 */
115                         AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)
116                         /* lcd_data14.lcd_data14 */
117                         AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)
118                         /* lcd_data15.lcd_data15 */
119                         AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0)
120                         /* lcd_vsync.lcd_vsync */
121                         AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0)
122                         /* lcd_hsync.lcd_hsync */
123                         AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0)
124                         /* lcd_pclk.lcd_pclk */
125                         AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0)
126                         /* lcd_ac_bias_en.lcd_ac_bias_en */
127                         AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0)
128                 >;
129         };
130
131         lcd_pins_sleep: lcd_pins_sleep {
132                 pinctrl-single,pins = <
133                         /* gpmc_ad8.lcd_data23 */
134                         AM33XX_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7)
135                         /* gpmc_ad9.lcd_data22 */
136                         AM33XX_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7)
137                         /* gpmc_ad10.lcd_data21 */
138                         AM33XX_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7)
139                         /* gpmc_ad11.lcd_data20 */
140                         AM33XX_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7)
141                         /* gpmc_ad12.lcd_data19 */
142                         AM33XX_IOPAD(0x830, PIN_INPUT_PULLDOWN | MUX_MODE7)
143                         /* gpmc_ad13.lcd_data18 */
144                         AM33XX_IOPAD(0x834, PIN_INPUT_PULLDOWN | MUX_MODE7)
145                         /* gpmc_ad14.lcd_data17 */
146                         AM33XX_IOPAD(0x838, PIN_INPUT_PULLDOWN | MUX_MODE7)
147                         /* gpmc_ad15.lcd_data16 */
148                         AM33XX_IOPAD(0x83c, PIN_INPUT_PULLDOWN | MUX_MODE7)
149                         /* lcd_data0.lcd_data0 */
150                         AM33XX_IOPAD(0x8a0, PULL_DISABLE | MUX_MODE7)
151                         /* lcd_data1.lcd_data1 */
152                         AM33XX_IOPAD(0x8a4, PULL_DISABLE | MUX_MODE7)
153                         /* lcd_data2.lcd_data2 */
154                         AM33XX_IOPAD(0x8a8, PULL_DISABLE | MUX_MODE7)
155                         /* lcd_data3.lcd_data3 */
156                         AM33XX_IOPAD(0x8ac, PULL_DISABLE | MUX_MODE7)
157                         /* lcd_data4.lcd_data4 */
158                         AM33XX_IOPAD(0x8b0, PULL_DISABLE | MUX_MODE7)
159                         /* lcd_data5.lcd_data5 */
160                         AM33XX_IOPAD(0x8b4, PULL_DISABLE | MUX_MODE7)
161                         /* lcd_data6.lcd_data6 */
162                         AM33XX_IOPAD(0x8b8, PULL_DISABLE | MUX_MODE7)
163                         /* lcd_data7.lcd_data7 */
164                         AM33XX_IOPAD(0x8bc, PULL_DISABLE | MUX_MODE7)
165                         /* lcd_data8.lcd_data8 */
166                         AM33XX_IOPAD(0x8c0, PULL_DISABLE | MUX_MODE7)
167                         /* lcd_data9.lcd_data9 */
168                         AM33XX_IOPAD(0x8c4, PULL_DISABLE | MUX_MODE7)
169                         /* lcd_data10.lcd_data10 */
170                         AM33XX_IOPAD(0x8c8, PULL_DISABLE | MUX_MODE7)
171                         /* lcd_data11.lcd_data11 */
172                         AM33XX_IOPAD(0x8cc, PULL_DISABLE | MUX_MODE7)
173                         /* lcd_data12.lcd_data12 */
174                         AM33XX_IOPAD(0x8d0, PULL_DISABLE | MUX_MODE7)
175                         /* lcd_data13.lcd_data13 */
176                         AM33XX_IOPAD(0x8d4, PULL_DISABLE | MUX_MODE7)
177                         /* lcd_data14.lcd_data14 */
178                         AM33XX_IOPAD(0x8d8, PULL_DISABLE | MUX_MODE7)
179                         /* lcd_data15.lcd_data15 */
180                         AM33XX_IOPAD(0x8dc, PULL_DISABLE | MUX_MODE7)
181                         /* lcd_vsync.lcd_vsync */
182                         AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7)
183                         /* lcd_hsync.lcd_hsync */
184                         AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7)
185                         /* lcd_pclk.lcd_pclk */
186                         AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7)
187                         /* lcd_ac_bias_en.lcd_ac_bias_en */
188                         AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7)
189                 >;
190         };
191 };
192
193 &i2c0 {
194         /* GPIO extender */
195         gpio_ext: pca9555@26 {
196                 compatible = "nxp,pca9555";
197                 pinctrl-names = "default";
198                 gpio-controller;
199                 #gpio-cells = <2>;
200                 reg = <0x26>;
201                 dvi_ena {
202                         gpio-hog;
203                         gpios = <13 GPIO_ACTIVE_HIGH>;
204                         output-high;
205                         line-name = "dvi-enable";
206                 };
207                 lcd_ena {
208                         gpio-hog;
209                         gpios = <11 GPIO_ACTIVE_HIGH>;
210                         output-high;
211                         line-name = "lcd-enable";
212                 };
213         };
214 };
215
216 /* Display */
217 &lcdc {
218         status = "okay";
219 };