diff options
-rw-r--r-- | arch/arm/boot/dts/at91sam9g20.dtsi | 119 | ||||
-rw-r--r-- | arch/arm/boot/dts/usb_a9g20.dts | 30 | ||||
-rw-r--r-- | arch/arm/mach-at91/Makefile.boot | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9260.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-at91/board-dt.c | 1 |
5 files changed, 159 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/at91sam9g20.dtsi b/arch/arm/boot/dts/at91sam9g20.dtsi new file mode 100644 index 000000000000..aeef04269cf8 --- /dev/null +++ b/arch/arm/boot/dts/at91sam9g20.dtsi | |||
@@ -0,0 +1,119 @@ | |||
1 | /* | ||
2 | * at91sam9g20.dtsi - Device Tree Include file for AT91SAM9G20 family SoC | ||
3 | * | ||
4 | * Copyright (C) 2011 Atmel, | ||
5 | * 2011 Nicolas Ferre <nicolas.ferre@atmel.com>, | ||
6 | * 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | ||
7 | * | ||
8 | * Licensed under GPLv2 or later. | ||
9 | */ | ||
10 | |||
11 | /include/ "skeleton.dtsi" | ||
12 | |||
13 | / { | ||
14 | model = "Atmel AT91SAM9G20 family SoC"; | ||
15 | compatible = "atmel,at91sam9g20"; | ||
16 | interrupt-parent = <&aic>; | ||
17 | |||
18 | aliases { | ||
19 | serial0 = &dbgu; | ||
20 | serial1 = &usart0; | ||
21 | serial2 = &usart1; | ||
22 | serial3 = &usart2; | ||
23 | serial4 = &usart3; | ||
24 | serial5 = &usart4; | ||
25 | serial6 = &usart5; | ||
26 | }; | ||
27 | cpus { | ||
28 | cpu@0 { | ||
29 | compatible = "arm,arm926ejs"; | ||
30 | }; | ||
31 | }; | ||
32 | |||
33 | memory@20000000 { | ||
34 | reg = <0x20000000 0x08000000>; | ||
35 | }; | ||
36 | |||
37 | ahb { | ||
38 | compatible = "simple-bus"; | ||
39 | #address-cells = <1>; | ||
40 | #size-cells = <1>; | ||
41 | ranges; | ||
42 | |||
43 | apb { | ||
44 | compatible = "simple-bus"; | ||
45 | #address-cells = <1>; | ||
46 | #size-cells = <1>; | ||
47 | ranges; | ||
48 | |||
49 | aic: interrupt-controller@fffff000 { | ||
50 | #interrupt-cells = <1>; | ||
51 | compatible = "atmel,at91rm9200-aic"; | ||
52 | interrupt-controller; | ||
53 | interrupt-parent; | ||
54 | reg = <0xfffff000 0x200>; | ||
55 | }; | ||
56 | |||
57 | dbgu: serial@fffff200 { | ||
58 | compatible = "atmel,at91sam9260-usart"; | ||
59 | reg = <0xfffff200 0x200>; | ||
60 | interrupts = <1>; | ||
61 | status = "disabled"; | ||
62 | }; | ||
63 | |||
64 | usart0: serial@fffb0000 { | ||
65 | compatible = "atmel,at91sam9260-usart"; | ||
66 | reg = <0xfffb0000 0x200>; | ||
67 | interrupts = <6>; | ||
68 | atmel,use-dma-rx; | ||
69 | atmel,use-dma-tx; | ||
70 | status = "disabled"; | ||
71 | }; | ||
72 | |||
73 | usart1: serial@fffb4000 { | ||
74 | compatible = "atmel,at91sam9260-usart"; | ||
75 | reg = <0xfffb4000 0x200>; | ||
76 | interrupts = <7>; | ||
77 | atmel,use-dma-rx; | ||
78 | atmel,use-dma-tx; | ||
79 | status = "disabled"; | ||
80 | }; | ||
81 | |||
82 | usart2: serial@fffb8000 { | ||
83 | compatible = "atmel,at91sam9260-usart"; | ||
84 | reg = <0xfffb8000 0x200>; | ||
85 | interrupts = <8>; | ||
86 | atmel,use-dma-rx; | ||
87 | atmel,use-dma-tx; | ||
88 | status = "disabled"; | ||
89 | }; | ||
90 | |||
91 | usart3: serial@fffd0000 { | ||
92 | compatible = "atmel,at91sam9260-usart"; | ||
93 | reg = <0xfffd0000 0x200>; | ||
94 | interrupts = <23>; | ||
95 | atmel,use-dma-rx; | ||
96 | atmel,use-dma-tx; | ||
97 | status = "disabled"; | ||
98 | }; | ||
99 | |||
100 | usart4: serial@fffd4000 { | ||
101 | compatible = "atmel,at91sam9260-usart"; | ||
102 | reg = <0xfffd4000 0x200>; | ||
103 | interrupts = <24>; | ||
104 | atmel,use-dma-rx; | ||
105 | atmel,use-dma-tx; | ||
106 | status = "disabled"; | ||
107 | }; | ||
108 | |||
109 | usart5: serial@fffd8000 { | ||
110 | compatible = "atmel,at91sam9260-usart"; | ||
111 | reg = <0xfffd8000 0x200>; | ||
112 | interrupts = <25>; | ||
113 | atmel,use-dma-rx; | ||
114 | atmel,use-dma-tx; | ||
115 | status = "disabled"; | ||
116 | }; | ||
117 | }; | ||
118 | }; | ||
119 | }; | ||
diff --git a/arch/arm/boot/dts/usb_a9g20.dts b/arch/arm/boot/dts/usb_a9g20.dts new file mode 100644 index 000000000000..d66e2c00ac35 --- /dev/null +++ b/arch/arm/boot/dts/usb_a9g20.dts | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * usb_a9g20.dts - Device Tree file for Caloa USB A9G20 board | ||
3 | * | ||
4 | * Copyright (C) 2011 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | ||
5 | * | ||
6 | * Licensed under GPLv2 or later. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | /include/ "at91sam9g20.dtsi" | ||
10 | |||
11 | / { | ||
12 | model = "Calao USB A9G20"; | ||
13 | compatible = "calao,usb-a9g20", "atmel,at91sam9g20", "atmel,at91sam9"; | ||
14 | |||
15 | chosen { | ||
16 | bootargs = "mem=64M console=ttyS0,115200 mtdparts=atmel_nand:128k(at91bootstrap),256k(barebox)ro,128k(bareboxenv),128k(bareboxenv2),4M(kernel),120M(rootfs),-(data) root=/dev/mtdblock5 rw rootfstype=ubifs"; | ||
17 | }; | ||
18 | |||
19 | memory@20000000 { | ||
20 | reg = <0x20000000 0x4000000>; | ||
21 | }; | ||
22 | |||
23 | ahb { | ||
24 | apb { | ||
25 | dbgu: serial@fffff200 { | ||
26 | status = "okay"; | ||
27 | }; | ||
28 | }; | ||
29 | }; | ||
30 | }; | ||
diff --git a/arch/arm/mach-at91/Makefile.boot b/arch/arm/mach-at91/Makefile.boot index d2788636805c..08c665affde4 100644 --- a/arch/arm/mach-at91/Makefile.boot +++ b/arch/arm/mach-at91/Makefile.boot | |||
@@ -17,4 +17,4 @@ params_phys-y := 0x20000100 | |||
17 | initrd_phys-y := 0x20410000 | 17 | initrd_phys-y := 0x20410000 |
18 | endif | 18 | endif |
19 | 19 | ||
20 | dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9m10g45ek.dtb | 20 | dtb-$(CONFIG_MACH_AT91SAM_DT) += at91sam9m10g45ek.dtb usb_a9g20.dtb |
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c index cb397be14448..f4518b49cb82 100644 --- a/arch/arm/mach-at91/at91sam9260.c +++ b/arch/arm/mach-at91/at91sam9260.c | |||
@@ -199,6 +199,14 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
199 | CLKDEV_CON_DEV_ID("t4_clk", "atmel_tcb.1", &tc4_clk), | 199 | CLKDEV_CON_DEV_ID("t4_clk", "atmel_tcb.1", &tc4_clk), |
200 | CLKDEV_CON_DEV_ID("t5_clk", "atmel_tcb.1", &tc5_clk), | 200 | CLKDEV_CON_DEV_ID("t5_clk", "atmel_tcb.1", &tc5_clk), |
201 | CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk), | 201 | CLKDEV_CON_DEV_ID("pclk", "ssc.0", &ssc_clk), |
202 | /* more usart lookup table for DT entries */ | ||
203 | CLKDEV_CON_DEV_ID("usart", "fffff200.serial", &mck), | ||
204 | CLKDEV_CON_DEV_ID("usart", "fffb0000.serial", &usart0_clk), | ||
205 | CLKDEV_CON_DEV_ID("usart", "fffb4000.serial", &usart1_clk), | ||
206 | CLKDEV_CON_DEV_ID("usart", "fffb8000.serial", &usart2_clk), | ||
207 | CLKDEV_CON_DEV_ID("usart", "fffd0000.serial", &usart3_clk), | ||
208 | CLKDEV_CON_DEV_ID("usart", "fffd4000.serial", &usart4_clk), | ||
209 | CLKDEV_CON_DEV_ID("usart", "fffd8000.serial", &usart5_clk), | ||
202 | }; | 210 | }; |
203 | 211 | ||
204 | static struct clk_lookup usart_clocks_lookups[] = { | 212 | static struct clk_lookup usart_clocks_lookups[] = { |
diff --git a/arch/arm/mach-at91/board-dt.c b/arch/arm/mach-at91/board-dt.c index 33a0d8b549b4..0b7d32778210 100644 --- a/arch/arm/mach-at91/board-dt.c +++ b/arch/arm/mach-at91/board-dt.c | |||
@@ -108,6 +108,7 @@ static void __init at91_dt_device_init(void) | |||
108 | 108 | ||
109 | static const char *at91_dt_board_compat[] __initdata = { | 109 | static const char *at91_dt_board_compat[] __initdata = { |
110 | "atmel,at91sam9m10g45ek", | 110 | "atmel,at91sam9m10g45ek", |
111 | "calao,usb-a9g20", | ||
111 | NULL | 112 | NULL |
112 | }; | 113 | }; |
113 | 114 | ||