diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2011-07-19 19:26:54 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-07-28 03:32:04 -0400 |
commit | 8e267f3da5f117d2f1316cf6ddf740f93f1c73aa (patch) | |
tree | 19c7739b88de481618e0f461a83a1bb46a9ef5e2 /arch/arm/boot | |
parent | 3ba7222ac992d24d09ccd0b55940b54849eef752 (diff) |
arm/dt: tegra devicetree support
Everything required to populate NVIDIA Tegra devices from the device
tree. This patch adds a new DT_MACHINE_DESC() which matches against
a tegra20 device tree. So far it only registers the on-chip devices,
but it will be refined in follow on patches to configure clocks and
pin IO from the device tree also.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r-- | arch/arm/boot/dts/tegra-harmony.dts | 70 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra-seaboard.dts | 28 | ||||
-rw-r--r-- | arch/arm/boot/dts/tegra20.dtsi | 139 |
3 files changed, 237 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts new file mode 100644 index 000000000000..4c053340ce33 --- /dev/null +++ b/arch/arm/boot/dts/tegra-harmony.dts | |||
@@ -0,0 +1,70 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /memreserve/ 0x1c000000 0x04000000; | ||
4 | /include/ "tegra20.dtsi" | ||
5 | |||
6 | / { | ||
7 | model = "NVIDIA Tegra2 Harmony evaluation board"; | ||
8 | compatible = "nvidia,harmony", "nvidia,tegra20"; | ||
9 | |||
10 | chosen { | ||
11 | bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootwait"; | ||
12 | }; | ||
13 | |||
14 | memory@0 { | ||
15 | reg = < 0x00000000 0x40000000 >; | ||
16 | }; | ||
17 | |||
18 | i2c@7000c000 { | ||
19 | clock-frequency = <400000>; | ||
20 | |||
21 | codec: wm8903@1a { | ||
22 | compatible = "wlf,wm8903"; | ||
23 | reg = <0x1a>; | ||
24 | interrupts = < 347 >; | ||
25 | |||
26 | gpio-controller; | ||
27 | #gpio-cells = <2>; | ||
28 | |||
29 | /* 0x8000 = Not configured */ | ||
30 | gpio-cfg = < 0x8000 0x8000 0 0x8000 0x8000 >; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | i2c@7000c400 { | ||
35 | clock-frequency = <400000>; | ||
36 | }; | ||
37 | |||
38 | i2c@7000c500 { | ||
39 | clock-frequency = <400000>; | ||
40 | }; | ||
41 | |||
42 | i2c@7000d000 { | ||
43 | clock-frequency = <400000>; | ||
44 | }; | ||
45 | |||
46 | sound { | ||
47 | compatible = "nvidia,harmony-sound", "nvidia,tegra-wm8903"; | ||
48 | |||
49 | spkr-en-gpios = <&codec 2 0>; | ||
50 | hp-det-gpios = <&gpio 178 0>; | ||
51 | int-mic-en-gpios = <&gpio 184 0>; | ||
52 | ext-mic-en-gpios = <&gpio 185 0>; | ||
53 | }; | ||
54 | |||
55 | serial@70006300 { | ||
56 | clock-frequency = < 216000000 >; | ||
57 | }; | ||
58 | |||
59 | sdhci@c8000200 { | ||
60 | gpios = <&gpio 69 0>, /* cd, gpio PI5 */ | ||
61 | <&gpio 57 0>, /* wp, gpio PH1 */ | ||
62 | <&gpio 155 0>; /* power, gpio PT3 */ | ||
63 | }; | ||
64 | |||
65 | sdhci@c8000600 { | ||
66 | gpios = <&gpio 58 0>, /* cd, gpio PH2 */ | ||
67 | <&gpio 59 0>, /* wp, gpio PH3 */ | ||
68 | <&gpio 70 0>; /* power, gpio PI6 */ | ||
69 | }; | ||
70 | }; | ||
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts new file mode 100644 index 000000000000..1940cae00748 --- /dev/null +++ b/arch/arm/boot/dts/tegra-seaboard.dts | |||
@@ -0,0 +1,28 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | /memreserve/ 0x1c000000 0x04000000; | ||
4 | /include/ "tegra20.dtsi" | ||
5 | |||
6 | / { | ||
7 | model = "NVIDIA Seaboard"; | ||
8 | compatible = "nvidia,seaboard", "nvidia,tegra20"; | ||
9 | |||
10 | chosen { | ||
11 | bootargs = "vmalloc=192M video=tegrafb console=ttyS0,115200n8 root=/dev/mmcblk1p3 rw rootwait"; | ||
12 | }; | ||
13 | |||
14 | memory { | ||
15 | device_type = "memory"; | ||
16 | reg = < 0x00000000 0x40000000 >; | ||
17 | }; | ||
18 | |||
19 | serial@70006300 { | ||
20 | clock-frequency = < 216000000 >; | ||
21 | }; | ||
22 | |||
23 | sdhci@c8000400 { | ||
24 | gpios = <&gpio 69 0>, /* cd, gpio PI5 */ | ||
25 | <&gpio 57 0>, /* wp, gpio PH1 */ | ||
26 | <&gpio 70 0>; /* power, gpio PI6 */ | ||
27 | }; | ||
28 | }; | ||
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi new file mode 100644 index 000000000000..5727595cde61 --- /dev/null +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -0,0 +1,139 @@ | |||
1 | /include/ "skeleton.dtsi" | ||
2 | |||
3 | / { | ||
4 | compatible = "nvidia,tegra20"; | ||
5 | interrupt-parent = <&intc>; | ||
6 | |||
7 | intc: interrupt-controller@50041000 { | ||
8 | compatible = "nvidia,tegra20-gic"; | ||
9 | interrupt-controller; | ||
10 | #interrupt-cells = <1>; | ||
11 | reg = < 0x50041000 0x1000 >, | ||
12 | < 0x50040100 0x0100 >; | ||
13 | }; | ||
14 | |||
15 | i2c@7000c000 { | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <0>; | ||
18 | compatible = "nvidia,tegra20-i2c"; | ||
19 | reg = <0x7000C000 0x100>; | ||
20 | interrupts = < 70 >; | ||
21 | }; | ||
22 | |||
23 | i2c@7000c400 { | ||
24 | #address-cells = <1>; | ||
25 | #size-cells = <0>; | ||
26 | compatible = "nvidia,tegra20-i2c"; | ||
27 | reg = <0x7000C400 0x100>; | ||
28 | interrupts = < 116 >; | ||
29 | }; | ||
30 | |||
31 | i2c@7000c500 { | ||
32 | #address-cells = <1>; | ||
33 | #size-cells = <0>; | ||
34 | compatible = "nvidia,tegra20-i2c"; | ||
35 | reg = <0x7000C500 0x100>; | ||
36 | interrupts = < 124 >; | ||
37 | }; | ||
38 | |||
39 | i2c@7000d000 { | ||
40 | #address-cells = <1>; | ||
41 | #size-cells = <0>; | ||
42 | compatible = "nvidia,tegra20-i2c"; | ||
43 | reg = <0x7000D000 0x200>; | ||
44 | interrupts = < 85 >; | ||
45 | }; | ||
46 | |||
47 | i2s@70002800 { | ||
48 | #address-cells = <1>; | ||
49 | #size-cells = <0>; | ||
50 | compatible = "nvidia,tegra20-i2s"; | ||
51 | reg = <0x70002800 0x200>; | ||
52 | interrupts = < 45 >; | ||
53 | dma-channel = < 2 >; | ||
54 | }; | ||
55 | |||
56 | i2s@70002a00 { | ||
57 | #address-cells = <1>; | ||
58 | #size-cells = <0>; | ||
59 | compatible = "nvidia,tegra20-i2s"; | ||
60 | reg = <0x70002a00 0x200>; | ||
61 | interrupts = < 35 >; | ||
62 | dma-channel = < 1 >; | ||
63 | }; | ||
64 | |||
65 | das@70000c00 { | ||
66 | #address-cells = <1>; | ||
67 | #size-cells = <0>; | ||
68 | compatible = "nvidia,tegra20-das"; | ||
69 | reg = <0x70000c00 0x80>; | ||
70 | }; | ||
71 | |||
72 | gpio: gpio@6000d000 { | ||
73 | compatible = "nvidia,tegra20-gpio"; | ||
74 | reg = < 0x6000d000 0x1000 >; | ||
75 | interrupts = < 64 65 66 67 87 119 121 >; | ||
76 | #gpio-cells = <2>; | ||
77 | gpio-controller; | ||
78 | }; | ||
79 | |||
80 | serial@70006000 { | ||
81 | compatible = "nvidia,tegra20-uart"; | ||
82 | reg = <0x70006000 0x40>; | ||
83 | reg-shift = <2>; | ||
84 | interrupts = < 68 >; | ||
85 | }; | ||
86 | |||
87 | serial@70006040 { | ||
88 | compatible = "nvidia,tegra20-uart"; | ||
89 | reg = <0x70006040 0x40>; | ||
90 | reg-shift = <2>; | ||
91 | interrupts = < 69 >; | ||
92 | }; | ||
93 | |||
94 | serial@70006200 { | ||
95 | compatible = "nvidia,tegra20-uart"; | ||
96 | reg = <0x70006200 0x100>; | ||
97 | reg-shift = <2>; | ||
98 | interrupts = < 78 >; | ||
99 | }; | ||
100 | |||
101 | serial@70006300 { | ||
102 | compatible = "nvidia,tegra20-uart"; | ||
103 | reg = <0x70006300 0x100>; | ||
104 | reg-shift = <2>; | ||
105 | interrupts = < 122 >; | ||
106 | }; | ||
107 | |||
108 | serial@70006400 { | ||
109 | compatible = "nvidia,tegra20-uart"; | ||
110 | reg = <0x70006400 0x100>; | ||
111 | reg-shift = <2>; | ||
112 | interrupts = < 123 >; | ||
113 | }; | ||
114 | |||
115 | sdhci@c8000000 { | ||
116 | compatible = "nvidia,tegra20-sdhci"; | ||
117 | reg = <0xc8000000 0x200>; | ||
118 | interrupts = < 46 >; | ||
119 | }; | ||
120 | |||
121 | sdhci@c8000200 { | ||
122 | compatible = "nvidia,tegra20-sdhci"; | ||
123 | reg = <0xc8000200 0x200>; | ||
124 | interrupts = < 47 >; | ||
125 | }; | ||
126 | |||
127 | sdhci@c8000400 { | ||
128 | compatible = "nvidia,tegra20-sdhci"; | ||
129 | reg = <0xc8000400 0x200>; | ||
130 | interrupts = < 51 >; | ||
131 | }; | ||
132 | |||
133 | sdhci@c8000600 { | ||
134 | compatible = "nvidia,tegra20-sdhci"; | ||
135 | reg = <0xc8000600 0x200>; | ||
136 | interrupts = < 63 >; | ||
137 | }; | ||
138 | }; | ||
139 | |||