1 // SPDX-License-Identifier: GPL-2.0
3 * Device Tree for the ARM Integrator/AP platform
4 * with the IM-PD1 example logical module mounted.
7 #include "integratorap.dts"
10 model = "ARM Integrator/AP with IM-PD1";
11 compatible = "arm,integrator-ap";
18 impd1_ram: vram@c2000000 {
19 /* 1 MB of designated video RAM on the IM-PD1 */
20 compatible = "shared-dma-pool";
21 reg = <0xc2000000 0x00100000>;
29 compatible = "arm,im-pd1-syscon", "syscon";
30 reg = <0x00000000 0x1000>;
35 vco1: clock-controller@0 {
36 compatible = "arm,impd1-vco1";
42 clock-output-names = "IM-PD1-VCO1";
45 vco2: clock-controller@4 {
46 compatible = "arm,impd1-vco2";
52 clock-output-names = "IM-PD1-VCO2";
56 /* Also used for the Smart Card Interface SCI */
57 impd1_uartclk: clock@1_4 {
58 compatible = "fixed-factor-clock";
63 clock-output-names = "VCO2_DIV4";
66 /* For the SSP the clock is divided by 64 */
67 impd1_sspclk: clock@1_64 {
68 compatible = "fixed-factor-clock";
73 clock-output-names = "VCO2_DIV64";
76 /* Fixed regulator for the MMC */
77 impd1_3v3: regulator {
78 compatible = "regulator-fixed";
79 regulator-name = "3V3";
80 regulator-min-microvolt = <3300000>;
81 regulator-max-microvolt = <3300000>;
85 /* Push buttons on the IM-PD1 */
87 compatible = "gpio-keys";
92 debounce-interval = <50>;
93 linux,code = <KEY_UP>;
95 gpios = <&impd1_gpio1 0 GPIO_ACTIVE_HIGH>;
98 debounce-interval = <50>;
99 linux,code = <KEY_DOWN>;
101 gpios = <&impd1_gpio1 1 GPIO_ACTIVE_HIGH>;
104 debounce-interval = <50>;
105 linux,code = <KEY_LEFT>;
107 gpios = <&impd1_gpio1 2 GPIO_ACTIVE_HIGH>;
110 debounce-interval = <50>;
111 linux,code = <KEY_RIGHT>;
113 gpios = <&impd1_gpio1 3 GPIO_ACTIVE_HIGH>;
116 debounce-interval = <50>;
117 linux,code = <KEY_ESC>;
119 gpios = <&impd1_gpio1 4 GPIO_ACTIVE_HIGH>;
122 debounce-interval = <50>;
123 linux,code = <KEY_ENTER>;
125 gpios = <&impd1_gpio1 5 GPIO_ACTIVE_HIGH>;
131 compatible = "ti,ths8134b", "ti,ths8134";
132 #address-cells = <1>;
136 #address-cells = <1>;
140 vga_bridge_in: endpoint {
141 remote-endpoint = <&clcd_pads_vga_dac>;
148 vga_bridge_out: endpoint {
149 remote-endpoint = <&vga_con_in>;
156 compatible = "vga-connector";
159 vga_con_in: endpoint {
160 remote-endpoint = <&vga_bridge_out>;
166 compatible = "arm,pl011", "arm,primecell";
167 reg = <0x00100000 0x1000>;
168 interrupts-extended = <&impd1_vic 1>;
169 clocks = <&impd1_uartclk>, <&sysclk>;
170 clock-names = "uartclk", "apb_pclk";
174 compatible = "arm,pl011", "arm,primecell";
175 reg = <0x00200000 0x1000>;
176 interrupts-extended = <&impd1_vic 2>;
177 clocks = <&impd1_uartclk>, <&sysclk>;
178 clock-names = "uartclk", "apb_pclk";
182 compatible = "arm,pl022", "arm,primecell";
183 reg = <0x00300000 0x1000>;
184 interrupts-extended = <&impd1_vic 3>;
185 clocks = <&impd1_sspclk>, <&sysclk>;
186 clock-names = "sspclk", "apb_pclk";
189 impd1_gpio0: gpio@400000 {
190 compatible = "arm,pl061", "arm,primecell";
191 reg = <0x00400000 0x1000>;
194 interrupt-controller;
195 #interrupt-cells = <2>;
196 interrupts-extended = <&impd1_vic 4>;
198 clock-names = "apb_pclk";
201 impd1_gpio1: gpio@500000 {
202 compatible = "arm,pl061", "arm,primecell";
203 reg = <0x00500000 0x1000>;
206 interrupt-controller;
207 #interrupt-cells = <2>;
208 interrupts-extended = <&impd1_vic 5>;
210 clock-names = "apb_pclk";
214 compatible = "arm,pl030", "arm,primecell";
215 reg = <0x00600000 0x1000>;
216 interrupts-extended = <&impd1_vic 6>;
218 clock-names = "apb_pclk";
222 compatible = "arm,pl181", "arm,primecell";
223 reg = <0x00700000 0x1000>;
224 interrupts-extended = <&impd1_vic 7>,
226 clocks = <&sysclk>, <&sysclk>;
227 clock-names = "mclk", "apb_pclk";
229 max-frequency = <515633>;
230 vmmc-supply = <&impd1_3v3>;
231 wp-gpios = <&impd1_gpio0 3 GPIO_ACTIVE_HIGH>;
232 cd-gpios = <&impd1_gpio0 4 GPIO_ACTIVE_LOW>;
236 compatible = "arm,pl041", "arm,primecell";
237 reg = <0x00800000 0x1000>;
238 interrupts-extended = <&impd1_vic 9>;
240 clock-names = "apb_pclk";
244 compatible = "arm,pl110", "arm,primecell";
245 reg = <0x01000000 0x1000>;
246 interrupts-extended = <&impd1_vic 11>;
247 clocks = <&vco1>, <&sysclk>;
248 clock-names = "clcdclk", "apb_pclk";
249 /* 640x480 16bpp @ 25.175MHz is 36827428 bytes/s */
250 max-memory-bandwidth = <40000000>;
251 memory-region = <&impd1_ram>;
255 #address-cells = <1>;
258 clcd_pads_vga_dac: endpoint@0 {
260 remote-endpoint = <&vga_bridge_in>;
261 arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
266 impd1_vic: interrupt-controller@3000000 {
267 compatible = "arm,pl192-vic";
268 interrupt-controller;
269 #interrupt-cells = <1>;
270 reg = <0x03000000 0x1000>;
271 /* Valid interrupts, 0-9 and 11 */
272 valid-mask = <0x00000bff>;
273 /* LM site 0 has IRQ 9 on the PIC */
274 interrupts-extended = <&pic 9>;