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>;
33 compatible = "arm,impd1-vco1";
38 clock-output-names = "IM-PD1-VCO1";
42 compatible = "arm,impd1-vco2";
47 clock-output-names = "IM-PD1-VCO2";
51 /* Also used for the Smart Card Interface SCI */
52 impd1_uartclk: clock@1_4 {
53 compatible = "fixed-factor-clock";
58 clock-output-names = "VCO2_DIV4";
61 /* For the SSP the clock is divided by 64 */
62 impd1_sspclk: clock@1_64 {
63 compatible = "fixed-factor-clock";
68 clock-output-names = "VCO2_DIV64";
71 /* Fixed regulator for the MMC */
72 impd1_3v3: regulator {
73 compatible = "regulator-fixed";
74 regulator-name = "3V3";
75 regulator-min-microvolt = <3300000>;
76 regulator-max-microvolt = <3300000>;
80 /* Push buttons on the IM-PD1 */
82 compatible = "gpio-keys";
87 debounce-interval = <50>;
88 linux,code = <KEY_UP>;
90 gpios = <&impd1_gpio1 0 GPIO_ACTIVE_HIGH>;
93 debounce-interval = <50>;
94 linux,code = <KEY_DOWN>;
96 gpios = <&impd1_gpio1 1 GPIO_ACTIVE_HIGH>;
99 debounce-interval = <50>;
100 linux,code = <KEY_LEFT>;
102 gpios = <&impd1_gpio1 2 GPIO_ACTIVE_HIGH>;
105 debounce-interval = <50>;
106 linux,code = <KEY_RIGHT>;
108 gpios = <&impd1_gpio1 3 GPIO_ACTIVE_HIGH>;
111 debounce-interval = <50>;
112 linux,code = <KEY_ESC>;
114 gpios = <&impd1_gpio1 4 GPIO_ACTIVE_HIGH>;
117 debounce-interval = <50>;
118 linux,code = <KEY_ENTER>;
120 gpios = <&impd1_gpio1 5 GPIO_ACTIVE_HIGH>;
126 compatible = "ti,ths8134b", "ti,ths8134";
127 #address-cells = <1>;
131 #address-cells = <1>;
135 vga_bridge_in: endpoint {
136 remote-endpoint = <&clcd_pads_vga_dac>;
143 vga_bridge_out: endpoint {
144 remote-endpoint = <&vga_con_in>;
151 compatible = "vga-connector";
154 vga_con_in: endpoint {
155 remote-endpoint = <&vga_bridge_out>;
161 compatible = "arm,pl011", "arm,primecell";
162 reg = <0x00100000 0x1000>;
163 interrupts-extended = <&impd1_vic 1>;
164 clocks = <&impd1_uartclk>, <&sysclk>;
165 clock-names = "uartclk", "apb_pclk";
169 compatible = "arm,pl011", "arm,primecell";
170 reg = <0x00200000 0x1000>;
171 interrupts-extended = <&impd1_vic 2>;
172 clocks = <&impd1_uartclk>, <&sysclk>;
173 clock-names = "uartclk", "apb_pclk";
177 compatible = "arm,pl022", "arm,primecell";
178 reg = <0x00300000 0x1000>;
179 interrupts-extended = <&impd1_vic 3>;
180 clocks = <&impd1_sspclk>, <&sysclk>;
181 clock-names = "spiclk", "apb_pclk";
184 impd1_gpio0: gpio@400000 {
185 compatible = "arm,pl061", "arm,primecell";
186 reg = <0x00400000 0x1000>;
189 interrupt-controller;
190 #interrupt-cells = <2>;
191 interrupts-extended = <&impd1_vic 4>;
193 clock-names = "apb_pclk";
196 impd1_gpio1: gpio@500000 {
197 compatible = "arm,pl061", "arm,primecell";
198 reg = <0x00500000 0x1000>;
201 interrupt-controller;
202 #interrupt-cells = <2>;
203 interrupts-extended = <&impd1_vic 5>;
205 clock-names = "apb_pclk";
209 compatible = "arm,pl030", "arm,primecell";
210 reg = <0x00600000 0x1000>;
211 interrupts-extended = <&impd1_vic 6>;
213 clock-names = "apb_pclk";
217 compatible = "arm,pl181", "arm,primecell";
218 reg = <0x00700000 0x1000>;
219 interrupts-extended = <&impd1_vic 7>,
221 clocks = <&sysclk>, <&sysclk>;
222 clock-names = "mclk", "apb_pclk";
224 max-frequency = <515633>;
225 vmmc-supply = <&impd1_3v3>;
226 wp-gpios = <&impd1_gpio0 3 GPIO_ACTIVE_HIGH>;
227 cd-gpios = <&impd1_gpio0 4 GPIO_ACTIVE_LOW>;
231 compatible = "arm,pl041", "arm,primecell";
232 reg = <0x00800000 0x1000>;
233 interrupts-extended = <&impd1_vic 9>;
235 clock-names = "apb_pclk";
239 compatible = "arm,pl110", "arm,primecell";
240 reg = <0x01000000 0x1000>;
241 interrupts-extended = <&impd1_vic 11>;
242 clocks = <&vco1>, <&sysclk>;
243 clock-names = "clcdclk", "apb_pclk";
244 /* 640x480 16bpp @ 25.175MHz is 36827428 bytes/s */
245 max-memory-bandwidth = <40000000>;
246 memory-region = <&impd1_ram>;
249 #address-cells = <1>;
252 clcd_pads_vga_dac: endpoint@0 {
254 remote-endpoint = <&vga_bridge_in>;
255 arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
260 impd1_vic: interrupt-controller@3000000 {
261 compatible = "arm,pl192-vic";
262 interrupt-controller;
263 #interrupt-cells = <1>;
264 reg = <0x03000000 0x1000>;
265 /* Valid interrupts, 0-9 and 11 */
266 valid-mask = <0x00000bff>;
267 /* LM site 0 has IRQ 9 on the PIC */
268 interrupts-extended = <&pic 9>;