diff options
274 files changed, 15385 insertions, 8921 deletions
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 91b7049affa1..808c1543b0f8 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt | |||
@@ -21,7 +21,8 @@ Required properties: | |||
21 | Optional properties: | 21 | Optional properties: |
22 | - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module | 22 | - ti,no_idle_on_suspend: When present, it prevents the PM to idle the module |
23 | during suspend. | 23 | during suspend. |
24 | 24 | - ti,no-reset-on-init: When present, the module should not be reset at init | |
25 | - ti,no-idle-on-init: When present, the module should not be idled at init | ||
25 | 26 | ||
26 | Example: | 27 | Example: |
27 | 28 | ||
diff --git a/Documentation/devicetree/bindings/arm/vic.txt b/Documentation/devicetree/bindings/arm/vic.txt index 266716b23437..dd527216c5fb 100644 --- a/Documentation/devicetree/bindings/arm/vic.txt +++ b/Documentation/devicetree/bindings/arm/vic.txt | |||
@@ -18,6 +18,15 @@ Required properties: | |||
18 | Optional properties: | 18 | Optional properties: |
19 | 19 | ||
20 | - interrupts : Interrupt source for parent controllers if the VIC is nested. | 20 | - interrupts : Interrupt source for parent controllers if the VIC is nested. |
21 | - valid-mask : A one cell big bit mask of valid interrupt sources. Each bit | ||
22 | represents single interrupt source, starting from source 0 at LSb and ending | ||
23 | at source 31 at MSb. A bit that is set means that the source is wired and | ||
24 | clear means otherwise. If unspecified, defaults to all valid. | ||
25 | - valid-wakeup-mask : A one cell big bit mask of interrupt sources that can be | ||
26 | configured as wake up source for the system. Order of bits is the same as for | ||
27 | valid-mask property. A set bit means that this interrupt source can be | ||
28 | configured as a wake up source for the system. If unspecied, defaults to all | ||
29 | interrupt sources configurable as wake up sources. | ||
21 | 30 | ||
22 | Example: | 31 | Example: |
23 | 32 | ||
@@ -26,4 +35,7 @@ Example: | |||
26 | interrupt-controller; | 35 | interrupt-controller; |
27 | #interrupt-cells = <1>; | 36 | #interrupt-cells = <1>; |
28 | reg = <0x60000 0x1000>; | 37 | reg = <0x60000 0x1000>; |
38 | |||
39 | valid-mask = <0xffffff7f>; | ||
40 | valid-wakeup-mask = <0x0000ff7f>; | ||
29 | }; | 41 | }; |
diff --git a/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt new file mode 100644 index 000000000000..c62391fc0e39 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/mvebu-corediv-clock.txt | |||
@@ -0,0 +1,19 @@ | |||
1 | * Core Divider Clock bindings for Marvell MVEBU SoCs | ||
2 | |||
3 | The following is a list of provided IDs and clock names on Armada 370/XP: | ||
4 | 0 = nand (NAND clock) | ||
5 | |||
6 | Required properties: | ||
7 | - compatible : must be "marvell,armada-370-corediv-clock" | ||
8 | - reg : must be the register address of Core Divider control register | ||
9 | - #clock-cells : from common clock binding; shall be set to 1 | ||
10 | - clocks : must be set to the parent's phandle | ||
11 | |||
12 | Example: | ||
13 | |||
14 | corediv_clk: corediv-clocks@18740 { | ||
15 | compatible = "marvell,armada-370-corediv-clock"; | ||
16 | reg = <0x18740 0xc>; | ||
17 | #clock-cells = <1>; | ||
18 | clocks = <&pll>; | ||
19 | }; | ||
diff --git a/Documentation/devicetree/bindings/crypto/omap-aes.txt b/Documentation/devicetree/bindings/crypto/omap-aes.txt new file mode 100644 index 000000000000..fd9717653cbb --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/omap-aes.txt | |||
@@ -0,0 +1,31 @@ | |||
1 | OMAP SoC AES crypto Module | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Should contain entries for this and backward compatible | ||
6 | AES versions: | ||
7 | - "ti,omap2-aes" for OMAP2. | ||
8 | - "ti,omap3-aes" for OMAP3. | ||
9 | - "ti,omap4-aes" for OMAP4 and AM33XX. | ||
10 | Note that the OMAP2 and 3 versions are compatible (OMAP3 supports | ||
11 | more algorithms) but they are incompatible with OMAP4. | ||
12 | - ti,hwmods: Name of the hwmod associated with the AES module | ||
13 | - reg : Offset and length of the register set for the module | ||
14 | - interrupts : the interrupt-specifier for the AES module. | ||
15 | |||
16 | Optional properties: | ||
17 | - dmas: DMA specifiers for tx and rx dma. See the DMA client binding, | ||
18 | Documentation/devicetree/bindings/dma/dma.txt | ||
19 | - dma-names: DMA request names should include "tx" and "rx" if present. | ||
20 | |||
21 | Example: | ||
22 | /* AM335x */ | ||
23 | aes: aes@53500000 { | ||
24 | compatible = "ti,omap4-aes"; | ||
25 | ti,hwmods = "aes"; | ||
26 | reg = <0x53500000 0xa0>; | ||
27 | interrupts = <102>; | ||
28 | dmas = <&edma 6>, | ||
29 | <&edma 5>; | ||
30 | dma-names = "tx", "rx"; | ||
31 | }; | ||
diff --git a/Documentation/devicetree/bindings/crypto/omap-sham.txt b/Documentation/devicetree/bindings/crypto/omap-sham.txt new file mode 100644 index 000000000000..f839acd6f0ee --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/omap-sham.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | OMAP SoC SHA crypto Module | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Should contain entries for this and backward compatible | ||
6 | SHAM versions: | ||
7 | - "ti,omap2-sham" for OMAP2 & OMAP3. | ||
8 | - "ti,omap4-sham" for OMAP4 and AM33XX. | ||
9 | Note that these two versions are incompatible. | ||
10 | - ti,hwmods: Name of the hwmod associated with the SHAM module | ||
11 | - reg : Offset and length of the register set for the module | ||
12 | - interrupts : the interrupt-specifier for the SHAM module. | ||
13 | |||
14 | Optional properties: | ||
15 | - dmas: DMA specifiers for the rx dma. See the DMA client binding, | ||
16 | Documentation/devicetree/bindings/dma/dma.txt | ||
17 | - dma-names: DMA request name. Should be "rx" if a dma is present. | ||
18 | |||
19 | Example: | ||
20 | /* AM335x */ | ||
21 | sham: sham@53100000 { | ||
22 | compatible = "ti,omap4-sham"; | ||
23 | ti,hwmods = "sham"; | ||
24 | reg = <0x53100000 0x200>; | ||
25 | interrupts = <109>; | ||
26 | dmas = <&edma 36>; | ||
27 | dma-names = "rx"; | ||
28 | }; | ||
diff --git a/Documentation/devicetree/bindings/hwrng/omap_rng.txt b/Documentation/devicetree/bindings/hwrng/omap_rng.txt new file mode 100644 index 000000000000..6a62acd86953 --- /dev/null +++ b/Documentation/devicetree/bindings/hwrng/omap_rng.txt | |||
@@ -0,0 +1,22 @@ | |||
1 | OMAP SoC HWRNG Module | ||
2 | |||
3 | Required properties: | ||
4 | |||
5 | - compatible : Should contain entries for this and backward compatible | ||
6 | RNG versions: | ||
7 | - "ti,omap2-rng" for OMAP2. | ||
8 | - "ti,omap4-rng" for OMAP4, OMAP5 and AM33XX. | ||
9 | Note that these two versions are incompatible. | ||
10 | - ti,hwmods: Name of the hwmod associated with the RNG module | ||
11 | - reg : Offset and length of the register set for the module | ||
12 | - interrupts : the interrupt number for the RNG module. | ||
13 | Only used for "ti,omap4-rng". | ||
14 | |||
15 | Example: | ||
16 | /* AM335x */ | ||
17 | rng: rng@48310000 { | ||
18 | compatible = "ti,omap4-rng"; | ||
19 | ti,hwmods = "rng"; | ||
20 | reg = <0x48310000 0x2000>; | ||
21 | interrupts = <111>; | ||
22 | }; | ||
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt index ed271fc255b2..8c8908ab84ba 100644 --- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt +++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt | |||
@@ -20,8 +20,29 @@ ti,dual-volt: boolean, supports dual voltage cards | |||
20 | ti,non-removable: non-removable slot (like eMMC) | 20 | ti,non-removable: non-removable slot (like eMMC) |
21 | ti,needs-special-reset: Requires a special softreset sequence | 21 | ti,needs-special-reset: Requires a special softreset sequence |
22 | ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed | 22 | ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed |
23 | dmas: List of DMA specifiers with the controller specific format | ||
24 | as described in the generic DMA client binding. A tx and rx | ||
25 | specifier is required. | ||
26 | dma-names: List of DMA request names. These strings correspond | ||
27 | 1:1 with the DMA specifiers listed in dmas. The string naming is | ||
28 | to be "rx" and "tx" for RX and TX DMA requests, respectively. | ||
29 | |||
30 | Examples: | ||
31 | |||
32 | [hwmod populated DMA resources] | ||
33 | |||
34 | mmc1: mmc@0x4809c000 { | ||
35 | compatible = "ti,omap4-hsmmc"; | ||
36 | reg = <0x4809c000 0x400>; | ||
37 | ti,hwmods = "mmc1"; | ||
38 | ti,dual-volt; | ||
39 | bus-width = <4>; | ||
40 | vmmc-supply = <&vmmc>; /* phandle to regulator node */ | ||
41 | ti,non-removable; | ||
42 | }; | ||
43 | |||
44 | [generic DMA request binding] | ||
23 | 45 | ||
24 | Example: | ||
25 | mmc1: mmc@0x4809c000 { | 46 | mmc1: mmc@0x4809c000 { |
26 | compatible = "ti,omap4-hsmmc"; | 47 | compatible = "ti,omap4-hsmmc"; |
27 | reg = <0x4809c000 0x400>; | 48 | reg = <0x4809c000 0x400>; |
@@ -30,4 +51,7 @@ Example: | |||
30 | bus-width = <4>; | 51 | bus-width = <4>; |
31 | vmmc-supply = <&vmmc>; /* phandle to regulator node */ | 52 | vmmc-supply = <&vmmc>; /* phandle to regulator node */ |
32 | ti,non-removable; | 53 | ti,non-removable; |
54 | dmas = <&edma 24 | ||
55 | &edma 25>; | ||
56 | dma-names = "tx", "rx"; | ||
33 | }; | 57 | }; |
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt index 3077370c89af..1e70a8aff260 100644 --- a/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt | |||
@@ -59,16 +59,16 @@ Required subnode-properties: | |||
59 | 59 | ||
60 | Optional subnode-properties: | 60 | Optional subnode-properties: |
61 | - fsl,drive-strength: Integer. | 61 | - fsl,drive-strength: Integer. |
62 | 0: 4 mA | 62 | 0: MXS_DRIVE_4mA |
63 | 1: 8 mA | 63 | 1: MXS_DRIVE_8mA |
64 | 2: 12 mA | 64 | 2: MXS_DRIVE_12mA |
65 | 3: 16 mA | 65 | 3: MXS_DRIVE_16mA |
66 | - fsl,voltage: Integer. | 66 | - fsl,voltage: Integer. |
67 | 0: 1.8 V | 67 | 0: MXS_VOLTAGE_LOW - 1.8 V |
68 | 1: 3.3 V | 68 | 1: MXS_VOLTAGE_HIGH - 3.3 V |
69 | - fsl,pull-up: Integer. | 69 | - fsl,pull-up: Integer. |
70 | 0: Disable the internal pull-up | 70 | 0: MXS_PULL_DISABLE - Disable the internal pull-up |
71 | 1: Enable the internal pull-up | 71 | 1: MXS_PULL_ENABLE - Enable the internal pull-up |
72 | 72 | ||
73 | Note that when enabling the pull-up, the internal pad keeper gets disabled. | 73 | Note that when enabling the pull-up, the internal pad keeper gets disabled. |
74 | Also, some pins doesn't have a pull up, in that case, setting the fsl,pull-up | 74 | Also, some pins doesn't have a pull up, in that case, setting the fsl,pull-up |
@@ -85,23 +85,32 @@ pinctrl@80018000 { | |||
85 | mmc0_8bit_pins_a: mmc0-8bit@0 { | 85 | mmc0_8bit_pins_a: mmc0-8bit@0 { |
86 | reg = <0>; | 86 | reg = <0>; |
87 | fsl,pinmux-ids = < | 87 | fsl,pinmux-ids = < |
88 | 0x2000 0x2010 0x2020 0x2030 | 88 | MX28_PAD_SSP0_DATA0__SSP0_D0 |
89 | 0x2040 0x2050 0x2060 0x2070 | 89 | MX28_PAD_SSP0_DATA1__SSP0_D1 |
90 | 0x2080 0x2090 0x20a0>; | 90 | MX28_PAD_SSP0_DATA2__SSP0_D2 |
91 | fsl,drive-strength = <1>; | 91 | MX28_PAD_SSP0_DATA3__SSP0_D3 |
92 | fsl,voltage = <1>; | 92 | MX28_PAD_SSP0_DATA4__SSP0_D4 |
93 | fsl,pull-up = <1>; | 93 | MX28_PAD_SSP0_DATA5__SSP0_D5 |
94 | MX28_PAD_SSP0_DATA6__SSP0_D6 | ||
95 | MX28_PAD_SSP0_DATA7__SSP0_D7 | ||
96 | MX28_PAD_SSP0_CMD__SSP0_CMD | ||
97 | MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT | ||
98 | MX28_PAD_SSP0_SCK__SSP0_SCK | ||
99 | >; | ||
100 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
101 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
102 | fsl,pull-up = <MXS_PULL_ENABLE>; | ||
94 | }; | 103 | }; |
95 | 104 | ||
96 | mmc_cd_cfg: mmc-cd-cfg { | 105 | mmc_cd_cfg: mmc-cd-cfg { |
97 | fsl,pinmux-ids = <0x2090>; | 106 | fsl,pinmux-ids = <MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT>; |
98 | fsl,pull-up = <0>; | 107 | fsl,pull-up = <MXS_PULL_DISABLE>; |
99 | }; | 108 | }; |
100 | 109 | ||
101 | mmc_sck_cfg: mmc-sck-cfg { | 110 | mmc_sck_cfg: mmc-sck-cfg { |
102 | fsl,pinmux-ids = <0x20a0>; | 111 | fsl,pinmux-ids = <MX28_PAD_SSP0_SCK__SSP0_SCK>; |
103 | fsl,drive-strength = <2>; | 112 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
104 | fsl,pull-up = <0>; | 113 | fsl,pull-up = <MXS_PULL_DISABLE>; |
105 | }; | 114 | }; |
106 | }; | 115 | }; |
107 | 116 | ||
@@ -112,811 +121,7 @@ adjusting the configuration for pins card-detection and clock from what group | |||
112 | node mmc0-8bit defines. Only the configuration properties to be adjusted need | 121 | node mmc0-8bit defines. Only the configuration properties to be adjusted need |
113 | to be listed in the config nodes. | 122 | to be listed in the config nodes. |
114 | 123 | ||
115 | Valid values for i.MX28 pinmux-id: | 124 | Valid values for i.MX28/i.MX23 pinmux-id are defined in |
116 | 125 | arch/arm/boot/dts/imx28-pinfunc.h and arch/arm/boot/dts/imx23-pinfunc.h. | |
117 | pinmux id | 126 | The definitions for the padconfig properties can be found in |
118 | ------ -- | 127 | arch/arm/boot/dts/mxs-pinfunc.h. |
119 | MX28_PAD_GPMI_D00__GPMI_D0 0x0000 | ||
120 | MX28_PAD_GPMI_D01__GPMI_D1 0x0010 | ||
121 | MX28_PAD_GPMI_D02__GPMI_D2 0x0020 | ||
122 | MX28_PAD_GPMI_D03__GPMI_D3 0x0030 | ||
123 | MX28_PAD_GPMI_D04__GPMI_D4 0x0040 | ||
124 | MX28_PAD_GPMI_D05__GPMI_D5 0x0050 | ||
125 | MX28_PAD_GPMI_D06__GPMI_D6 0x0060 | ||
126 | MX28_PAD_GPMI_D07__GPMI_D7 0x0070 | ||
127 | MX28_PAD_GPMI_CE0N__GPMI_CE0N 0x0100 | ||
128 | MX28_PAD_GPMI_CE1N__GPMI_CE1N 0x0110 | ||
129 | MX28_PAD_GPMI_CE2N__GPMI_CE2N 0x0120 | ||
130 | MX28_PAD_GPMI_CE3N__GPMI_CE3N 0x0130 | ||
131 | MX28_PAD_GPMI_RDY0__GPMI_READY0 0x0140 | ||
132 | MX28_PAD_GPMI_RDY1__GPMI_READY1 0x0150 | ||
133 | MX28_PAD_GPMI_RDY2__GPMI_READY2 0x0160 | ||
134 | MX28_PAD_GPMI_RDY3__GPMI_READY3 0x0170 | ||
135 | MX28_PAD_GPMI_RDN__GPMI_RDN 0x0180 | ||
136 | MX28_PAD_GPMI_WRN__GPMI_WRN 0x0190 | ||
137 | MX28_PAD_GPMI_ALE__GPMI_ALE 0x01a0 | ||
138 | MX28_PAD_GPMI_CLE__GPMI_CLE 0x01b0 | ||
139 | MX28_PAD_GPMI_RESETN__GPMI_RESETN 0x01c0 | ||
140 | MX28_PAD_LCD_D00__LCD_D0 0x1000 | ||
141 | MX28_PAD_LCD_D01__LCD_D1 0x1010 | ||
142 | MX28_PAD_LCD_D02__LCD_D2 0x1020 | ||
143 | MX28_PAD_LCD_D03__LCD_D3 0x1030 | ||
144 | MX28_PAD_LCD_D04__LCD_D4 0x1040 | ||
145 | MX28_PAD_LCD_D05__LCD_D5 0x1050 | ||
146 | MX28_PAD_LCD_D06__LCD_D6 0x1060 | ||
147 | MX28_PAD_LCD_D07__LCD_D7 0x1070 | ||
148 | MX28_PAD_LCD_D08__LCD_D8 0x1080 | ||
149 | MX28_PAD_LCD_D09__LCD_D9 0x1090 | ||
150 | MX28_PAD_LCD_D10__LCD_D10 0x10a0 | ||
151 | MX28_PAD_LCD_D11__LCD_D11 0x10b0 | ||
152 | MX28_PAD_LCD_D12__LCD_D12 0x10c0 | ||
153 | MX28_PAD_LCD_D13__LCD_D13 0x10d0 | ||
154 | MX28_PAD_LCD_D14__LCD_D14 0x10e0 | ||
155 | MX28_PAD_LCD_D15__LCD_D15 0x10f0 | ||
156 | MX28_PAD_LCD_D16__LCD_D16 0x1100 | ||
157 | MX28_PAD_LCD_D17__LCD_D17 0x1110 | ||
158 | MX28_PAD_LCD_D18__LCD_D18 0x1120 | ||
159 | MX28_PAD_LCD_D19__LCD_D19 0x1130 | ||
160 | MX28_PAD_LCD_D20__LCD_D20 0x1140 | ||
161 | MX28_PAD_LCD_D21__LCD_D21 0x1150 | ||
162 | MX28_PAD_LCD_D22__LCD_D22 0x1160 | ||
163 | MX28_PAD_LCD_D23__LCD_D23 0x1170 | ||
164 | MX28_PAD_LCD_RD_E__LCD_RD_E 0x1180 | ||
165 | MX28_PAD_LCD_WR_RWN__LCD_WR_RWN 0x1190 | ||
166 | MX28_PAD_LCD_RS__LCD_RS 0x11a0 | ||
167 | MX28_PAD_LCD_CS__LCD_CS 0x11b0 | ||
168 | MX28_PAD_LCD_VSYNC__LCD_VSYNC 0x11c0 | ||
169 | MX28_PAD_LCD_HSYNC__LCD_HSYNC 0x11d0 | ||
170 | MX28_PAD_LCD_DOTCLK__LCD_DOTCLK 0x11e0 | ||
171 | MX28_PAD_LCD_ENABLE__LCD_ENABLE 0x11f0 | ||
172 | MX28_PAD_SSP0_DATA0__SSP0_D0 0x2000 | ||
173 | MX28_PAD_SSP0_DATA1__SSP0_D1 0x2010 | ||
174 | MX28_PAD_SSP0_DATA2__SSP0_D2 0x2020 | ||
175 | MX28_PAD_SSP0_DATA3__SSP0_D3 0x2030 | ||
176 | MX28_PAD_SSP0_DATA4__SSP0_D4 0x2040 | ||
177 | MX28_PAD_SSP0_DATA5__SSP0_D5 0x2050 | ||
178 | MX28_PAD_SSP0_DATA6__SSP0_D6 0x2060 | ||
179 | MX28_PAD_SSP0_DATA7__SSP0_D7 0x2070 | ||
180 | MX28_PAD_SSP0_CMD__SSP0_CMD 0x2080 | ||
181 | MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT 0x2090 | ||
182 | MX28_PAD_SSP0_SCK__SSP0_SCK 0x20a0 | ||
183 | MX28_PAD_SSP1_SCK__SSP1_SCK 0x20c0 | ||
184 | MX28_PAD_SSP1_CMD__SSP1_CMD 0x20d0 | ||
185 | MX28_PAD_SSP1_DATA0__SSP1_D0 0x20e0 | ||
186 | MX28_PAD_SSP1_DATA3__SSP1_D3 0x20f0 | ||
187 | MX28_PAD_SSP2_SCK__SSP2_SCK 0x2100 | ||
188 | MX28_PAD_SSP2_MOSI__SSP2_CMD 0x2110 | ||
189 | MX28_PAD_SSP2_MISO__SSP2_D0 0x2120 | ||
190 | MX28_PAD_SSP2_SS0__SSP2_D3 0x2130 | ||
191 | MX28_PAD_SSP2_SS1__SSP2_D4 0x2140 | ||
192 | MX28_PAD_SSP2_SS2__SSP2_D5 0x2150 | ||
193 | MX28_PAD_SSP3_SCK__SSP3_SCK 0x2180 | ||
194 | MX28_PAD_SSP3_MOSI__SSP3_CMD 0x2190 | ||
195 | MX28_PAD_SSP3_MISO__SSP3_D0 0x21a0 | ||
196 | MX28_PAD_SSP3_SS0__SSP3_D3 0x21b0 | ||
197 | MX28_PAD_AUART0_RX__AUART0_RX 0x3000 | ||
198 | MX28_PAD_AUART0_TX__AUART0_TX 0x3010 | ||
199 | MX28_PAD_AUART0_CTS__AUART0_CTS 0x3020 | ||
200 | MX28_PAD_AUART0_RTS__AUART0_RTS 0x3030 | ||
201 | MX28_PAD_AUART1_RX__AUART1_RX 0x3040 | ||
202 | MX28_PAD_AUART1_TX__AUART1_TX 0x3050 | ||
203 | MX28_PAD_AUART1_CTS__AUART1_CTS 0x3060 | ||
204 | MX28_PAD_AUART1_RTS__AUART1_RTS 0x3070 | ||
205 | MX28_PAD_AUART2_RX__AUART2_RX 0x3080 | ||
206 | MX28_PAD_AUART2_TX__AUART2_TX 0x3090 | ||
207 | MX28_PAD_AUART2_CTS__AUART2_CTS 0x30a0 | ||
208 | MX28_PAD_AUART2_RTS__AUART2_RTS 0x30b0 | ||
209 | MX28_PAD_AUART3_RX__AUART3_RX 0x30c0 | ||
210 | MX28_PAD_AUART3_TX__AUART3_TX 0x30d0 | ||
211 | MX28_PAD_AUART3_CTS__AUART3_CTS 0x30e0 | ||
212 | MX28_PAD_AUART3_RTS__AUART3_RTS 0x30f0 | ||
213 | MX28_PAD_PWM0__PWM_0 0x3100 | ||
214 | MX28_PAD_PWM1__PWM_1 0x3110 | ||
215 | MX28_PAD_PWM2__PWM_2 0x3120 | ||
216 | MX28_PAD_SAIF0_MCLK__SAIF0_MCLK 0x3140 | ||
217 | MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK 0x3150 | ||
218 | MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK 0x3160 | ||
219 | MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 0x3170 | ||
220 | MX28_PAD_I2C0_SCL__I2C0_SCL 0x3180 | ||
221 | MX28_PAD_I2C0_SDA__I2C0_SDA 0x3190 | ||
222 | MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 0x31a0 | ||
223 | MX28_PAD_SPDIF__SPDIF_TX 0x31b0 | ||
224 | MX28_PAD_PWM3__PWM_3 0x31c0 | ||
225 | MX28_PAD_PWM4__PWM_4 0x31d0 | ||
226 | MX28_PAD_LCD_RESET__LCD_RESET 0x31e0 | ||
227 | MX28_PAD_ENET0_MDC__ENET0_MDC 0x4000 | ||
228 | MX28_PAD_ENET0_MDIO__ENET0_MDIO 0x4010 | ||
229 | MX28_PAD_ENET0_RX_EN__ENET0_RX_EN 0x4020 | ||
230 | MX28_PAD_ENET0_RXD0__ENET0_RXD0 0x4030 | ||
231 | MX28_PAD_ENET0_RXD1__ENET0_RXD1 0x4040 | ||
232 | MX28_PAD_ENET0_TX_CLK__ENET0_TX_CLK 0x4050 | ||
233 | MX28_PAD_ENET0_TX_EN__ENET0_TX_EN 0x4060 | ||
234 | MX28_PAD_ENET0_TXD0__ENET0_TXD0 0x4070 | ||
235 | MX28_PAD_ENET0_TXD1__ENET0_TXD1 0x4080 | ||
236 | MX28_PAD_ENET0_RXD2__ENET0_RXD2 0x4090 | ||
237 | MX28_PAD_ENET0_RXD3__ENET0_RXD3 0x40a0 | ||
238 | MX28_PAD_ENET0_TXD2__ENET0_TXD2 0x40b0 | ||
239 | MX28_PAD_ENET0_TXD3__ENET0_TXD3 0x40c0 | ||
240 | MX28_PAD_ENET0_RX_CLK__ENET0_RX_CLK 0x40d0 | ||
241 | MX28_PAD_ENET0_COL__ENET0_COL 0x40e0 | ||
242 | MX28_PAD_ENET0_CRS__ENET0_CRS 0x40f0 | ||
243 | MX28_PAD_ENET_CLK__CLKCTRL_ENET 0x4100 | ||
244 | MX28_PAD_JTAG_RTCK__JTAG_RTCK 0x4140 | ||
245 | MX28_PAD_EMI_D00__EMI_DATA0 0x5000 | ||
246 | MX28_PAD_EMI_D01__EMI_DATA1 0x5010 | ||
247 | MX28_PAD_EMI_D02__EMI_DATA2 0x5020 | ||
248 | MX28_PAD_EMI_D03__EMI_DATA3 0x5030 | ||
249 | MX28_PAD_EMI_D04__EMI_DATA4 0x5040 | ||
250 | MX28_PAD_EMI_D05__EMI_DATA5 0x5050 | ||
251 | MX28_PAD_EMI_D06__EMI_DATA6 0x5060 | ||
252 | MX28_PAD_EMI_D07__EMI_DATA7 0x5070 | ||
253 | MX28_PAD_EMI_D08__EMI_DATA8 0x5080 | ||
254 | MX28_PAD_EMI_D09__EMI_DATA9 0x5090 | ||
255 | MX28_PAD_EMI_D10__EMI_DATA10 0x50a0 | ||
256 | MX28_PAD_EMI_D11__EMI_DATA11 0x50b0 | ||
257 | MX28_PAD_EMI_D12__EMI_DATA12 0x50c0 | ||
258 | MX28_PAD_EMI_D13__EMI_DATA13 0x50d0 | ||
259 | MX28_PAD_EMI_D14__EMI_DATA14 0x50e0 | ||
260 | MX28_PAD_EMI_D15__EMI_DATA15 0x50f0 | ||
261 | MX28_PAD_EMI_ODT0__EMI_ODT0 0x5100 | ||
262 | MX28_PAD_EMI_DQM0__EMI_DQM0 0x5110 | ||
263 | MX28_PAD_EMI_ODT1__EMI_ODT1 0x5120 | ||
264 | MX28_PAD_EMI_DQM1__EMI_DQM1 0x5130 | ||
265 | MX28_PAD_EMI_DDR_OPEN_FB__EMI_DDR_OPEN_FEEDBACK 0x5140 | ||
266 | MX28_PAD_EMI_CLK__EMI_CLK 0x5150 | ||
267 | MX28_PAD_EMI_DQS0__EMI_DQS0 0x5160 | ||
268 | MX28_PAD_EMI_DQS1__EMI_DQS1 0x5170 | ||
269 | MX28_PAD_EMI_DDR_OPEN__EMI_DDR_OPEN 0x51a0 | ||
270 | MX28_PAD_EMI_A00__EMI_ADDR0 0x6000 | ||
271 | MX28_PAD_EMI_A01__EMI_ADDR1 0x6010 | ||
272 | MX28_PAD_EMI_A02__EMI_ADDR2 0x6020 | ||
273 | MX28_PAD_EMI_A03__EMI_ADDR3 0x6030 | ||
274 | MX28_PAD_EMI_A04__EMI_ADDR4 0x6040 | ||
275 | MX28_PAD_EMI_A05__EMI_ADDR5 0x6050 | ||
276 | MX28_PAD_EMI_A06__EMI_ADDR6 0x6060 | ||
277 | MX28_PAD_EMI_A07__EMI_ADDR7 0x6070 | ||
278 | MX28_PAD_EMI_A08__EMI_ADDR8 0x6080 | ||
279 | MX28_PAD_EMI_A09__EMI_ADDR9 0x6090 | ||
280 | MX28_PAD_EMI_A10__EMI_ADDR10 0x60a0 | ||
281 | MX28_PAD_EMI_A11__EMI_ADDR11 0x60b0 | ||
282 | MX28_PAD_EMI_A12__EMI_ADDR12 0x60c0 | ||
283 | MX28_PAD_EMI_A13__EMI_ADDR13 0x60d0 | ||
284 | MX28_PAD_EMI_A14__EMI_ADDR14 0x60e0 | ||
285 | MX28_PAD_EMI_BA0__EMI_BA0 0x6100 | ||
286 | MX28_PAD_EMI_BA1__EMI_BA1 0x6110 | ||
287 | MX28_PAD_EMI_BA2__EMI_BA2 0x6120 | ||
288 | MX28_PAD_EMI_CASN__EMI_CASN 0x6130 | ||
289 | MX28_PAD_EMI_RASN__EMI_RASN 0x6140 | ||
290 | MX28_PAD_EMI_WEN__EMI_WEN 0x6150 | ||
291 | MX28_PAD_EMI_CE0N__EMI_CE0N 0x6160 | ||
292 | MX28_PAD_EMI_CE1N__EMI_CE1N 0x6170 | ||
293 | MX28_PAD_EMI_CKE__EMI_CKE 0x6180 | ||
294 | MX28_PAD_GPMI_D00__SSP1_D0 0x0001 | ||
295 | MX28_PAD_GPMI_D01__SSP1_D1 0x0011 | ||
296 | MX28_PAD_GPMI_D02__SSP1_D2 0x0021 | ||
297 | MX28_PAD_GPMI_D03__SSP1_D3 0x0031 | ||
298 | MX28_PAD_GPMI_D04__SSP1_D4 0x0041 | ||
299 | MX28_PAD_GPMI_D05__SSP1_D5 0x0051 | ||
300 | MX28_PAD_GPMI_D06__SSP1_D6 0x0061 | ||
301 | MX28_PAD_GPMI_D07__SSP1_D7 0x0071 | ||
302 | MX28_PAD_GPMI_CE0N__SSP3_D0 0x0101 | ||
303 | MX28_PAD_GPMI_CE1N__SSP3_D3 0x0111 | ||
304 | MX28_PAD_GPMI_CE2N__CAN1_TX 0x0121 | ||
305 | MX28_PAD_GPMI_CE3N__CAN1_RX 0x0131 | ||
306 | MX28_PAD_GPMI_RDY0__SSP1_CARD_DETECT 0x0141 | ||
307 | MX28_PAD_GPMI_RDY1__SSP1_CMD 0x0151 | ||
308 | MX28_PAD_GPMI_RDY2__CAN0_TX 0x0161 | ||
309 | MX28_PAD_GPMI_RDY3__CAN0_RX 0x0171 | ||
310 | MX28_PAD_GPMI_RDN__SSP3_SCK 0x0181 | ||
311 | MX28_PAD_GPMI_WRN__SSP1_SCK 0x0191 | ||
312 | MX28_PAD_GPMI_ALE__SSP3_D1 0x01a1 | ||
313 | MX28_PAD_GPMI_CLE__SSP3_D2 0x01b1 | ||
314 | MX28_PAD_GPMI_RESETN__SSP3_CMD 0x01c1 | ||
315 | MX28_PAD_LCD_D03__ETM_DA8 0x1031 | ||
316 | MX28_PAD_LCD_D04__ETM_DA9 0x1041 | ||
317 | MX28_PAD_LCD_D08__ETM_DA3 0x1081 | ||
318 | MX28_PAD_LCD_D09__ETM_DA4 0x1091 | ||
319 | MX28_PAD_LCD_D20__ENET1_1588_EVENT2_OUT 0x1141 | ||
320 | MX28_PAD_LCD_D21__ENET1_1588_EVENT2_IN 0x1151 | ||
321 | MX28_PAD_LCD_D22__ENET1_1588_EVENT3_OUT 0x1161 | ||
322 | MX28_PAD_LCD_D23__ENET1_1588_EVENT3_IN 0x1171 | ||
323 | MX28_PAD_LCD_RD_E__LCD_VSYNC 0x1181 | ||
324 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC 0x1191 | ||
325 | MX28_PAD_LCD_RS__LCD_DOTCLK 0x11a1 | ||
326 | MX28_PAD_LCD_CS__LCD_ENABLE 0x11b1 | ||
327 | MX28_PAD_LCD_VSYNC__SAIF1_SDATA0 0x11c1 | ||
328 | MX28_PAD_LCD_HSYNC__SAIF1_SDATA1 0x11d1 | ||
329 | MX28_PAD_LCD_DOTCLK__SAIF1_MCLK 0x11e1 | ||
330 | MX28_PAD_SSP0_DATA4__SSP2_D0 0x2041 | ||
331 | MX28_PAD_SSP0_DATA5__SSP2_D3 0x2051 | ||
332 | MX28_PAD_SSP0_DATA6__SSP2_CMD 0x2061 | ||
333 | MX28_PAD_SSP0_DATA7__SSP2_SCK 0x2071 | ||
334 | MX28_PAD_SSP1_SCK__SSP2_D1 0x20c1 | ||
335 | MX28_PAD_SSP1_CMD__SSP2_D2 0x20d1 | ||
336 | MX28_PAD_SSP1_DATA0__SSP2_D6 0x20e1 | ||
337 | MX28_PAD_SSP1_DATA3__SSP2_D7 0x20f1 | ||
338 | MX28_PAD_SSP2_SCK__AUART2_RX 0x2101 | ||
339 | MX28_PAD_SSP2_MOSI__AUART2_TX 0x2111 | ||
340 | MX28_PAD_SSP2_MISO__AUART3_RX 0x2121 | ||
341 | MX28_PAD_SSP2_SS0__AUART3_TX 0x2131 | ||
342 | MX28_PAD_SSP2_SS1__SSP2_D1 0x2141 | ||
343 | MX28_PAD_SSP2_SS2__SSP2_D2 0x2151 | ||
344 | MX28_PAD_SSP3_SCK__AUART4_TX 0x2181 | ||
345 | MX28_PAD_SSP3_MOSI__AUART4_RX 0x2191 | ||
346 | MX28_PAD_SSP3_MISO__AUART4_RTS 0x21a1 | ||
347 | MX28_PAD_SSP3_SS0__AUART4_CTS 0x21b1 | ||
348 | MX28_PAD_AUART0_RX__I2C0_SCL 0x3001 | ||
349 | MX28_PAD_AUART0_TX__I2C0_SDA 0x3011 | ||
350 | MX28_PAD_AUART0_CTS__AUART4_RX 0x3021 | ||
351 | MX28_PAD_AUART0_RTS__AUART4_TX 0x3031 | ||
352 | MX28_PAD_AUART1_RX__SSP2_CARD_DETECT 0x3041 | ||
353 | MX28_PAD_AUART1_TX__SSP3_CARD_DETECT 0x3051 | ||
354 | MX28_PAD_AUART1_CTS__USB0_OVERCURRENT 0x3061 | ||
355 | MX28_PAD_AUART1_RTS__USB0_ID 0x3071 | ||
356 | MX28_PAD_AUART2_RX__SSP3_D1 0x3081 | ||
357 | MX28_PAD_AUART2_TX__SSP3_D2 0x3091 | ||
358 | MX28_PAD_AUART2_CTS__I2C1_SCL 0x30a1 | ||
359 | MX28_PAD_AUART2_RTS__I2C1_SDA 0x30b1 | ||
360 | MX28_PAD_AUART3_RX__CAN0_TX 0x30c1 | ||
361 | MX28_PAD_AUART3_TX__CAN0_RX 0x30d1 | ||
362 | MX28_PAD_AUART3_CTS__CAN1_TX 0x30e1 | ||
363 | MX28_PAD_AUART3_RTS__CAN1_RX 0x30f1 | ||
364 | MX28_PAD_PWM0__I2C1_SCL 0x3101 | ||
365 | MX28_PAD_PWM1__I2C1_SDA 0x3111 | ||
366 | MX28_PAD_PWM2__USB0_ID 0x3121 | ||
367 | MX28_PAD_SAIF0_MCLK__PWM_3 0x3141 | ||
368 | MX28_PAD_SAIF0_LRCLK__PWM_4 0x3151 | ||
369 | MX28_PAD_SAIF0_BITCLK__PWM_5 0x3161 | ||
370 | MX28_PAD_SAIF0_SDATA0__PWM_6 0x3171 | ||
371 | MX28_PAD_I2C0_SCL__TIMROT_ROTARYA 0x3181 | ||
372 | MX28_PAD_I2C0_SDA__TIMROT_ROTARYB 0x3191 | ||
373 | MX28_PAD_SAIF1_SDATA0__PWM_7 0x31a1 | ||
374 | MX28_PAD_LCD_RESET__LCD_VSYNC 0x31e1 | ||
375 | MX28_PAD_ENET0_MDC__GPMI_CE4N 0x4001 | ||
376 | MX28_PAD_ENET0_MDIO__GPMI_CE5N 0x4011 | ||
377 | MX28_PAD_ENET0_RX_EN__GPMI_CE6N 0x4021 | ||
378 | MX28_PAD_ENET0_RXD0__GPMI_CE7N 0x4031 | ||
379 | MX28_PAD_ENET0_RXD1__GPMI_READY4 0x4041 | ||
380 | MX28_PAD_ENET0_TX_CLK__HSADC_TRIGGER 0x4051 | ||
381 | MX28_PAD_ENET0_TX_EN__GPMI_READY5 0x4061 | ||
382 | MX28_PAD_ENET0_TXD0__GPMI_READY6 0x4071 | ||
383 | MX28_PAD_ENET0_TXD1__GPMI_READY7 0x4081 | ||
384 | MX28_PAD_ENET0_RXD2__ENET1_RXD0 0x4091 | ||
385 | MX28_PAD_ENET0_RXD3__ENET1_RXD1 0x40a1 | ||
386 | MX28_PAD_ENET0_TXD2__ENET1_TXD0 0x40b1 | ||
387 | MX28_PAD_ENET0_TXD3__ENET1_TXD1 0x40c1 | ||
388 | MX28_PAD_ENET0_RX_CLK__ENET0_RX_ER 0x40d1 | ||
389 | MX28_PAD_ENET0_COL__ENET1_TX_EN 0x40e1 | ||
390 | MX28_PAD_ENET0_CRS__ENET1_RX_EN 0x40f1 | ||
391 | MX28_PAD_GPMI_CE2N__ENET0_RX_ER 0x0122 | ||
392 | MX28_PAD_GPMI_CE3N__SAIF1_MCLK 0x0132 | ||
393 | MX28_PAD_GPMI_RDY0__USB0_ID 0x0142 | ||
394 | MX28_PAD_GPMI_RDY2__ENET0_TX_ER 0x0162 | ||
395 | MX28_PAD_GPMI_RDY3__HSADC_TRIGGER 0x0172 | ||
396 | MX28_PAD_GPMI_ALE__SSP3_D4 0x01a2 | ||
397 | MX28_PAD_GPMI_CLE__SSP3_D5 0x01b2 | ||
398 | MX28_PAD_LCD_D00__ETM_DA0 0x1002 | ||
399 | MX28_PAD_LCD_D01__ETM_DA1 0x1012 | ||
400 | MX28_PAD_LCD_D02__ETM_DA2 0x1022 | ||
401 | MX28_PAD_LCD_D03__ETM_DA3 0x1032 | ||
402 | MX28_PAD_LCD_D04__ETM_DA4 0x1042 | ||
403 | MX28_PAD_LCD_D05__ETM_DA5 0x1052 | ||
404 | MX28_PAD_LCD_D06__ETM_DA6 0x1062 | ||
405 | MX28_PAD_LCD_D07__ETM_DA7 0x1072 | ||
406 | MX28_PAD_LCD_D08__ETM_DA8 0x1082 | ||
407 | MX28_PAD_LCD_D09__ETM_DA9 0x1092 | ||
408 | MX28_PAD_LCD_D10__ETM_DA10 0x10a2 | ||
409 | MX28_PAD_LCD_D11__ETM_DA11 0x10b2 | ||
410 | MX28_PAD_LCD_D12__ETM_DA12 0x10c2 | ||
411 | MX28_PAD_LCD_D13__ETM_DA13 0x10d2 | ||
412 | MX28_PAD_LCD_D14__ETM_DA14 0x10e2 | ||
413 | MX28_PAD_LCD_D15__ETM_DA15 0x10f2 | ||
414 | MX28_PAD_LCD_D16__ETM_DA7 0x1102 | ||
415 | MX28_PAD_LCD_D17__ETM_DA6 0x1112 | ||
416 | MX28_PAD_LCD_D18__ETM_DA5 0x1122 | ||
417 | MX28_PAD_LCD_D19__ETM_DA4 0x1132 | ||
418 | MX28_PAD_LCD_D20__ETM_DA3 0x1142 | ||
419 | MX28_PAD_LCD_D21__ETM_DA2 0x1152 | ||
420 | MX28_PAD_LCD_D22__ETM_DA1 0x1162 | ||
421 | MX28_PAD_LCD_D23__ETM_DA0 0x1172 | ||
422 | MX28_PAD_LCD_RD_E__ETM_TCTL 0x1182 | ||
423 | MX28_PAD_LCD_WR_RWN__ETM_TCLK 0x1192 | ||
424 | MX28_PAD_LCD_HSYNC__ETM_TCTL 0x11d2 | ||
425 | MX28_PAD_LCD_DOTCLK__ETM_TCLK 0x11e2 | ||
426 | MX28_PAD_SSP1_SCK__ENET0_1588_EVENT2_OUT 0x20c2 | ||
427 | MX28_PAD_SSP1_CMD__ENET0_1588_EVENT2_IN 0x20d2 | ||
428 | MX28_PAD_SSP1_DATA0__ENET0_1588_EVENT3_OUT 0x20e2 | ||
429 | MX28_PAD_SSP1_DATA3__ENET0_1588_EVENT3_IN 0x20f2 | ||
430 | MX28_PAD_SSP2_SCK__SAIF0_SDATA1 0x2102 | ||
431 | MX28_PAD_SSP2_MOSI__SAIF0_SDATA2 0x2112 | ||
432 | MX28_PAD_SSP2_MISO__SAIF1_SDATA1 0x2122 | ||
433 | MX28_PAD_SSP2_SS0__SAIF1_SDATA2 0x2132 | ||
434 | MX28_PAD_SSP2_SS1__USB1_OVERCURRENT 0x2142 | ||
435 | MX28_PAD_SSP2_SS2__USB0_OVERCURRENT 0x2152 | ||
436 | MX28_PAD_SSP3_SCK__ENET1_1588_EVENT0_OUT 0x2182 | ||
437 | MX28_PAD_SSP3_MOSI__ENET1_1588_EVENT0_IN 0x2192 | ||
438 | MX28_PAD_SSP3_MISO__ENET1_1588_EVENT1_OUT 0x21a2 | ||
439 | MX28_PAD_SSP3_SS0__ENET1_1588_EVENT1_IN 0x21b2 | ||
440 | MX28_PAD_AUART0_RX__DUART_CTS 0x3002 | ||
441 | MX28_PAD_AUART0_TX__DUART_RTS 0x3012 | ||
442 | MX28_PAD_AUART0_CTS__DUART_RX 0x3022 | ||
443 | MX28_PAD_AUART0_RTS__DUART_TX 0x3032 | ||
444 | MX28_PAD_AUART1_RX__PWM_0 0x3042 | ||
445 | MX28_PAD_AUART1_TX__PWM_1 0x3052 | ||
446 | MX28_PAD_AUART1_CTS__TIMROT_ROTARYA 0x3062 | ||
447 | MX28_PAD_AUART1_RTS__TIMROT_ROTARYB 0x3072 | ||
448 | MX28_PAD_AUART2_RX__SSP3_D4 0x3082 | ||
449 | MX28_PAD_AUART2_TX__SSP3_D5 0x3092 | ||
450 | MX28_PAD_AUART2_CTS__SAIF1_BITCLK 0x30a2 | ||
451 | MX28_PAD_AUART2_RTS__SAIF1_LRCLK 0x30b2 | ||
452 | MX28_PAD_AUART3_RX__ENET0_1588_EVENT0_OUT 0x30c2 | ||
453 | MX28_PAD_AUART3_TX__ENET0_1588_EVENT0_IN 0x30d2 | ||
454 | MX28_PAD_AUART3_CTS__ENET0_1588_EVENT1_OUT 0x30e2 | ||
455 | MX28_PAD_AUART3_RTS__ENET0_1588_EVENT1_IN 0x30f2 | ||
456 | MX28_PAD_PWM0__DUART_RX 0x3102 | ||
457 | MX28_PAD_PWM1__DUART_TX 0x3112 | ||
458 | MX28_PAD_PWM2__USB1_OVERCURRENT 0x3122 | ||
459 | MX28_PAD_SAIF0_MCLK__AUART4_CTS 0x3142 | ||
460 | MX28_PAD_SAIF0_LRCLK__AUART4_RTS 0x3152 | ||
461 | MX28_PAD_SAIF0_BITCLK__AUART4_RX 0x3162 | ||
462 | MX28_PAD_SAIF0_SDATA0__AUART4_TX 0x3172 | ||
463 | MX28_PAD_I2C0_SCL__DUART_RX 0x3182 | ||
464 | MX28_PAD_I2C0_SDA__DUART_TX 0x3192 | ||
465 | MX28_PAD_SAIF1_SDATA0__SAIF0_SDATA1 0x31a2 | ||
466 | MX28_PAD_SPDIF__ENET1_RX_ER 0x31b2 | ||
467 | MX28_PAD_ENET0_MDC__SAIF0_SDATA1 0x4002 | ||
468 | MX28_PAD_ENET0_MDIO__SAIF0_SDATA2 0x4012 | ||
469 | MX28_PAD_ENET0_RX_EN__SAIF1_SDATA1 0x4022 | ||
470 | MX28_PAD_ENET0_RXD0__SAIF1_SDATA2 0x4032 | ||
471 | MX28_PAD_ENET0_TX_CLK__ENET0_1588_EVENT2_OUT 0x4052 | ||
472 | MX28_PAD_ENET0_RXD2__ENET0_1588_EVENT0_OUT 0x4092 | ||
473 | MX28_PAD_ENET0_RXD3__ENET0_1588_EVENT0_IN 0x40a2 | ||
474 | MX28_PAD_ENET0_TXD2__ENET0_1588_EVENT1_OUT 0x40b2 | ||
475 | MX28_PAD_ENET0_TXD3__ENET0_1588_EVENT1_IN 0x40c2 | ||
476 | MX28_PAD_ENET0_RX_CLK__ENET0_1588_EVENT2_IN 0x40d2 | ||
477 | MX28_PAD_ENET0_COL__ENET0_1588_EVENT3_OUT 0x40e2 | ||
478 | MX28_PAD_ENET0_CRS__ENET0_1588_EVENT3_IN 0x40f2 | ||
479 | MX28_PAD_GPMI_D00__GPIO_0_0 0x0003 | ||
480 | MX28_PAD_GPMI_D01__GPIO_0_1 0x0013 | ||
481 | MX28_PAD_GPMI_D02__GPIO_0_2 0x0023 | ||
482 | MX28_PAD_GPMI_D03__GPIO_0_3 0x0033 | ||
483 | MX28_PAD_GPMI_D04__GPIO_0_4 0x0043 | ||
484 | MX28_PAD_GPMI_D05__GPIO_0_5 0x0053 | ||
485 | MX28_PAD_GPMI_D06__GPIO_0_6 0x0063 | ||
486 | MX28_PAD_GPMI_D07__GPIO_0_7 0x0073 | ||
487 | MX28_PAD_GPMI_CE0N__GPIO_0_16 0x0103 | ||
488 | MX28_PAD_GPMI_CE1N__GPIO_0_17 0x0113 | ||
489 | MX28_PAD_GPMI_CE2N__GPIO_0_18 0x0123 | ||
490 | MX28_PAD_GPMI_CE3N__GPIO_0_19 0x0133 | ||
491 | MX28_PAD_GPMI_RDY0__GPIO_0_20 0x0143 | ||
492 | MX28_PAD_GPMI_RDY1__GPIO_0_21 0x0153 | ||
493 | MX28_PAD_GPMI_RDY2__GPIO_0_22 0x0163 | ||
494 | MX28_PAD_GPMI_RDY3__GPIO_0_23 0x0173 | ||
495 | MX28_PAD_GPMI_RDN__GPIO_0_24 0x0183 | ||
496 | MX28_PAD_GPMI_WRN__GPIO_0_25 0x0193 | ||
497 | MX28_PAD_GPMI_ALE__GPIO_0_26 0x01a3 | ||
498 | MX28_PAD_GPMI_CLE__GPIO_0_27 0x01b3 | ||
499 | MX28_PAD_GPMI_RESETN__GPIO_0_28 0x01c3 | ||
500 | MX28_PAD_LCD_D00__GPIO_1_0 0x1003 | ||
501 | MX28_PAD_LCD_D01__GPIO_1_1 0x1013 | ||
502 | MX28_PAD_LCD_D02__GPIO_1_2 0x1023 | ||
503 | MX28_PAD_LCD_D03__GPIO_1_3 0x1033 | ||
504 | MX28_PAD_LCD_D04__GPIO_1_4 0x1043 | ||
505 | MX28_PAD_LCD_D05__GPIO_1_5 0x1053 | ||
506 | MX28_PAD_LCD_D06__GPIO_1_6 0x1063 | ||
507 | MX28_PAD_LCD_D07__GPIO_1_7 0x1073 | ||
508 | MX28_PAD_LCD_D08__GPIO_1_8 0x1083 | ||
509 | MX28_PAD_LCD_D09__GPIO_1_9 0x1093 | ||
510 | MX28_PAD_LCD_D10__GPIO_1_10 0x10a3 | ||
511 | MX28_PAD_LCD_D11__GPIO_1_11 0x10b3 | ||
512 | MX28_PAD_LCD_D12__GPIO_1_12 0x10c3 | ||
513 | MX28_PAD_LCD_D13__GPIO_1_13 0x10d3 | ||
514 | MX28_PAD_LCD_D14__GPIO_1_14 0x10e3 | ||
515 | MX28_PAD_LCD_D15__GPIO_1_15 0x10f3 | ||
516 | MX28_PAD_LCD_D16__GPIO_1_16 0x1103 | ||
517 | MX28_PAD_LCD_D17__GPIO_1_17 0x1113 | ||
518 | MX28_PAD_LCD_D18__GPIO_1_18 0x1123 | ||
519 | MX28_PAD_LCD_D19__GPIO_1_19 0x1133 | ||
520 | MX28_PAD_LCD_D20__GPIO_1_20 0x1143 | ||
521 | MX28_PAD_LCD_D21__GPIO_1_21 0x1153 | ||
522 | MX28_PAD_LCD_D22__GPIO_1_22 0x1163 | ||
523 | MX28_PAD_LCD_D23__GPIO_1_23 0x1173 | ||
524 | MX28_PAD_LCD_RD_E__GPIO_1_24 0x1183 | ||
525 | MX28_PAD_LCD_WR_RWN__GPIO_1_25 0x1193 | ||
526 | MX28_PAD_LCD_RS__GPIO_1_26 0x11a3 | ||
527 | MX28_PAD_LCD_CS__GPIO_1_27 0x11b3 | ||
528 | MX28_PAD_LCD_VSYNC__GPIO_1_28 0x11c3 | ||
529 | MX28_PAD_LCD_HSYNC__GPIO_1_29 0x11d3 | ||
530 | MX28_PAD_LCD_DOTCLK__GPIO_1_30 0x11e3 | ||
531 | MX28_PAD_LCD_ENABLE__GPIO_1_31 0x11f3 | ||
532 | MX28_PAD_SSP0_DATA0__GPIO_2_0 0x2003 | ||
533 | MX28_PAD_SSP0_DATA1__GPIO_2_1 0x2013 | ||
534 | MX28_PAD_SSP0_DATA2__GPIO_2_2 0x2023 | ||
535 | MX28_PAD_SSP0_DATA3__GPIO_2_3 0x2033 | ||
536 | MX28_PAD_SSP0_DATA4__GPIO_2_4 0x2043 | ||
537 | MX28_PAD_SSP0_DATA5__GPIO_2_5 0x2053 | ||
538 | MX28_PAD_SSP0_DATA6__GPIO_2_6 0x2063 | ||
539 | MX28_PAD_SSP0_DATA7__GPIO_2_7 0x2073 | ||
540 | MX28_PAD_SSP0_CMD__GPIO_2_8 0x2083 | ||
541 | MX28_PAD_SSP0_DETECT__GPIO_2_9 0x2093 | ||
542 | MX28_PAD_SSP0_SCK__GPIO_2_10 0x20a3 | ||
543 | MX28_PAD_SSP1_SCK__GPIO_2_12 0x20c3 | ||
544 | MX28_PAD_SSP1_CMD__GPIO_2_13 0x20d3 | ||
545 | MX28_PAD_SSP1_DATA0__GPIO_2_14 0x20e3 | ||
546 | MX28_PAD_SSP1_DATA3__GPIO_2_15 0x20f3 | ||
547 | MX28_PAD_SSP2_SCK__GPIO_2_16 0x2103 | ||
548 | MX28_PAD_SSP2_MOSI__GPIO_2_17 0x2113 | ||
549 | MX28_PAD_SSP2_MISO__GPIO_2_18 0x2123 | ||
550 | MX28_PAD_SSP2_SS0__GPIO_2_19 0x2133 | ||
551 | MX28_PAD_SSP2_SS1__GPIO_2_20 0x2143 | ||
552 | MX28_PAD_SSP2_SS2__GPIO_2_21 0x2153 | ||
553 | MX28_PAD_SSP3_SCK__GPIO_2_24 0x2183 | ||
554 | MX28_PAD_SSP3_MOSI__GPIO_2_25 0x2193 | ||
555 | MX28_PAD_SSP3_MISO__GPIO_2_26 0x21a3 | ||
556 | MX28_PAD_SSP3_SS0__GPIO_2_27 0x21b3 | ||
557 | MX28_PAD_AUART0_RX__GPIO_3_0 0x3003 | ||
558 | MX28_PAD_AUART0_TX__GPIO_3_1 0x3013 | ||
559 | MX28_PAD_AUART0_CTS__GPIO_3_2 0x3023 | ||
560 | MX28_PAD_AUART0_RTS__GPIO_3_3 0x3033 | ||
561 | MX28_PAD_AUART1_RX__GPIO_3_4 0x3043 | ||
562 | MX28_PAD_AUART1_TX__GPIO_3_5 0x3053 | ||
563 | MX28_PAD_AUART1_CTS__GPIO_3_6 0x3063 | ||
564 | MX28_PAD_AUART1_RTS__GPIO_3_7 0x3073 | ||
565 | MX28_PAD_AUART2_RX__GPIO_3_8 0x3083 | ||
566 | MX28_PAD_AUART2_TX__GPIO_3_9 0x3093 | ||
567 | MX28_PAD_AUART2_CTS__GPIO_3_10 0x30a3 | ||
568 | MX28_PAD_AUART2_RTS__GPIO_3_11 0x30b3 | ||
569 | MX28_PAD_AUART3_RX__GPIO_3_12 0x30c3 | ||
570 | MX28_PAD_AUART3_TX__GPIO_3_13 0x30d3 | ||
571 | MX28_PAD_AUART3_CTS__GPIO_3_14 0x30e3 | ||
572 | MX28_PAD_AUART3_RTS__GPIO_3_15 0x30f3 | ||
573 | MX28_PAD_PWM0__GPIO_3_16 0x3103 | ||
574 | MX28_PAD_PWM1__GPIO_3_17 0x3113 | ||
575 | MX28_PAD_PWM2__GPIO_3_18 0x3123 | ||
576 | MX28_PAD_SAIF0_MCLK__GPIO_3_20 0x3143 | ||
577 | MX28_PAD_SAIF0_LRCLK__GPIO_3_21 0x3153 | ||
578 | MX28_PAD_SAIF0_BITCLK__GPIO_3_22 0x3163 | ||
579 | MX28_PAD_SAIF0_SDATA0__GPIO_3_23 0x3173 | ||
580 | MX28_PAD_I2C0_SCL__GPIO_3_24 0x3183 | ||
581 | MX28_PAD_I2C0_SDA__GPIO_3_25 0x3193 | ||
582 | MX28_PAD_SAIF1_SDATA0__GPIO_3_26 0x31a3 | ||
583 | MX28_PAD_SPDIF__GPIO_3_27 0x31b3 | ||
584 | MX28_PAD_PWM3__GPIO_3_28 0x31c3 | ||
585 | MX28_PAD_PWM4__GPIO_3_29 0x31d3 | ||
586 | MX28_PAD_LCD_RESET__GPIO_3_30 0x31e3 | ||
587 | MX28_PAD_ENET0_MDC__GPIO_4_0 0x4003 | ||
588 | MX28_PAD_ENET0_MDIO__GPIO_4_1 0x4013 | ||
589 | MX28_PAD_ENET0_RX_EN__GPIO_4_2 0x4023 | ||
590 | MX28_PAD_ENET0_RXD0__GPIO_4_3 0x4033 | ||
591 | MX28_PAD_ENET0_RXD1__GPIO_4_4 0x4043 | ||
592 | MX28_PAD_ENET0_TX_CLK__GPIO_4_5 0x4053 | ||
593 | MX28_PAD_ENET0_TX_EN__GPIO_4_6 0x4063 | ||
594 | MX28_PAD_ENET0_TXD0__GPIO_4_7 0x4073 | ||
595 | MX28_PAD_ENET0_TXD1__GPIO_4_8 0x4083 | ||
596 | MX28_PAD_ENET0_RXD2__GPIO_4_9 0x4093 | ||
597 | MX28_PAD_ENET0_RXD3__GPIO_4_10 0x40a3 | ||
598 | MX28_PAD_ENET0_TXD2__GPIO_4_11 0x40b3 | ||
599 | MX28_PAD_ENET0_TXD3__GPIO_4_12 0x40c3 | ||
600 | MX28_PAD_ENET0_RX_CLK__GPIO_4_13 0x40d3 | ||
601 | MX28_PAD_ENET0_COL__GPIO_4_14 0x40e3 | ||
602 | MX28_PAD_ENET0_CRS__GPIO_4_15 0x40f3 | ||
603 | MX28_PAD_ENET_CLK__GPIO_4_16 0x4103 | ||
604 | MX28_PAD_JTAG_RTCK__GPIO_4_20 0x4143 | ||
605 | |||
606 | Valid values for i.MX23 pinmux-id: | ||
607 | |||
608 | pinmux id | ||
609 | ------ -- | ||
610 | MX23_PAD_GPMI_D00__GPMI_D00 0x0000 | ||
611 | MX23_PAD_GPMI_D01__GPMI_D01 0x0010 | ||
612 | MX23_PAD_GPMI_D02__GPMI_D02 0x0020 | ||
613 | MX23_PAD_GPMI_D03__GPMI_D03 0x0030 | ||
614 | MX23_PAD_GPMI_D04__GPMI_D04 0x0040 | ||
615 | MX23_PAD_GPMI_D05__GPMI_D05 0x0050 | ||
616 | MX23_PAD_GPMI_D06__GPMI_D06 0x0060 | ||
617 | MX23_PAD_GPMI_D07__GPMI_D07 0x0070 | ||
618 | MX23_PAD_GPMI_D08__GPMI_D08 0x0080 | ||
619 | MX23_PAD_GPMI_D09__GPMI_D09 0x0090 | ||
620 | MX23_PAD_GPMI_D10__GPMI_D10 0x00a0 | ||
621 | MX23_PAD_GPMI_D11__GPMI_D11 0x00b0 | ||
622 | MX23_PAD_GPMI_D12__GPMI_D12 0x00c0 | ||
623 | MX23_PAD_GPMI_D13__GPMI_D13 0x00d0 | ||
624 | MX23_PAD_GPMI_D14__GPMI_D14 0x00e0 | ||
625 | MX23_PAD_GPMI_D15__GPMI_D15 0x00f0 | ||
626 | MX23_PAD_GPMI_CLE__GPMI_CLE 0x0100 | ||
627 | MX23_PAD_GPMI_ALE__GPMI_ALE 0x0110 | ||
628 | MX23_PAD_GPMI_CE2N__GPMI_CE2N 0x0120 | ||
629 | MX23_PAD_GPMI_RDY0__GPMI_RDY0 0x0130 | ||
630 | MX23_PAD_GPMI_RDY1__GPMI_RDY1 0x0140 | ||
631 | MX23_PAD_GPMI_RDY2__GPMI_RDY2 0x0150 | ||
632 | MX23_PAD_GPMI_RDY3__GPMI_RDY3 0x0160 | ||
633 | MX23_PAD_GPMI_WPN__GPMI_WPN 0x0170 | ||
634 | MX23_PAD_GPMI_WRN__GPMI_WRN 0x0180 | ||
635 | MX23_PAD_GPMI_RDN__GPMI_RDN 0x0190 | ||
636 | MX23_PAD_AUART1_CTS__AUART1_CTS 0x01a0 | ||
637 | MX23_PAD_AUART1_RTS__AUART1_RTS 0x01b0 | ||
638 | MX23_PAD_AUART1_RX__AUART1_RX 0x01c0 | ||
639 | MX23_PAD_AUART1_TX__AUART1_TX 0x01d0 | ||
640 | MX23_PAD_I2C_SCL__I2C_SCL 0x01e0 | ||
641 | MX23_PAD_I2C_SDA__I2C_SDA 0x01f0 | ||
642 | MX23_PAD_LCD_D00__LCD_D00 0x1000 | ||
643 | MX23_PAD_LCD_D01__LCD_D01 0x1010 | ||
644 | MX23_PAD_LCD_D02__LCD_D02 0x1020 | ||
645 | MX23_PAD_LCD_D03__LCD_D03 0x1030 | ||
646 | MX23_PAD_LCD_D04__LCD_D04 0x1040 | ||
647 | MX23_PAD_LCD_D05__LCD_D05 0x1050 | ||
648 | MX23_PAD_LCD_D06__LCD_D06 0x1060 | ||
649 | MX23_PAD_LCD_D07__LCD_D07 0x1070 | ||
650 | MX23_PAD_LCD_D08__LCD_D08 0x1080 | ||
651 | MX23_PAD_LCD_D09__LCD_D09 0x1090 | ||
652 | MX23_PAD_LCD_D10__LCD_D10 0x10a0 | ||
653 | MX23_PAD_LCD_D11__LCD_D11 0x10b0 | ||
654 | MX23_PAD_LCD_D12__LCD_D12 0x10c0 | ||
655 | MX23_PAD_LCD_D13__LCD_D13 0x10d0 | ||
656 | MX23_PAD_LCD_D14__LCD_D14 0x10e0 | ||
657 | MX23_PAD_LCD_D15__LCD_D15 0x10f0 | ||
658 | MX23_PAD_LCD_D16__LCD_D16 0x1100 | ||
659 | MX23_PAD_LCD_D17__LCD_D17 0x1110 | ||
660 | MX23_PAD_LCD_RESET__LCD_RESET 0x1120 | ||
661 | MX23_PAD_LCD_RS__LCD_RS 0x1130 | ||
662 | MX23_PAD_LCD_WR__LCD_WR 0x1140 | ||
663 | MX23_PAD_LCD_CS__LCD_CS 0x1150 | ||
664 | MX23_PAD_LCD_DOTCK__LCD_DOTCK 0x1160 | ||
665 | MX23_PAD_LCD_ENABLE__LCD_ENABLE 0x1170 | ||
666 | MX23_PAD_LCD_HSYNC__LCD_HSYNC 0x1180 | ||
667 | MX23_PAD_LCD_VSYNC__LCD_VSYNC 0x1190 | ||
668 | MX23_PAD_PWM0__PWM0 0x11a0 | ||
669 | MX23_PAD_PWM1__PWM1 0x11b0 | ||
670 | MX23_PAD_PWM2__PWM2 0x11c0 | ||
671 | MX23_PAD_PWM3__PWM3 0x11d0 | ||
672 | MX23_PAD_PWM4__PWM4 0x11e0 | ||
673 | MX23_PAD_SSP1_CMD__SSP1_CMD 0x2000 | ||
674 | MX23_PAD_SSP1_DETECT__SSP1_DETECT 0x2010 | ||
675 | MX23_PAD_SSP1_DATA0__SSP1_DATA0 0x2020 | ||
676 | MX23_PAD_SSP1_DATA1__SSP1_DATA1 0x2030 | ||
677 | MX23_PAD_SSP1_DATA2__SSP1_DATA2 0x2040 | ||
678 | MX23_PAD_SSP1_DATA3__SSP1_DATA3 0x2050 | ||
679 | MX23_PAD_SSP1_SCK__SSP1_SCK 0x2060 | ||
680 | MX23_PAD_ROTARYA__ROTARYA 0x2070 | ||
681 | MX23_PAD_ROTARYB__ROTARYB 0x2080 | ||
682 | MX23_PAD_EMI_A00__EMI_A00 0x2090 | ||
683 | MX23_PAD_EMI_A01__EMI_A01 0x20a0 | ||
684 | MX23_PAD_EMI_A02__EMI_A02 0x20b0 | ||
685 | MX23_PAD_EMI_A03__EMI_A03 0x20c0 | ||
686 | MX23_PAD_EMI_A04__EMI_A04 0x20d0 | ||
687 | MX23_PAD_EMI_A05__EMI_A05 0x20e0 | ||
688 | MX23_PAD_EMI_A06__EMI_A06 0x20f0 | ||
689 | MX23_PAD_EMI_A07__EMI_A07 0x2100 | ||
690 | MX23_PAD_EMI_A08__EMI_A08 0x2110 | ||
691 | MX23_PAD_EMI_A09__EMI_A09 0x2120 | ||
692 | MX23_PAD_EMI_A10__EMI_A10 0x2130 | ||
693 | MX23_PAD_EMI_A11__EMI_A11 0x2140 | ||
694 | MX23_PAD_EMI_A12__EMI_A12 0x2150 | ||
695 | MX23_PAD_EMI_BA0__EMI_BA0 0x2160 | ||
696 | MX23_PAD_EMI_BA1__EMI_BA1 0x2170 | ||
697 | MX23_PAD_EMI_CASN__EMI_CASN 0x2180 | ||
698 | MX23_PAD_EMI_CE0N__EMI_CE0N 0x2190 | ||
699 | MX23_PAD_EMI_CE1N__EMI_CE1N 0x21a0 | ||
700 | MX23_PAD_GPMI_CE1N__GPMI_CE1N 0x21b0 | ||
701 | MX23_PAD_GPMI_CE0N__GPMI_CE0N 0x21c0 | ||
702 | MX23_PAD_EMI_CKE__EMI_CKE 0x21d0 | ||
703 | MX23_PAD_EMI_RASN__EMI_RASN 0x21e0 | ||
704 | MX23_PAD_EMI_WEN__EMI_WEN 0x21f0 | ||
705 | MX23_PAD_EMI_D00__EMI_D00 0x3000 | ||
706 | MX23_PAD_EMI_D01__EMI_D01 0x3010 | ||
707 | MX23_PAD_EMI_D02__EMI_D02 0x3020 | ||
708 | MX23_PAD_EMI_D03__EMI_D03 0x3030 | ||
709 | MX23_PAD_EMI_D04__EMI_D04 0x3040 | ||
710 | MX23_PAD_EMI_D05__EMI_D05 0x3050 | ||
711 | MX23_PAD_EMI_D06__EMI_D06 0x3060 | ||
712 | MX23_PAD_EMI_D07__EMI_D07 0x3070 | ||
713 | MX23_PAD_EMI_D08__EMI_D08 0x3080 | ||
714 | MX23_PAD_EMI_D09__EMI_D09 0x3090 | ||
715 | MX23_PAD_EMI_D10__EMI_D10 0x30a0 | ||
716 | MX23_PAD_EMI_D11__EMI_D11 0x30b0 | ||
717 | MX23_PAD_EMI_D12__EMI_D12 0x30c0 | ||
718 | MX23_PAD_EMI_D13__EMI_D13 0x30d0 | ||
719 | MX23_PAD_EMI_D14__EMI_D14 0x30e0 | ||
720 | MX23_PAD_EMI_D15__EMI_D15 0x30f0 | ||
721 | MX23_PAD_EMI_DQM0__EMI_DQM0 0x3100 | ||
722 | MX23_PAD_EMI_DQM1__EMI_DQM1 0x3110 | ||
723 | MX23_PAD_EMI_DQS0__EMI_DQS0 0x3120 | ||
724 | MX23_PAD_EMI_DQS1__EMI_DQS1 0x3130 | ||
725 | MX23_PAD_EMI_CLK__EMI_CLK 0x3140 | ||
726 | MX23_PAD_EMI_CLKN__EMI_CLKN 0x3150 | ||
727 | MX23_PAD_GPMI_D00__LCD_D8 0x0001 | ||
728 | MX23_PAD_GPMI_D01__LCD_D9 0x0011 | ||
729 | MX23_PAD_GPMI_D02__LCD_D10 0x0021 | ||
730 | MX23_PAD_GPMI_D03__LCD_D11 0x0031 | ||
731 | MX23_PAD_GPMI_D04__LCD_D12 0x0041 | ||
732 | MX23_PAD_GPMI_D05__LCD_D13 0x0051 | ||
733 | MX23_PAD_GPMI_D06__LCD_D14 0x0061 | ||
734 | MX23_PAD_GPMI_D07__LCD_D15 0x0071 | ||
735 | MX23_PAD_GPMI_D08__LCD_D18 0x0081 | ||
736 | MX23_PAD_GPMI_D09__LCD_D19 0x0091 | ||
737 | MX23_PAD_GPMI_D10__LCD_D20 0x00a1 | ||
738 | MX23_PAD_GPMI_D11__LCD_D21 0x00b1 | ||
739 | MX23_PAD_GPMI_D12__LCD_D22 0x00c1 | ||
740 | MX23_PAD_GPMI_D13__LCD_D23 0x00d1 | ||
741 | MX23_PAD_GPMI_D14__AUART2_RX 0x00e1 | ||
742 | MX23_PAD_GPMI_D15__AUART2_TX 0x00f1 | ||
743 | MX23_PAD_GPMI_CLE__LCD_D16 0x0101 | ||
744 | MX23_PAD_GPMI_ALE__LCD_D17 0x0111 | ||
745 | MX23_PAD_GPMI_CE2N__ATA_A2 0x0121 | ||
746 | MX23_PAD_AUART1_RTS__IR_CLK 0x01b1 | ||
747 | MX23_PAD_AUART1_RX__IR_RX 0x01c1 | ||
748 | MX23_PAD_AUART1_TX__IR_TX 0x01d1 | ||
749 | MX23_PAD_I2C_SCL__GPMI_RDY2 0x01e1 | ||
750 | MX23_PAD_I2C_SDA__GPMI_CE2N 0x01f1 | ||
751 | MX23_PAD_LCD_D00__ETM_DA8 0x1001 | ||
752 | MX23_PAD_LCD_D01__ETM_DA9 0x1011 | ||
753 | MX23_PAD_LCD_D02__ETM_DA10 0x1021 | ||
754 | MX23_PAD_LCD_D03__ETM_DA11 0x1031 | ||
755 | MX23_PAD_LCD_D04__ETM_DA12 0x1041 | ||
756 | MX23_PAD_LCD_D05__ETM_DA13 0x1051 | ||
757 | MX23_PAD_LCD_D06__ETM_DA14 0x1061 | ||
758 | MX23_PAD_LCD_D07__ETM_DA15 0x1071 | ||
759 | MX23_PAD_LCD_D08__ETM_DA0 0x1081 | ||
760 | MX23_PAD_LCD_D09__ETM_DA1 0x1091 | ||
761 | MX23_PAD_LCD_D10__ETM_DA2 0x10a1 | ||
762 | MX23_PAD_LCD_D11__ETM_DA3 0x10b1 | ||
763 | MX23_PAD_LCD_D12__ETM_DA4 0x10c1 | ||
764 | MX23_PAD_LCD_D13__ETM_DA5 0x10d1 | ||
765 | MX23_PAD_LCD_D14__ETM_DA6 0x10e1 | ||
766 | MX23_PAD_LCD_D15__ETM_DA7 0x10f1 | ||
767 | MX23_PAD_LCD_RESET__ETM_TCTL 0x1121 | ||
768 | MX23_PAD_LCD_RS__ETM_TCLK 0x1131 | ||
769 | MX23_PAD_LCD_DOTCK__GPMI_RDY3 0x1161 | ||
770 | MX23_PAD_LCD_ENABLE__I2C_SCL 0x1171 | ||
771 | MX23_PAD_LCD_HSYNC__I2C_SDA 0x1181 | ||
772 | MX23_PAD_LCD_VSYNC__LCD_BUSY 0x1191 | ||
773 | MX23_PAD_PWM0__ROTARYA 0x11a1 | ||
774 | MX23_PAD_PWM1__ROTARYB 0x11b1 | ||
775 | MX23_PAD_PWM2__GPMI_RDY3 0x11c1 | ||
776 | MX23_PAD_PWM3__ETM_TCTL 0x11d1 | ||
777 | MX23_PAD_PWM4__ETM_TCLK 0x11e1 | ||
778 | MX23_PAD_SSP1_DETECT__GPMI_CE3N 0x2011 | ||
779 | MX23_PAD_SSP1_DATA1__I2C_SCL 0x2031 | ||
780 | MX23_PAD_SSP1_DATA2__I2C_SDA 0x2041 | ||
781 | MX23_PAD_ROTARYA__AUART2_RTS 0x2071 | ||
782 | MX23_PAD_ROTARYB__AUART2_CTS 0x2081 | ||
783 | MX23_PAD_GPMI_D00__SSP2_DATA0 0x0002 | ||
784 | MX23_PAD_GPMI_D01__SSP2_DATA1 0x0012 | ||
785 | MX23_PAD_GPMI_D02__SSP2_DATA2 0x0022 | ||
786 | MX23_PAD_GPMI_D03__SSP2_DATA3 0x0032 | ||
787 | MX23_PAD_GPMI_D04__SSP2_DATA4 0x0042 | ||
788 | MX23_PAD_GPMI_D05__SSP2_DATA5 0x0052 | ||
789 | MX23_PAD_GPMI_D06__SSP2_DATA6 0x0062 | ||
790 | MX23_PAD_GPMI_D07__SSP2_DATA7 0x0072 | ||
791 | MX23_PAD_GPMI_D08__SSP1_DATA4 0x0082 | ||
792 | MX23_PAD_GPMI_D09__SSP1_DATA5 0x0092 | ||
793 | MX23_PAD_GPMI_D10__SSP1_DATA6 0x00a2 | ||
794 | MX23_PAD_GPMI_D11__SSP1_DATA7 0x00b2 | ||
795 | MX23_PAD_GPMI_D15__GPMI_CE3N 0x00f2 | ||
796 | MX23_PAD_GPMI_RDY0__SSP2_DETECT 0x0132 | ||
797 | MX23_PAD_GPMI_RDY1__SSP2_CMD 0x0142 | ||
798 | MX23_PAD_GPMI_WRN__SSP2_SCK 0x0182 | ||
799 | MX23_PAD_AUART1_CTS__SSP1_DATA4 0x01a2 | ||
800 | MX23_PAD_AUART1_RTS__SSP1_DATA5 0x01b2 | ||
801 | MX23_PAD_AUART1_RX__SSP1_DATA6 0x01c2 | ||
802 | MX23_PAD_AUART1_TX__SSP1_DATA7 0x01d2 | ||
803 | MX23_PAD_I2C_SCL__AUART1_TX 0x01e2 | ||
804 | MX23_PAD_I2C_SDA__AUART1_RX 0x01f2 | ||
805 | MX23_PAD_LCD_D08__SAIF2_SDATA0 0x1082 | ||
806 | MX23_PAD_LCD_D09__SAIF1_SDATA0 0x1092 | ||
807 | MX23_PAD_LCD_D10__SAIF_MCLK_BITCLK 0x10a2 | ||
808 | MX23_PAD_LCD_D11__SAIF_LRCLK 0x10b2 | ||
809 | MX23_PAD_LCD_D12__SAIF2_SDATA1 0x10c2 | ||
810 | MX23_PAD_LCD_D13__SAIF2_SDATA2 0x10d2 | ||
811 | MX23_PAD_LCD_D14__SAIF1_SDATA2 0x10e2 | ||
812 | MX23_PAD_LCD_D15__SAIF1_SDATA1 0x10f2 | ||
813 | MX23_PAD_LCD_D16__SAIF_ALT_BITCLK 0x1102 | ||
814 | MX23_PAD_LCD_RESET__GPMI_CE3N 0x1122 | ||
815 | MX23_PAD_PWM0__DUART_RX 0x11a2 | ||
816 | MX23_PAD_PWM1__DUART_TX 0x11b2 | ||
817 | MX23_PAD_PWM3__AUART1_CTS 0x11d2 | ||
818 | MX23_PAD_PWM4__AUART1_RTS 0x11e2 | ||
819 | MX23_PAD_SSP1_CMD__JTAG_TDO 0x2002 | ||
820 | MX23_PAD_SSP1_DETECT__USB_OTG_ID 0x2012 | ||
821 | MX23_PAD_SSP1_DATA0__JTAG_TDI 0x2022 | ||
822 | MX23_PAD_SSP1_DATA1__JTAG_TCLK 0x2032 | ||
823 | MX23_PAD_SSP1_DATA2__JTAG_RTCK 0x2042 | ||
824 | MX23_PAD_SSP1_DATA3__JTAG_TMS 0x2052 | ||
825 | MX23_PAD_SSP1_SCK__JTAG_TRST 0x2062 | ||
826 | MX23_PAD_ROTARYA__SPDIF 0x2072 | ||
827 | MX23_PAD_ROTARYB__GPMI_CE3N 0x2082 | ||
828 | MX23_PAD_GPMI_D00__GPIO_0_0 0x0003 | ||
829 | MX23_PAD_GPMI_D01__GPIO_0_1 0x0013 | ||
830 | MX23_PAD_GPMI_D02__GPIO_0_2 0x0023 | ||
831 | MX23_PAD_GPMI_D03__GPIO_0_3 0x0033 | ||
832 | MX23_PAD_GPMI_D04__GPIO_0_4 0x0043 | ||
833 | MX23_PAD_GPMI_D05__GPIO_0_5 0x0053 | ||
834 | MX23_PAD_GPMI_D06__GPIO_0_6 0x0063 | ||
835 | MX23_PAD_GPMI_D07__GPIO_0_7 0x0073 | ||
836 | MX23_PAD_GPMI_D08__GPIO_0_8 0x0083 | ||
837 | MX23_PAD_GPMI_D09__GPIO_0_9 0x0093 | ||
838 | MX23_PAD_GPMI_D10__GPIO_0_10 0x00a3 | ||
839 | MX23_PAD_GPMI_D11__GPIO_0_11 0x00b3 | ||
840 | MX23_PAD_GPMI_D12__GPIO_0_12 0x00c3 | ||
841 | MX23_PAD_GPMI_D13__GPIO_0_13 0x00d3 | ||
842 | MX23_PAD_GPMI_D14__GPIO_0_14 0x00e3 | ||
843 | MX23_PAD_GPMI_D15__GPIO_0_15 0x00f3 | ||
844 | MX23_PAD_GPMI_CLE__GPIO_0_16 0x0103 | ||
845 | MX23_PAD_GPMI_ALE__GPIO_0_17 0x0113 | ||
846 | MX23_PAD_GPMI_CE2N__GPIO_0_18 0x0123 | ||
847 | MX23_PAD_GPMI_RDY0__GPIO_0_19 0x0133 | ||
848 | MX23_PAD_GPMI_RDY1__GPIO_0_20 0x0143 | ||
849 | MX23_PAD_GPMI_RDY2__GPIO_0_21 0x0153 | ||
850 | MX23_PAD_GPMI_RDY3__GPIO_0_22 0x0163 | ||
851 | MX23_PAD_GPMI_WPN__GPIO_0_23 0x0173 | ||
852 | MX23_PAD_GPMI_WRN__GPIO_0_24 0x0183 | ||
853 | MX23_PAD_GPMI_RDN__GPIO_0_25 0x0193 | ||
854 | MX23_PAD_AUART1_CTS__GPIO_0_26 0x01a3 | ||
855 | MX23_PAD_AUART1_RTS__GPIO_0_27 0x01b3 | ||
856 | MX23_PAD_AUART1_RX__GPIO_0_28 0x01c3 | ||
857 | MX23_PAD_AUART1_TX__GPIO_0_29 0x01d3 | ||
858 | MX23_PAD_I2C_SCL__GPIO_0_30 0x01e3 | ||
859 | MX23_PAD_I2C_SDA__GPIO_0_31 0x01f3 | ||
860 | MX23_PAD_LCD_D00__GPIO_1_0 0x1003 | ||
861 | MX23_PAD_LCD_D01__GPIO_1_1 0x1013 | ||
862 | MX23_PAD_LCD_D02__GPIO_1_2 0x1023 | ||
863 | MX23_PAD_LCD_D03__GPIO_1_3 0x1033 | ||
864 | MX23_PAD_LCD_D04__GPIO_1_4 0x1043 | ||
865 | MX23_PAD_LCD_D05__GPIO_1_5 0x1053 | ||
866 | MX23_PAD_LCD_D06__GPIO_1_6 0x1063 | ||
867 | MX23_PAD_LCD_D07__GPIO_1_7 0x1073 | ||
868 | MX23_PAD_LCD_D08__GPIO_1_8 0x1083 | ||
869 | MX23_PAD_LCD_D09__GPIO_1_9 0x1093 | ||
870 | MX23_PAD_LCD_D10__GPIO_1_10 0x10a3 | ||
871 | MX23_PAD_LCD_D11__GPIO_1_11 0x10b3 | ||
872 | MX23_PAD_LCD_D12__GPIO_1_12 0x10c3 | ||
873 | MX23_PAD_LCD_D13__GPIO_1_13 0x10d3 | ||
874 | MX23_PAD_LCD_D14__GPIO_1_14 0x10e3 | ||
875 | MX23_PAD_LCD_D15__GPIO_1_15 0x10f3 | ||
876 | MX23_PAD_LCD_D16__GPIO_1_16 0x1103 | ||
877 | MX23_PAD_LCD_D17__GPIO_1_17 0x1113 | ||
878 | MX23_PAD_LCD_RESET__GPIO_1_18 0x1123 | ||
879 | MX23_PAD_LCD_RS__GPIO_1_19 0x1133 | ||
880 | MX23_PAD_LCD_WR__GPIO_1_20 0x1143 | ||
881 | MX23_PAD_LCD_CS__GPIO_1_21 0x1153 | ||
882 | MX23_PAD_LCD_DOTCK__GPIO_1_22 0x1163 | ||
883 | MX23_PAD_LCD_ENABLE__GPIO_1_23 0x1173 | ||
884 | MX23_PAD_LCD_HSYNC__GPIO_1_24 0x1183 | ||
885 | MX23_PAD_LCD_VSYNC__GPIO_1_25 0x1193 | ||
886 | MX23_PAD_PWM0__GPIO_1_26 0x11a3 | ||
887 | MX23_PAD_PWM1__GPIO_1_27 0x11b3 | ||
888 | MX23_PAD_PWM2__GPIO_1_28 0x11c3 | ||
889 | MX23_PAD_PWM3__GPIO_1_29 0x11d3 | ||
890 | MX23_PAD_PWM4__GPIO_1_30 0x11e3 | ||
891 | MX23_PAD_SSP1_CMD__GPIO_2_0 0x2003 | ||
892 | MX23_PAD_SSP1_DETECT__GPIO_2_1 0x2013 | ||
893 | MX23_PAD_SSP1_DATA0__GPIO_2_2 0x2023 | ||
894 | MX23_PAD_SSP1_DATA1__GPIO_2_3 0x2033 | ||
895 | MX23_PAD_SSP1_DATA2__GPIO_2_4 0x2043 | ||
896 | MX23_PAD_SSP1_DATA3__GPIO_2_5 0x2053 | ||
897 | MX23_PAD_SSP1_SCK__GPIO_2_6 0x2063 | ||
898 | MX23_PAD_ROTARYA__GPIO_2_7 0x2073 | ||
899 | MX23_PAD_ROTARYB__GPIO_2_8 0x2083 | ||
900 | MX23_PAD_EMI_A00__GPIO_2_9 0x2093 | ||
901 | MX23_PAD_EMI_A01__GPIO_2_10 0x20a3 | ||
902 | MX23_PAD_EMI_A02__GPIO_2_11 0x20b3 | ||
903 | MX23_PAD_EMI_A03__GPIO_2_12 0x20c3 | ||
904 | MX23_PAD_EMI_A04__GPIO_2_13 0x20d3 | ||
905 | MX23_PAD_EMI_A05__GPIO_2_14 0x20e3 | ||
906 | MX23_PAD_EMI_A06__GPIO_2_15 0x20f3 | ||
907 | MX23_PAD_EMI_A07__GPIO_2_16 0x2103 | ||
908 | MX23_PAD_EMI_A08__GPIO_2_17 0x2113 | ||
909 | MX23_PAD_EMI_A09__GPIO_2_18 0x2123 | ||
910 | MX23_PAD_EMI_A10__GPIO_2_19 0x2133 | ||
911 | MX23_PAD_EMI_A11__GPIO_2_20 0x2143 | ||
912 | MX23_PAD_EMI_A12__GPIO_2_21 0x2153 | ||
913 | MX23_PAD_EMI_BA0__GPIO_2_22 0x2163 | ||
914 | MX23_PAD_EMI_BA1__GPIO_2_23 0x2173 | ||
915 | MX23_PAD_EMI_CASN__GPIO_2_24 0x2183 | ||
916 | MX23_PAD_EMI_CE0N__GPIO_2_25 0x2193 | ||
917 | MX23_PAD_EMI_CE1N__GPIO_2_26 0x21a3 | ||
918 | MX23_PAD_GPMI_CE1N__GPIO_2_27 0x21b3 | ||
919 | MX23_PAD_GPMI_CE0N__GPIO_2_28 0x21c3 | ||
920 | MX23_PAD_EMI_CKE__GPIO_2_29 0x21d3 | ||
921 | MX23_PAD_EMI_RASN__GPIO_2_30 0x21e3 | ||
922 | MX23_PAD_EMI_WEN__GPIO_2_31 0x21f3 | ||
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt index 5a02e30dd262..7069a0b84e3a 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt | |||
@@ -72,6 +72,13 @@ Optional properties: | |||
72 | /* pin base, nr pins & gpio function */ | 72 | /* pin base, nr pins & gpio function */ |
73 | pinctrl-single,gpio-range = <&range 0 3 0 &range 3 9 1>; | 73 | pinctrl-single,gpio-range = <&range 0 3 0 &range 3 9 1>; |
74 | 74 | ||
75 | - interrupt-controller : standard interrupt controller binding if using | ||
76 | interrupts for wake-up events for example. In this case pinctrl-single | ||
77 | is set up as a chained interrupt controller and the wake-up interrupts | ||
78 | can be requested by the drivers using request_irq(). | ||
79 | |||
80 | - #interrupt-cells : standard interrupt binding if using interrupts | ||
81 | |||
75 | This driver assumes that there is only one register for each pin (unless the | 82 | This driver assumes that there is only one register for each pin (unless the |
76 | pinctrl-single,bit-per-mux is set), and uses the common pinctrl bindings as | 83 | pinctrl-single,bit-per-mux is set), and uses the common pinctrl bindings as |
77 | specified in the pinctrl-bindings.txt document in this directory. | 84 | specified in the pinctrl-bindings.txt document in this directory. |
@@ -121,6 +128,8 @@ pmx_core: pinmux@4a100040 { | |||
121 | reg = <0x4a100040 0x0196>; | 128 | reg = <0x4a100040 0x0196>; |
122 | #address-cells = <1>; | 129 | #address-cells = <1>; |
123 | #size-cells = <0>; | 130 | #size-cells = <0>; |
131 | #interrupt-cells = <1>; | ||
132 | interrupt-controller; | ||
124 | pinctrl-single,register-width = <16>; | 133 | pinctrl-single,register-width = <16>; |
125 | pinctrl-single,function-mask = <0xffff>; | 134 | pinctrl-single,function-mask = <0xffff>; |
126 | }; | 135 | }; |
@@ -131,6 +140,8 @@ pmx_wkup: pinmux@4a31e040 { | |||
131 | reg = <0x4a31e040 0x0038>; | 140 | reg = <0x4a31e040 0x0038>; |
132 | #address-cells = <1>; | 141 | #address-cells = <1>; |
133 | #size-cells = <0>; | 142 | #size-cells = <0>; |
143 | #interrupt-cells = <1>; | ||
144 | interrupt-controller; | ||
134 | pinctrl-single,register-width = <16>; | 145 | pinctrl-single,register-width = <16>; |
135 | pinctrl-single,function-mask = <0xffff>; | 146 | pinctrl-single,function-mask = <0xffff>; |
136 | }; | 147 | }; |
diff --git a/Documentation/devicetree/bindings/usb/ux500-usb.txt b/Documentation/devicetree/bindings/usb/ux500-usb.txt index 330d6ec15401..439a41c79afa 100644 --- a/Documentation/devicetree/bindings/usb/ux500-usb.txt +++ b/Documentation/devicetree/bindings/usb/ux500-usb.txt | |||
@@ -15,7 +15,7 @@ Optional properties: | |||
15 | Example: | 15 | Example: |
16 | 16 | ||
17 | usb_per5@a03e0000 { | 17 | usb_per5@a03e0000 { |
18 | compatible = "stericsson,db8500-musb", "mentor,musb"; | 18 | compatible = "stericsson,db8500-musb"; |
19 | reg = <0xa03e0000 0x10000>; | 19 | reg = <0xa03e0000 0x10000>; |
20 | interrupts = <0 23 0x4>; | 20 | interrupts = <0 23 0x4>; |
21 | interrupt-names = "mc"; | 21 | interrupt-names = "mc"; |
diff --git a/Documentation/devicetree/bindings/video/exynos_hdmi.txt b/Documentation/devicetree/bindings/video/exynos_hdmi.txt index 323983be3c30..50decf8e1b90 100644 --- a/Documentation/devicetree/bindings/video/exynos_hdmi.txt +++ b/Documentation/devicetree/bindings/video/exynos_hdmi.txt | |||
@@ -12,7 +12,19 @@ Required properties: | |||
12 | a) phandle of the gpio controller node. | 12 | a) phandle of the gpio controller node. |
13 | b) pin number within the gpio controller. | 13 | b) pin number within the gpio controller. |
14 | c) optional flags and pull up/down. | 14 | c) optional flags and pull up/down. |
15 | 15 | - clocks: list of clock IDs from SoC clock driver. | |
16 | a) hdmi: Gate of HDMI IP bus clock. | ||
17 | b) sclk_hdmi: Gate of HDMI special clock. | ||
18 | c) sclk_pixel: Pixel special clock, one of the two possible inputs of | ||
19 | HDMI clock mux. | ||
20 | d) sclk_hdmiphy: HDMI PHY clock output, one of two possible inputs of | ||
21 | HDMI clock mux. | ||
22 | e) mout_hdmi: It is required by the driver to switch between the 2 | ||
23 | parents i.e. sclk_pixel and sclk_hdmiphy. If hdmiphy is stable | ||
24 | after configuration, parent is set to sclk_hdmiphy else | ||
25 | sclk_pixel. | ||
26 | - clock-names: aliases as per driver requirements for above clock IDs: | ||
27 | "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy" and "mout_hdmi". | ||
16 | Example: | 28 | Example: |
17 | 29 | ||
18 | hdmi { | 30 | hdmi { |
diff --git a/Documentation/devicetree/bindings/video/exynos_mixer.txt b/Documentation/devicetree/bindings/video/exynos_mixer.txt index 3334b0a8e343..7bfde9c9d658 100644 --- a/Documentation/devicetree/bindings/video/exynos_mixer.txt +++ b/Documentation/devicetree/bindings/video/exynos_mixer.txt | |||
@@ -10,6 +10,10 @@ Required properties: | |||
10 | - reg: physical base address of the mixer and length of memory mapped | 10 | - reg: physical base address of the mixer and length of memory mapped |
11 | region. | 11 | region. |
12 | - interrupts: interrupt number to the cpu. | 12 | - interrupts: interrupt number to the cpu. |
13 | - clocks: list of clock IDs from SoC clock driver. | ||
14 | a) mixer: Gate of Mixer IP bus clock. | ||
15 | b) sclk_hdmi: HDMI Special clock, one of the two possible inputs of | ||
16 | mixer mux. | ||
13 | 17 | ||
14 | Example: | 18 | Example: |
15 | 19 | ||
diff --git a/MAINTAINERS b/MAINTAINERS index 7a00136a0439..4d66a03e4f57 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -933,7 +933,7 @@ M: Javier Martinez Canillas <javier@dowhile0.org> | |||
933 | L: linux-omap@vger.kernel.org | 933 | L: linux-omap@vger.kernel.org |
934 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 934 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
935 | S: Maintained | 935 | S: Maintained |
936 | F: arch/arm/mach-omap2/board-igep0020.c | 936 | F: arch/arm/boot/dts/omap3-igep* |
937 | 937 | ||
938 | ARM/INCOME PXA270 SUPPORT | 938 | ARM/INCOME PXA270 SUPPORT |
939 | M: Marek Vasut <marek.vasut@gmail.com> | 939 | M: Marek Vasut <marek.vasut@gmail.com> |
@@ -6125,6 +6125,12 @@ L: linux-omap@vger.kernel.org | |||
6125 | S: Maintained | 6125 | S: Maintained |
6126 | F: drivers/gpio/gpio-omap.c | 6126 | F: drivers/gpio/gpio-omap.c |
6127 | 6127 | ||
6128 | OMAP/NEWFLOW NANOBONE MACHINE SUPPORT | ||
6129 | M: Mark Jackson <mpfj@newflow.co.uk> | ||
6130 | L: linux-omap@vger.kernel.org | ||
6131 | S: Maintained | ||
6132 | F: arch/arm/boot/dts/am335x-nano.dts | ||
6133 | |||
6128 | OMFS FILESYSTEM | 6134 | OMFS FILESYSTEM |
6129 | M: Bob Copeland <me@bobcopeland.com> | 6135 | M: Bob Copeland <me@bobcopeland.com> |
6130 | L: linux-karma-devel@lists.sourceforge.net | 6136 | L: linux-karma-devel@lists.sourceforge.net |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 7662b71628cd..d57c1a65b24f 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -40,17 +40,17 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb | |||
40 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb | 40 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb |
41 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb | 41 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb |
42 | dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb | 42 | dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb |
43 | |||
44 | dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb | 43 | dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb |
45 | |||
46 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb | 44 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb |
47 | dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb \ | 45 | dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm11351-brt.dtb \ |
48 | bcm28155-ap.dtb | 46 | bcm28155-ap.dtb |
47 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb | ||
49 | dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \ | 48 | dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \ |
50 | da850-evm.dtb | 49 | da850-evm.dtb |
51 | dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ | 50 | dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ |
52 | dove-cubox.dtb \ | 51 | dove-cubox.dtb \ |
53 | dove-d2plug.dtb \ | 52 | dove-d2plug.dtb \ |
53 | dove-d3plug.dtb \ | ||
54 | dove-dove-db.dtb | 54 | dove-dove-db.dtb |
55 | dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ | 55 | dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ |
56 | exynos4210-smdkv310.dtb \ | 56 | exynos4210-smdkv310.dtb \ |
@@ -96,22 +96,25 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \ | |||
96 | kirkwood-ns2mini.dtb \ | 96 | kirkwood-ns2mini.dtb \ |
97 | kirkwood-nsa310.dtb \ | 97 | kirkwood-nsa310.dtb \ |
98 | kirkwood-nsa310a.dtb \ | 98 | kirkwood-nsa310a.dtb \ |
99 | kirkwood-openblocks_a6.dtb \ | ||
100 | kirkwood-openblocks_a7.dtb \ | ||
99 | kirkwood-sheevaplug.dtb \ | 101 | kirkwood-sheevaplug.dtb \ |
100 | kirkwood-sheevaplug-esata.dtb \ | 102 | kirkwood-sheevaplug-esata.dtb \ |
101 | kirkwood-topkick.dtb \ | 103 | kirkwood-topkick.dtb \ |
102 | kirkwood-ts219-6281.dtb \ | 104 | kirkwood-ts219-6281.dtb \ |
103 | kirkwood-ts219-6282.dtb \ | 105 | kirkwood-ts219-6282.dtb |
104 | kirkwood-openblocks_a6.dtb | ||
105 | dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb | 106 | dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb |
106 | dtb-$(CONFIG_ARCH_MSM) += qcom-msm8660-surf.dtb \ | 107 | dtb-$(CONFIG_ARCH_MSM) += qcom-msm8660-surf.dtb \ |
107 | qcom-msm8960-cdp.dtb | 108 | qcom-msm8960-cdp.dtb |
108 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ | 109 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ |
109 | armada-370-mirabox.dtb \ | 110 | armada-370-mirabox.dtb \ |
110 | armada-370-netgear-rn102.dtb \ | 111 | armada-370-netgear-rn102.dtb \ |
112 | armada-370-netgear-rn104.dtb \ | ||
111 | armada-370-rd.dtb \ | 113 | armada-370-rd.dtb \ |
112 | armada-xp-axpwifiap.dtb \ | 114 | armada-xp-axpwifiap.dtb \ |
113 | armada-xp-db.dtb \ | 115 | armada-xp-db.dtb \ |
114 | armada-xp-gp.dtb \ | 116 | armada-xp-gp.dtb \ |
117 | armada-xp-matrix.dtb \ | ||
115 | armada-xp-openblocks-ax3-4.dtb | 118 | armada-xp-openblocks-ax3-4.dtb |
116 | dtb-$(CONFIG_ARCH_MXC) += \ | 119 | dtb-$(CONFIG_ARCH_MXC) += \ |
117 | imx25-karo-tx25.dtb \ | 120 | imx25-karo-tx25.dtb \ |
@@ -142,8 +145,10 @@ dtb-$(CONFIG_ARCH_MXC) += \ | |||
142 | imx6q-sabrelite.dtb \ | 145 | imx6q-sabrelite.dtb \ |
143 | imx6q-sabresd.dtb \ | 146 | imx6q-sabresd.dtb \ |
144 | imx6q-sbc6x.dtb \ | 147 | imx6q-sbc6x.dtb \ |
148 | imx6q-udoo.dtb \ | ||
145 | imx6q-wandboard.dtb \ | 149 | imx6q-wandboard.dtb \ |
146 | imx6sl-evk.dtb \ | 150 | imx6sl-evk.dtb \ |
151 | vf610-cosmic.dtb \ | ||
147 | vf610-twr.dtb | 152 | vf610-twr.dtb |
148 | dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ | 153 | dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ |
149 | imx23-olinuxino.dtb \ | 154 | imx23-olinuxino.dtb \ |
@@ -159,6 +164,7 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ | |||
159 | imx28-cfa10057.dtb \ | 164 | imx28-cfa10057.dtb \ |
160 | imx28-cfa10058.dtb \ | 165 | imx28-cfa10058.dtb \ |
161 | imx28-evk.dtb \ | 166 | imx28-evk.dtb \ |
167 | imx28-m28cu3.dtb \ | ||
162 | imx28-m28evk.dtb \ | 168 | imx28-m28evk.dtb \ |
163 | imx28-sps1.dtb \ | 169 | imx28-sps1.dtb \ |
164 | imx28-tx28.dtb | 170 | imx28-tx28.dtb |
@@ -172,9 +178,15 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
172 | omap3-devkit8000.dtb \ | 178 | omap3-devkit8000.dtb \ |
173 | omap3-beagle-xm.dtb \ | 179 | omap3-beagle-xm.dtb \ |
174 | omap3-evm.dtb \ | 180 | omap3-evm.dtb \ |
181 | omap3-evm-37xx.dtb \ | ||
182 | omap3-n900.dtb \ | ||
183 | omap3-n9.dtb \ | ||
184 | omap3-n950.dtb \ | ||
175 | omap3-tobi.dtb \ | 185 | omap3-tobi.dtb \ |
186 | omap3-gta04.dtb \ | ||
176 | omap3-igep0020.dtb \ | 187 | omap3-igep0020.dtb \ |
177 | omap3-igep0030.dtb \ | 188 | omap3-igep0030.dtb \ |
189 | omap3-zoom3.dtb \ | ||
178 | omap4-panda.dtb \ | 190 | omap4-panda.dtb \ |
179 | omap4-panda-a4.dtb \ | 191 | omap4-panda-a4.dtb \ |
180 | omap4-panda-es.dtb \ | 192 | omap4-panda-es.dtb \ |
@@ -186,17 +198,24 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
186 | am335x-evmsk.dtb \ | 198 | am335x-evmsk.dtb \ |
187 | am335x-bone.dtb \ | 199 | am335x-bone.dtb \ |
188 | am335x-boneblack.dtb \ | 200 | am335x-boneblack.dtb \ |
201 | am335x-nano.dtb \ | ||
202 | am335x-base0033.dtb \ | ||
189 | am3517-evm.dtb \ | 203 | am3517-evm.dtb \ |
190 | am3517_mt_ventoux.dtb \ | 204 | am3517_mt_ventoux.dtb \ |
191 | am43x-epos-evm.dtb | 205 | am43x-epos-evm.dtb \ |
206 | dra7-evm.dtb | ||
192 | dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb | 207 | dtb-$(CONFIG_ARCH_ORION5X) += orion5x-lacie-ethernet-disk-mini-v2.dtb |
193 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb | 208 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb |
194 | dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \ | 209 | dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \ |
195 | ste-hrefprev60.dtb \ | 210 | ste-hrefprev60-stuib.dtb \ |
196 | ste-hrefv60plus.dtb \ | 211 | ste-hrefprev60-tvk.dtb \ |
212 | ste-hrefv60plus-stuib.dtb \ | ||
213 | ste-hrefv60plus-tvk.dtb \ | ||
197 | ste-ccu8540.dtb \ | 214 | ste-ccu8540.dtb \ |
198 | ste-ccu9540.dtb | 215 | ste-ccu9540.dtb |
199 | dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb | 216 | dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb |
217 | dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \ | ||
218 | s3c6410-smdk6410.dtb | ||
200 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | 219 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ |
201 | r7s72100-genmai.dtb \ | 220 | r7s72100-genmai.dtb \ |
202 | r8a7740-armadillo800eva.dtb \ | 221 | r8a7740-armadillo800eva.dtb \ |
@@ -214,7 +233,9 @@ dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | |||
214 | r8a73a4-ape6evm-reference.dtb \ | 233 | r8a73a4-ape6evm-reference.dtb \ |
215 | sh7372-mackerel.dtb | 234 | sh7372-mackerel.dtb |
216 | dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb | 235 | dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb |
217 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \ | 236 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \ |
237 | socfpga_cyclone5_socdk.dtb \ | ||
238 | socfpga_cyclone5_sockit.dtb \ | ||
218 | socfpga_vt.dtb | 239 | socfpga_vt.dtb |
219 | dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ | 240 | dtb-$(CONFIG_ARCH_SPEAR13XX) += spear1310-evb.dtb \ |
220 | spear1340-evb.dtb | 241 | spear1340-evb.dtb |
@@ -236,6 +257,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ | |||
236 | sun5i-a13-olinuxino.dtb \ | 257 | sun5i-a13-olinuxino.dtb \ |
237 | sun6i-a31-colombus.dtb \ | 258 | sun6i-a31-colombus.dtb \ |
238 | sun7i-a20-cubieboard2.dtb \ | 259 | sun7i-a20-cubieboard2.dtb \ |
260 | sun7i-a20-cubietruck.dtb \ | ||
239 | sun7i-a20-olinuxino-micro.dtb | 261 | sun7i-a20-olinuxino-micro.dtb |
240 | dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ | 262 | dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ |
241 | tegra20-iris-512.dtb \ | 263 | tegra20-iris-512.dtb \ |
@@ -250,7 +272,8 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ | |||
250 | tegra30-beaver.dtb \ | 272 | tegra30-beaver.dtb \ |
251 | tegra30-cardhu-a02.dtb \ | 273 | tegra30-cardhu-a02.dtb \ |
252 | tegra30-cardhu-a04.dtb \ | 274 | tegra30-cardhu-a04.dtb \ |
253 | tegra114-dalmore.dtb | 275 | tegra114-dalmore.dtb \ |
276 | tegra124-venice2.dtb | ||
254 | dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \ | 277 | dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \ |
255 | versatile-pb.dtb | 278 | versatile-pb.dtb |
256 | dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb | 279 | dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb |
diff --git a/arch/arm/boot/dts/am335x-base0033.dts b/arch/arm/boot/dts/am335x-base0033.dts new file mode 100644 index 000000000000..b4f95c2bbf74 --- /dev/null +++ b/arch/arm/boot/dts/am335x-base0033.dts | |||
@@ -0,0 +1,16 @@ | |||
1 | /* | ||
2 | * am335x-base0033.dts - Device Tree file for IGEP AQUILA EXPANSION | ||
3 | * | ||
4 | * Copyright (C) 2013 ISEE 2007 SL - http://www.isee.biz | ||
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-igep0033.dtsi" | ||
12 | |||
13 | / { | ||
14 | model = "IGEP COM AM335x on AQUILA Expansion"; | ||
15 | compatible = "isee,am335x-base0033", "isee,am335x-igep0033", "ti,am33xx"; | ||
16 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi index 2f66deda9f5c..e3f27ec31718 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi | |||
@@ -21,177 +21,205 @@ | |||
21 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 21 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
22 | }; | 22 | }; |
23 | 23 | ||
24 | am33xx_pinmux: pinmux@44e10800 { | 24 | leds { |
25 | pinctrl-names = "default"; | 25 | pinctrl-names = "default"; |
26 | pinctrl-0 = <&clkout2_pin>; | 26 | pinctrl-0 = <&user_leds_s0>; |
27 | |||
28 | user_leds_s0: user_leds_s0 { | ||
29 | pinctrl-single,pins = < | ||
30 | 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ | ||
31 | 0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */ | ||
32 | 0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ | ||
33 | 0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */ | ||
34 | >; | ||
35 | }; | ||
36 | 27 | ||
37 | i2c0_pins: pinmux_i2c0_pins { | 28 | compatible = "gpio-leds"; |
38 | pinctrl-single,pins = < | ||
39 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
40 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
41 | >; | ||
42 | }; | ||
43 | 29 | ||
44 | uart0_pins: pinmux_uart0_pins { | 30 | led@2 { |
45 | pinctrl-single,pins = < | 31 | label = "beaglebone:green:heartbeat"; |
46 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | 32 | gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>; |
47 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | 33 | linux,default-trigger = "heartbeat"; |
48 | >; | 34 | default-state = "off"; |
49 | }; | 35 | }; |
50 | 36 | ||
51 | clkout2_pin: pinmux_clkout2_pin { | 37 | led@3 { |
52 | pinctrl-single,pins = < | 38 | label = "beaglebone:green:mmc0"; |
53 | 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ | 39 | gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; |
54 | >; | 40 | linux,default-trigger = "mmc0"; |
41 | default-state = "off"; | ||
55 | }; | 42 | }; |
56 | 43 | ||
57 | cpsw_default: cpsw_default { | 44 | led@4 { |
58 | pinctrl-single,pins = < | 45 | label = "beaglebone:green:usr2"; |
59 | /* Slave 1 */ | 46 | gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; |
60 | 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */ | 47 | linux,default-trigger = "cpu0"; |
61 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */ | 48 | default-state = "off"; |
62 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */ | ||
63 | 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */ | ||
64 | 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */ | ||
65 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */ | ||
66 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */ | ||
67 | 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */ | ||
68 | 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */ | ||
69 | 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */ | ||
70 | 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */ | ||
71 | 0x13c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */ | ||
72 | 0x140 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */ | ||
73 | >; | ||
74 | }; | 49 | }; |
75 | 50 | ||
76 | cpsw_sleep: cpsw_sleep { | 51 | led@5 { |
77 | pinctrl-single,pins = < | 52 | label = "beaglebone:green:usr3"; |
78 | /* Slave 1 reset value */ | 53 | gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>; |
79 | 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) | 54 | linux,default-trigger = "mmc1"; |
80 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | 55 | default-state = "off"; |
81 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
82 | 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
83 | 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
84 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
85 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
86 | 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
87 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
88 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
89 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
90 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
91 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
92 | >; | ||
93 | }; | 56 | }; |
57 | }; | ||
94 | 58 | ||
95 | davinci_mdio_default: davinci_mdio_default { | 59 | vmmcsd_fixed: fixedregulator@0 { |
96 | pinctrl-single,pins = < | 60 | compatible = "regulator-fixed"; |
97 | /* MDIO */ | 61 | regulator-name = "vmmcsd_fixed"; |
98 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | 62 | regulator-min-microvolt = <3300000>; |
99 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | 63 | regulator-max-microvolt = <3300000>; |
100 | >; | 64 | }; |
101 | }; | 65 | }; |
102 | 66 | ||
103 | davinci_mdio_sleep: davinci_mdio_sleep { | 67 | &am33xx_pinmux { |
104 | pinctrl-single,pins = < | 68 | pinctrl-names = "default"; |
105 | /* MDIO reset value */ | 69 | pinctrl-0 = <&clkout2_pin>; |
106 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | 70 | |
107 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | 71 | user_leds_s0: user_leds_s0 { |
108 | >; | 72 | pinctrl-single,pins = < |
109 | }; | 73 | 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ |
74 | 0x58 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */ | ||
75 | 0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ | ||
76 | 0x60 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */ | ||
77 | >; | ||
110 | }; | 78 | }; |
111 | 79 | ||
112 | ocp { | 80 | i2c0_pins: pinmux_i2c0_pins { |
113 | uart0: serial@44e09000 { | 81 | pinctrl-single,pins = < |
114 | pinctrl-names = "default"; | 82 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ |
115 | pinctrl-0 = <&uart0_pins>; | 83 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ |
84 | >; | ||
85 | }; | ||
116 | 86 | ||
117 | status = "okay"; | 87 | uart0_pins: pinmux_uart0_pins { |
118 | }; | 88 | pinctrl-single,pins = < |
89 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
90 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
91 | >; | ||
92 | }; | ||
119 | 93 | ||
120 | musb: usb@47400000 { | 94 | clkout2_pin: pinmux_clkout2_pin { |
121 | status = "okay"; | 95 | pinctrl-single,pins = < |
96 | 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ | ||
97 | >; | ||
98 | }; | ||
122 | 99 | ||
123 | control@44e10000 { | 100 | cpsw_default: cpsw_default { |
124 | status = "okay"; | 101 | pinctrl-single,pins = < |
125 | }; | 102 | /* Slave 1 */ |
103 | 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxerr.mii1_rxerr */ | ||
104 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txen.mii1_txen */ | ||
105 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxdv.mii1_rxdv */ | ||
106 | 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd3.mii1_txd3 */ | ||
107 | 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd2.mii1_txd2 */ | ||
108 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd1.mii1_txd1 */ | ||
109 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mii1_txd0.mii1_txd0 */ | ||
110 | 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_txclk.mii1_txclk */ | ||
111 | 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxclk.mii1_rxclk */ | ||
112 | 0x134 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd3.mii1_rxd3 */ | ||
113 | 0x138 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd2.mii1_rxd2 */ | ||
114 | 0x13c (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd1.mii1_rxd1 */ | ||
115 | 0x140 (PIN_INPUT_PULLUP | MUX_MODE0) /* mii1_rxd0.mii1_rxd0 */ | ||
116 | >; | ||
117 | }; | ||
126 | 118 | ||
127 | usb-phy@47401300 { | 119 | cpsw_sleep: cpsw_sleep { |
128 | status = "okay"; | 120 | pinctrl-single,pins = < |
129 | }; | 121 | /* Slave 1 reset value */ |
122 | 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
123 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
124 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
125 | 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
126 | 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
127 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
128 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
129 | 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
130 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
131 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
132 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
133 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
134 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
135 | >; | ||
136 | }; | ||
130 | 137 | ||
131 | usb-phy@47401b00 { | 138 | davinci_mdio_default: davinci_mdio_default { |
132 | status = "okay"; | 139 | pinctrl-single,pins = < |
133 | }; | 140 | /* MDIO */ |
141 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | ||
142 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | ||
143 | >; | ||
144 | }; | ||
134 | 145 | ||
135 | usb@47401000 { | 146 | davinci_mdio_sleep: davinci_mdio_sleep { |
136 | status = "okay"; | 147 | pinctrl-single,pins = < |
137 | }; | 148 | /* MDIO reset value */ |
149 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
150 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
151 | >; | ||
152 | }; | ||
138 | 153 | ||
139 | usb@47401800 { | 154 | mmc1_pins: pinmux_mmc1_pins { |
140 | status = "okay"; | 155 | pinctrl-single,pins = < |
141 | dr_mode = "host"; | 156 | 0x160 (PIN_INPUT | MUX_MODE7) /* GPIO0_6 */ |
142 | }; | 157 | >; |
158 | }; | ||
143 | 159 | ||
144 | dma-controller@07402000 { | 160 | emmc_pins: pinmux_emmc_pins { |
145 | status = "okay"; | 161 | pinctrl-single,pins = < |
146 | }; | 162 | 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */ |
147 | }; | 163 | 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */ |
164 | 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */ | ||
165 | 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */ | ||
166 | 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */ | ||
167 | 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */ | ||
168 | 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */ | ||
169 | 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */ | ||
170 | 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */ | ||
171 | 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */ | ||
172 | >; | ||
173 | }; | ||
174 | }; | ||
148 | 175 | ||
149 | i2c0: i2c@44e0b000 { | 176 | &uart0 { |
150 | pinctrl-names = "default"; | 177 | pinctrl-names = "default"; |
151 | pinctrl-0 = <&i2c0_pins>; | 178 | pinctrl-0 = <&uart0_pins>; |
152 | 179 | ||
153 | status = "okay"; | 180 | status = "okay"; |
154 | clock-frequency = <400000>; | 181 | }; |
155 | 182 | ||
156 | tps: tps@24 { | 183 | &usb { |
157 | reg = <0x24>; | 184 | status = "okay"; |
158 | }; | ||
159 | 185 | ||
160 | }; | 186 | control@44e10000 { |
187 | status = "okay"; | ||
161 | }; | 188 | }; |
162 | 189 | ||
163 | leds { | 190 | usb-phy@47401300 { |
164 | pinctrl-names = "default"; | 191 | status = "okay"; |
165 | pinctrl-0 = <&user_leds_s0>; | 192 | }; |
166 | 193 | ||
167 | compatible = "gpio-leds"; | 194 | usb-phy@47401b00 { |
195 | status = "okay"; | ||
196 | }; | ||
168 | 197 | ||
169 | led@2 { | 198 | usb@47401000 { |
170 | label = "beaglebone:green:heartbeat"; | 199 | status = "okay"; |
171 | gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>; | 200 | }; |
172 | linux,default-trigger = "heartbeat"; | ||
173 | default-state = "off"; | ||
174 | }; | ||
175 | 201 | ||
176 | led@3 { | 202 | usb@47401800 { |
177 | label = "beaglebone:green:mmc0"; | 203 | status = "okay"; |
178 | gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; | 204 | dr_mode = "host"; |
179 | linux,default-trigger = "mmc0"; | 205 | }; |
180 | default-state = "off"; | ||
181 | }; | ||
182 | 206 | ||
183 | led@4 { | 207 | dma-controller@07402000 { |
184 | label = "beaglebone:green:usr2"; | 208 | status = "okay"; |
185 | gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; | 209 | }; |
186 | default-state = "off"; | 210 | }; |
187 | }; | ||
188 | 211 | ||
189 | led@5 { | 212 | &i2c0 { |
190 | label = "beaglebone:green:usr3"; | 213 | pinctrl-names = "default"; |
191 | gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>; | 214 | pinctrl-0 = <&i2c0_pins>; |
192 | default-state = "off"; | 215 | |
193 | }; | 216 | status = "okay"; |
217 | clock-frequency = <400000>; | ||
218 | |||
219 | tps: tps@24 { | ||
220 | reg = <0x24>; | ||
194 | }; | 221 | }; |
222 | |||
195 | }; | 223 | }; |
196 | 224 | ||
197 | /include/ "tps65217.dtsi" | 225 | /include/ "tps65217.dtsi" |
@@ -260,3 +288,12 @@ | |||
260 | pinctrl-0 = <&davinci_mdio_default>; | 288 | pinctrl-0 = <&davinci_mdio_default>; |
261 | pinctrl-1 = <&davinci_mdio_sleep>; | 289 | pinctrl-1 = <&davinci_mdio_sleep>; |
262 | }; | 290 | }; |
291 | |||
292 | &mmc1 { | ||
293 | status = "okay"; | ||
294 | bus-width = <0x4>; | ||
295 | pinctrl-names = "default"; | ||
296 | pinctrl-0 = <&mmc1_pins>; | ||
297 | cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; | ||
298 | cd-inverted; | ||
299 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 7993c489982c..94ee427a6db1 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts | |||
@@ -9,3 +9,21 @@ | |||
9 | 9 | ||
10 | #include "am33xx.dtsi" | 10 | #include "am33xx.dtsi" |
11 | #include "am335x-bone-common.dtsi" | 11 | #include "am335x-bone-common.dtsi" |
12 | |||
13 | &ldo3_reg { | ||
14 | regulator-min-microvolt = <1800000>; | ||
15 | regulator-max-microvolt = <3300000>; | ||
16 | regulator-always-on; | ||
17 | }; | ||
18 | |||
19 | &mmc1 { | ||
20 | vmmc-supply = <&ldo3_reg>; | ||
21 | }; | ||
22 | |||
23 | &sham { | ||
24 | status = "okay"; | ||
25 | }; | ||
26 | |||
27 | &aes { | ||
28 | status = "okay"; | ||
29 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts index 197cadf72d2c..6b71ad95a5cf 100644 --- a/arch/arm/boot/dts/am335x-boneblack.dts +++ b/arch/arm/boot/dts/am335x-boneblack.dts | |||
@@ -15,3 +15,64 @@ | |||
15 | regulator-max-microvolt = <1800000>; | 15 | regulator-max-microvolt = <1800000>; |
16 | regulator-always-on; | 16 | regulator-always-on; |
17 | }; | 17 | }; |
18 | |||
19 | &mmc1 { | ||
20 | vmmc-supply = <&vmmcsd_fixed>; | ||
21 | }; | ||
22 | |||
23 | &mmc2 { | ||
24 | vmmc-supply = <&vmmcsd_fixed>; | ||
25 | pinctrl-names = "default"; | ||
26 | pinctrl-0 = <&emmc_pins>; | ||
27 | bus-width = <8>; | ||
28 | status = "okay"; | ||
29 | ti,vcc-aux-disable-is-sleep; | ||
30 | }; | ||
31 | |||
32 | &am33xx_pinmux { | ||
33 | nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { | ||
34 | pinctrl-single,pins = < | ||
35 | 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ | ||
36 | 0xa0 0x08 /* lcd_data0.lcd_data0, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
37 | 0xa4 0x08 /* lcd_data1.lcd_data1, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
38 | 0xa8 0x08 /* lcd_data2.lcd_data2, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
39 | 0xac 0x08 /* lcd_data3.lcd_data3, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
40 | 0xb0 0x08 /* lcd_data4.lcd_data4, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
41 | 0xb4 0x08 /* lcd_data5.lcd_data5, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
42 | 0xb8 0x08 /* lcd_data6.lcd_data6, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
43 | 0xbc 0x08 /* lcd_data7.lcd_data7, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
44 | 0xc0 0x08 /* lcd_data8.lcd_data8, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
45 | 0xc4 0x08 /* lcd_data9.lcd_data9, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
46 | 0xc8 0x08 /* lcd_data10.lcd_data10, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
47 | 0xcc 0x08 /* lcd_data11.lcd_data11, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
48 | 0xd0 0x08 /* lcd_data12.lcd_data12, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
49 | 0xd4 0x08 /* lcd_data13.lcd_data13, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
50 | 0xd8 0x08 /* lcd_data14.lcd_data14, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
51 | 0xdc 0x08 /* lcd_data15.lcd_data15, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT | AM33XX_PULL_DISA */ | ||
52 | 0xe0 0x00 /* lcd_vsync.lcd_vsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ | ||
53 | 0xe4 0x00 /* lcd_hsync.lcd_hsync, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ | ||
54 | 0xe8 0x00 /* lcd_pclk.lcd_pclk, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ | ||
55 | 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT */ | ||
56 | >; | ||
57 | }; | ||
58 | nxp_hdmi_bonelt_off_pins: nxp_hdmi_bonelt_off_pins { | ||
59 | pinctrl-single,pins = < | ||
60 | 0x1b0 0x03 /* xdma_event_intr0, OMAP_MUX_MODE3 | AM33XX_PIN_OUTPUT */ | ||
61 | >; | ||
62 | }; | ||
63 | }; | ||
64 | |||
65 | &lcdc { | ||
66 | status = "okay"; | ||
67 | }; | ||
68 | |||
69 | / { | ||
70 | hdmi { | ||
71 | compatible = "ti,tilcdc,slave"; | ||
72 | i2c = <&i2c0>; | ||
73 | pinctrl-names = "default", "off"; | ||
74 | pinctrl-0 = <&nxp_hdmi_bonelt_pins>; | ||
75 | pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; | ||
76 | status = "okay"; | ||
77 | }; | ||
78 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts index e8ec8756e498..987429436171 100644 --- a/arch/arm/boot/dts/am335x-evm.dts +++ b/arch/arm/boot/dts/am335x-evm.dts | |||
@@ -24,324 +24,6 @@ | |||
24 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 24 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
25 | }; | 25 | }; |
26 | 26 | ||
27 | am33xx_pinmux: pinmux@44e10800 { | ||
28 | pinctrl-names = "default"; | ||
29 | pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0 &clkout2_pin>; | ||
30 | |||
31 | matrix_keypad_s0: matrix_keypad_s0 { | ||
32 | pinctrl-single,pins = < | ||
33 | 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ | ||
34 | 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */ | ||
35 | 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a9.gpio1_25 */ | ||
36 | 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a10.gpio1_26 */ | ||
37 | 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */ | ||
38 | >; | ||
39 | }; | ||
40 | |||
41 | volume_keys_s0: volume_keys_s0 { | ||
42 | pinctrl-single,pins = < | ||
43 | 0x150 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_sclk.gpio0_2 */ | ||
44 | 0x154 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_d0.gpio0_3 */ | ||
45 | >; | ||
46 | }; | ||
47 | |||
48 | i2c0_pins: pinmux_i2c0_pins { | ||
49 | pinctrl-single,pins = < | ||
50 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
51 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
52 | >; | ||
53 | }; | ||
54 | |||
55 | i2c1_pins: pinmux_i2c1_pins { | ||
56 | pinctrl-single,pins = < | ||
57 | 0x158 (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_d1.i2c1_sda */ | ||
58 | 0x15c (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_scl */ | ||
59 | >; | ||
60 | }; | ||
61 | |||
62 | uart0_pins: pinmux_uart0_pins { | ||
63 | pinctrl-single,pins = < | ||
64 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
65 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
66 | >; | ||
67 | }; | ||
68 | |||
69 | clkout2_pin: pinmux_clkout2_pin { | ||
70 | pinctrl-single,pins = < | ||
71 | 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ | ||
72 | >; | ||
73 | }; | ||
74 | |||
75 | nandflash_pins_s0: nandflash_pins_s0 { | ||
76 | pinctrl-single,pins = < | ||
77 | 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ | ||
78 | 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ | ||
79 | 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ | ||
80 | 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ | ||
81 | 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ | ||
82 | 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ | ||
83 | 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ | ||
84 | 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ | ||
85 | 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ | ||
86 | 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */ | ||
87 | 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ | ||
88 | 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ | ||
89 | 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ | ||
90 | 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ | ||
91 | 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ | ||
92 | >; | ||
93 | }; | ||
94 | |||
95 | ecap0_pins: backlight_pins { | ||
96 | pinctrl-single,pins = < | ||
97 | 0x164 0x0 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ | ||
98 | >; | ||
99 | }; | ||
100 | |||
101 | cpsw_default: cpsw_default { | ||
102 | pinctrl-single,pins = < | ||
103 | /* Slave 1 */ | ||
104 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ | ||
105 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ | ||
106 | 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ | ||
107 | 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ | ||
108 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ | ||
109 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ | ||
110 | 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ | ||
111 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ | ||
112 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */ | ||
113 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */ | ||
114 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ | ||
115 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ | ||
116 | >; | ||
117 | }; | ||
118 | |||
119 | cpsw_sleep: cpsw_sleep { | ||
120 | pinctrl-single,pins = < | ||
121 | /* Slave 1 reset value */ | ||
122 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
123 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
124 | 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
125 | 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
126 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
127 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
128 | 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
129 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
130 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
131 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
132 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
133 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
134 | >; | ||
135 | }; | ||
136 | |||
137 | davinci_mdio_default: davinci_mdio_default { | ||
138 | pinctrl-single,pins = < | ||
139 | /* MDIO */ | ||
140 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | ||
141 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | ||
142 | >; | ||
143 | }; | ||
144 | |||
145 | davinci_mdio_sleep: davinci_mdio_sleep { | ||
146 | pinctrl-single,pins = < | ||
147 | /* MDIO reset value */ | ||
148 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
149 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
150 | >; | ||
151 | }; | ||
152 | }; | ||
153 | |||
154 | ocp { | ||
155 | uart0: serial@44e09000 { | ||
156 | pinctrl-names = "default"; | ||
157 | pinctrl-0 = <&uart0_pins>; | ||
158 | |||
159 | status = "okay"; | ||
160 | }; | ||
161 | |||
162 | i2c0: i2c@44e0b000 { | ||
163 | pinctrl-names = "default"; | ||
164 | pinctrl-0 = <&i2c0_pins>; | ||
165 | |||
166 | status = "okay"; | ||
167 | clock-frequency = <400000>; | ||
168 | |||
169 | tps: tps@2d { | ||
170 | reg = <0x2d>; | ||
171 | }; | ||
172 | }; | ||
173 | |||
174 | musb: usb@47400000 { | ||
175 | status = "okay"; | ||
176 | |||
177 | control@44e10000 { | ||
178 | status = "okay"; | ||
179 | }; | ||
180 | |||
181 | usb-phy@47401300 { | ||
182 | status = "okay"; | ||
183 | }; | ||
184 | |||
185 | usb-phy@47401b00 { | ||
186 | status = "okay"; | ||
187 | }; | ||
188 | |||
189 | usb@47401000 { | ||
190 | status = "okay"; | ||
191 | }; | ||
192 | |||
193 | usb@47401800 { | ||
194 | status = "okay"; | ||
195 | dr_mode = "host"; | ||
196 | }; | ||
197 | |||
198 | dma-controller@07402000 { | ||
199 | status = "okay"; | ||
200 | }; | ||
201 | }; | ||
202 | |||
203 | i2c1: i2c@4802a000 { | ||
204 | pinctrl-names = "default"; | ||
205 | pinctrl-0 = <&i2c1_pins>; | ||
206 | |||
207 | status = "okay"; | ||
208 | clock-frequency = <100000>; | ||
209 | |||
210 | lis331dlh: lis331dlh@18 { | ||
211 | compatible = "st,lis331dlh", "st,lis3lv02d"; | ||
212 | reg = <0x18>; | ||
213 | Vdd-supply = <&lis3_reg>; | ||
214 | Vdd_IO-supply = <&lis3_reg>; | ||
215 | |||
216 | st,click-single-x; | ||
217 | st,click-single-y; | ||
218 | st,click-single-z; | ||
219 | st,click-thresh-x = <10>; | ||
220 | st,click-thresh-y = <10>; | ||
221 | st,click-thresh-z = <10>; | ||
222 | st,irq1-click; | ||
223 | st,irq2-click; | ||
224 | st,wakeup-x-lo; | ||
225 | st,wakeup-x-hi; | ||
226 | st,wakeup-y-lo; | ||
227 | st,wakeup-y-hi; | ||
228 | st,wakeup-z-lo; | ||
229 | st,wakeup-z-hi; | ||
230 | st,min-limit-x = <120>; | ||
231 | st,min-limit-y = <120>; | ||
232 | st,min-limit-z = <140>; | ||
233 | st,max-limit-x = <550>; | ||
234 | st,max-limit-y = <550>; | ||
235 | st,max-limit-z = <750>; | ||
236 | }; | ||
237 | |||
238 | tsl2550: tsl2550@39 { | ||
239 | compatible = "taos,tsl2550"; | ||
240 | reg = <0x39>; | ||
241 | }; | ||
242 | |||
243 | tmp275: tmp275@48 { | ||
244 | compatible = "ti,tmp275"; | ||
245 | reg = <0x48>; | ||
246 | }; | ||
247 | }; | ||
248 | |||
249 | elm: elm@48080000 { | ||
250 | status = "okay"; | ||
251 | }; | ||
252 | |||
253 | epwmss0: epwmss@48300000 { | ||
254 | status = "okay"; | ||
255 | |||
256 | ecap0: ecap@48300100 { | ||
257 | status = "okay"; | ||
258 | pinctrl-names = "default"; | ||
259 | pinctrl-0 = <&ecap0_pins>; | ||
260 | }; | ||
261 | }; | ||
262 | |||
263 | gpmc: gpmc@50000000 { | ||
264 | status = "okay"; | ||
265 | pinctrl-names = "default"; | ||
266 | pinctrl-0 = <&nandflash_pins_s0>; | ||
267 | ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ | ||
268 | nand@0,0 { | ||
269 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
270 | nand-bus-width = <8>; | ||
271 | ti,nand-ecc-opt = "bch8"; | ||
272 | gpmc,device-nand = "true"; | ||
273 | gpmc,device-width = <1>; | ||
274 | gpmc,sync-clk-ps = <0>; | ||
275 | gpmc,cs-on-ns = <0>; | ||
276 | gpmc,cs-rd-off-ns = <44>; | ||
277 | gpmc,cs-wr-off-ns = <44>; | ||
278 | gpmc,adv-on-ns = <6>; | ||
279 | gpmc,adv-rd-off-ns = <34>; | ||
280 | gpmc,adv-wr-off-ns = <44>; | ||
281 | gpmc,we-on-ns = <0>; | ||
282 | gpmc,we-off-ns = <40>; | ||
283 | gpmc,oe-on-ns = <0>; | ||
284 | gpmc,oe-off-ns = <54>; | ||
285 | gpmc,access-ns = <64>; | ||
286 | gpmc,rd-cycle-ns = <82>; | ||
287 | gpmc,wr-cycle-ns = <82>; | ||
288 | gpmc,wait-on-read = "true"; | ||
289 | gpmc,wait-on-write = "true"; | ||
290 | gpmc,bus-turnaround-ns = <0>; | ||
291 | gpmc,cycle2cycle-delay-ns = <0>; | ||
292 | gpmc,clk-activation-ns = <0>; | ||
293 | gpmc,wait-monitoring-ns = <0>; | ||
294 | gpmc,wr-access-ns = <40>; | ||
295 | gpmc,wr-data-mux-bus-ns = <0>; | ||
296 | |||
297 | #address-cells = <1>; | ||
298 | #size-cells = <1>; | ||
299 | elm_id = <&elm>; | ||
300 | |||
301 | /* MTD partition table */ | ||
302 | partition@0 { | ||
303 | label = "SPL1"; | ||
304 | reg = <0x00000000 0x000020000>; | ||
305 | }; | ||
306 | |||
307 | partition@1 { | ||
308 | label = "SPL2"; | ||
309 | reg = <0x00020000 0x00020000>; | ||
310 | }; | ||
311 | |||
312 | partition@2 { | ||
313 | label = "SPL3"; | ||
314 | reg = <0x00040000 0x00020000>; | ||
315 | }; | ||
316 | |||
317 | partition@3 { | ||
318 | label = "SPL4"; | ||
319 | reg = <0x00060000 0x00020000>; | ||
320 | }; | ||
321 | |||
322 | partition@4 { | ||
323 | label = "U-boot"; | ||
324 | reg = <0x00080000 0x001e0000>; | ||
325 | }; | ||
326 | |||
327 | partition@5 { | ||
328 | label = "environment"; | ||
329 | reg = <0x00260000 0x00020000>; | ||
330 | }; | ||
331 | |||
332 | partition@6 { | ||
333 | label = "Kernel"; | ||
334 | reg = <0x00280000 0x00500000>; | ||
335 | }; | ||
336 | |||
337 | partition@7 { | ||
338 | label = "File-System"; | ||
339 | reg = <0x00780000 0x0F880000>; | ||
340 | }; | ||
341 | }; | ||
342 | }; | ||
343 | }; | ||
344 | |||
345 | vbat: fixedregulator@0 { | 27 | vbat: fixedregulator@0 { |
346 | compatible = "regulator-fixed"; | 28 | compatible = "regulator-fixed"; |
347 | regulator-name = "vbat"; | 29 | regulator-name = "vbat"; |
@@ -403,10 +85,447 @@ | |||
403 | brightness-levels = <0 51 53 56 62 75 101 152 255>; | 85 | brightness-levels = <0 51 53 56 62 75 101 152 255>; |
404 | default-brightness-level = <8>; | 86 | default-brightness-level = <8>; |
405 | }; | 87 | }; |
88 | |||
89 | panel { | ||
90 | compatible = "ti,tilcdc,panel"; | ||
91 | status = "okay"; | ||
92 | pinctrl-names = "default"; | ||
93 | pinctrl-0 = <&lcd_pins_s0>; | ||
94 | panel-info { | ||
95 | ac-bias = <255>; | ||
96 | ac-bias-intrpt = <0>; | ||
97 | dma-burst-sz = <16>; | ||
98 | bpp = <32>; | ||
99 | fdd = <0x80>; | ||
100 | sync-edge = <0>; | ||
101 | sync-ctrl = <1>; | ||
102 | raster-order = <0>; | ||
103 | fifo-th = <0>; | ||
104 | }; | ||
105 | |||
106 | display-timings { | ||
107 | 800x480p62 { | ||
108 | clock-frequency = <30000000>; | ||
109 | hactive = <800>; | ||
110 | vactive = <480>; | ||
111 | hfront-porch = <39>; | ||
112 | hback-porch = <39>; | ||
113 | hsync-len = <47>; | ||
114 | vback-porch = <29>; | ||
115 | vfront-porch = <13>; | ||
116 | vsync-len = <2>; | ||
117 | hsync-active = <1>; | ||
118 | vsync-active = <1>; | ||
119 | }; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | sound { | ||
124 | compatible = "ti,da830-evm-audio"; | ||
125 | ti,model = "AM335x-EVM"; | ||
126 | ti,audio-codec = <&tlv320aic3106>; | ||
127 | ti,mcasp-controller = <&mcasp1>; | ||
128 | ti,codec-clock-rate = <12000000>; | ||
129 | ti,audio-routing = | ||
130 | "Headphone Jack", "HPLOUT", | ||
131 | "Headphone Jack", "HPROUT", | ||
132 | "LINE1L", "Line In", | ||
133 | "LINE1R", "Line In"; | ||
134 | }; | ||
135 | }; | ||
136 | |||
137 | &am33xx_pinmux { | ||
138 | pinctrl-names = "default"; | ||
139 | pinctrl-0 = <&matrix_keypad_s0 &volume_keys_s0 &clkout2_pin>; | ||
140 | |||
141 | matrix_keypad_s0: matrix_keypad_s0 { | ||
142 | pinctrl-single,pins = < | ||
143 | 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */ | ||
144 | 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a6.gpio1_22 */ | ||
145 | 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a9.gpio1_25 */ | ||
146 | 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a10.gpio1_26 */ | ||
147 | 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */ | ||
148 | >; | ||
149 | }; | ||
150 | |||
151 | volume_keys_s0: volume_keys_s0 { | ||
152 | pinctrl-single,pins = < | ||
153 | 0x150 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_sclk.gpio0_2 */ | ||
154 | 0x154 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* spi0_d0.gpio0_3 */ | ||
155 | >; | ||
156 | }; | ||
157 | |||
158 | i2c0_pins: pinmux_i2c0_pins { | ||
159 | pinctrl-single,pins = < | ||
160 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
161 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
162 | >; | ||
163 | }; | ||
164 | |||
165 | i2c1_pins: pinmux_i2c1_pins { | ||
166 | pinctrl-single,pins = < | ||
167 | 0x158 (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_d1.i2c1_sda */ | ||
168 | 0x15c (PIN_INPUT_PULLUP | MUX_MODE2) /* spi0_cs0.i2c1_scl */ | ||
169 | >; | ||
170 | }; | ||
171 | |||
172 | uart0_pins: pinmux_uart0_pins { | ||
173 | pinctrl-single,pins = < | ||
174 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
175 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
176 | >; | ||
177 | }; | ||
178 | |||
179 | clkout2_pin: pinmux_clkout2_pin { | ||
180 | pinctrl-single,pins = < | ||
181 | 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ | ||
182 | >; | ||
183 | }; | ||
184 | |||
185 | nandflash_pins_s0: nandflash_pins_s0 { | ||
186 | pinctrl-single,pins = < | ||
187 | 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ | ||
188 | 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ | ||
189 | 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ | ||
190 | 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ | ||
191 | 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ | ||
192 | 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ | ||
193 | 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ | ||
194 | 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ | ||
195 | 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ | ||
196 | 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */ | ||
197 | 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ | ||
198 | 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ | ||
199 | 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ | ||
200 | 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ | ||
201 | 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ | ||
202 | >; | ||
203 | }; | ||
204 | |||
205 | ecap0_pins: backlight_pins { | ||
206 | pinctrl-single,pins = < | ||
207 | 0x164 0x0 /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out MODE0 */ | ||
208 | >; | ||
209 | }; | ||
210 | |||
211 | cpsw_default: cpsw_default { | ||
212 | pinctrl-single,pins = < | ||
213 | /* Slave 1 */ | ||
214 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ | ||
215 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ | ||
216 | 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ | ||
217 | 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ | ||
218 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ | ||
219 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ | ||
220 | 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ | ||
221 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ | ||
222 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */ | ||
223 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */ | ||
224 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ | ||
225 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ | ||
226 | >; | ||
227 | }; | ||
228 | |||
229 | cpsw_sleep: cpsw_sleep { | ||
230 | pinctrl-single,pins = < | ||
231 | /* Slave 1 reset value */ | ||
232 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
233 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
234 | 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
235 | 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
236 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
237 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
238 | 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
239 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
240 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
241 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
242 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
243 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
244 | >; | ||
245 | }; | ||
246 | |||
247 | davinci_mdio_default: davinci_mdio_default { | ||
248 | pinctrl-single,pins = < | ||
249 | /* MDIO */ | ||
250 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | ||
251 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | ||
252 | >; | ||
253 | }; | ||
254 | |||
255 | davinci_mdio_sleep: davinci_mdio_sleep { | ||
256 | pinctrl-single,pins = < | ||
257 | /* MDIO reset value */ | ||
258 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
259 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
260 | >; | ||
261 | }; | ||
262 | |||
263 | lcd_pins_s0: lcd_pins_s0 { | ||
264 | pinctrl-single,pins = < | ||
265 | 0x20 0x01 /* gpmc_ad8.lcd_data16, OUTPUT | MODE1 */ | ||
266 | 0x24 0x01 /* gpmc_ad9.lcd_data17, OUTPUT | MODE1 */ | ||
267 | 0x28 0x01 /* gpmc_ad10.lcd_data18, OUTPUT | MODE1 */ | ||
268 | 0x2c 0x01 /* gpmc_ad11.lcd_data19, OUTPUT | MODE1 */ | ||
269 | 0x30 0x01 /* gpmc_ad12.lcd_data20, OUTPUT | MODE1 */ | ||
270 | 0x34 0x01 /* gpmc_ad13.lcd_data21, OUTPUT | MODE1 */ | ||
271 | 0x38 0x01 /* gpmc_ad14.lcd_data22, OUTPUT | MODE1 */ | ||
272 | 0x3c 0x01 /* gpmc_ad15.lcd_data23, OUTPUT | MODE1 */ | ||
273 | 0xa0 0x00 /* lcd_data0.lcd_data0, OUTPUT | MODE0 */ | ||
274 | 0xa4 0x00 /* lcd_data1.lcd_data1, OUTPUT | MODE0 */ | ||
275 | 0xa8 0x00 /* lcd_data2.lcd_data2, OUTPUT | MODE0 */ | ||
276 | 0xac 0x00 /* lcd_data3.lcd_data3, OUTPUT | MODE0 */ | ||
277 | 0xb0 0x00 /* lcd_data4.lcd_data4, OUTPUT | MODE0 */ | ||
278 | 0xb4 0x00 /* lcd_data5.lcd_data5, OUTPUT | MODE0 */ | ||
279 | 0xb8 0x00 /* lcd_data6.lcd_data6, OUTPUT | MODE0 */ | ||
280 | 0xbc 0x00 /* lcd_data7.lcd_data7, OUTPUT | MODE0 */ | ||
281 | 0xc0 0x00 /* lcd_data8.lcd_data8, OUTPUT | MODE0 */ | ||
282 | 0xc4 0x00 /* lcd_data9.lcd_data9, OUTPUT | MODE0 */ | ||
283 | 0xc8 0x00 /* lcd_data10.lcd_data10, OUTPUT | MODE0 */ | ||
284 | 0xcc 0x00 /* lcd_data11.lcd_data11, OUTPUT | MODE0 */ | ||
285 | 0xd0 0x00 /* lcd_data12.lcd_data12, OUTPUT | MODE0 */ | ||
286 | 0xd4 0x00 /* lcd_data13.lcd_data13, OUTPUT | MODE0 */ | ||
287 | 0xd8 0x00 /* lcd_data14.lcd_data14, OUTPUT | MODE0 */ | ||
288 | 0xdc 0x00 /* lcd_data15.lcd_data15, OUTPUT | MODE0 */ | ||
289 | 0xe0 0x00 /* lcd_vsync.lcd_vsync, OUTPUT | MODE0 */ | ||
290 | 0xe4 0x00 /* lcd_hsync.lcd_hsync, OUTPUT | MODE0 */ | ||
291 | 0xe8 0x00 /* lcd_pclk.lcd_pclk, OUTPUT | MODE0 */ | ||
292 | 0xec 0x00 /* lcd_ac_bias_en.lcd_ac_bias_en, OUTPUT | MODE0 */ | ||
293 | >; | ||
294 | }; | ||
295 | |||
296 | am335x_evm_audio_pins: am335x_evm_audio_pins { | ||
297 | pinctrl-single,pins = < | ||
298 | 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rx_dv.mcasp1_aclkx */ | ||
299 | 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_txd3.mcasp1_fsx */ | ||
300 | 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */ | ||
301 | 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */ | ||
302 | >; | ||
303 | }; | ||
304 | }; | ||
305 | |||
306 | &uart0 { | ||
307 | pinctrl-names = "default"; | ||
308 | pinctrl-0 = <&uart0_pins>; | ||
309 | |||
310 | status = "okay"; | ||
311 | }; | ||
312 | |||
313 | &i2c0 { | ||
314 | pinctrl-names = "default"; | ||
315 | pinctrl-0 = <&i2c0_pins>; | ||
316 | |||
317 | status = "okay"; | ||
318 | clock-frequency = <400000>; | ||
319 | |||
320 | tps: tps@2d { | ||
321 | reg = <0x2d>; | ||
322 | }; | ||
323 | }; | ||
324 | |||
325 | &usb { | ||
326 | status = "okay"; | ||
327 | |||
328 | control@44e10000 { | ||
329 | status = "okay"; | ||
330 | }; | ||
331 | |||
332 | usb-phy@47401300 { | ||
333 | status = "okay"; | ||
334 | }; | ||
335 | |||
336 | usb-phy@47401b00 { | ||
337 | status = "okay"; | ||
338 | }; | ||
339 | |||
340 | usb@47401000 { | ||
341 | status = "okay"; | ||
342 | }; | ||
343 | |||
344 | usb@47401800 { | ||
345 | status = "okay"; | ||
346 | dr_mode = "host"; | ||
347 | }; | ||
348 | |||
349 | dma-controller@07402000 { | ||
350 | status = "okay"; | ||
351 | }; | ||
352 | }; | ||
353 | |||
354 | &i2c1 { | ||
355 | pinctrl-names = "default"; | ||
356 | pinctrl-0 = <&i2c1_pins>; | ||
357 | |||
358 | status = "okay"; | ||
359 | clock-frequency = <100000>; | ||
360 | |||
361 | lis331dlh: lis331dlh@18 { | ||
362 | compatible = "st,lis331dlh", "st,lis3lv02d"; | ||
363 | reg = <0x18>; | ||
364 | Vdd-supply = <&lis3_reg>; | ||
365 | Vdd_IO-supply = <&lis3_reg>; | ||
366 | |||
367 | st,click-single-x; | ||
368 | st,click-single-y; | ||
369 | st,click-single-z; | ||
370 | st,click-thresh-x = <10>; | ||
371 | st,click-thresh-y = <10>; | ||
372 | st,click-thresh-z = <10>; | ||
373 | st,irq1-click; | ||
374 | st,irq2-click; | ||
375 | st,wakeup-x-lo; | ||
376 | st,wakeup-x-hi; | ||
377 | st,wakeup-y-lo; | ||
378 | st,wakeup-y-hi; | ||
379 | st,wakeup-z-lo; | ||
380 | st,wakeup-z-hi; | ||
381 | st,min-limit-x = <120>; | ||
382 | st,min-limit-y = <120>; | ||
383 | st,min-limit-z = <140>; | ||
384 | st,max-limit-x = <550>; | ||
385 | st,max-limit-y = <550>; | ||
386 | st,max-limit-z = <750>; | ||
387 | }; | ||
388 | |||
389 | tsl2550: tsl2550@39 { | ||
390 | compatible = "taos,tsl2550"; | ||
391 | reg = <0x39>; | ||
392 | }; | ||
393 | |||
394 | tmp275: tmp275@48 { | ||
395 | compatible = "ti,tmp275"; | ||
396 | reg = <0x48>; | ||
397 | }; | ||
398 | |||
399 | tlv320aic3106: tlv320aic3106@1b { | ||
400 | compatible = "ti,tlv320aic3106"; | ||
401 | reg = <0x1b>; | ||
402 | status = "okay"; | ||
403 | |||
404 | /* Regulators */ | ||
405 | AVDD-supply = <&vaux2_reg>; | ||
406 | IOVDD-supply = <&vaux2_reg>; | ||
407 | DRVDD-supply = <&vaux2_reg>; | ||
408 | DVDD-supply = <&vbat>; | ||
409 | }; | ||
410 | }; | ||
411 | |||
412 | &lcdc { | ||
413 | status = "okay"; | ||
414 | }; | ||
415 | |||
416 | &elm { | ||
417 | status = "okay"; | ||
418 | }; | ||
419 | |||
420 | &epwmss0 { | ||
421 | status = "okay"; | ||
422 | |||
423 | ecap0: ecap@48300100 { | ||
424 | status = "okay"; | ||
425 | pinctrl-names = "default"; | ||
426 | pinctrl-0 = <&ecap0_pins>; | ||
427 | }; | ||
428 | }; | ||
429 | |||
430 | &gpmc { | ||
431 | status = "okay"; | ||
432 | pinctrl-names = "default"; | ||
433 | pinctrl-0 = <&nandflash_pins_s0>; | ||
434 | ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ | ||
435 | nand@0,0 { | ||
436 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
437 | nand-bus-width = <8>; | ||
438 | ti,nand-ecc-opt = "bch8"; | ||
439 | gpmc,device-nand = "true"; | ||
440 | gpmc,device-width = <1>; | ||
441 | gpmc,sync-clk-ps = <0>; | ||
442 | gpmc,cs-on-ns = <0>; | ||
443 | gpmc,cs-rd-off-ns = <44>; | ||
444 | gpmc,cs-wr-off-ns = <44>; | ||
445 | gpmc,adv-on-ns = <6>; | ||
446 | gpmc,adv-rd-off-ns = <34>; | ||
447 | gpmc,adv-wr-off-ns = <44>; | ||
448 | gpmc,we-on-ns = <0>; | ||
449 | gpmc,we-off-ns = <40>; | ||
450 | gpmc,oe-on-ns = <0>; | ||
451 | gpmc,oe-off-ns = <54>; | ||
452 | gpmc,access-ns = <64>; | ||
453 | gpmc,rd-cycle-ns = <82>; | ||
454 | gpmc,wr-cycle-ns = <82>; | ||
455 | gpmc,wait-on-read = "true"; | ||
456 | gpmc,wait-on-write = "true"; | ||
457 | gpmc,bus-turnaround-ns = <0>; | ||
458 | gpmc,cycle2cycle-delay-ns = <0>; | ||
459 | gpmc,clk-activation-ns = <0>; | ||
460 | gpmc,wait-monitoring-ns = <0>; | ||
461 | gpmc,wr-access-ns = <40>; | ||
462 | gpmc,wr-data-mux-bus-ns = <0>; | ||
463 | |||
464 | #address-cells = <1>; | ||
465 | #size-cells = <1>; | ||
466 | elm_id = <&elm>; | ||
467 | |||
468 | /* MTD partition table */ | ||
469 | partition@0 { | ||
470 | label = "SPL1"; | ||
471 | reg = <0x00000000 0x000020000>; | ||
472 | }; | ||
473 | |||
474 | partition@1 { | ||
475 | label = "SPL2"; | ||
476 | reg = <0x00020000 0x00020000>; | ||
477 | }; | ||
478 | |||
479 | partition@2 { | ||
480 | label = "SPL3"; | ||
481 | reg = <0x00040000 0x00020000>; | ||
482 | }; | ||
483 | |||
484 | partition@3 { | ||
485 | label = "SPL4"; | ||
486 | reg = <0x00060000 0x00020000>; | ||
487 | }; | ||
488 | |||
489 | partition@4 { | ||
490 | label = "U-boot"; | ||
491 | reg = <0x00080000 0x001e0000>; | ||
492 | }; | ||
493 | |||
494 | partition@5 { | ||
495 | label = "environment"; | ||
496 | reg = <0x00260000 0x00020000>; | ||
497 | }; | ||
498 | |||
499 | partition@6 { | ||
500 | label = "Kernel"; | ||
501 | reg = <0x00280000 0x00500000>; | ||
502 | }; | ||
503 | |||
504 | partition@7 { | ||
505 | label = "File-System"; | ||
506 | reg = <0x00780000 0x0F880000>; | ||
507 | }; | ||
508 | }; | ||
406 | }; | 509 | }; |
407 | 510 | ||
408 | #include "tps65910.dtsi" | 511 | #include "tps65910.dtsi" |
409 | 512 | ||
513 | &mcasp1 { | ||
514 | pinctrl-names = "default"; | ||
515 | pinctrl-0 = <&am335x_evm_audio_pins>; | ||
516 | |||
517 | status = "okay"; | ||
518 | |||
519 | op-mode = <0>; /* MCASP_IIS_MODE */ | ||
520 | tdm-slots = <2>; | ||
521 | /* 4 serializers */ | ||
522 | serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ | ||
523 | 0 0 1 2 | ||
524 | >; | ||
525 | tx-num-evt = <1>; | ||
526 | rx-num-evt = <1>; | ||
527 | }; | ||
528 | |||
410 | &tps { | 529 | &tps { |
411 | vcc1-supply = <&vbat>; | 530 | vcc1-supply = <&vbat>; |
412 | vcc2-supply = <&vbat>; | 531 | vcc2-supply = <&vbat>; |
@@ -477,6 +596,8 @@ | |||
477 | }; | 596 | }; |
478 | 597 | ||
479 | vmmc_reg: regulator@12 { | 598 | vmmc_reg: regulator@12 { |
599 | regulator-min-microvolt = <1800000>; | ||
600 | regulator-max-microvolt = <3300000>; | ||
480 | regulator-always-on; | 601 | regulator-always-on; |
481 | }; | 602 | }; |
482 | }; | 603 | }; |
@@ -517,3 +638,17 @@ | |||
517 | ti,adc-channels = <4 5 6 7>; | 638 | ti,adc-channels = <4 5 6 7>; |
518 | }; | 639 | }; |
519 | }; | 640 | }; |
641 | |||
642 | &mmc1 { | ||
643 | status = "okay"; | ||
644 | vmmc-supply = <&vmmc_reg>; | ||
645 | bus-width = <4>; | ||
646 | }; | ||
647 | |||
648 | &sham { | ||
649 | status = "okay"; | ||
650 | }; | ||
651 | |||
652 | &aes { | ||
653 | status = "okay"; | ||
654 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts index 4f339fa91c57..03febf85fd2f 100644 --- a/arch/arm/boot/dts/am335x-evmsk.dts +++ b/arch/arm/boot/dts/am335x-evmsk.dts | |||
@@ -31,210 +31,6 @@ | |||
31 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 31 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
32 | }; | 32 | }; |
33 | 33 | ||
34 | am33xx_pinmux: pinmux@44e10800 { | ||
35 | pinctrl-names = "default"; | ||
36 | pinctrl-0 = <&gpio_keys_s0 &clkout2_pin>; | ||
37 | |||
38 | user_leds_s0: user_leds_s0 { | ||
39 | pinctrl-single,pins = < | ||
40 | 0x10 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */ | ||
41 | 0x14 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */ | ||
42 | 0x18 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */ | ||
43 | 0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */ | ||
44 | >; | ||
45 | }; | ||
46 | |||
47 | gpio_keys_s0: gpio_keys_s0 { | ||
48 | pinctrl-single,pins = < | ||
49 | 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_oen_ren.gpio2_3 */ | ||
50 | 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_advn_ale.gpio2_2 */ | ||
51 | 0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_wait0.gpio0_30 */ | ||
52 | 0x9c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ben0_cle.gpio2_5 */ | ||
53 | >; | ||
54 | }; | ||
55 | |||
56 | i2c0_pins: pinmux_i2c0_pins { | ||
57 | pinctrl-single,pins = < | ||
58 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
59 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
60 | >; | ||
61 | }; | ||
62 | |||
63 | uart0_pins: pinmux_uart0_pins { | ||
64 | pinctrl-single,pins = < | ||
65 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
66 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
67 | >; | ||
68 | }; | ||
69 | |||
70 | clkout2_pin: pinmux_clkout2_pin { | ||
71 | pinctrl-single,pins = < | ||
72 | 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ | ||
73 | >; | ||
74 | }; | ||
75 | |||
76 | ecap2_pins: backlight_pins { | ||
77 | pinctrl-single,pins = < | ||
78 | 0x19c 0x4 /* mcasp0_ahclkr.ecap2_in_pwm2_out MODE4 */ | ||
79 | >; | ||
80 | }; | ||
81 | |||
82 | cpsw_default: cpsw_default { | ||
83 | pinctrl-single,pins = < | ||
84 | /* Slave 1 */ | ||
85 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ | ||
86 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ | ||
87 | 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ | ||
88 | 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ | ||
89 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ | ||
90 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ | ||
91 | 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ | ||
92 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ | ||
93 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */ | ||
94 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */ | ||
95 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ | ||
96 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ | ||
97 | |||
98 | /* Slave 2 */ | ||
99 | 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */ | ||
100 | 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */ | ||
101 | 0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */ | ||
102 | 0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */ | ||
103 | 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */ | ||
104 | 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */ | ||
105 | 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */ | ||
106 | 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */ | ||
107 | 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */ | ||
108 | 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */ | ||
109 | 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */ | ||
110 | 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */ | ||
111 | >; | ||
112 | }; | ||
113 | |||
114 | cpsw_sleep: cpsw_sleep { | ||
115 | pinctrl-single,pins = < | ||
116 | /* Slave 1 reset value */ | ||
117 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
118 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
119 | 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
120 | 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
121 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
122 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
123 | 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
124 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
125 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
126 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
127 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
128 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
129 | |||
130 | /* Slave 2 reset value*/ | ||
131 | 0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
132 | 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
133 | 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
134 | 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
135 | 0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
136 | 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
137 | 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
138 | 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
139 | 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
140 | 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
141 | 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
142 | 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
143 | >; | ||
144 | }; | ||
145 | |||
146 | davinci_mdio_default: davinci_mdio_default { | ||
147 | pinctrl-single,pins = < | ||
148 | /* MDIO */ | ||
149 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | ||
150 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | ||
151 | >; | ||
152 | }; | ||
153 | |||
154 | davinci_mdio_sleep: davinci_mdio_sleep { | ||
155 | pinctrl-single,pins = < | ||
156 | /* MDIO reset value */ | ||
157 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
158 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
159 | >; | ||
160 | }; | ||
161 | }; | ||
162 | |||
163 | ocp { | ||
164 | uart0: serial@44e09000 { | ||
165 | pinctrl-names = "default"; | ||
166 | pinctrl-0 = <&uart0_pins>; | ||
167 | |||
168 | status = "okay"; | ||
169 | }; | ||
170 | |||
171 | i2c0: i2c@44e0b000 { | ||
172 | pinctrl-names = "default"; | ||
173 | pinctrl-0 = <&i2c0_pins>; | ||
174 | |||
175 | status = "okay"; | ||
176 | clock-frequency = <400000>; | ||
177 | |||
178 | tps: tps@2d { | ||
179 | reg = <0x2d>; | ||
180 | }; | ||
181 | |||
182 | lis331dlh: lis331dlh@18 { | ||
183 | compatible = "st,lis331dlh", "st,lis3lv02d"; | ||
184 | reg = <0x18>; | ||
185 | Vdd-supply = <&lis3_reg>; | ||
186 | Vdd_IO-supply = <&lis3_reg>; | ||
187 | |||
188 | st,click-single-x; | ||
189 | st,click-single-y; | ||
190 | st,click-single-z; | ||
191 | st,click-thresh-x = <10>; | ||
192 | st,click-thresh-y = <10>; | ||
193 | st,click-thresh-z = <10>; | ||
194 | st,irq1-click; | ||
195 | st,irq2-click; | ||
196 | st,wakeup-x-lo; | ||
197 | st,wakeup-x-hi; | ||
198 | st,wakeup-y-lo; | ||
199 | st,wakeup-y-hi; | ||
200 | st,wakeup-z-lo; | ||
201 | st,wakeup-z-hi; | ||
202 | st,min-limit-x = <120>; | ||
203 | st,min-limit-y = <120>; | ||
204 | st,min-limit-z = <140>; | ||
205 | st,max-limit-x = <550>; | ||
206 | st,max-limit-y = <550>; | ||
207 | st,max-limit-z = <750>; | ||
208 | }; | ||
209 | }; | ||
210 | |||
211 | musb: usb@47400000 { | ||
212 | status = "okay"; | ||
213 | |||
214 | control@44e10000 { | ||
215 | status = "okay"; | ||
216 | }; | ||
217 | |||
218 | usb-phy@47401300 { | ||
219 | status = "okay"; | ||
220 | }; | ||
221 | |||
222 | usb@47401000 { | ||
223 | status = "okay"; | ||
224 | }; | ||
225 | }; | ||
226 | |||
227 | epwmss2: epwmss@48304000 { | ||
228 | status = "okay"; | ||
229 | |||
230 | ecap2: ecap@48304100 { | ||
231 | status = "okay"; | ||
232 | pinctrl-names = "default"; | ||
233 | pinctrl-0 = <&ecap2_pins>; | ||
234 | }; | ||
235 | }; | ||
236 | }; | ||
237 | |||
238 | vbat: fixedregulator@0 { | 34 | vbat: fixedregulator@0 { |
239 | compatible = "regulator-fixed"; | 35 | compatible = "regulator-fixed"; |
240 | regulator-name = "vbat"; | 36 | regulator-name = "vbat"; |
@@ -319,6 +115,240 @@ | |||
319 | brightness-levels = <0 58 61 66 75 90 125 170 255>; | 115 | brightness-levels = <0 58 61 66 75 90 125 170 255>; |
320 | default-brightness-level = <8>; | 116 | default-brightness-level = <8>; |
321 | }; | 117 | }; |
118 | |||
119 | sound { | ||
120 | compatible = "ti,da830-evm-audio"; | ||
121 | ti,model = "AM335x-EVMSK"; | ||
122 | ti,audio-codec = <&tlv320aic3106>; | ||
123 | ti,mcasp-controller = <&mcasp1>; | ||
124 | ti,codec-clock-rate = <24576000>; | ||
125 | ti,audio-routing = | ||
126 | "Headphone Jack", "HPLOUT", | ||
127 | "Headphone Jack", "HPROUT"; | ||
128 | }; | ||
129 | }; | ||
130 | |||
131 | &am33xx_pinmux { | ||
132 | pinctrl-names = "default"; | ||
133 | pinctrl-0 = <&gpio_keys_s0 &clkout2_pin>; | ||
134 | |||
135 | user_leds_s0: user_leds_s0 { | ||
136 | pinctrl-single,pins = < | ||
137 | 0x10 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */ | ||
138 | 0x14 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */ | ||
139 | 0x18 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */ | ||
140 | 0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */ | ||
141 | >; | ||
142 | }; | ||
143 | |||
144 | gpio_keys_s0: gpio_keys_s0 { | ||
145 | pinctrl-single,pins = < | ||
146 | 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_oen_ren.gpio2_3 */ | ||
147 | 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_advn_ale.gpio2_2 */ | ||
148 | 0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_wait0.gpio0_30 */ | ||
149 | 0x9c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ben0_cle.gpio2_5 */ | ||
150 | >; | ||
151 | }; | ||
152 | |||
153 | i2c0_pins: pinmux_i2c0_pins { | ||
154 | pinctrl-single,pins = < | ||
155 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
156 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
157 | >; | ||
158 | }; | ||
159 | |||
160 | uart0_pins: pinmux_uart0_pins { | ||
161 | pinctrl-single,pins = < | ||
162 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
163 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
164 | >; | ||
165 | }; | ||
166 | |||
167 | clkout2_pin: pinmux_clkout2_pin { | ||
168 | pinctrl-single,pins = < | ||
169 | 0x1b4 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */ | ||
170 | >; | ||
171 | }; | ||
172 | |||
173 | ecap2_pins: backlight_pins { | ||
174 | pinctrl-single,pins = < | ||
175 | 0x19c 0x4 /* mcasp0_ahclkr.ecap2_in_pwm2_out MODE4 */ | ||
176 | >; | ||
177 | }; | ||
178 | |||
179 | cpsw_default: cpsw_default { | ||
180 | pinctrl-single,pins = < | ||
181 | /* Slave 1 */ | ||
182 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */ | ||
183 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */ | ||
184 | 0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */ | ||
185 | 0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */ | ||
186 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */ | ||
187 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */ | ||
188 | 0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */ | ||
189 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */ | ||
190 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */ | ||
191 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */ | ||
192 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */ | ||
193 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */ | ||
194 | |||
195 | /* Slave 2 */ | ||
196 | 0x40 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a0.rgmii2_tctl */ | ||
197 | 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a1.rgmii2_rctl */ | ||
198 | 0x48 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a2.rgmii2_td3 */ | ||
199 | 0x4c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a3.rgmii2_td2 */ | ||
200 | 0x50 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a4.rgmii2_td1 */ | ||
201 | 0x54 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a5.rgmii2_td0 */ | ||
202 | 0x58 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* gpmc_a6.rgmii2_tclk */ | ||
203 | 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a7.rgmii2_rclk */ | ||
204 | 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a8.rgmii2_rd3 */ | ||
205 | 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a9.rgmii2_rd2 */ | ||
206 | 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a10.rgmii2_rd1 */ | ||
207 | 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* gpmc_a11.rgmii2_rd0 */ | ||
208 | >; | ||
209 | }; | ||
210 | |||
211 | cpsw_sleep: cpsw_sleep { | ||
212 | pinctrl-single,pins = < | ||
213 | /* Slave 1 reset value */ | ||
214 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
215 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
216 | 0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
217 | 0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
218 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
219 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
220 | 0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
221 | 0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
222 | 0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
223 | 0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
224 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
225 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
226 | |||
227 | /* Slave 2 reset value*/ | ||
228 | 0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
229 | 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
230 | 0x48 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
231 | 0x4c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
232 | 0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
233 | 0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
234 | 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
235 | 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
236 | 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
237 | 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
238 | 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
239 | 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
240 | >; | ||
241 | }; | ||
242 | |||
243 | davinci_mdio_default: davinci_mdio_default { | ||
244 | pinctrl-single,pins = < | ||
245 | /* MDIO */ | ||
246 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | ||
247 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | ||
248 | >; | ||
249 | }; | ||
250 | |||
251 | davinci_mdio_sleep: davinci_mdio_sleep { | ||
252 | pinctrl-single,pins = < | ||
253 | /* MDIO reset value */ | ||
254 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
255 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
256 | >; | ||
257 | }; | ||
258 | |||
259 | mcasp1_pins: mcasp1_pins { | ||
260 | pinctrl-single,pins = < | ||
261 | 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ | ||
262 | 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */ | ||
263 | 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */ | ||
264 | 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */ | ||
265 | >; | ||
266 | }; | ||
267 | }; | ||
268 | |||
269 | &uart0 { | ||
270 | pinctrl-names = "default"; | ||
271 | pinctrl-0 = <&uart0_pins>; | ||
272 | |||
273 | status = "okay"; | ||
274 | }; | ||
275 | |||
276 | &i2c0 { | ||
277 | pinctrl-names = "default"; | ||
278 | pinctrl-0 = <&i2c0_pins>; | ||
279 | |||
280 | status = "okay"; | ||
281 | clock-frequency = <400000>; | ||
282 | |||
283 | tps: tps@2d { | ||
284 | reg = <0x2d>; | ||
285 | }; | ||
286 | |||
287 | lis331dlh: lis331dlh@18 { | ||
288 | compatible = "st,lis331dlh", "st,lis3lv02d"; | ||
289 | reg = <0x18>; | ||
290 | Vdd-supply = <&lis3_reg>; | ||
291 | Vdd_IO-supply = <&lis3_reg>; | ||
292 | |||
293 | st,click-single-x; | ||
294 | st,click-single-y; | ||
295 | st,click-single-z; | ||
296 | st,click-thresh-x = <10>; | ||
297 | st,click-thresh-y = <10>; | ||
298 | st,click-thresh-z = <10>; | ||
299 | st,irq1-click; | ||
300 | st,irq2-click; | ||
301 | st,wakeup-x-lo; | ||
302 | st,wakeup-x-hi; | ||
303 | st,wakeup-y-lo; | ||
304 | st,wakeup-y-hi; | ||
305 | st,wakeup-z-lo; | ||
306 | st,wakeup-z-hi; | ||
307 | st,min-limit-x = <120>; | ||
308 | st,min-limit-y = <120>; | ||
309 | st,min-limit-z = <140>; | ||
310 | st,max-limit-x = <550>; | ||
311 | st,max-limit-y = <550>; | ||
312 | st,max-limit-z = <750>; | ||
313 | }; | ||
314 | |||
315 | tlv320aic3106: tlv320aic3106@1b { | ||
316 | compatible = "ti,tlv320aic3106"; | ||
317 | reg = <0x1b>; | ||
318 | status = "okay"; | ||
319 | |||
320 | /* Regulators */ | ||
321 | AVDD-supply = <&vaux2_reg>; | ||
322 | IOVDD-supply = <&vaux2_reg>; | ||
323 | DRVDD-supply = <&vaux2_reg>; | ||
324 | DVDD-supply = <&vbat>; | ||
325 | }; | ||
326 | }; | ||
327 | |||
328 | &usb { | ||
329 | status = "okay"; | ||
330 | |||
331 | control@44e10000 { | ||
332 | status = "okay"; | ||
333 | }; | ||
334 | |||
335 | usb-phy@47401300 { | ||
336 | status = "okay"; | ||
337 | }; | ||
338 | |||
339 | usb@47401000 { | ||
340 | status = "okay"; | ||
341 | }; | ||
342 | }; | ||
343 | |||
344 | &epwmss2 { | ||
345 | status = "okay"; | ||
346 | |||
347 | ecap2: ecap@48304100 { | ||
348 | status = "okay"; | ||
349 | pinctrl-names = "default"; | ||
350 | pinctrl-0 = <&ecap2_pins>; | ||
351 | }; | ||
322 | }; | 352 | }; |
323 | 353 | ||
324 | #include "tps65910.dtsi" | 354 | #include "tps65910.dtsi" |
@@ -393,6 +423,8 @@ | |||
393 | }; | 423 | }; |
394 | 424 | ||
395 | vmmc_reg: regulator@12 { | 425 | vmmc_reg: regulator@12 { |
426 | regulator-min-microvolt = <1800000>; | ||
427 | regulator-max-microvolt = <3300000>; | ||
396 | regulator-always-on; | 428 | regulator-always-on; |
397 | }; | 429 | }; |
398 | }; | 430 | }; |
@@ -419,3 +451,37 @@ | |||
419 | phy_id = <&davinci_mdio>, <1>; | 451 | phy_id = <&davinci_mdio>, <1>; |
420 | phy-mode = "rgmii-txid"; | 452 | phy-mode = "rgmii-txid"; |
421 | }; | 453 | }; |
454 | |||
455 | &mmc1 { | ||
456 | status = "okay"; | ||
457 | vmmc-supply = <&vmmc_reg>; | ||
458 | bus-width = <4>; | ||
459 | }; | ||
460 | |||
461 | &sham { | ||
462 | status = "okay"; | ||
463 | }; | ||
464 | |||
465 | &aes { | ||
466 | status = "okay"; | ||
467 | }; | ||
468 | |||
469 | &gpio0 { | ||
470 | ti,no-reset-on-init; | ||
471 | }; | ||
472 | |||
473 | &mcasp1 { | ||
474 | pinctrl-names = "default"; | ||
475 | pinctrl-0 = <&mcasp1_pins>; | ||
476 | |||
477 | status = "okay"; | ||
478 | |||
479 | op-mode = <0>; /* MCASP_IIS_MODE */ | ||
480 | tdm-slots = <2>; | ||
481 | /* 4 serializers */ | ||
482 | serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ | ||
483 | 0 0 1 2 | ||
484 | >; | ||
485 | tx-num-evt = <1>; | ||
486 | rx-num-evt = <1>; | ||
487 | }; | ||
diff --git a/arch/arm/boot/dts/am335x-igep0033.dtsi b/arch/arm/boot/dts/am335x-igep0033.dtsi new file mode 100644 index 000000000000..619624479311 --- /dev/null +++ b/arch/arm/boot/dts/am335x-igep0033.dtsi | |||
@@ -0,0 +1,278 @@ | |||
1 | /* | ||
2 | * am335x-igep0033.dtsi - Device Tree file for IGEP COM AQUILA AM335x | ||
3 | * | ||
4 | * Copyright (C) 2013 ISEE 2007 SL - http://www.isee.biz | ||
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 | /dts-v1/; | ||
12 | |||
13 | #include "am33xx.dtsi" | ||
14 | |||
15 | / { | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vdd1_reg>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | memory { | ||
23 | device_type = "memory"; | ||
24 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
25 | }; | ||
26 | |||
27 | leds { | ||
28 | pinctrl-names = "default"; | ||
29 | pinctrl-0 = <&leds_pins>; | ||
30 | |||
31 | compatible = "gpio-leds"; | ||
32 | |||
33 | led@0 { | ||
34 | label = "com:green:user"; | ||
35 | gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; | ||
36 | default-state = "on"; | ||
37 | }; | ||
38 | }; | ||
39 | |||
40 | vbat: fixedregulator@0 { | ||
41 | compatible = "regulator-fixed"; | ||
42 | regulator-name = "vbat"; | ||
43 | regulator-min-microvolt = <5000000>; | ||
44 | regulator-max-microvolt = <5000000>; | ||
45 | regulator-boot-on; | ||
46 | }; | ||
47 | |||
48 | vmmc: fixedregulator@0 { | ||
49 | compatible = "regulator-fixed"; | ||
50 | regulator-name = "vmmc"; | ||
51 | regulator-min-microvolt = <3300000>; | ||
52 | regulator-max-microvolt = <3300000>; | ||
53 | }; | ||
54 | }; | ||
55 | |||
56 | &am33xx_pinmux { | ||
57 | i2c0_pins: pinmux_i2c0_pins { | ||
58 | pinctrl-single,pins = < | ||
59 | 0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
60 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
61 | >; | ||
62 | }; | ||
63 | |||
64 | nandflash_pins: pinmux_nandflash_pins { | ||
65 | pinctrl-single,pins = < | ||
66 | 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ | ||
67 | 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ | ||
68 | 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ | ||
69 | 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ | ||
70 | 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ | ||
71 | 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ | ||
72 | 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ | ||
73 | 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ | ||
74 | 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ | ||
75 | 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */ | ||
76 | 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ | ||
77 | 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ | ||
78 | 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ | ||
79 | 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ | ||
80 | 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */ | ||
81 | >; | ||
82 | }; | ||
83 | |||
84 | uart0_pins: pinmux_uart0_pins { | ||
85 | pinctrl-single,pins = < | ||
86 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
87 | 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
88 | >; | ||
89 | }; | ||
90 | |||
91 | leds_pins: pinmux_leds_pins { | ||
92 | pinctrl-single,pins = < | ||
93 | 0x5c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */ | ||
94 | >; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | &cpsw_emac0 { | ||
99 | phy_id = <&davinci_mdio>, <0>; | ||
100 | }; | ||
101 | |||
102 | &cpsw_emac1 { | ||
103 | phy_id = <&davinci_mdio>, <1>; | ||
104 | }; | ||
105 | |||
106 | &elm { | ||
107 | status = "okay"; | ||
108 | }; | ||
109 | |||
110 | &gpmc { | ||
111 | status = "okay"; | ||
112 | pinctrl-names = "default"; | ||
113 | pinctrl-0 = <&nandflash_pins>; | ||
114 | |||
115 | ranges = <0 0 0x08000000 0x10000000>; /* CS0: NAND */ | ||
116 | |||
117 | nand@0,0 { | ||
118 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
119 | nand-bus-width = <8>; | ||
120 | ti,nand-ecc-opt = "bch8"; | ||
121 | gpmc,device-nand = "true"; | ||
122 | gpmc,device-width = <1>; | ||
123 | gpmc,sync-clk-ps = <0>; | ||
124 | gpmc,cs-on-ns = <0>; | ||
125 | gpmc,cs-rd-off-ns = <44>; | ||
126 | gpmc,cs-wr-off-ns = <44>; | ||
127 | gpmc,adv-on-ns = <6>; | ||
128 | gpmc,adv-rd-off-ns = <34>; | ||
129 | gpmc,adv-wr-off-ns = <44>; | ||
130 | gpmc,we-on-ns = <0>; | ||
131 | gpmc,we-off-ns = <40>; | ||
132 | gpmc,oe-on-ns = <0>; | ||
133 | gpmc,oe-off-ns = <54>; | ||
134 | gpmc,access-ns = <64>; | ||
135 | gpmc,rd-cycle-ns = <82>; | ||
136 | gpmc,wr-cycle-ns = <82>; | ||
137 | gpmc,wait-on-read = "true"; | ||
138 | gpmc,wait-on-write = "true"; | ||
139 | gpmc,bus-turnaround-ns = <0>; | ||
140 | gpmc,cycle2cycle-delay-ns = <0>; | ||
141 | gpmc,clk-activation-ns = <0>; | ||
142 | gpmc,wait-monitoring-ns = <0>; | ||
143 | gpmc,wr-access-ns = <40>; | ||
144 | gpmc,wr-data-mux-bus-ns = <0>; | ||
145 | |||
146 | #address-cells = <1>; | ||
147 | #size-cells = <1>; | ||
148 | elm_id = <&elm>; | ||
149 | |||
150 | /* MTD partition table */ | ||
151 | partition@0 { | ||
152 | label = "SPL"; | ||
153 | reg = <0x00000000 0x000080000>; | ||
154 | }; | ||
155 | |||
156 | partition@1 { | ||
157 | label = "U-boot"; | ||
158 | reg = <0x00080000 0x001e0000>; | ||
159 | }; | ||
160 | |||
161 | partition@2 { | ||
162 | label = "U-Boot Env"; | ||
163 | reg = <0x00260000 0x00020000>; | ||
164 | }; | ||
165 | |||
166 | partition@3 { | ||
167 | label = "Kernel"; | ||
168 | reg = <0x00280000 0x00500000>; | ||
169 | }; | ||
170 | |||
171 | partition@4 { | ||
172 | label = "File System"; | ||
173 | reg = <0x00780000 0x007880000>; | ||
174 | }; | ||
175 | }; | ||
176 | }; | ||
177 | |||
178 | &i2c0 { | ||
179 | status = "okay"; | ||
180 | pinctrl-names = "default"; | ||
181 | pinctrl-0 = <&i2c0_pins>; | ||
182 | |||
183 | clock-frequency = <400000>; | ||
184 | |||
185 | tps: tps@2d { | ||
186 | reg = <0x2d>; | ||
187 | }; | ||
188 | }; | ||
189 | |||
190 | &mmc1 { | ||
191 | status = "okay"; | ||
192 | vmmc-supply = <&vmmc>; | ||
193 | bus-width = <4>; | ||
194 | }; | ||
195 | |||
196 | &uart0 { | ||
197 | status = "okay"; | ||
198 | pinctrl-names = "default"; | ||
199 | pinctrl-0 = <&uart0_pins>; | ||
200 | }; | ||
201 | |||
202 | #include "tps65910.dtsi" | ||
203 | |||
204 | &tps { | ||
205 | vcc1-supply = <&vbat>; | ||
206 | vcc2-supply = <&vbat>; | ||
207 | vcc3-supply = <&vbat>; | ||
208 | vcc4-supply = <&vbat>; | ||
209 | vcc5-supply = <&vbat>; | ||
210 | vcc6-supply = <&vbat>; | ||
211 | vcc7-supply = <&vbat>; | ||
212 | vccio-supply = <&vbat>; | ||
213 | |||
214 | regulators { | ||
215 | vrtc_reg: regulator@0 { | ||
216 | regulator-always-on; | ||
217 | }; | ||
218 | |||
219 | vio_reg: regulator@1 { | ||
220 | regulator-always-on; | ||
221 | }; | ||
222 | |||
223 | vdd1_reg: regulator@2 { | ||
224 | /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ | ||
225 | regulator-name = "vdd_mpu"; | ||
226 | regulator-min-microvolt = <912500>; | ||
227 | regulator-max-microvolt = <1312500>; | ||
228 | regulator-boot-on; | ||
229 | regulator-always-on; | ||
230 | }; | ||
231 | |||
232 | vdd2_reg: regulator@3 { | ||
233 | /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */ | ||
234 | regulator-name = "vdd_core"; | ||
235 | regulator-min-microvolt = <912500>; | ||
236 | regulator-max-microvolt = <1150000>; | ||
237 | regulator-boot-on; | ||
238 | regulator-always-on; | ||
239 | }; | ||
240 | |||
241 | vdd3_reg: regulator@4 { | ||
242 | regulator-always-on; | ||
243 | }; | ||
244 | |||
245 | vdig1_reg: regulator@5 { | ||
246 | regulator-always-on; | ||
247 | }; | ||
248 | |||
249 | vdig2_reg: regulator@6 { | ||
250 | regulator-always-on; | ||
251 | }; | ||
252 | |||
253 | vpll_reg: regulator@7 { | ||
254 | regulator-always-on; | ||
255 | }; | ||
256 | |||
257 | vdac_reg: regulator@8 { | ||
258 | regulator-always-on; | ||
259 | }; | ||
260 | |||
261 | vaux1_reg: regulator@9 { | ||
262 | regulator-always-on; | ||
263 | }; | ||
264 | |||
265 | vaux2_reg: regulator@10 { | ||
266 | regulator-always-on; | ||
267 | }; | ||
268 | |||
269 | vaux33_reg: regulator@11 { | ||
270 | regulator-always-on; | ||
271 | }; | ||
272 | |||
273 | vmmc_reg: regulator@12 { | ||
274 | regulator-always-on; | ||
275 | }; | ||
276 | }; | ||
277 | }; | ||
278 | |||
diff --git a/arch/arm/boot/dts/am335x-nano.dts b/arch/arm/boot/dts/am335x-nano.dts new file mode 100644 index 000000000000..9907b494b99c --- /dev/null +++ b/arch/arm/boot/dts/am335x-nano.dts | |||
@@ -0,0 +1,431 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Newflow Ltd - http://www.newflow.co.uk/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | |||
10 | #include "am33xx.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "Newflow AM335x NanoBone"; | ||
14 | compatible = "ti,am33xx"; | ||
15 | |||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&dcdc2_reg>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | memory { | ||
23 | device_type = "memory"; | ||
24 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
25 | }; | ||
26 | |||
27 | leds { | ||
28 | compatible = "gpio-leds"; | ||
29 | |||
30 | led@0 { | ||
31 | label = "nanobone:green:usr1"; | ||
32 | gpios = <&gpio1 5 0>; | ||
33 | default-state = "off"; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
37 | |||
38 | &am33xx_pinmux { | ||
39 | pinctrl-names = "default"; | ||
40 | pinctrl-0 = <&misc_pins>; | ||
41 | |||
42 | misc_pins: misc_pins { | ||
43 | pinctrl-single,pins = < | ||
44 | 0x15c (PIN_OUTPUT | MUX_MODE7) /* spi0_cs0.gpio0_5 */ | ||
45 | >; | ||
46 | }; | ||
47 | |||
48 | gpmc_pins: gpmc_pins { | ||
49 | pinctrl-single,pins = < | ||
50 | 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ | ||
51 | 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ | ||
52 | 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ | ||
53 | 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */ | ||
54 | 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */ | ||
55 | 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */ | ||
56 | 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */ | ||
57 | 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */ | ||
58 | 0x20 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad8.gpmc_ad8 */ | ||
59 | 0x24 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad9.gpmc_ad9 */ | ||
60 | 0x28 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad10.gpmc_ad10 */ | ||
61 | 0x2c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad11.gpmc_ad11 */ | ||
62 | 0x30 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad12.gpmc_ad12 */ | ||
63 | 0x34 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad13.gpmc_ad13 */ | ||
64 | 0x38 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad14.gpmc_ad14 */ | ||
65 | 0x3c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad15.gpmc_ad15 */ | ||
66 | |||
67 | 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */ | ||
68 | 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */ | ||
69 | 0x80 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn1.gpmc_csn1 */ | ||
70 | 0x84 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn2.gpmc_csn2 */ | ||
71 | 0x88 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn3.gpmc_csn3 */ | ||
72 | |||
73 | 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */ | ||
74 | 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */ | ||
75 | 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */ | ||
76 | 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_ben0_cle.gpmc_ben0_cle */ | ||
77 | |||
78 | 0xa4 (PIN_OUTPUT | MUX_MODE1) /* lcd_data1.gpmc_a1 */ | ||
79 | 0xa8 (PIN_OUTPUT | MUX_MODE1) /* lcd_data2.gpmc_a2 */ | ||
80 | 0xac (PIN_OUTPUT | MUX_MODE1) /* lcd_data3.gpmc_a3 */ | ||
81 | 0xb0 (PIN_OUTPUT | MUX_MODE1) /* lcd_data4.gpmc_a4 */ | ||
82 | 0xb4 (PIN_OUTPUT | MUX_MODE1) /* lcd_data5.gpmc_a5 */ | ||
83 | 0xb8 (PIN_OUTPUT | MUX_MODE1) /* lcd_data6.gpmc_a6 */ | ||
84 | 0xbc (PIN_OUTPUT | MUX_MODE1) /* lcd_data7.gpmc_a7 */ | ||
85 | |||
86 | 0xe0 (PIN_OUTPUT | MUX_MODE1) /* lcd_vsync.gpmc_a8 */ | ||
87 | 0xe4 (PIN_OUTPUT | MUX_MODE1) /* lcd_hsync.gpmc_a9 */ | ||
88 | 0xe8 (PIN_OUTPUT | MUX_MODE1) /* lcd_pclk.gpmc_a10 */ | ||
89 | >; | ||
90 | }; | ||
91 | |||
92 | i2c0_pins: i2c0_pins { | ||
93 | pinctrl-single,pins = < | ||
94 | 0x188 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
95 | 0x18c (PIN_INPUT_PULLDOWN | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
96 | >; | ||
97 | }; | ||
98 | |||
99 | uart0_pins: uart0_pins { | ||
100 | pinctrl-single,pins = < | ||
101 | 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ | ||
102 | 0x174 (PIN_OUTPUT | MUX_MODE0) /* uart0_txd.uart0_txd */ | ||
103 | >; | ||
104 | }; | ||
105 | |||
106 | uart1_pins: uart1_pins { | ||
107 | pinctrl-single,pins = < | ||
108 | 0x178 (PIN_OUTPUT | MUX_MODE7) /* uart1_ctsn.uart1_ctsn */ | ||
109 | 0x17c (PIN_OUTPUT | MUX_MODE7) /* uart1_rtsn.uart1_rtsn */ | ||
110 | 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */ | ||
111 | 0x184 (PIN_OUTPUT | MUX_MODE0) /* uart1_txd.uart1_txd */ | ||
112 | >; | ||
113 | }; | ||
114 | |||
115 | uart2_pins: uart2_pins { | ||
116 | pinctrl-single,pins = < | ||
117 | 0xc0 (PIN_INPUT_PULLUP | MUX_MODE7) /* lcd_data8.gpio2[14] */ | ||
118 | 0xc4 (PIN_OUTPUT | MUX_MODE7) /* lcd_data9.gpio2[15] */ | ||
119 | 0x150 (PIN_INPUT | MUX_MODE1) /* spi0_sclk.uart2_rxd */ | ||
120 | 0x154 (PIN_OUTPUT | MUX_MODE1) /* spi0_d0.uart2_txd */ | ||
121 | >; | ||
122 | }; | ||
123 | |||
124 | uart3_pins: uart3_pins { | ||
125 | pinctrl-single,pins = < | ||
126 | 0xc8 (PIN_INPUT_PULLUP | MUX_MODE6) /* lcd_data10.uart3_ctsn */ | ||
127 | 0xcc (PIN_OUTPUT | MUX_MODE6) /* lcd_data11.uart3_rtsn */ | ||
128 | 0x160 (PIN_INPUT | MUX_MODE1) /* spi0_cs1.uart3_rxd */ | ||
129 | 0x164 (PIN_OUTPUT | MUX_MODE1) /* ecap0_in_pwm0_out.uart3_txd */ | ||
130 | >; | ||
131 | }; | ||
132 | |||
133 | uart4_pins: uart4_pins { | ||
134 | pinctrl-single,pins = < | ||
135 | 0xd0 (PIN_INPUT_PULLUP | MUX_MODE6) /* lcd_data12.uart4_ctsn */ | ||
136 | 0xd4 (PIN_OUTPUT | MUX_MODE6) /* lcd_data13.uart4_rtsn */ | ||
137 | 0x168 (PIN_INPUT | MUX_MODE1) /* uart0_ctsn.uart4_rxd */ | ||
138 | 0x16c (PIN_OUTPUT | MUX_MODE1) /* uart0_rtsn.uart4_txd */ | ||
139 | >; | ||
140 | }; | ||
141 | |||
142 | uart5_pins: uart5_pins { | ||
143 | pinctrl-single,pins = < | ||
144 | 0xd8 (PIN_INPUT | MUX_MODE4) /* lcd_data14.uart5_rxd */ | ||
145 | 0x144 (PIN_OUTPUT | MUX_MODE3) /* rmiii1_refclk.uart5_txd */ | ||
146 | >; | ||
147 | }; | ||
148 | |||
149 | mmc1_pins: mmc1_pins { | ||
150 | pinctrl-single,pins = < | ||
151 | 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */ | ||
152 | 0xf4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */ | ||
153 | 0xf8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */ | ||
154 | 0xfc (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */ | ||
155 | 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */ | ||
156 | 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */ | ||
157 | 0x1e8 (PIN_INPUT_PULLUP | MUX_MODE7) /* emu1.gpio3[8] */ | ||
158 | 0x1a0 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3[18] */ | ||
159 | >; | ||
160 | }; | ||
161 | }; | ||
162 | |||
163 | &uart0 { | ||
164 | pinctrl-names = "default"; | ||
165 | pinctrl-0 = <&uart0_pins>; | ||
166 | status = "okay"; | ||
167 | }; | ||
168 | |||
169 | &uart1 { | ||
170 | pinctrl-names = "default"; | ||
171 | pinctrl-0 = <&uart1_pins>; | ||
172 | status = "okay"; | ||
173 | rts-gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>; | ||
174 | rs485-rts-active-high; | ||
175 | rs485-rx-during-tx; | ||
176 | rs485-rts-delay = <1 1>; | ||
177 | linux,rs485-enabled-at-boot-time; | ||
178 | }; | ||
179 | |||
180 | &uart2 { | ||
181 | pinctrl-names = "default"; | ||
182 | pinctrl-0 = <&uart2_pins>; | ||
183 | status = "okay"; | ||
184 | rts-gpio = <&gpio2 15 GPIO_ACTIVE_HIGH>; | ||
185 | rs485-rts-active-high; | ||
186 | rs485-rts-delay = <1 1>; | ||
187 | linux,rs485-enabled-at-boot-time; | ||
188 | }; | ||
189 | |||
190 | &uart3 { | ||
191 | pinctrl-names = "default"; | ||
192 | pinctrl-0 = <&uart3_pins>; | ||
193 | status = "okay"; | ||
194 | }; | ||
195 | |||
196 | &uart4 { | ||
197 | pinctrl-names = "default"; | ||
198 | pinctrl-0 = <&uart4_pins>; | ||
199 | status = "okay"; | ||
200 | }; | ||
201 | |||
202 | &uart5 { | ||
203 | pinctrl-names = "default"; | ||
204 | pinctrl-0 = <&uart5_pins>; | ||
205 | status = "okay"; | ||
206 | }; | ||
207 | |||
208 | &i2c0 { | ||
209 | status = "okay"; | ||
210 | pinctrl-names = "default"; | ||
211 | clock-frequency = <400000>; | ||
212 | pinctrl-names = "default"; | ||
213 | pinctrl-0 = <&i2c0_pins>; | ||
214 | |||
215 | gpio@20 { | ||
216 | compatible = "mcp,mcp23017"; | ||
217 | reg = <0x20>; | ||
218 | }; | ||
219 | |||
220 | tps: tps@24 { | ||
221 | reg = <0x24>; | ||
222 | }; | ||
223 | |||
224 | eeprom@53 { | ||
225 | compatible = "mcp,24c02"; | ||
226 | reg = <0x53>; | ||
227 | pagesize = <8>; | ||
228 | }; | ||
229 | |||
230 | rtc@68 { | ||
231 | compatible = "dallas,ds1307"; | ||
232 | reg = <0x68>; | ||
233 | }; | ||
234 | }; | ||
235 | |||
236 | &elm { | ||
237 | status = "okay"; | ||
238 | }; | ||
239 | |||
240 | &gpmc { | ||
241 | compatible = "ti,am3352-gpmc"; | ||
242 | ti,hwmods = "gpmc"; | ||
243 | status = "okay"; | ||
244 | gpmc,num-waitpins = <2>; | ||
245 | pinctrl-names = "default"; | ||
246 | pinctrl-0 = <&gpmc_pins>; | ||
247 | |||
248 | #address-cells = <2>; | ||
249 | #size-cells = <1>; | ||
250 | ranges = <0 0 0x08000000 0x08000000>; /* CS0: NOR 128M */ | ||
251 | |||
252 | nor@0,0 { | ||
253 | reg = <0 0x00000000 0x08000000>; | ||
254 | compatible = "cfi-flash"; | ||
255 | linux,mtd-name = "spansion,s29gl010p11t"; | ||
256 | bank-width = <2>; | ||
257 | |||
258 | gpmc,mux-add-data = <2>; | ||
259 | |||
260 | gpmc,sync-clk-ps = <0>; | ||
261 | gpmc,cs-on-ns = <0>; | ||
262 | gpmc,cs-rd-off-ns = <160>; | ||
263 | gpmc,cs-wr-off-ns = <160>; | ||
264 | gpmc,adv-on-ns = <10>; | ||
265 | gpmc,adv-rd-off-ns = <30>; | ||
266 | gpmc,adv-wr-off-ns = <30>; | ||
267 | gpmc,oe-on-ns = <40>; | ||
268 | gpmc,oe-off-ns = <160>; | ||
269 | gpmc,we-on-ns = <40>; | ||
270 | gpmc,we-off-ns = <160>; | ||
271 | gpmc,rd-cycle-ns = <160>; | ||
272 | gpmc,wr-cycle-ns = <160>; | ||
273 | gpmc,access-ns = <150>; | ||
274 | gpmc,page-burst-access-ns = <10>; | ||
275 | gpmc,cycle2cycle-samecsen; | ||
276 | gpmc,cycle2cycle-delay-ns = <20>; | ||
277 | gpmc,wr-data-mux-bus-ns = <70>; | ||
278 | gpmc,wr-access-ns = <80>; | ||
279 | |||
280 | #address-cells = <1>; | ||
281 | #size-cells = <1>; | ||
282 | |||
283 | /* | ||
284 | MTD partition table | ||
285 | =================== | ||
286 | +------------+-->0x00000000-> U-Boot start | ||
287 | | | | ||
288 | | |-->0x000BFFFF-> U-Boot end | ||
289 | | |-->0x000C0000-> ENV1 start | ||
290 | | | | ||
291 | | |-->0x000DFFFF-> ENV1 end | ||
292 | | |-->0x000E0000-> ENV2 start | ||
293 | | | | ||
294 | | |-->0x000FFFFF-> ENV2 end | ||
295 | | |-->0x00100000-> Kernel start | ||
296 | | | | ||
297 | | |-->0x004FFFFF-> Kernel end | ||
298 | | |-->0x00500000-> File system start | ||
299 | | | | ||
300 | | |-->0x014FFFFF-> File system end | ||
301 | | |-->0x01500000-> User data start | ||
302 | | | | ||
303 | | |-->0x03FFFFFF-> User data end | ||
304 | | |-->0x04000000-> Data storage start | ||
305 | | | | ||
306 | +------------+-->0x08000000-> NOR end (Free end) | ||
307 | */ | ||
308 | partition@0 { | ||
309 | label = "boot"; | ||
310 | reg = <0x00000000 0x000c0000>; /* 768KB */ | ||
311 | }; | ||
312 | |||
313 | partition@1 { | ||
314 | label = "env1"; | ||
315 | reg = <0x000c0000 0x00020000>; /* 128KB */ | ||
316 | }; | ||
317 | |||
318 | partition@2 { | ||
319 | label = "env2"; | ||
320 | reg = <0x000e0000 0x00020000>; /* 128KB */ | ||
321 | }; | ||
322 | |||
323 | partition@3 { | ||
324 | label = "kernel"; | ||
325 | reg = <0x00100000 0x00400000>; /* 4MB */ | ||
326 | }; | ||
327 | |||
328 | partition@4 { | ||
329 | label = "rootfs"; | ||
330 | reg = <0x00500000 0x01000000>; /* 16MB */ | ||
331 | }; | ||
332 | |||
333 | partition@5 { | ||
334 | label = "user"; | ||
335 | reg = <0x01500000 0x02b00000>; /* 43MB */ | ||
336 | }; | ||
337 | |||
338 | partition@6 { | ||
339 | label = "data"; | ||
340 | reg = <0x04000000 0x04000000>; /* 64MB */ | ||
341 | }; | ||
342 | }; | ||
343 | }; | ||
344 | |||
345 | &mac { | ||
346 | dual_emac = <1>; | ||
347 | }; | ||
348 | |||
349 | &cpsw_emac0 { | ||
350 | phy_id = <&davinci_mdio>, <0>; | ||
351 | dual_emac_res_vlan = <1>; | ||
352 | }; | ||
353 | |||
354 | &cpsw_emac1 { | ||
355 | phy_id = <&davinci_mdio>, <1>; | ||
356 | dual_emac_res_vlan = <2>; | ||
357 | }; | ||
358 | |||
359 | &mmc1 { | ||
360 | status = "okay"; | ||
361 | vmmc-supply = <&ldo4_reg>; | ||
362 | pinctrl-names = "default"; | ||
363 | pinctrl-0 = <&mmc1_pins>; | ||
364 | bus-width = <4>; | ||
365 | cd-gpios = <&gpio3 8 0>; | ||
366 | wp-gpios = <&gpio3 18 0>; | ||
367 | }; | ||
368 | |||
369 | #include "tps65217.dtsi" | ||
370 | |||
371 | &tps { | ||
372 | regulators { | ||
373 | dcdc1_reg: regulator@0 { | ||
374 | /* +1.5V voltage with ±4% tolerance */ | ||
375 | regulator-min-microvolt = <1450000>; | ||
376 | regulator-max-microvolt = <1550000>; | ||
377 | regulator-boot-on; | ||
378 | regulator-always-on; | ||
379 | }; | ||
380 | |||
381 | dcdc2_reg: regulator@1 { | ||
382 | /* VDD_MPU voltage limits 0.95V - 1.1V with ±4% tolerance */ | ||
383 | regulator-name = "vdd_mpu"; | ||
384 | regulator-min-microvolt = <915000>; | ||
385 | regulator-max-microvolt = <1140000>; | ||
386 | regulator-boot-on; | ||
387 | regulator-always-on; | ||
388 | }; | ||
389 | |||
390 | dcdc3_reg: regulator@2 { | ||
391 | /* VDD_CORE voltage limits 0.95V - 1.1V with ±4% tolerance */ | ||
392 | regulator-name = "vdd_core"; | ||
393 | regulator-min-microvolt = <915000>; | ||
394 | regulator-max-microvolt = <1140000>; | ||
395 | regulator-boot-on; | ||
396 | regulator-always-on; | ||
397 | }; | ||
398 | |||
399 | ldo1_reg: regulator@3 { | ||
400 | /* +1.8V voltage with ±4% tolerance */ | ||
401 | regulator-min-microvolt = <1750000>; | ||
402 | regulator-max-microvolt = <1870000>; | ||
403 | regulator-boot-on; | ||
404 | regulator-always-on; | ||
405 | }; | ||
406 | |||
407 | ldo2_reg: regulator@4 { | ||
408 | /* +3.3V voltage with ±4% tolerance */ | ||
409 | regulator-min-microvolt = <3175000>; | ||
410 | regulator-max-microvolt = <3430000>; | ||
411 | regulator-boot-on; | ||
412 | regulator-always-on; | ||
413 | }; | ||
414 | |||
415 | ldo3_reg: regulator@5 { | ||
416 | /* +1.8V voltage with ±4% tolerance */ | ||
417 | regulator-min-microvolt = <1750000>; | ||
418 | regulator-max-microvolt = <1870000>; | ||
419 | regulator-boot-on; | ||
420 | regulator-always-on; | ||
421 | }; | ||
422 | |||
423 | ldo4_reg: regulator@6 { | ||
424 | /* +3.3V voltage with ±4% tolerance */ | ||
425 | regulator-min-microvolt = <3175000>; | ||
426 | regulator-max-microvolt = <3430000>; | ||
427 | regulator-boot-on; | ||
428 | regulator-always-on; | ||
429 | }; | ||
430 | }; | ||
431 | }; | ||
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index f9c5da9c7fe1..fcb9c8e42ab7 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
@@ -18,6 +18,9 @@ | |||
18 | interrupt-parent = <&intc>; | 18 | interrupt-parent = <&intc>; |
19 | 19 | ||
20 | aliases { | 20 | aliases { |
21 | i2c0 = &i2c0; | ||
22 | i2c1 = &i2c1; | ||
23 | i2c2 = &i2c2; | ||
21 | serial0 = &uart0; | 24 | serial0 = &uart0; |
22 | serial1 = &uart1; | 25 | serial1 = &uart1; |
23 | serial2 = &uart2; | 26 | serial2 = &uart2; |
@@ -30,6 +33,8 @@ | |||
30 | usb1 = &usb1; | 33 | usb1 = &usb1; |
31 | phy0 = &usb0_phy; | 34 | phy0 = &usb0_phy; |
32 | phy1 = &usb1_phy; | 35 | phy1 = &usb1_phy; |
36 | ethernet0 = &cpsw_emac0; | ||
37 | ethernet1 = &cpsw_emac1; | ||
33 | }; | 38 | }; |
34 | 39 | ||
35 | cpus { | 40 | cpus { |
@@ -57,6 +62,11 @@ | |||
57 | }; | 62 | }; |
58 | }; | 63 | }; |
59 | 64 | ||
65 | pmu { | ||
66 | compatible = "arm,cortex-a8-pmu"; | ||
67 | interrupts = <3>; | ||
68 | }; | ||
69 | |||
60 | /* | 70 | /* |
61 | * The soc node represents the soc top level view. It is uses for IPs | 71 | * The soc node represents the soc top level view. It is uses for IPs |
62 | * that are not memory mapped in the MPU view or for the MPU itself. | 72 | * that are not memory mapped in the MPU view or for the MPU itself. |
@@ -100,13 +110,25 @@ | |||
100 | reg = <0x48200000 0x1000>; | 110 | reg = <0x48200000 0x1000>; |
101 | }; | 111 | }; |
102 | 112 | ||
113 | edma: edma@49000000 { | ||
114 | compatible = "ti,edma3"; | ||
115 | ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; | ||
116 | reg = <0x49000000 0x10000>, | ||
117 | <0x44e10f90 0x10>; | ||
118 | interrupts = <12 13 14>; | ||
119 | #dma-cells = <1>; | ||
120 | dma-channels = <64>; | ||
121 | ti,edma-regions = <4>; | ||
122 | ti,edma-slots = <256>; | ||
123 | }; | ||
124 | |||
103 | gpio0: gpio@44e07000 { | 125 | gpio0: gpio@44e07000 { |
104 | compatible = "ti,omap4-gpio"; | 126 | compatible = "ti,omap4-gpio"; |
105 | ti,hwmods = "gpio1"; | 127 | ti,hwmods = "gpio1"; |
106 | gpio-controller; | 128 | gpio-controller; |
107 | #gpio-cells = <2>; | 129 | #gpio-cells = <2>; |
108 | interrupt-controller; | 130 | interrupt-controller; |
109 | #interrupt-cells = <1>; | 131 | #interrupt-cells = <2>; |
110 | reg = <0x44e07000 0x1000>; | 132 | reg = <0x44e07000 0x1000>; |
111 | interrupts = <96>; | 133 | interrupts = <96>; |
112 | }; | 134 | }; |
@@ -117,7 +139,7 @@ | |||
117 | gpio-controller; | 139 | gpio-controller; |
118 | #gpio-cells = <2>; | 140 | #gpio-cells = <2>; |
119 | interrupt-controller; | 141 | interrupt-controller; |
120 | #interrupt-cells = <1>; | 142 | #interrupt-cells = <2>; |
121 | reg = <0x4804c000 0x1000>; | 143 | reg = <0x4804c000 0x1000>; |
122 | interrupts = <98>; | 144 | interrupts = <98>; |
123 | }; | 145 | }; |
@@ -128,7 +150,7 @@ | |||
128 | gpio-controller; | 150 | gpio-controller; |
129 | #gpio-cells = <2>; | 151 | #gpio-cells = <2>; |
130 | interrupt-controller; | 152 | interrupt-controller; |
131 | #interrupt-cells = <1>; | 153 | #interrupt-cells = <2>; |
132 | reg = <0x481ac000 0x1000>; | 154 | reg = <0x481ac000 0x1000>; |
133 | interrupts = <32>; | 155 | interrupts = <32>; |
134 | }; | 156 | }; |
@@ -139,7 +161,7 @@ | |||
139 | gpio-controller; | 161 | gpio-controller; |
140 | #gpio-cells = <2>; | 162 | #gpio-cells = <2>; |
141 | interrupt-controller; | 163 | interrupt-controller; |
142 | #interrupt-cells = <1>; | 164 | #interrupt-cells = <2>; |
143 | reg = <0x481ae000 0x1000>; | 165 | reg = <0x481ae000 0x1000>; |
144 | interrupts = <62>; | 166 | interrupts = <62>; |
145 | }; | 167 | }; |
@@ -228,6 +250,50 @@ | |||
228 | status = "disabled"; | 250 | status = "disabled"; |
229 | }; | 251 | }; |
230 | 252 | ||
253 | mmc1: mmc@48060000 { | ||
254 | compatible = "ti,omap4-hsmmc"; | ||
255 | ti,hwmods = "mmc1"; | ||
256 | ti,dual-volt; | ||
257 | ti,needs-special-reset; | ||
258 | ti,needs-special-hs-handling; | ||
259 | dmas = <&edma 24 | ||
260 | &edma 25>; | ||
261 | dma-names = "tx", "rx"; | ||
262 | interrupts = <64>; | ||
263 | interrupt-parent = <&intc>; | ||
264 | reg = <0x48060000 0x1000>; | ||
265 | status = "disabled"; | ||
266 | }; | ||
267 | |||
268 | mmc2: mmc@481d8000 { | ||
269 | compatible = "ti,omap4-hsmmc"; | ||
270 | ti,hwmods = "mmc2"; | ||
271 | ti,needs-special-reset; | ||
272 | dmas = <&edma 2 | ||
273 | &edma 3>; | ||
274 | dma-names = "tx", "rx"; | ||
275 | interrupts = <28>; | ||
276 | interrupt-parent = <&intc>; | ||
277 | reg = <0x481d8000 0x1000>; | ||
278 | status = "disabled"; | ||
279 | }; | ||
280 | |||
281 | mmc3: mmc@47810000 { | ||
282 | compatible = "ti,omap4-hsmmc"; | ||
283 | ti,hwmods = "mmc3"; | ||
284 | ti,needs-special-reset; | ||
285 | interrupts = <29>; | ||
286 | interrupt-parent = <&intc>; | ||
287 | reg = <0x47810000 0x1000>; | ||
288 | status = "disabled"; | ||
289 | }; | ||
290 | |||
291 | hwspinlock: spinlock@480ca000 { | ||
292 | compatible = "ti,omap4-hwspinlock"; | ||
293 | reg = <0x480ca000 0x1000>; | ||
294 | ti,hwmods = "spinlock"; | ||
295 | }; | ||
296 | |||
231 | wdt2: wdt@44e35000 { | 297 | wdt2: wdt@44e35000 { |
232 | compatible = "ti,omap3-wdt"; | 298 | compatible = "ti,omap3-wdt"; |
233 | ti,hwmods = "wd_timer2"; | 299 | ti,hwmods = "wd_timer2"; |
@@ -323,6 +389,11 @@ | |||
323 | interrupts = <65>; | 389 | interrupts = <65>; |
324 | ti,spi-num-cs = <2>; | 390 | ti,spi-num-cs = <2>; |
325 | ti,hwmods = "spi0"; | 391 | ti,hwmods = "spi0"; |
392 | dmas = <&edma 16 | ||
393 | &edma 17 | ||
394 | &edma 18 | ||
395 | &edma 19>; | ||
396 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
326 | status = "disabled"; | 397 | status = "disabled"; |
327 | }; | 398 | }; |
328 | 399 | ||
@@ -334,6 +405,11 @@ | |||
334 | interrupts = <125>; | 405 | interrupts = <125>; |
335 | ti,spi-num-cs = <2>; | 406 | ti,spi-num-cs = <2>; |
336 | ti,hwmods = "spi1"; | 407 | ti,hwmods = "spi1"; |
408 | dmas = <&edma 42 | ||
409 | &edma 43 | ||
410 | &edma 44 | ||
411 | &edma 45>; | ||
412 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
337 | status = "disabled"; | 413 | status = "disabled"; |
338 | }; | 414 | }; |
339 | 415 | ||
@@ -346,7 +422,7 @@ | |||
346 | ti,hwmods = "usb_otg_hs"; | 422 | ti,hwmods = "usb_otg_hs"; |
347 | status = "disabled"; | 423 | status = "disabled"; |
348 | 424 | ||
349 | ctrl_mod: control@44e10000 { | 425 | usb_ctrl_mod: control@44e10000 { |
350 | compatible = "ti,am335x-usb-ctrl-module"; | 426 | compatible = "ti,am335x-usb-ctrl-module"; |
351 | reg = <0x44e10620 0x10 | 427 | reg = <0x44e10620 0x10 |
352 | 0x44e10648 0x4>; | 428 | 0x44e10648 0x4>; |
@@ -359,7 +435,7 @@ | |||
359 | reg = <0x47401300 0x100>; | 435 | reg = <0x47401300 0x100>; |
360 | reg-names = "phy"; | 436 | reg-names = "phy"; |
361 | status = "disabled"; | 437 | status = "disabled"; |
362 | ti,ctrl_mod = <&ctrl_mod>; | 438 | ti,ctrl_mod = <&usb_ctrl_mod>; |
363 | }; | 439 | }; |
364 | 440 | ||
365 | usb0: usb@47401000 { | 441 | usb0: usb@47401000 { |
@@ -407,7 +483,7 @@ | |||
407 | reg = <0x47401b00 0x100>; | 483 | reg = <0x47401b00 0x100>; |
408 | reg-names = "phy"; | 484 | reg-names = "phy"; |
409 | status = "disabled"; | 485 | status = "disabled"; |
410 | ti,ctrl_mod = <&ctrl_mod>; | 486 | ti,ctrl_mod = <&usb_ctrl_mod>; |
411 | }; | 487 | }; |
412 | 488 | ||
413 | usb1: usb@47401800 { | 489 | usb1: usb@47401800 { |
@@ -607,6 +683,7 @@ | |||
607 | reg = <0x44d00000 0x4000 /* M3 UMEM */ | 683 | reg = <0x44d00000 0x4000 /* M3 UMEM */ |
608 | 0x44d80000 0x2000>; /* M3 DMEM */ | 684 | 0x44d80000 0x2000>; /* M3 DMEM */ |
609 | ti,hwmods = "wkup_m3"; | 685 | ti,hwmods = "wkup_m3"; |
686 | ti,no-reset-on-init; | ||
610 | }; | 687 | }; |
611 | 688 | ||
612 | elm: elm@48080000 { | 689 | elm: elm@48080000 { |
@@ -617,6 +694,15 @@ | |||
617 | status = "disabled"; | 694 | status = "disabled"; |
618 | }; | 695 | }; |
619 | 696 | ||
697 | lcdc: lcdc@4830e000 { | ||
698 | compatible = "ti,am33xx-tilcdc"; | ||
699 | reg = <0x4830e000 0x1000>; | ||
700 | interrupt-parent = <&intc>; | ||
701 | interrupts = <36>; | ||
702 | ti,hwmods = "lcdc"; | ||
703 | status = "disabled"; | ||
704 | }; | ||
705 | |||
620 | tscadc: tscadc@44e0d000 { | 706 | tscadc: tscadc@44e0d000 { |
621 | compatible = "ti,am3359-tscadc"; | 707 | compatible = "ti,am3359-tscadc"; |
622 | reg = <0x44e0d000 0x1000>; | 708 | reg = <0x44e0d000 0x1000>; |
@@ -637,6 +723,7 @@ | |||
637 | gpmc: gpmc@50000000 { | 723 | gpmc: gpmc@50000000 { |
638 | compatible = "ti,am3352-gpmc"; | 724 | compatible = "ti,am3352-gpmc"; |
639 | ti,hwmods = "gpmc"; | 725 | ti,hwmods = "gpmc"; |
726 | ti,no-idle-on-init; | ||
640 | reg = <0x50000000 0x2000>; | 727 | reg = <0x50000000 0x2000>; |
641 | interrupts = <100>; | 728 | interrupts = <100>; |
642 | gpmc,num-cs = <7>; | 729 | gpmc,num-cs = <7>; |
@@ -645,5 +732,59 @@ | |||
645 | #size-cells = <1>; | 732 | #size-cells = <1>; |
646 | status = "disabled"; | 733 | status = "disabled"; |
647 | }; | 734 | }; |
735 | |||
736 | sham: sham@53100000 { | ||
737 | compatible = "ti,omap4-sham"; | ||
738 | ti,hwmods = "sham"; | ||
739 | reg = <0x53100000 0x200>; | ||
740 | interrupts = <109>; | ||
741 | dmas = <&edma 36>; | ||
742 | dma-names = "rx"; | ||
743 | }; | ||
744 | |||
745 | aes: aes@53500000 { | ||
746 | compatible = "ti,omap4-aes"; | ||
747 | ti,hwmods = "aes"; | ||
748 | reg = <0x53500000 0xa0>; | ||
749 | interrupts = <103>; | ||
750 | dmas = <&edma 6>, | ||
751 | <&edma 5>; | ||
752 | dma-names = "tx", "rx"; | ||
753 | }; | ||
754 | |||
755 | mcasp0: mcasp@48038000 { | ||
756 | compatible = "ti,am33xx-mcasp-audio"; | ||
757 | ti,hwmods = "mcasp0"; | ||
758 | reg = <0x48038000 0x2000>, | ||
759 | <0x46000000 0x400000>; | ||
760 | reg-names = "mpu", "dat"; | ||
761 | interrupts = <80>, <81>; | ||
762 | interrupts-names = "tx", "rx"; | ||
763 | status = "disabled"; | ||
764 | dmas = <&edma 8>, | ||
765 | <&edma 9>; | ||
766 | dma-names = "tx", "rx"; | ||
767 | }; | ||
768 | |||
769 | mcasp1: mcasp@4803C000 { | ||
770 | compatible = "ti,am33xx-mcasp-audio"; | ||
771 | ti,hwmods = "mcasp1"; | ||
772 | reg = <0x4803C000 0x2000>, | ||
773 | <0x46400000 0x400000>; | ||
774 | reg-names = "mpu", "dat"; | ||
775 | interrupts = <82>, <83>; | ||
776 | interrupts-names = "tx", "rx"; | ||
777 | status = "disabled"; | ||
778 | dmas = <&edma 10>, | ||
779 | <&edma 11>; | ||
780 | dma-names = "tx", "rx"; | ||
781 | }; | ||
782 | |||
783 | rng: rng@48310000 { | ||
784 | compatible = "ti,omap4-rng"; | ||
785 | ti,hwmods = "rng"; | ||
786 | reg = <0x48310000 0x2000>; | ||
787 | interrupts = <111>; | ||
788 | }; | ||
648 | }; | 789 | }; |
649 | }; | 790 | }; |
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi index ddc1df77ac52..974d103ab3b1 100644 --- a/arch/arm/boot/dts/am4372.dtsi +++ b/arch/arm/boot/dts/am4372.dtsi | |||
@@ -18,12 +18,21 @@ | |||
18 | 18 | ||
19 | 19 | ||
20 | aliases { | 20 | aliases { |
21 | i2c0 = &i2c0; | ||
22 | i2c1 = &i2c1; | ||
23 | i2c2 = &i2c2; | ||
21 | serial0 = &uart0; | 24 | serial0 = &uart0; |
25 | ethernet0 = &cpsw_emac0; | ||
26 | ethernet1 = &cpsw_emac1; | ||
22 | }; | 27 | }; |
23 | 28 | ||
24 | cpus { | 29 | cpus { |
30 | #address-cells = <1>; | ||
31 | #size-cells = <0>; | ||
25 | cpu@0 { | 32 | cpu@0 { |
26 | compatible = "arm,cortex-a9"; | 33 | compatible = "arm,cortex-a9"; |
34 | device_type = "cpu"; | ||
35 | reg = <0>; | ||
27 | }; | 36 | }; |
28 | }; | 37 | }; |
29 | 38 | ||
@@ -35,16 +44,100 @@ | |||
35 | <0x48240100 0x0100>; | 44 | <0x48240100 0x0100>; |
36 | }; | 45 | }; |
37 | 46 | ||
47 | l2-cache-controller@48242000 { | ||
48 | compatible = "arm,pl310-cache"; | ||
49 | reg = <0x48242000 0x1000>; | ||
50 | cache-unified; | ||
51 | cache-level = <2>; | ||
52 | }; | ||
53 | |||
54 | am43xx_pinmux: pinmux@44e10800 { | ||
55 | compatible = "pinctrl-single"; | ||
56 | reg = <0x44e10800 0x31c>; | ||
57 | #address-cells = <1>; | ||
58 | #size-cells = <0>; | ||
59 | pinctrl-single,register-width = <32>; | ||
60 | pinctrl-single,function-mask = <0xffffffff>; | ||
61 | }; | ||
62 | |||
38 | ocp { | 63 | ocp { |
39 | compatible = "simple-bus"; | 64 | compatible = "simple-bus"; |
40 | #address-cells = <1>; | 65 | #address-cells = <1>; |
41 | #size-cells = <1>; | 66 | #size-cells = <1>; |
42 | ranges; | 67 | ranges; |
68 | ti,hwmods = "l3_main"; | ||
69 | |||
70 | edma: edma@49000000 { | ||
71 | compatible = "ti,edma3"; | ||
72 | ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; | ||
73 | reg = <0x49000000 0x10000>, | ||
74 | <0x44e10f90 0x10>; | ||
75 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
76 | <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, | ||
77 | <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
78 | #dma-cells = <1>; | ||
79 | dma-channels = <64>; | ||
80 | ti,edma-regions = <4>; | ||
81 | ti,edma-slots = <256>; | ||
82 | }; | ||
43 | 83 | ||
44 | uart0: serial@44e09000 { | 84 | uart0: serial@44e09000 { |
45 | compatible = "ti,am4372-uart","ti,omap2-uart"; | 85 | compatible = "ti,am4372-uart","ti,omap2-uart"; |
46 | reg = <0x44e09000 0x2000>; | 86 | reg = <0x44e09000 0x2000>; |
47 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; | 87 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; |
88 | ti,hwmods = "uart1"; | ||
89 | }; | ||
90 | |||
91 | uart1: serial@48022000 { | ||
92 | compatible = "ti,am4372-uart","ti,omap2-uart"; | ||
93 | reg = <0x48022000 0x2000>; | ||
94 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
95 | ti,hwmods = "uart2"; | ||
96 | status = "disabled"; | ||
97 | }; | ||
98 | |||
99 | uart2: serial@48024000 { | ||
100 | compatible = "ti,am4372-uart","ti,omap2-uart"; | ||
101 | reg = <0x48024000 0x2000>; | ||
102 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | ||
103 | ti,hwmods = "uart3"; | ||
104 | status = "disabled"; | ||
105 | }; | ||
106 | |||
107 | uart3: serial@481a6000 { | ||
108 | compatible = "ti,am4372-uart","ti,omap2-uart"; | ||
109 | reg = <0x481a6000 0x2000>; | ||
110 | interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; | ||
111 | ti,hwmods = "uart4"; | ||
112 | status = "disabled"; | ||
113 | }; | ||
114 | |||
115 | uart4: serial@481a8000 { | ||
116 | compatible = "ti,am4372-uart","ti,omap2-uart"; | ||
117 | reg = <0x481a8000 0x2000>; | ||
118 | interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; | ||
119 | ti,hwmods = "uart5"; | ||
120 | status = "disabled"; | ||
121 | }; | ||
122 | |||
123 | uart5: serial@481aa000 { | ||
124 | compatible = "ti,am4372-uart","ti,omap2-uart"; | ||
125 | reg = <0x481aa000 0x2000>; | ||
126 | interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; | ||
127 | ti,hwmods = "uart6"; | ||
128 | status = "disabled"; | ||
129 | }; | ||
130 | |||
131 | mailbox: mailbox@480C8000 { | ||
132 | compatible = "ti,omap4-mailbox"; | ||
133 | reg = <0x480C8000 0x200>; | ||
134 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; | ||
135 | ti,hwmods = "mailbox"; | ||
136 | ti,mbox-num-users = <4>; | ||
137 | ti,mbox-num-fifos = <8>; | ||
138 | ti,mbox-names = "wkup_m3"; | ||
139 | ti,mbox-data = <0 0 0 0>; | ||
140 | status = "disabled"; | ||
48 | }; | 141 | }; |
49 | 142 | ||
50 | timer1: timer@44e31000 { | 143 | timer1: timer@44e31000 { |
@@ -52,17 +145,523 @@ | |||
52 | reg = <0x44e31000 0x400>; | 145 | reg = <0x44e31000 0x400>; |
53 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | 146 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; |
54 | ti,timer-alwon; | 147 | ti,timer-alwon; |
148 | ti,hwmods = "timer1"; | ||
55 | }; | 149 | }; |
56 | 150 | ||
57 | timer2: timer@48040000 { | 151 | timer2: timer@48040000 { |
58 | compatible = "ti,am4372-timer","ti,am335x-timer"; | 152 | compatible = "ti,am4372-timer","ti,am335x-timer"; |
59 | reg = <0x48040000 0x400>; | 153 | reg = <0x48040000 0x400>; |
60 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; | 154 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; |
155 | ti,hwmods = "timer2"; | ||
156 | }; | ||
157 | |||
158 | timer3: timer@48042000 { | ||
159 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
160 | reg = <0x48042000 0x400>; | ||
161 | interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
162 | ti,hwmods = "timer3"; | ||
163 | status = "disabled"; | ||
164 | }; | ||
165 | |||
166 | timer4: timer@48044000 { | ||
167 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
168 | reg = <0x48044000 0x400>; | ||
169 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; | ||
170 | ti,timer-pwm; | ||
171 | ti,hwmods = "timer4"; | ||
172 | status = "disabled"; | ||
173 | }; | ||
174 | |||
175 | timer5: timer@48046000 { | ||
176 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
177 | reg = <0x48046000 0x400>; | ||
178 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
179 | ti,timer-pwm; | ||
180 | ti,hwmods = "timer5"; | ||
181 | status = "disabled"; | ||
182 | }; | ||
183 | |||
184 | timer6: timer@48048000 { | ||
185 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
186 | reg = <0x48048000 0x400>; | ||
187 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; | ||
188 | ti,timer-pwm; | ||
189 | ti,hwmods = "timer6"; | ||
190 | status = "disabled"; | ||
191 | }; | ||
192 | |||
193 | timer7: timer@4804a000 { | ||
194 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
195 | reg = <0x4804a000 0x400>; | ||
196 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
197 | ti,timer-pwm; | ||
198 | ti,hwmods = "timer7"; | ||
199 | status = "disabled"; | ||
200 | }; | ||
201 | |||
202 | timer8: timer@481c1000 { | ||
203 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
204 | reg = <0x481c1000 0x400>; | ||
205 | interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; | ||
206 | ti,hwmods = "timer8"; | ||
207 | status = "disabled"; | ||
208 | }; | ||
209 | |||
210 | timer9: timer@4833d000 { | ||
211 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
212 | reg = <0x4833d000 0x400>; | ||
213 | interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>; | ||
214 | ti,hwmods = "timer9"; | ||
215 | status = "disabled"; | ||
216 | }; | ||
217 | |||
218 | timer10: timer@4833f000 { | ||
219 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
220 | reg = <0x4833f000 0x400>; | ||
221 | interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; | ||
222 | ti,hwmods = "timer10"; | ||
223 | status = "disabled"; | ||
224 | }; | ||
225 | |||
226 | timer11: timer@48341000 { | ||
227 | compatible = "ti,am4372-timer","ti,am335x-timer"; | ||
228 | reg = <0x48341000 0x400>; | ||
229 | interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; | ||
230 | ti,hwmods = "timer11"; | ||
231 | status = "disabled"; | ||
61 | }; | 232 | }; |
62 | 233 | ||
63 | counter32k: counter@44e86000 { | 234 | counter32k: counter@44e86000 { |
64 | compatible = "ti,am4372-counter32k","ti,omap-counter32k"; | 235 | compatible = "ti,am4372-counter32k","ti,omap-counter32k"; |
65 | reg = <0x44e86000 0x40>; | 236 | reg = <0x44e86000 0x40>; |
237 | ti,hwmods = "counter_32k"; | ||
238 | }; | ||
239 | |||
240 | rtc@44e3e000 { | ||
241 | compatible = "ti,am4372-rtc","ti,da830-rtc"; | ||
242 | reg = <0x44e3e000 0x1000>; | ||
243 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH | ||
244 | GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; | ||
245 | ti,hwmods = "rtc"; | ||
246 | status = "disabled"; | ||
247 | }; | ||
248 | |||
249 | wdt@44e35000 { | ||
250 | compatible = "ti,am4372-wdt","ti,omap3-wdt"; | ||
251 | reg = <0x44e35000 0x1000>; | ||
252 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | ||
253 | ti,hwmods = "wd_timer2"; | ||
254 | }; | ||
255 | |||
256 | gpio0: gpio@44e07000 { | ||
257 | compatible = "ti,am4372-gpio","ti,omap4-gpio"; | ||
258 | reg = <0x44e07000 0x1000>; | ||
259 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | ||
260 | gpio-controller; | ||
261 | #gpio-cells = <2>; | ||
262 | interrupt-controller; | ||
263 | #interrupt-cells = <2>; | ||
264 | ti,hwmods = "gpio1"; | ||
265 | status = "disabled"; | ||
266 | }; | ||
267 | |||
268 | gpio1: gpio@4804c000 { | ||
269 | compatible = "ti,am4372-gpio","ti,omap4-gpio"; | ||
270 | reg = <0x4804c000 0x1000>; | ||
271 | interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; | ||
272 | gpio-controller; | ||
273 | #gpio-cells = <2>; | ||
274 | interrupt-controller; | ||
275 | #interrupt-cells = <2>; | ||
276 | ti,hwmods = "gpio2"; | ||
277 | status = "disabled"; | ||
278 | }; | ||
279 | |||
280 | gpio2: gpio@481ac000 { | ||
281 | compatible = "ti,am4372-gpio","ti,omap4-gpio"; | ||
282 | reg = <0x481ac000 0x1000>; | ||
283 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | ||
284 | gpio-controller; | ||
285 | #gpio-cells = <2>; | ||
286 | interrupt-controller; | ||
287 | #interrupt-cells = <2>; | ||
288 | ti,hwmods = "gpio3"; | ||
289 | status = "disabled"; | ||
290 | }; | ||
291 | |||
292 | gpio3: gpio@481ae000 { | ||
293 | compatible = "ti,am4372-gpio","ti,omap4-gpio"; | ||
294 | reg = <0x481ae000 0x1000>; | ||
295 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | ||
296 | gpio-controller; | ||
297 | #gpio-cells = <2>; | ||
298 | interrupt-controller; | ||
299 | #interrupt-cells = <2>; | ||
300 | ti,hwmods = "gpio4"; | ||
301 | status = "disabled"; | ||
302 | }; | ||
303 | |||
304 | gpio4: gpio@48320000 { | ||
305 | compatible = "ti,am4372-gpio","ti,omap4-gpio"; | ||
306 | reg = <0x48320000 0x1000>; | ||
307 | interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; | ||
308 | gpio-controller; | ||
309 | #gpio-cells = <2>; | ||
310 | interrupt-controller; | ||
311 | #interrupt-cells = <2>; | ||
312 | ti,hwmods = "gpio5"; | ||
313 | status = "disabled"; | ||
314 | }; | ||
315 | |||
316 | gpio5: gpio@48322000 { | ||
317 | compatible = "ti,am4372-gpio","ti,omap4-gpio"; | ||
318 | reg = <0x48322000 0x1000>; | ||
319 | interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; | ||
320 | gpio-controller; | ||
321 | #gpio-cells = <2>; | ||
322 | interrupt-controller; | ||
323 | #interrupt-cells = <2>; | ||
324 | ti,hwmods = "gpio6"; | ||
325 | status = "disabled"; | ||
326 | }; | ||
327 | |||
328 | i2c0: i2c@44e0b000 { | ||
329 | compatible = "ti,am4372-i2c","ti,omap4-i2c"; | ||
330 | reg = <0x44e0b000 0x1000>; | ||
331 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
332 | ti,hwmods = "i2c1"; | ||
333 | #address-cells = <1>; | ||
334 | #size-cells = <0>; | ||
335 | status = "disabled"; | ||
336 | }; | ||
337 | |||
338 | i2c1: i2c@4802a000 { | ||
339 | compatible = "ti,am4372-i2c","ti,omap4-i2c"; | ||
340 | reg = <0x4802a000 0x1000>; | ||
341 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | ||
342 | ti,hwmods = "i2c2"; | ||
343 | #address-cells = <1>; | ||
344 | #size-cells = <0>; | ||
345 | status = "disabled"; | ||
346 | }; | ||
347 | |||
348 | i2c2: i2c@4819c000 { | ||
349 | compatible = "ti,am4372-i2c","ti,omap4-i2c"; | ||
350 | reg = <0x4819c000 0x1000>; | ||
351 | interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | ||
352 | ti,hwmods = "i2c3"; | ||
353 | #address-cells = <1>; | ||
354 | #size-cells = <0>; | ||
355 | status = "disabled"; | ||
356 | }; | ||
357 | |||
358 | spi0: spi@48030000 { | ||
359 | compatible = "ti,am4372-mcspi","ti,omap4-mcspi"; | ||
360 | reg = <0x48030000 0x400>; | ||
361 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
362 | ti,hwmods = "spi0"; | ||
363 | #address-cells = <1>; | ||
364 | #size-cells = <0>; | ||
365 | status = "disabled"; | ||
366 | }; | ||
367 | |||
368 | mmc1: mmc@48060000 { | ||
369 | compatible = "ti,omap4-hsmmc"; | ||
370 | reg = <0x48060000 0x1000>; | ||
371 | ti,hwmods = "mmc1"; | ||
372 | ti,dual-volt; | ||
373 | ti,needs-special-reset; | ||
374 | dmas = <&edma 24 | ||
375 | &edma 25>; | ||
376 | dma-names = "tx", "rx"; | ||
377 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; | ||
378 | status = "disabled"; | ||
379 | }; | ||
380 | |||
381 | mmc2: mmc@481d8000 { | ||
382 | compatible = "ti,omap4-hsmmc"; | ||
383 | reg = <0x481d8000 0x1000>; | ||
384 | ti,hwmods = "mmc2"; | ||
385 | ti,needs-special-reset; | ||
386 | dmas = <&edma 2 | ||
387 | &edma 3>; | ||
388 | dma-names = "tx", "rx"; | ||
389 | interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | ||
390 | status = "disabled"; | ||
391 | }; | ||
392 | |||
393 | mmc3: mmc@47810000 { | ||
394 | compatible = "ti,omap4-hsmmc"; | ||
395 | reg = <0x47810000 0x1000>; | ||
396 | ti,hwmods = "mmc3"; | ||
397 | ti,needs-special-reset; | ||
398 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; | ||
399 | status = "disabled"; | ||
400 | }; | ||
401 | |||
402 | spi1: spi@481a0000 { | ||
403 | compatible = "ti,am4372-mcspi","ti,omap4-mcspi"; | ||
404 | reg = <0x481a0000 0x400>; | ||
405 | interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; | ||
406 | ti,hwmods = "spi1"; | ||
407 | #address-cells = <1>; | ||
408 | #size-cells = <0>; | ||
409 | status = "disabled"; | ||
410 | }; | ||
411 | |||
412 | spi2: spi@481a2000 { | ||
413 | compatible = "ti,am4372-mcspi","ti,omap4-mcspi"; | ||
414 | reg = <0x481a2000 0x400>; | ||
415 | interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; | ||
416 | ti,hwmods = "spi2"; | ||
417 | #address-cells = <1>; | ||
418 | #size-cells = <0>; | ||
419 | status = "disabled"; | ||
420 | }; | ||
421 | |||
422 | spi3: spi@481a4000 { | ||
423 | compatible = "ti,am4372-mcspi","ti,omap4-mcspi"; | ||
424 | reg = <0x481a4000 0x400>; | ||
425 | interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; | ||
426 | ti,hwmods = "spi3"; | ||
427 | #address-cells = <1>; | ||
428 | #size-cells = <0>; | ||
429 | status = "disabled"; | ||
430 | }; | ||
431 | |||
432 | spi4: spi@48345000 { | ||
433 | compatible = "ti,am4372-mcspi","ti,omap4-mcspi"; | ||
434 | reg = <0x48345000 0x400>; | ||
435 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; | ||
436 | ti,hwmods = "spi4"; | ||
437 | #address-cells = <1>; | ||
438 | #size-cells = <0>; | ||
439 | status = "disabled"; | ||
440 | }; | ||
441 | |||
442 | mac: ethernet@4a100000 { | ||
443 | compatible = "ti,am4372-cpsw","ti,cpsw"; | ||
444 | reg = <0x4a100000 0x800 | ||
445 | 0x4a101200 0x100>; | ||
446 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH | ||
447 | GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH | ||
448 | GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH | ||
449 | GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; | ||
450 | #address-cells = <1>; | ||
451 | #size-cells = <1>; | ||
452 | ti,hwmods = "cpgmac0"; | ||
453 | status = "disabled"; | ||
454 | cpdma_channels = <8>; | ||
455 | ale_entries = <1024>; | ||
456 | bd_ram_size = <0x2000>; | ||
457 | no_bd_ram = <0>; | ||
458 | rx_descs = <64>; | ||
459 | mac_control = <0x20>; | ||
460 | slaves = <2>; | ||
461 | active_slave = <0>; | ||
462 | cpts_clock_mult = <0x80000000>; | ||
463 | cpts_clock_shift = <29>; | ||
464 | ranges; | ||
465 | |||
466 | davinci_mdio: mdio@4a101000 { | ||
467 | compatible = "ti,am4372-mdio","ti,davinci_mdio"; | ||
468 | reg = <0x4a101000 0x100>; | ||
469 | #address-cells = <1>; | ||
470 | #size-cells = <0>; | ||
471 | ti,hwmods = "davinci_mdio"; | ||
472 | bus_freq = <1000000>; | ||
473 | status = "disabled"; | ||
474 | }; | ||
475 | |||
476 | cpsw_emac0: slave@4a100200 { | ||
477 | /* Filled in by U-Boot */ | ||
478 | mac-address = [ 00 00 00 00 00 00 ]; | ||
479 | }; | ||
480 | |||
481 | cpsw_emac1: slave@4a100300 { | ||
482 | /* Filled in by U-Boot */ | ||
483 | mac-address = [ 00 00 00 00 00 00 ]; | ||
484 | }; | ||
485 | }; | ||
486 | |||
487 | epwmss0: epwmss@48300000 { | ||
488 | compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; | ||
489 | reg = <0x48300000 0x10>; | ||
490 | #address-cells = <1>; | ||
491 | #size-cells = <1>; | ||
492 | ranges; | ||
493 | ti,hwmods = "epwmss0"; | ||
494 | status = "disabled"; | ||
495 | |||
496 | ecap0: ecap@48300100 { | ||
497 | compatible = "ti,am4372-ecap","ti,am33xx-ecap"; | ||
498 | reg = <0x48300100 0x80>; | ||
499 | ti,hwmods = "ecap0"; | ||
500 | status = "disabled"; | ||
501 | }; | ||
502 | |||
503 | ehrpwm0: ehrpwm@48300200 { | ||
504 | compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; | ||
505 | reg = <0x48300200 0x80>; | ||
506 | ti,hwmods = "ehrpwm0"; | ||
507 | status = "disabled"; | ||
508 | }; | ||
509 | }; | ||
510 | |||
511 | epwmss1: epwmss@48302000 { | ||
512 | compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; | ||
513 | reg = <0x48302000 0x10>; | ||
514 | #address-cells = <1>; | ||
515 | #size-cells = <1>; | ||
516 | ranges; | ||
517 | ti,hwmods = "epwmss1"; | ||
518 | status = "disabled"; | ||
519 | |||
520 | ecap1: ecap@48302100 { | ||
521 | compatible = "ti,am4372-ecap","ti,am33xx-ecap"; | ||
522 | reg = <0x48302100 0x80>; | ||
523 | ti,hwmods = "ecap1"; | ||
524 | status = "disabled"; | ||
525 | }; | ||
526 | |||
527 | ehrpwm1: ehrpwm@48302200 { | ||
528 | compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; | ||
529 | reg = <0x48302200 0x80>; | ||
530 | ti,hwmods = "ehrpwm1"; | ||
531 | status = "disabled"; | ||
532 | }; | ||
533 | }; | ||
534 | |||
535 | epwmss2: epwmss@48304000 { | ||
536 | compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; | ||
537 | reg = <0x48304000 0x10>; | ||
538 | #address-cells = <1>; | ||
539 | #size-cells = <1>; | ||
540 | ranges; | ||
541 | ti,hwmods = "epwmss2"; | ||
542 | status = "disabled"; | ||
543 | |||
544 | ecap2: ecap@48304100 { | ||
545 | compatible = "ti,am4372-ecap","ti,am33xx-ecap"; | ||
546 | reg = <0x48304100 0x80>; | ||
547 | ti,hwmods = "ecap2"; | ||
548 | status = "disabled"; | ||
549 | }; | ||
550 | |||
551 | ehrpwm2: ehrpwm@48304200 { | ||
552 | compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; | ||
553 | reg = <0x48304200 0x80>; | ||
554 | ti,hwmods = "ehrpwm2"; | ||
555 | status = "disabled"; | ||
556 | }; | ||
557 | }; | ||
558 | |||
559 | epwmss3: epwmss@48306000 { | ||
560 | compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; | ||
561 | reg = <0x48306000 0x10>; | ||
562 | #address-cells = <1>; | ||
563 | #size-cells = <1>; | ||
564 | ranges; | ||
565 | ti,hwmods = "epwmss3"; | ||
566 | status = "disabled"; | ||
567 | |||
568 | ehrpwm3: ehrpwm@48306200 { | ||
569 | compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; | ||
570 | reg = <0x48306200 0x80>; | ||
571 | ti,hwmods = "ehrpwm3"; | ||
572 | status = "disabled"; | ||
573 | }; | ||
574 | }; | ||
575 | |||
576 | epwmss4: epwmss@48308000 { | ||
577 | compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; | ||
578 | reg = <0x48308000 0x10>; | ||
579 | #address-cells = <1>; | ||
580 | #size-cells = <1>; | ||
581 | ranges; | ||
582 | ti,hwmods = "epwmss4"; | ||
583 | status = "disabled"; | ||
584 | |||
585 | ehrpwm4: ehrpwm@48308200 { | ||
586 | compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; | ||
587 | reg = <0x48308200 0x80>; | ||
588 | ti,hwmods = "ehrpwm4"; | ||
589 | status = "disabled"; | ||
590 | }; | ||
591 | }; | ||
592 | |||
593 | epwmss5: epwmss@4830a000 { | ||
594 | compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"; | ||
595 | reg = <0x4830a000 0x10>; | ||
596 | #address-cells = <1>; | ||
597 | #size-cells = <1>; | ||
598 | ranges; | ||
599 | ti,hwmods = "epwmss5"; | ||
600 | status = "disabled"; | ||
601 | |||
602 | ehrpwm5: ehrpwm@4830a200 { | ||
603 | compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; | ||
604 | reg = <0x4830a200 0x80>; | ||
605 | ti,hwmods = "ehrpwm5"; | ||
606 | status = "disabled"; | ||
607 | }; | ||
608 | }; | ||
609 | |||
610 | sham: sham@53100000 { | ||
611 | compatible = "ti,omap5-sham"; | ||
612 | ti,hwmods = "sham"; | ||
613 | reg = <0x53100000 0x300>; | ||
614 | dmas = <&edma 36>; | ||
615 | dma-names = "rx"; | ||
616 | interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||
617 | }; | ||
618 | |||
619 | aes: aes@53501000 { | ||
620 | compatible = "ti,omap4-aes"; | ||
621 | ti,hwmods = "aes"; | ||
622 | reg = <0x53501000 0xa0>; | ||
623 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | ||
624 | dmas = <&edma 6 | ||
625 | &edma 5>; | ||
626 | dma-names = "tx", "rx"; | ||
627 | }; | ||
628 | |||
629 | des: des@53701000 { | ||
630 | compatible = "ti,omap4-des"; | ||
631 | ti,hwmods = "des"; | ||
632 | reg = <0x53701000 0xa0>; | ||
633 | interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; | ||
634 | dmas = <&edma 34 | ||
635 | &edma 33>; | ||
636 | dma-names = "tx", "rx"; | ||
637 | }; | ||
638 | |||
639 | mcasp0: mcasp@48038000 { | ||
640 | compatible = "ti,am33xx-mcasp-audio"; | ||
641 | ti,hwmods = "mcasp0"; | ||
642 | reg = <0x48038000 0x2000>, | ||
643 | <0x46000000 0x400000>; | ||
644 | reg-names = "mpu", "dat"; | ||
645 | interrupts = <80>, <81>; | ||
646 | interrupts-names = "tx", "rx"; | ||
647 | status = "disabled"; | ||
648 | dmas = <&edma 8>, | ||
649 | <&edma 9>; | ||
650 | dma-names = "tx", "rx"; | ||
651 | }; | ||
652 | |||
653 | mcasp1: mcasp@4803C000 { | ||
654 | compatible = "ti,am33xx-mcasp-audio"; | ||
655 | ti,hwmods = "mcasp1"; | ||
656 | reg = <0x4803C000 0x2000>, | ||
657 | <0x46400000 0x400000>; | ||
658 | reg-names = "mpu", "dat"; | ||
659 | interrupts = <82>, <83>; | ||
660 | interrupts-names = "tx", "rx"; | ||
661 | status = "disabled"; | ||
662 | dmas = <&edma 10>, | ||
663 | <&edma 11>; | ||
664 | dma-names = "tx", "rx"; | ||
66 | }; | 665 | }; |
67 | }; | 666 | }; |
68 | }; | 667 | }; |
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts index 74174d48f476..fbf9c4c7a94f 100644 --- a/arch/arm/boot/dts/am43x-epos-evm.dts +++ b/arch/arm/boot/dts/am43x-epos-evm.dts | |||
@@ -11,8 +11,176 @@ | |||
11 | /dts-v1/; | 11 | /dts-v1/; |
12 | 12 | ||
13 | #include "am4372.dtsi" | 13 | #include "am4372.dtsi" |
14 | #include <dt-bindings/pinctrl/am43xx.h> | ||
15 | #include <dt-bindings/gpio/gpio.h> | ||
14 | 16 | ||
15 | / { | 17 | / { |
16 | model = "TI AM43x EPOS EVM"; | 18 | model = "TI AM43x EPOS EVM"; |
17 | compatible = "ti,am43x-epos-evm","ti,am4372","ti,am43"; | 19 | compatible = "ti,am43x-epos-evm","ti,am4372","ti,am43"; |
20 | |||
21 | vmmcsd_fixed: fixedregulator-sd { | ||
22 | compatible = "regulator-fixed"; | ||
23 | regulator-name = "vmmcsd_fixed"; | ||
24 | regulator-min-microvolt = <3300000>; | ||
25 | regulator-max-microvolt = <3300000>; | ||
26 | enable-active-high; | ||
27 | }; | ||
28 | |||
29 | am43xx_pinmux: pinmux@44e10800 { | ||
30 | cpsw_default: cpsw_default { | ||
31 | pinctrl-single,pins = < | ||
32 | /* Slave 1 */ | ||
33 | 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs */ | ||
34 | 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */ | ||
35 | 0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */ | ||
36 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxdv.rmii1_rxdv */ | ||
37 | 0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */ | ||
38 | 0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */ | ||
39 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */ | ||
40 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */ | ||
41 | 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */ | ||
42 | >; | ||
43 | }; | ||
44 | |||
45 | cpsw_sleep: cpsw_sleep { | ||
46 | pinctrl-single,pins = < | ||
47 | /* Slave 1 reset value */ | ||
48 | 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
49 | 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
50 | 0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
51 | 0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
52 | 0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
53 | 0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
54 | 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
55 | 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
56 | 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
57 | >; | ||
58 | }; | ||
59 | |||
60 | davinci_mdio_default: davinci_mdio_default { | ||
61 | pinctrl-single,pins = < | ||
62 | /* MDIO */ | ||
63 | 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */ | ||
64 | 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */ | ||
65 | >; | ||
66 | }; | ||
67 | |||
68 | davinci_mdio_sleep: davinci_mdio_sleep { | ||
69 | pinctrl-single,pins = < | ||
70 | /* MDIO reset value */ | ||
71 | 0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
72 | 0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7) | ||
73 | >; | ||
74 | }; | ||
75 | |||
76 | i2c0_pins: pinmux_i2c0_pins { | ||
77 | pinctrl-single,pins = < | ||
78 | 0x188 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_sda.i2c0_sda */ | ||
79 | 0x18c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* i2c0_scl.i2c0_scl */ | ||
80 | >; | ||
81 | }; | ||
82 | }; | ||
83 | |||
84 | matrix_keypad: matrix_keypad@0 { | ||
85 | compatible = "gpio-matrix-keypad"; | ||
86 | debounce-delay-ms = <5>; | ||
87 | col-scan-delay-us = <2>; | ||
88 | |||
89 | row-gpios = <&gpio0 12 GPIO_ACTIVE_HIGH /* Bank0, pin12 */ | ||
90 | &gpio0 13 GPIO_ACTIVE_HIGH /* Bank0, pin13 */ | ||
91 | &gpio0 14 GPIO_ACTIVE_HIGH /* Bank0, pin14 */ | ||
92 | &gpio0 15 GPIO_ACTIVE_HIGH>; /* Bank0, pin15 */ | ||
93 | |||
94 | col-gpios = <&gpio3 9 GPIO_ACTIVE_HIGH /* Bank3, pin9 */ | ||
95 | &gpio3 10 GPIO_ACTIVE_HIGH /* Bank3, pin10 */ | ||
96 | &gpio2 18 GPIO_ACTIVE_HIGH /* Bank2, pin18 */ | ||
97 | &gpio2 19 GPIO_ACTIVE_HIGH>; /* Bank2, pin19 */ | ||
98 | |||
99 | linux,keymap = <0x00000201 /* P1 */ | ||
100 | 0x01000204 /* P4 */ | ||
101 | 0x02000207 /* P7 */ | ||
102 | 0x0300020a /* NUMERIC_STAR */ | ||
103 | 0x00010202 /* P2 */ | ||
104 | 0x01010205 /* P5 */ | ||
105 | 0x02010208 /* P8 */ | ||
106 | 0x03010200 /* P0 */ | ||
107 | 0x00020203 /* P3 */ | ||
108 | 0x01020206 /* P6 */ | ||
109 | 0x02020209 /* P9 */ | ||
110 | 0x0302020b /* NUMERIC_POUND */ | ||
111 | 0x00030067 /* UP */ | ||
112 | 0x0103006a /* RIGHT */ | ||
113 | 0x0203006c /* DOWN */ | ||
114 | 0x03030069>; /* LEFT */ | ||
115 | }; | ||
116 | }; | ||
117 | |||
118 | &mmc1 { | ||
119 | status = "okay"; | ||
120 | vmmc-supply = <&vmmcsd_fixed>; | ||
121 | bus-width = <4>; | ||
122 | }; | ||
123 | |||
124 | &mac { | ||
125 | pinctrl-names = "default", "sleep"; | ||
126 | pinctrl-0 = <&cpsw_default>; | ||
127 | pinctrl-1 = <&cpsw_sleep>; | ||
128 | status = "okay"; | ||
129 | }; | ||
130 | |||
131 | &davinci_mdio { | ||
132 | pinctrl-names = "default", "sleep"; | ||
133 | pinctrl-0 = <&davinci_mdio_default>; | ||
134 | pinctrl-1 = <&davinci_mdio_sleep>; | ||
135 | status = "okay"; | ||
136 | }; | ||
137 | |||
138 | &cpsw_emac0 { | ||
139 | phy_id = <&davinci_mdio>, <16>; | ||
140 | phy-mode = "rmii"; | ||
141 | }; | ||
142 | |||
143 | &cpsw_emac1 { | ||
144 | phy_id = <&davinci_mdio>, <1>; | ||
145 | phy-mode = "rmii"; | ||
146 | }; | ||
147 | |||
148 | &i2c0 { | ||
149 | status = "okay"; | ||
150 | pinctrl-names = "default"; | ||
151 | pinctrl-0 = <&i2c0_pins>; | ||
152 | |||
153 | at24@50 { | ||
154 | compatible = "at24,24c256"; | ||
155 | pagesize = <64>; | ||
156 | reg = <0x50>; | ||
157 | }; | ||
158 | |||
159 | pixcir_ts@5c { | ||
160 | compatible = "pixcir,pixcir_ts"; | ||
161 | reg = <0x5c>; | ||
162 | interrupt-parent = <&gpio1>; | ||
163 | interrupts = <17 0>; | ||
164 | |||
165 | attb-gpio = <&gpio1 17 GPIO_ACTIVE_HIGH>; | ||
166 | |||
167 | x-size = <1024>; | ||
168 | y-size = <768>; | ||
169 | }; | ||
170 | }; | ||
171 | |||
172 | &gpio0 { | ||
173 | status = "okay"; | ||
174 | }; | ||
175 | |||
176 | &gpio1 { | ||
177 | status = "okay"; | ||
178 | }; | ||
179 | |||
180 | &gpio2 { | ||
181 | status = "okay"; | ||
182 | }; | ||
183 | |||
184 | &gpio3 { | ||
185 | status = "okay"; | ||
18 | }; | 186 | }; |
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts new file mode 100644 index 000000000000..b0b32f5fbeb4 --- /dev/null +++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts | |||
@@ -0,0 +1,193 @@ | |||
1 | /* | ||
2 | * Device Tree file for NETGEAR ReadyNAS 104 | ||
3 | * | ||
4 | * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | |||
14 | #include "armada-370.dtsi" | ||
15 | |||
16 | / { | ||
17 | model = "NETGEAR ReadyNAS 104"; | ||
18 | compatible = "netgear,readynas-104", "marvell,armada370", "marvell,armada-370-xp"; | ||
19 | |||
20 | chosen { | ||
21 | bootargs = "console=ttyS0,115200 earlyprintk"; | ||
22 | }; | ||
23 | |||
24 | memory { | ||
25 | device_type = "memory"; | ||
26 | reg = <0x00000000 0x20000000>; /* 512 MB */ | ||
27 | }; | ||
28 | |||
29 | soc { | ||
30 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000 | ||
31 | MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; | ||
32 | |||
33 | pcie-controller { | ||
34 | status = "okay"; | ||
35 | |||
36 | /* Connected to FL1009 USB 3.0 controller */ | ||
37 | pcie@1,0 { | ||
38 | /* Port 0, Lane 0 */ | ||
39 | status = "okay"; | ||
40 | }; | ||
41 | |||
42 | /* Connected to Marvell 88SE9215 SATA controller */ | ||
43 | pcie@2,0 { | ||
44 | /* Port 1, Lane 0 */ | ||
45 | status = "okay"; | ||
46 | }; | ||
47 | }; | ||
48 | |||
49 | internal-regs { | ||
50 | serial@12000 { | ||
51 | clock-frequency = <200000000>; | ||
52 | status = "okay"; | ||
53 | }; | ||
54 | |||
55 | pinctrl { | ||
56 | poweroff: poweroff { | ||
57 | marvell,pins = "mpp60"; | ||
58 | marvell,function = "gpio"; | ||
59 | }; | ||
60 | |||
61 | backup_key_pin: backup-key-pin { | ||
62 | marvell,pins = "mpp52"; | ||
63 | marvell,function = "gpio"; | ||
64 | }; | ||
65 | |||
66 | power_key_pin: power-key-pin { | ||
67 | marvell,pins = "mpp62"; | ||
68 | marvell,function = "gpio"; | ||
69 | }; | ||
70 | |||
71 | backup_led_pin: backup-led-pin { | ||
72 | marvell,pins = "mpp63"; | ||
73 | marvell,function = "gpo"; | ||
74 | }; | ||
75 | |||
76 | power_led_pin: power-led-pin { | ||
77 | marvell,pins = "mpp64"; | ||
78 | marvell,function = "gpio"; | ||
79 | }; | ||
80 | |||
81 | reset_key_pin: reset-key-pin { | ||
82 | marvell,pins = "mpp65"; | ||
83 | marvell,function = "gpio"; | ||
84 | }; | ||
85 | }; | ||
86 | |||
87 | mdio { | ||
88 | phy0: ethernet-phy@0 { | ||
89 | reg = <0>; | ||
90 | }; | ||
91 | |||
92 | phy1: ethernet-phy@1 { | ||
93 | reg = <1>; | ||
94 | }; | ||
95 | }; | ||
96 | |||
97 | ethernet@70000 { | ||
98 | status = "okay"; | ||
99 | phy = <&phy0>; | ||
100 | phy-mode = "rgmii-id"; | ||
101 | }; | ||
102 | |||
103 | ethernet@74000 { | ||
104 | status = "okay"; | ||
105 | phy = <&phy1>; | ||
106 | phy-mode = "rgmii-id"; | ||
107 | }; | ||
108 | |||
109 | usb@50000 { | ||
110 | status = "okay"; | ||
111 | }; | ||
112 | |||
113 | i2c@11000 { | ||
114 | compatible = "marvell,mv64xxx-i2c"; | ||
115 | clock-frequency = <100000>; | ||
116 | status = "okay"; | ||
117 | |||
118 | g762: g762@3e { | ||
119 | compatible = "gmt,g762"; | ||
120 | reg = <0x3e>; | ||
121 | clocks = <&g762_clk>; /* input clock */ | ||
122 | fan_gear_mode = <0>; | ||
123 | fan_startv = <1>; | ||
124 | pwm_polarity = <0>; | ||
125 | }; | ||
126 | }; | ||
127 | }; | ||
128 | }; | ||
129 | |||
130 | clocks { | ||
131 | #address-cells = <1>; | ||
132 | #size-cells = <0>; | ||
133 | |||
134 | g762_clk: fixedclk { | ||
135 | compatible = "fixed-clock"; | ||
136 | #clock-cells = <0>; | ||
137 | clock-frequency = <8192>; | ||
138 | }; | ||
139 | }; | ||
140 | |||
141 | gpio_leds { | ||
142 | compatible = "gpio-leds"; | ||
143 | pinctrl-0 = <&backup_led_pin &power_led_pin>; | ||
144 | pinctrl-names = "default"; | ||
145 | |||
146 | blue_backup_led { | ||
147 | label = "rn104:blue:backup"; | ||
148 | gpios = <&gpio1 31 0>; /* GPIO 63 Active High */ | ||
149 | default-state = "off"; | ||
150 | }; | ||
151 | |||
152 | blue_power_led { | ||
153 | label = "rn104:blue:pwr"; | ||
154 | gpios = <&gpio2 0 1>; /* GPIO 64 Active Low */ | ||
155 | linux,default-trigger = "keep"; | ||
156 | }; | ||
157 | }; | ||
158 | |||
159 | gpio_keys { | ||
160 | compatible = "gpio-keys"; | ||
161 | #address-cells = <1>; | ||
162 | #size-cells = <0>; | ||
163 | pinctrl-0 = <&backup_key_pin | ||
164 | &power_key_pin | ||
165 | &reset_key_pin>; | ||
166 | pinctrl-names = "default"; | ||
167 | |||
168 | button@1 { | ||
169 | label = "Backup Button"; | ||
170 | linux,code = <133>; /* KEY_COPY */ | ||
171 | gpios = <&gpio1 20 1>; | ||
172 | }; | ||
173 | |||
174 | button@2 { | ||
175 | label = "Power Button"; | ||
176 | linux,code = <116>; /* KEY_POWER */ | ||
177 | gpios = <&gpio1 30 0>; | ||
178 | }; | ||
179 | |||
180 | button@3 { | ||
181 | label = "Reset Button"; | ||
182 | linux,code = <0x198>; /* KEY_RESTART */ | ||
183 | gpios = <&gpio2 1 1>; | ||
184 | }; | ||
185 | }; | ||
186 | |||
187 | gpio_poweroff { | ||
188 | compatible = "gpio-poweroff"; | ||
189 | pinctrl-0 = <&poweroff>; | ||
190 | pinctrl-names = "default"; | ||
191 | gpios = <&gpio1 28 1>; | ||
192 | }; | ||
193 | }; | ||
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi index 1de2dae0fdae..00d6a798c705 100644 --- a/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/arch/arm/boot/dts/armada-370-xp.dtsi | |||
@@ -113,6 +113,7 @@ | |||
113 | #interrupt-cells = <1>; | 113 | #interrupt-cells = <1>; |
114 | #size-cells = <1>; | 114 | #size-cells = <1>; |
115 | interrupt-controller; | 115 | interrupt-controller; |
116 | msi-controller; | ||
116 | }; | 117 | }; |
117 | 118 | ||
118 | coherency-fabric@20200 { | 119 | coherency-fabric@20200 { |
@@ -137,6 +138,14 @@ | |||
137 | status = "disabled"; | 138 | status = "disabled"; |
138 | }; | 139 | }; |
139 | 140 | ||
141 | coredivclk: corediv-clock@18740 { | ||
142 | compatible = "marvell,armada-370-corediv-clock"; | ||
143 | reg = <0x18740 0xc>; | ||
144 | #clock-cells = <1>; | ||
145 | clocks = <&mainpll>; | ||
146 | clock-output-names = "nand"; | ||
147 | }; | ||
148 | |||
140 | timer@20300 { | 149 | timer@20300 { |
141 | reg = <0x20300 0x30>, <0x21040 0x30>; | 150 | reg = <0x20300 0x30>, <0x21040 0x30>; |
142 | interrupts = <37>, <38>, <39>, <40>, <5>, <6>; | 151 | interrupts = <37>, <38>, <39>, <40>, <5>, <6>; |
@@ -176,7 +185,6 @@ | |||
176 | 185 | ||
177 | i2c0: i2c@11000 { | 186 | i2c0: i2c@11000 { |
178 | compatible = "marvell,mv64xxx-i2c"; | 187 | compatible = "marvell,mv64xxx-i2c"; |
179 | reg = <0x11000 0x20>; | ||
180 | #address-cells = <1>; | 188 | #address-cells = <1>; |
181 | #size-cells = <0>; | 189 | #size-cells = <0>; |
182 | interrupts = <31>; | 190 | interrupts = <31>; |
@@ -187,7 +195,6 @@ | |||
187 | 195 | ||
188 | i2c1: i2c@11100 { | 196 | i2c1: i2c@11100 { |
189 | compatible = "marvell,mv64xxx-i2c"; | 197 | compatible = "marvell,mv64xxx-i2c"; |
190 | reg = <0x11100 0x20>; | ||
191 | #address-cells = <1>; | 198 | #address-cells = <1>; |
192 | #size-cells = <0>; | 199 | #size-cells = <0>; |
193 | interrupts = <32>; | 200 | interrupts = <32>; |
@@ -252,4 +259,13 @@ | |||
252 | 259 | ||
253 | }; | 260 | }; |
254 | }; | 261 | }; |
262 | |||
263 | clocks { | ||
264 | /* 2 GHz fixed main PLL */ | ||
265 | mainpll: mainpll { | ||
266 | compatible = "fixed-clock"; | ||
267 | #clock-cells = <0>; | ||
268 | clock-frequency = <2000000000>; | ||
269 | }; | ||
270 | }; | ||
255 | }; | 271 | }; |
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi index e134d7a90c9a..7a4b82e71aaf 100644 --- a/arch/arm/boot/dts/armada-370.dtsi +++ b/arch/arm/boot/dts/armada-370.dtsi | |||
@@ -44,6 +44,7 @@ | |||
44 | #address-cells = <3>; | 44 | #address-cells = <3>; |
45 | #size-cells = <2>; | 45 | #size-cells = <2>; |
46 | 46 | ||
47 | msi-parent = <&mpic>; | ||
47 | bus-range = <0x00 0xff>; | 48 | bus-range = <0x00 0xff>; |
48 | 49 | ||
49 | ranges = | 50 | ranges = |
@@ -218,6 +219,14 @@ | |||
218 | }; | 219 | }; |
219 | }; | 220 | }; |
220 | 221 | ||
222 | i2c0: i2c@11000 { | ||
223 | reg = <0x11000 0x20>; | ||
224 | }; | ||
225 | |||
226 | i2c1: i2c@11100 { | ||
227 | reg = <0x11100 0x20>; | ||
228 | }; | ||
229 | |||
221 | usb@50000 { | 230 | usb@50000 { |
222 | clocks = <&coreclk 0>; | 231 | clocks = <&coreclk 0>; |
223 | }; | 232 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-matrix.dts b/arch/arm/boot/dts/armada-xp-matrix.dts new file mode 100644 index 000000000000..e47c49ecd55c --- /dev/null +++ b/arch/arm/boot/dts/armada-xp-matrix.dts | |||
@@ -0,0 +1,75 @@ | |||
1 | /* | ||
2 | * Device Tree file for Marvell Armada XP Matrix board | ||
3 | * | ||
4 | * Copyright (C) 2013 Marvell | ||
5 | * | ||
6 | * Lior Amsalem <alior@marvell.com> | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | #include "armada-xp-mv78460.dtsi" | ||
15 | |||
16 | / { | ||
17 | model = "Marvell Armada XP Matrix Board"; | ||
18 | compatible = "marvell,axp-matrix", "marvell,armadaxp-mv78460", "marvell,armadaxp", "marvell,armada-370-xp"; | ||
19 | |||
20 | chosen { | ||
21 | bootargs = "console=ttyS0,115200 earlyprintk"; | ||
22 | }; | ||
23 | |||
24 | memory { | ||
25 | device_type = "memory"; | ||
26 | reg = <0 0x00000000 0 0x80000000>; /* 2 GB */ | ||
27 | }; | ||
28 | |||
29 | soc { | ||
30 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 | ||
31 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000>; | ||
32 | |||
33 | internal-regs { | ||
34 | serial@12000 { | ||
35 | clock-frequency = <250000000>; | ||
36 | status = "okay"; | ||
37 | }; | ||
38 | serial@12100 { | ||
39 | clock-frequency = <250000000>; | ||
40 | status = "okay"; | ||
41 | }; | ||
42 | serial@12200 { | ||
43 | clock-frequency = <250000000>; | ||
44 | status = "okay"; | ||
45 | }; | ||
46 | serial@12300 { | ||
47 | clock-frequency = <250000000>; | ||
48 | status = "okay"; | ||
49 | }; | ||
50 | |||
51 | sata@a0000 { | ||
52 | nr-ports = <2>; | ||
53 | status = "okay"; | ||
54 | }; | ||
55 | |||
56 | ethernet@30000 { | ||
57 | status = "okay"; | ||
58 | phy-mode = "sgmii"; | ||
59 | }; | ||
60 | |||
61 | pcie-controller { | ||
62 | status = "okay"; | ||
63 | |||
64 | pcie@1,0 { | ||
65 | /* Port 0, Lane 0 */ | ||
66 | status = "okay"; | ||
67 | }; | ||
68 | }; | ||
69 | |||
70 | usb@50000 { | ||
71 | status = "okay"; | ||
72 | }; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi index 0358a33cba48..3f5e6121c730 100644 --- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi | |||
@@ -57,6 +57,7 @@ | |||
57 | #address-cells = <3>; | 57 | #address-cells = <3>; |
58 | #size-cells = <2>; | 58 | #size-cells = <2>; |
59 | 59 | ||
60 | msi-parent = <&mpic>; | ||
60 | bus-range = <0x00 0xff>; | 61 | bus-range = <0x00 0xff>; |
61 | 62 | ||
62 | ranges = | 63 | ranges = |
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi index 0e82c5062243..3e9fd1353f89 100644 --- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi | |||
@@ -58,6 +58,7 @@ | |||
58 | #address-cells = <3>; | 58 | #address-cells = <3>; |
59 | #size-cells = <2>; | 59 | #size-cells = <2>; |
60 | 60 | ||
61 | msi-parent = <&mpic>; | ||
61 | bus-range = <0x00 0xff>; | 62 | bus-range = <0x00 0xff>; |
62 | 63 | ||
63 | ranges = | 64 | ranges = |
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi index e82c1b80af17..31ba6d8fbadf 100644 --- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi | |||
@@ -74,6 +74,7 @@ | |||
74 | #address-cells = <3>; | 74 | #address-cells = <3>; |
75 | #size-cells = <2>; | 75 | #size-cells = <2>; |
76 | 76 | ||
77 | msi-parent = <&mpic>; | ||
77 | bus-range = <0x00 0xff>; | 78 | bus-range = <0x00 0xff>; |
78 | 79 | ||
79 | ranges = | 80 | ranges = |
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 3058522f5aad..281c6447e872 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi | |||
@@ -147,6 +147,16 @@ | |||
147 | }; | 147 | }; |
148 | }; | 148 | }; |
149 | 149 | ||
150 | i2c0: i2c@11000 { | ||
151 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; | ||
152 | reg = <0x11000 0x100>; | ||
153 | }; | ||
154 | |||
155 | i2c1: i2c@11100 { | ||
156 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; | ||
157 | reg = <0x11100 0x100>; | ||
158 | }; | ||
159 | |||
150 | usb@50000 { | 160 | usb@50000 { |
151 | clocks = <&gateclk 18>; | 161 | clocks = <&gateclk 18>; |
152 | }; | 162 | }; |
diff --git a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi index 137354689ad0..cb2c010e08e2 100644 --- a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi +++ b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi | |||
@@ -96,7 +96,6 @@ | |||
96 | }; | 96 | }; |
97 | 97 | ||
98 | spi0: spi@fffc8000 { | 98 | spi0: spi@fffc8000 { |
99 | status = "okay"; | ||
100 | cs-gpios = <0>, <&pioC 11 0>, <0>, <0>; | 99 | cs-gpios = <0>, <&pioC 11 0>, <0>, <0>; |
101 | mtd_dataflash@0 { | 100 | mtd_dataflash@0 { |
102 | compatible = "atmel,at45", "atmel,dataflash"; | 101 | compatible = "atmel,at45", "atmel,dataflash"; |
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi index 9fb7ffd32af2..6224f9fe2f2b 100644 --- a/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/arch/arm/boot/dts/at91sam9n12.dtsi | |||
@@ -437,6 +437,9 @@ | |||
437 | compatible = "atmel,at91sam9g45-ssc"; | 437 | compatible = "atmel,at91sam9g45-ssc"; |
438 | reg = <0xf0010000 0x4000>; | 438 | reg = <0xf0010000 0x4000>; |
439 | interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>; | 439 | interrupts = <28 IRQ_TYPE_LEVEL_HIGH 5>; |
440 | dmas = <&dma 0 AT91_DMA_CFG_PER_ID(21)>, | ||
441 | <&dma 0 AT91_DMA_CFG_PER_ID(22)>; | ||
442 | dma-names = "tx", "rx"; | ||
440 | pinctrl-names = "default"; | 443 | pinctrl-names = "default"; |
441 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; | 444 | pinctrl-0 = <&pinctrl_ssc0_tx &pinctrl_ssc0_rx>; |
442 | status = "disabled"; | 445 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/at91sam9n12ek.dts b/arch/arm/boot/dts/at91sam9n12ek.dts index 27a9352b9d7a..e9487f6f0166 100644 --- a/arch/arm/boot/dts/at91sam9n12ek.dts +++ b/arch/arm/boot/dts/at91sam9n12ek.dts | |||
@@ -38,9 +38,18 @@ | |||
38 | status = "okay"; | 38 | status = "okay"; |
39 | }; | 39 | }; |
40 | 40 | ||
41 | ssc0: ssc@f0010000 { | ||
42 | status = "okay"; | ||
43 | }; | ||
44 | |||
41 | i2c0: i2c@f8010000 { | 45 | i2c0: i2c@f8010000 { |
42 | status = "okay"; | 46 | status = "okay"; |
43 | 47 | ||
48 | wm8904: codec@1a { | ||
49 | compatible = "wm8904"; | ||
50 | reg = <0x1a>; | ||
51 | }; | ||
52 | |||
44 | qt1070: keyboard@1b { | 53 | qt1070: keyboard@1b { |
45 | compatible = "qt1070"; | 54 | compatible = "qt1070"; |
46 | reg = <0x1b>; | 55 | reg = <0x1b>; |
@@ -82,6 +91,13 @@ | |||
82 | <AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; | 91 | <AT91_PIOA 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; |
83 | }; | 92 | }; |
84 | }; | 93 | }; |
94 | |||
95 | sound { | ||
96 | pinctrl_pck0_as_audio_mck: pck0_as_audio_mck { | ||
97 | atmel,pins = | ||
98 | <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>; | ||
99 | }; | ||
100 | }; | ||
85 | }; | 101 | }; |
86 | 102 | ||
87 | spi0: spi@f0000000 { | 103 | spi0: spi@f0000000 { |
@@ -142,4 +158,22 @@ | |||
142 | gpio-key,wakeup; | 158 | gpio-key,wakeup; |
143 | }; | 159 | }; |
144 | }; | 160 | }; |
161 | |||
162 | sound { | ||
163 | compatible = "atmel,asoc-wm8904"; | ||
164 | pinctrl-names = "default"; | ||
165 | pinctrl-0 = <&pinctrl_pck0_as_audio_mck>; | ||
166 | |||
167 | atmel,model = "wm8904 @ AT91SAM9N12"; | ||
168 | atmel,audio-routing = | ||
169 | "Headphone Jack", "HPOUTL", | ||
170 | "Headphone Jack", "HPOUTR", | ||
171 | "IN2L", "Line In Jack", | ||
172 | "IN2R", "Line In Jack", | ||
173 | "Mic", "MICBIAS", | ||
174 | "IN1L", "Mic"; | ||
175 | |||
176 | atmel,ssc-controller = <&ssc0>; | ||
177 | atmel,audio-codec = <&wm8904>; | ||
178 | }; | ||
145 | }; | 179 | }; |
diff --git a/arch/arm/boot/dts/atlas6.dtsi b/arch/arm/boot/dts/atlas6.dtsi index 6db4f81d4795..a49032c6e199 100644 --- a/arch/arm/boot/dts/atlas6.dtsi +++ b/arch/arm/boot/dts/atlas6.dtsi | |||
@@ -65,6 +65,11 @@ | |||
65 | compatible = "sirf,prima2-rsc"; | 65 | compatible = "sirf,prima2-rsc"; |
66 | reg = <0x88020000 0x1000>; | 66 | reg = <0x88020000 0x1000>; |
67 | }; | 67 | }; |
68 | |||
69 | cphifbg@88030000 { | ||
70 | compatible = "sirf,prima2-cphifbg"; | ||
71 | reg = <0x88030000 0x1000>; | ||
72 | }; | ||
68 | }; | 73 | }; |
69 | 74 | ||
70 | mem-iobg { | 75 | mem-iobg { |
@@ -75,10 +80,17 @@ | |||
75 | 80 | ||
76 | memory-controller@90000000 { | 81 | memory-controller@90000000 { |
77 | compatible = "sirf,prima2-memc"; | 82 | compatible = "sirf,prima2-memc"; |
78 | reg = <0x90000000 0x10000>; | 83 | reg = <0x90000000 0x2000>; |
79 | interrupts = <27>; | 84 | interrupts = <27>; |
80 | clocks = <&clks 5>; | 85 | clocks = <&clks 5>; |
81 | }; | 86 | }; |
87 | |||
88 | memc-monitor { | ||
89 | compatible = "sirf,prima2-memcmon"; | ||
90 | reg = <0x90002000 0x200>; | ||
91 | interrupts = <4>; | ||
92 | clocks = <&clks 32>; | ||
93 | }; | ||
82 | }; | 94 | }; |
83 | 95 | ||
84 | disp-iobg { | 96 | disp-iobg { |
@@ -120,6 +132,20 @@ | |||
120 | }; | 132 | }; |
121 | }; | 133 | }; |
122 | 134 | ||
135 | graphics2d-iobg { | ||
136 | compatible = "simple-bus"; | ||
137 | #address-cells = <1>; | ||
138 | #size-cells = <1>; | ||
139 | ranges = <0xa0000000 0xa0000000 0x8000000>; | ||
140 | |||
141 | ble@a0000000 { | ||
142 | compatible = "sirf,atlas6-ble"; | ||
143 | reg = <0xa0000000 0x2000>; | ||
144 | interrupts = <5>; | ||
145 | clocks = <&clks 33>; | ||
146 | }; | ||
147 | }; | ||
148 | |||
123 | dsp-iobg { | 149 | dsp-iobg { |
124 | compatible = "simple-bus"; | 150 | compatible = "simple-bus"; |
125 | #address-cells = <1>; | 151 | #address-cells = <1>; |
@@ -271,6 +297,11 @@ | |||
271 | compatible = "sirf,prima2-spi"; | 297 | compatible = "sirf,prima2-spi"; |
272 | reg = <0xb0170000 0x10000>; | 298 | reg = <0xb0170000 0x10000>; |
273 | interrupts = <16>; | 299 | interrupts = <16>; |
300 | sirf,spi-num-chipselects = <1>; | ||
301 | sirf,spi-dma-rx-channel = <12>; | ||
302 | sirf,spi-dma-tx-channel = <13>; | ||
303 | #address-cells = <1>; | ||
304 | #size-cells = <0>; | ||
274 | clocks = <&clks 20>; | 305 | clocks = <&clks 20>; |
275 | status = "disabled"; | 306 | status = "disabled"; |
276 | }; | 307 | }; |
diff --git a/arch/arm/boot/dts/bcm11351-brt.dts b/arch/arm/boot/dts/bcm11351-brt.dts index 9d36eb4e3c41..23cd16d736bf 100644 --- a/arch/arm/boot/dts/bcm11351-brt.dts +++ b/arch/arm/boot/dts/bcm11351-brt.dts | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | sdio4: sdio@3f1b0000 { | 41 | sdio4: sdio@3f1b0000 { |
42 | max-frequency = <48000000>; | 42 | max-frequency = <48000000>; |
43 | cd-gpios = <&gpio 14 0>; | ||
43 | status = "okay"; | 44 | status = "okay"; |
44 | }; | 45 | }; |
45 | 46 | ||
diff --git a/arch/arm/boot/dts/bcm11351.dtsi b/arch/arm/boot/dts/bcm11351.dtsi index 05a5aabe3b2c..b0c0610d1395 100644 --- a/arch/arm/boot/dts/bcm11351.dtsi +++ b/arch/arm/boot/dts/bcm11351.dtsi | |||
@@ -49,6 +49,36 @@ | |||
49 | reg-io-width = <4>; | 49 | reg-io-width = <4>; |
50 | }; | 50 | }; |
51 | 51 | ||
52 | uart@3e001000 { | ||
53 | compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; | ||
54 | status = "disabled"; | ||
55 | reg = <0x3e001000 0x1000>; | ||
56 | clock-frequency = <13000000>; | ||
57 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; | ||
58 | reg-shift = <2>; | ||
59 | reg-io-width = <4>; | ||
60 | }; | ||
61 | |||
62 | uart@3e002000 { | ||
63 | compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; | ||
64 | status = "disabled"; | ||
65 | reg = <0x3e002000 0x1000>; | ||
66 | clock-frequency = <13000000>; | ||
67 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
68 | reg-shift = <2>; | ||
69 | reg-io-width = <4>; | ||
70 | }; | ||
71 | |||
72 | uart@3e003000 { | ||
73 | compatible = "brcm,bcm11351-dw-apb-uart", "snps,dw-apb-uart"; | ||
74 | status = "disabled"; | ||
75 | reg = <0x3e003000 0x1000>; | ||
76 | clock-frequency = <13000000>; | ||
77 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; | ||
78 | reg-shift = <2>; | ||
79 | reg-io-width = <4>; | ||
80 | }; | ||
81 | |||
52 | L2: l2-cache { | 82 | L2: l2-cache { |
53 | compatible = "brcm,bcm11351-a2-pl310-cache"; | 83 | compatible = "brcm,bcm11351-a2-pl310-cache"; |
54 | reg = <0x3ff20000 0x1000>; | 84 | reg = <0x3ff20000 0x1000>; |
@@ -68,31 +98,47 @@ | |||
68 | clock-frequency = <32768>; | 98 | clock-frequency = <32768>; |
69 | }; | 99 | }; |
70 | 100 | ||
101 | gpio: gpio@35003000 { | ||
102 | compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio"; | ||
103 | reg = <0x35003000 0x800>; | ||
104 | interrupts = | ||
105 | <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH | ||
106 | GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH | ||
107 | GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH | ||
108 | GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH | ||
109 | GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH | ||
110 | GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; | ||
111 | #gpio-cells = <2>; | ||
112 | #interrupt-cells = <2>; | ||
113 | gpio-controller; | ||
114 | interrupt-controller; | ||
115 | }; | ||
116 | |||
71 | sdio1: sdio@3f180000 { | 117 | sdio1: sdio@3f180000 { |
72 | compatible = "brcm,kona-sdhci"; | 118 | compatible = "brcm,kona-sdhci"; |
73 | reg = <0x3f180000 0x10000>; | 119 | reg = <0x3f180000 0x10000>; |
74 | interrupts = <0x0 77 0x4>; | 120 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; |
75 | status = "disabled"; | 121 | status = "disabled"; |
76 | }; | 122 | }; |
77 | 123 | ||
78 | sdio2: sdio@3f190000 { | 124 | sdio2: sdio@3f190000 { |
79 | compatible = "brcm,kona-sdhci"; | 125 | compatible = "brcm,kona-sdhci"; |
80 | reg = <0x3f190000 0x10000>; | 126 | reg = <0x3f190000 0x10000>; |
81 | interrupts = <0x0 76 0x4>; | 127 | interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; |
82 | status = "disabled"; | 128 | status = "disabled"; |
83 | }; | 129 | }; |
84 | 130 | ||
85 | sdio3: sdio@3f1a0000 { | 131 | sdio3: sdio@3f1a0000 { |
86 | compatible = "brcm,kona-sdhci"; | 132 | compatible = "brcm,kona-sdhci"; |
87 | reg = <0x3f1a0000 0x10000>; | 133 | reg = <0x3f1a0000 0x10000>; |
88 | interrupts = <0x0 74 0x4>; | 134 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; |
89 | status = "disabled"; | 135 | status = "disabled"; |
90 | }; | 136 | }; |
91 | 137 | ||
92 | sdio4: sdio@3f1b0000 { | 138 | sdio4: sdio@3f1b0000 { |
93 | compatible = "brcm,kona-sdhci"; | 139 | compatible = "brcm,kona-sdhci"; |
94 | reg = <0x3f1b0000 0x10000>; | 140 | reg = <0x3f1b0000 0x10000>; |
95 | interrupts = <0x0 73 0x4>; | 141 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; |
96 | status = "disabled"; | 142 | status = "disabled"; |
97 | }; | 143 | }; |
98 | 144 | ||
diff --git a/arch/arm/boot/dts/bcm28155-ap.dts b/arch/arm/boot/dts/bcm28155-ap.dts index 96ae67a2f0d3..08e47c285227 100644 --- a/arch/arm/boot/dts/bcm28155-ap.dts +++ b/arch/arm/boot/dts/bcm28155-ap.dts | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | sdio4: sdio@3f1b0000 { | 41 | sdio4: sdio@3f1b0000 { |
42 | max-frequency = <48000000>; | 42 | max-frequency = <48000000>; |
43 | cd-gpios = <&gpio 14 0>; | ||
43 | status = "okay"; | 44 | status = "okay"; |
44 | }; | 45 | }; |
45 | }; | 46 | }; |
diff --git a/arch/arm/boot/dts/dove-cm-a510.dts b/arch/arm/boot/dts/dove-cm-a510.dts index 61a8062e56de..50c0d6904497 100644 --- a/arch/arm/boot/dts/dove-cm-a510.dts +++ b/arch/arm/boot/dts/dove-cm-a510.dts | |||
@@ -1,6 +1,6 @@ | |||
1 | /dts-v1/; | 1 | /dts-v1/; |
2 | 2 | ||
3 | /include/ "dove.dtsi" | 3 | #include "dove.dtsi" |
4 | 4 | ||
5 | / { | 5 | / { |
6 | model = "Compulab CM-A510"; | 6 | model = "Compulab CM-A510"; |
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dts index 022646ef4b38..8349a248ecea 100644 --- a/arch/arm/boot/dts/dove-cubox.dts +++ b/arch/arm/boot/dts/dove-cubox.dts | |||
@@ -1,6 +1,6 @@ | |||
1 | /dts-v1/; | 1 | /dts-v1/; |
2 | 2 | ||
3 | /include/ "dove.dtsi" | 3 | #include "dove.dtsi" |
4 | 4 | ||
5 | / { | 5 | / { |
6 | model = "SolidRun CuBox"; | 6 | model = "SolidRun CuBox"; |
@@ -99,18 +99,12 @@ | |||
99 | silabs,pll-master; | 99 | silabs,pll-master; |
100 | }; | 100 | }; |
101 | 101 | ||
102 | clkout1 { | ||
103 | reg = <1>; | ||
104 | silabs,drive-strength = <8>; | ||
105 | silabs,multisynth-source = <1>; | ||
106 | silabs,clock-source = <0>; | ||
107 | silabs,pll-master; | ||
108 | }; | ||
109 | |||
110 | clkout2 { | 102 | clkout2 { |
111 | reg = <2>; | 103 | reg = <2>; |
104 | silabs,drive-strength = <8>; | ||
112 | silabs,multisynth-source = <1>; | 105 | silabs,multisynth-source = <1>; |
113 | silabs,clock-source = <0>; | 106 | silabs,clock-source = <0>; |
107 | silabs,pll-master; | ||
114 | }; | 108 | }; |
115 | }; | 109 | }; |
116 | }; | 110 | }; |
@@ -132,3 +126,11 @@ | |||
132 | reg = <0>; | 126 | reg = <0>; |
133 | }; | 127 | }; |
134 | }; | 128 | }; |
129 | |||
130 | &audio1 { | ||
131 | status = "okay"; | ||
132 | clocks = <&gate_clk 13>, <&si5351 2>; | ||
133 | clock-names = "internal", "extclk"; | ||
134 | pinctrl-0 = <&pmx_audio1_i2s1_spdifo &pmx_audio1_extclk>; | ||
135 | pinctrl-names = "default"; | ||
136 | }; | ||
diff --git a/arch/arm/boot/dts/dove-d2plug.dts b/arch/arm/boot/dts/dove-d2plug.dts index e2222ce94f2f..c11d3636c8e5 100644 --- a/arch/arm/boot/dts/dove-d2plug.dts +++ b/arch/arm/boot/dts/dove-d2plug.dts | |||
@@ -1,6 +1,6 @@ | |||
1 | /dts-v1/; | 1 | /dts-v1/; |
2 | 2 | ||
3 | /include/ "dove.dtsi" | 3 | #include "dove.dtsi" |
4 | 4 | ||
5 | / { | 5 | / { |
6 | model = "Globalscale D2Plug"; | 6 | model = "Globalscale D2Plug"; |
diff --git a/arch/arm/boot/dts/dove-d3plug.dts b/arch/arm/boot/dts/dove-d3plug.dts new file mode 100644 index 000000000000..f5f59bb5a534 --- /dev/null +++ b/arch/arm/boot/dts/dove-d3plug.dts | |||
@@ -0,0 +1,103 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | #include "dove.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "Globalscale D3Plug"; | ||
7 | compatible = "globalscale,d3plug", "marvell,dove"; | ||
8 | |||
9 | memory { | ||
10 | device_type = "memory"; | ||
11 | reg = <0x00000000 0x40000000>; | ||
12 | }; | ||
13 | |||
14 | chosen { | ||
15 | bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/mmcblk0p2 rw rootwait"; | ||
16 | }; | ||
17 | |||
18 | leds { | ||
19 | compatible = "gpio-leds"; | ||
20 | pinctrl-0 = <&pmx_gpio_0 &pmx_gpio_1 &pmx_gpio_2>; | ||
21 | pinctrl-names = "default"; | ||
22 | |||
23 | wlan-act { | ||
24 | label = "wlan-act"; | ||
25 | gpios = <&gpio0 0 1>; | ||
26 | }; | ||
27 | |||
28 | wlan-ap { | ||
29 | label = "wlan-ap"; | ||
30 | gpios = <&gpio0 1 1>; | ||
31 | }; | ||
32 | |||
33 | status { | ||
34 | label = "status"; | ||
35 | gpios = <&gpio0 2 1>; | ||
36 | }; | ||
37 | }; | ||
38 | |||
39 | regulators { | ||
40 | compatible = "simple-bus"; | ||
41 | #address-cells = <1>; | ||
42 | #size-cells = <0>; | ||
43 | |||
44 | usb_power: regulator@1 { | ||
45 | compatible = "regulator-fixed"; | ||
46 | reg = <1>; | ||
47 | regulator-name = "USB Power"; | ||
48 | regulator-min-microvolt = <5000000>; | ||
49 | regulator-max-microvolt = <5000000>; | ||
50 | enable-active-high; | ||
51 | regulator-always-on; | ||
52 | regulator-boot-on; | ||
53 | gpio = <&gpio0 8 0>; | ||
54 | pinctrl-0 = <&pmx_gpio_8>; | ||
55 | pinctrl-names = "default"; | ||
56 | }; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | &uart0 { status = "okay"; }; | ||
61 | &sata0 { status = "okay"; }; | ||
62 | &i2c0 { status = "okay"; }; | ||
63 | |||
64 | /* Samsung M8G2F eMMC */ | ||
65 | &sdio0 { | ||
66 | status = "okay"; | ||
67 | non-removable; | ||
68 | bus-width = <4>; | ||
69 | }; | ||
70 | |||
71 | /* Marvell SD8787 WLAN/BT */ | ||
72 | &sdio1 { | ||
73 | status = "okay"; | ||
74 | non-removable; | ||
75 | }; | ||
76 | |||
77 | &spi0 { | ||
78 | status = "okay"; | ||
79 | |||
80 | /* spi0.0: 2M Flash Macronix MX25L1605D */ | ||
81 | spi-flash@0 { | ||
82 | compatible = "st,m25l1605d"; | ||
83 | spi-max-frequency = <86000000>; | ||
84 | reg = <0>; | ||
85 | }; | ||
86 | }; | ||
87 | |||
88 | &pcie { | ||
89 | status = "okay"; | ||
90 | /* Fresco Logic USB3.0 xHCI controller */ | ||
91 | pcie-port@0 { | ||
92 | status = "okay"; | ||
93 | reset-gpios = <&gpio0 26 1>; | ||
94 | reset-delay-us = <20000>; | ||
95 | pinctrl-0 = <&pmx_camera_gpio>; | ||
96 | pinctrl-names = "default"; | ||
97 | }; | ||
98 | /* Mini-PCIe slot */ | ||
99 | pcie-port@1 { | ||
100 | status = "okay"; | ||
101 | reset-gpios = <&gpio0 25 1>; | ||
102 | }; | ||
103 | }; | ||
diff --git a/arch/arm/boot/dts/dove-dove-db.dts b/arch/arm/boot/dts/dove-dove-db.dts index e5a920beab45..bb725dca3a10 100644 --- a/arch/arm/boot/dts/dove-dove-db.dts +++ b/arch/arm/boot/dts/dove-dove-db.dts | |||
@@ -1,6 +1,6 @@ | |||
1 | /dts-v1/; | 1 | /dts-v1/; |
2 | 2 | ||
3 | /include/ "dove.dtsi" | 3 | #include "dove.dtsi" |
4 | 4 | ||
5 | / { | 5 | / { |
6 | model = "Marvell DB-MV88AP510-BP Development Board"; | 6 | model = "Marvell DB-MV88AP510-BP Development Board"; |
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index cc279166646f..113a8bc7bee7 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
@@ -1,8 +1,11 @@ | |||
1 | /include/ "skeleton.dtsi" | 1 | /include/ "skeleton.dtsi" |
2 | 2 | ||
3 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | ||
4 | |||
3 | / { | 5 | / { |
4 | compatible = "marvell,dove"; | 6 | compatible = "marvell,dove"; |
5 | model = "Marvell Armada 88AP510 SoC"; | 7 | model = "Marvell Armada 88AP510 SoC"; |
8 | interrupt-parent = <&intc>; | ||
6 | 9 | ||
7 | aliases { | 10 | aliases { |
8 | gpio0 = &gpio0; | 11 | gpio0 = &gpio0; |
@@ -27,482 +30,576 @@ | |||
27 | marvell,tauros2-cache-features = <0>; | 30 | marvell,tauros2-cache-features = <0>; |
28 | }; | 31 | }; |
29 | 32 | ||
30 | soc@f1000000 { | 33 | mbus { |
31 | compatible = "simple-bus"; | 34 | compatible = "marvell,dove-mbus", "marvell,mbus", "simple-bus"; |
32 | #address-cells = <1>; | 35 | #address-cells = <2>; |
33 | #size-cells = <1>; | 36 | #size-cells = <1>; |
34 | interrupt-parent = <&intc>; | 37 | controller = <&mbusc>; |
35 | 38 | pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256M MEM space */ | |
36 | ranges = <0xc8000000 0xc8000000 0x0100000 /* CESA SRAM 1M */ | 39 | pcie-io-aperture = <0xf2000000 0x00200000>; /* 2M I/O space */ |
37 | 0xe0000000 0xe0000000 0x8000000 /* PCIe0 Mem 128M */ | 40 | |
38 | 0xe8000000 0xe8000000 0x8000000 /* PCIe1 Mem 128M */ | 41 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x0100000 /* MBUS regs 1M */ |
39 | 0xf0000000 0xf0000000 0x0100000 /* ScratchPad 1M */ | 42 | MBUS_ID(0xf0, 0x02) 0 0xf1800000 0x1000000 /* AXI regs 16M */ |
40 | 0x00000000 0xf1000000 0x1000000 /* SB/NB regs 16M */ | 43 | MBUS_ID(0x01, 0xfd) 0 0xf8000000 0x8000000 /* BootROM 128M */ |
41 | 0xf2000000 0xf2000000 0x0100000 /* PCIe0 I/O 1M */ | 44 | MBUS_ID(0x03, 0x01) 0 0xc8000000 0x0100000 /* CESA SRAM 1M */ |
42 | 0xf2100000 0xf2100000 0x0100000 /* PCIe0 I/O 1M */ | 45 | MBUS_ID(0x0d, 0x00) 0 0xf0000000 0x0100000>; /* PMU SRAM 1M */ |
43 | 0xf8000000 0xf8000000 0x8000000>; /* BootROM 128M */ | 46 | |
44 | 47 | pcie: pcie-controller { | |
45 | timer: timer@20300 { | 48 | compatible = "marvell,dove-pcie"; |
46 | compatible = "marvell,orion-timer"; | ||
47 | reg = <0x20300 0x20>; | ||
48 | interrupt-parent = <&bridge_intc>; | ||
49 | interrupts = <1>, <2>; | ||
50 | clocks = <&core_clk 0>; | ||
51 | }; | ||
52 | |||
53 | intc: main-interrupt-ctrl@20200 { | ||
54 | compatible = "marvell,orion-intc"; | ||
55 | interrupt-controller; | ||
56 | #interrupt-cells = <1>; | ||
57 | reg = <0x20200 0x10>, <0x20210 0x10>; | ||
58 | }; | ||
59 | |||
60 | bridge_intc: bridge-interrupt-ctrl@20110 { | ||
61 | compatible = "marvell,orion-bridge-intc"; | ||
62 | interrupt-controller; | ||
63 | #interrupt-cells = <1>; | ||
64 | reg = <0x20110 0x8>; | ||
65 | interrupts = <0>; | ||
66 | marvell,#interrupts = <5>; | ||
67 | }; | ||
68 | |||
69 | core_clk: core-clocks@d0214 { | ||
70 | compatible = "marvell,dove-core-clock"; | ||
71 | reg = <0xd0214 0x4>; | ||
72 | #clock-cells = <1>; | ||
73 | }; | ||
74 | |||
75 | gate_clk: clock-gating-ctrl@d0038 { | ||
76 | compatible = "marvell,dove-gating-clock"; | ||
77 | reg = <0xd0038 0x4>; | ||
78 | clocks = <&core_clk 0>; | ||
79 | #clock-cells = <1>; | ||
80 | }; | ||
81 | |||
82 | thermal: thermal-diode@d001c { | ||
83 | compatible = "marvell,dove-thermal"; | ||
84 | reg = <0xd001c 0x0c>, <0xd005c 0x08>; | ||
85 | }; | ||
86 | |||
87 | uart0: serial@12000 { | ||
88 | compatible = "ns16550a"; | ||
89 | reg = <0x12000 0x100>; | ||
90 | reg-shift = <2>; | ||
91 | interrupts = <7>; | ||
92 | clocks = <&core_clk 0>; | ||
93 | status = "disabled"; | ||
94 | }; | ||
95 | |||
96 | uart1: serial@12100 { | ||
97 | compatible = "ns16550a"; | ||
98 | reg = <0x12100 0x100>; | ||
99 | reg-shift = <2>; | ||
100 | interrupts = <8>; | ||
101 | clocks = <&core_clk 0>; | ||
102 | pinctrl-0 = <&pmx_uart1>; | ||
103 | pinctrl-names = "default"; | ||
104 | status = "disabled"; | ||
105 | }; | ||
106 | |||
107 | uart2: serial@12200 { | ||
108 | compatible = "ns16550a"; | ||
109 | reg = <0x12000 0x100>; | ||
110 | reg-shift = <2>; | ||
111 | interrupts = <9>; | ||
112 | clocks = <&core_clk 0>; | ||
113 | status = "disabled"; | 49 | status = "disabled"; |
114 | }; | 50 | device_type = "pci"; |
115 | 51 | #address-cells = <3>; | |
116 | uart3: serial@12300 { | 52 | #size-cells = <2>; |
117 | compatible = "ns16550a"; | 53 | |
118 | reg = <0x12100 0x100>; | 54 | msi-parent = <&intc>; |
119 | reg-shift = <2>; | 55 | bus-range = <0x00 0xff>; |
120 | interrupts = <10>; | 56 | |
121 | clocks = <&core_clk 0>; | 57 | ranges = <0x82000000 0x0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x2000 |
122 | status = "disabled"; | 58 | 0x82000000 0x0 0x80000 MBUS_ID(0xf0, 0x01) 0x80000 0 0x2000 |
123 | }; | 59 | 0x82000000 0x1 0x0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 Mem */ |
124 | 60 | 0x81000000 0x1 0x0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 I/O */ | |
125 | gpio0: gpio-ctrl@d0400 { | 61 | 0x82000000 0x2 0x0 MBUS_ID(0x08, 0xe8) 0 1 0 /* Port 1.0 Mem */ |
126 | compatible = "marvell,orion-gpio"; | 62 | 0x81000000 0x2 0x0 MBUS_ID(0x08, 0xe0) 0 1 0>; /* Port 1.0 I/O */ |
127 | #gpio-cells = <2>; | 63 | |
128 | gpio-controller; | 64 | pcie-port@0 { |
129 | reg = <0xd0400 0x20>; | 65 | device_type = "pci"; |
130 | ngpios = <32>; | 66 | status = "disabled"; |
131 | interrupt-controller; | 67 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; |
132 | #interrupt-cells = <2>; | 68 | reg = <0x0800 0 0 0 0>; |
133 | interrupts = <12>, <13>, <14>, <60>; | 69 | clocks = <&gate_clk 4>; |
134 | }; | 70 | marvell,pcie-port = <0>; |
135 | 71 | ||
136 | gpio1: gpio-ctrl@d0420 { | 72 | #address-cells = <3>; |
137 | compatible = "marvell,orion-gpio"; | 73 | #size-cells = <2>; |
138 | #gpio-cells = <2>; | 74 | ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 |
139 | gpio-controller; | 75 | 0x81000000 0 0 0x81000000 0x1 0 1 0>; |
140 | reg = <0xd0420 0x20>; | 76 | |
141 | ngpios = <32>; | 77 | #interrupt-cells = <1>; |
142 | interrupt-controller; | 78 | interrupt-map-mask = <0 0 0 0>; |
143 | #interrupt-cells = <2>; | 79 | interrupt-map = <0 0 0 0 &intc 16>; |
144 | interrupts = <61>; | 80 | }; |
145 | }; | 81 | |
146 | 82 | pcie-port@1 { | |
147 | gpio2: gpio-ctrl@e8400 { | 83 | device_type = "pci"; |
148 | compatible = "marvell,orion-gpio"; | 84 | status = "disabled"; |
149 | #gpio-cells = <2>; | 85 | assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; |
150 | gpio-controller; | 86 | reg = <0x1000 0 0 0 0>; |
151 | reg = <0xe8400 0x0c>; | 87 | clocks = <&gate_clk 5>; |
152 | ngpios = <8>; | 88 | marvell,pcie-port = <1>; |
153 | }; | 89 | |
154 | 90 | #address-cells = <3>; | |
155 | pinctrl: pin-ctrl@d0200 { | 91 | #size-cells = <2>; |
156 | compatible = "marvell,dove-pinctrl"; | 92 | ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0 |
157 | reg = <0xd0200 0x10>; | 93 | 0x81000000 0 0 0x81000000 0x2 0 1 0>; |
158 | clocks = <&gate_clk 22>; | 94 | |
159 | 95 | #interrupt-cells = <1>; | |
160 | pmx_gpio_0: pmx-gpio-0 { | 96 | interrupt-map-mask = <0 0 0 0>; |
161 | marvell,pins = "mpp0"; | 97 | interrupt-map = <0 0 0 0 &intc 18>; |
162 | marvell,function = "gpio"; | ||
163 | }; | ||
164 | |||
165 | pmx_gpio_1: pmx-gpio-1 { | ||
166 | marvell,pins = "mpp1"; | ||
167 | marvell,function = "gpio"; | ||
168 | }; | ||
169 | |||
170 | pmx_gpio_2: pmx-gpio-2 { | ||
171 | marvell,pins = "mpp2"; | ||
172 | marvell,function = "gpio"; | ||
173 | }; | ||
174 | |||
175 | pmx_gpio_3: pmx-gpio-3 { | ||
176 | marvell,pins = "mpp3"; | ||
177 | marvell,function = "gpio"; | ||
178 | }; | 98 | }; |
179 | |||
180 | pmx_gpio_4: pmx-gpio-4 { | ||
181 | marvell,pins = "mpp4"; | ||
182 | marvell,function = "gpio"; | ||
183 | }; | ||
184 | |||
185 | pmx_gpio_5: pmx-gpio-5 { | ||
186 | marvell,pins = "mpp5"; | ||
187 | marvell,function = "gpio"; | ||
188 | }; | ||
189 | |||
190 | pmx_gpio_6: pmx-gpio-6 { | ||
191 | marvell,pins = "mpp6"; | ||
192 | marvell,function = "gpio"; | ||
193 | }; | ||
194 | |||
195 | pmx_gpio_7: pmx-gpio-7 { | ||
196 | marvell,pins = "mpp7"; | ||
197 | marvell,function = "gpio"; | ||
198 | }; | ||
199 | |||
200 | pmx_gpio_8: pmx-gpio-8 { | ||
201 | marvell,pins = "mpp8"; | ||
202 | marvell,function = "gpio"; | ||
203 | }; | ||
204 | |||
205 | pmx_gpio_9: pmx-gpio-9 { | ||
206 | marvell,pins = "mpp9"; | ||
207 | marvell,function = "gpio"; | ||
208 | }; | ||
209 | |||
210 | pmx_gpio_10: pmx-gpio-10 { | ||
211 | marvell,pins = "mpp10"; | ||
212 | marvell,function = "gpio"; | ||
213 | }; | ||
214 | |||
215 | pmx_gpio_11: pmx-gpio-11 { | ||
216 | marvell,pins = "mpp11"; | ||
217 | marvell,function = "gpio"; | ||
218 | }; | ||
219 | |||
220 | pmx_gpio_12: pmx-gpio-12 { | ||
221 | marvell,pins = "mpp12"; | ||
222 | marvell,function = "gpio"; | ||
223 | }; | ||
224 | |||
225 | pmx_gpio_13: pmx-gpio-13 { | ||
226 | marvell,pins = "mpp13"; | ||
227 | marvell,function = "gpio"; | ||
228 | }; | ||
229 | |||
230 | pmx_gpio_14: pmx-gpio-14 { | ||
231 | marvell,pins = "mpp14"; | ||
232 | marvell,function = "gpio"; | ||
233 | }; | ||
234 | |||
235 | pmx_gpio_15: pmx-gpio-15 { | ||
236 | marvell,pins = "mpp15"; | ||
237 | marvell,function = "gpio"; | ||
238 | }; | ||
239 | |||
240 | pmx_gpio_16: pmx-gpio-16 { | ||
241 | marvell,pins = "mpp16"; | ||
242 | marvell,function = "gpio"; | ||
243 | }; | ||
244 | |||
245 | pmx_gpio_17: pmx-gpio-17 { | ||
246 | marvell,pins = "mpp17"; | ||
247 | marvell,function = "gpio"; | ||
248 | }; | ||
249 | |||
250 | pmx_gpio_18: pmx-gpio-18 { | ||
251 | marvell,pins = "mpp18"; | ||
252 | marvell,function = "gpio"; | ||
253 | }; | ||
254 | |||
255 | pmx_gpio_19: pmx-gpio-19 { | ||
256 | marvell,pins = "mpp19"; | ||
257 | marvell,function = "gpio"; | ||
258 | }; | ||
259 | |||
260 | pmx_gpio_20: pmx-gpio-20 { | ||
261 | marvell,pins = "mpp20"; | ||
262 | marvell,function = "gpio"; | ||
263 | }; | ||
264 | |||
265 | pmx_gpio_21: pmx-gpio-21 { | ||
266 | marvell,pins = "mpp21"; | ||
267 | marvell,function = "gpio"; | ||
268 | }; | ||
269 | |||
270 | pmx_camera: pmx-camera { | ||
271 | marvell,pins = "mpp_camera"; | ||
272 | marvell,function = "camera"; | ||
273 | }; | ||
274 | |||
275 | pmx_camera_gpio: pmx-camera-gpio { | ||
276 | marvell,pins = "mpp_camera"; | ||
277 | marvell,function = "gpio"; | ||
278 | }; | ||
279 | |||
280 | pmx_sdio0: pmx-sdio0 { | ||
281 | marvell,pins = "mpp_sdio0"; | ||
282 | marvell,function = "sdio0"; | ||
283 | }; | ||
284 | |||
285 | pmx_sdio0_gpio: pmx-sdio0-gpio { | ||
286 | marvell,pins = "mpp_sdio0"; | ||
287 | marvell,function = "gpio"; | ||
288 | }; | ||
289 | |||
290 | pmx_sdio1: pmx-sdio1 { | ||
291 | marvell,pins = "mpp_sdio1"; | ||
292 | marvell,function = "sdio1"; | ||
293 | }; | ||
294 | |||
295 | pmx_sdio1_gpio: pmx-sdio1-gpio { | ||
296 | marvell,pins = "mpp_sdio1"; | ||
297 | marvell,function = "gpio"; | ||
298 | }; | ||
299 | |||
300 | pmx_audio1_gpio: pmx-audio1-gpio { | ||
301 | marvell,pins = "mpp_audio1"; | ||
302 | marvell,function = "gpio"; | ||
303 | }; | ||
304 | |||
305 | pmx_spi0: pmx-spi0 { | ||
306 | marvell,pins = "mpp_spi0"; | ||
307 | marvell,function = "spi0"; | ||
308 | }; | ||
309 | |||
310 | pmx_spi0_gpio: pmx-spi0-gpio { | ||
311 | marvell,pins = "mpp_spi0"; | ||
312 | marvell,function = "gpio"; | ||
313 | }; | ||
314 | |||
315 | pmx_uart1: pmx-uart1 { | ||
316 | marvell,pins = "mpp_uart1"; | ||
317 | marvell,function = "uart1"; | ||
318 | }; | ||
319 | |||
320 | pmx_uart1_gpio: pmx-uart1-gpio { | ||
321 | marvell,pins = "mpp_uart1"; | ||
322 | marvell,function = "gpio"; | ||
323 | }; | ||
324 | |||
325 | pmx_nand: pmx-nand { | ||
326 | marvell,pins = "mpp_nand"; | ||
327 | marvell,function = "nand"; | ||
328 | }; | ||
329 | |||
330 | pmx_nand_gpo: pmx-nand-gpo { | ||
331 | marvell,pins = "mpp_nand"; | ||
332 | marvell,function = "gpo"; | ||
333 | }; | ||
334 | }; | ||
335 | |||
336 | spi0: spi-ctrl@10600 { | ||
337 | compatible = "marvell,orion-spi"; | ||
338 | #address-cells = <1>; | ||
339 | #size-cells = <0>; | ||
340 | cell-index = <0>; | ||
341 | interrupts = <6>; | ||
342 | reg = <0x10600 0x28>; | ||
343 | clocks = <&core_clk 0>; | ||
344 | pinctrl-0 = <&pmx_spi0>; | ||
345 | pinctrl-names = "default"; | ||
346 | status = "disabled"; | ||
347 | }; | ||
348 | |||
349 | spi1: spi-ctrl@14600 { | ||
350 | compatible = "marvell,orion-spi"; | ||
351 | #address-cells = <1>; | ||
352 | #size-cells = <0>; | ||
353 | cell-index = <1>; | ||
354 | interrupts = <5>; | ||
355 | reg = <0x14600 0x28>; | ||
356 | clocks = <&core_clk 0>; | ||
357 | status = "disabled"; | ||
358 | }; | ||
359 | |||
360 | i2c0: i2c-ctrl@11000 { | ||
361 | compatible = "marvell,mv64xxx-i2c"; | ||
362 | reg = <0x11000 0x20>; | ||
363 | #address-cells = <1>; | ||
364 | #size-cells = <0>; | ||
365 | interrupts = <11>; | ||
366 | clock-frequency = <400000>; | ||
367 | timeout-ms = <1000>; | ||
368 | clocks = <&core_clk 0>; | ||
369 | status = "disabled"; | ||
370 | }; | 99 | }; |
371 | 100 | ||
372 | ehci0: usb-host@50000 { | 101 | internal-regs { |
373 | compatible = "marvell,orion-ehci"; | 102 | compatible = "simple-bus"; |
374 | reg = <0x50000 0x1000>; | ||
375 | interrupts = <24>; | ||
376 | clocks = <&gate_clk 0>; | ||
377 | status = "okay"; | ||
378 | }; | ||
379 | |||
380 | ehci1: usb-host@51000 { | ||
381 | compatible = "marvell,orion-ehci"; | ||
382 | reg = <0x51000 0x1000>; | ||
383 | interrupts = <25>; | ||
384 | clocks = <&gate_clk 1>; | ||
385 | status = "okay"; | ||
386 | }; | ||
387 | |||
388 | sdio0: sdio-host@92000 { | ||
389 | compatible = "marvell,dove-sdhci"; | ||
390 | reg = <0x92000 0x100>; | ||
391 | interrupts = <35>, <37>; | ||
392 | clocks = <&gate_clk 8>; | ||
393 | pinctrl-0 = <&pmx_sdio0>; | ||
394 | pinctrl-names = "default"; | ||
395 | status = "disabled"; | ||
396 | }; | ||
397 | |||
398 | sdio1: sdio-host@90000 { | ||
399 | compatible = "marvell,dove-sdhci"; | ||
400 | reg = <0x90000 0x100>; | ||
401 | interrupts = <36>, <38>; | ||
402 | clocks = <&gate_clk 9>; | ||
403 | pinctrl-0 = <&pmx_sdio1>; | ||
404 | pinctrl-names = "default"; | ||
405 | status = "disabled"; | ||
406 | }; | ||
407 | |||
408 | sata0: sata-host@a0000 { | ||
409 | compatible = "marvell,orion-sata"; | ||
410 | reg = <0xa0000 0x2400>; | ||
411 | interrupts = <62>; | ||
412 | clocks = <&gate_clk 3>; | ||
413 | nr-ports = <1>; | ||
414 | status = "disabled"; | ||
415 | }; | ||
416 | |||
417 | rtc: real-time-clock@d8500 { | ||
418 | compatible = "marvell,orion-rtc"; | ||
419 | reg = <0xd8500 0x20>; | ||
420 | }; | ||
421 | |||
422 | crypto: crypto-engine@30000 { | ||
423 | compatible = "marvell,orion-crypto"; | ||
424 | reg = <0x30000 0x10000>, | ||
425 | <0xc8000000 0x800>; | ||
426 | reg-names = "regs", "sram"; | ||
427 | interrupts = <31>; | ||
428 | clocks = <&gate_clk 15>; | ||
429 | status = "okay"; | ||
430 | }; | ||
431 | |||
432 | xor0: dma-engine@60800 { | ||
433 | compatible = "marvell,orion-xor"; | ||
434 | reg = <0x60800 0x100 | ||
435 | 0x60a00 0x100>; | ||
436 | clocks = <&gate_clk 23>; | ||
437 | status = "okay"; | ||
438 | |||
439 | channel0 { | ||
440 | interrupts = <39>; | ||
441 | dmacap,memcpy; | ||
442 | dmacap,xor; | ||
443 | }; | ||
444 | |||
445 | channel1 { | ||
446 | interrupts = <40>; | ||
447 | dmacap,memset; | ||
448 | dmacap,memcpy; | ||
449 | dmacap,xor; | ||
450 | }; | ||
451 | }; | ||
452 | |||
453 | xor1: dma-engine@60900 { | ||
454 | compatible = "marvell,orion-xor"; | ||
455 | reg = <0x60900 0x100 | ||
456 | 0x60b00 0x100>; | ||
457 | clocks = <&gate_clk 24>; | ||
458 | status = "okay"; | ||
459 | |||
460 | channel0 { | ||
461 | interrupts = <42>; | ||
462 | dmacap,memcpy; | ||
463 | dmacap,xor; | ||
464 | }; | ||
465 | |||
466 | channel1 { | ||
467 | interrupts = <43>; | ||
468 | dmacap,memset; | ||
469 | dmacap,memcpy; | ||
470 | dmacap,xor; | ||
471 | }; | ||
472 | }; | ||
473 | |||
474 | mdio: mdio-bus@72004 { | ||
475 | compatible = "marvell,orion-mdio"; | ||
476 | #address-cells = <1>; | 103 | #address-cells = <1>; |
477 | #size-cells = <0>; | 104 | #size-cells = <1>; |
478 | reg = <0x72004 0x84>; | 105 | ranges = <0x00000000 MBUS_ID(0xf0, 0x01) 0 0x0100000 /* MBUS regs 1M */ |
479 | interrupts = <30>; | 106 | 0x00800000 MBUS_ID(0xf0, 0x02) 0 0x1000000 /* AXI regs 16M */ |
480 | clocks = <&gate_clk 2>; | 107 | 0xffffe000 MBUS_ID(0x03, 0x01) 0 0x0000800 /* CESA SRAM 2k */ |
481 | status = "disabled"; | 108 | 0xfffff000 MBUS_ID(0x0d, 0x00) 0 0x0000800>; /* PMU SRAM 2k */ |
482 | 109 | ||
483 | ethphy: ethernet-phy { | 110 | mbusc: mbus-ctrl@20000 { |
484 | device-type = "ethernet-phy"; | 111 | compatible = "marvell,mbus-controller"; |
485 | /* set phy address in board file */ | 112 | reg = <0x20000 0x80>, <0x800100 0x8>; |
486 | }; | 113 | }; |
487 | }; | 114 | |
488 | 115 | timer: timer@20300 { | |
489 | eth: ethernet-controller@72000 { | 116 | compatible = "marvell,orion-timer"; |
490 | compatible = "marvell,orion-eth"; | 117 | reg = <0x20300 0x20>; |
491 | #address-cells = <1>; | 118 | interrupt-parent = <&bridge_intc>; |
492 | #size-cells = <0>; | 119 | interrupts = <1>, <2>; |
493 | reg = <0x72000 0x4000>; | 120 | clocks = <&core_clk 0>; |
494 | clocks = <&gate_clk 2>; | 121 | }; |
495 | marvell,tx-checksum-limit = <1600>; | 122 | |
496 | status = "disabled"; | 123 | intc: main-interrupt-ctrl@20200 { |
497 | 124 | compatible = "marvell,orion-intc"; | |
498 | ethernet-port@0 { | 125 | interrupt-controller; |
499 | device_type = "network"; | 126 | #interrupt-cells = <1>; |
500 | compatible = "marvell,orion-eth-port"; | 127 | reg = <0x20200 0x10>, <0x20210 0x10>; |
501 | reg = <0>; | 128 | }; |
502 | interrupts = <29>; | 129 | |
503 | /* overwrite MAC address in bootloader */ | 130 | bridge_intc: bridge-interrupt-ctrl@20110 { |
504 | local-mac-address = [00 00 00 00 00 00]; | 131 | compatible = "marvell,orion-bridge-intc"; |
505 | phy-handle = <ðphy>; | 132 | interrupt-controller; |
133 | #interrupt-cells = <1>; | ||
134 | reg = <0x20110 0x8>; | ||
135 | interrupts = <0>; | ||
136 | marvell,#interrupts = <5>; | ||
137 | }; | ||
138 | |||
139 | core_clk: core-clocks@d0214 { | ||
140 | compatible = "marvell,dove-core-clock"; | ||
141 | reg = <0xd0214 0x4>; | ||
142 | #clock-cells = <1>; | ||
143 | }; | ||
144 | |||
145 | gate_clk: clock-gating-ctrl@d0038 { | ||
146 | compatible = "marvell,dove-gating-clock"; | ||
147 | reg = <0xd0038 0x4>; | ||
148 | clocks = <&core_clk 0>; | ||
149 | #clock-cells = <1>; | ||
150 | }; | ||
151 | |||
152 | thermal: thermal-diode@d001c { | ||
153 | compatible = "marvell,dove-thermal"; | ||
154 | reg = <0xd001c 0x0c>, <0xd005c 0x08>; | ||
155 | }; | ||
156 | |||
157 | uart0: serial@12000 { | ||
158 | compatible = "ns16550a"; | ||
159 | reg = <0x12000 0x100>; | ||
160 | reg-shift = <2>; | ||
161 | interrupts = <7>; | ||
162 | clocks = <&core_clk 0>; | ||
163 | status = "disabled"; | ||
164 | }; | ||
165 | |||
166 | uart1: serial@12100 { | ||
167 | compatible = "ns16550a"; | ||
168 | reg = <0x12100 0x100>; | ||
169 | reg-shift = <2>; | ||
170 | interrupts = <8>; | ||
171 | clocks = <&core_clk 0>; | ||
172 | pinctrl-0 = <&pmx_uart1>; | ||
173 | pinctrl-names = "default"; | ||
174 | status = "disabled"; | ||
175 | }; | ||
176 | |||
177 | uart2: serial@12200 { | ||
178 | compatible = "ns16550a"; | ||
179 | reg = <0x12000 0x100>; | ||
180 | reg-shift = <2>; | ||
181 | interrupts = <9>; | ||
182 | clocks = <&core_clk 0>; | ||
183 | status = "disabled"; | ||
184 | }; | ||
185 | |||
186 | uart3: serial@12300 { | ||
187 | compatible = "ns16550a"; | ||
188 | reg = <0x12100 0x100>; | ||
189 | reg-shift = <2>; | ||
190 | interrupts = <10>; | ||
191 | clocks = <&core_clk 0>; | ||
192 | status = "disabled"; | ||
193 | }; | ||
194 | |||
195 | gpio0: gpio-ctrl@d0400 { | ||
196 | compatible = "marvell,orion-gpio"; | ||
197 | #gpio-cells = <2>; | ||
198 | gpio-controller; | ||
199 | reg = <0xd0400 0x20>; | ||
200 | ngpios = <32>; | ||
201 | interrupt-controller; | ||
202 | #interrupt-cells = <2>; | ||
203 | interrupts = <12>, <13>, <14>, <60>; | ||
204 | }; | ||
205 | |||
206 | gpio1: gpio-ctrl@d0420 { | ||
207 | compatible = "marvell,orion-gpio"; | ||
208 | #gpio-cells = <2>; | ||
209 | gpio-controller; | ||
210 | reg = <0xd0420 0x20>; | ||
211 | ngpios = <32>; | ||
212 | interrupt-controller; | ||
213 | #interrupt-cells = <2>; | ||
214 | interrupts = <61>; | ||
215 | }; | ||
216 | |||
217 | gpio2: gpio-ctrl@e8400 { | ||
218 | compatible = "marvell,orion-gpio"; | ||
219 | #gpio-cells = <2>; | ||
220 | gpio-controller; | ||
221 | reg = <0xe8400 0x0c>; | ||
222 | ngpios = <8>; | ||
223 | }; | ||
224 | |||
225 | pinctrl: pin-ctrl@d0200 { | ||
226 | compatible = "marvell,dove-pinctrl"; | ||
227 | reg = <0xd0200 0x10>; | ||
228 | clocks = <&gate_clk 22>; | ||
229 | |||
230 | pmx_gpio_0: pmx-gpio-0 { | ||
231 | marvell,pins = "mpp0"; | ||
232 | marvell,function = "gpio"; | ||
233 | }; | ||
234 | |||
235 | pmx_gpio_1: pmx-gpio-1 { | ||
236 | marvell,pins = "mpp1"; | ||
237 | marvell,function = "gpio"; | ||
238 | }; | ||
239 | |||
240 | pmx_gpio_2: pmx-gpio-2 { | ||
241 | marvell,pins = "mpp2"; | ||
242 | marvell,function = "gpio"; | ||
243 | }; | ||
244 | |||
245 | pmx_gpio_3: pmx-gpio-3 { | ||
246 | marvell,pins = "mpp3"; | ||
247 | marvell,function = "gpio"; | ||
248 | }; | ||
249 | |||
250 | pmx_gpio_4: pmx-gpio-4 { | ||
251 | marvell,pins = "mpp4"; | ||
252 | marvell,function = "gpio"; | ||
253 | }; | ||
254 | |||
255 | pmx_gpio_5: pmx-gpio-5 { | ||
256 | marvell,pins = "mpp5"; | ||
257 | marvell,function = "gpio"; | ||
258 | }; | ||
259 | |||
260 | pmx_gpio_6: pmx-gpio-6 { | ||
261 | marvell,pins = "mpp6"; | ||
262 | marvell,function = "gpio"; | ||
263 | }; | ||
264 | |||
265 | pmx_gpio_7: pmx-gpio-7 { | ||
266 | marvell,pins = "mpp7"; | ||
267 | marvell,function = "gpio"; | ||
268 | }; | ||
269 | |||
270 | pmx_gpio_8: pmx-gpio-8 { | ||
271 | marvell,pins = "mpp8"; | ||
272 | marvell,function = "gpio"; | ||
273 | }; | ||
274 | |||
275 | pmx_gpio_9: pmx-gpio-9 { | ||
276 | marvell,pins = "mpp9"; | ||
277 | marvell,function = "gpio"; | ||
278 | }; | ||
279 | |||
280 | pmx_gpio_10: pmx-gpio-10 { | ||
281 | marvell,pins = "mpp10"; | ||
282 | marvell,function = "gpio"; | ||
283 | }; | ||
284 | |||
285 | pmx_gpio_11: pmx-gpio-11 { | ||
286 | marvell,pins = "mpp11"; | ||
287 | marvell,function = "gpio"; | ||
288 | }; | ||
289 | |||
290 | pmx_gpio_12: pmx-gpio-12 { | ||
291 | marvell,pins = "mpp12"; | ||
292 | marvell,function = "gpio"; | ||
293 | }; | ||
294 | |||
295 | pmx_gpio_13: pmx-gpio-13 { | ||
296 | marvell,pins = "mpp13"; | ||
297 | marvell,function = "gpio"; | ||
298 | }; | ||
299 | |||
300 | pmx_audio1_extclk: pmx-audio1-extclk { | ||
301 | marvell,pins = "mpp13"; | ||
302 | marvell,function = "audio1"; | ||
303 | }; | ||
304 | |||
305 | pmx_gpio_14: pmx-gpio-14 { | ||
306 | marvell,pins = "mpp14"; | ||
307 | marvell,function = "gpio"; | ||
308 | }; | ||
309 | |||
310 | pmx_gpio_15: pmx-gpio-15 { | ||
311 | marvell,pins = "mpp15"; | ||
312 | marvell,function = "gpio"; | ||
313 | }; | ||
314 | |||
315 | pmx_gpio_16: pmx-gpio-16 { | ||
316 | marvell,pins = "mpp16"; | ||
317 | marvell,function = "gpio"; | ||
318 | }; | ||
319 | |||
320 | pmx_gpio_17: pmx-gpio-17 { | ||
321 | marvell,pins = "mpp17"; | ||
322 | marvell,function = "gpio"; | ||
323 | }; | ||
324 | |||
325 | pmx_gpio_18: pmx-gpio-18 { | ||
326 | marvell,pins = "mpp18"; | ||
327 | marvell,function = "gpio"; | ||
328 | }; | ||
329 | |||
330 | pmx_gpio_19: pmx-gpio-19 { | ||
331 | marvell,pins = "mpp19"; | ||
332 | marvell,function = "gpio"; | ||
333 | }; | ||
334 | |||
335 | pmx_gpio_20: pmx-gpio-20 { | ||
336 | marvell,pins = "mpp20"; | ||
337 | marvell,function = "gpio"; | ||
338 | }; | ||
339 | |||
340 | pmx_gpio_21: pmx-gpio-21 { | ||
341 | marvell,pins = "mpp21"; | ||
342 | marvell,function = "gpio"; | ||
343 | }; | ||
344 | |||
345 | pmx_camera: pmx-camera { | ||
346 | marvell,pins = "mpp_camera"; | ||
347 | marvell,function = "camera"; | ||
348 | }; | ||
349 | |||
350 | pmx_camera_gpio: pmx-camera-gpio { | ||
351 | marvell,pins = "mpp_camera"; | ||
352 | marvell,function = "gpio"; | ||
353 | }; | ||
354 | |||
355 | pmx_sdio0: pmx-sdio0 { | ||
356 | marvell,pins = "mpp_sdio0"; | ||
357 | marvell,function = "sdio0"; | ||
358 | }; | ||
359 | |||
360 | pmx_sdio0_gpio: pmx-sdio0-gpio { | ||
361 | marvell,pins = "mpp_sdio0"; | ||
362 | marvell,function = "gpio"; | ||
363 | }; | ||
364 | |||
365 | pmx_sdio1: pmx-sdio1 { | ||
366 | marvell,pins = "mpp_sdio1"; | ||
367 | marvell,function = "sdio1"; | ||
368 | }; | ||
369 | |||
370 | pmx_sdio1_gpio: pmx-sdio1-gpio { | ||
371 | marvell,pins = "mpp_sdio1"; | ||
372 | marvell,function = "gpio"; | ||
373 | }; | ||
374 | |||
375 | pmx_audio1_gpio: pmx-audio1-gpio { | ||
376 | marvell,pins = "mpp_audio1"; | ||
377 | marvell,function = "gpio"; | ||
378 | }; | ||
379 | |||
380 | pmx_audio1_i2s1_spdifo: pmx-audio1-i2s1-spdifo { | ||
381 | marvell,pins = "mpp_audio1"; | ||
382 | marvell,function = "i2s1/spdifo"; | ||
383 | }; | ||
384 | |||
385 | pmx_spi0: pmx-spi0 { | ||
386 | marvell,pins = "mpp_spi0"; | ||
387 | marvell,function = "spi0"; | ||
388 | }; | ||
389 | |||
390 | pmx_spi0_gpio: pmx-spi0-gpio { | ||
391 | marvell,pins = "mpp_spi0"; | ||
392 | marvell,function = "gpio"; | ||
393 | }; | ||
394 | |||
395 | pmx_uart1: pmx-uart1 { | ||
396 | marvell,pins = "mpp_uart1"; | ||
397 | marvell,function = "uart1"; | ||
398 | }; | ||
399 | |||
400 | pmx_uart1_gpio: pmx-uart1-gpio { | ||
401 | marvell,pins = "mpp_uart1"; | ||
402 | marvell,function = "gpio"; | ||
403 | }; | ||
404 | |||
405 | pmx_nand: pmx-nand { | ||
406 | marvell,pins = "mpp_nand"; | ||
407 | marvell,function = "nand"; | ||
408 | }; | ||
409 | |||
410 | pmx_nand_gpo: pmx-nand-gpo { | ||
411 | marvell,pins = "mpp_nand"; | ||
412 | marvell,function = "gpo"; | ||
413 | }; | ||
414 | }; | ||
415 | |||
416 | spi0: spi-ctrl@10600 { | ||
417 | compatible = "marvell,orion-spi"; | ||
418 | #address-cells = <1>; | ||
419 | #size-cells = <0>; | ||
420 | cell-index = <0>; | ||
421 | interrupts = <6>; | ||
422 | reg = <0x10600 0x28>; | ||
423 | clocks = <&core_clk 0>; | ||
424 | pinctrl-0 = <&pmx_spi0>; | ||
425 | pinctrl-names = "default"; | ||
426 | status = "disabled"; | ||
427 | }; | ||
428 | |||
429 | spi1: spi-ctrl@14600 { | ||
430 | compatible = "marvell,orion-spi"; | ||
431 | #address-cells = <1>; | ||
432 | #size-cells = <0>; | ||
433 | cell-index = <1>; | ||
434 | interrupts = <5>; | ||
435 | reg = <0x14600 0x28>; | ||
436 | clocks = <&core_clk 0>; | ||
437 | status = "disabled"; | ||
438 | }; | ||
439 | |||
440 | i2c0: i2c-ctrl@11000 { | ||
441 | compatible = "marvell,mv64xxx-i2c"; | ||
442 | reg = <0x11000 0x20>; | ||
443 | #address-cells = <1>; | ||
444 | #size-cells = <0>; | ||
445 | interrupts = <11>; | ||
446 | clock-frequency = <400000>; | ||
447 | timeout-ms = <1000>; | ||
448 | clocks = <&core_clk 0>; | ||
449 | status = "disabled"; | ||
450 | }; | ||
451 | |||
452 | ehci0: usb-host@50000 { | ||
453 | compatible = "marvell,orion-ehci"; | ||
454 | reg = <0x50000 0x1000>; | ||
455 | interrupts = <24>; | ||
456 | clocks = <&gate_clk 0>; | ||
457 | status = "okay"; | ||
458 | }; | ||
459 | |||
460 | ehci1: usb-host@51000 { | ||
461 | compatible = "marvell,orion-ehci"; | ||
462 | reg = <0x51000 0x1000>; | ||
463 | interrupts = <25>; | ||
464 | clocks = <&gate_clk 1>; | ||
465 | status = "okay"; | ||
466 | }; | ||
467 | |||
468 | sdio0: sdio-host@92000 { | ||
469 | compatible = "marvell,dove-sdhci"; | ||
470 | reg = <0x92000 0x100>; | ||
471 | interrupts = <35>, <37>; | ||
472 | clocks = <&gate_clk 8>; | ||
473 | pinctrl-0 = <&pmx_sdio0>; | ||
474 | pinctrl-names = "default"; | ||
475 | status = "disabled"; | ||
476 | }; | ||
477 | |||
478 | sdio1: sdio-host@90000 { | ||
479 | compatible = "marvell,dove-sdhci"; | ||
480 | reg = <0x90000 0x100>; | ||
481 | interrupts = <36>, <38>; | ||
482 | clocks = <&gate_clk 9>; | ||
483 | pinctrl-0 = <&pmx_sdio1>; | ||
484 | pinctrl-names = "default"; | ||
485 | status = "disabled"; | ||
486 | }; | ||
487 | |||
488 | sata0: sata-host@a0000 { | ||
489 | compatible = "marvell,orion-sata"; | ||
490 | reg = <0xa0000 0x2400>; | ||
491 | interrupts = <62>; | ||
492 | clocks = <&gate_clk 3>; | ||
493 | nr-ports = <1>; | ||
494 | status = "disabled"; | ||
495 | }; | ||
496 | |||
497 | rtc: real-time-clock@d8500 { | ||
498 | compatible = "marvell,orion-rtc"; | ||
499 | reg = <0xd8500 0x20>; | ||
500 | }; | ||
501 | |||
502 | crypto: crypto-engine@30000 { | ||
503 | compatible = "marvell,orion-crypto"; | ||
504 | reg = <0x30000 0x10000>, | ||
505 | <0xffffe000 0x800>; | ||
506 | reg-names = "regs", "sram"; | ||
507 | interrupts = <31>; | ||
508 | clocks = <&gate_clk 15>; | ||
509 | status = "okay"; | ||
510 | }; | ||
511 | |||
512 | xor0: dma-engine@60800 { | ||
513 | compatible = "marvell,orion-xor"; | ||
514 | reg = <0x60800 0x100 | ||
515 | 0x60a00 0x100>; | ||
516 | clocks = <&gate_clk 23>; | ||
517 | status = "okay"; | ||
518 | |||
519 | channel0 { | ||
520 | interrupts = <39>; | ||
521 | dmacap,memcpy; | ||
522 | dmacap,xor; | ||
523 | }; | ||
524 | |||
525 | channel1 { | ||
526 | interrupts = <40>; | ||
527 | dmacap,memcpy; | ||
528 | dmacap,xor; | ||
529 | }; | ||
530 | }; | ||
531 | |||
532 | xor1: dma-engine@60900 { | ||
533 | compatible = "marvell,orion-xor"; | ||
534 | reg = <0x60900 0x100 | ||
535 | 0x60b00 0x100>; | ||
536 | clocks = <&gate_clk 24>; | ||
537 | status = "okay"; | ||
538 | |||
539 | channel0 { | ||
540 | interrupts = <42>; | ||
541 | dmacap,memcpy; | ||
542 | dmacap,xor; | ||
543 | }; | ||
544 | |||
545 | channel1 { | ||
546 | interrupts = <43>; | ||
547 | dmacap,memcpy; | ||
548 | dmacap,xor; | ||
549 | }; | ||
550 | }; | ||
551 | |||
552 | mdio: mdio-bus@72004 { | ||
553 | compatible = "marvell,orion-mdio"; | ||
554 | #address-cells = <1>; | ||
555 | #size-cells = <0>; | ||
556 | reg = <0x72004 0x84>; | ||
557 | interrupts = <30>; | ||
558 | clocks = <&gate_clk 2>; | ||
559 | status = "disabled"; | ||
560 | |||
561 | ethphy: ethernet-phy { | ||
562 | device-type = "ethernet-phy"; | ||
563 | /* set phy address in board file */ | ||
564 | }; | ||
565 | }; | ||
566 | |||
567 | eth: ethernet-ctrl@72000 { | ||
568 | compatible = "marvell,orion-eth"; | ||
569 | #address-cells = <1>; | ||
570 | #size-cells = <0>; | ||
571 | reg = <0x72000 0x4000>; | ||
572 | clocks = <&gate_clk 2>; | ||
573 | marvell,tx-checksum-limit = <1600>; | ||
574 | status = "disabled"; | ||
575 | |||
576 | ethernet-port@0 { | ||
577 | device_type = "network"; | ||
578 | compatible = "marvell,orion-eth-port"; | ||
579 | reg = <0>; | ||
580 | interrupts = <29>; | ||
581 | /* overwrite MAC address in bootloader */ | ||
582 | local-mac-address = [00 00 00 00 00 00]; | ||
583 | phy-handle = <ðphy>; | ||
584 | }; | ||
585 | }; | ||
586 | |||
587 | audio0: audio-controller@b0000 { | ||
588 | compatible = "marvell,dove-audio"; | ||
589 | reg = <0xb0000 0x2210>; | ||
590 | interrupts = <19>, <20>; | ||
591 | clocks = <&gate_clk 12>; | ||
592 | clock-names = "internal"; | ||
593 | status = "disabled"; | ||
594 | }; | ||
595 | |||
596 | audio1: audio-controller@b4000 { | ||
597 | compatible = "marvell,dove-audio"; | ||
598 | reg = <0xb4000 0x2210>; | ||
599 | interrupts = <21>, <22>; | ||
600 | clocks = <&gate_clk 13>; | ||
601 | clock-names = "internal"; | ||
602 | status = "disabled"; | ||
506 | }; | 603 | }; |
507 | }; | 604 | }; |
508 | }; | 605 | }; |
diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts new file mode 100644 index 000000000000..5babba0a3a75 --- /dev/null +++ b/arch/arm/boot/dts/dra7-evm.dts | |||
@@ -0,0 +1,275 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | |||
10 | #include "dra7.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "TI DRA7"; | ||
14 | compatible = "ti,dra7-evm", "ti,dra752", "ti,dra7"; | ||
15 | |||
16 | memory { | ||
17 | device_type = "memory"; | ||
18 | reg = <0x80000000 0x60000000>; /* 1536 MB */ | ||
19 | }; | ||
20 | |||
21 | mmc2_3v3: fixedregulator-mmc2 { | ||
22 | compatible = "regulator-fixed"; | ||
23 | regulator-name = "mmc2_3v3"; | ||
24 | regulator-min-microvolt = <3300000>; | ||
25 | regulator-max-microvolt = <3300000>; | ||
26 | }; | ||
27 | }; | ||
28 | |||
29 | &dra7_pmx_core { | ||
30 | i2c1_pins: pinmux_i2c1_pins { | ||
31 | pinctrl-single,pins = < | ||
32 | 0x400 (PIN_INPUT | MUX_MODE0) /* i2c1_sda */ | ||
33 | 0x404 (PIN_INPUT | MUX_MODE0) /* i2c1_scl */ | ||
34 | >; | ||
35 | }; | ||
36 | |||
37 | i2c2_pins: pinmux_i2c2_pins { | ||
38 | pinctrl-single,pins = < | ||
39 | 0x408 (PIN_INPUT | MUX_MODE0) /* i2c2_sda */ | ||
40 | 0x40c (PIN_INPUT | MUX_MODE0) /* i2c2_scl */ | ||
41 | >; | ||
42 | }; | ||
43 | |||
44 | i2c3_pins: pinmux_i2c3_pins { | ||
45 | pinctrl-single,pins = < | ||
46 | 0x410 (PIN_INPUT | MUX_MODE0) /* i2c3_sda */ | ||
47 | 0x414 (PIN_INPUT | MUX_MODE0) /* i2c3_scl */ | ||
48 | >; | ||
49 | }; | ||
50 | |||
51 | mcspi1_pins: pinmux_mcspi1_pins { | ||
52 | pinctrl-single,pins = < | ||
53 | 0x3a4 (PIN_INPUT | MUX_MODE0) /* spi2_clk */ | ||
54 | 0x3a8 (PIN_INPUT | MUX_MODE0) /* spi2_d1 */ | ||
55 | 0x3ac (PIN_INPUT | MUX_MODE0) /* spi2_d0 */ | ||
56 | 0x3b0 (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_cs0 */ | ||
57 | 0x3b4 (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_cs1 */ | ||
58 | 0x3b8 (PIN_INPUT_SLEW | MUX_MODE6) /* spi2_cs2 */ | ||
59 | 0x3bc (PIN_INPUT_SLEW | MUX_MODE6) /* spi2_cs3 */ | ||
60 | >; | ||
61 | }; | ||
62 | |||
63 | mcspi2_pins: pinmux_mcspi2_pins { | ||
64 | pinctrl-single,pins = < | ||
65 | 0x3c0 (PIN_INPUT | MUX_MODE0) /* spi2_sclk */ | ||
66 | 0x3c4 (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */ | ||
67 | 0x3c8 (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_d1 */ | ||
68 | 0x3cc (PIN_INPUT_SLEW | MUX_MODE0) /* spi2_cs0 */ | ||
69 | >; | ||
70 | }; | ||
71 | |||
72 | uart1_pins: pinmux_uart1_pins { | ||
73 | pinctrl-single,pins = < | ||
74 | 0x3e0 (PIN_INPUT_SLEW | MUX_MODE0) /* uart1_rxd */ | ||
75 | 0x3e4 (PIN_INPUT_SLEW | MUX_MODE0) /* uart1_txd */ | ||
76 | 0x3e8 (PIN_INPUT | MUX_MODE3) /* uart1_ctsn */ | ||
77 | 0x3ec (PIN_INPUT | MUX_MODE3) /* uart1_rtsn */ | ||
78 | >; | ||
79 | }; | ||
80 | |||
81 | uart2_pins: pinmux_uart2_pins { | ||
82 | pinctrl-single,pins = < | ||
83 | 0x3f0 (PIN_INPUT | MUX_MODE0) /* uart2_rxd */ | ||
84 | 0x3f4 (PIN_INPUT | MUX_MODE0) /* uart2_txd */ | ||
85 | 0x3f8 (PIN_INPUT | MUX_MODE0) /* uart2_ctsn */ | ||
86 | 0x3fc (PIN_INPUT | MUX_MODE0) /* uart2_rtsn */ | ||
87 | >; | ||
88 | }; | ||
89 | |||
90 | uart3_pins: pinmux_uart3_pins { | ||
91 | pinctrl-single,pins = < | ||
92 | 0x248 (PIN_INPUT_SLEW | MUX_MODE0) /* uart3_rxd */ | ||
93 | 0x24c (PIN_INPUT_SLEW | MUX_MODE0) /* uart3_txd */ | ||
94 | >; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | &i2c1 { | ||
99 | status = "okay"; | ||
100 | pinctrl-names = "default"; | ||
101 | pinctrl-0 = <&i2c1_pins>; | ||
102 | clock-frequency = <400000>; | ||
103 | |||
104 | tps659038: tps659038@58 { | ||
105 | compatible = "ti,tps659038"; | ||
106 | reg = <0x58>; | ||
107 | |||
108 | tps659038_pmic { | ||
109 | compatible = "ti,tps659038-pmic"; | ||
110 | |||
111 | regulators { | ||
112 | smps123_reg: smps123 { | ||
113 | /* VDD_MPU */ | ||
114 | regulator-name = "smps123"; | ||
115 | regulator-min-microvolt = < 850000>; | ||
116 | regulator-max-microvolt = <1250000>; | ||
117 | regulator-always-on; | ||
118 | regulator-boot-on; | ||
119 | }; | ||
120 | |||
121 | smps45_reg: smps45 { | ||
122 | /* VDD_DSPEVE */ | ||
123 | regulator-name = "smps45"; | ||
124 | regulator-min-microvolt = < 850000>; | ||
125 | regulator-max-microvolt = <1150000>; | ||
126 | regulator-boot-on; | ||
127 | }; | ||
128 | |||
129 | smps6_reg: smps6 { | ||
130 | /* VDD_GPU - over VDD_SMPS6 */ | ||
131 | regulator-name = "smps6"; | ||
132 | regulator-min-microvolt = <850000>; | ||
133 | regulator-max-microvolt = <12500000>; | ||
134 | regulator-boot-on; | ||
135 | }; | ||
136 | |||
137 | smps7_reg: smps7 { | ||
138 | /* CORE_VDD */ | ||
139 | regulator-name = "smps7"; | ||
140 | regulator-min-microvolt = <850000>; | ||
141 | regulator-max-microvolt = <1030000>; | ||
142 | regulator-always-on; | ||
143 | regulator-boot-on; | ||
144 | }; | ||
145 | |||
146 | smps8_reg: smps8 { | ||
147 | /* VDD_IVAHD */ | ||
148 | regulator-name = "smps8"; | ||
149 | regulator-min-microvolt = < 850000>; | ||
150 | regulator-max-microvolt = <1250000>; | ||
151 | regulator-boot-on; | ||
152 | }; | ||
153 | |||
154 | smps9_reg: smps9 { | ||
155 | /* VDDS1V8 */ | ||
156 | regulator-name = "smps9"; | ||
157 | regulator-min-microvolt = <1800000>; | ||
158 | regulator-max-microvolt = <1800000>; | ||
159 | regulator-always-on; | ||
160 | regulator-boot-on; | ||
161 | }; | ||
162 | |||
163 | ldo1_reg: ldo1 { | ||
164 | /* LDO1_OUT --> SDIO */ | ||
165 | regulator-name = "ldo1"; | ||
166 | regulator-min-microvolt = <1800000>; | ||
167 | regulator-max-microvolt = <3300000>; | ||
168 | regulator-boot-on; | ||
169 | }; | ||
170 | |||
171 | ldo2_reg: ldo2 { | ||
172 | /* VDD_RTCIO */ | ||
173 | /* LDO2 -> VDDSHV5, LDO2 also goes to CAN_PHY_3V3 */ | ||
174 | regulator-name = "ldo2"; | ||
175 | regulator-min-microvolt = <3300000>; | ||
176 | regulator-max-microvolt = <3300000>; | ||
177 | regulator-boot-on; | ||
178 | }; | ||
179 | |||
180 | ldo3_reg: ldo3 { | ||
181 | /* VDDA_1V8_PHY */ | ||
182 | regulator-name = "ldo3"; | ||
183 | regulator-min-microvolt = <1800000>; | ||
184 | regulator-max-microvolt = <1800000>; | ||
185 | regulator-boot-on; | ||
186 | }; | ||
187 | |||
188 | ldo9_reg: ldo9 { | ||
189 | /* VDD_RTC */ | ||
190 | regulator-name = "ldo9"; | ||
191 | regulator-min-microvolt = <1050000>; | ||
192 | regulator-max-microvolt = <1050000>; | ||
193 | regulator-boot-on; | ||
194 | }; | ||
195 | |||
196 | ldoln_reg: ldoln { | ||
197 | /* VDDA_1V8_PLL */ | ||
198 | regulator-name = "ldoln"; | ||
199 | regulator-min-microvolt = <1800000>; | ||
200 | regulator-max-microvolt = <1800000>; | ||
201 | regulator-always-on; | ||
202 | regulator-boot-on; | ||
203 | }; | ||
204 | |||
205 | ldousb_reg: ldousb { | ||
206 | /* VDDA_3V_USB: VDDA_USBHS33 */ | ||
207 | regulator-name = "ldousb"; | ||
208 | regulator-min-microvolt = <3300000>; | ||
209 | regulator-max-microvolt = <3300000>; | ||
210 | regulator-boot-on; | ||
211 | }; | ||
212 | }; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | |||
217 | &i2c2 { | ||
218 | status = "okay"; | ||
219 | pinctrl-names = "default"; | ||
220 | pinctrl-0 = <&i2c2_pins>; | ||
221 | clock-frequency = <400000>; | ||
222 | }; | ||
223 | |||
224 | &i2c3 { | ||
225 | status = "okay"; | ||
226 | pinctrl-names = "default"; | ||
227 | pinctrl-0 = <&i2c3_pins>; | ||
228 | clock-frequency = <3400000>; | ||
229 | }; | ||
230 | |||
231 | &mcspi1 { | ||
232 | status = "okay"; | ||
233 | pinctrl-names = "default"; | ||
234 | pinctrl-0 = <&mcspi1_pins>; | ||
235 | }; | ||
236 | |||
237 | &mcspi2 { | ||
238 | status = "okay"; | ||
239 | pinctrl-names = "default"; | ||
240 | pinctrl-0 = <&mcspi2_pins>; | ||
241 | }; | ||
242 | |||
243 | &uart1 { | ||
244 | status = "okay"; | ||
245 | pinctrl-names = "default"; | ||
246 | pinctrl-0 = <&uart1_pins>; | ||
247 | }; | ||
248 | |||
249 | &uart2 { | ||
250 | status = "okay"; | ||
251 | pinctrl-names = "default"; | ||
252 | pinctrl-0 = <&uart2_pins>; | ||
253 | }; | ||
254 | |||
255 | &uart3 { | ||
256 | status = "okay"; | ||
257 | pinctrl-names = "default"; | ||
258 | pinctrl-0 = <&uart3_pins>; | ||
259 | }; | ||
260 | |||
261 | &mmc1 { | ||
262 | status = "okay"; | ||
263 | vmmc-supply = <&ldo1_reg>; | ||
264 | bus-width = <4>; | ||
265 | }; | ||
266 | |||
267 | &mmc2 { | ||
268 | status = "okay"; | ||
269 | vmmc-supply = <&mmc2_3v3>; | ||
270 | bus-width = <8>; | ||
271 | }; | ||
272 | |||
273 | &cpu0 { | ||
274 | cpu0-supply = <&smps123_reg>; | ||
275 | }; | ||
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi new file mode 100644 index 000000000000..d0df4c4e8b0a --- /dev/null +++ b/arch/arm/boot/dts/dra7.dtsi | |||
@@ -0,0 +1,586 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | * Based on "omap4.dtsi" | ||
8 | */ | ||
9 | |||
10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
11 | #include <dt-bindings/pinctrl/dra.h> | ||
12 | |||
13 | #include "skeleton.dtsi" | ||
14 | |||
15 | / { | ||
16 | #address-cells = <1>; | ||
17 | #size-cells = <1>; | ||
18 | |||
19 | compatible = "ti,dra7xx"; | ||
20 | interrupt-parent = <&gic>; | ||
21 | |||
22 | aliases { | ||
23 | i2c0 = &i2c1; | ||
24 | i2c1 = &i2c2; | ||
25 | i2c2 = &i2c3; | ||
26 | i2c3 = &i2c4; | ||
27 | i2c4 = &i2c5; | ||
28 | serial0 = &uart1; | ||
29 | serial1 = &uart2; | ||
30 | serial2 = &uart3; | ||
31 | serial3 = &uart4; | ||
32 | serial4 = &uart5; | ||
33 | serial5 = &uart6; | ||
34 | }; | ||
35 | |||
36 | cpus { | ||
37 | #address-cells = <1>; | ||
38 | #size-cells = <0>; | ||
39 | |||
40 | cpu0: cpu@0 { | ||
41 | device_type = "cpu"; | ||
42 | compatible = "arm,cortex-a15"; | ||
43 | reg = <0>; | ||
44 | |||
45 | operating-points = < | ||
46 | /* kHz uV */ | ||
47 | 1000000 1060000 | ||
48 | 1176000 1160000 | ||
49 | >; | ||
50 | }; | ||
51 | cpu@1 { | ||
52 | device_type = "cpu"; | ||
53 | compatible = "arm,cortex-a15"; | ||
54 | reg = <1>; | ||
55 | }; | ||
56 | }; | ||
57 | |||
58 | timer { | ||
59 | compatible = "arm,armv7-timer"; | ||
60 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
61 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
62 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>, | ||
63 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>; | ||
64 | }; | ||
65 | |||
66 | gic: interrupt-controller@48211000 { | ||
67 | compatible = "arm,cortex-a15-gic"; | ||
68 | interrupt-controller; | ||
69 | #interrupt-cells = <3>; | ||
70 | reg = <0x48211000 0x1000>, | ||
71 | <0x48212000 0x1000>, | ||
72 | <0x48214000 0x2000>, | ||
73 | <0x48216000 0x2000>; | ||
74 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; | ||
75 | }; | ||
76 | |||
77 | /* | ||
78 | * The soc node represents the soc top level view. It is uses for IPs | ||
79 | * that are not memory mapped in the MPU view or for the MPU itself. | ||
80 | */ | ||
81 | soc { | ||
82 | compatible = "ti,omap-infra"; | ||
83 | mpu { | ||
84 | compatible = "ti,omap5-mpu"; | ||
85 | ti,hwmods = "mpu"; | ||
86 | }; | ||
87 | }; | ||
88 | |||
89 | /* | ||
90 | * XXX: Use a flat representation of the SOC interconnect. | ||
91 | * The real OMAP interconnect network is quite complex. | ||
92 | * Since that will not bring real advantage to represent that in DT for | ||
93 | * the moment, just use a fake OCP bus entry to represent the whole bus | ||
94 | * hierarchy. | ||
95 | */ | ||
96 | ocp { | ||
97 | compatible = "ti,omap4-l3-noc", "simple-bus"; | ||
98 | #address-cells = <1>; | ||
99 | #size-cells = <1>; | ||
100 | ranges; | ||
101 | ti,hwmods = "l3_main_1", "l3_main_2"; | ||
102 | reg = <0x44000000 0x2000>, | ||
103 | <0x44800000 0x3000>; | ||
104 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, | ||
105 | <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | ||
106 | |||
107 | counter32k: counter@4ae04000 { | ||
108 | compatible = "ti,omap-counter32k"; | ||
109 | reg = <0x4ae04000 0x40>; | ||
110 | ti,hwmods = "counter_32k"; | ||
111 | }; | ||
112 | |||
113 | dra7_pmx_core: pinmux@4a003400 { | ||
114 | compatible = "pinctrl-single"; | ||
115 | reg = <0x4a003400 0x0464>; | ||
116 | #address-cells = <1>; | ||
117 | #size-cells = <0>; | ||
118 | pinctrl-single,register-width = <32>; | ||
119 | pinctrl-single,function-mask = <0x3fffffff>; | ||
120 | }; | ||
121 | |||
122 | sdma: dma-controller@4a056000 { | ||
123 | compatible = "ti,omap4430-sdma"; | ||
124 | reg = <0x4a056000 0x1000>; | ||
125 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
126 | <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, | ||
127 | <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, | ||
128 | <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
129 | #dma-cells = <1>; | ||
130 | #dma-channels = <32>; | ||
131 | #dma-requests = <127>; | ||
132 | }; | ||
133 | |||
134 | gpio1: gpio@4ae10000 { | ||
135 | compatible = "ti,omap4-gpio"; | ||
136 | reg = <0x4ae10000 0x200>; | ||
137 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; | ||
138 | ti,hwmods = "gpio1"; | ||
139 | gpio-controller; | ||
140 | #gpio-cells = <2>; | ||
141 | interrupt-controller; | ||
142 | #interrupt-cells = <1>; | ||
143 | }; | ||
144 | |||
145 | gpio2: gpio@48055000 { | ||
146 | compatible = "ti,omap4-gpio"; | ||
147 | reg = <0x48055000 0x200>; | ||
148 | interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | ||
149 | ti,hwmods = "gpio2"; | ||
150 | gpio-controller; | ||
151 | #gpio-cells = <2>; | ||
152 | interrupt-controller; | ||
153 | #interrupt-cells = <1>; | ||
154 | }; | ||
155 | |||
156 | gpio3: gpio@48057000 { | ||
157 | compatible = "ti,omap4-gpio"; | ||
158 | reg = <0x48057000 0x200>; | ||
159 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | ||
160 | ti,hwmods = "gpio3"; | ||
161 | gpio-controller; | ||
162 | #gpio-cells = <2>; | ||
163 | interrupt-controller; | ||
164 | #interrupt-cells = <1>; | ||
165 | }; | ||
166 | |||
167 | gpio4: gpio@48059000 { | ||
168 | compatible = "ti,omap4-gpio"; | ||
169 | reg = <0x48059000 0x200>; | ||
170 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | ||
171 | ti,hwmods = "gpio4"; | ||
172 | gpio-controller; | ||
173 | #gpio-cells = <2>; | ||
174 | interrupt-controller; | ||
175 | #interrupt-cells = <1>; | ||
176 | }; | ||
177 | |||
178 | gpio5: gpio@4805b000 { | ||
179 | compatible = "ti,omap4-gpio"; | ||
180 | reg = <0x4805b000 0x200>; | ||
181 | interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | ||
182 | ti,hwmods = "gpio5"; | ||
183 | gpio-controller; | ||
184 | #gpio-cells = <2>; | ||
185 | interrupt-controller; | ||
186 | #interrupt-cells = <1>; | ||
187 | }; | ||
188 | |||
189 | gpio6: gpio@4805d000 { | ||
190 | compatible = "ti,omap4-gpio"; | ||
191 | reg = <0x4805d000 0x200>; | ||
192 | interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; | ||
193 | ti,hwmods = "gpio6"; | ||
194 | gpio-controller; | ||
195 | #gpio-cells = <2>; | ||
196 | interrupt-controller; | ||
197 | #interrupt-cells = <1>; | ||
198 | }; | ||
199 | |||
200 | gpio7: gpio@48051000 { | ||
201 | compatible = "ti,omap4-gpio"; | ||
202 | reg = <0x48051000 0x200>; | ||
203 | interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; | ||
204 | ti,hwmods = "gpio7"; | ||
205 | gpio-controller; | ||
206 | #gpio-cells = <2>; | ||
207 | interrupt-controller; | ||
208 | #interrupt-cells = <1>; | ||
209 | }; | ||
210 | |||
211 | gpio8: gpio@48053000 { | ||
212 | compatible = "ti,omap4-gpio"; | ||
213 | reg = <0x48053000 0x200>; | ||
214 | interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | ||
215 | ti,hwmods = "gpio8"; | ||
216 | gpio-controller; | ||
217 | #gpio-cells = <2>; | ||
218 | interrupt-controller; | ||
219 | #interrupt-cells = <1>; | ||
220 | }; | ||
221 | |||
222 | uart1: serial@4806a000 { | ||
223 | compatible = "ti,omap4-uart"; | ||
224 | reg = <0x4806a000 0x100>; | ||
225 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; | ||
226 | ti,hwmods = "uart1"; | ||
227 | clock-frequency = <48000000>; | ||
228 | status = "disabled"; | ||
229 | }; | ||
230 | |||
231 | uart2: serial@4806c000 { | ||
232 | compatible = "ti,omap4-uart"; | ||
233 | reg = <0x4806c000 0x100>; | ||
234 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
235 | ti,hwmods = "uart2"; | ||
236 | clock-frequency = <48000000>; | ||
237 | status = "disabled"; | ||
238 | }; | ||
239 | |||
240 | uart3: serial@48020000 { | ||
241 | compatible = "ti,omap4-uart"; | ||
242 | reg = <0x48020000 0x100>; | ||
243 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | ||
244 | ti,hwmods = "uart3"; | ||
245 | clock-frequency = <48000000>; | ||
246 | status = "disabled"; | ||
247 | }; | ||
248 | |||
249 | uart4: serial@4806e000 { | ||
250 | compatible = "ti,omap4-uart"; | ||
251 | reg = <0x4806e000 0x100>; | ||
252 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
253 | ti,hwmods = "uart4"; | ||
254 | clock-frequency = <48000000>; | ||
255 | status = "disabled"; | ||
256 | }; | ||
257 | |||
258 | uart5: serial@48066000 { | ||
259 | compatible = "ti,omap4-uart"; | ||
260 | reg = <0x48066000 0x100>; | ||
261 | interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | ||
262 | ti,hwmods = "uart5"; | ||
263 | clock-frequency = <48000000>; | ||
264 | status = "disabled"; | ||
265 | }; | ||
266 | |||
267 | uart6: serial@48068000 { | ||
268 | compatible = "ti,omap4-uart"; | ||
269 | reg = <0x48068000 0x100>; | ||
270 | interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; | ||
271 | ti,hwmods = "uart6"; | ||
272 | clock-frequency = <48000000>; | ||
273 | status = "disabled"; | ||
274 | }; | ||
275 | |||
276 | uart7: serial@48420000 { | ||
277 | compatible = "ti,omap4-uart"; | ||
278 | reg = <0x48420000 0x100>; | ||
279 | ti,hwmods = "uart7"; | ||
280 | clock-frequency = <48000000>; | ||
281 | status = "disabled"; | ||
282 | }; | ||
283 | |||
284 | uart8: serial@48422000 { | ||
285 | compatible = "ti,omap4-uart"; | ||
286 | reg = <0x48422000 0x100>; | ||
287 | ti,hwmods = "uart8"; | ||
288 | clock-frequency = <48000000>; | ||
289 | status = "disabled"; | ||
290 | }; | ||
291 | |||
292 | uart9: serial@48424000 { | ||
293 | compatible = "ti,omap4-uart"; | ||
294 | reg = <0x48424000 0x100>; | ||
295 | ti,hwmods = "uart9"; | ||
296 | clock-frequency = <48000000>; | ||
297 | status = "disabled"; | ||
298 | }; | ||
299 | |||
300 | uart10: serial@4ae2b000 { | ||
301 | compatible = "ti,omap4-uart"; | ||
302 | reg = <0x4ae2b000 0x100>; | ||
303 | ti,hwmods = "uart10"; | ||
304 | clock-frequency = <48000000>; | ||
305 | status = "disabled"; | ||
306 | }; | ||
307 | |||
308 | timer1: timer@4ae18000 { | ||
309 | compatible = "ti,omap5430-timer"; | ||
310 | reg = <0x4ae18000 0x80>; | ||
311 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | ||
312 | ti,hwmods = "timer1"; | ||
313 | ti,timer-alwon; | ||
314 | }; | ||
315 | |||
316 | timer2: timer@48032000 { | ||
317 | compatible = "ti,omap5430-timer"; | ||
318 | reg = <0x48032000 0x80>; | ||
319 | interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; | ||
320 | ti,hwmods = "timer2"; | ||
321 | }; | ||
322 | |||
323 | timer3: timer@48034000 { | ||
324 | compatible = "ti,omap5430-timer"; | ||
325 | reg = <0x48034000 0x80>; | ||
326 | interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; | ||
327 | ti,hwmods = "timer3"; | ||
328 | }; | ||
329 | |||
330 | timer4: timer@48036000 { | ||
331 | compatible = "ti,omap5430-timer"; | ||
332 | reg = <0x48036000 0x80>; | ||
333 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; | ||
334 | ti,hwmods = "timer4"; | ||
335 | }; | ||
336 | |||
337 | timer5: timer@48820000 { | ||
338 | compatible = "ti,omap5430-timer"; | ||
339 | reg = <0x48820000 0x80>; | ||
340 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | ||
341 | ti,hwmods = "timer5"; | ||
342 | ti,timer-dsp; | ||
343 | }; | ||
344 | |||
345 | timer6: timer@48822000 { | ||
346 | compatible = "ti,omap5430-timer"; | ||
347 | reg = <0x48822000 0x80>; | ||
348 | interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; | ||
349 | ti,hwmods = "timer6"; | ||
350 | ti,timer-dsp; | ||
351 | ti,timer-pwm; | ||
352 | }; | ||
353 | |||
354 | timer7: timer@48824000 { | ||
355 | compatible = "ti,omap5430-timer"; | ||
356 | reg = <0x48824000 0x80>; | ||
357 | interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; | ||
358 | ti,hwmods = "timer7"; | ||
359 | ti,timer-dsp; | ||
360 | }; | ||
361 | |||
362 | timer8: timer@48826000 { | ||
363 | compatible = "ti,omap5430-timer"; | ||
364 | reg = <0x48826000 0x80>; | ||
365 | interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; | ||
366 | ti,hwmods = "timer8"; | ||
367 | ti,timer-dsp; | ||
368 | ti,timer-pwm; | ||
369 | }; | ||
370 | |||
371 | timer9: timer@4803e000 { | ||
372 | compatible = "ti,omap5430-timer"; | ||
373 | reg = <0x4803e000 0x80>; | ||
374 | interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; | ||
375 | ti,hwmods = "timer9"; | ||
376 | }; | ||
377 | |||
378 | timer10: timer@48086000 { | ||
379 | compatible = "ti,omap5430-timer"; | ||
380 | reg = <0x48086000 0x80>; | ||
381 | interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; | ||
382 | ti,hwmods = "timer10"; | ||
383 | }; | ||
384 | |||
385 | timer11: timer@48088000 { | ||
386 | compatible = "ti,omap5430-timer"; | ||
387 | reg = <0x48088000 0x80>; | ||
388 | interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; | ||
389 | ti,hwmods = "timer11"; | ||
390 | ti,timer-pwm; | ||
391 | }; | ||
392 | |||
393 | timer13: timer@48828000 { | ||
394 | compatible = "ti,omap5430-timer"; | ||
395 | reg = <0x48828000 0x80>; | ||
396 | ti,hwmods = "timer13"; | ||
397 | status = "disabled"; | ||
398 | }; | ||
399 | |||
400 | timer14: timer@4882a000 { | ||
401 | compatible = "ti,omap5430-timer"; | ||
402 | reg = <0x4882a000 0x80>; | ||
403 | ti,hwmods = "timer14"; | ||
404 | status = "disabled"; | ||
405 | }; | ||
406 | |||
407 | timer15: timer@4882c000 { | ||
408 | compatible = "ti,omap5430-timer"; | ||
409 | reg = <0x4882c000 0x80>; | ||
410 | ti,hwmods = "timer15"; | ||
411 | status = "disabled"; | ||
412 | }; | ||
413 | |||
414 | timer16: timer@4882e000 { | ||
415 | compatible = "ti,omap5430-timer"; | ||
416 | reg = <0x4882e000 0x80>; | ||
417 | ti,hwmods = "timer16"; | ||
418 | status = "disabled"; | ||
419 | }; | ||
420 | |||
421 | wdt2: wdt@4ae14000 { | ||
422 | compatible = "ti,omap4-wdt"; | ||
423 | reg = <0x4ae14000 0x80>; | ||
424 | interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; | ||
425 | ti,hwmods = "wd_timer2"; | ||
426 | }; | ||
427 | |||
428 | i2c1: i2c@48070000 { | ||
429 | compatible = "ti,omap4-i2c"; | ||
430 | reg = <0x48070000 0x100>; | ||
431 | interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; | ||
432 | #address-cells = <1>; | ||
433 | #size-cells = <0>; | ||
434 | ti,hwmods = "i2c1"; | ||
435 | status = "disabled"; | ||
436 | }; | ||
437 | |||
438 | i2c2: i2c@48072000 { | ||
439 | compatible = "ti,omap4-i2c"; | ||
440 | reg = <0x48072000 0x100>; | ||
441 | interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; | ||
442 | #address-cells = <1>; | ||
443 | #size-cells = <0>; | ||
444 | ti,hwmods = "i2c2"; | ||
445 | status = "disabled"; | ||
446 | }; | ||
447 | |||
448 | i2c3: i2c@48060000 { | ||
449 | compatible = "ti,omap4-i2c"; | ||
450 | reg = <0x48060000 0x100>; | ||
451 | interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; | ||
452 | #address-cells = <1>; | ||
453 | #size-cells = <0>; | ||
454 | ti,hwmods = "i2c3"; | ||
455 | status = "disabled"; | ||
456 | }; | ||
457 | |||
458 | i2c4: i2c@4807a000 { | ||
459 | compatible = "ti,omap4-i2c"; | ||
460 | reg = <0x4807a000 0x100>; | ||
461 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | ||
462 | #address-cells = <1>; | ||
463 | #size-cells = <0>; | ||
464 | ti,hwmods = "i2c4"; | ||
465 | status = "disabled"; | ||
466 | }; | ||
467 | |||
468 | i2c5: i2c@4807c000 { | ||
469 | compatible = "ti,omap4-i2c"; | ||
470 | reg = <0x4807c000 0x100>; | ||
471 | interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; | ||
472 | #address-cells = <1>; | ||
473 | #size-cells = <0>; | ||
474 | ti,hwmods = "i2c5"; | ||
475 | status = "disabled"; | ||
476 | }; | ||
477 | |||
478 | mmc1: mmc@4809c000 { | ||
479 | compatible = "ti,omap4-hsmmc"; | ||
480 | reg = <0x4809c000 0x400>; | ||
481 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
482 | ti,hwmods = "mmc1"; | ||
483 | ti,dual-volt; | ||
484 | ti,needs-special-reset; | ||
485 | dmas = <&sdma 61>, <&sdma 62>; | ||
486 | dma-names = "tx", "rx"; | ||
487 | status = "disabled"; | ||
488 | }; | ||
489 | |||
490 | mmc2: mmc@480b4000 { | ||
491 | compatible = "ti,omap4-hsmmc"; | ||
492 | reg = <0x480b4000 0x400>; | ||
493 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; | ||
494 | ti,hwmods = "mmc2"; | ||
495 | ti,needs-special-reset; | ||
496 | dmas = <&sdma 47>, <&sdma 48>; | ||
497 | dma-names = "tx", "rx"; | ||
498 | status = "disabled"; | ||
499 | }; | ||
500 | |||
501 | mmc3: mmc@480ad000 { | ||
502 | compatible = "ti,omap4-hsmmc"; | ||
503 | reg = <0x480ad000 0x400>; | ||
504 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; | ||
505 | ti,hwmods = "mmc3"; | ||
506 | ti,needs-special-reset; | ||
507 | dmas = <&sdma 77>, <&sdma 78>; | ||
508 | dma-names = "tx", "rx"; | ||
509 | status = "disabled"; | ||
510 | }; | ||
511 | |||
512 | mmc4: mmc@480d1000 { | ||
513 | compatible = "ti,omap4-hsmmc"; | ||
514 | reg = <0x480d1000 0x400>; | ||
515 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | ||
516 | ti,hwmods = "mmc4"; | ||
517 | ti,needs-special-reset; | ||
518 | dmas = <&sdma 57>, <&sdma 58>; | ||
519 | dma-names = "tx", "rx"; | ||
520 | status = "disabled"; | ||
521 | }; | ||
522 | |||
523 | mcspi1: spi@48098000 { | ||
524 | compatible = "ti,omap4-mcspi"; | ||
525 | reg = <0x48098000 0x200>; | ||
526 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
527 | #address-cells = <1>; | ||
528 | #size-cells = <0>; | ||
529 | ti,hwmods = "mcspi1"; | ||
530 | ti,spi-num-cs = <4>; | ||
531 | dmas = <&sdma 35>, | ||
532 | <&sdma 36>, | ||
533 | <&sdma 37>, | ||
534 | <&sdma 38>, | ||
535 | <&sdma 39>, | ||
536 | <&sdma 40>, | ||
537 | <&sdma 41>, | ||
538 | <&sdma 42>; | ||
539 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
540 | "tx2", "rx2", "tx3", "rx3"; | ||
541 | status = "disabled"; | ||
542 | }; | ||
543 | |||
544 | mcspi2: spi@4809a000 { | ||
545 | compatible = "ti,omap4-mcspi"; | ||
546 | reg = <0x4809a000 0x200>; | ||
547 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; | ||
548 | #address-cells = <1>; | ||
549 | #size-cells = <0>; | ||
550 | ti,hwmods = "mcspi2"; | ||
551 | ti,spi-num-cs = <2>; | ||
552 | dmas = <&sdma 43>, | ||
553 | <&sdma 44>, | ||
554 | <&sdma 45>, | ||
555 | <&sdma 46>; | ||
556 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
557 | status = "disabled"; | ||
558 | }; | ||
559 | |||
560 | mcspi3: spi@480b8000 { | ||
561 | compatible = "ti,omap4-mcspi"; | ||
562 | reg = <0x480b8000 0x200>; | ||
563 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | ||
564 | #address-cells = <1>; | ||
565 | #size-cells = <0>; | ||
566 | ti,hwmods = "mcspi3"; | ||
567 | ti,spi-num-cs = <2>; | ||
568 | dmas = <&sdma 15>, <&sdma 16>; | ||
569 | dma-names = "tx0", "rx0"; | ||
570 | status = "disabled"; | ||
571 | }; | ||
572 | |||
573 | mcspi4: spi@480ba000 { | ||
574 | compatible = "ti,omap4-mcspi"; | ||
575 | reg = <0x480ba000 0x200>; | ||
576 | interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; | ||
577 | #address-cells = <1>; | ||
578 | #size-cells = <0>; | ||
579 | ti,hwmods = "mcspi4"; | ||
580 | ti,spi-num-cs = <1>; | ||
581 | dmas = <&sdma 70>, <&sdma 71>; | ||
582 | dma-names = "tx0", "rx0"; | ||
583 | status = "disabled"; | ||
584 | }; | ||
585 | }; | ||
586 | }; | ||
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index caadc0257342..a73eeb5f258f 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi | |||
@@ -49,6 +49,12 @@ | |||
49 | reg = <0x10000000 0x100>; | 49 | reg = <0x10000000 0x100>; |
50 | }; | 50 | }; |
51 | 51 | ||
52 | mipi_phy: video-phy@10020710 { | ||
53 | compatible = "samsung,s5pv210-mipi-video-phy"; | ||
54 | reg = <0x10020710 8>; | ||
55 | #phy-cells = <1>; | ||
56 | }; | ||
57 | |||
52 | pd_mfc: mfc-power-domain@10023C40 { | 58 | pd_mfc: mfc-power-domain@10023C40 { |
53 | compatible = "samsung,exynos4210-pd"; | 59 | compatible = "samsung,exynos4210-pd"; |
54 | reg = <0x10023C40 0x20>; | 60 | reg = <0x10023C40 0x20>; |
@@ -161,6 +167,8 @@ | |||
161 | clock-names = "csis", "sclk_csis"; | 167 | clock-names = "csis", "sclk_csis"; |
162 | bus-width = <4>; | 168 | bus-width = <4>; |
163 | samsung,power-domain = <&pd_cam>; | 169 | samsung,power-domain = <&pd_cam>; |
170 | phys = <&mipi_phy 0>; | ||
171 | phy-names = "csis"; | ||
164 | status = "disabled"; | 172 | status = "disabled"; |
165 | #address-cells = <1>; | 173 | #address-cells = <1>; |
166 | #size-cells = <0>; | 174 | #size-cells = <0>; |
@@ -174,6 +182,8 @@ | |||
174 | clock-names = "csis", "sclk_csis"; | 182 | clock-names = "csis", "sclk_csis"; |
175 | bus-width = <2>; | 183 | bus-width = <2>; |
176 | samsung,power-domain = <&pd_cam>; | 184 | samsung,power-domain = <&pd_cam>; |
185 | phys = <&mipi_phy 2>; | ||
186 | phy-names = "csis"; | ||
177 | status = "disabled"; | 187 | status = "disabled"; |
178 | #address-cells = <1>; | 188 | #address-cells = <1>; |
179 | #size-cells = <0>; | 189 | #size-cells = <0>; |
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index 46378fee2a13..1a12fb23767c 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts | |||
@@ -32,13 +32,20 @@ | |||
32 | bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; | 32 | bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc"; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | mmc_reg: voltage-regulator { | 35 | regulators { |
36 | compatible = "regulator-fixed"; | 36 | compatible = "simple-bus"; |
37 | regulator-name = "VMEM_VDD_2.8V"; | 37 | #address-cells = <1>; |
38 | regulator-min-microvolt = <2800000>; | 38 | #size-cells = <0>; |
39 | regulator-max-microvolt = <2800000>; | 39 | |
40 | gpio = <&gpx1 1 0>; | 40 | mmc_reg: regulator@0 { |
41 | enable-active-high; | 41 | compatible = "regulator-fixed"; |
42 | reg = <0>; | ||
43 | regulator-name = "VMEM_VDD_2.8V"; | ||
44 | regulator-min-microvolt = <2800000>; | ||
45 | regulator-max-microvolt = <2800000>; | ||
46 | gpio = <&gpx1 1 0>; | ||
47 | enable-active-high; | ||
48 | }; | ||
42 | }; | 49 | }; |
43 | 50 | ||
44 | tmu@100C0000 { | 51 | tmu@100C0000 { |
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts index 8768b03702e5..d65984c440f6 100644 --- a/arch/arm/boot/dts/exynos4412-origen.dts +++ b/arch/arm/boot/dts/exynos4412-origen.dts | |||
@@ -32,13 +32,20 @@ | |||
32 | reg = <0x0203F000 0x1000>; | 32 | reg = <0x0203F000 0x1000>; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | mmc_reg: voltage-regulator { | 35 | regulators { |
36 | compatible = "regulator-fixed"; | 36 | compatible = "simple-bus"; |
37 | regulator-name = "VMEM_VDD_2.8V"; | 37 | #address-cells = <1>; |
38 | regulator-min-microvolt = <2800000>; | 38 | #size-cells = <0>; |
39 | regulator-max-microvolt = <2800000>; | 39 | |
40 | gpio = <&gpx1 1 0>; | 40 | mmc_reg: regulator@0 { |
41 | enable-active-high; | 41 | compatible = "regulator-fixed"; |
42 | reg = <0>; | ||
43 | regulator-name = "VMEM_VDD_2.8V"; | ||
44 | regulator-min-microvolt = <2800000>; | ||
45 | regulator-max-microvolt = <2800000>; | ||
46 | gpio = <&gpx1 1 0>; | ||
47 | enable-active-high; | ||
48 | }; | ||
42 | }; | 49 | }; |
43 | 50 | ||
44 | pinctrl@11000000 { | 51 | pinctrl@11000000 { |
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index cee55fa33731..684527087aa4 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts | |||
@@ -324,7 +324,14 @@ | |||
324 | }; | 324 | }; |
325 | 325 | ||
326 | i2c@12C80000 { | 326 | i2c@12C80000 { |
327 | status = "disabled"; | 327 | samsung,i2c-sda-delay = <100>; |
328 | samsung,i2c-max-bus-freq = <66000>; | ||
329 | samsung,i2c-slave-addr = <0x50>; | ||
330 | |||
331 | hdmiddc@50 { | ||
332 | compatible = "samsung,exynos4210-hdmiddc"; | ||
333 | reg = <0x50>; | ||
334 | }; | ||
328 | }; | 335 | }; |
329 | 336 | ||
330 | i2c@12C90000 { | 337 | i2c@12C90000 { |
@@ -362,6 +369,17 @@ | |||
362 | status = "disabled"; | 369 | status = "disabled"; |
363 | }; | 370 | }; |
364 | 371 | ||
372 | i2c@12CE0000 { | ||
373 | samsung,i2c-sda-delay = <100>; | ||
374 | samsung,i2c-max-bus-freq = <66000>; | ||
375 | samsung,i2c-slave-addr = <0x38>; | ||
376 | |||
377 | hdmiphy@38 { | ||
378 | compatible = "samsung,exynos4212-hdmiphy"; | ||
379 | reg = <0x38>; | ||
380 | }; | ||
381 | }; | ||
382 | |||
365 | i2c@121D0000 { | 383 | i2c@121D0000 { |
366 | status = "disabled"; | 384 | status = "disabled"; |
367 | }; | 385 | }; |
@@ -412,6 +430,10 @@ | |||
412 | status = "disabled"; | 430 | status = "disabled"; |
413 | }; | 431 | }; |
414 | 432 | ||
433 | i2s0: i2s@03830000 { | ||
434 | status = "okay"; | ||
435 | }; | ||
436 | |||
415 | spi_0: spi@12d20000 { | 437 | spi_0: spi@12d20000 { |
416 | status = "disabled"; | 438 | status = "disabled"; |
417 | }; | 439 | }; |
@@ -482,13 +504,15 @@ | |||
482 | #address-cells = <1>; | 504 | #address-cells = <1>; |
483 | #size-cells = <0>; | 505 | #size-cells = <0>; |
484 | 506 | ||
485 | main_dc_reg: fixedregulator@1 { | 507 | main_dc_reg: regulator@0 { |
486 | compatible = "regulator-fixed"; | 508 | compatible = "regulator-fixed"; |
509 | reg = <0>; | ||
487 | regulator-name = "MAIN_DC"; | 510 | regulator-name = "MAIN_DC"; |
488 | }; | 511 | }; |
489 | 512 | ||
490 | mmc_reg: voltage-regulator { | 513 | mmc_reg: regulator@1 { |
491 | compatible = "regulator-fixed"; | 514 | compatible = "regulator-fixed"; |
515 | reg = <1>; | ||
492 | regulator-name = "VDD_33ON_2.8V"; | 516 | regulator-name = "VDD_33ON_2.8V"; |
493 | regulator-min-microvolt = <2800000>; | 517 | regulator-min-microvolt = <2800000>; |
494 | regulator-max-microvolt = <2800000>; | 518 | regulator-max-microvolt = <2800000>; |
@@ -496,8 +520,9 @@ | |||
496 | enable-active-high; | 520 | enable-active-high; |
497 | }; | 521 | }; |
498 | 522 | ||
499 | reg_hdmi_en: fixedregulator@0 { | 523 | reg_hdmi_en: regulator@2 { |
500 | compatible = "regulator-fixed"; | 524 | compatible = "regulator-fixed"; |
525 | reg = <2>; | ||
501 | regulator-name = "hdmi-en"; | 526 | regulator-name = "hdmi-en"; |
502 | }; | 527 | }; |
503 | }; | 528 | }; |
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 2538b329f2ce..f86d56760a45 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts | |||
@@ -231,14 +231,6 @@ | |||
231 | status = "okay"; | 231 | status = "okay"; |
232 | }; | 232 | }; |
233 | 233 | ||
234 | i2s1: i2s@12D60000 { | ||
235 | status = "disabled"; | ||
236 | }; | ||
237 | |||
238 | i2s2: i2s@12D70000 { | ||
239 | status = "disabled"; | ||
240 | }; | ||
241 | |||
242 | sound { | 234 | sound { |
243 | compatible = "samsung,smdk-wm8994"; | 235 | compatible = "samsung,smdk-wm8994"; |
244 | 236 | ||
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index bbac42a78ce5..9db5047812f3 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi | |||
@@ -422,6 +422,7 @@ | |||
422 | 422 | ||
423 | i2s0: i2s@03830000 { | 423 | i2s0: i2s@03830000 { |
424 | compatible = "samsung,s5pv210-i2s"; | 424 | compatible = "samsung,s5pv210-i2s"; |
425 | status = "disabled"; | ||
425 | reg = <0x03830000 0x100>; | 426 | reg = <0x03830000 0x100>; |
426 | dmas = <&pdma0 10 | 427 | dmas = <&pdma0 10 |
427 | &pdma0 9 | 428 | &pdma0 9 |
@@ -438,6 +439,7 @@ | |||
438 | 439 | ||
439 | i2s1: i2s@12D60000 { | 440 | i2s1: i2s@12D60000 { |
440 | compatible = "samsung,s3c6410-i2s"; | 441 | compatible = "samsung,s3c6410-i2s"; |
442 | status = "disabled"; | ||
441 | reg = <0x12D60000 0x100>; | 443 | reg = <0x12D60000 0x100>; |
442 | dmas = <&pdma1 12 | 444 | dmas = <&pdma1 12 |
443 | &pdma1 11>; | 445 | &pdma1 11>; |
@@ -450,6 +452,7 @@ | |||
450 | 452 | ||
451 | i2s2: i2s@12D70000 { | 453 | i2s2: i2s@12D70000 { |
452 | compatible = "samsung,s3c6410-i2s"; | 454 | compatible = "samsung,s3c6410-i2s"; |
455 | status = "disabled"; | ||
453 | reg = <0x12D70000 0x100>; | 456 | reg = <0x12D70000 0x100>; |
454 | dmas = <&pdma0 12 | 457 | dmas = <&pdma0 12 |
455 | &pdma0 11>; | 458 | &pdma0 11>; |
@@ -615,16 +618,18 @@ | |||
615 | compatible = "samsung,exynos4212-hdmi"; | 618 | compatible = "samsung,exynos4212-hdmi"; |
616 | reg = <0x14530000 0x70000>; | 619 | reg = <0x14530000 0x70000>; |
617 | interrupts = <0 95 0>; | 620 | interrupts = <0 95 0>; |
618 | clocks = <&clock 333>, <&clock 136>, <&clock 137>, | 621 | clocks = <&clock 344>, <&clock 136>, <&clock 137>, |
619 | <&clock 333>, <&clock 333>; | 622 | <&clock 159>, <&clock 1024>; |
620 | clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", | 623 | clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", |
621 | "sclk_hdmiphy", "hdmiphy"; | 624 | "sclk_hdmiphy", "mout_hdmi"; |
622 | }; | 625 | }; |
623 | 626 | ||
624 | mixer { | 627 | mixer { |
625 | compatible = "samsung,exynos5250-mixer"; | 628 | compatible = "samsung,exynos5250-mixer"; |
626 | reg = <0x14450000 0x10000>; | 629 | reg = <0x14450000 0x10000>; |
627 | interrupts = <0 94 0>; | 630 | interrupts = <0 94 0>; |
631 | clocks = <&clock 343>, <&clock 136>; | ||
632 | clock-names = "mixer", "sclk_hdmi"; | ||
628 | }; | 633 | }; |
629 | 634 | ||
630 | dp_phy: video-phy@10040720 { | 635 | dp_phy: video-phy@10040720 { |
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts index bafba25ba7c2..79524c74c603 100644 --- a/arch/arm/boot/dts/exynos5420-smdk5420.dts +++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts | |||
@@ -61,4 +61,30 @@ | |||
61 | }; | 61 | }; |
62 | }; | 62 | }; |
63 | 63 | ||
64 | pinctrl@13400000 { | ||
65 | hdmi_hpd_irq: hdmi-hpd-irq { | ||
66 | samsung,pins = "gpx3-7"; | ||
67 | samsung,pin-function = <0>; | ||
68 | samsung,pin-pud = <1>; | ||
69 | samsung,pin-drv = <0>; | ||
70 | }; | ||
71 | }; | ||
72 | |||
73 | hdmi@14530000 { | ||
74 | status = "okay"; | ||
75 | hpd-gpio = <&gpx3 7 0>; | ||
76 | pinctrl-names = "default"; | ||
77 | pinctrl-0 = <&hdmi_hpd_irq>; | ||
78 | }; | ||
79 | |||
80 | i2c_2: i2c@12C80000 { | ||
81 | samsung,i2c-sda-delay = <100>; | ||
82 | samsung,i2c-max-bus-freq = <66000>; | ||
83 | status = "okay"; | ||
84 | |||
85 | hdmiddc@50 { | ||
86 | compatible = "samsung,exynos4210-hdmiddc"; | ||
87 | reg = <0x50>; | ||
88 | }; | ||
89 | }; | ||
64 | }; | 90 | }; |
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index d537cd704e19..09aa06cb3d3a 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi | |||
@@ -27,6 +27,10 @@ | |||
27 | pinctrl2 = &pinctrl_2; | 27 | pinctrl2 = &pinctrl_2; |
28 | pinctrl3 = &pinctrl_3; | 28 | pinctrl3 = &pinctrl_3; |
29 | pinctrl4 = &pinctrl_4; | 29 | pinctrl4 = &pinctrl_4; |
30 | i2c0 = &i2c_0; | ||
31 | i2c1 = &i2c_1; | ||
32 | i2c2 = &i2c_2; | ||
33 | i2c3 = &i2c_3; | ||
30 | }; | 34 | }; |
31 | 35 | ||
32 | cpus { | 36 | cpus { |
@@ -235,4 +239,75 @@ | |||
235 | io-channel-ranges; | 239 | io-channel-ranges; |
236 | status = "disabled"; | 240 | status = "disabled"; |
237 | }; | 241 | }; |
242 | |||
243 | i2c_0: i2c@12C60000 { | ||
244 | compatible = "samsung,s3c2440-i2c"; | ||
245 | reg = <0x12C60000 0x100>; | ||
246 | interrupts = <0 56 0>; | ||
247 | #address-cells = <1>; | ||
248 | #size-cells = <0>; | ||
249 | clocks = <&clock 261>; | ||
250 | clock-names = "i2c"; | ||
251 | pinctrl-names = "default"; | ||
252 | pinctrl-0 = <&i2c0_bus>; | ||
253 | status = "disabled"; | ||
254 | }; | ||
255 | |||
256 | i2c_1: i2c@12C70000 { | ||
257 | compatible = "samsung,s3c2440-i2c"; | ||
258 | reg = <0x12C70000 0x100>; | ||
259 | interrupts = <0 57 0>; | ||
260 | #address-cells = <1>; | ||
261 | #size-cells = <0>; | ||
262 | clocks = <&clock 262>; | ||
263 | clock-names = "i2c"; | ||
264 | pinctrl-names = "default"; | ||
265 | pinctrl-0 = <&i2c1_bus>; | ||
266 | status = "disabled"; | ||
267 | }; | ||
268 | |||
269 | i2c_2: i2c@12C80000 { | ||
270 | compatible = "samsung,s3c2440-i2c"; | ||
271 | reg = <0x12C80000 0x100>; | ||
272 | interrupts = <0 58 0>; | ||
273 | #address-cells = <1>; | ||
274 | #size-cells = <0>; | ||
275 | clocks = <&clock 263>; | ||
276 | clock-names = "i2c"; | ||
277 | pinctrl-names = "default"; | ||
278 | pinctrl-0 = <&i2c2_bus>; | ||
279 | status = "disabled"; | ||
280 | }; | ||
281 | |||
282 | i2c_3: i2c@12C90000 { | ||
283 | compatible = "samsung,s3c2440-i2c"; | ||
284 | reg = <0x12C90000 0x100>; | ||
285 | interrupts = <0 59 0>; | ||
286 | #address-cells = <1>; | ||
287 | #size-cells = <0>; | ||
288 | clocks = <&clock 264>; | ||
289 | clock-names = "i2c"; | ||
290 | pinctrl-names = "default"; | ||
291 | pinctrl-0 = <&i2c3_bus>; | ||
292 | status = "disabled"; | ||
293 | }; | ||
294 | |||
295 | hdmi@14530000 { | ||
296 | compatible = "samsung,exynos4212-hdmi"; | ||
297 | reg = <0x14530000 0x70000>; | ||
298 | interrupts = <0 95 0>; | ||
299 | clocks = <&clock 413>, <&clock 143>, <&clock 768>, | ||
300 | <&clock 158>, <&clock 640>; | ||
301 | clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", | ||
302 | "sclk_hdmiphy", "mout_hdmi"; | ||
303 | status = "disabled"; | ||
304 | }; | ||
305 | |||
306 | mixer@14450000 { | ||
307 | compatible = "samsung,exynos5420-mixer"; | ||
308 | reg = <0x14450000 0x10000>; | ||
309 | interrupts = <0 94 0>; | ||
310 | clocks = <&clock 431>, <&clock 143>; | ||
311 | clock-names = "mixer", "sclk_hdmi"; | ||
312 | }; | ||
238 | }; | 313 | }; |
diff --git a/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/arch/arm/boot/dts/exynos5440-ssdk5440.dts index a7cb84884cfb..d58cb787061a 100644 --- a/arch/arm/boot/dts/exynos5440-ssdk5440.dts +++ b/arch/arm/boot/dts/exynos5440-ssdk5440.dts | |||
@@ -68,9 +68,11 @@ | |||
68 | 68 | ||
69 | pcie@290000 { | 69 | pcie@290000 { |
70 | reset-gpio = <&pin_ctrl 5 0>; | 70 | reset-gpio = <&pin_ctrl 5 0>; |
71 | status = "okay"; | ||
71 | }; | 72 | }; |
72 | 73 | ||
73 | pcie@2a0000 { | 74 | pcie@2a0000 { |
74 | reset-gpio = <&pin_ctrl 22 0>; | 75 | reset-gpio = <&pin_ctrl 22 0>; |
76 | status = "okay"; | ||
75 | }; | 77 | }; |
76 | }; | 78 | }; |
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi index 5d6cf4965d6e..8da107088ce4 100644 --- a/arch/arm/boot/dts/exynos5440.dtsi +++ b/arch/arm/boot/dts/exynos5440.dtsi | |||
@@ -276,6 +276,7 @@ | |||
276 | interrupt-map-mask = <0 0 0 0>; | 276 | interrupt-map-mask = <0 0 0 0>; |
277 | interrupt-map = <0x0 0 &gic 53>; | 277 | interrupt-map = <0x0 0 &gic 53>; |
278 | num-lanes = <4>; | 278 | num-lanes = <4>; |
279 | status = "disabled"; | ||
279 | }; | 280 | }; |
280 | 281 | ||
281 | pcie@2a0000 { | 282 | pcie@2a0000 { |
@@ -296,5 +297,6 @@ | |||
296 | interrupt-map-mask = <0 0 0 0>; | 297 | interrupt-map-mask = <0 0 0 0>; |
297 | interrupt-map = <0x0 0 &gic 56>; | 298 | interrupt-map = <0x0 0 &gic 56>; |
298 | num-lanes = <4>; | 299 | num-lanes = <4>; |
300 | status = "disabled"; | ||
299 | }; | 301 | }; |
300 | }; | 302 | }; |
diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts index 185c7c01102a..1f026adefd45 100644 --- a/arch/arm/boot/dts/imx23-evk.dts +++ b/arch/arm/boot/dts/imx23-evk.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx23.dtsi" | 13 | #include "imx23.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Freescale i.MX23 Evaluation Kit"; | 16 | model = "Freescale i.MX23 Evaluation Kit"; |
@@ -45,14 +45,14 @@ | |||
45 | hog_pins_a: hog@0 { | 45 | hog_pins_a: hog@0 { |
46 | reg = <0>; | 46 | reg = <0>; |
47 | fsl,pinmux-ids = < | 47 | fsl,pinmux-ids = < |
48 | 0x1123 /* MX23_PAD_LCD_RESET__GPIO_1_18 */ | 48 | MX23_PAD_LCD_RESET__GPIO_1_18 |
49 | 0x11d3 /* MX23_PAD_PWM3__GPIO_1_29 */ | 49 | MX23_PAD_PWM3__GPIO_1_29 |
50 | 0x11e3 /* MX23_PAD_PWM4__GPIO_1_30 */ | 50 | MX23_PAD_PWM4__GPIO_1_30 |
51 | 0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */ | 51 | MX23_PAD_SSP1_DETECT__SSP1_DETECT |
52 | >; | 52 | >; |
53 | fsl,drive-strength = <0>; | 53 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
54 | fsl,voltage = <1>; | 54 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
55 | fsl,pull-up = <0>; | 55 | fsl,pull-up = <MXS_PULL_DISABLE>; |
56 | }; | 56 | }; |
57 | }; | 57 | }; |
58 | 58 | ||
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts index fc766ae12e24..526bfdbd87f9 100644 --- a/arch/arm/boot/dts/imx23-olinuxino.dts +++ b/arch/arm/boot/dts/imx23-olinuxino.dts | |||
@@ -12,7 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | /dts-v1/; | 14 | /dts-v1/; |
15 | /include/ "imx23.dtsi" | 15 | #include "imx23.dtsi" |
16 | 16 | ||
17 | / { | 17 | / { |
18 | model = "i.MX23 Olinuxino Low Cost Board"; | 18 | model = "i.MX23 Olinuxino Low Cost Board"; |
@@ -40,21 +40,21 @@ | |||
40 | hog_pins_a: hog@0 { | 40 | hog_pins_a: hog@0 { |
41 | reg = <0>; | 41 | reg = <0>; |
42 | fsl,pinmux-ids = < | 42 | fsl,pinmux-ids = < |
43 | 0x0113 /* MX23_PAD_GPMI_ALE__GPIO_0_17 */ | 43 | MX23_PAD_GPMI_ALE__GPIO_0_17 |
44 | >; | 44 | >; |
45 | fsl,drive-strength = <0>; | 45 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
46 | fsl,voltage = <1>; | 46 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
47 | fsl,pull-up = <0>; | 47 | fsl,pull-up = <MXS_PULL_DISABLE>; |
48 | }; | 48 | }; |
49 | 49 | ||
50 | led_pin_gpio2_1: led_gpio2_1@0 { | 50 | led_pin_gpio2_1: led_gpio2_1@0 { |
51 | reg = <0>; | 51 | reg = <0>; |
52 | fsl,pinmux-ids = < | 52 | fsl,pinmux-ids = < |
53 | 0x2013 /* MX23_PAD_SSP1_DETECT__GPIO_2_1 */ | 53 | MX23_PAD_SSP1_DETECT__GPIO_2_1 |
54 | >; | 54 | >; |
55 | fsl,drive-strength = <0>; | 55 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
56 | fsl,voltage = <1>; | 56 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
57 | fsl,pull-up = <0>; | 57 | fsl,pull-up = <MXS_PULL_DISABLE>; |
58 | }; | 58 | }; |
59 | }; | 59 | }; |
60 | 60 | ||
diff --git a/arch/arm/boot/dts/imx23-pinfunc.h b/arch/arm/boot/dts/imx23-pinfunc.h new file mode 100644 index 000000000000..5c0f32ca3a93 --- /dev/null +++ b/arch/arm/boot/dts/imx23-pinfunc.h | |||
@@ -0,0 +1,333 @@ | |||
1 | /* | ||
2 | * Header providing constants for i.MX23 pinctrl bindings. | ||
3 | * | ||
4 | * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de> | ||
5 | * | ||
6 | * The code contained herein is licensed under the GNU General Public | ||
7 | * License. You may obtain a copy of the GNU General Public License | ||
8 | * Version 2 at the following locations: | ||
9 | * | ||
10 | * http://www.opensource.org/licenses/gpl-license.html | ||
11 | * http://www.gnu.org/copyleft/gpl.html | ||
12 | */ | ||
13 | |||
14 | #ifndef __DT_BINDINGS_MX23_PINCTRL_H__ | ||
15 | #define __DT_BINDINGS_MX23_PINCTRL_H__ | ||
16 | |||
17 | #include "mxs-pinfunc.h" | ||
18 | |||
19 | #define MX23_PAD_GPMI_D00__GPMI_D00 0x0000 | ||
20 | #define MX23_PAD_GPMI_D01__GPMI_D01 0x0010 | ||
21 | #define MX23_PAD_GPMI_D02__GPMI_D02 0x0020 | ||
22 | #define MX23_PAD_GPMI_D03__GPMI_D03 0x0030 | ||
23 | #define MX23_PAD_GPMI_D04__GPMI_D04 0x0040 | ||
24 | #define MX23_PAD_GPMI_D05__GPMI_D05 0x0050 | ||
25 | #define MX23_PAD_GPMI_D06__GPMI_D06 0x0060 | ||
26 | #define MX23_PAD_GPMI_D07__GPMI_D07 0x0070 | ||
27 | #define MX23_PAD_GPMI_D08__GPMI_D08 0x0080 | ||
28 | #define MX23_PAD_GPMI_D09__GPMI_D09 0x0090 | ||
29 | #define MX23_PAD_GPMI_D10__GPMI_D10 0x00a0 | ||
30 | #define MX23_PAD_GPMI_D11__GPMI_D11 0x00b0 | ||
31 | #define MX23_PAD_GPMI_D12__GPMI_D12 0x00c0 | ||
32 | #define MX23_PAD_GPMI_D13__GPMI_D13 0x00d0 | ||
33 | #define MX23_PAD_GPMI_D14__GPMI_D14 0x00e0 | ||
34 | #define MX23_PAD_GPMI_D15__GPMI_D15 0x00f0 | ||
35 | #define MX23_PAD_GPMI_CLE__GPMI_CLE 0x0100 | ||
36 | #define MX23_PAD_GPMI_ALE__GPMI_ALE 0x0110 | ||
37 | #define MX23_PAD_GPMI_CE2N__GPMI_CE2N 0x0120 | ||
38 | #define MX23_PAD_GPMI_RDY0__GPMI_RDY0 0x0130 | ||
39 | #define MX23_PAD_GPMI_RDY1__GPMI_RDY1 0x0140 | ||
40 | #define MX23_PAD_GPMI_RDY2__GPMI_RDY2 0x0150 | ||
41 | #define MX23_PAD_GPMI_RDY3__GPMI_RDY3 0x0160 | ||
42 | #define MX23_PAD_GPMI_WPN__GPMI_WPN 0x0170 | ||
43 | #define MX23_PAD_GPMI_WRN__GPMI_WRN 0x0180 | ||
44 | #define MX23_PAD_GPMI_RDN__GPMI_RDN 0x0190 | ||
45 | #define MX23_PAD_AUART1_CTS__AUART1_CTS 0x01a0 | ||
46 | #define MX23_PAD_AUART1_RTS__AUART1_RTS 0x01b0 | ||
47 | #define MX23_PAD_AUART1_RX__AUART1_RX 0x01c0 | ||
48 | #define MX23_PAD_AUART1_TX__AUART1_TX 0x01d0 | ||
49 | #define MX23_PAD_I2C_SCL__I2C_SCL 0x01e0 | ||
50 | #define MX23_PAD_I2C_SDA__I2C_SDA 0x01f0 | ||
51 | #define MX23_PAD_LCD_D00__LCD_D00 0x1000 | ||
52 | #define MX23_PAD_LCD_D01__LCD_D01 0x1010 | ||
53 | #define MX23_PAD_LCD_D02__LCD_D02 0x1020 | ||
54 | #define MX23_PAD_LCD_D03__LCD_D03 0x1030 | ||
55 | #define MX23_PAD_LCD_D04__LCD_D04 0x1040 | ||
56 | #define MX23_PAD_LCD_D05__LCD_D05 0x1050 | ||
57 | #define MX23_PAD_LCD_D06__LCD_D06 0x1060 | ||
58 | #define MX23_PAD_LCD_D07__LCD_D07 0x1070 | ||
59 | #define MX23_PAD_LCD_D08__LCD_D08 0x1080 | ||
60 | #define MX23_PAD_LCD_D09__LCD_D09 0x1090 | ||
61 | #define MX23_PAD_LCD_D10__LCD_D10 0x10a0 | ||
62 | #define MX23_PAD_LCD_D11__LCD_D11 0x10b0 | ||
63 | #define MX23_PAD_LCD_D12__LCD_D12 0x10c0 | ||
64 | #define MX23_PAD_LCD_D13__LCD_D13 0x10d0 | ||
65 | #define MX23_PAD_LCD_D14__LCD_D14 0x10e0 | ||
66 | #define MX23_PAD_LCD_D15__LCD_D15 0x10f0 | ||
67 | #define MX23_PAD_LCD_D16__LCD_D16 0x1100 | ||
68 | #define MX23_PAD_LCD_D17__LCD_D17 0x1110 | ||
69 | #define MX23_PAD_LCD_RESET__LCD_RESET 0x1120 | ||
70 | #define MX23_PAD_LCD_RS__LCD_RS 0x1130 | ||
71 | #define MX23_PAD_LCD_WR__LCD_WR 0x1140 | ||
72 | #define MX23_PAD_LCD_CS__LCD_CS 0x1150 | ||
73 | #define MX23_PAD_LCD_DOTCK__LCD_DOTCK 0x1160 | ||
74 | #define MX23_PAD_LCD_ENABLE__LCD_ENABLE 0x1170 | ||
75 | #define MX23_PAD_LCD_HSYNC__LCD_HSYNC 0x1180 | ||
76 | #define MX23_PAD_LCD_VSYNC__LCD_VSYNC 0x1190 | ||
77 | #define MX23_PAD_PWM0__PWM0 0x11a0 | ||
78 | #define MX23_PAD_PWM1__PWM1 0x11b0 | ||
79 | #define MX23_PAD_PWM2__PWM2 0x11c0 | ||
80 | #define MX23_PAD_PWM3__PWM3 0x11d0 | ||
81 | #define MX23_PAD_PWM4__PWM4 0x11e0 | ||
82 | #define MX23_PAD_SSP1_CMD__SSP1_CMD 0x2000 | ||
83 | #define MX23_PAD_SSP1_DETECT__SSP1_DETECT 0x2010 | ||
84 | #define MX23_PAD_SSP1_DATA0__SSP1_DATA0 0x2020 | ||
85 | #define MX23_PAD_SSP1_DATA1__SSP1_DATA1 0x2030 | ||
86 | #define MX23_PAD_SSP1_DATA2__SSP1_DATA2 0x2040 | ||
87 | #define MX23_PAD_SSP1_DATA3__SSP1_DATA3 0x2050 | ||
88 | #define MX23_PAD_SSP1_SCK__SSP1_SCK 0x2060 | ||
89 | #define MX23_PAD_ROTARYA__ROTARYA 0x2070 | ||
90 | #define MX23_PAD_ROTARYB__ROTARYB 0x2080 | ||
91 | #define MX23_PAD_EMI_A00__EMI_A00 0x2090 | ||
92 | #define MX23_PAD_EMI_A01__EMI_A01 0x20a0 | ||
93 | #define MX23_PAD_EMI_A02__EMI_A02 0x20b0 | ||
94 | #define MX23_PAD_EMI_A03__EMI_A03 0x20c0 | ||
95 | #define MX23_PAD_EMI_A04__EMI_A04 0x20d0 | ||
96 | #define MX23_PAD_EMI_A05__EMI_A05 0x20e0 | ||
97 | #define MX23_PAD_EMI_A06__EMI_A06 0x20f0 | ||
98 | #define MX23_PAD_EMI_A07__EMI_A07 0x2100 | ||
99 | #define MX23_PAD_EMI_A08__EMI_A08 0x2110 | ||
100 | #define MX23_PAD_EMI_A09__EMI_A09 0x2120 | ||
101 | #define MX23_PAD_EMI_A10__EMI_A10 0x2130 | ||
102 | #define MX23_PAD_EMI_A11__EMI_A11 0x2140 | ||
103 | #define MX23_PAD_EMI_A12__EMI_A12 0x2150 | ||
104 | #define MX23_PAD_EMI_BA0__EMI_BA0 0x2160 | ||
105 | #define MX23_PAD_EMI_BA1__EMI_BA1 0x2170 | ||
106 | #define MX23_PAD_EMI_CASN__EMI_CASN 0x2180 | ||
107 | #define MX23_PAD_EMI_CE0N__EMI_CE0N 0x2190 | ||
108 | #define MX23_PAD_EMI_CE1N__EMI_CE1N 0x21a0 | ||
109 | #define MX23_PAD_GPMI_CE1N__GPMI_CE1N 0x21b0 | ||
110 | #define MX23_PAD_GPMI_CE0N__GPMI_CE0N 0x21c0 | ||
111 | #define MX23_PAD_EMI_CKE__EMI_CKE 0x21d0 | ||
112 | #define MX23_PAD_EMI_RASN__EMI_RASN 0x21e0 | ||
113 | #define MX23_PAD_EMI_WEN__EMI_WEN 0x21f0 | ||
114 | #define MX23_PAD_EMI_D00__EMI_D00 0x3000 | ||
115 | #define MX23_PAD_EMI_D01__EMI_D01 0x3010 | ||
116 | #define MX23_PAD_EMI_D02__EMI_D02 0x3020 | ||
117 | #define MX23_PAD_EMI_D03__EMI_D03 0x3030 | ||
118 | #define MX23_PAD_EMI_D04__EMI_D04 0x3040 | ||
119 | #define MX23_PAD_EMI_D05__EMI_D05 0x3050 | ||
120 | #define MX23_PAD_EMI_D06__EMI_D06 0x3060 | ||
121 | #define MX23_PAD_EMI_D07__EMI_D07 0x3070 | ||
122 | #define MX23_PAD_EMI_D08__EMI_D08 0x3080 | ||
123 | #define MX23_PAD_EMI_D09__EMI_D09 0x3090 | ||
124 | #define MX23_PAD_EMI_D10__EMI_D10 0x30a0 | ||
125 | #define MX23_PAD_EMI_D11__EMI_D11 0x30b0 | ||
126 | #define MX23_PAD_EMI_D12__EMI_D12 0x30c0 | ||
127 | #define MX23_PAD_EMI_D13__EMI_D13 0x30d0 | ||
128 | #define MX23_PAD_EMI_D14__EMI_D14 0x30e0 | ||
129 | #define MX23_PAD_EMI_D15__EMI_D15 0x30f0 | ||
130 | #define MX23_PAD_EMI_DQM0__EMI_DQM0 0x3100 | ||
131 | #define MX23_PAD_EMI_DQM1__EMI_DQM1 0x3110 | ||
132 | #define MX23_PAD_EMI_DQS0__EMI_DQS0 0x3120 | ||
133 | #define MX23_PAD_EMI_DQS1__EMI_DQS1 0x3130 | ||
134 | #define MX23_PAD_EMI_CLK__EMI_CLK 0x3140 | ||
135 | #define MX23_PAD_EMI_CLKN__EMI_CLKN 0x3150 | ||
136 | #define MX23_PAD_GPMI_D00__LCD_D8 0x0001 | ||
137 | #define MX23_PAD_GPMI_D01__LCD_D9 0x0011 | ||
138 | #define MX23_PAD_GPMI_D02__LCD_D10 0x0021 | ||
139 | #define MX23_PAD_GPMI_D03__LCD_D11 0x0031 | ||
140 | #define MX23_PAD_GPMI_D04__LCD_D12 0x0041 | ||
141 | #define MX23_PAD_GPMI_D05__LCD_D13 0x0051 | ||
142 | #define MX23_PAD_GPMI_D06__LCD_D14 0x0061 | ||
143 | #define MX23_PAD_GPMI_D07__LCD_D15 0x0071 | ||
144 | #define MX23_PAD_GPMI_D08__LCD_D18 0x0081 | ||
145 | #define MX23_PAD_GPMI_D09__LCD_D19 0x0091 | ||
146 | #define MX23_PAD_GPMI_D10__LCD_D20 0x00a1 | ||
147 | #define MX23_PAD_GPMI_D11__LCD_D21 0x00b1 | ||
148 | #define MX23_PAD_GPMI_D12__LCD_D22 0x00c1 | ||
149 | #define MX23_PAD_GPMI_D13__LCD_D23 0x00d1 | ||
150 | #define MX23_PAD_GPMI_D14__AUART2_RX 0x00e1 | ||
151 | #define MX23_PAD_GPMI_D15__AUART2_TX 0x00f1 | ||
152 | #define MX23_PAD_GPMI_CLE__LCD_D16 0x0101 | ||
153 | #define MX23_PAD_GPMI_ALE__LCD_D17 0x0111 | ||
154 | #define MX23_PAD_GPMI_CE2N__ATA_A2 0x0121 | ||
155 | #define MX23_PAD_AUART1_RTS__IR_CLK 0x01b1 | ||
156 | #define MX23_PAD_AUART1_RX__IR_RX 0x01c1 | ||
157 | #define MX23_PAD_AUART1_TX__IR_TX 0x01d1 | ||
158 | #define MX23_PAD_I2C_SCL__GPMI_RDY2 0x01e1 | ||
159 | #define MX23_PAD_I2C_SDA__GPMI_CE2N 0x01f1 | ||
160 | #define MX23_PAD_LCD_D00__ETM_DA8 0x1001 | ||
161 | #define MX23_PAD_LCD_D01__ETM_DA9 0x1011 | ||
162 | #define MX23_PAD_LCD_D02__ETM_DA10 0x1021 | ||
163 | #define MX23_PAD_LCD_D03__ETM_DA11 0x1031 | ||
164 | #define MX23_PAD_LCD_D04__ETM_DA12 0x1041 | ||
165 | #define MX23_PAD_LCD_D05__ETM_DA13 0x1051 | ||
166 | #define MX23_PAD_LCD_D06__ETM_DA14 0x1061 | ||
167 | #define MX23_PAD_LCD_D07__ETM_DA15 0x1071 | ||
168 | #define MX23_PAD_LCD_D08__ETM_DA0 0x1081 | ||
169 | #define MX23_PAD_LCD_D09__ETM_DA1 0x1091 | ||
170 | #define MX23_PAD_LCD_D10__ETM_DA2 0x10a1 | ||
171 | #define MX23_PAD_LCD_D11__ETM_DA3 0x10b1 | ||
172 | #define MX23_PAD_LCD_D12__ETM_DA4 0x10c1 | ||
173 | #define MX23_PAD_LCD_D13__ETM_DA5 0x10d1 | ||
174 | #define MX23_PAD_LCD_D14__ETM_DA6 0x10e1 | ||
175 | #define MX23_PAD_LCD_D15__ETM_DA7 0x10f1 | ||
176 | #define MX23_PAD_LCD_RESET__ETM_TCTL 0x1121 | ||
177 | #define MX23_PAD_LCD_RS__ETM_TCLK 0x1131 | ||
178 | #define MX23_PAD_LCD_DOTCK__GPMI_RDY3 0x1161 | ||
179 | #define MX23_PAD_LCD_ENABLE__I2C_SCL 0x1171 | ||
180 | #define MX23_PAD_LCD_HSYNC__I2C_SDA 0x1181 | ||
181 | #define MX23_PAD_LCD_VSYNC__LCD_BUSY 0x1191 | ||
182 | #define MX23_PAD_PWM0__ROTARYA 0x11a1 | ||
183 | #define MX23_PAD_PWM1__ROTARYB 0x11b1 | ||
184 | #define MX23_PAD_PWM2__GPMI_RDY3 0x11c1 | ||
185 | #define MX23_PAD_PWM3__ETM_TCTL 0x11d1 | ||
186 | #define MX23_PAD_PWM4__ETM_TCLK 0x11e1 | ||
187 | #define MX23_PAD_SSP1_DETECT__GPMI_CE3N 0x2011 | ||
188 | #define MX23_PAD_SSP1_DATA1__I2C_SCL 0x2031 | ||
189 | #define MX23_PAD_SSP1_DATA2__I2C_SDA 0x2041 | ||
190 | #define MX23_PAD_ROTARYA__AUART2_RTS 0x2071 | ||
191 | #define MX23_PAD_ROTARYB__AUART2_CTS 0x2081 | ||
192 | #define MX23_PAD_GPMI_D00__SSP2_DATA0 0x0002 | ||
193 | #define MX23_PAD_GPMI_D01__SSP2_DATA1 0x0012 | ||
194 | #define MX23_PAD_GPMI_D02__SSP2_DATA2 0x0022 | ||
195 | #define MX23_PAD_GPMI_D03__SSP2_DATA3 0x0032 | ||
196 | #define MX23_PAD_GPMI_D04__SSP2_DATA4 0x0042 | ||
197 | #define MX23_PAD_GPMI_D05__SSP2_DATA5 0x0052 | ||
198 | #define MX23_PAD_GPMI_D06__SSP2_DATA6 0x0062 | ||
199 | #define MX23_PAD_GPMI_D07__SSP2_DATA7 0x0072 | ||
200 | #define MX23_PAD_GPMI_D08__SSP1_DATA4 0x0082 | ||
201 | #define MX23_PAD_GPMI_D09__SSP1_DATA5 0x0092 | ||
202 | #define MX23_PAD_GPMI_D10__SSP1_DATA6 0x00a2 | ||
203 | #define MX23_PAD_GPMI_D11__SSP1_DATA7 0x00b2 | ||
204 | #define MX23_PAD_GPMI_D15__GPMI_CE3N 0x00f2 | ||
205 | #define MX23_PAD_GPMI_RDY0__SSP2_DETECT 0x0132 | ||
206 | #define MX23_PAD_GPMI_RDY1__SSP2_CMD 0x0142 | ||
207 | #define MX23_PAD_GPMI_WRN__SSP2_SCK 0x0182 | ||
208 | #define MX23_PAD_AUART1_CTS__SSP1_DATA4 0x01a2 | ||
209 | #define MX23_PAD_AUART1_RTS__SSP1_DATA5 0x01b2 | ||
210 | #define MX23_PAD_AUART1_RX__SSP1_DATA6 0x01c2 | ||
211 | #define MX23_PAD_AUART1_TX__SSP1_DATA7 0x01d2 | ||
212 | #define MX23_PAD_I2C_SCL__AUART1_TX 0x01e2 | ||
213 | #define MX23_PAD_I2C_SDA__AUART1_RX 0x01f2 | ||
214 | #define MX23_PAD_LCD_D08__SAIF2_SDATA0 0x1082 | ||
215 | #define MX23_PAD_LCD_D09__SAIF1_SDATA0 0x1092 | ||
216 | #define MX23_PAD_LCD_D10__SAIF_MCLK_BITCLK 0x10a2 | ||
217 | #define MX23_PAD_LCD_D11__SAIF_LRCLK 0x10b2 | ||
218 | #define MX23_PAD_LCD_D12__SAIF2_SDATA1 0x10c2 | ||
219 | #define MX23_PAD_LCD_D13__SAIF2_SDATA2 0x10d2 | ||
220 | #define MX23_PAD_LCD_D14__SAIF1_SDATA2 0x10e2 | ||
221 | #define MX23_PAD_LCD_D15__SAIF1_SDATA1 0x10f2 | ||
222 | #define MX23_PAD_LCD_D16__SAIF_ALT_BITCLK 0x1102 | ||
223 | #define MX23_PAD_LCD_RESET__GPMI_CE3N 0x1122 | ||
224 | #define MX23_PAD_PWM0__DUART_RX 0x11a2 | ||
225 | #define MX23_PAD_PWM1__DUART_TX 0x11b2 | ||
226 | #define MX23_PAD_PWM3__AUART1_CTS 0x11d2 | ||
227 | #define MX23_PAD_PWM4__AUART1_RTS 0x11e2 | ||
228 | #define MX23_PAD_SSP1_CMD__JTAG_TDO 0x2002 | ||
229 | #define MX23_PAD_SSP1_DETECT__USB_OTG_ID 0x2012 | ||
230 | #define MX23_PAD_SSP1_DATA0__JTAG_TDI 0x2022 | ||
231 | #define MX23_PAD_SSP1_DATA1__JTAG_TCLK 0x2032 | ||
232 | #define MX23_PAD_SSP1_DATA2__JTAG_RTCK 0x2042 | ||
233 | #define MX23_PAD_SSP1_DATA3__JTAG_TMS 0x2052 | ||
234 | #define MX23_PAD_SSP1_SCK__JTAG_TRST 0x2062 | ||
235 | #define MX23_PAD_ROTARYA__SPDIF 0x2072 | ||
236 | #define MX23_PAD_ROTARYB__GPMI_CE3N 0x2082 | ||
237 | #define MX23_PAD_GPMI_D00__GPIO_0_0 0x0003 | ||
238 | #define MX23_PAD_GPMI_D01__GPIO_0_1 0x0013 | ||
239 | #define MX23_PAD_GPMI_D02__GPIO_0_2 0x0023 | ||
240 | #define MX23_PAD_GPMI_D03__GPIO_0_3 0x0033 | ||
241 | #define MX23_PAD_GPMI_D04__GPIO_0_4 0x0043 | ||
242 | #define MX23_PAD_GPMI_D05__GPIO_0_5 0x0053 | ||
243 | #define MX23_PAD_GPMI_D06__GPIO_0_6 0x0063 | ||
244 | #define MX23_PAD_GPMI_D07__GPIO_0_7 0x0073 | ||
245 | #define MX23_PAD_GPMI_D08__GPIO_0_8 0x0083 | ||
246 | #define MX23_PAD_GPMI_D09__GPIO_0_9 0x0093 | ||
247 | #define MX23_PAD_GPMI_D10__GPIO_0_10 0x00a3 | ||
248 | #define MX23_PAD_GPMI_D11__GPIO_0_11 0x00b3 | ||
249 | #define MX23_PAD_GPMI_D12__GPIO_0_12 0x00c3 | ||
250 | #define MX23_PAD_GPMI_D13__GPIO_0_13 0x00d3 | ||
251 | #define MX23_PAD_GPMI_D14__GPIO_0_14 0x00e3 | ||
252 | #define MX23_PAD_GPMI_D15__GPIO_0_15 0x00f3 | ||
253 | #define MX23_PAD_GPMI_CLE__GPIO_0_16 0x0103 | ||
254 | #define MX23_PAD_GPMI_ALE__GPIO_0_17 0x0113 | ||
255 | #define MX23_PAD_GPMI_CE2N__GPIO_0_18 0x0123 | ||
256 | #define MX23_PAD_GPMI_RDY0__GPIO_0_19 0x0133 | ||
257 | #define MX23_PAD_GPMI_RDY1__GPIO_0_20 0x0143 | ||
258 | #define MX23_PAD_GPMI_RDY2__GPIO_0_21 0x0153 | ||
259 | #define MX23_PAD_GPMI_RDY3__GPIO_0_22 0x0163 | ||
260 | #define MX23_PAD_GPMI_WPN__GPIO_0_23 0x0173 | ||
261 | #define MX23_PAD_GPMI_WRN__GPIO_0_24 0x0183 | ||
262 | #define MX23_PAD_GPMI_RDN__GPIO_0_25 0x0193 | ||
263 | #define MX23_PAD_AUART1_CTS__GPIO_0_26 0x01a3 | ||
264 | #define MX23_PAD_AUART1_RTS__GPIO_0_27 0x01b3 | ||
265 | #define MX23_PAD_AUART1_RX__GPIO_0_28 0x01c3 | ||
266 | #define MX23_PAD_AUART1_TX__GPIO_0_29 0x01d3 | ||
267 | #define MX23_PAD_I2C_SCL__GPIO_0_30 0x01e3 | ||
268 | #define MX23_PAD_I2C_SDA__GPIO_0_31 0x01f3 | ||
269 | #define MX23_PAD_LCD_D00__GPIO_1_0 0x1003 | ||
270 | #define MX23_PAD_LCD_D01__GPIO_1_1 0x1013 | ||
271 | #define MX23_PAD_LCD_D02__GPIO_1_2 0x1023 | ||
272 | #define MX23_PAD_LCD_D03__GPIO_1_3 0x1033 | ||
273 | #define MX23_PAD_LCD_D04__GPIO_1_4 0x1043 | ||
274 | #define MX23_PAD_LCD_D05__GPIO_1_5 0x1053 | ||
275 | #define MX23_PAD_LCD_D06__GPIO_1_6 0x1063 | ||
276 | #define MX23_PAD_LCD_D07__GPIO_1_7 0x1073 | ||
277 | #define MX23_PAD_LCD_D08__GPIO_1_8 0x1083 | ||
278 | #define MX23_PAD_LCD_D09__GPIO_1_9 0x1093 | ||
279 | #define MX23_PAD_LCD_D10__GPIO_1_10 0x10a3 | ||
280 | #define MX23_PAD_LCD_D11__GPIO_1_11 0x10b3 | ||
281 | #define MX23_PAD_LCD_D12__GPIO_1_12 0x10c3 | ||
282 | #define MX23_PAD_LCD_D13__GPIO_1_13 0x10d3 | ||
283 | #define MX23_PAD_LCD_D14__GPIO_1_14 0x10e3 | ||
284 | #define MX23_PAD_LCD_D15__GPIO_1_15 0x10f3 | ||
285 | #define MX23_PAD_LCD_D16__GPIO_1_16 0x1103 | ||
286 | #define MX23_PAD_LCD_D17__GPIO_1_17 0x1113 | ||
287 | #define MX23_PAD_LCD_RESET__GPIO_1_18 0x1123 | ||
288 | #define MX23_PAD_LCD_RS__GPIO_1_19 0x1133 | ||
289 | #define MX23_PAD_LCD_WR__GPIO_1_20 0x1143 | ||
290 | #define MX23_PAD_LCD_CS__GPIO_1_21 0x1153 | ||
291 | #define MX23_PAD_LCD_DOTCK__GPIO_1_22 0x1163 | ||
292 | #define MX23_PAD_LCD_ENABLE__GPIO_1_23 0x1173 | ||
293 | #define MX23_PAD_LCD_HSYNC__GPIO_1_24 0x1183 | ||
294 | #define MX23_PAD_LCD_VSYNC__GPIO_1_25 0x1193 | ||
295 | #define MX23_PAD_PWM0__GPIO_1_26 0x11a3 | ||
296 | #define MX23_PAD_PWM1__GPIO_1_27 0x11b3 | ||
297 | #define MX23_PAD_PWM2__GPIO_1_28 0x11c3 | ||
298 | #define MX23_PAD_PWM3__GPIO_1_29 0x11d3 | ||
299 | #define MX23_PAD_PWM4__GPIO_1_30 0x11e3 | ||
300 | #define MX23_PAD_SSP1_CMD__GPIO_2_0 0x2003 | ||
301 | #define MX23_PAD_SSP1_DETECT__GPIO_2_1 0x2013 | ||
302 | #define MX23_PAD_SSP1_DATA0__GPIO_2_2 0x2023 | ||
303 | #define MX23_PAD_SSP1_DATA1__GPIO_2_3 0x2033 | ||
304 | #define MX23_PAD_SSP1_DATA2__GPIO_2_4 0x2043 | ||
305 | #define MX23_PAD_SSP1_DATA3__GPIO_2_5 0x2053 | ||
306 | #define MX23_PAD_SSP1_SCK__GPIO_2_6 0x2063 | ||
307 | #define MX23_PAD_ROTARYA__GPIO_2_7 0x2073 | ||
308 | #define MX23_PAD_ROTARYB__GPIO_2_8 0x2083 | ||
309 | #define MX23_PAD_EMI_A00__GPIO_2_9 0x2093 | ||
310 | #define MX23_PAD_EMI_A01__GPIO_2_10 0x20a3 | ||
311 | #define MX23_PAD_EMI_A02__GPIO_2_11 0x20b3 | ||
312 | #define MX23_PAD_EMI_A03__GPIO_2_12 0x20c3 | ||
313 | #define MX23_PAD_EMI_A04__GPIO_2_13 0x20d3 | ||
314 | #define MX23_PAD_EMI_A05__GPIO_2_14 0x20e3 | ||
315 | #define MX23_PAD_EMI_A06__GPIO_2_15 0x20f3 | ||
316 | #define MX23_PAD_EMI_A07__GPIO_2_16 0x2103 | ||
317 | #define MX23_PAD_EMI_A08__GPIO_2_17 0x2113 | ||
318 | #define MX23_PAD_EMI_A09__GPIO_2_18 0x2123 | ||
319 | #define MX23_PAD_EMI_A10__GPIO_2_19 0x2133 | ||
320 | #define MX23_PAD_EMI_A11__GPIO_2_20 0x2143 | ||
321 | #define MX23_PAD_EMI_A12__GPIO_2_21 0x2153 | ||
322 | #define MX23_PAD_EMI_BA0__GPIO_2_22 0x2163 | ||
323 | #define MX23_PAD_EMI_BA1__GPIO_2_23 0x2173 | ||
324 | #define MX23_PAD_EMI_CASN__GPIO_2_24 0x2183 | ||
325 | #define MX23_PAD_EMI_CE0N__GPIO_2_25 0x2193 | ||
326 | #define MX23_PAD_EMI_CE1N__GPIO_2_26 0x21a3 | ||
327 | #define MX23_PAD_GPMI_CE1N__GPIO_2_27 0x21b3 | ||
328 | #define MX23_PAD_GPMI_CE0N__GPIO_2_28 0x21c3 | ||
329 | #define MX23_PAD_EMI_CKE__GPIO_2_29 0x21d3 | ||
330 | #define MX23_PAD_EMI_RASN__GPIO_2_30 0x21e3 | ||
331 | #define MX23_PAD_EMI_WEN__GPIO_2_31 0x21f3 | ||
332 | |||
333 | #endif /* __DT_BINDINGS_MX23_PINCTRL_H__ */ | ||
diff --git a/arch/arm/boot/dts/imx23-stmp378x_devb.dts b/arch/arm/boot/dts/imx23-stmp378x_devb.dts index 85c3864b6a56..cb64e2b191ea 100644 --- a/arch/arm/boot/dts/imx23-stmp378x_devb.dts +++ b/arch/arm/boot/dts/imx23-stmp378x_devb.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx23.dtsi" | 13 | #include "imx23.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Freescale STMP378x Development Board"; | 16 | model = "Freescale STMP378x Development Board"; |
@@ -39,12 +39,12 @@ | |||
39 | hog_pins_a: hog@0 { | 39 | hog_pins_a: hog@0 { |
40 | reg = <0>; | 40 | reg = <0>; |
41 | fsl,pinmux-ids = < | 41 | fsl,pinmux-ids = < |
42 | 0x11d3 /* MX23_PAD_PWM3__GPIO_1_29 */ | 42 | MX23_PAD_PWM3__GPIO_1_29 |
43 | 0x11e3 /* MX23_PAD_PWM4__GPIO_1_30 */ | 43 | MX23_PAD_PWM4__GPIO_1_30 |
44 | >; | 44 | >; |
45 | fsl,drive-strength = <0>; | 45 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
46 | fsl,voltage = <1>; | 46 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
47 | fsl,pull-up = <0>; | 47 | fsl,pull-up = <MXS_PULL_DISABLE>; |
48 | }; | 48 | }; |
49 | }; | 49 | }; |
50 | }; | 50 | }; |
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi index 07caf767d428..c96ceaef7ddf 100644 --- a/arch/arm/boot/dts/imx23.dtsi +++ b/arch/arm/boot/dts/imx23.dtsi | |||
@@ -9,7 +9,8 @@ | |||
9 | * http://www.gnu.org/copyleft/gpl.html | 9 | * http://www.gnu.org/copyleft/gpl.html |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /include/ "skeleton.dtsi" | 12 | #include "skeleton.dtsi" |
13 | #include "imx23-pinfunc.h" | ||
13 | 14 | ||
14 | / { | 15 | / { |
15 | interrupt-parent = <&icoll>; | 16 | interrupt-parent = <&icoll>; |
@@ -137,174 +138,174 @@ | |||
137 | duart_pins_a: duart@0 { | 138 | duart_pins_a: duart@0 { |
138 | reg = <0>; | 139 | reg = <0>; |
139 | fsl,pinmux-ids = < | 140 | fsl,pinmux-ids = < |
140 | 0x11a2 /* MX23_PAD_PWM0__DUART_RX */ | 141 | MX23_PAD_PWM0__DUART_RX |
141 | 0x11b2 /* MX23_PAD_PWM1__DUART_TX */ | 142 | MX23_PAD_PWM1__DUART_TX |
142 | >; | 143 | >; |
143 | fsl,drive-strength = <0>; | 144 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
144 | fsl,voltage = <1>; | 145 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
145 | fsl,pull-up = <0>; | 146 | fsl,pull-up = <MXS_PULL_DISABLE>; |
146 | }; | 147 | }; |
147 | 148 | ||
148 | auart0_pins_a: auart0@0 { | 149 | auart0_pins_a: auart0@0 { |
149 | reg = <0>; | 150 | reg = <0>; |
150 | fsl,pinmux-ids = < | 151 | fsl,pinmux-ids = < |
151 | 0x01c0 /* MX23_PAD_AUART1_RX__AUART1_RX */ | 152 | MX23_PAD_AUART1_RX__AUART1_RX |
152 | 0x01d0 /* MX23_PAD_AUART1_TX__AUART1_TX */ | 153 | MX23_PAD_AUART1_TX__AUART1_TX |
153 | 0x01a0 /* MX23_PAD_AUART1_CTS__AUART1_CTS */ | 154 | MX23_PAD_AUART1_CTS__AUART1_CTS |
154 | 0x01b0 /* MX23_PAD_AUART1_RTS__AUART1_RTS */ | 155 | MX23_PAD_AUART1_RTS__AUART1_RTS |
155 | >; | 156 | >; |
156 | fsl,drive-strength = <0>; | 157 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
157 | fsl,voltage = <1>; | 158 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
158 | fsl,pull-up = <0>; | 159 | fsl,pull-up = <MXS_PULL_DISABLE>; |
159 | }; | 160 | }; |
160 | 161 | ||
161 | auart0_2pins_a: auart0-2pins@0 { | 162 | auart0_2pins_a: auart0-2pins@0 { |
162 | reg = <0>; | 163 | reg = <0>; |
163 | fsl,pinmux-ids = < | 164 | fsl,pinmux-ids = < |
164 | 0x01e2 /* MX23_PAD_I2C_SCL__AUART1_TX */ | 165 | MX23_PAD_I2C_SCL__AUART1_TX |
165 | 0x01f2 /* MX23_PAD_I2C_SDA__AUART1_RX */ | 166 | MX23_PAD_I2C_SDA__AUART1_RX |
166 | >; | 167 | >; |
167 | fsl,drive-strength = <0>; | 168 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
168 | fsl,voltage = <1>; | 169 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
169 | fsl,pull-up = <0>; | 170 | fsl,pull-up = <MXS_PULL_DISABLE>; |
170 | }; | 171 | }; |
171 | 172 | ||
172 | gpmi_pins_a: gpmi-nand@0 { | 173 | gpmi_pins_a: gpmi-nand@0 { |
173 | reg = <0>; | 174 | reg = <0>; |
174 | fsl,pinmux-ids = < | 175 | fsl,pinmux-ids = < |
175 | 0x0000 /* MX23_PAD_GPMI_D00__GPMI_D00 */ | 176 | MX23_PAD_GPMI_D00__GPMI_D00 |
176 | 0x0010 /* MX23_PAD_GPMI_D01__GPMI_D01 */ | 177 | MX23_PAD_GPMI_D01__GPMI_D01 |
177 | 0x0020 /* MX23_PAD_GPMI_D02__GPMI_D02 */ | 178 | MX23_PAD_GPMI_D02__GPMI_D02 |
178 | 0x0030 /* MX23_PAD_GPMI_D03__GPMI_D03 */ | 179 | MX23_PAD_GPMI_D03__GPMI_D03 |
179 | 0x0040 /* MX23_PAD_GPMI_D04__GPMI_D04 */ | 180 | MX23_PAD_GPMI_D04__GPMI_D04 |
180 | 0x0050 /* MX23_PAD_GPMI_D05__GPMI_D05 */ | 181 | MX23_PAD_GPMI_D05__GPMI_D05 |
181 | 0x0060 /* MX23_PAD_GPMI_D06__GPMI_D06 */ | 182 | MX23_PAD_GPMI_D06__GPMI_D06 |
182 | 0x0070 /* MX23_PAD_GPMI_D07__GPMI_D07 */ | 183 | MX23_PAD_GPMI_D07__GPMI_D07 |
183 | 0x0100 /* MX23_PAD_GPMI_CLE__GPMI_CLE */ | 184 | MX23_PAD_GPMI_CLE__GPMI_CLE |
184 | 0x0110 /* MX23_PAD_GPMI_ALE__GPMI_ALE */ | 185 | MX23_PAD_GPMI_ALE__GPMI_ALE |
185 | 0x0130 /* MX23_PAD_GPMI_RDY0__GPMI_RDY0 */ | 186 | MX23_PAD_GPMI_RDY0__GPMI_RDY0 |
186 | 0x0140 /* MX23_PAD_GPMI_RDY1__GPMI_RDY1 */ | 187 | MX23_PAD_GPMI_RDY1__GPMI_RDY1 |
187 | 0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */ | 188 | MX23_PAD_GPMI_WPN__GPMI_WPN |
188 | 0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */ | 189 | MX23_PAD_GPMI_WRN__GPMI_WRN |
189 | 0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */ | 190 | MX23_PAD_GPMI_RDN__GPMI_RDN |
190 | 0x21b0 /* MX23_PAD_GPMI_CE1N__GPMI_CE1N */ | 191 | MX23_PAD_GPMI_CE1N__GPMI_CE1N |
191 | 0x21c0 /* MX23_PAD_GPMI_CE0N__GPMI_CE0N */ | 192 | MX23_PAD_GPMI_CE0N__GPMI_CE0N |
192 | >; | 193 | >; |
193 | fsl,drive-strength = <0>; | 194 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
194 | fsl,voltage = <1>; | 195 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
195 | fsl,pull-up = <0>; | 196 | fsl,pull-up = <MXS_PULL_DISABLE>; |
196 | }; | 197 | }; |
197 | 198 | ||
198 | gpmi_pins_fixup: gpmi-pins-fixup { | 199 | gpmi_pins_fixup: gpmi-pins-fixup { |
199 | fsl,pinmux-ids = < | 200 | fsl,pinmux-ids = < |
200 | 0x0170 /* MX23_PAD_GPMI_WPN__GPMI_WPN */ | 201 | MX23_PAD_GPMI_WPN__GPMI_WPN |
201 | 0x0180 /* MX23_PAD_GPMI_WRN__GPMI_WRN */ | 202 | MX23_PAD_GPMI_WRN__GPMI_WRN |
202 | 0x0190 /* MX23_PAD_GPMI_RDN__GPMI_RDN */ | 203 | MX23_PAD_GPMI_RDN__GPMI_RDN |
203 | >; | 204 | >; |
204 | fsl,drive-strength = <2>; | 205 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
205 | }; | 206 | }; |
206 | 207 | ||
207 | mmc0_4bit_pins_a: mmc0-4bit@0 { | 208 | mmc0_4bit_pins_a: mmc0-4bit@0 { |
208 | reg = <0>; | 209 | reg = <0>; |
209 | fsl,pinmux-ids = < | 210 | fsl,pinmux-ids = < |
210 | 0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */ | 211 | MX23_PAD_SSP1_DATA0__SSP1_DATA0 |
211 | 0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */ | 212 | MX23_PAD_SSP1_DATA1__SSP1_DATA1 |
212 | 0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */ | 213 | MX23_PAD_SSP1_DATA2__SSP1_DATA2 |
213 | 0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */ | 214 | MX23_PAD_SSP1_DATA3__SSP1_DATA3 |
214 | 0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */ | 215 | MX23_PAD_SSP1_CMD__SSP1_CMD |
215 | 0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */ | 216 | MX23_PAD_SSP1_SCK__SSP1_SCK |
216 | >; | 217 | >; |
217 | fsl,drive-strength = <1>; | 218 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
218 | fsl,voltage = <1>; | 219 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
219 | fsl,pull-up = <1>; | 220 | fsl,pull-up = <MXS_PULL_ENABLE>; |
220 | }; | 221 | }; |
221 | 222 | ||
222 | mmc0_8bit_pins_a: mmc0-8bit@0 { | 223 | mmc0_8bit_pins_a: mmc0-8bit@0 { |
223 | reg = <0>; | 224 | reg = <0>; |
224 | fsl,pinmux-ids = < | 225 | fsl,pinmux-ids = < |
225 | 0x2020 /* MX23_PAD_SSP1_DATA0__SSP1_DATA0 */ | 226 | MX23_PAD_SSP1_DATA0__SSP1_DATA0 |
226 | 0x2030 /* MX23_PAD_SSP1_DATA1__SSP1_DATA1 */ | 227 | MX23_PAD_SSP1_DATA1__SSP1_DATA1 |
227 | 0x2040 /* MX23_PAD_SSP1_DATA2__SSP1_DATA2 */ | 228 | MX23_PAD_SSP1_DATA2__SSP1_DATA2 |
228 | 0x2050 /* MX23_PAD_SSP1_DATA3__SSP1_DATA3 */ | 229 | MX23_PAD_SSP1_DATA3__SSP1_DATA3 |
229 | 0x0082 /* MX23_PAD_GPMI_D08__SSP1_DATA4 */ | 230 | MX23_PAD_GPMI_D08__SSP1_DATA4 |
230 | 0x0092 /* MX23_PAD_GPMI_D09__SSP1_DATA5 */ | 231 | MX23_PAD_GPMI_D09__SSP1_DATA5 |
231 | 0x00a2 /* MX23_PAD_GPMI_D10__SSP1_DATA6 */ | 232 | MX23_PAD_GPMI_D10__SSP1_DATA6 |
232 | 0x00b2 /* MX23_PAD_GPMI_D11__SSP1_DATA7 */ | 233 | MX23_PAD_GPMI_D11__SSP1_DATA7 |
233 | 0x2000 /* MX23_PAD_SSP1_CMD__SSP1_CMD */ | 234 | MX23_PAD_SSP1_CMD__SSP1_CMD |
234 | 0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */ | 235 | MX23_PAD_SSP1_DETECT__SSP1_DETECT |
235 | 0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */ | 236 | MX23_PAD_SSP1_SCK__SSP1_SCK |
236 | >; | 237 | >; |
237 | fsl,drive-strength = <1>; | 238 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
238 | fsl,voltage = <1>; | 239 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
239 | fsl,pull-up = <1>; | 240 | fsl,pull-up = <MXS_PULL_ENABLE>; |
240 | }; | 241 | }; |
241 | 242 | ||
242 | mmc0_pins_fixup: mmc0-pins-fixup { | 243 | mmc0_pins_fixup: mmc0-pins-fixup { |
243 | fsl,pinmux-ids = < | 244 | fsl,pinmux-ids = < |
244 | 0x2010 /* MX23_PAD_SSP1_DETECT__SSP1_DETECT */ | 245 | MX23_PAD_SSP1_DETECT__SSP1_DETECT |
245 | 0x2060 /* MX23_PAD_SSP1_SCK__SSP1_SCK */ | 246 | MX23_PAD_SSP1_SCK__SSP1_SCK |
246 | >; | 247 | >; |
247 | fsl,pull-up = <0>; | 248 | fsl,pull-up = <MXS_PULL_DISABLE>; |
248 | }; | 249 | }; |
249 | 250 | ||
250 | pwm2_pins_a: pwm2@0 { | 251 | pwm2_pins_a: pwm2@0 { |
251 | reg = <0>; | 252 | reg = <0>; |
252 | fsl,pinmux-ids = < | 253 | fsl,pinmux-ids = < |
253 | 0x11c0 /* MX23_PAD_PWM2__PWM2 */ | 254 | MX23_PAD_PWM2__PWM2 |
254 | >; | 255 | >; |
255 | fsl,drive-strength = <0>; | 256 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
256 | fsl,voltage = <1>; | 257 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
257 | fsl,pull-up = <0>; | 258 | fsl,pull-up = <MXS_PULL_DISABLE>; |
258 | }; | 259 | }; |
259 | 260 | ||
260 | lcdif_24bit_pins_a: lcdif-24bit@0 { | 261 | lcdif_24bit_pins_a: lcdif-24bit@0 { |
261 | reg = <0>; | 262 | reg = <0>; |
262 | fsl,pinmux-ids = < | 263 | fsl,pinmux-ids = < |
263 | 0x1000 /* MX23_PAD_LCD_D00__LCD_D0 */ | 264 | MX23_PAD_LCD_D00__LCD_D00 |
264 | 0x1010 /* MX23_PAD_LCD_D01__LCD_D1 */ | 265 | MX23_PAD_LCD_D01__LCD_D01 |
265 | 0x1020 /* MX23_PAD_LCD_D02__LCD_D2 */ | 266 | MX23_PAD_LCD_D02__LCD_D02 |
266 | 0x1030 /* MX23_PAD_LCD_D03__LCD_D3 */ | 267 | MX23_PAD_LCD_D03__LCD_D03 |
267 | 0x1040 /* MX23_PAD_LCD_D04__LCD_D4 */ | 268 | MX23_PAD_LCD_D04__LCD_D04 |
268 | 0x1050 /* MX23_PAD_LCD_D05__LCD_D5 */ | 269 | MX23_PAD_LCD_D05__LCD_D05 |
269 | 0x1060 /* MX23_PAD_LCD_D06__LCD_D6 */ | 270 | MX23_PAD_LCD_D06__LCD_D06 |
270 | 0x1070 /* MX23_PAD_LCD_D07__LCD_D7 */ | 271 | MX23_PAD_LCD_D07__LCD_D07 |
271 | 0x1080 /* MX23_PAD_LCD_D08__LCD_D8 */ | 272 | MX23_PAD_LCD_D08__LCD_D08 |
272 | 0x1090 /* MX23_PAD_LCD_D09__LCD_D9 */ | 273 | MX23_PAD_LCD_D09__LCD_D09 |
273 | 0x10a0 /* MX23_PAD_LCD_D10__LCD_D10 */ | 274 | MX23_PAD_LCD_D10__LCD_D10 |
274 | 0x10b0 /* MX23_PAD_LCD_D11__LCD_D11 */ | 275 | MX23_PAD_LCD_D11__LCD_D11 |
275 | 0x10c0 /* MX23_PAD_LCD_D12__LCD_D12 */ | 276 | MX23_PAD_LCD_D12__LCD_D12 |
276 | 0x10d0 /* MX23_PAD_LCD_D13__LCD_D13 */ | 277 | MX23_PAD_LCD_D13__LCD_D13 |
277 | 0x10e0 /* MX23_PAD_LCD_D14__LCD_D14 */ | 278 | MX23_PAD_LCD_D14__LCD_D14 |
278 | 0x10f0 /* MX23_PAD_LCD_D15__LCD_D15 */ | 279 | MX23_PAD_LCD_D15__LCD_D15 |
279 | 0x1100 /* MX23_PAD_LCD_D16__LCD_D16 */ | 280 | MX23_PAD_LCD_D16__LCD_D16 |
280 | 0x1110 /* MX23_PAD_LCD_D17__LCD_D17 */ | 281 | MX23_PAD_LCD_D17__LCD_D17 |
281 | 0x0081 /* MX23_PAD_GPMI_D08__LCD_D18 */ | 282 | MX23_PAD_GPMI_D08__LCD_D18 |
282 | 0x0091 /* MX23_PAD_GPMI_D09__LCD_D19 */ | 283 | MX23_PAD_GPMI_D09__LCD_D19 |
283 | 0x00a1 /* MX23_PAD_GPMI_D10__LCD_D20 */ | 284 | MX23_PAD_GPMI_D10__LCD_D20 |
284 | 0x00b1 /* MX23_PAD_GPMI_D11__LCD_D21 */ | 285 | MX23_PAD_GPMI_D11__LCD_D21 |
285 | 0x00c1 /* MX23_PAD_GPMI_D12__LCD_D22 */ | 286 | MX23_PAD_GPMI_D12__LCD_D22 |
286 | 0x00d1 /* MX23_PAD_GPMI_D13__LCD_D23 */ | 287 | MX23_PAD_GPMI_D13__LCD_D23 |
287 | 0x1160 /* MX23_PAD_LCD_DOTCK__LCD_DOTCK */ | 288 | MX23_PAD_LCD_DOTCK__LCD_DOTCK |
288 | 0x1170 /* MX23_PAD_LCD_ENABLE__LCD_ENABLE */ | 289 | MX23_PAD_LCD_ENABLE__LCD_ENABLE |
289 | 0x1180 /* MX23_PAD_LCD_HSYNC__LCD_HSYNC */ | 290 | MX23_PAD_LCD_HSYNC__LCD_HSYNC |
290 | 0x1190 /* MX23_PAD_LCD_VSYNC__LCD_VSYNC */ | 291 | MX23_PAD_LCD_VSYNC__LCD_VSYNC |
291 | >; | 292 | >; |
292 | fsl,drive-strength = <0>; | 293 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
293 | fsl,voltage = <1>; | 294 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
294 | fsl,pull-up = <0>; | 295 | fsl,pull-up = <MXS_PULL_DISABLE>; |
295 | }; | 296 | }; |
296 | 297 | ||
297 | spi2_pins_a: spi2@0 { | 298 | spi2_pins_a: spi2@0 { |
298 | reg = <0>; | 299 | reg = <0>; |
299 | fsl,pinmux-ids = < | 300 | fsl,pinmux-ids = < |
300 | 0x0182 /* MX23_PAD_GPMI_WRN__SSP2_SCK */ | 301 | MX23_PAD_GPMI_WRN__SSP2_SCK |
301 | 0x0142 /* MX23_PAD_GPMI_RDY1__SSP2_CMD */ | 302 | MX23_PAD_GPMI_RDY1__SSP2_CMD |
302 | 0x0002 /* MX23_PAD_GPMI_D00__SSP2_DATA0 */ | 303 | MX23_PAD_GPMI_D00__SSP2_DATA0 |
303 | 0x0032 /* MX23_PAD_GPMI_D03__SSP2_DATA3 */ | 304 | MX23_PAD_GPMI_D03__SSP2_DATA3 |
304 | >; | 305 | >; |
305 | fsl,drive-strength = <1>; | 306 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
306 | fsl,voltage = <1>; | 307 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
307 | fsl,pull-up = <1>; | 308 | fsl,pull-up = <MXS_PULL_ENABLE>; |
308 | }; | 309 | }; |
309 | }; | 310 | }; |
310 | 311 | ||
diff --git a/arch/arm/boot/dts/imx27-apf27dev.dts b/arch/arm/boot/dts/imx27-apf27dev.dts index 2a377ca1881a..47c8c26012e4 100644 --- a/arch/arm/boot/dts/imx27-apf27dev.dts +++ b/arch/arm/boot/dts/imx27-apf27dev.dts | |||
@@ -16,6 +16,26 @@ | |||
16 | model = "Armadeus Systems APF27Dev docking/development board"; | 16 | model = "Armadeus Systems APF27Dev docking/development board"; |
17 | compatible = "armadeus,imx27-apf27dev", "armadeus,imx27-apf27", "fsl,imx27"; | 17 | compatible = "armadeus,imx27-apf27dev", "armadeus,imx27-apf27", "fsl,imx27"; |
18 | 18 | ||
19 | display: display { | ||
20 | model = "Chimei-LW700AT9003"; | ||
21 | native-mode = <&timing0>; | ||
22 | bits-per-pixel = <16>; /* non-standard but required */ | ||
23 | fsl,pcr = <0xfae80083>; /* non-standard but required */ | ||
24 | display-timings { | ||
25 | timing0: 640x480 { | ||
26 | clock-frequency = <33000033>; | ||
27 | hactive = <800>; | ||
28 | vactive = <640>; | ||
29 | hback-porch = <96>; | ||
30 | hfront-porch = <96>; | ||
31 | vback-porch = <20>; | ||
32 | vfront-porch = <21>; | ||
33 | hsync-len = <64>; | ||
34 | vsync-len = <4>; | ||
35 | }; | ||
36 | }; | ||
37 | }; | ||
38 | |||
19 | gpio-keys { | 39 | gpio-keys { |
20 | compatible = "gpio-keys"; | 40 | compatible = "gpio-keys"; |
21 | 41 | ||
@@ -50,6 +70,12 @@ | |||
50 | status = "okay"; | 70 | status = "okay"; |
51 | }; | 71 | }; |
52 | 72 | ||
73 | &fb { | ||
74 | display = <&display>; | ||
75 | fsl,dmacr = <0x00020010>; | ||
76 | status = "okay"; | ||
77 | }; | ||
78 | |||
53 | &i2c1 { | 79 | &i2c1 { |
54 | clock-frequency = <400000>; | 80 | clock-frequency = <400000>; |
55 | status = "okay"; | 81 | status = "okay"; |
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi index b7a1c6d950b9..826231eb4446 100644 --- a/arch/arm/boot/dts/imx27.dtsi +++ b/arch/arm/boot/dts/imx27.dtsi | |||
@@ -123,6 +123,7 @@ | |||
123 | }; | 123 | }; |
124 | 124 | ||
125 | pwm: pwm@10006000 { | 125 | pwm: pwm@10006000 { |
126 | #pwm-cells = <2>; | ||
126 | compatible = "fsl,imx27-pwm"; | 127 | compatible = "fsl,imx27-pwm"; |
127 | reg = <0x10006000 0x1000>; | 128 | reg = <0x10006000 0x1000>; |
128 | interrupts = <23>; | 129 | interrupts = <23>; |
diff --git a/arch/arm/boot/dts/imx28-apf28.dts b/arch/arm/boot/dts/imx28-apf28.dts index 7eb075876c4c..7198fe3798c6 100644 --- a/arch/arm/boot/dts/imx28-apf28.dts +++ b/arch/arm/boot/dts/imx28-apf28.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx28.dtsi" | 13 | #include "imx28.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Armadeus Systems APF28 module"; | 16 | model = "Armadeus Systems APF28 module"; |
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts index b602494c152b..e2efd8d89c4f 100644 --- a/arch/arm/boot/dts/imx28-apf28dev.dts +++ b/arch/arm/boot/dts/imx28-apf28dev.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /* APF28Dev is a docking board for the APF28 SOM */ | 12 | /* APF28Dev is a docking board for the APF28 SOM */ |
13 | /include/ "imx28-apf28.dts" | 13 | #include "imx28-apf28.dts" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Armadeus Systems APF28Dev docking/development board"; | 16 | model = "Armadeus Systems APF28Dev docking/development board"; |
@@ -41,30 +41,30 @@ | |||
41 | hog_pins_apf28dev: hog@0 { | 41 | hog_pins_apf28dev: hog@0 { |
42 | reg = <0>; | 42 | reg = <0>; |
43 | fsl,pinmux-ids = < | 43 | fsl,pinmux-ids = < |
44 | 0x1103 /* MX28_PAD_LCD_D16__GPIO_1_16 */ | 44 | MX28_PAD_LCD_D16__GPIO_1_16 |
45 | 0x1113 /* MX28_PAD_LCD_D17__GPIO_1_17 */ | 45 | MX28_PAD_LCD_D17__GPIO_1_17 |
46 | 0x1123 /* MX28_PAD_LCD_D18__GPIO_1_18 */ | 46 | MX28_PAD_LCD_D18__GPIO_1_18 |
47 | 0x1133 /* MX28_PAD_LCD_D19__GPIO_1_19 */ | 47 | MX28_PAD_LCD_D19__GPIO_1_19 |
48 | 0x1143 /* MX28_PAD_LCD_D20__GPIO_1_20 */ | 48 | MX28_PAD_LCD_D20__GPIO_1_20 |
49 | 0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */ | 49 | MX28_PAD_LCD_D21__GPIO_1_21 |
50 | 0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */ | 50 | MX28_PAD_LCD_D22__GPIO_1_22 |
51 | >; | 51 | >; |
52 | fsl,drive-strength = <0>; | 52 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
53 | fsl,voltage = <1>; | 53 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
54 | fsl,pull-up = <0>; | 54 | fsl,pull-up = <MXS_PULL_DISABLE>; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | lcdif_pins_apf28dev: lcdif-apf28dev@0 { | 57 | lcdif_pins_apf28dev: lcdif-apf28dev@0 { |
58 | reg = <0>; | 58 | reg = <0>; |
59 | fsl,pinmux-ids = < | 59 | fsl,pinmux-ids = < |
60 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 60 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
61 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 61 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
62 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 62 | MX28_PAD_LCD_RS__LCD_DOTCLK |
63 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 63 | MX28_PAD_LCD_CS__LCD_ENABLE |
64 | >; | 64 | >; |
65 | fsl,drive-strength = <0>; | 65 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
66 | fsl,voltage = <1>; | 66 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
67 | fsl,pull-up = <0>; | 67 | fsl,pull-up = <MXS_PULL_DISABLE>; |
68 | }; | 68 | }; |
69 | }; | 69 | }; |
70 | 70 | ||
diff --git a/arch/arm/boot/dts/imx28-apx4devkit.dts b/arch/arm/boot/dts/imx28-apx4devkit.dts index 0e7fed47bd8d..6f254ca816cb 100644 --- a/arch/arm/boot/dts/imx28-apx4devkit.dts +++ b/arch/arm/boot/dts/imx28-apx4devkit.dts | |||
@@ -1,5 +1,5 @@ | |||
1 | /dts-v1/; | 1 | /dts-v1/; |
2 | /include/ "imx28.dtsi" | 2 | #include "imx28.dtsi" |
3 | 3 | ||
4 | / { | 4 | / { |
5 | model = "Bluegiga APX4 Development Kit"; | 5 | model = "Bluegiga APX4 Development Kit"; |
@@ -40,53 +40,53 @@ | |||
40 | hog_pins_a: hog@0 { | 40 | hog_pins_a: hog@0 { |
41 | reg = <0>; | 41 | reg = <0>; |
42 | fsl,pinmux-ids = < | 42 | fsl,pinmux-ids = < |
43 | 0x0113 /* MX28_PAD_GPMI_CE1N__GPIO_0_17 */ | 43 | MX28_PAD_GPMI_CE1N__GPIO_0_17 |
44 | 0x0153 /* MX28_PAD_GPMI_RDY1__GPIO_0_21 */ | 44 | MX28_PAD_GPMI_RDY1__GPIO_0_21 |
45 | 0x2123 /* MX28_PAD_SSP2_MISO__GPIO_2_18 */ | 45 | MX28_PAD_SSP2_MISO__GPIO_2_18 |
46 | 0x2131 /* MX28_PAD_SSP2_SS0__GPIO_2_19 */ | 46 | MX28_PAD_SSP2_SS0__AUART3_TX /* was: 0x2131 - MX28_PAD_SSP2_SS0__GPIO_2_19 */ |
47 | 0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ | 47 | MX28_PAD_PWM3__GPIO_3_28 |
48 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ | 48 | MX28_PAD_LCD_RESET__GPIO_3_30 |
49 | 0x4143 /* MX28_PAD_JTAG_RTCK__GPIO_4_20 */ | 49 | MX28_PAD_JTAG_RTCK__GPIO_4_20 |
50 | >; | 50 | >; |
51 | fsl,drive-strength = <0>; | 51 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
52 | fsl,voltage = <1>; | 52 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
53 | fsl,pull-up = <0>; | 53 | fsl,pull-up = <MXS_PULL_DISABLE>; |
54 | }; | 54 | }; |
55 | 55 | ||
56 | lcdif_pins_apx4: lcdif-apx4@0 { | 56 | lcdif_pins_apx4: lcdif-apx4@0 { |
57 | reg = <0>; | 57 | reg = <0>; |
58 | fsl,pinmux-ids = < | 58 | fsl,pinmux-ids = < |
59 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 59 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
60 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 60 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
61 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 61 | MX28_PAD_LCD_RS__LCD_DOTCLK |
62 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 62 | MX28_PAD_LCD_CS__LCD_ENABLE |
63 | >; | 63 | >; |
64 | fsl,drive-strength = <0>; | 64 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
65 | fsl,voltage = <1>; | 65 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
66 | fsl,pull-up = <0>; | 66 | fsl,pull-up = <MXS_PULL_DISABLE>; |
67 | }; | 67 | }; |
68 | 68 | ||
69 | mmc2_4bit_pins_apx4: mmc2-4bit-apx4@0 { | 69 | mmc2_4bit_pins_apx4: mmc2-4bit-apx4@0 { |
70 | reg = <0>; | 70 | reg = <0>; |
71 | fsl,pinmux-ids = < | 71 | fsl,pinmux-ids = < |
72 | 0x2041 /* MX28_PAD_SSP0_DATA4__SSP2_D0 */ | 72 | MX28_PAD_SSP0_DATA4__SSP2_D0 |
73 | 0x2051 /* MX28_PAD_SSP0_DATA5__SSP2_D3 */ | 73 | MX28_PAD_SSP0_DATA5__SSP2_D3 |
74 | 0x2061 /* MX28_PAD_SSP0_DATA6__SSP2_CMD */ | 74 | MX28_PAD_SSP0_DATA6__SSP2_CMD |
75 | 0x2071 /* MX28_PAD_SSP0_DATA7__SSP2_SCK */ | 75 | MX28_PAD_SSP0_DATA7__SSP2_SCK |
76 | 0x2141 /* MX28_PAD_SSP2_SS1__SSP2_D1 */ | 76 | MX28_PAD_SSP2_SS1__SSP2_D1 |
77 | 0x2151 /* MX28_PAD_SSP2_SS2__SSP2_D2 */ | 77 | MX28_PAD_SSP2_SS2__SSP2_D2 |
78 | >; | 78 | >; |
79 | fsl,drive-strength = <1>; | 79 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
80 | fsl,voltage = <1>; | 80 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
81 | fsl,pull-up = <1>; | 81 | fsl,pull-up = <MXS_PULL_ENABLE>; |
82 | }; | 82 | }; |
83 | 83 | ||
84 | mmc2_sck_cfg_apx4: mmc2-sck-cfg-apx4 { | 84 | mmc2_sck_cfg_apx4: mmc2-sck-cfg-apx4 { |
85 | fsl,pinmux-ids = < | 85 | fsl,pinmux-ids = < |
86 | 0x2071 /* MX28_PAD_SSP0_DATA7__SSP2_SCK */ | 86 | MX28_PAD_SSP0_DATA7__SSP2_SCK |
87 | >; | 87 | >; |
88 | fsl,drive-strength = <2>; | 88 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
89 | fsl,pull-up = <0>; | 89 | fsl,pull-up = <MXS_PULL_DISABLE>; |
90 | }; | 90 | }; |
91 | }; | 91 | }; |
92 | 92 | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10036.dts b/arch/arm/boot/dts/imx28-cfa10036.dts index 1ec8c94bbac9..cabb6171a19d 100644 --- a/arch/arm/boot/dts/imx28-cfa10036.dts +++ b/arch/arm/boot/dts/imx28-cfa10036.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx28.dtsi" | 13 | #include "imx28.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Crystalfontz CFA-10036 Board"; | 16 | model = "Crystalfontz CFA-10036 Board"; |
@@ -26,31 +26,31 @@ | |||
26 | ssd1306_cfa10036: ssd1306-10036@0 { | 26 | ssd1306_cfa10036: ssd1306-10036@0 { |
27 | reg = <0>; | 27 | reg = <0>; |
28 | fsl,pinmux-ids = < | 28 | fsl,pinmux-ids = < |
29 | 0x2073 /* MX28_PAD_SSP0_D7__GPIO_2_7 */ | 29 | MX28_PAD_SSP0_DATA7__GPIO_2_7 |
30 | >; | 30 | >; |
31 | fsl,drive-strength = <0>; | 31 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
32 | fsl,voltage = <1>; | 32 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
33 | fsl,pull-up = <0>; | 33 | fsl,pull-up = <MXS_PULL_DISABLE>; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | led_pins_cfa10036: leds-10036@0 { | 36 | led_pins_cfa10036: leds-10036@0 { |
37 | reg = <0>; | 37 | reg = <0>; |
38 | fsl,pinmux-ids = < | 38 | fsl,pinmux-ids = < |
39 | 0x3043 /* MX28_PAD_AUART1_RX__GPIO_3_4 */ | 39 | MX28_PAD_AUART1_RX__GPIO_3_4 |
40 | >; | 40 | >; |
41 | fsl,drive-strength = <0>; | 41 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
42 | fsl,voltage = <1>; | 42 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
43 | fsl,pull-up = <0>; | 43 | fsl,pull-up = <MXS_PULL_DISABLE>; |
44 | }; | 44 | }; |
45 | 45 | ||
46 | usb0_otg_cfa10036: otg-10036@0 { | 46 | usb0_otg_cfa10036: otg-10036@0 { |
47 | reg = <0>; | 47 | reg = <0>; |
48 | fsl,pinmux-ids = < | 48 | fsl,pinmux-ids = < |
49 | 0x0142 /* MX28_PAD_GPMI_READY0__USB0_ID */ | 49 | MX28_PAD_GPMI_RDY0__USB0_ID |
50 | >; | 50 | >; |
51 | fsl,drive-strength = <0>; | 51 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
52 | fsl,voltage = <1>; | 52 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
53 | fsl,pull-up = <0>; | 53 | fsl,pull-up = <MXS_PULL_DISABLE>; |
54 | }; | 54 | }; |
55 | 55 | ||
56 | }; | 56 | }; |
diff --git a/arch/arm/boot/dts/imx28-cfa10037.dts b/arch/arm/boot/dts/imx28-cfa10037.dts index 182b99fe35f3..f93e9a700e52 100644 --- a/arch/arm/boot/dts/imx28-cfa10037.dts +++ b/arch/arm/boot/dts/imx28-cfa10037.dts | |||
@@ -13,7 +13,7 @@ | |||
13 | * The CFA-10049 is an expansion board for the CFA-10036 module, thus we | 13 | * The CFA-10049 is an expansion board for the CFA-10036 module, thus we |
14 | * need to include the CFA-10036 DTS. | 14 | * need to include the CFA-10036 DTS. |
15 | */ | 15 | */ |
16 | /include/ "imx28-cfa10036.dts" | 16 | #include "imx28-cfa10036.dts" |
17 | 17 | ||
18 | / { | 18 | / { |
19 | model = "Crystalfontz CFA-10037 Board"; | 19 | model = "Crystalfontz CFA-10037 Board"; |
@@ -25,21 +25,21 @@ | |||
25 | usb_pins_cfa10037: usb-10037@0 { | 25 | usb_pins_cfa10037: usb-10037@0 { |
26 | reg = <0>; | 26 | reg = <0>; |
27 | fsl,pinmux-ids = < | 27 | fsl,pinmux-ids = < |
28 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ | 28 | MX28_PAD_GPMI_D07__GPIO_0_7 |
29 | >; | 29 | >; |
30 | fsl,drive-strength = <0>; | 30 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
31 | fsl,voltage = <1>; | 31 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
32 | fsl,pull-up = <0>; | 32 | fsl,pull-up = <MXS_PULL_DISABLE>; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | mac0_pins_cfa10037: mac0-10037@0 { | 35 | mac0_pins_cfa10037: mac0-10037@0 { |
36 | reg = <0>; | 36 | reg = <0>; |
37 | fsl,pinmux-ids = < | 37 | fsl,pinmux-ids = < |
38 | 0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */ | 38 | MX28_PAD_SSP2_SS2__GPIO_2_21 |
39 | >; | 39 | >; |
40 | fsl,drive-strength = <0>; | 40 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
41 | fsl,voltage = <1>; | 41 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
42 | fsl,pull-up = <0>; | 42 | fsl,pull-up = <MXS_PULL_DISABLE>; |
43 | }; | 43 | }; |
44 | }; | 44 | }; |
45 | }; | 45 | }; |
diff --git a/arch/arm/boot/dts/imx28-cfa10049.dts b/arch/arm/boot/dts/imx28-cfa10049.dts index 06e4cfaf7dd2..7087b4bf6a8f 100644 --- a/arch/arm/boot/dts/imx28-cfa10049.dts +++ b/arch/arm/boot/dts/imx28-cfa10049.dts | |||
@@ -13,7 +13,7 @@ | |||
13 | * The CFA-10049 is an expansion board for the CFA-10036 module, thus we | 13 | * The CFA-10049 is an expansion board for the CFA-10036 module, thus we |
14 | * need to include the CFA-10036 DTS. | 14 | * need to include the CFA-10036 DTS. |
15 | */ | 15 | */ |
16 | /include/ "imx28-cfa10036.dts" | 16 | #include "imx28-cfa10036.dts" |
17 | 17 | ||
18 | / { | 18 | / { |
19 | model = "Crystalfontz CFA-10049 Board"; | 19 | model = "Crystalfontz CFA-10049 Board"; |
@@ -25,150 +25,150 @@ | |||
25 | usb_pins_cfa10049: usb-10049@0 { | 25 | usb_pins_cfa10049: usb-10049@0 { |
26 | reg = <0>; | 26 | reg = <0>; |
27 | fsl,pinmux-ids = < | 27 | fsl,pinmux-ids = < |
28 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ | 28 | MX28_PAD_GPMI_D07__GPIO_0_7 |
29 | >; | 29 | >; |
30 | fsl,drive-strength = <0>; | 30 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
31 | fsl,voltage = <1>; | 31 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
32 | fsl,pull-up = <0>; | 32 | fsl,pull-up = <MXS_PULL_DISABLE>; |
33 | }; | 33 | }; |
34 | 34 | ||
35 | i2cmux_pins_cfa10049: i2cmux-10049@0 { | 35 | i2cmux_pins_cfa10049: i2cmux-10049@0 { |
36 | reg = <0>; | 36 | reg = <0>; |
37 | fsl,pinmux-ids = < | 37 | fsl,pinmux-ids = < |
38 | 0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */ | 38 | MX28_PAD_LCD_D22__GPIO_1_22 |
39 | 0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */ | 39 | MX28_PAD_LCD_D23__GPIO_1_23 |
40 | >; | 40 | >; |
41 | fsl,drive-strength = <0>; | 41 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
42 | fsl,voltage = <1>; | 42 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
43 | fsl,pull-up = <0>; | 43 | fsl,pull-up = <MXS_PULL_DISABLE>; |
44 | }; | 44 | }; |
45 | 45 | ||
46 | mac0_pins_cfa10049: mac0-10049@0 { | 46 | mac0_pins_cfa10049: mac0-10049@0 { |
47 | reg = <0>; | 47 | reg = <0>; |
48 | fsl,pinmux-ids = < | 48 | fsl,pinmux-ids = < |
49 | 0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */ | 49 | MX28_PAD_SSP2_SS2__GPIO_2_21 |
50 | >; | 50 | >; |
51 | fsl,drive-strength = <0>; | 51 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
52 | fsl,voltage = <1>; | 52 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
53 | fsl,pull-up = <0>; | 53 | fsl,pull-up = <MXS_PULL_DISABLE>; |
54 | }; | 54 | }; |
55 | 55 | ||
56 | pca_pins_cfa10049: pca-10049@0 { | 56 | pca_pins_cfa10049: pca-10049@0 { |
57 | reg = <0>; | 57 | reg = <0>; |
58 | fsl,pinmux-ids = < | 58 | fsl,pinmux-ids = < |
59 | 0x2133 /* MX28_PAD_SSP2_D3__GPIO_2_19 */ | 59 | MX28_PAD_SSP2_SS0__GPIO_2_19 |
60 | >; | 60 | >; |
61 | fsl,drive-strength = <0>; | 61 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
62 | fsl,voltage = <1>; | 62 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
63 | fsl,pull-up = <1>; | 63 | fsl,pull-up = <MXS_PULL_ENABLE>; |
64 | }; | 64 | }; |
65 | 65 | ||
66 | rotary_pins_cfa10049: rotary-10049@0 { | 66 | rotary_pins_cfa10049: rotary-10049@0 { |
67 | reg = <0>; | 67 | reg = <0>; |
68 | fsl,pinmux-ids = < | 68 | fsl,pinmux-ids = < |
69 | 0x3183 /* MX28_PAD_I2C0_SCL__GPIO_3_24 */ | 69 | MX28_PAD_I2C0_SCL__GPIO_3_24 |
70 | 0x3193 /* MX28_PAD_I2C0_SDA__GPIO_3_25 */ | 70 | MX28_PAD_I2C0_SDA__GPIO_3_25 |
71 | >; | 71 | >; |
72 | fsl,drive-strength = <0>; | 72 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
73 | fsl,voltage = <1>; | 73 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
74 | fsl,pull-up = <1>; | 74 | fsl,pull-up = <MXS_PULL_ENABLE>; |
75 | }; | 75 | }; |
76 | 76 | ||
77 | rotary_btn_pins_cfa10049: rotary-btn-10049@0 { | 77 | rotary_btn_pins_cfa10049: rotary-btn-10049@0 { |
78 | reg = <0>; | 78 | reg = <0>; |
79 | fsl,pinmux-ids = < | 79 | fsl,pinmux-ids = < |
80 | 0x31a3 /* MX28_PAD_SAIF_SDATA0__GPIO_3_26 */ | 80 | MX28_PAD_SAIF1_SDATA0__GPIO_3_26 |
81 | >; | 81 | >; |
82 | fsl,drive-strength = <0>; | 82 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
83 | fsl,voltage = <1>; | 83 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
84 | fsl,pull-up = <1>; | 84 | fsl,pull-up = <MXS_PULL_ENABLE>; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | spi2_pins_cfa10049: spi2-cfa10049@0 { | 87 | spi2_pins_cfa10049: spi2-cfa10049@0 { |
88 | reg = <0>; | 88 | reg = <0>; |
89 | fsl,pinmux-ids = < | 89 | fsl,pinmux-ids = < |
90 | 0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */ | 90 | MX28_PAD_SSP2_SCK__GPIO_2_16 |
91 | 0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */ | 91 | MX28_PAD_SSP2_MOSI__GPIO_2_17 |
92 | 0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */ | 92 | MX28_PAD_SSP2_MISO__GPIO_2_18 |
93 | 0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ | 93 | MX28_PAD_AUART1_TX__GPIO_3_5 |
94 | >; | 94 | >; |
95 | fsl,drive-strength = <1>; | 95 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
96 | fsl,voltage = <1>; | 96 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
97 | fsl,pull-up = <1>; | 97 | fsl,pull-up = <MXS_PULL_ENABLE>; |
98 | }; | 98 | }; |
99 | 99 | ||
100 | spi3_pins_cfa10049: spi3-cfa10049@0 { | 100 | spi3_pins_cfa10049: spi3-cfa10049@0 { |
101 | reg = <0>; | 101 | reg = <0>; |
102 | fsl,pinmux-ids = < | 102 | fsl,pinmux-ids = < |
103 | 0x0183 /* MX28_PAD_GPMI_RDN__GPIO_0_24 */ | 103 | MX28_PAD_GPMI_RDN__GPIO_0_24 |
104 | 0x01c3 /* MX28_PAD_GPMI_RESETN__GPIO_0_28 */ | 104 | MX28_PAD_GPMI_RESETN__GPIO_0_28 |
105 | 0x0113 /* MX28_PAD_GPMI_CE1N__GPIO_0_17 */ | 105 | MX28_PAD_GPMI_CE1N__GPIO_0_17 |
106 | 0x01a3 /* MX28_PAD_GPMI_ALE__GPIO_0_26 */ | 106 | MX28_PAD_GPMI_ALE__GPIO_0_26 |
107 | 0x01b3 /* MX28_PAD_GPMI_CLE__GPIO_0_27 */ | 107 | MX28_PAD_GPMI_CLE__GPIO_0_27 |
108 | >; | 108 | >; |
109 | fsl,drive-strength = <1>; | 109 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
110 | fsl,voltage = <1>; | 110 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
111 | fsl,pull-up = <1>; | 111 | fsl,pull-up = <MXS_PULL_ENABLE>; |
112 | }; | 112 | }; |
113 | 113 | ||
114 | lcdif_18bit_pins_cfa10049: lcdif-18bit@0 { | 114 | lcdif_18bit_pins_cfa10049: lcdif-18bit@0 { |
115 | reg = <0>; | 115 | reg = <0>; |
116 | fsl,pinmux-ids = < | 116 | fsl,pinmux-ids = < |
117 | 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ | 117 | MX28_PAD_LCD_D00__LCD_D0 |
118 | 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ | 118 | MX28_PAD_LCD_D01__LCD_D1 |
119 | 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ | 119 | MX28_PAD_LCD_D02__LCD_D2 |
120 | 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ | 120 | MX28_PAD_LCD_D03__LCD_D3 |
121 | 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ | 121 | MX28_PAD_LCD_D04__LCD_D4 |
122 | 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ | 122 | MX28_PAD_LCD_D05__LCD_D5 |
123 | 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ | 123 | MX28_PAD_LCD_D06__LCD_D6 |
124 | 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ | 124 | MX28_PAD_LCD_D07__LCD_D7 |
125 | 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ | 125 | MX28_PAD_LCD_D08__LCD_D8 |
126 | 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ | 126 | MX28_PAD_LCD_D09__LCD_D9 |
127 | 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ | 127 | MX28_PAD_LCD_D10__LCD_D10 |
128 | 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ | 128 | MX28_PAD_LCD_D11__LCD_D11 |
129 | 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ | 129 | MX28_PAD_LCD_D12__LCD_D12 |
130 | 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ | 130 | MX28_PAD_LCD_D13__LCD_D13 |
131 | 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ | 131 | MX28_PAD_LCD_D14__LCD_D14 |
132 | 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ | 132 | MX28_PAD_LCD_D15__LCD_D15 |
133 | 0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */ | 133 | MX28_PAD_LCD_D16__LCD_D16 |
134 | 0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */ | 134 | MX28_PAD_LCD_D17__LCD_D17 |
135 | >; | 135 | >; |
136 | fsl,drive-strength = <0>; | 136 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
137 | fsl,voltage = <1>; | 137 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
138 | fsl,pull-up = <0>; | 138 | fsl,pull-up = <MXS_PULL_DISABLE>; |
139 | }; | 139 | }; |
140 | 140 | ||
141 | lcdif_pins_cfa10049: lcdif-evk@0 { | 141 | lcdif_pins_cfa10049: lcdif-evk@0 { |
142 | reg = <0>; | 142 | reg = <0>; |
143 | fsl,pinmux-ids = < | 143 | fsl,pinmux-ids = < |
144 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 144 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
145 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 145 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
146 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 146 | MX28_PAD_LCD_RS__LCD_DOTCLK |
147 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 147 | MX28_PAD_LCD_CS__LCD_ENABLE |
148 | >; | 148 | >; |
149 | fsl,drive-strength = <0>; | 149 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
150 | fsl,voltage = <1>; | 150 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
151 | fsl,pull-up = <0>; | 151 | fsl,pull-up = <MXS_PULL_DISABLE>; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | lcdif_pins_cfa10049_pullup: lcdif-10049-pullup@0 { | 154 | lcdif_pins_cfa10049_pullup: lcdif-10049-pullup@0 { |
155 | reg = <0>; | 155 | reg = <0>; |
156 | fsl,pinmux-ids = < | 156 | fsl,pinmux-ids = < |
157 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ | 157 | MX28_PAD_LCD_RESET__GPIO_3_30 |
158 | >; | 158 | >; |
159 | fsl,drive-strength = <0>; | 159 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
160 | fsl,voltage = <1>; | 160 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
161 | fsl,pull-up = <1>; | 161 | fsl,pull-up = <MXS_PULL_ENABLE>; |
162 | }; | 162 | }; |
163 | 163 | ||
164 | w1_gpio_pins: w1-gpio@0 { | 164 | w1_gpio_pins: w1-gpio@0 { |
165 | reg = <0>; | 165 | reg = <0>; |
166 | fsl,pinmux-ids = < | 166 | fsl,pinmux-ids = < |
167 | 0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */ | 167 | MX28_PAD_LCD_D21__GPIO_1_21 |
168 | >; | 168 | >; |
169 | fsl,drive-strength = <1>; | 169 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
170 | fsl,voltage = <1>; | 170 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
171 | fsl,pull-up = <0>; /* 0 will enable the keeper */ | 171 | fsl,pull-up = <MXS_PULL_DISABLE>; /* 0 will enable the keeper */ |
172 | }; | 172 | }; |
173 | }; | 173 | }; |
174 | 174 | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10055.dts b/arch/arm/boot/dts/imx28-cfa10055.dts index 171bcbe1ec4b..c3900e7ba331 100644 --- a/arch/arm/boot/dts/imx28-cfa10055.dts +++ b/arch/arm/boot/dts/imx28-cfa10055.dts | |||
@@ -14,7 +14,7 @@ | |||
14 | * The CFA-10055 is an expansion board for the CFA-10036 module and | 14 | * The CFA-10055 is an expansion board for the CFA-10036 module and |
15 | * CFA-10037, thus we need to include the CFA-10037 DTS. | 15 | * CFA-10037, thus we need to include the CFA-10037 DTS. |
16 | */ | 16 | */ |
17 | /include/ "imx28-cfa10037.dts" | 17 | #include "imx28-cfa10037.dts" |
18 | 18 | ||
19 | / { | 19 | / { |
20 | model = "Crystalfontz CFA-10055 Board"; | 20 | model = "Crystalfontz CFA-10055 Board"; |
@@ -26,64 +26,64 @@ | |||
26 | spi2_pins_cfa10055: spi2-cfa10055@0 { | 26 | spi2_pins_cfa10055: spi2-cfa10055@0 { |
27 | reg = <0>; | 27 | reg = <0>; |
28 | fsl,pinmux-ids = < | 28 | fsl,pinmux-ids = < |
29 | 0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */ | 29 | MX28_PAD_SSP2_SCK__GPIO_2_16 |
30 | 0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */ | 30 | MX28_PAD_SSP2_MOSI__GPIO_2_17 |
31 | 0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */ | 31 | MX28_PAD_SSP2_MISO__GPIO_2_18 |
32 | 0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ | 32 | MX28_PAD_AUART1_TX__GPIO_3_5 |
33 | >; | 33 | >; |
34 | fsl,drive-strength = <1>; | 34 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
35 | fsl,voltage = <1>; | 35 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
36 | fsl,pull-up = <1>; | 36 | fsl,pull-up = <MXS_PULL_ENABLE>; |
37 | }; | 37 | }; |
38 | 38 | ||
39 | lcdif_18bit_pins_cfa10055: lcdif-18bit@0 { | 39 | lcdif_18bit_pins_cfa10055: lcdif-18bit@0 { |
40 | reg = <0>; | 40 | reg = <0>; |
41 | fsl,pinmux-ids = < | 41 | fsl,pinmux-ids = < |
42 | 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ | 42 | MX28_PAD_LCD_D00__LCD_D0 |
43 | 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ | 43 | MX28_PAD_LCD_D01__LCD_D1 |
44 | 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ | 44 | MX28_PAD_LCD_D02__LCD_D2 |
45 | 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ | 45 | MX28_PAD_LCD_D03__LCD_D3 |
46 | 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ | 46 | MX28_PAD_LCD_D04__LCD_D4 |
47 | 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ | 47 | MX28_PAD_LCD_D05__LCD_D5 |
48 | 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ | 48 | MX28_PAD_LCD_D06__LCD_D6 |
49 | 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ | 49 | MX28_PAD_LCD_D07__LCD_D7 |
50 | 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ | 50 | MX28_PAD_LCD_D08__LCD_D8 |
51 | 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ | 51 | MX28_PAD_LCD_D09__LCD_D9 |
52 | 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ | 52 | MX28_PAD_LCD_D10__LCD_D10 |
53 | 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ | 53 | MX28_PAD_LCD_D11__LCD_D11 |
54 | 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ | 54 | MX28_PAD_LCD_D12__LCD_D12 |
55 | 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ | 55 | MX28_PAD_LCD_D13__LCD_D13 |
56 | 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ | 56 | MX28_PAD_LCD_D14__LCD_D14 |
57 | 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ | 57 | MX28_PAD_LCD_D15__LCD_D15 |
58 | 0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */ | 58 | MX28_PAD_LCD_D16__LCD_D16 |
59 | 0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */ | 59 | MX28_PAD_LCD_D17__LCD_D17 |
60 | >; | 60 | >; |
61 | fsl,drive-strength = <0>; | 61 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
62 | fsl,voltage = <1>; | 62 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
63 | fsl,pull-up = <0>; | 63 | fsl,pull-up = <MXS_PULL_DISABLE>; |
64 | }; | 64 | }; |
65 | 65 | ||
66 | lcdif_pins_cfa10055: lcdif-evk@0 { | 66 | lcdif_pins_cfa10055: lcdif-evk@0 { |
67 | reg = <0>; | 67 | reg = <0>; |
68 | fsl,pinmux-ids = < | 68 | fsl,pinmux-ids = < |
69 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 69 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
70 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 70 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
71 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 71 | MX28_PAD_LCD_RS__LCD_DOTCLK |
72 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 72 | MX28_PAD_LCD_CS__LCD_ENABLE |
73 | >; | 73 | >; |
74 | fsl,drive-strength = <0>; | 74 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
75 | fsl,voltage = <1>; | 75 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
76 | fsl,pull-up = <0>; | 76 | fsl,pull-up = <MXS_PULL_DISABLE>; |
77 | }; | 77 | }; |
78 | 78 | ||
79 | lcdif_pins_cfa10055_pullup: lcdif-10055-pullup@0 { | 79 | lcdif_pins_cfa10055_pullup: lcdif-10055-pullup@0 { |
80 | reg = <0>; | 80 | reg = <0>; |
81 | fsl,pinmux-ids = < | 81 | fsl,pinmux-ids = < |
82 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ | 82 | MX28_PAD_LCD_RESET__GPIO_3_30 |
83 | >; | 83 | >; |
84 | fsl,drive-strength = <0>; | 84 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
85 | fsl,voltage = <1>; | 85 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
86 | fsl,pull-up = <1>; | 86 | fsl,pull-up = <MXS_PULL_ENABLE>; |
87 | }; | 87 | }; |
88 | }; | 88 | }; |
89 | 89 | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10056.dts b/arch/arm/boot/dts/imx28-cfa10056.dts index b45dd0e4ee57..cef959a97219 100644 --- a/arch/arm/boot/dts/imx28-cfa10056.dts +++ b/arch/arm/boot/dts/imx28-cfa10056.dts | |||
@@ -13,7 +13,7 @@ | |||
13 | * The CFA-10055 is an expansion board for the CFA-10036 module and | 13 | * The CFA-10055 is an expansion board for the CFA-10036 module and |
14 | * CFA-10037, thus we need to include the CFA-10037 DTS. | 14 | * CFA-10037, thus we need to include the CFA-10037 DTS. |
15 | */ | 15 | */ |
16 | /include/ "imx28-cfa10037.dts" | 16 | #include "imx28-cfa10037.dts" |
17 | 17 | ||
18 | / { | 18 | / { |
19 | model = "Crystalfontz CFA-10056 Board"; | 19 | model = "Crystalfontz CFA-10056 Board"; |
@@ -25,37 +25,37 @@ | |||
25 | spi2_pins_cfa10056: spi2-cfa10056@0 { | 25 | spi2_pins_cfa10056: spi2-cfa10056@0 { |
26 | reg = <0>; | 26 | reg = <0>; |
27 | fsl,pinmux-ids = < | 27 | fsl,pinmux-ids = < |
28 | 0x2103 /* MX28_PAD_SSP2_SCK__GPIO_2_16 */ | 28 | MX28_PAD_SSP2_SCK__GPIO_2_16 |
29 | 0x2113 /* MX28_PAD_SSP2_CMD__GPIO_2_17 */ | 29 | MX28_PAD_SSP2_MOSI__GPIO_2_17 |
30 | 0x2123 /* MX28_PAD_SSP2_D0__GPIO_2_18 */ | 30 | MX28_PAD_SSP2_MISO__GPIO_2_18 |
31 | 0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ | 31 | MX28_PAD_AUART1_TX__GPIO_3_5 |
32 | >; | 32 | >; |
33 | fsl,drive-strength = <1>; | 33 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
34 | fsl,voltage = <1>; | 34 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
35 | fsl,pull-up = <1>; | 35 | fsl,pull-up = <MXS_PULL_ENABLE>; |
36 | }; | 36 | }; |
37 | 37 | ||
38 | lcdif_pins_cfa10056: lcdif-10056@0 { | 38 | lcdif_pins_cfa10056: lcdif-10056@0 { |
39 | reg = <0>; | 39 | reg = <0>; |
40 | fsl,pinmux-ids = < | 40 | fsl,pinmux-ids = < |
41 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 41 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
42 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 42 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
43 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 43 | MX28_PAD_LCD_RS__LCD_DOTCLK |
44 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 44 | MX28_PAD_LCD_CS__LCD_ENABLE |
45 | >; | 45 | >; |
46 | fsl,drive-strength = <0>; | 46 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
47 | fsl,voltage = <1>; | 47 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
48 | fsl,pull-up = <0>; | 48 | fsl,pull-up = <MXS_PULL_DISABLE>; |
49 | }; | 49 | }; |
50 | 50 | ||
51 | lcdif_pins_cfa10056_pullup: lcdif-10056-pullup@0 { | 51 | lcdif_pins_cfa10056_pullup: lcdif-10056-pullup@0 { |
52 | reg = <0>; | 52 | reg = <0>; |
53 | fsl,pinmux-ids = < | 53 | fsl,pinmux-ids = < |
54 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ | 54 | MX28_PAD_LCD_RESET__GPIO_3_30 |
55 | >; | 55 | >; |
56 | fsl,drive-strength = <0>; | 56 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
57 | fsl,voltage = <1>; | 57 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
58 | fsl,pull-up = <1>; | 58 | fsl,pull-up = <MXS_PULL_ENABLE>; |
59 | }; | 59 | }; |
60 | }; | 60 | }; |
61 | 61 | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10057.dts b/arch/arm/boot/dts/imx28-cfa10057.dts index 0333c0532f28..3c1312885ae0 100644 --- a/arch/arm/boot/dts/imx28-cfa10057.dts +++ b/arch/arm/boot/dts/imx28-cfa10057.dts | |||
@@ -14,7 +14,7 @@ | |||
14 | * The CFA-10057 is an expansion board for the CFA-10036 module, thus we | 14 | * The CFA-10057 is an expansion board for the CFA-10036 module, thus we |
15 | * need to include the CFA-10036 DTS. | 15 | * need to include the CFA-10036 DTS. |
16 | */ | 16 | */ |
17 | /include/ "imx28-cfa10036.dts" | 17 | #include "imx28-cfa10036.dts" |
18 | 18 | ||
19 | / { | 19 | / { |
20 | model = "Crystalfontz CFA-10057 Board"; | 20 | model = "Crystalfontz CFA-10057 Board"; |
@@ -26,51 +26,51 @@ | |||
26 | usb_pins_cfa10057: usb-10057@0 { | 26 | usb_pins_cfa10057: usb-10057@0 { |
27 | reg = <0>; | 27 | reg = <0>; |
28 | fsl,pinmux-ids = < | 28 | fsl,pinmux-ids = < |
29 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ | 29 | MX28_PAD_GPMI_D07__GPIO_0_7 |
30 | >; | 30 | >; |
31 | fsl,drive-strength = <0>; | 31 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
32 | fsl,voltage = <1>; | 32 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
33 | fsl,pull-up = <0>; | 33 | fsl,pull-up = <MXS_PULL_DISABLE>; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | lcdif_18bit_pins_cfa10057: lcdif-18bit@0 { | 36 | lcdif_18bit_pins_cfa10057: lcdif-18bit@0 { |
37 | reg = <0>; | 37 | reg = <0>; |
38 | fsl,pinmux-ids = < | 38 | fsl,pinmux-ids = < |
39 | 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ | 39 | MX28_PAD_LCD_D00__LCD_D0 |
40 | 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ | 40 | MX28_PAD_LCD_D01__LCD_D1 |
41 | 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ | 41 | MX28_PAD_LCD_D02__LCD_D2 |
42 | 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ | 42 | MX28_PAD_LCD_D03__LCD_D3 |
43 | 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ | 43 | MX28_PAD_LCD_D04__LCD_D4 |
44 | 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ | 44 | MX28_PAD_LCD_D05__LCD_D5 |
45 | 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ | 45 | MX28_PAD_LCD_D06__LCD_D6 |
46 | 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ | 46 | MX28_PAD_LCD_D07__LCD_D7 |
47 | 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ | 47 | MX28_PAD_LCD_D08__LCD_D8 |
48 | 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ | 48 | MX28_PAD_LCD_D09__LCD_D9 |
49 | 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ | 49 | MX28_PAD_LCD_D10__LCD_D10 |
50 | 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ | 50 | MX28_PAD_LCD_D11__LCD_D11 |
51 | 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ | 51 | MX28_PAD_LCD_D12__LCD_D12 |
52 | 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ | 52 | MX28_PAD_LCD_D13__LCD_D13 |
53 | 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ | 53 | MX28_PAD_LCD_D14__LCD_D14 |
54 | 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ | 54 | MX28_PAD_LCD_D15__LCD_D15 |
55 | 0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */ | 55 | MX28_PAD_LCD_D16__LCD_D16 |
56 | 0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */ | 56 | MX28_PAD_LCD_D17__LCD_D17 |
57 | >; | 57 | >; |
58 | fsl,drive-strength = <0>; | 58 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
59 | fsl,voltage = <1>; | 59 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
60 | fsl,pull-up = <0>; | 60 | fsl,pull-up = <MXS_PULL_DISABLE>; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | lcdif_pins_cfa10057: lcdif-evk@0 { | 63 | lcdif_pins_cfa10057: lcdif-evk@0 { |
64 | reg = <0>; | 64 | reg = <0>; |
65 | fsl,pinmux-ids = < | 65 | fsl,pinmux-ids = < |
66 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 66 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
67 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 67 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
68 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 68 | MX28_PAD_LCD_RS__LCD_DOTCLK |
69 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 69 | MX28_PAD_LCD_CS__LCD_ENABLE |
70 | >; | 70 | >; |
71 | fsl,drive-strength = <0>; | 71 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
72 | fsl,voltage = <1>; | 72 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
73 | fsl,pull-up = <0>; | 73 | fsl,pull-up = <MXS_PULL_DISABLE>; |
74 | }; | 74 | }; |
75 | }; | 75 | }; |
76 | 76 | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10058.dts b/arch/arm/boot/dts/imx28-cfa10058.dts index 64c64c55a82a..2469d34df0ae 100644 --- a/arch/arm/boot/dts/imx28-cfa10058.dts +++ b/arch/arm/boot/dts/imx28-cfa10058.dts | |||
@@ -14,7 +14,7 @@ | |||
14 | * The CFA-10058 is an expansion board for the CFA-10036 module, thus we | 14 | * The CFA-10058 is an expansion board for the CFA-10036 module, thus we |
15 | * need to include the CFA-10036 DTS. | 15 | * need to include the CFA-10036 DTS. |
16 | */ | 16 | */ |
17 | /include/ "imx28-cfa10036.dts" | 17 | #include "imx28-cfa10036.dts" |
18 | 18 | ||
19 | / { | 19 | / { |
20 | model = "Crystalfontz CFA-10058 Board"; | 20 | model = "Crystalfontz CFA-10058 Board"; |
@@ -26,24 +26,24 @@ | |||
26 | usb_pins_cfa10058: usb-10058@0 { | 26 | usb_pins_cfa10058: usb-10058@0 { |
27 | reg = <0>; | 27 | reg = <0>; |
28 | fsl,pinmux-ids = < | 28 | fsl,pinmux-ids = < |
29 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ | 29 | MX28_PAD_GPMI_D07__GPIO_0_7 |
30 | >; | 30 | >; |
31 | fsl,drive-strength = <0>; | 31 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
32 | fsl,voltage = <1>; | 32 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
33 | fsl,pull-up = <0>; | 33 | fsl,pull-up = <MXS_PULL_DISABLE>; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | lcdif_pins_cfa10058: lcdif-10058@0 { | 36 | lcdif_pins_cfa10058: lcdif-10058@0 { |
37 | reg = <0>; | 37 | reg = <0>; |
38 | fsl,pinmux-ids = < | 38 | fsl,pinmux-ids = < |
39 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 39 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
40 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 40 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
41 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 41 | MX28_PAD_LCD_RS__LCD_DOTCLK |
42 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 42 | MX28_PAD_LCD_CS__LCD_ENABLE |
43 | >; | 43 | >; |
44 | fsl,drive-strength = <0>; | 44 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
45 | fsl,voltage = <1>; | 45 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
46 | fsl,pull-up = <0>; | 46 | fsl,pull-up = <MXS_PULL_DISABLE>; |
47 | }; | 47 | }; |
48 | }; | 48 | }; |
49 | 49 | ||
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts index aa33393903a8..4267c2b05d60 100644 --- a/arch/arm/boot/dts/imx28-evk.dts +++ b/arch/arm/boot/dts/imx28-evk.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx28.dtsi" | 13 | #include "imx28.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "Freescale i.MX28 Evaluation Kit"; | 16 | model = "Freescale i.MX28 Evaluation Kit"; |
@@ -70,52 +70,52 @@ | |||
70 | hog_pins_a: hog@0 { | 70 | hog_pins_a: hog@0 { |
71 | reg = <0>; | 71 | reg = <0>; |
72 | fsl,pinmux-ids = < | 72 | fsl,pinmux-ids = < |
73 | 0x20d3 /* MX28_PAD_SSP1_CMD__GPIO_2_13 */ | 73 | MX28_PAD_SSP1_CMD__GPIO_2_13 |
74 | 0x20f3 /* MX28_PAD_SSP1_DATA3__GPIO_2_15 */ | 74 | MX28_PAD_SSP1_DATA3__GPIO_2_15 |
75 | 0x40d3 /* MX28_PAD_ENET0_RX_CLK__GPIO_4_13 */ | 75 | MX28_PAD_ENET0_RX_CLK__GPIO_4_13 |
76 | 0x20c3 /* MX28_PAD_SSP1_SCK__GPIO_2_12 */ | 76 | MX28_PAD_SSP1_SCK__GPIO_2_12 |
77 | 0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ | 77 | MX28_PAD_PWM3__GPIO_3_28 |
78 | 0x31e3 /* MX28_PAD_LCD_RESET__GPIO_3_30 */ | 78 | MX28_PAD_LCD_RESET__GPIO_3_30 |
79 | 0x3083 /* MX28_PAD_AUART2_RX__GPIO_3_8 */ | 79 | MX28_PAD_AUART2_RX__GPIO_3_8 |
80 | 0x3093 /* MX28_PAD_AUART2_TX__GPIO_3_9 */ | 80 | MX28_PAD_AUART2_TX__GPIO_3_9 |
81 | >; | 81 | >; |
82 | fsl,drive-strength = <0>; | 82 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
83 | fsl,voltage = <1>; | 83 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
84 | fsl,pull-up = <0>; | 84 | fsl,pull-up = <MXS_PULL_DISABLE>; |
85 | }; | 85 | }; |
86 | 86 | ||
87 | led_pin_gpio3_5: led_gpio3_5@0 { | 87 | led_pin_gpio3_5: led_gpio3_5@0 { |
88 | reg = <0>; | 88 | reg = <0>; |
89 | fsl,pinmux-ids = < | 89 | fsl,pinmux-ids = < |
90 | 0x3053 /* MX28_PAD_AUART1_TX__GPIO_3_5 */ | 90 | MX28_PAD_AUART1_TX__GPIO_3_5 |
91 | >; | 91 | >; |
92 | fsl,drive-strength = <0>; | 92 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
93 | fsl,voltage = <1>; | 93 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
94 | fsl,pull-up = <0>; | 94 | fsl,pull-up = <MXS_PULL_DISABLE>; |
95 | }; | 95 | }; |
96 | 96 | ||
97 | gpmi_pins_evk: gpmi-nand-evk@0 { | 97 | gpmi_pins_evk: gpmi-nand-evk@0 { |
98 | reg = <0>; | 98 | reg = <0>; |
99 | fsl,pinmux-ids = < | 99 | fsl,pinmux-ids = < |
100 | 0x0110 /* MX28_PAD_GPMI_CE1N__GPMI_CE1N */ | 100 | MX28_PAD_GPMI_CE1N__GPMI_CE1N |
101 | 0x0150 /* MX28_PAD_GPMI_RDY1__GPMI_READY1 */ | 101 | MX28_PAD_GPMI_RDY1__GPMI_READY1 |
102 | >; | 102 | >; |
103 | fsl,drive-strength = <0>; | 103 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
104 | fsl,voltage = <1>; | 104 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
105 | fsl,pull-up = <0>; | 105 | fsl,pull-up = <MXS_PULL_DISABLE>; |
106 | }; | 106 | }; |
107 | 107 | ||
108 | lcdif_pins_evk: lcdif-evk@0 { | 108 | lcdif_pins_evk: lcdif-evk@0 { |
109 | reg = <0>; | 109 | reg = <0>; |
110 | fsl,pinmux-ids = < | 110 | fsl,pinmux-ids = < |
111 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 111 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
112 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 112 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
113 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 113 | MX28_PAD_LCD_RS__LCD_DOTCLK |
114 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 114 | MX28_PAD_LCD_CS__LCD_ENABLE |
115 | >; | 115 | >; |
116 | fsl,drive-strength = <0>; | 116 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
117 | fsl,voltage = <1>; | 117 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
118 | fsl,pull-up = <0>; | 118 | fsl,pull-up = <MXS_PULL_DISABLE>; |
119 | }; | 119 | }; |
120 | }; | 120 | }; |
121 | 121 | ||
@@ -182,6 +182,7 @@ | |||
182 | }; | 182 | }; |
183 | 183 | ||
184 | lradc@80050000 { | 184 | lradc@80050000 { |
185 | fsl,lradc-touchscreen-wires = <4>; | ||
185 | status = "okay"; | 186 | status = "okay"; |
186 | fsl,lradc-touchscreen-wires = <4>; | 187 | fsl,lradc-touchscreen-wires = <4>; |
187 | fsl,ave-ctrl = <4>; | 188 | fsl,ave-ctrl = <4>; |
@@ -246,6 +247,8 @@ | |||
246 | 247 | ||
247 | ahb@80080000 { | 248 | ahb@80080000 { |
248 | usb0: usb@80080000 { | 249 | usb0: usb@80080000 { |
250 | pinctrl-names = "default"; | ||
251 | pinctrl-0 = <&usb0_id_pins_a>; | ||
249 | vbus-supply = <®_usb0_vbus>; | 252 | vbus-supply = <®_usb0_vbus>; |
250 | status = "okay"; | 253 | status = "okay"; |
251 | }; | 254 | }; |
diff --git a/arch/arm/boot/dts/imx28-m28cu3.dts b/arch/arm/boot/dts/imx28-m28cu3.dts new file mode 100644 index 000000000000..d3958da60bd7 --- /dev/null +++ b/arch/arm/boot/dts/imx28-m28cu3.dts | |||
@@ -0,0 +1,266 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Marek Vasut <marex@denx.de> | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | #include "imx28.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "MSR M28CU3"; | ||
17 | compatible = "msr,m28cu3", "fsl,imx28"; | ||
18 | |||
19 | memory { | ||
20 | reg = <0x40000000 0x08000000>; | ||
21 | }; | ||
22 | |||
23 | apb@80000000 { | ||
24 | apbh@80000000 { | ||
25 | gpmi-nand@8000c000 { | ||
26 | #address-cells = <1>; | ||
27 | #size-cells = <1>; | ||
28 | pinctrl-names = "default"; | ||
29 | pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; | ||
30 | status = "okay"; | ||
31 | |||
32 | partition@0 { | ||
33 | label = "gpmi-nfc-0-boot"; | ||
34 | reg = <0x00000000 0x01400000>; | ||
35 | read-only; | ||
36 | }; | ||
37 | |||
38 | partition@1 { | ||
39 | label = "gpmi-nfc-general-use"; | ||
40 | reg = <0x01400000 0x0ec00000>; | ||
41 | }; | ||
42 | }; | ||
43 | |||
44 | ssp0: ssp@80010000 { | ||
45 | compatible = "fsl,imx28-mmc"; | ||
46 | pinctrl-names = "default"; | ||
47 | pinctrl-0 = <&mmc0_4bit_pins_a | ||
48 | &mmc0_cd_cfg | ||
49 | &mmc0_sck_cfg>; | ||
50 | bus-width = <4>; | ||
51 | vmmc-supply = <®_vddio_sd0>; | ||
52 | status = "okay"; | ||
53 | }; | ||
54 | |||
55 | ssp2: ssp@80014000 { | ||
56 | compatible = "fsl,imx28-mmc"; | ||
57 | pinctrl-names = "default"; | ||
58 | pinctrl-0 = <&mmc2_4bit_pins_a | ||
59 | &mmc2_cd_cfg | ||
60 | &mmc2_sck_cfg>; | ||
61 | bus-width = <4>; | ||
62 | vmmc-supply = <®_vddio_sd1>; | ||
63 | status = "okay"; | ||
64 | }; | ||
65 | |||
66 | pinctrl@80018000 { | ||
67 | pinctrl-names = "default"; | ||
68 | pinctrl-0 = <&hog_pins_a>; | ||
69 | |||
70 | hog_pins_a: hog@0 { | ||
71 | reg = <0>; | ||
72 | fsl,pinmux-ids = < | ||
73 | MX28_PAD_SSP2_SS0__GPIO_2_19 | ||
74 | MX28_PAD_PWM4__GPIO_3_29 | ||
75 | MX28_PAD_AUART2_RX__GPIO_3_8 | ||
76 | MX28_PAD_ENET0_RX_CLK__GPIO_4_13 | ||
77 | >; | ||
78 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
79 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
80 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
81 | }; | ||
82 | |||
83 | lcdif_pins_m28: lcdif-m28@0 { | ||
84 | reg = <0>; | ||
85 | fsl,pinmux-ids = < | ||
86 | MX28_PAD_LCD_VSYNC__LCD_VSYNC | ||
87 | MX28_PAD_LCD_HSYNC__LCD_HSYNC | ||
88 | MX28_PAD_LCD_DOTCLK__LCD_DOTCLK | ||
89 | MX28_PAD_LCD_RESET__LCD_RESET | ||
90 | MX28_PAD_LCD_CS__LCD_ENABLE | ||
91 | MX28_PAD_AUART1_TX__GPIO_3_5 | ||
92 | >; | ||
93 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
94 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
95 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
96 | }; | ||
97 | |||
98 | led_pins_gpio: leds-m28@0 { | ||
99 | reg = <0>; | ||
100 | fsl,pinmux-ids = < | ||
101 | MX28_PAD_SSP3_MISO__GPIO_2_26 | ||
102 | MX28_PAD_SSP3_SCK__GPIO_2_24 | ||
103 | >; | ||
104 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
105 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
106 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
107 | }; | ||
108 | }; | ||
109 | |||
110 | ocotp@8002c000 { | ||
111 | status = "okay"; | ||
112 | }; | ||
113 | |||
114 | lcdif@80030000 { | ||
115 | pinctrl-names = "default"; | ||
116 | pinctrl-0 = <&lcdif_24bit_pins_a | ||
117 | &lcdif_pins_m28>; | ||
118 | display = <&display>; | ||
119 | reset-active-high; | ||
120 | status = "okay"; | ||
121 | |||
122 | display: display0 { | ||
123 | bits-per-pixel = <32>; | ||
124 | bus-width = <24>; | ||
125 | |||
126 | display-timings { | ||
127 | native-mode = <&timing0>; | ||
128 | timing0: timing0 { | ||
129 | clock-frequency = <6410256>; | ||
130 | hactive = <320>; | ||
131 | vactive = <240>; | ||
132 | hback-porch = <38>; | ||
133 | hfront-porch = <20>; | ||
134 | vback-porch = <15>; | ||
135 | vfront-porch = <5>; | ||
136 | hsync-len = <30>; | ||
137 | vsync-len = <3>; | ||
138 | hsync-active = <0>; | ||
139 | vsync-active = <0>; | ||
140 | de-active = <1>; | ||
141 | pixelclk-active = <1>; | ||
142 | }; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | }; | ||
147 | |||
148 | apbx@80040000 { | ||
149 | duart: serial@80074000 { | ||
150 | pinctrl-names = "default"; | ||
151 | pinctrl-0 = <&duart_pins_b>; | ||
152 | status = "okay"; | ||
153 | }; | ||
154 | |||
155 | usbphy1: usbphy@8007e000 { | ||
156 | status = "okay"; | ||
157 | }; | ||
158 | |||
159 | auart0: serial@8006a000 { | ||
160 | pinctrl-names = "default"; | ||
161 | pinctrl-0 = <&auart0_2pins_a>; | ||
162 | status = "okay"; | ||
163 | }; | ||
164 | |||
165 | auart3: serial@80070000 { | ||
166 | pinctrl-names = "default"; | ||
167 | pinctrl-0 = <&auart3_2pins_b>; | ||
168 | status = "okay"; | ||
169 | }; | ||
170 | |||
171 | pwm: pwm@80064000 { | ||
172 | pinctrl-names = "default"; | ||
173 | pinctrl-0 = <&pwm3_pins_a>; | ||
174 | status = "okay"; | ||
175 | }; | ||
176 | }; | ||
177 | }; | ||
178 | |||
179 | ahb@80080000 { | ||
180 | usb1: usb@80090000 { | ||
181 | vbus-supply = <®_usb1_vbus>; | ||
182 | pinctrl-names = "default"; | ||
183 | pinctrl-0 = <&usbphy1_pins_a>; | ||
184 | disable-over-current; | ||
185 | status = "okay"; | ||
186 | }; | ||
187 | |||
188 | mac0: ethernet@800f0000 { | ||
189 | phy-mode = "rmii"; | ||
190 | pinctrl-names = "default"; | ||
191 | pinctrl-0 = <&mac0_pins_a>; | ||
192 | phy-reset-gpios = <&gpio4 13 0>; | ||
193 | phy-reset-duration = <100>; | ||
194 | status = "okay"; | ||
195 | }; | ||
196 | |||
197 | mac1: ethernet@800f4000 { | ||
198 | phy-mode = "rmii"; | ||
199 | pinctrl-names = "default"; | ||
200 | pinctrl-0 = <&mac1_pins_a>; | ||
201 | status = "okay"; | ||
202 | }; | ||
203 | }; | ||
204 | |||
205 | backlight { | ||
206 | compatible = "pwm-backlight"; | ||
207 | pwms = <&pwm 3 5000000>; | ||
208 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
209 | default-brightness-level = <6>; | ||
210 | }; | ||
211 | |||
212 | leds { | ||
213 | compatible = "gpio-leds"; | ||
214 | pinctrl-names = "default"; | ||
215 | pinctrl-0 = <&led_pins_gpio>; | ||
216 | |||
217 | user1 { | ||
218 | label = "sd0-led"; | ||
219 | gpios = <&gpio2 26 0>; | ||
220 | linux,default-trigger = "mmc0"; | ||
221 | }; | ||
222 | |||
223 | user2 { | ||
224 | label = "sd1-led"; | ||
225 | gpios = <&gpio2 24 0>; | ||
226 | linux,default-trigger = "mmc2"; | ||
227 | }; | ||
228 | }; | ||
229 | |||
230 | regulators { | ||
231 | compatible = "simple-bus"; | ||
232 | |||
233 | reg_3p3v: 3p3v { | ||
234 | compatible = "regulator-fixed"; | ||
235 | regulator-name = "3P3V"; | ||
236 | regulator-min-microvolt = <3300000>; | ||
237 | regulator-max-microvolt = <3300000>; | ||
238 | regulator-always-on; | ||
239 | }; | ||
240 | |||
241 | reg_vddio_sd0: vddio-sd0 { | ||
242 | compatible = "regulator-fixed"; | ||
243 | regulator-name = "vddio-sd0"; | ||
244 | regulator-min-microvolt = <3300000>; | ||
245 | regulator-max-microvolt = <3300000>; | ||
246 | gpio = <&gpio3 29 0>; | ||
247 | }; | ||
248 | |||
249 | reg_vddio_sd1: vddio-sd1 { | ||
250 | compatible = "regulator-fixed"; | ||
251 | regulator-name = "vddio-sd1"; | ||
252 | regulator-min-microvolt = <3300000>; | ||
253 | regulator-max-microvolt = <3300000>; | ||
254 | gpio = <&gpio2 19 0>; | ||
255 | }; | ||
256 | |||
257 | reg_usb1_vbus: usb1_vbus { | ||
258 | compatible = "regulator-fixed"; | ||
259 | regulator-name = "usb1_vbus"; | ||
260 | regulator-min-microvolt = <5000000>; | ||
261 | regulator-max-microvolt = <5000000>; | ||
262 | gpio = <&gpio3 8 0>; | ||
263 | enable-active-high; | ||
264 | }; | ||
265 | }; | ||
266 | }; | ||
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts index 0d322a2bebaf..8e2477fbe1d7 100644 --- a/arch/arm/boot/dts/imx28-m28evk.dts +++ b/arch/arm/boot/dts/imx28-m28evk.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx28.dtsi" | 13 | #include "imx28.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "DENX M28EVK"; | 16 | model = "DENX M28EVK"; |
@@ -92,26 +92,26 @@ | |||
92 | hog_pins_a: hog@0 { | 92 | hog_pins_a: hog@0 { |
93 | reg = <0>; | 93 | reg = <0>; |
94 | fsl,pinmux-ids = < | 94 | fsl,pinmux-ids = < |
95 | 0x31c3 /* MX28_PAD_PWM3__GPIO_3_28 */ | 95 | MX28_PAD_PWM3__GPIO_3_28 |
96 | 0x30a3 /* MX28_PAD_AUART2_CTS__GPIO_3_10 */ | 96 | MX28_PAD_AUART2_CTS__GPIO_3_10 |
97 | 0x30b3 /* MX28_PAD_AUART2_RTS__GPIO_3_11 */ | 97 | MX28_PAD_AUART2_RTS__GPIO_3_11 |
98 | 0x30c3 /* MX28_PAD_AUART3_RX__GPIO_3_12 */ | 98 | MX28_PAD_AUART3_RX__GPIO_3_12 |
99 | 0x30d3 /* MX28_PAD_AUART3_TX__GPIO_3_13 */ | 99 | MX28_PAD_AUART3_TX__GPIO_3_13 |
100 | >; | 100 | >; |
101 | fsl,drive-strength = <0>; | 101 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
102 | fsl,voltage = <1>; | 102 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
103 | fsl,pull-up = <0>; | 103 | fsl,pull-up = <MXS_PULL_DISABLE>; |
104 | }; | 104 | }; |
105 | 105 | ||
106 | lcdif_pins_m28: lcdif-m28@0 { | 106 | lcdif_pins_m28: lcdif-m28@0 { |
107 | reg = <0>; | 107 | reg = <0>; |
108 | fsl,pinmux-ids = < | 108 | fsl,pinmux-ids = < |
109 | 0x11e0 /* MX28_PAD_LCD_DOTCLK__LCD_DOTCLK */ | 109 | MX28_PAD_LCD_DOTCLK__LCD_DOTCLK |
110 | 0x11f0 /* MX28_PAD_LCD_ENABLE__LCD_ENABLE */ | 110 | MX28_PAD_LCD_ENABLE__LCD_ENABLE |
111 | >; | 111 | >; |
112 | fsl,drive-strength = <0>; | 112 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
113 | fsl,voltage = <1>; | 113 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
114 | fsl,pull-up = <0>; | 114 | fsl,pull-up = <MXS_PULL_DISABLE>; |
115 | }; | 115 | }; |
116 | }; | 116 | }; |
117 | 117 | ||
diff --git a/arch/arm/boot/dts/imx28-pinfunc.h b/arch/arm/boot/dts/imx28-pinfunc.h new file mode 100644 index 000000000000..e11f69ba0fe4 --- /dev/null +++ b/arch/arm/boot/dts/imx28-pinfunc.h | |||
@@ -0,0 +1,506 @@ | |||
1 | /* | ||
2 | * Header providing constants for i.MX28 pinctrl bindings. | ||
3 | * | ||
4 | * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de> | ||
5 | * | ||
6 | * The code contained herein is licensed under the GNU General Public | ||
7 | * License. You may obtain a copy of the GNU General Public License | ||
8 | * Version 2 at the following locations: | ||
9 | * | ||
10 | * http://www.opensource.org/licenses/gpl-license.html | ||
11 | * http://www.gnu.org/copyleft/gpl.html | ||
12 | */ | ||
13 | |||
14 | #ifndef __DT_BINDINGS_MX28_PINCTRL_H__ | ||
15 | #define __DT_BINDINGS_MX28_PINCTRL_H__ | ||
16 | |||
17 | #include "mxs-pinfunc.h" | ||
18 | |||
19 | #define MX28_PAD_GPMI_D00__GPMI_D0 0x0000 | ||
20 | #define MX28_PAD_GPMI_D01__GPMI_D1 0x0010 | ||
21 | #define MX28_PAD_GPMI_D02__GPMI_D2 0x0020 | ||
22 | #define MX28_PAD_GPMI_D03__GPMI_D3 0x0030 | ||
23 | #define MX28_PAD_GPMI_D04__GPMI_D4 0x0040 | ||
24 | #define MX28_PAD_GPMI_D05__GPMI_D5 0x0050 | ||
25 | #define MX28_PAD_GPMI_D06__GPMI_D6 0x0060 | ||
26 | #define MX28_PAD_GPMI_D07__GPMI_D7 0x0070 | ||
27 | #define MX28_PAD_GPMI_CE0N__GPMI_CE0N 0x0100 | ||
28 | #define MX28_PAD_GPMI_CE1N__GPMI_CE1N 0x0110 | ||
29 | #define MX28_PAD_GPMI_CE2N__GPMI_CE2N 0x0120 | ||
30 | #define MX28_PAD_GPMI_CE3N__GPMI_CE3N 0x0130 | ||
31 | #define MX28_PAD_GPMI_RDY0__GPMI_READY0 0x0140 | ||
32 | #define MX28_PAD_GPMI_RDY1__GPMI_READY1 0x0150 | ||
33 | #define MX28_PAD_GPMI_RDY2__GPMI_READY2 0x0160 | ||
34 | #define MX28_PAD_GPMI_RDY3__GPMI_READY3 0x0170 | ||
35 | #define MX28_PAD_GPMI_RDN__GPMI_RDN 0x0180 | ||
36 | #define MX28_PAD_GPMI_WRN__GPMI_WRN 0x0190 | ||
37 | #define MX28_PAD_GPMI_ALE__GPMI_ALE 0x01a0 | ||
38 | #define MX28_PAD_GPMI_CLE__GPMI_CLE 0x01b0 | ||
39 | #define MX28_PAD_GPMI_RESETN__GPMI_RESETN 0x01c0 | ||
40 | #define MX28_PAD_LCD_D00__LCD_D0 0x1000 | ||
41 | #define MX28_PAD_LCD_D01__LCD_D1 0x1010 | ||
42 | #define MX28_PAD_LCD_D02__LCD_D2 0x1020 | ||
43 | #define MX28_PAD_LCD_D03__LCD_D3 0x1030 | ||
44 | #define MX28_PAD_LCD_D04__LCD_D4 0x1040 | ||
45 | #define MX28_PAD_LCD_D05__LCD_D5 0x1050 | ||
46 | #define MX28_PAD_LCD_D06__LCD_D6 0x1060 | ||
47 | #define MX28_PAD_LCD_D07__LCD_D7 0x1070 | ||
48 | #define MX28_PAD_LCD_D08__LCD_D8 0x1080 | ||
49 | #define MX28_PAD_LCD_D09__LCD_D9 0x1090 | ||
50 | #define MX28_PAD_LCD_D10__LCD_D10 0x10a0 | ||
51 | #define MX28_PAD_LCD_D11__LCD_D11 0x10b0 | ||
52 | #define MX28_PAD_LCD_D12__LCD_D12 0x10c0 | ||
53 | #define MX28_PAD_LCD_D13__LCD_D13 0x10d0 | ||
54 | #define MX28_PAD_LCD_D14__LCD_D14 0x10e0 | ||
55 | #define MX28_PAD_LCD_D15__LCD_D15 0x10f0 | ||
56 | #define MX28_PAD_LCD_D16__LCD_D16 0x1100 | ||
57 | #define MX28_PAD_LCD_D17__LCD_D17 0x1110 | ||
58 | #define MX28_PAD_LCD_D18__LCD_D18 0x1120 | ||
59 | #define MX28_PAD_LCD_D19__LCD_D19 0x1130 | ||
60 | #define MX28_PAD_LCD_D20__LCD_D20 0x1140 | ||
61 | #define MX28_PAD_LCD_D21__LCD_D21 0x1150 | ||
62 | #define MX28_PAD_LCD_D22__LCD_D22 0x1160 | ||
63 | #define MX28_PAD_LCD_D23__LCD_D23 0x1170 | ||
64 | #define MX28_PAD_LCD_RD_E__LCD_RD_E 0x1180 | ||
65 | #define MX28_PAD_LCD_WR_RWN__LCD_WR_RWN 0x1190 | ||
66 | #define MX28_PAD_LCD_RS__LCD_RS 0x11a0 | ||
67 | #define MX28_PAD_LCD_CS__LCD_CS 0x11b0 | ||
68 | #define MX28_PAD_LCD_VSYNC__LCD_VSYNC 0x11c0 | ||
69 | #define MX28_PAD_LCD_HSYNC__LCD_HSYNC 0x11d0 | ||
70 | #define MX28_PAD_LCD_DOTCLK__LCD_DOTCLK 0x11e0 | ||
71 | #define MX28_PAD_LCD_ENABLE__LCD_ENABLE 0x11f0 | ||
72 | #define MX28_PAD_SSP0_DATA0__SSP0_D0 0x2000 | ||
73 | #define MX28_PAD_SSP0_DATA1__SSP0_D1 0x2010 | ||
74 | #define MX28_PAD_SSP0_DATA2__SSP0_D2 0x2020 | ||
75 | #define MX28_PAD_SSP0_DATA3__SSP0_D3 0x2030 | ||
76 | #define MX28_PAD_SSP0_DATA4__SSP0_D4 0x2040 | ||
77 | #define MX28_PAD_SSP0_DATA5__SSP0_D5 0x2050 | ||
78 | #define MX28_PAD_SSP0_DATA6__SSP0_D6 0x2060 | ||
79 | #define MX28_PAD_SSP0_DATA7__SSP0_D7 0x2070 | ||
80 | #define MX28_PAD_SSP0_CMD__SSP0_CMD 0x2080 | ||
81 | #define MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT 0x2090 | ||
82 | #define MX28_PAD_SSP0_SCK__SSP0_SCK 0x20a0 | ||
83 | #define MX28_PAD_SSP1_SCK__SSP1_SCK 0x20c0 | ||
84 | #define MX28_PAD_SSP1_CMD__SSP1_CMD 0x20d0 | ||
85 | #define MX28_PAD_SSP1_DATA0__SSP1_D0 0x20e0 | ||
86 | #define MX28_PAD_SSP1_DATA3__SSP1_D3 0x20f0 | ||
87 | #define MX28_PAD_SSP2_SCK__SSP2_SCK 0x2100 | ||
88 | #define MX28_PAD_SSP2_MOSI__SSP2_CMD 0x2110 | ||
89 | #define MX28_PAD_SSP2_MISO__SSP2_D0 0x2120 | ||
90 | #define MX28_PAD_SSP2_SS0__SSP2_D3 0x2130 | ||
91 | #define MX28_PAD_SSP2_SS1__SSP2_D4 0x2140 | ||
92 | #define MX28_PAD_SSP2_SS2__SSP2_D5 0x2150 | ||
93 | #define MX28_PAD_SSP3_SCK__SSP3_SCK 0x2180 | ||
94 | #define MX28_PAD_SSP3_MOSI__SSP3_CMD 0x2190 | ||
95 | #define MX28_PAD_SSP3_MISO__SSP3_D0 0x21a0 | ||
96 | #define MX28_PAD_SSP3_SS0__SSP3_D3 0x21b0 | ||
97 | #define MX28_PAD_AUART0_RX__AUART0_RX 0x3000 | ||
98 | #define MX28_PAD_AUART0_TX__AUART0_TX 0x3010 | ||
99 | #define MX28_PAD_AUART0_CTS__AUART0_CTS 0x3020 | ||
100 | #define MX28_PAD_AUART0_RTS__AUART0_RTS 0x3030 | ||
101 | #define MX28_PAD_AUART1_RX__AUART1_RX 0x3040 | ||
102 | #define MX28_PAD_AUART1_TX__AUART1_TX 0x3050 | ||
103 | #define MX28_PAD_AUART1_CTS__AUART1_CTS 0x3060 | ||
104 | #define MX28_PAD_AUART1_RTS__AUART1_RTS 0x3070 | ||
105 | #define MX28_PAD_AUART2_RX__AUART2_RX 0x3080 | ||
106 | #define MX28_PAD_AUART2_TX__AUART2_TX 0x3090 | ||
107 | #define MX28_PAD_AUART2_CTS__AUART2_CTS 0x30a0 | ||
108 | #define MX28_PAD_AUART2_RTS__AUART2_RTS 0x30b0 | ||
109 | #define MX28_PAD_AUART3_RX__AUART3_RX 0x30c0 | ||
110 | #define MX28_PAD_AUART3_TX__AUART3_TX 0x30d0 | ||
111 | #define MX28_PAD_AUART3_CTS__AUART3_CTS 0x30e0 | ||
112 | #define MX28_PAD_AUART3_RTS__AUART3_RTS 0x30f0 | ||
113 | #define MX28_PAD_PWM0__PWM_0 0x3100 | ||
114 | #define MX28_PAD_PWM1__PWM_1 0x3110 | ||
115 | #define MX28_PAD_PWM2__PWM_2 0x3120 | ||
116 | #define MX28_PAD_SAIF0_MCLK__SAIF0_MCLK 0x3140 | ||
117 | #define MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK 0x3150 | ||
118 | #define MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK 0x3160 | ||
119 | #define MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 0x3170 | ||
120 | #define MX28_PAD_I2C0_SCL__I2C0_SCL 0x3180 | ||
121 | #define MX28_PAD_I2C0_SDA__I2C0_SDA 0x3190 | ||
122 | #define MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 0x31a0 | ||
123 | #define MX28_PAD_SPDIF__SPDIF_TX 0x31b0 | ||
124 | #define MX28_PAD_PWM3__PWM_3 0x31c0 | ||
125 | #define MX28_PAD_PWM4__PWM_4 0x31d0 | ||
126 | #define MX28_PAD_LCD_RESET__LCD_RESET 0x31e0 | ||
127 | #define MX28_PAD_ENET0_MDC__ENET0_MDC 0x4000 | ||
128 | #define MX28_PAD_ENET0_MDIO__ENET0_MDIO 0x4010 | ||
129 | #define MX28_PAD_ENET0_RX_EN__ENET0_RX_EN 0x4020 | ||
130 | #define MX28_PAD_ENET0_RXD0__ENET0_RXD0 0x4030 | ||
131 | #define MX28_PAD_ENET0_RXD1__ENET0_RXD1 0x4040 | ||
132 | #define MX28_PAD_ENET0_TX_CLK__ENET0_TX_CLK 0x4050 | ||
133 | #define MX28_PAD_ENET0_TX_EN__ENET0_TX_EN 0x4060 | ||
134 | #define MX28_PAD_ENET0_TXD0__ENET0_TXD0 0x4070 | ||
135 | #define MX28_PAD_ENET0_TXD1__ENET0_TXD1 0x4080 | ||
136 | #define MX28_PAD_ENET0_RXD2__ENET0_RXD2 0x4090 | ||
137 | #define MX28_PAD_ENET0_RXD3__ENET0_RXD3 0x40a0 | ||
138 | #define MX28_PAD_ENET0_TXD2__ENET0_TXD2 0x40b0 | ||
139 | #define MX28_PAD_ENET0_TXD3__ENET0_TXD3 0x40c0 | ||
140 | #define MX28_PAD_ENET0_RX_CLK__ENET0_RX_CLK 0x40d0 | ||
141 | #define MX28_PAD_ENET0_COL__ENET0_COL 0x40e0 | ||
142 | #define MX28_PAD_ENET0_CRS__ENET0_CRS 0x40f0 | ||
143 | #define MX28_PAD_ENET_CLK__CLKCTRL_ENET 0x4100 | ||
144 | #define MX28_PAD_JTAG_RTCK__JTAG_RTCK 0x4140 | ||
145 | #define MX28_PAD_EMI_D00__EMI_DATA0 0x5000 | ||
146 | #define MX28_PAD_EMI_D01__EMI_DATA1 0x5010 | ||
147 | #define MX28_PAD_EMI_D02__EMI_DATA2 0x5020 | ||
148 | #define MX28_PAD_EMI_D03__EMI_DATA3 0x5030 | ||
149 | #define MX28_PAD_EMI_D04__EMI_DATA4 0x5040 | ||
150 | #define MX28_PAD_EMI_D05__EMI_DATA5 0x5050 | ||
151 | #define MX28_PAD_EMI_D06__EMI_DATA6 0x5060 | ||
152 | #define MX28_PAD_EMI_D07__EMI_DATA7 0x5070 | ||
153 | #define MX28_PAD_EMI_D08__EMI_DATA8 0x5080 | ||
154 | #define MX28_PAD_EMI_D09__EMI_DATA9 0x5090 | ||
155 | #define MX28_PAD_EMI_D10__EMI_DATA10 0x50a0 | ||
156 | #define MX28_PAD_EMI_D11__EMI_DATA11 0x50b0 | ||
157 | #define MX28_PAD_EMI_D12__EMI_DATA12 0x50c0 | ||
158 | #define MX28_PAD_EMI_D13__EMI_DATA13 0x50d0 | ||
159 | #define MX28_PAD_EMI_D14__EMI_DATA14 0x50e0 | ||
160 | #define MX28_PAD_EMI_D15__EMI_DATA15 0x50f0 | ||
161 | #define MX28_PAD_EMI_ODT0__EMI_ODT0 0x5100 | ||
162 | #define MX28_PAD_EMI_DQM0__EMI_DQM0 0x5110 | ||
163 | #define MX28_PAD_EMI_ODT1__EMI_ODT1 0x5120 | ||
164 | #define MX28_PAD_EMI_DQM1__EMI_DQM1 0x5130 | ||
165 | #define MX28_PAD_EMI_DDR_OPEN_FB__EMI_DDR_OPEN_FEEDBACK 0x5140 | ||
166 | #define MX28_PAD_EMI_CLK__EMI_CLK 0x5150 | ||
167 | #define MX28_PAD_EMI_DQS0__EMI_DQS0 0x5160 | ||
168 | #define MX28_PAD_EMI_DQS1__EMI_DQS1 0x5170 | ||
169 | #define MX28_PAD_EMI_DDR_OPEN__EMI_DDR_OPEN 0x51a0 | ||
170 | #define MX28_PAD_EMI_A00__EMI_ADDR0 0x6000 | ||
171 | #define MX28_PAD_EMI_A01__EMI_ADDR1 0x6010 | ||
172 | #define MX28_PAD_EMI_A02__EMI_ADDR2 0x6020 | ||
173 | #define MX28_PAD_EMI_A03__EMI_ADDR3 0x6030 | ||
174 | #define MX28_PAD_EMI_A04__EMI_ADDR4 0x6040 | ||
175 | #define MX28_PAD_EMI_A05__EMI_ADDR5 0x6050 | ||
176 | #define MX28_PAD_EMI_A06__EMI_ADDR6 0x6060 | ||
177 | #define MX28_PAD_EMI_A07__EMI_ADDR7 0x6070 | ||
178 | #define MX28_PAD_EMI_A08__EMI_ADDR8 0x6080 | ||
179 | #define MX28_PAD_EMI_A09__EMI_ADDR9 0x6090 | ||
180 | #define MX28_PAD_EMI_A10__EMI_ADDR10 0x60a0 | ||
181 | #define MX28_PAD_EMI_A11__EMI_ADDR11 0x60b0 | ||
182 | #define MX28_PAD_EMI_A12__EMI_ADDR12 0x60c0 | ||
183 | #define MX28_PAD_EMI_A13__EMI_ADDR13 0x60d0 | ||
184 | #define MX28_PAD_EMI_A14__EMI_ADDR14 0x60e0 | ||
185 | #define MX28_PAD_EMI_BA0__EMI_BA0 0x6100 | ||
186 | #define MX28_PAD_EMI_BA1__EMI_BA1 0x6110 | ||
187 | #define MX28_PAD_EMI_BA2__EMI_BA2 0x6120 | ||
188 | #define MX28_PAD_EMI_CASN__EMI_CASN 0x6130 | ||
189 | #define MX28_PAD_EMI_RASN__EMI_RASN 0x6140 | ||
190 | #define MX28_PAD_EMI_WEN__EMI_WEN 0x6150 | ||
191 | #define MX28_PAD_EMI_CE0N__EMI_CE0N 0x6160 | ||
192 | #define MX28_PAD_EMI_CE1N__EMI_CE1N 0x6170 | ||
193 | #define MX28_PAD_EMI_CKE__EMI_CKE 0x6180 | ||
194 | #define MX28_PAD_GPMI_D00__SSP1_D0 0x0001 | ||
195 | #define MX28_PAD_GPMI_D01__SSP1_D1 0x0011 | ||
196 | #define MX28_PAD_GPMI_D02__SSP1_D2 0x0021 | ||
197 | #define MX28_PAD_GPMI_D03__SSP1_D3 0x0031 | ||
198 | #define MX28_PAD_GPMI_D04__SSP1_D4 0x0041 | ||
199 | #define MX28_PAD_GPMI_D05__SSP1_D5 0x0051 | ||
200 | #define MX28_PAD_GPMI_D06__SSP1_D6 0x0061 | ||
201 | #define MX28_PAD_GPMI_D07__SSP1_D7 0x0071 | ||
202 | #define MX28_PAD_GPMI_CE0N__SSP3_D0 0x0101 | ||
203 | #define MX28_PAD_GPMI_CE1N__SSP3_D3 0x0111 | ||
204 | #define MX28_PAD_GPMI_CE2N__CAN1_TX 0x0121 | ||
205 | #define MX28_PAD_GPMI_CE3N__CAN1_RX 0x0131 | ||
206 | #define MX28_PAD_GPMI_RDY0__SSP1_CARD_DETECT 0x0141 | ||
207 | #define MX28_PAD_GPMI_RDY1__SSP1_CMD 0x0151 | ||
208 | #define MX28_PAD_GPMI_RDY2__CAN0_TX 0x0161 | ||
209 | #define MX28_PAD_GPMI_RDY3__CAN0_RX 0x0171 | ||
210 | #define MX28_PAD_GPMI_RDN__SSP3_SCK 0x0181 | ||
211 | #define MX28_PAD_GPMI_WRN__SSP1_SCK 0x0191 | ||
212 | #define MX28_PAD_GPMI_ALE__SSP3_D1 0x01a1 | ||
213 | #define MX28_PAD_GPMI_CLE__SSP3_D2 0x01b1 | ||
214 | #define MX28_PAD_GPMI_RESETN__SSP3_CMD 0x01c1 | ||
215 | #define MX28_PAD_LCD_D03__ETM_DA8 0x1031 | ||
216 | #define MX28_PAD_LCD_D04__ETM_DA9 0x1041 | ||
217 | #define MX28_PAD_LCD_D08__ETM_DA3 0x1081 | ||
218 | #define MX28_PAD_LCD_D09__ETM_DA4 0x1091 | ||
219 | #define MX28_PAD_LCD_D20__ENET1_1588_EVENT2_OUT 0x1141 | ||
220 | #define MX28_PAD_LCD_D21__ENET1_1588_EVENT2_IN 0x1151 | ||
221 | #define MX28_PAD_LCD_D22__ENET1_1588_EVENT3_OUT 0x1161 | ||
222 | #define MX28_PAD_LCD_D23__ENET1_1588_EVENT3_IN 0x1171 | ||
223 | #define MX28_PAD_LCD_RD_E__LCD_VSYNC 0x1181 | ||
224 | #define MX28_PAD_LCD_WR_RWN__LCD_HSYNC 0x1191 | ||
225 | #define MX28_PAD_LCD_RS__LCD_DOTCLK 0x11a1 | ||
226 | #define MX28_PAD_LCD_CS__LCD_ENABLE 0x11b1 | ||
227 | #define MX28_PAD_LCD_VSYNC__SAIF1_SDATA0 0x11c1 | ||
228 | #define MX28_PAD_LCD_HSYNC__SAIF1_SDATA1 0x11d1 | ||
229 | #define MX28_PAD_LCD_DOTCLK__SAIF1_MCLK 0x11e1 | ||
230 | #define MX28_PAD_SSP0_DATA4__SSP2_D0 0x2041 | ||
231 | #define MX28_PAD_SSP0_DATA5__SSP2_D3 0x2051 | ||
232 | #define MX28_PAD_SSP0_DATA6__SSP2_CMD 0x2061 | ||
233 | #define MX28_PAD_SSP0_DATA7__SSP2_SCK 0x2071 | ||
234 | #define MX28_PAD_SSP1_SCK__SSP2_D1 0x20c1 | ||
235 | #define MX28_PAD_SSP1_CMD__SSP2_D2 0x20d1 | ||
236 | #define MX28_PAD_SSP1_DATA0__SSP2_D6 0x20e1 | ||
237 | #define MX28_PAD_SSP1_DATA3__SSP2_D7 0x20f1 | ||
238 | #define MX28_PAD_SSP2_SCK__AUART2_RX 0x2101 | ||
239 | #define MX28_PAD_SSP2_MOSI__AUART2_TX 0x2111 | ||
240 | #define MX28_PAD_SSP2_MISO__AUART3_RX 0x2121 | ||
241 | #define MX28_PAD_SSP2_SS0__AUART3_TX 0x2131 | ||
242 | #define MX28_PAD_SSP2_SS1__SSP2_D1 0x2141 | ||
243 | #define MX28_PAD_SSP2_SS2__SSP2_D2 0x2151 | ||
244 | #define MX28_PAD_SSP3_SCK__AUART4_TX 0x2181 | ||
245 | #define MX28_PAD_SSP3_MOSI__AUART4_RX 0x2191 | ||
246 | #define MX28_PAD_SSP3_MISO__AUART4_RTS 0x21a1 | ||
247 | #define MX28_PAD_SSP3_SS0__AUART4_CTS 0x21b1 | ||
248 | #define MX28_PAD_AUART0_RX__I2C0_SCL 0x3001 | ||
249 | #define MX28_PAD_AUART0_TX__I2C0_SDA 0x3011 | ||
250 | #define MX28_PAD_AUART0_CTS__AUART4_RX 0x3021 | ||
251 | #define MX28_PAD_AUART0_RTS__AUART4_TX 0x3031 | ||
252 | #define MX28_PAD_AUART1_RX__SSP2_CARD_DETECT 0x3041 | ||
253 | #define MX28_PAD_AUART1_TX__SSP3_CARD_DETECT 0x3051 | ||
254 | #define MX28_PAD_AUART1_CTS__USB0_OVERCURRENT 0x3061 | ||
255 | #define MX28_PAD_AUART1_RTS__USB0_ID 0x3071 | ||
256 | #define MX28_PAD_AUART2_RX__SSP3_D1 0x3081 | ||
257 | #define MX28_PAD_AUART2_TX__SSP3_D2 0x3091 | ||
258 | #define MX28_PAD_AUART2_CTS__I2C1_SCL 0x30a1 | ||
259 | #define MX28_PAD_AUART2_RTS__I2C1_SDA 0x30b1 | ||
260 | #define MX28_PAD_AUART3_RX__CAN0_TX 0x30c1 | ||
261 | #define MX28_PAD_AUART3_TX__CAN0_RX 0x30d1 | ||
262 | #define MX28_PAD_AUART3_CTS__CAN1_TX 0x30e1 | ||
263 | #define MX28_PAD_AUART3_RTS__CAN1_RX 0x30f1 | ||
264 | #define MX28_PAD_PWM0__I2C1_SCL 0x3101 | ||
265 | #define MX28_PAD_PWM1__I2C1_SDA 0x3111 | ||
266 | #define MX28_PAD_PWM2__USB0_ID 0x3121 | ||
267 | #define MX28_PAD_SAIF0_MCLK__PWM_3 0x3141 | ||
268 | #define MX28_PAD_SAIF0_LRCLK__PWM_4 0x3151 | ||
269 | #define MX28_PAD_SAIF0_BITCLK__PWM_5 0x3161 | ||
270 | #define MX28_PAD_SAIF0_SDATA0__PWM_6 0x3171 | ||
271 | #define MX28_PAD_I2C0_SCL__TIMROT_ROTARYA 0x3181 | ||
272 | #define MX28_PAD_I2C0_SDA__TIMROT_ROTARYB 0x3191 | ||
273 | #define MX28_PAD_SAIF1_SDATA0__PWM_7 0x31a1 | ||
274 | #define MX28_PAD_LCD_RESET__LCD_VSYNC 0x31e1 | ||
275 | #define MX28_PAD_ENET0_MDC__GPMI_CE4N 0x4001 | ||
276 | #define MX28_PAD_ENET0_MDIO__GPMI_CE5N 0x4011 | ||
277 | #define MX28_PAD_ENET0_RX_EN__GPMI_CE6N 0x4021 | ||
278 | #define MX28_PAD_ENET0_RXD0__GPMI_CE7N 0x4031 | ||
279 | #define MX28_PAD_ENET0_RXD1__GPMI_READY4 0x4041 | ||
280 | #define MX28_PAD_ENET0_TX_CLK__HSADC_TRIGGER 0x4051 | ||
281 | #define MX28_PAD_ENET0_TX_EN__GPMI_READY5 0x4061 | ||
282 | #define MX28_PAD_ENET0_TXD0__GPMI_READY6 0x4071 | ||
283 | #define MX28_PAD_ENET0_TXD1__GPMI_READY7 0x4081 | ||
284 | #define MX28_PAD_ENET0_RXD2__ENET1_RXD0 0x4091 | ||
285 | #define MX28_PAD_ENET0_RXD3__ENET1_RXD1 0x40a1 | ||
286 | #define MX28_PAD_ENET0_TXD2__ENET1_TXD0 0x40b1 | ||
287 | #define MX28_PAD_ENET0_TXD3__ENET1_TXD1 0x40c1 | ||
288 | #define MX28_PAD_ENET0_RX_CLK__ENET0_RX_ER 0x40d1 | ||
289 | #define MX28_PAD_ENET0_COL__ENET1_TX_EN 0x40e1 | ||
290 | #define MX28_PAD_ENET0_CRS__ENET1_RX_EN 0x40f1 | ||
291 | #define MX28_PAD_GPMI_CE2N__ENET0_RX_ER 0x0122 | ||
292 | #define MX28_PAD_GPMI_CE3N__SAIF1_MCLK 0x0132 | ||
293 | #define MX28_PAD_GPMI_RDY0__USB0_ID 0x0142 | ||
294 | #define MX28_PAD_GPMI_RDY2__ENET0_TX_ER 0x0162 | ||
295 | #define MX28_PAD_GPMI_RDY3__HSADC_TRIGGER 0x0172 | ||
296 | #define MX28_PAD_GPMI_ALE__SSP3_D4 0x01a2 | ||
297 | #define MX28_PAD_GPMI_CLE__SSP3_D5 0x01b2 | ||
298 | #define MX28_PAD_LCD_D00__ETM_DA0 0x1002 | ||
299 | #define MX28_PAD_LCD_D01__ETM_DA1 0x1012 | ||
300 | #define MX28_PAD_LCD_D02__ETM_DA2 0x1022 | ||
301 | #define MX28_PAD_LCD_D03__ETM_DA3 0x1032 | ||
302 | #define MX28_PAD_LCD_D04__ETM_DA4 0x1042 | ||
303 | #define MX28_PAD_LCD_D05__ETM_DA5 0x1052 | ||
304 | #define MX28_PAD_LCD_D06__ETM_DA6 0x1062 | ||
305 | #define MX28_PAD_LCD_D07__ETM_DA7 0x1072 | ||
306 | #define MX28_PAD_LCD_D08__ETM_DA8 0x1082 | ||
307 | #define MX28_PAD_LCD_D09__ETM_DA9 0x1092 | ||
308 | #define MX28_PAD_LCD_D10__ETM_DA10 0x10a2 | ||
309 | #define MX28_PAD_LCD_D11__ETM_DA11 0x10b2 | ||
310 | #define MX28_PAD_LCD_D12__ETM_DA12 0x10c2 | ||
311 | #define MX28_PAD_LCD_D13__ETM_DA13 0x10d2 | ||
312 | #define MX28_PAD_LCD_D14__ETM_DA14 0x10e2 | ||
313 | #define MX28_PAD_LCD_D15__ETM_DA15 0x10f2 | ||
314 | #define MX28_PAD_LCD_D16__ETM_DA7 0x1102 | ||
315 | #define MX28_PAD_LCD_D17__ETM_DA6 0x1112 | ||
316 | #define MX28_PAD_LCD_D18__ETM_DA5 0x1122 | ||
317 | #define MX28_PAD_LCD_D19__ETM_DA4 0x1132 | ||
318 | #define MX28_PAD_LCD_D20__ETM_DA3 0x1142 | ||
319 | #define MX28_PAD_LCD_D21__ETM_DA2 0x1152 | ||
320 | #define MX28_PAD_LCD_D22__ETM_DA1 0x1162 | ||
321 | #define MX28_PAD_LCD_D23__ETM_DA0 0x1172 | ||
322 | #define MX28_PAD_LCD_RD_E__ETM_TCTL 0x1182 | ||
323 | #define MX28_PAD_LCD_WR_RWN__ETM_TCLK 0x1192 | ||
324 | #define MX28_PAD_LCD_HSYNC__ETM_TCTL 0x11d2 | ||
325 | #define MX28_PAD_LCD_DOTCLK__ETM_TCLK 0x11e2 | ||
326 | #define MX28_PAD_SSP1_SCK__ENET0_1588_EVENT2_OUT 0x20c2 | ||
327 | #define MX28_PAD_SSP1_CMD__ENET0_1588_EVENT2_IN 0x20d2 | ||
328 | #define MX28_PAD_SSP1_DATA0__ENET0_1588_EVENT3_OUT 0x20e2 | ||
329 | #define MX28_PAD_SSP1_DATA3__ENET0_1588_EVENT3_IN 0x20f2 | ||
330 | #define MX28_PAD_SSP2_SCK__SAIF0_SDATA1 0x2102 | ||
331 | #define MX28_PAD_SSP2_MOSI__SAIF0_SDATA2 0x2112 | ||
332 | #define MX28_PAD_SSP2_MISO__SAIF1_SDATA1 0x2122 | ||
333 | #define MX28_PAD_SSP2_SS0__SAIF1_SDATA2 0x2132 | ||
334 | #define MX28_PAD_SSP2_SS1__USB1_OVERCURRENT 0x2142 | ||
335 | #define MX28_PAD_SSP2_SS2__USB0_OVERCURRENT 0x2152 | ||
336 | #define MX28_PAD_SSP3_SCK__ENET1_1588_EVENT0_OUT 0x2182 | ||
337 | #define MX28_PAD_SSP3_MOSI__ENET1_1588_EVENT0_IN 0x2192 | ||
338 | #define MX28_PAD_SSP3_MISO__ENET1_1588_EVENT1_OUT 0x21a2 | ||
339 | #define MX28_PAD_SSP3_SS0__ENET1_1588_EVENT1_IN 0x21b2 | ||
340 | #define MX28_PAD_AUART0_RX__DUART_CTS 0x3002 | ||
341 | #define MX28_PAD_AUART0_TX__DUART_RTS 0x3012 | ||
342 | #define MX28_PAD_AUART0_CTS__DUART_RX 0x3022 | ||
343 | #define MX28_PAD_AUART0_RTS__DUART_TX 0x3032 | ||
344 | #define MX28_PAD_AUART1_RX__PWM_0 0x3042 | ||
345 | #define MX28_PAD_AUART1_TX__PWM_1 0x3052 | ||
346 | #define MX28_PAD_AUART1_CTS__TIMROT_ROTARYA 0x3062 | ||
347 | #define MX28_PAD_AUART1_RTS__TIMROT_ROTARYB 0x3072 | ||
348 | #define MX28_PAD_AUART2_RX__SSP3_D4 0x3082 | ||
349 | #define MX28_PAD_AUART2_TX__SSP3_D5 0x3092 | ||
350 | #define MX28_PAD_AUART2_CTS__SAIF1_BITCLK 0x30a2 | ||
351 | #define MX28_PAD_AUART2_RTS__SAIF1_LRCLK 0x30b2 | ||
352 | #define MX28_PAD_AUART3_RX__ENET0_1588_EVENT0_OUT 0x30c2 | ||
353 | #define MX28_PAD_AUART3_TX__ENET0_1588_EVENT0_IN 0x30d2 | ||
354 | #define MX28_PAD_AUART3_CTS__ENET0_1588_EVENT1_OUT 0x30e2 | ||
355 | #define MX28_PAD_AUART3_RTS__ENET0_1588_EVENT1_IN 0x30f2 | ||
356 | #define MX28_PAD_PWM0__DUART_RX 0x3102 | ||
357 | #define MX28_PAD_PWM1__DUART_TX 0x3112 | ||
358 | #define MX28_PAD_PWM2__USB1_OVERCURRENT 0x3122 | ||
359 | #define MX28_PAD_SAIF0_MCLK__AUART4_CTS 0x3142 | ||
360 | #define MX28_PAD_SAIF0_LRCLK__AUART4_RTS 0x3152 | ||
361 | #define MX28_PAD_SAIF0_BITCLK__AUART4_RX 0x3162 | ||
362 | #define MX28_PAD_SAIF0_SDATA0__AUART4_TX 0x3172 | ||
363 | #define MX28_PAD_I2C0_SCL__DUART_RX 0x3182 | ||
364 | #define MX28_PAD_I2C0_SDA__DUART_TX 0x3192 | ||
365 | #define MX28_PAD_SAIF1_SDATA0__SAIF0_SDATA1 0x31a2 | ||
366 | #define MX28_PAD_SPDIF__ENET1_RX_ER 0x31b2 | ||
367 | #define MX28_PAD_ENET0_MDC__SAIF0_SDATA1 0x4002 | ||
368 | #define MX28_PAD_ENET0_MDIO__SAIF0_SDATA2 0x4012 | ||
369 | #define MX28_PAD_ENET0_RX_EN__SAIF1_SDATA1 0x4022 | ||
370 | #define MX28_PAD_ENET0_RXD0__SAIF1_SDATA2 0x4032 | ||
371 | #define MX28_PAD_ENET0_TX_CLK__ENET0_1588_EVENT2_OUT 0x4052 | ||
372 | #define MX28_PAD_ENET0_RXD2__ENET0_1588_EVENT0_OUT 0x4092 | ||
373 | #define MX28_PAD_ENET0_RXD3__ENET0_1588_EVENT0_IN 0x40a2 | ||
374 | #define MX28_PAD_ENET0_TXD2__ENET0_1588_EVENT1_OUT 0x40b2 | ||
375 | #define MX28_PAD_ENET0_TXD3__ENET0_1588_EVENT1_IN 0x40c2 | ||
376 | #define MX28_PAD_ENET0_RX_CLK__ENET0_1588_EVENT2_IN 0x40d2 | ||
377 | #define MX28_PAD_ENET0_COL__ENET0_1588_EVENT3_OUT 0x40e2 | ||
378 | #define MX28_PAD_ENET0_CRS__ENET0_1588_EVENT3_IN 0x40f2 | ||
379 | #define MX28_PAD_GPMI_D00__GPIO_0_0 0x0003 | ||
380 | #define MX28_PAD_GPMI_D01__GPIO_0_1 0x0013 | ||
381 | #define MX28_PAD_GPMI_D02__GPIO_0_2 0x0023 | ||
382 | #define MX28_PAD_GPMI_D03__GPIO_0_3 0x0033 | ||
383 | #define MX28_PAD_GPMI_D04__GPIO_0_4 0x0043 | ||
384 | #define MX28_PAD_GPMI_D05__GPIO_0_5 0x0053 | ||
385 | #define MX28_PAD_GPMI_D06__GPIO_0_6 0x0063 | ||
386 | #define MX28_PAD_GPMI_D07__GPIO_0_7 0x0073 | ||
387 | #define MX28_PAD_GPMI_CE0N__GPIO_0_16 0x0103 | ||
388 | #define MX28_PAD_GPMI_CE1N__GPIO_0_17 0x0113 | ||
389 | #define MX28_PAD_GPMI_CE2N__GPIO_0_18 0x0123 | ||
390 | #define MX28_PAD_GPMI_CE3N__GPIO_0_19 0x0133 | ||
391 | #define MX28_PAD_GPMI_RDY0__GPIO_0_20 0x0143 | ||
392 | #define MX28_PAD_GPMI_RDY1__GPIO_0_21 0x0153 | ||
393 | #define MX28_PAD_GPMI_RDY2__GPIO_0_22 0x0163 | ||
394 | #define MX28_PAD_GPMI_RDY3__GPIO_0_23 0x0173 | ||
395 | #define MX28_PAD_GPMI_RDN__GPIO_0_24 0x0183 | ||
396 | #define MX28_PAD_GPMI_WRN__GPIO_0_25 0x0193 | ||
397 | #define MX28_PAD_GPMI_ALE__GPIO_0_26 0x01a3 | ||
398 | #define MX28_PAD_GPMI_CLE__GPIO_0_27 0x01b3 | ||
399 | #define MX28_PAD_GPMI_RESETN__GPIO_0_28 0x01c3 | ||
400 | #define MX28_PAD_LCD_D00__GPIO_1_0 0x1003 | ||
401 | #define MX28_PAD_LCD_D01__GPIO_1_1 0x1013 | ||
402 | #define MX28_PAD_LCD_D02__GPIO_1_2 0x1023 | ||
403 | #define MX28_PAD_LCD_D03__GPIO_1_3 0x1033 | ||
404 | #define MX28_PAD_LCD_D04__GPIO_1_4 0x1043 | ||
405 | #define MX28_PAD_LCD_D05__GPIO_1_5 0x1053 | ||
406 | #define MX28_PAD_LCD_D06__GPIO_1_6 0x1063 | ||
407 | #define MX28_PAD_LCD_D07__GPIO_1_7 0x1073 | ||
408 | #define MX28_PAD_LCD_D08__GPIO_1_8 0x1083 | ||
409 | #define MX28_PAD_LCD_D09__GPIO_1_9 0x1093 | ||
410 | #define MX28_PAD_LCD_D10__GPIO_1_10 0x10a3 | ||
411 | #define MX28_PAD_LCD_D11__GPIO_1_11 0x10b3 | ||
412 | #define MX28_PAD_LCD_D12__GPIO_1_12 0x10c3 | ||
413 | #define MX28_PAD_LCD_D13__GPIO_1_13 0x10d3 | ||
414 | #define MX28_PAD_LCD_D14__GPIO_1_14 0x10e3 | ||
415 | #define MX28_PAD_LCD_D15__GPIO_1_15 0x10f3 | ||
416 | #define MX28_PAD_LCD_D16__GPIO_1_16 0x1103 | ||
417 | #define MX28_PAD_LCD_D17__GPIO_1_17 0x1113 | ||
418 | #define MX28_PAD_LCD_D18__GPIO_1_18 0x1123 | ||
419 | #define MX28_PAD_LCD_D19__GPIO_1_19 0x1133 | ||
420 | #define MX28_PAD_LCD_D20__GPIO_1_20 0x1143 | ||
421 | #define MX28_PAD_LCD_D21__GPIO_1_21 0x1153 | ||
422 | #define MX28_PAD_LCD_D22__GPIO_1_22 0x1163 | ||
423 | #define MX28_PAD_LCD_D23__GPIO_1_23 0x1173 | ||
424 | #define MX28_PAD_LCD_RD_E__GPIO_1_24 0x1183 | ||
425 | #define MX28_PAD_LCD_WR_RWN__GPIO_1_25 0x1193 | ||
426 | #define MX28_PAD_LCD_RS__GPIO_1_26 0x11a3 | ||
427 | #define MX28_PAD_LCD_CS__GPIO_1_27 0x11b3 | ||
428 | #define MX28_PAD_LCD_VSYNC__GPIO_1_28 0x11c3 | ||
429 | #define MX28_PAD_LCD_HSYNC__GPIO_1_29 0x11d3 | ||
430 | #define MX28_PAD_LCD_DOTCLK__GPIO_1_30 0x11e3 | ||
431 | #define MX28_PAD_LCD_ENABLE__GPIO_1_31 0x11f3 | ||
432 | #define MX28_PAD_SSP0_DATA0__GPIO_2_0 0x2003 | ||
433 | #define MX28_PAD_SSP0_DATA1__GPIO_2_1 0x2013 | ||
434 | #define MX28_PAD_SSP0_DATA2__GPIO_2_2 0x2023 | ||
435 | #define MX28_PAD_SSP0_DATA3__GPIO_2_3 0x2033 | ||
436 | #define MX28_PAD_SSP0_DATA4__GPIO_2_4 0x2043 | ||
437 | #define MX28_PAD_SSP0_DATA5__GPIO_2_5 0x2053 | ||
438 | #define MX28_PAD_SSP0_DATA6__GPIO_2_6 0x2063 | ||
439 | #define MX28_PAD_SSP0_DATA7__GPIO_2_7 0x2073 | ||
440 | #define MX28_PAD_SSP0_CMD__GPIO_2_8 0x2083 | ||
441 | #define MX28_PAD_SSP0_DETECT__GPIO_2_9 0x2093 | ||
442 | #define MX28_PAD_SSP0_SCK__GPIO_2_10 0x20a3 | ||
443 | #define MX28_PAD_SSP1_SCK__GPIO_2_12 0x20c3 | ||
444 | #define MX28_PAD_SSP1_CMD__GPIO_2_13 0x20d3 | ||
445 | #define MX28_PAD_SSP1_DATA0__GPIO_2_14 0x20e3 | ||
446 | #define MX28_PAD_SSP1_DATA3__GPIO_2_15 0x20f3 | ||
447 | #define MX28_PAD_SSP2_SCK__GPIO_2_16 0x2103 | ||
448 | #define MX28_PAD_SSP2_MOSI__GPIO_2_17 0x2113 | ||
449 | #define MX28_PAD_SSP2_MISO__GPIO_2_18 0x2123 | ||
450 | #define MX28_PAD_SSP2_SS0__GPIO_2_19 0x2133 | ||
451 | #define MX28_PAD_SSP2_SS1__GPIO_2_20 0x2143 | ||
452 | #define MX28_PAD_SSP2_SS2__GPIO_2_21 0x2153 | ||
453 | #define MX28_PAD_SSP3_SCK__GPIO_2_24 0x2183 | ||
454 | #define MX28_PAD_SSP3_MOSI__GPIO_2_25 0x2193 | ||
455 | #define MX28_PAD_SSP3_MISO__GPIO_2_26 0x21a3 | ||
456 | #define MX28_PAD_SSP3_SS0__GPIO_2_27 0x21b3 | ||
457 | #define MX28_PAD_AUART0_RX__GPIO_3_0 0x3003 | ||
458 | #define MX28_PAD_AUART0_TX__GPIO_3_1 0x3013 | ||
459 | #define MX28_PAD_AUART0_CTS__GPIO_3_2 0x3023 | ||
460 | #define MX28_PAD_AUART0_RTS__GPIO_3_3 0x3033 | ||
461 | #define MX28_PAD_AUART1_RX__GPIO_3_4 0x3043 | ||
462 | #define MX28_PAD_AUART1_TX__GPIO_3_5 0x3053 | ||
463 | #define MX28_PAD_AUART1_CTS__GPIO_3_6 0x3063 | ||
464 | #define MX28_PAD_AUART1_RTS__GPIO_3_7 0x3073 | ||
465 | #define MX28_PAD_AUART2_RX__GPIO_3_8 0x3083 | ||
466 | #define MX28_PAD_AUART2_TX__GPIO_3_9 0x3093 | ||
467 | #define MX28_PAD_AUART2_CTS__GPIO_3_10 0x30a3 | ||
468 | #define MX28_PAD_AUART2_RTS__GPIO_3_11 0x30b3 | ||
469 | #define MX28_PAD_AUART3_RX__GPIO_3_12 0x30c3 | ||
470 | #define MX28_PAD_AUART3_TX__GPIO_3_13 0x30d3 | ||
471 | #define MX28_PAD_AUART3_CTS__GPIO_3_14 0x30e3 | ||
472 | #define MX28_PAD_AUART3_RTS__GPIO_3_15 0x30f3 | ||
473 | #define MX28_PAD_PWM0__GPIO_3_16 0x3103 | ||
474 | #define MX28_PAD_PWM1__GPIO_3_17 0x3113 | ||
475 | #define MX28_PAD_PWM2__GPIO_3_18 0x3123 | ||
476 | #define MX28_PAD_SAIF0_MCLK__GPIO_3_20 0x3143 | ||
477 | #define MX28_PAD_SAIF0_LRCLK__GPIO_3_21 0x3153 | ||
478 | #define MX28_PAD_SAIF0_BITCLK__GPIO_3_22 0x3163 | ||
479 | #define MX28_PAD_SAIF0_SDATA0__GPIO_3_23 0x3173 | ||
480 | #define MX28_PAD_I2C0_SCL__GPIO_3_24 0x3183 | ||
481 | #define MX28_PAD_I2C0_SDA__GPIO_3_25 0x3193 | ||
482 | #define MX28_PAD_SAIF1_SDATA0__GPIO_3_26 0x31a3 | ||
483 | #define MX28_PAD_SPDIF__GPIO_3_27 0x31b3 | ||
484 | #define MX28_PAD_PWM3__GPIO_3_28 0x31c3 | ||
485 | #define MX28_PAD_PWM4__GPIO_3_29 0x31d3 | ||
486 | #define MX28_PAD_LCD_RESET__GPIO_3_30 0x31e3 | ||
487 | #define MX28_PAD_ENET0_MDC__GPIO_4_0 0x4003 | ||
488 | #define MX28_PAD_ENET0_MDIO__GPIO_4_1 0x4013 | ||
489 | #define MX28_PAD_ENET0_RX_EN__GPIO_4_2 0x4023 | ||
490 | #define MX28_PAD_ENET0_RXD0__GPIO_4_3 0x4033 | ||
491 | #define MX28_PAD_ENET0_RXD1__GPIO_4_4 0x4043 | ||
492 | #define MX28_PAD_ENET0_TX_CLK__GPIO_4_5 0x4053 | ||
493 | #define MX28_PAD_ENET0_TX_EN__GPIO_4_6 0x4063 | ||
494 | #define MX28_PAD_ENET0_TXD0__GPIO_4_7 0x4073 | ||
495 | #define MX28_PAD_ENET0_TXD1__GPIO_4_8 0x4083 | ||
496 | #define MX28_PAD_ENET0_RXD2__GPIO_4_9 0x4093 | ||
497 | #define MX28_PAD_ENET0_RXD3__GPIO_4_10 0x40a3 | ||
498 | #define MX28_PAD_ENET0_TXD2__GPIO_4_11 0x40b3 | ||
499 | #define MX28_PAD_ENET0_TXD3__GPIO_4_12 0x40c3 | ||
500 | #define MX28_PAD_ENET0_RX_CLK__GPIO_4_13 0x40d3 | ||
501 | #define MX28_PAD_ENET0_COL__GPIO_4_14 0x40e3 | ||
502 | #define MX28_PAD_ENET0_CRS__GPIO_4_15 0x40f3 | ||
503 | #define MX28_PAD_ENET_CLK__GPIO_4_16 0x4103 | ||
504 | #define MX28_PAD_JTAG_RTCK__GPIO_4_20 0x4143 | ||
505 | |||
506 | #endif /* __DT_BINDINGS_MX28_PINCTRL_H__ */ | ||
diff --git a/arch/arm/boot/dts/imx28-sps1.dts b/arch/arm/boot/dts/imx28-sps1.dts index 6c6a5442800a..4870f07bf56a 100644 --- a/arch/arm/boot/dts/imx28-sps1.dts +++ b/arch/arm/boot/dts/imx28-sps1.dts | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | /include/ "imx28.dtsi" | 13 | #include "imx28.dtsi" |
14 | 14 | ||
15 | / { | 15 | / { |
16 | model = "SchulerControl GmbH, SC SPS 1"; | 16 | model = "SchulerControl GmbH, SC SPS 1"; |
@@ -29,13 +29,13 @@ | |||
29 | hog_pins_a: hog-gpios@0 { | 29 | hog_pins_a: hog-gpios@0 { |
30 | reg = <0>; | 30 | reg = <0>; |
31 | fsl,pinmux-ids = < | 31 | fsl,pinmux-ids = < |
32 | 0x0003 /* MX28_PAD_GPMI_D00__GPIO_0_0 */ | 32 | MX28_PAD_GPMI_D00__GPIO_0_0 |
33 | 0x0033 /* MX28_PAD_GPMI_D03__GPIO_0_3 */ | 33 | MX28_PAD_GPMI_D03__GPIO_0_3 |
34 | 0x0063 /* MX28_PAD_GPMI_D06__GPIO_0_6 */ | 34 | MX28_PAD_GPMI_D06__GPIO_0_6 |
35 | >; | 35 | >; |
36 | fsl,drive-strength = <0>; | 36 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
37 | fsl,voltage = <1>; | 37 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
38 | fsl,pull-up = <0>; | 38 | fsl,pull-up = <MXS_PULL_DISABLE>; |
39 | }; | 39 | }; |
40 | 40 | ||
41 | }; | 41 | }; |
diff --git a/arch/arm/boot/dts/imx28-tx28.dts b/arch/arm/boot/dts/imx28-tx28.dts index 37be532f0055..be5a0550d58c 100644 --- a/arch/arm/boot/dts/imx28-tx28.dts +++ b/arch/arm/boot/dts/imx28-tx28.dts | |||
@@ -1,106 +1,139 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Shawn Guo <shawn.guo@linaro.org> | ||
3 | * Copyright 2013 Lothar Waßmann <LW@KARO-electronics.de> | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
1 | /dts-v1/; | 13 | /dts-v1/; |
2 | /include/ "imx28.dtsi" | 14 | #include "imx28.dtsi" |
15 | #include <dt-bindings/gpio/gpio.h> | ||
3 | 16 | ||
4 | / { | 17 | / { |
5 | model = "Ka-Ro electronics TX28 module"; | 18 | model = "Ka-Ro electronics TX28 module"; |
6 | compatible = "karo,tx28", "fsl,imx28"; | 19 | compatible = "karo,tx28", "fsl,imx28"; |
7 | 20 | ||
21 | aliases { | ||
22 | can0 = &can0; | ||
23 | can1 = &can1; | ||
24 | display = &display; | ||
25 | ds1339 = &ds1339; | ||
26 | gpio5 = &gpio5; | ||
27 | lcdif = &lcdif; | ||
28 | lcdif_23bit_pins = &tx28_lcdif_23bit_pins; | ||
29 | lcdif_24bit_pins = &lcdif_24bit_pins_a; | ||
30 | stk5led = &user_led; | ||
31 | usbotg = &usb0; | ||
32 | }; | ||
33 | |||
8 | memory { | 34 | memory { |
9 | reg = <0x40000000 0x08000000>; | 35 | reg = <0 0>; /* will be filled in by U-Boot */ |
10 | }; | 36 | }; |
11 | |||
12 | apb@80000000 { | ||
13 | apbh@80000000 { | ||
14 | ssp0: ssp@80010000 { | ||
15 | compatible = "fsl,imx28-mmc"; | ||
16 | pinctrl-names = "default"; | ||
17 | pinctrl-0 = <&mmc0_4bit_pins_a | ||
18 | &mmc0_cd_cfg | ||
19 | &mmc0_sck_cfg>; | ||
20 | bus-width = <4>; | ||
21 | status = "okay"; | ||
22 | }; | ||
23 | 37 | ||
24 | pinctrl@80018000 { | 38 | onewire { |
25 | pinctrl-names = "default"; | 39 | compatible = "w1-gpio"; |
26 | pinctrl-0 = <&hog_pins_a>; | 40 | gpios = <&gpio2 7 0>; |
27 | 41 | status = "disabled"; | |
28 | hog_pins_a: hog@0 { | 42 | }; |
29 | reg = <0>; | 43 | |
30 | fsl,pinmux-ids = < | 44 | regulators { |
31 | 0x40a3 /* MX28_PAD_ENET0_RXD3__GPIO_4_10 */ | 45 | compatible = "simple-bus"; |
32 | >; | 46 | |
33 | fsl,drive-strength = <0>; | 47 | reg_usb0_vbus: usb0_vbus { |
34 | fsl,voltage = <1>; | 48 | compatible = "regulator-fixed"; |
35 | fsl,pull-up = <0>; | 49 | regulator-name = "usb0_vbus"; |
36 | }; | 50 | regulator-min-microvolt = <5000000>; |
37 | 51 | regulator-max-microvolt = <5000000>; | |
38 | mac0_pins_gpio: mac0-gpio-mode@0 { | 52 | gpio = <&gpio0 18 0>; |
39 | reg = <0>; | 53 | enable-active-high; |
40 | fsl,pinmux-ids = < | ||
41 | 0x4003 /* MX28_PAD_ENET0_MDC__GPIO_4_0 */ | ||
42 | 0x4013 /* MX28_PAD_ENET0_MDIO__GPIO_4_1 */ | ||
43 | 0x4023 /* MX28_PAD_ENET0_RX_EN__GPIO_4_2 */ | ||
44 | 0x4033 /* MX28_PAD_ENET0_RXD0__GPIO_4_3 */ | ||
45 | 0x4043 /* MX28_PAD_ENET0_RXD1__GPIO_4_4 */ | ||
46 | 0x4063 /* MX28_PAD_ENET0_TX_EN__GPIO_4_6 */ | ||
47 | 0x4073 /* MX28_PAD_ENET0_TXD0__GPIO_4_7 */ | ||
48 | 0x4083 /* MX28_PAD_ENET0_TXD1__GPIO_4_8 */ | ||
49 | 0x4103 /* MX28_PAD_ENET_CLK__GPIO_4_16 */ | ||
50 | >; | ||
51 | fsl,drive-strength = <0>; | ||
52 | fsl,voltage = <1>; | ||
53 | fsl,pull-up = <0>; | ||
54 | }; | ||
55 | }; | ||
56 | }; | 54 | }; |
57 | 55 | ||
58 | apbx@80040000 { | 56 | reg_usb1_vbus: usb1_vbus { |
59 | i2c0: i2c@80058000 { | 57 | compatible = "regulator-fixed"; |
60 | pinctrl-names = "default"; | 58 | regulator-name = "usb1_vbus"; |
61 | pinctrl-0 = <&i2c0_pins_a>; | 59 | regulator-min-microvolt = <5000000>; |
62 | status = "okay"; | 60 | regulator-max-microvolt = <5000000>; |
61 | gpio = <&gpio3 27 0>; | ||
62 | enable-active-high; | ||
63 | }; | ||
63 | 64 | ||
64 | ds1339: rtc@68 { | 65 | reg_2p5v: 2p5v { |
65 | compatible = "mxim,ds1339"; | 66 | compatible = "regulator-fixed"; |
66 | reg = <0x68>; | 67 | regulator-name = "2P5V"; |
67 | }; | 68 | regulator-min-microvolt = <2500000>; |
68 | }; | 69 | regulator-max-microvolt = <2500000>; |
70 | regulator-always-on; | ||
71 | }; | ||
69 | 72 | ||
70 | pwm: pwm@80064000 { | 73 | reg_3p3v: 3p3v { |
71 | pinctrl-names = "default"; | 74 | compatible = "regulator-fixed"; |
72 | pinctrl-0 = <&pwm0_pins_a>; | 75 | regulator-name = "3P3V"; |
73 | status = "okay"; | 76 | regulator-min-microvolt = <3300000>; |
74 | }; | 77 | regulator-max-microvolt = <3300000>; |
78 | regulator-always-on; | ||
79 | }; | ||
75 | 80 | ||
76 | duart: serial@80074000 { | 81 | reg_can_xcvr: can-xcvr { |
77 | pinctrl-names = "default"; | 82 | compatible = "regulator-fixed"; |
78 | pinctrl-0 = <&duart_4pins_a>; | 83 | regulator-name = "CAN XCVR"; |
79 | status = "okay"; | 84 | regulator-min-microvolt = <3300000>; |
80 | }; | 85 | regulator-max-microvolt = <3300000>; |
86 | gpio = <&gpio1 0 0>; | ||
87 | enable-active-low; | ||
88 | pinctrl-names = "default"; | ||
89 | pinctrl-0 = <&tx28_flexcan_xcvr_pins>; | ||
90 | }; | ||
81 | 91 | ||
82 | auart1: serial@8006c000 { | 92 | reg_lcd: lcd-power { |
83 | pinctrl-names = "default"; | 93 | compatible = "regulator-fixed"; |
84 | pinctrl-0 = <&auart1_pins_a>; | 94 | regulator-name = "LCD POWER"; |
85 | status = "okay"; | 95 | regulator-min-microvolt = <3300000>; |
86 | }; | 96 | regulator-max-microvolt = <3300000>; |
97 | gpio = <&gpio1 31 0>; | ||
98 | enable-active-high; | ||
99 | }; | ||
100 | |||
101 | reg_lcd_reset: lcd-reset { | ||
102 | compatible = "regulator-fixed"; | ||
103 | regulator-name = "LCD RESET"; | ||
104 | regulator-min-microvolt = <3300000>; | ||
105 | regulator-max-microvolt = <3300000>; | ||
106 | gpio = <&gpio3 30 0>; | ||
107 | startup-delay-us = <300000>; | ||
108 | enable-active-high; | ||
109 | regulator-always-on; | ||
110 | regulator-boot-on; | ||
87 | }; | 111 | }; |
88 | }; | 112 | }; |
89 | 113 | ||
90 | ahb@80080000 { | 114 | clocks { |
91 | mac0: ethernet@800f0000 { | 115 | #address-cells = <1>; |
92 | phy-mode = "rmii"; | 116 | #size-cells = <0>; |
93 | pinctrl-names = "default", "gpio_mode"; | 117 | mclk: clock@0 { |
94 | pinctrl-0 = <&mac0_pins_a>; | 118 | compatible = "fixed-clock"; |
95 | pinctrl-1 = <&mac0_pins_gpio>; | 119 | reg = <0>; |
96 | status = "okay"; | 120 | #clock-cells = <0>; |
121 | clock-frequency = <27000000>; | ||
97 | }; | 122 | }; |
98 | }; | 123 | }; |
99 | 124 | ||
125 | sound { | ||
126 | compatible = "fsl,imx28-tx28-sgtl5000", | ||
127 | "fsl,mxs-audio-sgtl5000"; | ||
128 | model = "imx28-tx28-sgtl5000"; | ||
129 | saif-controllers = <&saif0 &saif1>; | ||
130 | audio-codec = <&sgtl5000>; | ||
131 | }; | ||
132 | |||
100 | leds { | 133 | leds { |
101 | compatible = "gpio-leds"; | 134 | compatible = "gpio-leds"; |
102 | 135 | ||
103 | user { | 136 | user_led: user { |
104 | label = "Heartbeat"; | 137 | label = "Heartbeat"; |
105 | gpios = <&gpio4 10 0>; | 138 | gpios = <&gpio4 10 0>; |
106 | linux,default-trigger = "heartbeat"; | 139 | linux,default-trigger = "heartbeat"; |
@@ -109,8 +142,512 @@ | |||
109 | 142 | ||
110 | backlight { | 143 | backlight { |
111 | compatible = "pwm-backlight"; | 144 | compatible = "pwm-backlight"; |
112 | pwms = <&pwm 0 5000000>; | 145 | pwms = <&pwm 0 500000>; |
113 | brightness-levels = <0 4 8 16 32 64 128 255>; | 146 | /* |
114 | default-brightness-level = <6>; | 147 | * a silly way to create a 1:1 relationship between the |
148 | * PWM value and the actual duty cycle | ||
149 | */ | ||
150 | brightness-levels = < 0 1 2 3 4 5 6 7 8 9 | ||
151 | 10 11 12 13 14 15 16 17 18 19 | ||
152 | 20 21 22 23 24 25 26 27 28 29 | ||
153 | 30 31 32 33 34 35 36 37 38 39 | ||
154 | 40 41 42 43 44 45 46 47 48 49 | ||
155 | 50 51 52 53 54 55 56 57 58 59 | ||
156 | 60 61 62 63 64 65 66 67 68 69 | ||
157 | 70 71 72 73 74 75 76 77 78 79 | ||
158 | 80 81 82 83 84 85 86 87 88 89 | ||
159 | 90 91 92 93 94 95 96 97 98 99 | ||
160 | 100>; | ||
161 | default-brightness-level = <50>; | ||
162 | }; | ||
163 | |||
164 | matrix_keypad: matrix-keypad@0 { | ||
165 | compatible = "gpio-matrix-keypad"; | ||
166 | col-gpios = < | ||
167 | &gpio5 0 0 | ||
168 | &gpio5 1 0 | ||
169 | &gpio5 2 0 | ||
170 | &gpio5 3 0 | ||
171 | >; | ||
172 | row-gpios = < | ||
173 | &gpio5 4 0 | ||
174 | &gpio5 5 0 | ||
175 | &gpio5 6 0 | ||
176 | &gpio5 7 0 | ||
177 | >; | ||
178 | /* sample keymap */ | ||
179 | linux,keymap = < | ||
180 | 0x00000074 /* row 0, col 0, KEY_POWER */ | ||
181 | 0x00010052 /* row 0, col 1, KEY_KP0 */ | ||
182 | 0x0002004f /* row 0, col 2, KEY_KP1 */ | ||
183 | 0x00030050 /* row 0, col 3, KEY_KP2 */ | ||
184 | 0x01000051 /* row 1, col 0, KEY_KP3 */ | ||
185 | 0x0101004b /* row 1, col 1, KEY_KP4 */ | ||
186 | 0x0102004c /* row 1, col 2, KEY_KP5 */ | ||
187 | 0x0103004d /* row 1, col 3, KEY_KP6 */ | ||
188 | 0x02000047 /* row 2, col 0, KEY_KP7 */ | ||
189 | 0x02010048 /* row 2, col 1, KEY_KP8 */ | ||
190 | 0x02020049 /* row 2, col 2, KEY_KP9 */ | ||
191 | >; | ||
192 | gpio-activelow; | ||
193 | linux,wakeup; | ||
194 | debounce-delay-ms = <100>; | ||
195 | col-scan-delay-us = <5000>; | ||
196 | linux,no-autorepeat; | ||
197 | }; | ||
198 | }; | ||
199 | |||
200 | /* 2nd TX-Std UART - (A)UART1 */ | ||
201 | &auart1 { | ||
202 | pinctrl-names = "default"; | ||
203 | pinctrl-0 = <&auart1_pins_a>; | ||
204 | status = "okay"; | ||
205 | }; | ||
206 | |||
207 | /* 3rd TX-Std UART - (A)UART3 */ | ||
208 | &auart3 { | ||
209 | pinctrl-names = "default"; | ||
210 | pinctrl-0 = <&auart3_pins_a>; | ||
211 | status = "okay"; | ||
212 | }; | ||
213 | |||
214 | &can0 { | ||
215 | pinctrl-names = "default"; | ||
216 | pinctrl-0 = <&can0_pins_a>; | ||
217 | xceiver-supply = <®_can_xcvr>; | ||
218 | status = "okay"; | ||
219 | }; | ||
220 | |||
221 | &can1 { | ||
222 | pinctrl-names = "default"; | ||
223 | pinctrl-0 = <&can1_pins_a>; | ||
224 | xceiver-supply = <®_can_xcvr>; | ||
225 | status = "okay"; | ||
226 | }; | ||
227 | |||
228 | &digctl { | ||
229 | status = "okay"; | ||
230 | }; | ||
231 | |||
232 | /* 1st TX-Std UART - (D)UART */ | ||
233 | &duart { | ||
234 | pinctrl-names = "default"; | ||
235 | pinctrl-0 = <&duart_4pins_a>; | ||
236 | status = "okay"; | ||
237 | }; | ||
238 | |||
239 | &gpmi { | ||
240 | pinctrl-0 = <&gpmi_pins_a &gpmi_status_cfg>; | ||
241 | nand-on-flash-bbt; | ||
242 | status = "okay"; | ||
243 | }; | ||
244 | |||
245 | &i2c0 { | ||
246 | pinctrl-names = "default"; | ||
247 | pinctrl-0 = <&i2c0_pins_a>; | ||
248 | clock-frequency = <400000>; | ||
249 | status = "okay"; | ||
250 | |||
251 | sgtl5000: sgtl5000@0a { | ||
252 | compatible = "fsl,sgtl5000"; | ||
253 | reg = <0x0a>; | ||
254 | VDDA-supply = <®_2p5v>; | ||
255 | VDDIO-supply = <®_3p3v>; | ||
256 | clocks = <&mclk>; | ||
257 | }; | ||
258 | |||
259 | gpio5: pca953x@20 { | ||
260 | compatible = "nxp,pca9554"; | ||
261 | reg = <0x20>; | ||
262 | pinctrl-names = "default"; | ||
263 | pinctrl-0 = <&tx28_pca9554_pins>; | ||
264 | interrupt-parent = <&gpio3>; | ||
265 | interrupts = <28 0>; | ||
266 | gpio-controller; | ||
267 | #gpio-cells = <2>; | ||
268 | interrupt-controller; | ||
269 | #interrupt-cells = <2>; | ||
270 | }; | ||
271 | |||
272 | polytouch: edt-ft5x06@38 { | ||
273 | compatible = "edt,edt-ft5x06"; | ||
274 | reg = <0x38>; | ||
275 | pinctrl-names = "default"; | ||
276 | pinctrl-0 = <&tx28_edt_ft5x06_pins>; | ||
277 | interrupt-parent = <&gpio2>; | ||
278 | interrupts = <5 0>; | ||
279 | reset-gpios = <&gpio2 6 1>; | ||
280 | wake-gpios = <&gpio4 9 0>; | ||
281 | }; | ||
282 | |||
283 | touchscreen: tsc2007@48 { | ||
284 | compatible = "ti,tsc2007"; | ||
285 | reg = <0x48>; | ||
286 | pinctrl-names = "default"; | ||
287 | pinctrl-0 = <&tx28_tsc2007_pins>; | ||
288 | interrupt-parent = <&gpio3>; | ||
289 | interrupts = <20 0>; | ||
290 | pendown-gpio = <&gpio3 20 1>; | ||
291 | ti,x-plate-ohms = /bits/ 16 <660>; | ||
292 | }; | ||
293 | |||
294 | ds1339: rtc@68 { | ||
295 | compatible = "mxim,ds1339"; | ||
296 | reg = <0x68>; | ||
297 | }; | ||
298 | }; | ||
299 | |||
300 | &lcdif { | ||
301 | pinctrl-names = "default"; | ||
302 | pinctrl-0 = <&lcdif_24bit_pins_a &lcdif_sync_pins_a &tx28_lcdif_ctrl_pins>; | ||
303 | lcd-supply = <®_lcd>; | ||
304 | display = <&display>; | ||
305 | status = "okay"; | ||
306 | |||
307 | display: display@0 { | ||
308 | bits-per-pixel = <32>; | ||
309 | bus-width = <24>; | ||
310 | display-timings { | ||
311 | native-mode = <&timing5>; | ||
312 | timing0: timing0 { | ||
313 | panel-name = "VGA"; | ||
314 | clock-frequency = <25175000>; | ||
315 | hactive = <640>; | ||
316 | vactive = <480>; | ||
317 | hback-porch = <48>; | ||
318 | hsync-len = <96>; | ||
319 | hfront-porch = <16>; | ||
320 | vback-porch = <33>; | ||
321 | vsync-len = <2>; | ||
322 | vfront-porch = <10>; | ||
323 | hsync-active = <0>; | ||
324 | vsync-active = <0>; | ||
325 | de-active = <1>; | ||
326 | pixelclk-active = <1>; | ||
327 | }; | ||
328 | |||
329 | timing1: timing1 { | ||
330 | panel-name = "ETV570"; | ||
331 | clock-frequency = <25175000>; | ||
332 | hactive = <640>; | ||
333 | vactive = <480>; | ||
334 | hback-porch = <114>; | ||
335 | hsync-len = <30>; | ||
336 | hfront-porch = <16>; | ||
337 | vback-porch = <32>; | ||
338 | vsync-len = <3>; | ||
339 | vfront-porch = <10>; | ||
340 | hsync-active = <0>; | ||
341 | vsync-active = <0>; | ||
342 | de-active = <1>; | ||
343 | pixelclk-active = <1>; | ||
344 | }; | ||
345 | |||
346 | timing2: timing2 { | ||
347 | panel-name = "ET0350"; | ||
348 | clock-frequency = <6500000>; | ||
349 | hactive = <320>; | ||
350 | vactive = <240>; | ||
351 | hback-porch = <34>; | ||
352 | hsync-len = <34>; | ||
353 | hfront-porch = <20>; | ||
354 | vback-porch = <15>; | ||
355 | vsync-len = <3>; | ||
356 | vfront-porch = <4>; | ||
357 | hsync-active = <0>; | ||
358 | vsync-active = <0>; | ||
359 | de-active = <1>; | ||
360 | pixelclk-active = <1>; | ||
361 | }; | ||
362 | |||
363 | timing3: timing3 { | ||
364 | panel-name = "ET0430"; | ||
365 | clock-frequency = <9000000>; | ||
366 | hactive = <480>; | ||
367 | vactive = <272>; | ||
368 | hback-porch = <2>; | ||
369 | hsync-len = <41>; | ||
370 | hfront-porch = <2>; | ||
371 | vback-porch = <2>; | ||
372 | vsync-len = <10>; | ||
373 | vfront-porch = <2>; | ||
374 | hsync-active = <0>; | ||
375 | vsync-active = <0>; | ||
376 | de-active = <1>; | ||
377 | pixelclk-active = <1>; | ||
378 | }; | ||
379 | |||
380 | timing4: timing4 { | ||
381 | panel-name = "ET0500", "ET0700"; | ||
382 | clock-frequency = <33260000>; | ||
383 | hactive = <800>; | ||
384 | vactive = <480>; | ||
385 | hback-porch = <88>; | ||
386 | hsync-len = <128>; | ||
387 | hfront-porch = <40>; | ||
388 | vback-porch = <33>; | ||
389 | vsync-len = <2>; | ||
390 | vfront-porch = <10>; | ||
391 | hsync-active = <0>; | ||
392 | vsync-active = <0>; | ||
393 | de-active = <1>; | ||
394 | pixelclk-active = <1>; | ||
395 | }; | ||
396 | |||
397 | timing5: timing5 { | ||
398 | panel-name = "ETQ570"; | ||
399 | clock-frequency = <6400000>; | ||
400 | hactive = <320>; | ||
401 | vactive = <240>; | ||
402 | hback-porch = <38>; | ||
403 | hsync-len = <30>; | ||
404 | hfront-porch = <30>; | ||
405 | vback-porch = <16>; | ||
406 | vsync-len = <3>; | ||
407 | vfront-porch = <4>; | ||
408 | hsync-active = <0>; | ||
409 | vsync-active = <0>; | ||
410 | de-active = <1>; | ||
411 | pixelclk-active = <1>; | ||
412 | }; | ||
413 | }; | ||
414 | }; | ||
415 | }; | ||
416 | |||
417 | &lradc { | ||
418 | fsl,lradc-touchscreen-wires = <4>; | ||
419 | status = "okay"; | ||
420 | }; | ||
421 | |||
422 | &mac0 { | ||
423 | phy-mode = "rmii"; | ||
424 | pinctrl-names = "default", "gpio_mode"; | ||
425 | pinctrl-0 = <&mac0_pins_a>; | ||
426 | pinctrl-1 = <&tx28_mac0_pins_gpio>; | ||
427 | status = "okay"; | ||
428 | }; | ||
429 | |||
430 | &mac1 { | ||
431 | phy-mode = "rmii"; | ||
432 | pinctrl-names = "default"; | ||
433 | pinctrl-0 = <&mac1_pins_a>; | ||
434 | /* not enabled by default */ | ||
435 | }; | ||
436 | |||
437 | &mxs_rtc { | ||
438 | status = "okay"; | ||
439 | }; | ||
440 | |||
441 | &ocotp { | ||
442 | status = "okay"; | ||
443 | }; | ||
444 | |||
445 | &pwm { | ||
446 | pinctrl-names = "default"; | ||
447 | pinctrl-0 = <&pwm0_pins_a>; | ||
448 | status = "okay"; | ||
449 | }; | ||
450 | |||
451 | &pinctrl { | ||
452 | pinctrl-names = "default"; | ||
453 | pinctrl-0 = <&hog_pins_a>; | ||
454 | |||
455 | hog_pins_a: hog@0 { | ||
456 | reg = <0>; | ||
457 | fsl,pinmux-ids = < | ||
458 | MX28_PAD_ENET0_RXD3__GPIO_4_10 /* module LED */ | ||
459 | >; | ||
460 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
461 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
462 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
463 | }; | ||
464 | |||
465 | tx28_edt_ft5x06_pins: tx28-edt-ft5x06-pins { | ||
466 | fsl,pinmux-ids = < | ||
467 | MX28_PAD_SSP0_DATA6__GPIO_2_6 /* RESET */ | ||
468 | MX28_PAD_SSP0_DATA5__GPIO_2_5 /* IRQ */ | ||
469 | MX28_PAD_ENET0_RXD2__GPIO_4_9 /* WAKE */ | ||
470 | >; | ||
471 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
472 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
473 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
474 | }; | ||
475 | |||
476 | tx28_flexcan_xcvr_pins: tx28-flexcan-xcvr-pins { | ||
477 | fsl,pinmux-ids = < | ||
478 | MX28_PAD_LCD_D00__GPIO_1_0 | ||
479 | >; | ||
480 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
481 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
482 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
483 | }; | ||
484 | |||
485 | tx28_lcdif_23bit_pins: tx28-lcdif-23bit { | ||
486 | fsl,pinmux-ids = < | ||
487 | /* LCD_D00 may be used as Flexcan Transceiver Enable on STK5-V5 */ | ||
488 | MX28_PAD_LCD_D01__LCD_D1 | ||
489 | MX28_PAD_LCD_D02__LCD_D2 | ||
490 | MX28_PAD_LCD_D03__LCD_D3 | ||
491 | MX28_PAD_LCD_D04__LCD_D4 | ||
492 | MX28_PAD_LCD_D05__LCD_D5 | ||
493 | MX28_PAD_LCD_D06__LCD_D6 | ||
494 | MX28_PAD_LCD_D07__LCD_D7 | ||
495 | MX28_PAD_LCD_D08__LCD_D8 | ||
496 | MX28_PAD_LCD_D09__LCD_D9 | ||
497 | MX28_PAD_LCD_D10__LCD_D10 | ||
498 | MX28_PAD_LCD_D11__LCD_D11 | ||
499 | MX28_PAD_LCD_D12__LCD_D12 | ||
500 | MX28_PAD_LCD_D13__LCD_D13 | ||
501 | MX28_PAD_LCD_D14__LCD_D14 | ||
502 | MX28_PAD_LCD_D15__LCD_D15 | ||
503 | MX28_PAD_LCD_D16__LCD_D16 | ||
504 | MX28_PAD_LCD_D17__LCD_D17 | ||
505 | MX28_PAD_LCD_D18__LCD_D18 | ||
506 | MX28_PAD_LCD_D19__LCD_D19 | ||
507 | MX28_PAD_LCD_D20__LCD_D20 | ||
508 | MX28_PAD_LCD_D21__LCD_D21 | ||
509 | MX28_PAD_LCD_D22__LCD_D22 | ||
510 | MX28_PAD_LCD_D23__LCD_D23 | ||
511 | >; | ||
512 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
513 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
514 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
515 | }; | ||
516 | |||
517 | tx28_lcdif_ctrl_pins: tx28-lcdif-ctrl { | ||
518 | fsl,pinmux-ids = < | ||
519 | MX28_PAD_LCD_ENABLE__GPIO_1_31 /* Enable */ | ||
520 | MX28_PAD_LCD_RESET__GPIO_3_30 /* Reset */ | ||
521 | >; | ||
522 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
523 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
524 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
525 | }; | ||
526 | |||
527 | tx28_mac0_pins_gpio: tx28-mac0-gpio-pins { | ||
528 | fsl,pinmux-ids = < | ||
529 | MX28_PAD_ENET0_MDC__GPIO_4_0 | ||
530 | MX28_PAD_ENET0_MDIO__GPIO_4_1 | ||
531 | MX28_PAD_ENET0_RX_EN__GPIO_4_2 | ||
532 | MX28_PAD_ENET0_RXD0__GPIO_4_3 | ||
533 | MX28_PAD_ENET0_RXD1__GPIO_4_4 | ||
534 | MX28_PAD_ENET0_TX_EN__GPIO_4_6 | ||
535 | MX28_PAD_ENET0_TXD0__GPIO_4_7 | ||
536 | MX28_PAD_ENET0_TXD1__GPIO_4_8 | ||
537 | MX28_PAD_ENET_CLK__GPIO_4_16 | ||
538 | >; | ||
539 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
540 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
541 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
542 | }; | ||
543 | |||
544 | tx28_pca9554_pins: tx28-pca9554-pins { | ||
545 | fsl,pinmux-ids = < | ||
546 | MX28_PAD_PWM3__GPIO_3_28 | ||
547 | >; | ||
548 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
549 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
550 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
551 | }; | ||
552 | |||
553 | tx28_tsc2007_pins: tx28-tsc2007-pins { | ||
554 | fsl,pinmux-ids = < | ||
555 | MX28_PAD_SAIF0_MCLK__GPIO_3_20 /* TSC2007 IRQ */ | ||
556 | >; | ||
557 | fsl,drive-strength = <MXS_DRIVE_4mA>; | ||
558 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
559 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
560 | }; | ||
561 | |||
562 | |||
563 | tx28_usbphy0_pins: tx28-usbphy0-pins { | ||
564 | fsl,pinmux-ids = < | ||
565 | MX28_PAD_GPMI_CE2N__GPIO_0_18 /* USBOTG_VBUSEN */ | ||
566 | MX28_PAD_GPMI_CE3N__GPIO_0_19 /* USBOTH_OC */ | ||
567 | >; | ||
568 | fsl,drive-strength = <MXS_DRIVE_12mA>; | ||
569 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
570 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
571 | }; | ||
572 | |||
573 | tx28_usbphy1_pins: tx28-usbphy1-pins { | ||
574 | fsl,pinmux-ids = < | ||
575 | MX28_PAD_SPDIF__GPIO_3_27 /* USBH_VBUSEN */ | ||
576 | MX28_PAD_JTAG_RTCK__GPIO_4_20 /* USBH_OC */ | ||
577 | >; | ||
578 | fsl,drive-strength = <MXS_DRIVE_12mA>; | ||
579 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
580 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
581 | }; | ||
582 | }; | ||
583 | |||
584 | &saif0 { | ||
585 | pinctrl-names = "default"; | ||
586 | pinctrl-0 = <&saif0_pins_b>; | ||
587 | fsl,saif-master; | ||
588 | status = "okay"; | ||
589 | }; | ||
590 | |||
591 | &saif1 { | ||
592 | pinctrl-names = "default"; | ||
593 | pinctrl-0 = <&saif1_pins_a>; | ||
594 | status = "okay"; | ||
595 | }; | ||
596 | |||
597 | &ssp0 { | ||
598 | compatible = "fsl,imx28-mmc"; | ||
599 | pinctrl-names = "default", "special"; | ||
600 | pinctrl-0 = <&mmc0_4bit_pins_a | ||
601 | &mmc0_cd_cfg | ||
602 | &mmc0_sck_cfg>; | ||
603 | bus-width = <4>; | ||
604 | status = "okay"; | ||
605 | }; | ||
606 | |||
607 | &ssp3 { | ||
608 | compatible = "fsl,imx28-spi"; | ||
609 | pinctrl-names = "default"; | ||
610 | pinctrl-0 = <&spi3_pins_a>; | ||
611 | clock-frequency = <57600000>; | ||
612 | status = "okay"; | ||
613 | |||
614 | spidev0: spi@0 { | ||
615 | compatible = "spidev"; | ||
616 | reg = <0>; | ||
617 | spi-max-frequency = <57600000>; | ||
618 | }; | ||
619 | |||
620 | spidev1: spi@1 { | ||
621 | compatible = "spidev"; | ||
622 | reg = <1>; | ||
623 | spi-max-frequency = <57600000>; | ||
115 | }; | 624 | }; |
116 | }; | 625 | }; |
626 | |||
627 | &usb0 { | ||
628 | vbus-supply = <®_usb0_vbus>; | ||
629 | disable-over-current; | ||
630 | dr_mode = "peripheral"; | ||
631 | status = "okay"; | ||
632 | }; | ||
633 | |||
634 | &usb1 { | ||
635 | vbus-supply = <®_usb1_vbus>; | ||
636 | disable-over-current; | ||
637 | dr_mode = "host"; | ||
638 | status = "okay"; | ||
639 | }; | ||
640 | |||
641 | &usbphy0 { | ||
642 | pinctrl-names = "default"; | ||
643 | pinctrl-0 = <&tx28_usbphy0_pins>; | ||
644 | phy_type = "utmi"; | ||
645 | status = "okay"; | ||
646 | }; | ||
647 | |||
648 | &usbphy1 { | ||
649 | pinctrl-names = "default"; | ||
650 | pinctrl-0 = <&tx28_usbphy1_pins>; | ||
651 | phy_type = "utmi"; | ||
652 | status = "okay"; | ||
653 | }; | ||
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi index 175deefb048b..cda19c8b0a47 100644 --- a/arch/arm/boot/dts/imx28.dtsi +++ b/arch/arm/boot/dts/imx28.dtsi | |||
@@ -9,7 +9,8 @@ | |||
9 | * http://www.gnu.org/copyleft/gpl.html | 9 | * http://www.gnu.org/copyleft/gpl.html |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /include/ "skeleton.dtsi" | 12 | #include "skeleton.dtsi" |
13 | #include "imx28-pinfunc.h" | ||
13 | 14 | ||
14 | / { | 15 | / { |
15 | interrupt-parent = <&icoll>; | 16 | interrupt-parent = <&icoll>; |
@@ -207,538 +208,579 @@ | |||
207 | duart_pins_a: duart@0 { | 208 | duart_pins_a: duart@0 { |
208 | reg = <0>; | 209 | reg = <0>; |
209 | fsl,pinmux-ids = < | 210 | fsl,pinmux-ids = < |
210 | 0x3102 /* MX28_PAD_PWM0__DUART_RX */ | 211 | MX28_PAD_PWM0__DUART_RX |
211 | 0x3112 /* MX28_PAD_PWM1__DUART_TX */ | 212 | MX28_PAD_PWM1__DUART_TX |
212 | >; | 213 | >; |
213 | fsl,drive-strength = <0>; | 214 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
214 | fsl,voltage = <1>; | 215 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
215 | fsl,pull-up = <0>; | 216 | fsl,pull-up = <MXS_PULL_DISABLE>; |
216 | }; | 217 | }; |
217 | 218 | ||
218 | duart_pins_b: duart@1 { | 219 | duart_pins_b: duart@1 { |
219 | reg = <1>; | 220 | reg = <1>; |
220 | fsl,pinmux-ids = < | 221 | fsl,pinmux-ids = < |
221 | 0x3022 /* MX28_PAD_AUART0_CTS__DUART_RX */ | 222 | MX28_PAD_AUART0_CTS__DUART_RX |
222 | 0x3032 /* MX28_PAD_AUART0_RTS__DUART_TX */ | 223 | MX28_PAD_AUART0_RTS__DUART_TX |
223 | >; | 224 | >; |
224 | fsl,drive-strength = <0>; | 225 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
225 | fsl,voltage = <1>; | 226 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
226 | fsl,pull-up = <0>; | 227 | fsl,pull-up = <MXS_PULL_DISABLE>; |
227 | }; | 228 | }; |
228 | 229 | ||
229 | duart_4pins_a: duart-4pins@0 { | 230 | duart_4pins_a: duart-4pins@0 { |
230 | reg = <0>; | 231 | reg = <0>; |
231 | fsl,pinmux-ids = < | 232 | fsl,pinmux-ids = < |
232 | 0x3022 /* MX28_PAD_AUART0_CTS__DUART_RX */ | 233 | MX28_PAD_AUART0_CTS__DUART_RX |
233 | 0x3032 /* MX28_PAD_AUART0_RTS__DUART_TX */ | 234 | MX28_PAD_AUART0_RTS__DUART_TX |
234 | 0x3002 /* MX28_PAD_AUART0_RX__DUART_CTS */ | 235 | MX28_PAD_AUART0_RX__DUART_CTS |
235 | 0x3012 /* MX28_PAD_AUART0_TX__DUART_RTS */ | 236 | MX28_PAD_AUART0_TX__DUART_RTS |
236 | >; | 237 | >; |
237 | fsl,drive-strength = <0>; | 238 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
238 | fsl,voltage = <1>; | 239 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
239 | fsl,pull-up = <0>; | 240 | fsl,pull-up = <MXS_PULL_DISABLE>; |
240 | }; | 241 | }; |
241 | 242 | ||
242 | gpmi_pins_a: gpmi-nand@0 { | 243 | gpmi_pins_a: gpmi-nand@0 { |
243 | reg = <0>; | 244 | reg = <0>; |
244 | fsl,pinmux-ids = < | 245 | fsl,pinmux-ids = < |
245 | 0x0000 /* MX28_PAD_GPMI_D00__GPMI_D0 */ | 246 | MX28_PAD_GPMI_D00__GPMI_D0 |
246 | 0x0010 /* MX28_PAD_GPMI_D01__GPMI_D1 */ | 247 | MX28_PAD_GPMI_D01__GPMI_D1 |
247 | 0x0020 /* MX28_PAD_GPMI_D02__GPMI_D2 */ | 248 | MX28_PAD_GPMI_D02__GPMI_D2 |
248 | 0x0030 /* MX28_PAD_GPMI_D03__GPMI_D3 */ | 249 | MX28_PAD_GPMI_D03__GPMI_D3 |
249 | 0x0040 /* MX28_PAD_GPMI_D04__GPMI_D4 */ | 250 | MX28_PAD_GPMI_D04__GPMI_D4 |
250 | 0x0050 /* MX28_PAD_GPMI_D05__GPMI_D5 */ | 251 | MX28_PAD_GPMI_D05__GPMI_D5 |
251 | 0x0060 /* MX28_PAD_GPMI_D06__GPMI_D6 */ | 252 | MX28_PAD_GPMI_D06__GPMI_D6 |
252 | 0x0070 /* MX28_PAD_GPMI_D07__GPMI_D7 */ | 253 | MX28_PAD_GPMI_D07__GPMI_D7 |
253 | 0x0100 /* MX28_PAD_GPMI_CE0N__GPMI_CE0N */ | 254 | MX28_PAD_GPMI_CE0N__GPMI_CE0N |
254 | 0x0140 /* MX28_PAD_GPMI_RDY0__GPMI_READY0 */ | 255 | MX28_PAD_GPMI_RDY0__GPMI_READY0 |
255 | 0x0180 /* MX28_PAD_GPMI_RDN__GPMI_RDN */ | 256 | MX28_PAD_GPMI_RDN__GPMI_RDN |
256 | 0x0190 /* MX28_PAD_GPMI_WRN__GPMI_WRN */ | 257 | MX28_PAD_GPMI_WRN__GPMI_WRN |
257 | 0x01a0 /* MX28_PAD_GPMI_ALE__GPMI_ALE */ | 258 | MX28_PAD_GPMI_ALE__GPMI_ALE |
258 | 0x01b0 /* MX28_PAD_GPMI_CLE__GPMI_CLE */ | 259 | MX28_PAD_GPMI_CLE__GPMI_CLE |
259 | 0x01c0 /* MX28_PAD_GPMI_RESETN__GPMI_RESETN */ | 260 | MX28_PAD_GPMI_RESETN__GPMI_RESETN |
260 | >; | 261 | >; |
261 | fsl,drive-strength = <0>; | 262 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
262 | fsl,voltage = <1>; | 263 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
263 | fsl,pull-up = <0>; | 264 | fsl,pull-up = <MXS_PULL_DISABLE>; |
264 | }; | 265 | }; |
265 | 266 | ||
266 | gpmi_status_cfg: gpmi-status-cfg { | 267 | gpmi_status_cfg: gpmi-status-cfg { |
267 | fsl,pinmux-ids = < | 268 | fsl,pinmux-ids = < |
268 | 0x0180 /* MX28_PAD_GPMI_RDN__GPMI_RDN */ | 269 | MX28_PAD_GPMI_RDN__GPMI_RDN |
269 | 0x0190 /* MX28_PAD_GPMI_WRN__GPMI_WRN */ | 270 | MX28_PAD_GPMI_WRN__GPMI_WRN |
270 | 0x01c0 /* MX28_PAD_GPMI_RESETN__GPMI_RESETN */ | 271 | MX28_PAD_GPMI_RESETN__GPMI_RESETN |
271 | >; | 272 | >; |
272 | fsl,drive-strength = <2>; | 273 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
273 | }; | 274 | }; |
274 | 275 | ||
275 | auart0_pins_a: auart0@0 { | 276 | auart0_pins_a: auart0@0 { |
276 | reg = <0>; | 277 | reg = <0>; |
277 | fsl,pinmux-ids = < | 278 | fsl,pinmux-ids = < |
278 | 0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */ | 279 | MX28_PAD_AUART0_RX__AUART0_RX |
279 | 0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */ | 280 | MX28_PAD_AUART0_TX__AUART0_TX |
280 | 0x3020 /* MX28_PAD_AUART0_CTS__AUART0_CTS */ | 281 | MX28_PAD_AUART0_CTS__AUART0_CTS |
281 | 0x3030 /* MX28_PAD_AUART0_RTS__AUART0_RTS */ | 282 | MX28_PAD_AUART0_RTS__AUART0_RTS |
282 | >; | 283 | >; |
283 | fsl,drive-strength = <0>; | 284 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
284 | fsl,voltage = <1>; | 285 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
285 | fsl,pull-up = <0>; | 286 | fsl,pull-up = <MXS_PULL_DISABLE>; |
286 | }; | 287 | }; |
287 | 288 | ||
288 | auart0_2pins_a: auart0-2pins@0 { | 289 | auart0_2pins_a: auart0-2pins@0 { |
289 | reg = <0>; | 290 | reg = <0>; |
290 | fsl,pinmux-ids = < | 291 | fsl,pinmux-ids = < |
291 | 0x3000 /* MX28_PAD_AUART0_RX__AUART0_RX */ | 292 | MX28_PAD_AUART0_RX__AUART0_RX |
292 | 0x3010 /* MX28_PAD_AUART0_TX__AUART0_TX */ | 293 | MX28_PAD_AUART0_TX__AUART0_TX |
293 | >; | 294 | >; |
294 | fsl,drive-strength = <0>; | 295 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
295 | fsl,voltage = <1>; | 296 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
296 | fsl,pull-up = <0>; | 297 | fsl,pull-up = <MXS_PULL_DISABLE>; |
297 | }; | 298 | }; |
298 | 299 | ||
299 | auart1_pins_a: auart1@0 { | 300 | auart1_pins_a: auart1@0 { |
300 | reg = <0>; | 301 | reg = <0>; |
301 | fsl,pinmux-ids = < | 302 | fsl,pinmux-ids = < |
302 | 0x3040 /* MX28_PAD_AUART1_RX__AUART1_RX */ | 303 | MX28_PAD_AUART1_RX__AUART1_RX |
303 | 0x3050 /* MX28_PAD_AUART1_TX__AUART1_TX */ | 304 | MX28_PAD_AUART1_TX__AUART1_TX |
304 | 0x3060 /* MX28_PAD_AUART1_CTS__AUART1_CTS */ | 305 | MX28_PAD_AUART1_CTS__AUART1_CTS |
305 | 0x3070 /* MX28_PAD_AUART1_RTS__AUART1_RTS */ | 306 | MX28_PAD_AUART1_RTS__AUART1_RTS |
306 | >; | 307 | >; |
307 | fsl,drive-strength = <0>; | 308 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
308 | fsl,voltage = <1>; | 309 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
309 | fsl,pull-up = <0>; | 310 | fsl,pull-up = <MXS_PULL_DISABLE>; |
310 | }; | 311 | }; |
311 | 312 | ||
312 | auart1_2pins_a: auart1-2pins@0 { | 313 | auart1_2pins_a: auart1-2pins@0 { |
313 | reg = <0>; | 314 | reg = <0>; |
314 | fsl,pinmux-ids = < | 315 | fsl,pinmux-ids = < |
315 | 0x3040 /* MX28_PAD_AUART1_RX__AUART1_RX */ | 316 | MX28_PAD_AUART1_RX__AUART1_RX |
316 | 0x3050 /* MX28_PAD_AUART1_TX__AUART1_TX */ | 317 | MX28_PAD_AUART1_TX__AUART1_TX |
317 | >; | 318 | >; |
318 | fsl,drive-strength = <0>; | 319 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
319 | fsl,voltage = <1>; | 320 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
320 | fsl,pull-up = <0>; | 321 | fsl,pull-up = <MXS_PULL_DISABLE>; |
321 | }; | 322 | }; |
322 | 323 | ||
323 | auart2_2pins_a: auart2-2pins@0 { | 324 | auart2_2pins_a: auart2-2pins@0 { |
324 | reg = <0>; | 325 | reg = <0>; |
325 | fsl,pinmux-ids = < | 326 | fsl,pinmux-ids = < |
326 | 0x2101 /* MX28_PAD_SSP2_SCK__AUART2_RX */ | 327 | MX28_PAD_SSP2_SCK__AUART2_RX |
327 | 0x2111 /* MX28_PAD_SSP2_MOSI__AUART2_TX */ | 328 | MX28_PAD_SSP2_MOSI__AUART2_TX |
328 | >; | 329 | >; |
329 | fsl,drive-strength = <0>; | 330 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
330 | fsl,voltage = <1>; | 331 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
331 | fsl,pull-up = <0>; | 332 | fsl,pull-up = <MXS_PULL_DISABLE>; |
332 | }; | 333 | }; |
333 | 334 | ||
334 | auart2_2pins_b: auart2-2pins@1 { | 335 | auart2_2pins_b: auart2-2pins@1 { |
335 | reg = <1>; | 336 | reg = <1>; |
336 | fsl,pinmux-ids = < | 337 | fsl,pinmux-ids = < |
337 | 0x3080 /* MX28_PAD_AUART2_RX__AUART2_RX */ | 338 | MX28_PAD_AUART2_RX__AUART2_RX |
338 | 0x3090 /* MX28_PAD_AUART2_TX__AUART2_TX */ | 339 | MX28_PAD_AUART2_TX__AUART2_TX |
339 | >; | 340 | >; |
340 | fsl,drive-strength = <0>; | 341 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
341 | fsl,voltage = <1>; | 342 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
342 | fsl,pull-up = <0>; | 343 | fsl,pull-up = <MXS_PULL_DISABLE>; |
343 | }; | 344 | }; |
344 | 345 | ||
345 | auart3_pins_a: auart3@0 { | 346 | auart3_pins_a: auart3@0 { |
346 | reg = <0>; | 347 | reg = <0>; |
347 | fsl,pinmux-ids = < | 348 | fsl,pinmux-ids = < |
348 | 0x30c0 /* MX28_PAD_AUART3_RX__AUART3_RX */ | 349 | MX28_PAD_AUART3_RX__AUART3_RX |
349 | 0x30d0 /* MX28_PAD_AUART3_TX__AUART3_TX */ | 350 | MX28_PAD_AUART3_TX__AUART3_TX |
350 | 0x30e0 /* MX28_PAD_AUART3_CTS__AUART3_CTS */ | 351 | MX28_PAD_AUART3_CTS__AUART3_CTS |
351 | 0x30f0 /* MX28_PAD_AUART3_RTS__AUART3_RTS */ | 352 | MX28_PAD_AUART3_RTS__AUART3_RTS |
352 | >; | 353 | >; |
353 | fsl,drive-strength = <0>; | 354 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
354 | fsl,voltage = <1>; | 355 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
355 | fsl,pull-up = <0>; | 356 | fsl,pull-up = <MXS_PULL_DISABLE>; |
356 | }; | 357 | }; |
357 | 358 | ||
358 | auart3_2pins_a: auart3-2pins@0 { | 359 | auart3_2pins_a: auart3-2pins@0 { |
359 | reg = <0>; | 360 | reg = <0>; |
360 | fsl,pinmux-ids = < | 361 | fsl,pinmux-ids = < |
361 | 0x2121 /* MX28_PAD_SSP2_MISO__AUART3_RX */ | 362 | MX28_PAD_SSP2_MISO__AUART3_RX |
362 | 0x2131 /* MX28_PAD_SSP2_SS0__AUART3_TX */ | 363 | MX28_PAD_SSP2_SS0__AUART3_TX |
363 | >; | 364 | >; |
364 | fsl,drive-strength = <0>; | 365 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
365 | fsl,voltage = <1>; | 366 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
366 | fsl,pull-up = <0>; | 367 | fsl,pull-up = <MXS_PULL_DISABLE>; |
367 | }; | 368 | }; |
368 | 369 | ||
369 | auart3_2pins_b: auart3-2pins@1 { | 370 | auart3_2pins_b: auart3-2pins@1 { |
370 | reg = <1>; | 371 | reg = <1>; |
371 | fsl,pinmux-ids = < | 372 | fsl,pinmux-ids = < |
372 | 0x30c0 /* MX28_PAD_AUART3_RX__AUART3_RX */ | 373 | MX28_PAD_AUART3_RX__AUART3_RX |
373 | 0x30d0 /* MX28_PAD_AUART3_TX__AUART3_TX */ | 374 | MX28_PAD_AUART3_TX__AUART3_TX |
374 | >; | 375 | >; |
375 | fsl,drive-strength = <0>; | 376 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
376 | fsl,voltage = <1>; | 377 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
377 | fsl,pull-up = <0>; | 378 | fsl,pull-up = <MXS_PULL_DISABLE>; |
378 | }; | 379 | }; |
379 | 380 | ||
380 | auart4_2pins_a: auart4@0 { | 381 | auart4_2pins_a: auart4@0 { |
381 | reg = <0>; | 382 | reg = <0>; |
382 | fsl,pinmux-ids = < | 383 | fsl,pinmux-ids = < |
383 | 0x2181 /* MX28_PAD_SSP3_SCK__AUART4_TX */ | 384 | MX28_PAD_SSP3_SCK__AUART4_TX |
384 | 0x2191 /* MX28_PAD_SSP3_MOSI__AUART4_RX */ | 385 | MX28_PAD_SSP3_MOSI__AUART4_RX |
385 | >; | 386 | >; |
386 | fsl,drive-strength = <0>; | 387 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
387 | fsl,voltage = <1>; | 388 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
388 | fsl,pull-up = <0>; | 389 | fsl,pull-up = <MXS_PULL_DISABLE>; |
389 | }; | 390 | }; |
390 | 391 | ||
391 | mac0_pins_a: mac0@0 { | 392 | mac0_pins_a: mac0@0 { |
392 | reg = <0>; | 393 | reg = <0>; |
393 | fsl,pinmux-ids = < | 394 | fsl,pinmux-ids = < |
394 | 0x4000 /* MX28_PAD_ENET0_MDC__ENET0_MDC */ | 395 | MX28_PAD_ENET0_MDC__ENET0_MDC |
395 | 0x4010 /* MX28_PAD_ENET0_MDIO__ENET0_MDIO */ | 396 | MX28_PAD_ENET0_MDIO__ENET0_MDIO |
396 | 0x4020 /* MX28_PAD_ENET0_RX_EN__ENET0_RX_EN */ | 397 | MX28_PAD_ENET0_RX_EN__ENET0_RX_EN |
397 | 0x4030 /* MX28_PAD_ENET0_RXD0__ENET0_RXD0 */ | 398 | MX28_PAD_ENET0_RXD0__ENET0_RXD0 |
398 | 0x4040 /* MX28_PAD_ENET0_RXD1__ENET0_RXD1 */ | 399 | MX28_PAD_ENET0_RXD1__ENET0_RXD1 |
399 | 0x4060 /* MX28_PAD_ENET0_TX_EN__ENET0_TX_EN */ | 400 | MX28_PAD_ENET0_TX_EN__ENET0_TX_EN |
400 | 0x4070 /* MX28_PAD_ENET0_TXD0__ENET0_TXD0 */ | 401 | MX28_PAD_ENET0_TXD0__ENET0_TXD0 |
401 | 0x4080 /* MX28_PAD_ENET0_TXD1__ENET0_TXD1 */ | 402 | MX28_PAD_ENET0_TXD1__ENET0_TXD1 |
402 | 0x4100 /* MX28_PAD_ENET_CLK__CLKCTRL_ENET */ | 403 | MX28_PAD_ENET_CLK__CLKCTRL_ENET |
403 | >; | 404 | >; |
404 | fsl,drive-strength = <1>; | 405 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
405 | fsl,voltage = <1>; | 406 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
406 | fsl,pull-up = <1>; | 407 | fsl,pull-up = <MXS_PULL_ENABLE>; |
407 | }; | 408 | }; |
408 | 409 | ||
409 | mac1_pins_a: mac1@0 { | 410 | mac1_pins_a: mac1@0 { |
410 | reg = <0>; | 411 | reg = <0>; |
411 | fsl,pinmux-ids = < | 412 | fsl,pinmux-ids = < |
412 | 0x40f1 /* MX28_PAD_ENET0_CRS__ENET1_RX_EN */ | 413 | MX28_PAD_ENET0_CRS__ENET1_RX_EN |
413 | 0x4091 /* MX28_PAD_ENET0_RXD2__ENET1_RXD0 */ | 414 | MX28_PAD_ENET0_RXD2__ENET1_RXD0 |
414 | 0x40a1 /* MX28_PAD_ENET0_RXD3__ENET1_RXD1 */ | 415 | MX28_PAD_ENET0_RXD3__ENET1_RXD1 |
415 | 0x40e1 /* MX28_PAD_ENET0_COL__ENET1_TX_EN */ | 416 | MX28_PAD_ENET0_COL__ENET1_TX_EN |
416 | 0x40b1 /* MX28_PAD_ENET0_TXD2__ENET1_TXD0 */ | 417 | MX28_PAD_ENET0_TXD2__ENET1_TXD0 |
417 | 0x40c1 /* MX28_PAD_ENET0_TXD3__ENET1_TXD1 */ | 418 | MX28_PAD_ENET0_TXD3__ENET1_TXD1 |
418 | >; | 419 | >; |
419 | fsl,drive-strength = <1>; | 420 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
420 | fsl,voltage = <1>; | 421 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
421 | fsl,pull-up = <1>; | 422 | fsl,pull-up = <MXS_PULL_ENABLE>; |
422 | }; | 423 | }; |
423 | 424 | ||
424 | mmc0_8bit_pins_a: mmc0-8bit@0 { | 425 | mmc0_8bit_pins_a: mmc0-8bit@0 { |
425 | reg = <0>; | 426 | reg = <0>; |
426 | fsl,pinmux-ids = < | 427 | fsl,pinmux-ids = < |
427 | 0x2000 /* MX28_PAD_SSP0_DATA0__SSP0_D0 */ | 428 | MX28_PAD_SSP0_DATA0__SSP0_D0 |
428 | 0x2010 /* MX28_PAD_SSP0_DATA1__SSP0_D1 */ | 429 | MX28_PAD_SSP0_DATA1__SSP0_D1 |
429 | 0x2020 /* MX28_PAD_SSP0_DATA2__SSP0_D2 */ | 430 | MX28_PAD_SSP0_DATA2__SSP0_D2 |
430 | 0x2030 /* MX28_PAD_SSP0_DATA3__SSP0_D3 */ | 431 | MX28_PAD_SSP0_DATA3__SSP0_D3 |
431 | 0x2040 /* MX28_PAD_SSP0_DATA4__SSP0_D4 */ | 432 | MX28_PAD_SSP0_DATA4__SSP0_D4 |
432 | 0x2050 /* MX28_PAD_SSP0_DATA5__SSP0_D5 */ | 433 | MX28_PAD_SSP0_DATA5__SSP0_D5 |
433 | 0x2060 /* MX28_PAD_SSP0_DATA6__SSP0_D6 */ | 434 | MX28_PAD_SSP0_DATA6__SSP0_D6 |
434 | 0x2070 /* MX28_PAD_SSP0_DATA7__SSP0_D7 */ | 435 | MX28_PAD_SSP0_DATA7__SSP0_D7 |
435 | 0x2080 /* MX28_PAD_SSP0_CMD__SSP0_CMD */ | 436 | MX28_PAD_SSP0_CMD__SSP0_CMD |
436 | 0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */ | 437 | MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT |
437 | 0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */ | 438 | MX28_PAD_SSP0_SCK__SSP0_SCK |
438 | >; | 439 | >; |
439 | fsl,drive-strength = <1>; | 440 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
440 | fsl,voltage = <1>; | 441 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
441 | fsl,pull-up = <1>; | 442 | fsl,pull-up = <MXS_PULL_ENABLE>; |
442 | }; | 443 | }; |
443 | 444 | ||
444 | mmc0_4bit_pins_a: mmc0-4bit@0 { | 445 | mmc0_4bit_pins_a: mmc0-4bit@0 { |
445 | reg = <0>; | 446 | reg = <0>; |
446 | fsl,pinmux-ids = < | 447 | fsl,pinmux-ids = < |
447 | 0x2000 /* MX28_PAD_SSP0_DATA0__SSP0_D0 */ | 448 | MX28_PAD_SSP0_DATA0__SSP0_D0 |
448 | 0x2010 /* MX28_PAD_SSP0_DATA1__SSP0_D1 */ | 449 | MX28_PAD_SSP0_DATA1__SSP0_D1 |
449 | 0x2020 /* MX28_PAD_SSP0_DATA2__SSP0_D2 */ | 450 | MX28_PAD_SSP0_DATA2__SSP0_D2 |
450 | 0x2030 /* MX28_PAD_SSP0_DATA3__SSP0_D3 */ | 451 | MX28_PAD_SSP0_DATA3__SSP0_D3 |
451 | 0x2080 /* MX28_PAD_SSP0_CMD__SSP0_CMD */ | 452 | MX28_PAD_SSP0_CMD__SSP0_CMD |
452 | 0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */ | 453 | MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT |
453 | 0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */ | 454 | MX28_PAD_SSP0_SCK__SSP0_SCK |
454 | >; | 455 | >; |
455 | fsl,drive-strength = <1>; | 456 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
456 | fsl,voltage = <1>; | 457 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
457 | fsl,pull-up = <1>; | 458 | fsl,pull-up = <MXS_PULL_ENABLE>; |
458 | }; | 459 | }; |
459 | 460 | ||
460 | mmc0_cd_cfg: mmc0-cd-cfg { | 461 | mmc0_cd_cfg: mmc0-cd-cfg { |
461 | fsl,pinmux-ids = < | 462 | fsl,pinmux-ids = < |
462 | 0x2090 /* MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT */ | 463 | MX28_PAD_SSP0_DETECT__SSP0_CARD_DETECT |
463 | >; | 464 | >; |
464 | fsl,pull-up = <0>; | 465 | fsl,pull-up = <MXS_PULL_DISABLE>; |
465 | }; | 466 | }; |
466 | 467 | ||
467 | mmc0_sck_cfg: mmc0-sck-cfg { | 468 | mmc0_sck_cfg: mmc0-sck-cfg { |
468 | fsl,pinmux-ids = < | 469 | fsl,pinmux-ids = < |
469 | 0x20a0 /* MX28_PAD_SSP0_SCK__SSP0_SCK */ | 470 | MX28_PAD_SSP0_SCK__SSP0_SCK |
470 | >; | 471 | >; |
471 | fsl,drive-strength = <2>; | 472 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
472 | fsl,pull-up = <0>; | 473 | fsl,pull-up = <MXS_PULL_DISABLE>; |
474 | }; | ||
475 | |||
476 | mmc2_4bit_pins_a: mmc2-4bit@0 { | ||
477 | reg = <0>; | ||
478 | fsl,pinmux-ids = < | ||
479 | MX28_PAD_SSP0_DATA4__SSP2_D0 | ||
480 | MX28_PAD_SSP1_SCK__SSP2_D1 | ||
481 | MX28_PAD_SSP1_CMD__SSP2_D2 | ||
482 | MX28_PAD_SSP0_DATA5__SSP2_D3 | ||
483 | MX28_PAD_SSP0_DATA6__SSP2_CMD | ||
484 | MX28_PAD_AUART1_RX__SSP2_CARD_DETECT | ||
485 | MX28_PAD_SSP0_DATA7__SSP2_SCK | ||
486 | >; | ||
487 | fsl,drive-strength = <MXS_DRIVE_8mA>; | ||
488 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
489 | fsl,pull-up = <MXS_PULL_ENABLE>; | ||
490 | }; | ||
491 | |||
492 | mmc2_cd_cfg: mmc2-cd-cfg { | ||
493 | fsl,pinmux-ids = < | ||
494 | MX28_PAD_AUART1_RX__SSP2_CARD_DETECT | ||
495 | >; | ||
496 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
497 | }; | ||
498 | |||
499 | mmc2_sck_cfg: mmc2-sck-cfg { | ||
500 | fsl,pinmux-ids = < | ||
501 | MX28_PAD_SSP0_DATA7__SSP2_SCK | ||
502 | >; | ||
503 | fsl,drive-strength = <MXS_DRIVE_12mA>; | ||
504 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
473 | }; | 505 | }; |
474 | 506 | ||
475 | i2c0_pins_a: i2c0@0 { | 507 | i2c0_pins_a: i2c0@0 { |
476 | reg = <0>; | 508 | reg = <0>; |
477 | fsl,pinmux-ids = < | 509 | fsl,pinmux-ids = < |
478 | 0x3180 /* MX28_PAD_I2C0_SCL__I2C0_SCL */ | 510 | MX28_PAD_I2C0_SCL__I2C0_SCL |
479 | 0x3190 /* MX28_PAD_I2C0_SDA__I2C0_SDA */ | 511 | MX28_PAD_I2C0_SDA__I2C0_SDA |
480 | >; | 512 | >; |
481 | fsl,drive-strength = <1>; | 513 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
482 | fsl,voltage = <1>; | 514 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
483 | fsl,pull-up = <1>; | 515 | fsl,pull-up = <MXS_PULL_ENABLE>; |
484 | }; | 516 | }; |
485 | 517 | ||
486 | i2c0_pins_b: i2c0@1 { | 518 | i2c0_pins_b: i2c0@1 { |
487 | reg = <1>; | 519 | reg = <1>; |
488 | fsl,pinmux-ids = < | 520 | fsl,pinmux-ids = < |
489 | 0x3001 /* MX28_PAD_AUART0_RX__I2C0_SCL */ | 521 | MX28_PAD_AUART0_RX__I2C0_SCL |
490 | 0x3011 /* MX28_PAD_AUART0_TX__I2C0_SDA */ | 522 | MX28_PAD_AUART0_TX__I2C0_SDA |
491 | >; | 523 | >; |
492 | fsl,drive-strength = <1>; | 524 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
493 | fsl,voltage = <1>; | 525 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
494 | fsl,pull-up = <1>; | 526 | fsl,pull-up = <MXS_PULL_ENABLE>; |
495 | }; | 527 | }; |
496 | 528 | ||
497 | i2c1_pins_a: i2c1@0 { | 529 | i2c1_pins_a: i2c1@0 { |
498 | reg = <0>; | 530 | reg = <0>; |
499 | fsl,pinmux-ids = < | 531 | fsl,pinmux-ids = < |
500 | 0x3101 /* MX28_PAD_PWM0__I2C1_SCL */ | 532 | MX28_PAD_PWM0__I2C1_SCL |
501 | 0x3111 /* MX28_PAD_PWM1__I2C1_SDA */ | 533 | MX28_PAD_PWM1__I2C1_SDA |
502 | >; | 534 | >; |
503 | fsl,drive-strength = <1>; | 535 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
504 | fsl,voltage = <1>; | 536 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
505 | fsl,pull-up = <1>; | 537 | fsl,pull-up = <MXS_PULL_ENABLE>; |
506 | }; | 538 | }; |
507 | 539 | ||
508 | saif0_pins_a: saif0@0 { | 540 | saif0_pins_a: saif0@0 { |
509 | reg = <0>; | 541 | reg = <0>; |
510 | fsl,pinmux-ids = < | 542 | fsl,pinmux-ids = < |
511 | 0x3140 /* MX28_PAD_SAIF0_MCLK__SAIF0_MCLK */ | 543 | MX28_PAD_SAIF0_MCLK__SAIF0_MCLK |
512 | 0x3150 /* MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK */ | 544 | MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK |
513 | 0x3160 /* MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK */ | 545 | MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK |
514 | 0x3170 /* MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 */ | 546 | MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 |
515 | >; | 547 | >; |
516 | fsl,drive-strength = <2>; | 548 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
517 | fsl,voltage = <1>; | 549 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
518 | fsl,pull-up = <1>; | 550 | fsl,pull-up = <MXS_PULL_ENABLE>; |
519 | }; | 551 | }; |
520 | 552 | ||
521 | saif0_pins_b: saif0@1 { | 553 | saif0_pins_b: saif0@1 { |
522 | reg = <1>; | 554 | reg = <1>; |
523 | fsl,pinmux-ids = < | 555 | fsl,pinmux-ids = < |
524 | 0x3150 /* MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK */ | 556 | MX28_PAD_SAIF0_LRCLK__SAIF0_LRCLK |
525 | 0x3160 /* MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK */ | 557 | MX28_PAD_SAIF0_BITCLK__SAIF0_BITCLK |
526 | 0x3170 /* MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 */ | 558 | MX28_PAD_SAIF0_SDATA0__SAIF0_SDATA0 |
527 | >; | 559 | >; |
528 | fsl,drive-strength = <2>; | 560 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
529 | fsl,voltage = <1>; | 561 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
530 | fsl,pull-up = <1>; | 562 | fsl,pull-up = <MXS_PULL_ENABLE>; |
531 | }; | 563 | }; |
532 | 564 | ||
533 | saif1_pins_a: saif1@0 { | 565 | saif1_pins_a: saif1@0 { |
534 | reg = <0>; | 566 | reg = <0>; |
535 | fsl,pinmux-ids = < | 567 | fsl,pinmux-ids = < |
536 | 0x31a0 /* MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 */ | 568 | MX28_PAD_SAIF1_SDATA0__SAIF1_SDATA0 |
537 | >; | 569 | >; |
538 | fsl,drive-strength = <2>; | 570 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
539 | fsl,voltage = <1>; | 571 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
540 | fsl,pull-up = <1>; | 572 | fsl,pull-up = <MXS_PULL_ENABLE>; |
541 | }; | 573 | }; |
542 | 574 | ||
543 | pwm0_pins_a: pwm0@0 { | 575 | pwm0_pins_a: pwm0@0 { |
544 | reg = <0>; | 576 | reg = <0>; |
545 | fsl,pinmux-ids = < | 577 | fsl,pinmux-ids = < |
546 | 0x3100 /* MX28_PAD_PWM0__PWM_0 */ | 578 | MX28_PAD_PWM0__PWM_0 |
547 | >; | 579 | >; |
548 | fsl,drive-strength = <0>; | 580 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
549 | fsl,voltage = <1>; | 581 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
550 | fsl,pull-up = <0>; | 582 | fsl,pull-up = <MXS_PULL_DISABLE>; |
551 | }; | 583 | }; |
552 | 584 | ||
553 | pwm2_pins_a: pwm2@0 { | 585 | pwm2_pins_a: pwm2@0 { |
554 | reg = <0>; | 586 | reg = <0>; |
555 | fsl,pinmux-ids = < | 587 | fsl,pinmux-ids = < |
556 | 0x3120 /* MX28_PAD_PWM2__PWM_2 */ | 588 | MX28_PAD_PWM2__PWM_2 |
557 | >; | 589 | >; |
558 | fsl,drive-strength = <0>; | 590 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
559 | fsl,voltage = <1>; | 591 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
560 | fsl,pull-up = <0>; | 592 | fsl,pull-up = <MXS_PULL_DISABLE>; |
561 | }; | 593 | }; |
562 | 594 | ||
563 | pwm3_pins_a: pwm3@0 { | 595 | pwm3_pins_a: pwm3@0 { |
564 | reg = <0>; | 596 | reg = <0>; |
565 | fsl,pinmux-ids = < | 597 | fsl,pinmux-ids = < |
566 | 0x31c0 /* MX28_PAD_PWM3__PWM_3 */ | 598 | MX28_PAD_PWM3__PWM_3 |
567 | >; | 599 | >; |
568 | fsl,drive-strength = <0>; | 600 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
569 | fsl,voltage = <1>; | 601 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
570 | fsl,pull-up = <0>; | 602 | fsl,pull-up = <MXS_PULL_DISABLE>; |
571 | }; | 603 | }; |
572 | 604 | ||
573 | pwm3_pins_b: pwm3@1 { | 605 | pwm3_pins_b: pwm3@1 { |
574 | reg = <1>; | 606 | reg = <1>; |
575 | fsl,pinmux-ids = < | 607 | fsl,pinmux-ids = < |
576 | 0x3141 /* MX28_PAD_SAIF0_MCLK__PWM3 */ | 608 | MX28_PAD_SAIF0_MCLK__PWM_3 |
577 | >; | 609 | >; |
578 | fsl,drive-strength = <0>; | 610 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
579 | fsl,voltage = <1>; | 611 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
580 | fsl,pull-up = <0>; | 612 | fsl,pull-up = <MXS_PULL_DISABLE>; |
581 | }; | 613 | }; |
582 | 614 | ||
583 | pwm4_pins_a: pwm4@0 { | 615 | pwm4_pins_a: pwm4@0 { |
584 | reg = <0>; | 616 | reg = <0>; |
585 | fsl,pinmux-ids = < | 617 | fsl,pinmux-ids = < |
586 | 0x31d0 /* MX28_PAD_PWM4__PWM_4 */ | 618 | MX28_PAD_PWM4__PWM_4 |
587 | >; | 619 | >; |
588 | fsl,drive-strength = <0>; | 620 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
589 | fsl,voltage = <1>; | 621 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
590 | fsl,pull-up = <0>; | 622 | fsl,pull-up = <MXS_PULL_DISABLE>; |
591 | }; | 623 | }; |
592 | 624 | ||
593 | lcdif_24bit_pins_a: lcdif-24bit@0 { | 625 | lcdif_24bit_pins_a: lcdif-24bit@0 { |
594 | reg = <0>; | 626 | reg = <0>; |
595 | fsl,pinmux-ids = < | 627 | fsl,pinmux-ids = < |
596 | 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ | 628 | MX28_PAD_LCD_D00__LCD_D0 |
597 | 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ | 629 | MX28_PAD_LCD_D01__LCD_D1 |
598 | 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ | 630 | MX28_PAD_LCD_D02__LCD_D2 |
599 | 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ | 631 | MX28_PAD_LCD_D03__LCD_D3 |
600 | 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ | 632 | MX28_PAD_LCD_D04__LCD_D4 |
601 | 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ | 633 | MX28_PAD_LCD_D05__LCD_D5 |
602 | 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ | 634 | MX28_PAD_LCD_D06__LCD_D6 |
603 | 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ | 635 | MX28_PAD_LCD_D07__LCD_D7 |
604 | 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ | 636 | MX28_PAD_LCD_D08__LCD_D8 |
605 | 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ | 637 | MX28_PAD_LCD_D09__LCD_D9 |
606 | 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ | 638 | MX28_PAD_LCD_D10__LCD_D10 |
607 | 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ | 639 | MX28_PAD_LCD_D11__LCD_D11 |
608 | 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ | 640 | MX28_PAD_LCD_D12__LCD_D12 |
609 | 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ | 641 | MX28_PAD_LCD_D13__LCD_D13 |
610 | 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ | 642 | MX28_PAD_LCD_D14__LCD_D14 |
611 | 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ | 643 | MX28_PAD_LCD_D15__LCD_D15 |
612 | 0x1100 /* MX28_PAD_LCD_D16__LCD_D16 */ | 644 | MX28_PAD_LCD_D16__LCD_D16 |
613 | 0x1110 /* MX28_PAD_LCD_D17__LCD_D17 */ | 645 | MX28_PAD_LCD_D17__LCD_D17 |
614 | 0x1120 /* MX28_PAD_LCD_D18__LCD_D18 */ | 646 | MX28_PAD_LCD_D18__LCD_D18 |
615 | 0x1130 /* MX28_PAD_LCD_D19__LCD_D19 */ | 647 | MX28_PAD_LCD_D19__LCD_D19 |
616 | 0x1140 /* MX28_PAD_LCD_D20__LCD_D20 */ | 648 | MX28_PAD_LCD_D20__LCD_D20 |
617 | 0x1150 /* MX28_PAD_LCD_D21__LCD_D21 */ | 649 | MX28_PAD_LCD_D21__LCD_D21 |
618 | 0x1160 /* MX28_PAD_LCD_D22__LCD_D22 */ | 650 | MX28_PAD_LCD_D22__LCD_D22 |
619 | 0x1170 /* MX28_PAD_LCD_D23__LCD_D23 */ | 651 | MX28_PAD_LCD_D23__LCD_D23 |
620 | >; | 652 | >; |
621 | fsl,drive-strength = <0>; | 653 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
622 | fsl,voltage = <1>; | 654 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
623 | fsl,pull-up = <0>; | 655 | fsl,pull-up = <MXS_PULL_DISABLE>; |
624 | }; | 656 | }; |
625 | 657 | ||
626 | lcdif_16bit_pins_a: lcdif-16bit@0 { | 658 | lcdif_16bit_pins_a: lcdif-16bit@0 { |
627 | reg = <0>; | 659 | reg = <0>; |
628 | fsl,pinmux-ids = < | 660 | fsl,pinmux-ids = < |
629 | 0x1000 /* MX28_PAD_LCD_D00__LCD_D0 */ | 661 | MX28_PAD_LCD_D00__LCD_D0 |
630 | 0x1010 /* MX28_PAD_LCD_D01__LCD_D1 */ | 662 | MX28_PAD_LCD_D01__LCD_D1 |
631 | 0x1020 /* MX28_PAD_LCD_D02__LCD_D2 */ | 663 | MX28_PAD_LCD_D02__LCD_D2 |
632 | 0x1030 /* MX28_PAD_LCD_D03__LCD_D3 */ | 664 | MX28_PAD_LCD_D03__LCD_D3 |
633 | 0x1040 /* MX28_PAD_LCD_D04__LCD_D4 */ | 665 | MX28_PAD_LCD_D04__LCD_D4 |
634 | 0x1050 /* MX28_PAD_LCD_D05__LCD_D5 */ | 666 | MX28_PAD_LCD_D05__LCD_D5 |
635 | 0x1060 /* MX28_PAD_LCD_D06__LCD_D6 */ | 667 | MX28_PAD_LCD_D06__LCD_D6 |
636 | 0x1070 /* MX28_PAD_LCD_D07__LCD_D7 */ | 668 | MX28_PAD_LCD_D07__LCD_D7 |
637 | 0x1080 /* MX28_PAD_LCD_D08__LCD_D8 */ | 669 | MX28_PAD_LCD_D08__LCD_D8 |
638 | 0x1090 /* MX28_PAD_LCD_D09__LCD_D9 */ | 670 | MX28_PAD_LCD_D09__LCD_D9 |
639 | 0x10a0 /* MX28_PAD_LCD_D10__LCD_D10 */ | 671 | MX28_PAD_LCD_D10__LCD_D10 |
640 | 0x10b0 /* MX28_PAD_LCD_D11__LCD_D11 */ | 672 | MX28_PAD_LCD_D11__LCD_D11 |
641 | 0x10c0 /* MX28_PAD_LCD_D12__LCD_D12 */ | 673 | MX28_PAD_LCD_D12__LCD_D12 |
642 | 0x10d0 /* MX28_PAD_LCD_D13__LCD_D13 */ | 674 | MX28_PAD_LCD_D13__LCD_D13 |
643 | 0x10e0 /* MX28_PAD_LCD_D14__LCD_D14 */ | 675 | MX28_PAD_LCD_D14__LCD_D14 |
644 | 0x10f0 /* MX28_PAD_LCD_D15__LCD_D15 */ | 676 | MX28_PAD_LCD_D15__LCD_D15 |
645 | >; | 677 | >; |
646 | fsl,drive-strength = <0>; | 678 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
647 | fsl,voltage = <1>; | 679 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
648 | fsl,pull-up = <0>; | 680 | fsl,pull-up = <MXS_PULL_DISABLE>; |
649 | }; | 681 | }; |
650 | 682 | ||
651 | lcdif_sync_pins_a: lcdif-sync@0 { | 683 | lcdif_sync_pins_a: lcdif-sync@0 { |
652 | reg = <0>; | 684 | reg = <0>; |
653 | fsl,pinmux-ids = < | 685 | fsl,pinmux-ids = < |
654 | 0x11a1 /* MX28_PAD_LCD_RS__LCD_DOTCLK */ | 686 | MX28_PAD_LCD_RS__LCD_DOTCLK |
655 | 0x11b1 /* MX28_PAD_LCD_CS__LCD_ENABLE */ | 687 | MX28_PAD_LCD_CS__LCD_ENABLE |
656 | 0x1181 /* MX28_PAD_LCD_RD_E__LCD_VSYNC */ | 688 | MX28_PAD_LCD_RD_E__LCD_VSYNC |
657 | 0x1191 /* MX28_PAD_LCD_WR_RWN__LCD_HSYNC */ | 689 | MX28_PAD_LCD_WR_RWN__LCD_HSYNC |
658 | >; | 690 | >; |
659 | fsl,drive-strength = <0>; | 691 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
660 | fsl,voltage = <1>; | 692 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
661 | fsl,pull-up = <0>; | 693 | fsl,pull-up = <MXS_PULL_DISABLE>; |
662 | }; | 694 | }; |
663 | 695 | ||
664 | can0_pins_a: can0@0 { | 696 | can0_pins_a: can0@0 { |
665 | reg = <0>; | 697 | reg = <0>; |
666 | fsl,pinmux-ids = < | 698 | fsl,pinmux-ids = < |
667 | 0x0161 /* MX28_PAD_GPMI_RDY2__CAN0_TX */ | 699 | MX28_PAD_GPMI_RDY2__CAN0_TX |
668 | 0x0171 /* MX28_PAD_GPMI_RDY3__CAN0_RX */ | 700 | MX28_PAD_GPMI_RDY3__CAN0_RX |
669 | >; | 701 | >; |
670 | fsl,drive-strength = <0>; | 702 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
671 | fsl,voltage = <1>; | 703 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
672 | fsl,pull-up = <0>; | 704 | fsl,pull-up = <MXS_PULL_DISABLE>; |
673 | }; | 705 | }; |
674 | 706 | ||
675 | can1_pins_a: can1@0 { | 707 | can1_pins_a: can1@0 { |
676 | reg = <0>; | 708 | reg = <0>; |
677 | fsl,pinmux-ids = < | 709 | fsl,pinmux-ids = < |
678 | 0x0121 /* MX28_PAD_GPMI_CE2N__CAN1_TX */ | 710 | MX28_PAD_GPMI_CE2N__CAN1_TX |
679 | 0x0131 /* MX28_PAD_GPMI_CE3N__CAN1_RX */ | 711 | MX28_PAD_GPMI_CE3N__CAN1_RX |
680 | >; | 712 | >; |
681 | fsl,drive-strength = <0>; | 713 | fsl,drive-strength = <MXS_DRIVE_4mA>; |
682 | fsl,voltage = <1>; | 714 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
683 | fsl,pull-up = <0>; | 715 | fsl,pull-up = <MXS_PULL_DISABLE>; |
684 | }; | 716 | }; |
685 | 717 | ||
686 | spi2_pins_a: spi2@0 { | 718 | spi2_pins_a: spi2@0 { |
687 | reg = <0>; | 719 | reg = <0>; |
688 | fsl,pinmux-ids = < | 720 | fsl,pinmux-ids = < |
689 | 0x2100 /* MX28_PAD_SSP2_SCK__SSP2_SCK */ | 721 | MX28_PAD_SSP2_SCK__SSP2_SCK |
690 | 0x2110 /* MX28_PAD_SSP2_MOSI__SSP2_CMD */ | 722 | MX28_PAD_SSP2_MOSI__SSP2_CMD |
691 | 0x2120 /* MX28_PAD_SSP2_MISO__SSP2_D0 */ | 723 | MX28_PAD_SSP2_MISO__SSP2_D0 |
692 | 0x2130 /* MX28_PAD_SSP2_SS0__SSP2_D3 */ | 724 | MX28_PAD_SSP2_SS0__SSP2_D3 |
693 | >; | 725 | >; |
694 | fsl,drive-strength = <1>; | 726 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
695 | fsl,voltage = <1>; | 727 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
696 | fsl,pull-up = <1>; | 728 | fsl,pull-up = <MXS_PULL_ENABLE>; |
697 | }; | 729 | }; |
698 | 730 | ||
699 | spi3_pins_a: spi3@0 { | 731 | spi3_pins_a: spi3@0 { |
700 | reg = <0>; | 732 | reg = <0>; |
701 | fsl,pinmux-ids = < | 733 | fsl,pinmux-ids = < |
702 | 0x3082 /* MX28_PAD_AUART2_RX__SSP3_D4 */ | 734 | MX28_PAD_AUART2_RX__SSP3_D4 |
703 | 0x3092 /* MX28_PAD_AUART2_TX__SSP3_D5 */ | 735 | MX28_PAD_AUART2_TX__SSP3_D5 |
704 | 0x2180 /* MX28_PAD_SSP3_SCK__SSP3_SCK */ | 736 | MX28_PAD_SSP3_SCK__SSP3_SCK |
705 | 0x2190 /* MX28_PAD_SSP3_MOSI__SSP3_CMD */ | 737 | MX28_PAD_SSP3_MOSI__SSP3_CMD |
706 | 0x21A0 /* MX28_PAD_SSP3_MISO__SSP3_D0 */ | 738 | MX28_PAD_SSP3_MISO__SSP3_D0 |
707 | 0x21B0 /* MX28_PAD_SSP3_SS0__SSP3_D3 */ | 739 | MX28_PAD_SSP3_SS0__SSP3_D3 |
708 | >; | 740 | >; |
709 | fsl,drive-strength = <1>; | 741 | fsl,drive-strength = <MXS_DRIVE_8mA>; |
710 | fsl,voltage = <1>; | 742 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
711 | fsl,pull-up = <0>; | 743 | fsl,pull-up = <MXS_PULL_DISABLE>; |
712 | }; | 744 | }; |
713 | 745 | ||
714 | usbphy0_pins_a: usbphy0@0 { | 746 | usbphy0_pins_a: usbphy0@0 { |
715 | reg = <0>; | 747 | reg = <0>; |
716 | fsl,pinmux-ids = < | 748 | fsl,pinmux-ids = < |
717 | 0x2152 /* MX28_PAD_SSP2_SS2__USB0_OVERCURRENT */ | 749 | MX28_PAD_SSP2_SS2__USB0_OVERCURRENT |
718 | >; | 750 | >; |
719 | fsl,drive-strength = <2>; | 751 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
720 | fsl,voltage = <1>; | 752 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
721 | fsl,pull-up = <0>; | 753 | fsl,pull-up = <MXS_PULL_DISABLE>; |
722 | }; | 754 | }; |
723 | 755 | ||
724 | usbphy0_pins_b: usbphy0@1 { | 756 | usbphy0_pins_b: usbphy0@1 { |
725 | reg = <1>; | 757 | reg = <1>; |
726 | fsl,pinmux-ids = < | 758 | fsl,pinmux-ids = < |
727 | 0x3061 /* MX28_PAD_AUART1_CTS__USB0_OVERCURRENT */ | 759 | MX28_PAD_AUART1_CTS__USB0_OVERCURRENT |
728 | >; | 760 | >; |
729 | fsl,drive-strength = <2>; | 761 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
730 | fsl,voltage = <1>; | 762 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
731 | fsl,pull-up = <0>; | 763 | fsl,pull-up = <MXS_PULL_DISABLE>; |
732 | }; | 764 | }; |
733 | 765 | ||
734 | usbphy1_pins_a: usbphy1@0 { | 766 | usbphy1_pins_a: usbphy1@0 { |
735 | reg = <0>; | 767 | reg = <0>; |
736 | fsl,pinmux-ids = < | 768 | fsl,pinmux-ids = < |
737 | 0x2142 /* MX28_PAD_SSP2_SS1__USB1_OVERCURRENT */ | 769 | MX28_PAD_SSP2_SS1__USB1_OVERCURRENT |
770 | >; | ||
771 | fsl,drive-strength = <MXS_DRIVE_12mA>; | ||
772 | fsl,voltage = <MXS_VOLTAGE_HIGH>; | ||
773 | fsl,pull-up = <MXS_PULL_DISABLE>; | ||
774 | }; | ||
775 | |||
776 | usb0_id_pins_a: usb0id@0 { | ||
777 | reg = <0>; | ||
778 | fsl,pinmux-ids = < | ||
779 | MX28_PAD_AUART1_RTS__USB0_ID | ||
738 | >; | 780 | >; |
739 | fsl,drive-strength = <2>; | 781 | fsl,drive-strength = <MXS_DRIVE_12mA>; |
740 | fsl,voltage = <1>; | 782 | fsl,voltage = <MXS_VOLTAGE_HIGH>; |
741 | fsl,pull-up = <0>; | 783 | fsl,pull-up = <MXS_PULL_ENABLE>; |
742 | }; | 784 | }; |
743 | }; | 785 | }; |
744 | 786 | ||
diff --git a/arch/arm/boot/dts/imx51-apf51dev.dts b/arch/arm/boot/dts/imx51-apf51dev.dts index 123fe84e0e8c..5a7f552786a1 100644 --- a/arch/arm/boot/dts/imx51-apf51dev.dts +++ b/arch/arm/boot/dts/imx51-apf51dev.dts | |||
@@ -16,6 +16,33 @@ | |||
16 | model = "Armadeus Systems APF51Dev docking/development board"; | 16 | model = "Armadeus Systems APF51Dev docking/development board"; |
17 | compatible = "armadeus,imx51-apf51dev", "armadeus,imx51-apf51", "fsl,imx51"; | 17 | compatible = "armadeus,imx51-apf51dev", "armadeus,imx51-apf51", "fsl,imx51"; |
18 | 18 | ||
19 | display@di1 { | ||
20 | compatible = "fsl,imx-parallel-display"; | ||
21 | crtcs = <&ipu 0>; | ||
22 | interface-pix-fmt = "bgr666"; | ||
23 | pinctrl-names = "default"; | ||
24 | pinctrl-0 = <&pinctrl_ipu_disp1_1>; | ||
25 | |||
26 | display-timings { | ||
27 | lw700 { | ||
28 | native-mode; | ||
29 | clock-frequency = <33000033>; | ||
30 | hactive = <800>; | ||
31 | vactive = <480>; | ||
32 | hback-porch = <96>; | ||
33 | hfront-porch = <96>; | ||
34 | vback-porch = <20>; | ||
35 | vfront-porch = <21>; | ||
36 | hsync-len = <64>; | ||
37 | vsync-len = <4>; | ||
38 | hsync-active = <1>; | ||
39 | vsync-active = <1>; | ||
40 | de-active = <1>; | ||
41 | pixelclk-active = <0>; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
45 | |||
19 | gpio-keys { | 46 | gpio-keys { |
20 | compatible = "gpio-keys"; | 47 | compatible = "gpio-keys"; |
21 | 48 | ||
diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts index 1d337d99ecd5..be1407cf5abd 100644 --- a/arch/arm/boot/dts/imx51-babbage.dts +++ b/arch/arm/boot/dts/imx51-babbage.dts | |||
@@ -27,6 +27,20 @@ | |||
27 | interface-pix-fmt = "rgb24"; | 27 | interface-pix-fmt = "rgb24"; |
28 | pinctrl-names = "default"; | 28 | pinctrl-names = "default"; |
29 | pinctrl-0 = <&pinctrl_ipu_disp1_1>; | 29 | pinctrl-0 = <&pinctrl_ipu_disp1_1>; |
30 | display-timings { | ||
31 | native-mode = <&timing0>; | ||
32 | timing0: dvi { | ||
33 | clock-frequency = <65000000>; | ||
34 | hactive = <1024>; | ||
35 | vactive = <768>; | ||
36 | hback-porch = <220>; | ||
37 | hfront-porch = <40>; | ||
38 | vback-porch = <21>; | ||
39 | vfront-porch = <7>; | ||
40 | hsync-len = <60>; | ||
41 | vsync-len = <10>; | ||
42 | }; | ||
43 | }; | ||
30 | }; | 44 | }; |
31 | 45 | ||
32 | display@di1 { | 46 | display@di1 { |
@@ -35,6 +49,25 @@ | |||
35 | interface-pix-fmt = "rgb565"; | 49 | interface-pix-fmt = "rgb565"; |
36 | pinctrl-names = "default"; | 50 | pinctrl-names = "default"; |
37 | pinctrl-0 = <&pinctrl_ipu_disp2_1>; | 51 | pinctrl-0 = <&pinctrl_ipu_disp2_1>; |
52 | status = "disabled"; | ||
53 | display-timings { | ||
54 | native-mode = <&timing1>; | ||
55 | timing1: claawvga { | ||
56 | clock-frequency = <27000000>; | ||
57 | hactive = <800>; | ||
58 | vactive = <480>; | ||
59 | hback-porch = <40>; | ||
60 | hfront-porch = <60>; | ||
61 | vback-porch = <10>; | ||
62 | vfront-porch = <10>; | ||
63 | hsync-len = <20>; | ||
64 | vsync-len = <10>; | ||
65 | hsync-active = <0>; | ||
66 | vsync-active = <0>; | ||
67 | de-active = <1>; | ||
68 | pixelclk-active = <0>; | ||
69 | }; | ||
70 | }; | ||
38 | }; | 71 | }; |
39 | 72 | ||
40 | gpio-keys { | 73 | gpio-keys { |
@@ -95,7 +128,7 @@ | |||
95 | 128 | ||
96 | &uart3 { | 129 | &uart3 { |
97 | pinctrl-names = "default"; | 130 | pinctrl-names = "default"; |
98 | pinctrl-0 = <&pinctrl_uart3_1>; | 131 | pinctrl-0 = <&pinctrl_uart3_1 &pinctrl_uart3_rtscts_1>; |
99 | fsl,uart-has-rtscts; | 132 | fsl,uart-has-rtscts; |
100 | status = "okay"; | 133 | status = "okay"; |
101 | }; | 134 | }; |
@@ -252,7 +285,7 @@ | |||
252 | 285 | ||
253 | &uart1 { | 286 | &uart1 { |
254 | pinctrl-names = "default"; | 287 | pinctrl-names = "default"; |
255 | pinctrl-0 = <&pinctrl_uart1_1>; | 288 | pinctrl-0 = <&pinctrl_uart1_1 &pinctrl_uart1_rtscts_1>; |
256 | fsl,uart-has-rtscts; | 289 | fsl,uart-has-rtscts; |
257 | status = "okay"; | 290 | status = "okay"; |
258 | }; | 291 | }; |
diff --git a/arch/arm/boot/dts/imx51.dtsi b/arch/arm/boot/dts/imx51.dtsi index 54cee6517902..f4dcff3a9969 100644 --- a/arch/arm/boot/dts/imx51.dtsi +++ b/arch/arm/boot/dts/imx51.dtsi | |||
@@ -86,6 +86,11 @@ | |||
86 | interrupt-parent = <&tzic>; | 86 | interrupt-parent = <&tzic>; |
87 | ranges; | 87 | ranges; |
88 | 88 | ||
89 | iram: iram@1ffe0000 { | ||
90 | compatible = "mmio-sram"; | ||
91 | reg = <0x1ffe0000 0x20000>; | ||
92 | }; | ||
93 | |||
89 | ipu: ipu@40000000 { | 94 | ipu: ipu@40000000 { |
90 | #crtc-cells = <1>; | 95 | #crtc-cells = <1>; |
91 | compatible = "fsl,imx51-ipu"; | 96 | compatible = "fsl,imx51-ipu"; |
@@ -374,6 +379,14 @@ | |||
374 | clocks = <&clks 107>; | 379 | clocks = <&clks 107>; |
375 | }; | 380 | }; |
376 | 381 | ||
382 | owire: owire@83fa4000 { | ||
383 | compatible = "fsl,imx51-owire", "fsl,imx21-owire"; | ||
384 | reg = <0x83fa4000 0x4000>; | ||
385 | interrupts = <88>; | ||
386 | clocks = <&clks 159>; | ||
387 | status = "disabled"; | ||
388 | }; | ||
389 | |||
377 | ecspi2: ecspi@83fac000 { | 390 | ecspi2: ecspi@83fac000 { |
378 | #address-cells = <1>; | 391 | #address-cells = <1>; |
379 | #size-cells = <0>; | 392 | #size-cells = <0>; |
@@ -747,6 +760,11 @@ | |||
747 | fsl,pins = < | 760 | fsl,pins = < |
748 | MX51_PAD_UART1_RXD__UART1_RXD 0x1c5 | 761 | MX51_PAD_UART1_RXD__UART1_RXD 0x1c5 |
749 | MX51_PAD_UART1_TXD__UART1_TXD 0x1c5 | 762 | MX51_PAD_UART1_TXD__UART1_TXD 0x1c5 |
763 | >; | ||
764 | }; | ||
765 | |||
766 | pinctrl_uart1_rtscts_1: uart1rtscts-1 { | ||
767 | fsl,pins = < | ||
750 | MX51_PAD_UART1_RTS__UART1_RTS 0x1c5 | 768 | MX51_PAD_UART1_RTS__UART1_RTS 0x1c5 |
751 | MX51_PAD_UART1_CTS__UART1_CTS 0x1c5 | 769 | MX51_PAD_UART1_CTS__UART1_CTS 0x1c5 |
752 | >; | 770 | >; |
@@ -767,6 +785,11 @@ | |||
767 | fsl,pins = < | 785 | fsl,pins = < |
768 | MX51_PAD_EIM_D25__UART3_RXD 0x1c5 | 786 | MX51_PAD_EIM_D25__UART3_RXD 0x1c5 |
769 | MX51_PAD_EIM_D26__UART3_TXD 0x1c5 | 787 | MX51_PAD_EIM_D26__UART3_TXD 0x1c5 |
788 | >; | ||
789 | }; | ||
790 | |||
791 | pinctrl_uart3_rtscts_1: uart3rtscts-1 { | ||
792 | fsl,pins = < | ||
770 | MX51_PAD_EIM_D27__UART3_RTS 0x1c5 | 793 | MX51_PAD_EIM_D27__UART3_RTS 0x1c5 |
771 | MX51_PAD_EIM_D24__UART3_CTS 0x1c5 | 794 | MX51_PAD_EIM_D24__UART3_CTS 0x1c5 |
772 | >; | 795 | >; |
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts index e97ddae09d74..91a5935a4aac 100644 --- a/arch/arm/boot/dts/imx53-qsb.dts +++ b/arch/arm/boot/dts/imx53-qsb.dts | |||
@@ -55,19 +55,20 @@ | |||
55 | label = "Power Button"; | 55 | label = "Power Button"; |
56 | gpios = <&gpio1 8 0>; | 56 | gpios = <&gpio1 8 0>; |
57 | linux,code = <116>; /* KEY_POWER */ | 57 | linux,code = <116>; /* KEY_POWER */ |
58 | gpio-key,wakeup; | ||
59 | }; | 58 | }; |
60 | 59 | ||
61 | volume-up { | 60 | volume-up { |
62 | label = "Volume Up"; | 61 | label = "Volume Up"; |
63 | gpios = <&gpio2 14 0>; | 62 | gpios = <&gpio2 14 0>; |
64 | linux,code = <115>; /* KEY_VOLUMEUP */ | 63 | linux,code = <115>; /* KEY_VOLUMEUP */ |
64 | gpio-key,wakeup; | ||
65 | }; | 65 | }; |
66 | 66 | ||
67 | volume-down { | 67 | volume-down { |
68 | label = "Volume Down"; | 68 | label = "Volume Down"; |
69 | gpios = <&gpio2 15 0>; | 69 | gpios = <&gpio2 15 0>; |
70 | linux,code = <114>; /* KEY_VOLUMEDOWN */ | 70 | linux,code = <114>; /* KEY_VOLUMEDOWN */ |
71 | gpio-key,wakeup; | ||
71 | }; | 72 | }; |
72 | }; | 73 | }; |
73 | 74 | ||
@@ -122,7 +123,6 @@ | |||
122 | &esdhc1 { | 123 | &esdhc1 { |
123 | pinctrl-names = "default"; | 124 | pinctrl-names = "default"; |
124 | pinctrl-0 = <&pinctrl_esdhc1_1>; | 125 | pinctrl-0 = <&pinctrl_esdhc1_1>; |
125 | cd-gpios = <&gpio3 13 0>; | ||
126 | status = "okay"; | 126 | status = "okay"; |
127 | }; | 127 | }; |
128 | 128 | ||
@@ -136,6 +136,7 @@ | |||
136 | pinctrl-0 = <&pinctrl_esdhc3_1>; | 136 | pinctrl-0 = <&pinctrl_esdhc3_1>; |
137 | cd-gpios = <&gpio3 11 0>; | 137 | cd-gpios = <&gpio3 11 0>; |
138 | wp-gpios = <&gpio3 12 0>; | 138 | wp-gpios = <&gpio3 12 0>; |
139 | bus-width = <8>; | ||
139 | status = "okay"; | 140 | status = "okay"; |
140 | }; | 141 | }; |
141 | 142 | ||
@@ -152,7 +153,6 @@ | |||
152 | MX53_PAD_PATA_DATA15__GPIO2_15 0x80000000 | 153 | MX53_PAD_PATA_DATA15__GPIO2_15 0x80000000 |
153 | MX53_PAD_EIM_DA11__GPIO3_11 0x80000000 | 154 | MX53_PAD_EIM_DA11__GPIO3_11 0x80000000 |
154 | MX53_PAD_EIM_DA12__GPIO3_12 0x80000000 | 155 | MX53_PAD_EIM_DA12__GPIO3_12 0x80000000 |
155 | MX53_PAD_EIM_DA13__GPIO3_13 0x80000000 | ||
156 | MX53_PAD_PATA_DA_0__GPIO7_6 0x80000000 | 156 | MX53_PAD_PATA_DA_0__GPIO7_6 0x80000000 |
157 | MX53_PAD_PATA_DA_2__GPIO7_8 0x80000000 | 157 | MX53_PAD_PATA_DA_2__GPIO7_8 0x80000000 |
158 | MX53_PAD_GPIO_16__GPIO7_11 0x80000000 | 158 | MX53_PAD_GPIO_16__GPIO7_11 0x80000000 |
@@ -318,5 +318,6 @@ | |||
318 | }; | 318 | }; |
319 | 319 | ||
320 | &usbotg { | 320 | &usbotg { |
321 | status = "okay"; | 321 | dr_mode = "peripheral"; |
322 | status = "okay"; | ||
322 | }; | 323 | }; |
diff --git a/arch/arm/boot/dts/imx6q-pinfunc.h b/arch/arm/boot/dts/imx6q-pinfunc.h index 9bbe82bdee41..97ed0816a6e0 100644 --- a/arch/arm/boot/dts/imx6q-pinfunc.h +++ b/arch/arm/boot/dts/imx6q-pinfunc.h | |||
@@ -536,7 +536,7 @@ | |||
536 | #define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1d4 0x4e8 0x85c 0x2 0x0 | 536 | #define MX6QDL_PAD_ENET_REF_CLK__ESAI_RX_FS 0x1d4 0x4e8 0x85c 0x2 0x0 |
537 | #define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1d4 0x4e8 0x000 0x5 0x0 | 537 | #define MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1d4 0x4e8 0x000 0x5 0x0 |
538 | #define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1d4 0x4e8 0x000 0x6 0x0 | 538 | #define MX6QDL_PAD_ENET_REF_CLK__SPDIF_SR_CLK 0x1d4 0x4e8 0x000 0x6 0x0 |
539 | #define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1d8 0x4ec 0x000 0x0 0x0 | 539 | #define MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x1d8 0x4ec 0x004 0x0 0xff0d0100 |
540 | #define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1d8 0x4ec 0x000 0x1 0x0 | 540 | #define MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1d8 0x4ec 0x000 0x1 0x0 |
541 | #define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1d8 0x4ec 0x864 0x2 0x0 | 541 | #define MX6QDL_PAD_ENET_RX_ER__ESAI_RX_HF_CLK 0x1d8 0x4ec 0x864 0x2 0x0 |
542 | #define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN 0x1d8 0x4ec 0x914 0x3 0x1 | 542 | #define MX6QDL_PAD_ENET_RX_ER__SPDIF_IN 0x1d8 0x4ec 0x914 0x3 0x1 |
@@ -654,7 +654,7 @@ | |||
654 | #define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK 0x224 0x5f4 0x86c 0x0 0x1 | 654 | #define MX6QDL_PAD_GPIO_1__ESAI_RX_CLK 0x224 0x5f4 0x86c 0x0 0x1 |
655 | #define MX6QDL_PAD_GPIO_1__WDOG2_B 0x224 0x5f4 0x000 0x1 0x0 | 655 | #define MX6QDL_PAD_GPIO_1__WDOG2_B 0x224 0x5f4 0x000 0x1 0x0 |
656 | #define MX6QDL_PAD_GPIO_1__KEY_ROW5 0x224 0x5f4 0x8f4 0x2 0x0 | 656 | #define MX6QDL_PAD_GPIO_1__KEY_ROW5 0x224 0x5f4 0x8f4 0x2 0x0 |
657 | #define MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x224 0x5f4 0x000 0x3 0x0 | 657 | #define MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x224 0x5f4 0x004 0x3 0xff0d0101 |
658 | #define MX6QDL_PAD_GPIO_1__PWM2_OUT 0x224 0x5f4 0x000 0x4 0x0 | 658 | #define MX6QDL_PAD_GPIO_1__PWM2_OUT 0x224 0x5f4 0x000 0x4 0x0 |
659 | #define MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x224 0x5f4 0x000 0x5 0x0 | 659 | #define MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x224 0x5f4 0x000 0x5 0x0 |
660 | #define MX6QDL_PAD_GPIO_1__SD1_CD_B 0x224 0x5f4 0x000 0x6 0x0 | 660 | #define MX6QDL_PAD_GPIO_1__SD1_CD_B 0x224 0x5f4 0x000 0x6 0x0 |
diff --git a/arch/arm/boot/dts/imx6q-sabrelite.dts b/arch/arm/boot/dts/imx6q-sabrelite.dts index 3530280f5150..f004913f7d80 100644 --- a/arch/arm/boot/dts/imx6q-sabrelite.dts +++ b/arch/arm/boot/dts/imx6q-sabrelite.dts | |||
@@ -65,8 +65,10 @@ | |||
65 | }; | 65 | }; |
66 | }; | 66 | }; |
67 | 67 | ||
68 | &sata { | 68 | &audmux { |
69 | status = "okay"; | 69 | status = "okay"; |
70 | pinctrl-names = "default"; | ||
71 | pinctrl-0 = <&pinctrl_audmux_1>; | ||
70 | }; | 72 | }; |
71 | 73 | ||
72 | &ecspi1 { | 74 | &ecspi1 { |
@@ -83,11 +85,29 @@ | |||
83 | }; | 85 | }; |
84 | }; | 86 | }; |
85 | 87 | ||
86 | &ssi1 { | 88 | &fec { |
87 | fsl,mode = "i2s-slave"; | 89 | pinctrl-names = "default"; |
90 | pinctrl-0 = <&pinctrl_enet_1>; | ||
91 | phy-mode = "rgmii"; | ||
92 | phy-reset-gpios = <&gpio3 23 0>; | ||
88 | status = "okay"; | 93 | status = "okay"; |
89 | }; | 94 | }; |
90 | 95 | ||
96 | &i2c1 { | ||
97 | status = "okay"; | ||
98 | clock-frequency = <100000>; | ||
99 | pinctrl-names = "default"; | ||
100 | pinctrl-0 = <&pinctrl_i2c1_1>; | ||
101 | |||
102 | codec: sgtl5000@0a { | ||
103 | compatible = "fsl,sgtl5000"; | ||
104 | reg = <0x0a>; | ||
105 | clocks = <&clks 201>; | ||
106 | VDDA-supply = <®_2p5v>; | ||
107 | VDDIO-supply = <®_3p3v>; | ||
108 | }; | ||
109 | }; | ||
110 | |||
91 | &iomuxc { | 111 | &iomuxc { |
92 | pinctrl-names = "default"; | 112 | pinctrl-names = "default"; |
93 | pinctrl-0 = <&pinctrl_hog>; | 113 | pinctrl-0 = <&pinctrl_hog>; |
@@ -103,28 +123,61 @@ | |||
103 | MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 | 123 | MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x80000000 |
104 | MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 | 124 | MX6QDL_PAD_SD3_DAT4__GPIO7_IO01 0x1f0b0 |
105 | MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x80000000 | 125 | MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x80000000 |
126 | MX6QDL_PAD_EIM_D23__GPIO3_IO23 0x80000000 | ||
106 | >; | 127 | >; |
107 | }; | 128 | }; |
108 | }; | 129 | }; |
109 | }; | 130 | }; |
110 | 131 | ||
111 | &usbotg { | 132 | &ldb { |
112 | vbus-supply = <®_usb_otg_vbus>; | 133 | status = "okay"; |
113 | pinctrl-names = "default"; | 134 | |
114 | pinctrl-0 = <&pinctrl_usbotg_1>; | 135 | lvds-channel@0 { |
115 | disable-over-current; | 136 | fsl,data-mapping = "spwg"; |
137 | fsl,data-width = <18>; | ||
138 | status = "okay"; | ||
139 | |||
140 | display-timings { | ||
141 | native-mode = <&timing0>; | ||
142 | timing0: hsd100pxn1 { | ||
143 | clock-frequency = <65000000>; | ||
144 | hactive = <1024>; | ||
145 | vactive = <768>; | ||
146 | hback-porch = <220>; | ||
147 | hfront-porch = <40>; | ||
148 | vback-porch = <21>; | ||
149 | vfront-porch = <7>; | ||
150 | hsync-len = <60>; | ||
151 | vsync-len = <10>; | ||
152 | }; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | |||
157 | &sata { | ||
158 | status = "okay"; | ||
159 | }; | ||
160 | |||
161 | &ssi1 { | ||
162 | fsl,mode = "i2s-slave"; | ||
116 | status = "okay"; | 163 | status = "okay"; |
117 | }; | 164 | }; |
118 | 165 | ||
166 | &uart2 { | ||
167 | status = "okay"; | ||
168 | pinctrl-names = "default"; | ||
169 | pinctrl-0 = <&pinctrl_uart2_1>; | ||
170 | }; | ||
171 | |||
119 | &usbh1 { | 172 | &usbh1 { |
120 | status = "okay"; | 173 | status = "okay"; |
121 | }; | 174 | }; |
122 | 175 | ||
123 | &fec { | 176 | &usbotg { |
177 | vbus-supply = <®_usb_otg_vbus>; | ||
124 | pinctrl-names = "default"; | 178 | pinctrl-names = "default"; |
125 | pinctrl-0 = <&pinctrl_enet_1>; | 179 | pinctrl-0 = <&pinctrl_usbotg_1>; |
126 | phy-mode = "rgmii"; | 180 | disable-over-current; |
127 | phy-reset-gpios = <&gpio3 23 0>; | ||
128 | status = "okay"; | 181 | status = "okay"; |
129 | }; | 182 | }; |
130 | 183 | ||
@@ -145,30 +198,3 @@ | |||
145 | vmmc-supply = <®_3p3v>; | 198 | vmmc-supply = <®_3p3v>; |
146 | status = "okay"; | 199 | status = "okay"; |
147 | }; | 200 | }; |
148 | |||
149 | &audmux { | ||
150 | status = "okay"; | ||
151 | pinctrl-names = "default"; | ||
152 | pinctrl-0 = <&pinctrl_audmux_1>; | ||
153 | }; | ||
154 | |||
155 | &uart2 { | ||
156 | status = "okay"; | ||
157 | pinctrl-names = "default"; | ||
158 | pinctrl-0 = <&pinctrl_uart2_1>; | ||
159 | }; | ||
160 | |||
161 | &i2c1 { | ||
162 | status = "okay"; | ||
163 | clock-frequency = <100000>; | ||
164 | pinctrl-names = "default"; | ||
165 | pinctrl-0 = <&pinctrl_i2c1_1>; | ||
166 | |||
167 | codec: sgtl5000@0a { | ||
168 | compatible = "fsl,sgtl5000"; | ||
169 | reg = <0x0a>; | ||
170 | clocks = <&clks 201>; | ||
171 | VDDA-supply = <®_2p5v>; | ||
172 | VDDIO-supply = <®_3p3v>; | ||
173 | }; | ||
174 | }; | ||
diff --git a/arch/arm/boot/dts/imx6q-udoo.dts b/arch/arm/boot/dts/imx6q-udoo.dts new file mode 100644 index 000000000000..6e1ccdc019a7 --- /dev/null +++ b/arch/arm/boot/dts/imx6q-udoo.dts | |||
@@ -0,0 +1,39 @@ | |||
1 | /* | ||
2 | * Copyright 2013 Freescale Semiconductor, Inc. | ||
3 | * | ||
4 | * Author: Fabio Estevam <fabio.estevam@freescale.com> | ||
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 | |||
12 | /dts-v1/; | ||
13 | #include "imx6q.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "Udoo i.MX6 Quad Board"; | ||
17 | compatible = "udoo,imx6q-udoo", "fsl,imx6q"; | ||
18 | |||
19 | memory { | ||
20 | reg = <0x10000000 0x40000000>; | ||
21 | }; | ||
22 | }; | ||
23 | |||
24 | &sata { | ||
25 | status = "okay"; | ||
26 | }; | ||
27 | |||
28 | &uart2 { | ||
29 | pinctrl-names = "default"; | ||
30 | pinctrl-0 = <&pinctrl_uart2_1>; | ||
31 | status = "okay"; | ||
32 | }; | ||
33 | |||
34 | &usdhc3 { | ||
35 | pinctrl-names = "default"; | ||
36 | pinctrl-0 = <&pinctrl_usdhc3_2>; | ||
37 | non-removable; | ||
38 | status = "okay"; | ||
39 | }; | ||
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi index 1cbbc5160d27..ff6f1e8f2dd9 100644 --- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | |||
@@ -54,6 +54,7 @@ | |||
54 | fsl,pins = < | 54 | fsl,pins = < |
55 | MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 | 55 | MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000 |
56 | MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 | 56 | MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000 |
57 | MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x17059 | ||
57 | >; | 58 | >; |
58 | }; | 59 | }; |
59 | }; | 60 | }; |
@@ -74,8 +75,10 @@ | |||
74 | }; | 75 | }; |
75 | 76 | ||
76 | &usdhc3 { | 77 | &usdhc3 { |
77 | pinctrl-names = "default"; | 78 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; |
78 | pinctrl-0 = <&pinctrl_usdhc3_1>; | 79 | pinctrl-0 = <&pinctrl_usdhc3_1>; |
80 | pinctrl-1 = <&pinctrl_usdhc3_1_100mhz>; | ||
81 | pinctrl-2 = <&pinctrl_usdhc3_1_200mhz>; | ||
79 | cd-gpios = <&gpio6 15 0>; | 82 | cd-gpios = <&gpio6 15 0>; |
80 | wp-gpios = <&gpio1 13 0>; | 83 | wp-gpios = <&gpio1 13 0>; |
81 | status = "okay"; | 84 | status = "okay"; |
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi index 39eafc222a2e..e75e11b36dff 100644 --- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi +++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi | |||
@@ -80,6 +80,14 @@ | |||
80 | mux-int-port = <2>; | 80 | mux-int-port = <2>; |
81 | mux-ext-port = <3>; | 81 | mux-ext-port = <3>; |
82 | }; | 82 | }; |
83 | |||
84 | backlight { | ||
85 | compatible = "pwm-backlight"; | ||
86 | pwms = <&pwm1 0 5000000>; | ||
87 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
88 | default-brightness-level = <7>; | ||
89 | status = "okay"; | ||
90 | }; | ||
83 | }; | 91 | }; |
84 | 92 | ||
85 | &audmux { | 93 | &audmux { |
@@ -108,6 +116,7 @@ | |||
108 | pinctrl-names = "default"; | 116 | pinctrl-names = "default"; |
109 | pinctrl-0 = <&pinctrl_enet_1>; | 117 | pinctrl-0 = <&pinctrl_enet_1>; |
110 | phy-mode = "rgmii"; | 118 | phy-mode = "rgmii"; |
119 | phy-reset-gpios = <&gpio1 25 0>; | ||
111 | status = "okay"; | 120 | status = "okay"; |
112 | }; | 121 | }; |
113 | 122 | ||
@@ -172,6 +181,7 @@ | |||
172 | MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000 | 181 | MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000 |
173 | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 | 182 | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 |
174 | MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 | 183 | MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x80000000 |
184 | MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x80000000 | ||
175 | >; | 185 | >; |
176 | }; | 186 | }; |
177 | }; | 187 | }; |
@@ -202,6 +212,12 @@ | |||
202 | }; | 212 | }; |
203 | }; | 213 | }; |
204 | 214 | ||
215 | &pwm1 { | ||
216 | pinctrl-names = "default"; | ||
217 | pinctrl-0 = <&pinctrl_pwm0_1>; | ||
218 | status = "okay"; | ||
219 | }; | ||
220 | |||
205 | &ssi2 { | 221 | &ssi2 { |
206 | fsl,mode = "i2s-slave"; | 222 | fsl,mode = "i2s-slave"; |
207 | status = "okay"; | 223 | status = "okay"; |
@@ -229,6 +245,7 @@ | |||
229 | &usdhc2 { | 245 | &usdhc2 { |
230 | pinctrl-names = "default"; | 246 | pinctrl-names = "default"; |
231 | pinctrl-0 = <&pinctrl_usdhc2_1>; | 247 | pinctrl-0 = <&pinctrl_usdhc2_1>; |
248 | bus-width = <8>; | ||
232 | cd-gpios = <&gpio2 2 0>; | 249 | cd-gpios = <&gpio2 2 0>; |
233 | wp-gpios = <&gpio2 3 0>; | 250 | wp-gpios = <&gpio2 3 0>; |
234 | status = "okay"; | 251 | status = "okay"; |
@@ -237,6 +254,7 @@ | |||
237 | &usdhc3 { | 254 | &usdhc3 { |
238 | pinctrl-names = "default"; | 255 | pinctrl-names = "default"; |
239 | pinctrl-0 = <&pinctrl_usdhc3_1>; | 256 | pinctrl-0 = <&pinctrl_usdhc3_1>; |
257 | bus-width = <8>; | ||
240 | cd-gpios = <&gpio2 0 0>; | 258 | cd-gpios = <&gpio2 0 0>; |
241 | wp-gpios = <&gpio2 1 0>; | 259 | wp-gpios = <&gpio2 1 0>; |
242 | status = "okay"; | 260 | status = "okay"; |
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi index a55113e65bcb..35f547929167 100644 --- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi +++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi | |||
@@ -43,6 +43,13 @@ | |||
43 | mux-int-port = <1>; | 43 | mux-int-port = <1>; |
44 | mux-ext-port = <3>; | 44 | mux-ext-port = <3>; |
45 | }; | 45 | }; |
46 | |||
47 | sound-spdif { | ||
48 | compatible = "fsl,imx-audio-spdif"; | ||
49 | model = "imx-spdif"; | ||
50 | spdif-controller = <&spdif>; | ||
51 | spdif-out; | ||
52 | }; | ||
46 | }; | 53 | }; |
47 | 54 | ||
48 | &audmux { | 55 | &audmux { |
@@ -81,6 +88,7 @@ | |||
81 | MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* WL_REG_ON */ | 88 | MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x80000000 /* WL_REG_ON */ |
82 | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* WL_HOST_WAKE */ | 89 | MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x80000000 /* WL_HOST_WAKE */ |
83 | MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* WL_WAKE */ | 90 | MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x80000000 /* WL_WAKE */ |
91 | MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x80000000 | ||
84 | >; | 92 | >; |
85 | }; | 93 | }; |
86 | }; | 94 | }; |
@@ -90,6 +98,13 @@ | |||
90 | pinctrl-names = "default"; | 98 | pinctrl-names = "default"; |
91 | pinctrl-0 = <&pinctrl_enet_1>; | 99 | pinctrl-0 = <&pinctrl_enet_1>; |
92 | phy-mode = "rgmii"; | 100 | phy-mode = "rgmii"; |
101 | phy-reset-gpios = <&gpio3 29 0>; | ||
102 | status = "okay"; | ||
103 | }; | ||
104 | |||
105 | &spdif { | ||
106 | pinctrl-names = "default"; | ||
107 | pinctrl-0 = <&pinctrl_spdif_3>; | ||
93 | status = "okay"; | 108 | status = "okay"; |
94 | }; | 109 | }; |
95 | 110 | ||
@@ -115,6 +130,14 @@ | |||
115 | status = "okay"; | 130 | status = "okay"; |
116 | }; | 131 | }; |
117 | 132 | ||
133 | &usbotg { | ||
134 | pinctrl-names = "default"; | ||
135 | pinctrl-0 = <&pinctrl_usbotg_1>; | ||
136 | disable-over-current; | ||
137 | dr_mode = "peripheral"; | ||
138 | status = "okay"; | ||
139 | }; | ||
140 | |||
118 | &usdhc1 { | 141 | &usdhc1 { |
119 | pinctrl-names = "default"; | 142 | pinctrl-names = "default"; |
120 | pinctrl-0 = <&pinctrl_usdhc1_2>; | 143 | pinctrl-0 = <&pinctrl_usdhc1_2>; |
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index ccd55c2fdb67..59154dc15fe4 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi | |||
@@ -116,6 +116,22 @@ | |||
116 | arm,data-latency = <4 2 3>; | 116 | arm,data-latency = <4 2 3>; |
117 | }; | 117 | }; |
118 | 118 | ||
119 | pcie: pcie@0x01000000 { | ||
120 | compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; | ||
121 | reg = <0x01ffc000 0x4000>; /* DBI */ | ||
122 | #address-cells = <3>; | ||
123 | #size-cells = <2>; | ||
124 | device_type = "pci"; | ||
125 | ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */ | ||
126 | 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */ | ||
127 | 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ | ||
128 | num-lanes = <1>; | ||
129 | interrupts = <0 123 0x04>; | ||
130 | clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>; | ||
131 | clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; | ||
132 | status = "disabled"; | ||
133 | }; | ||
134 | |||
119 | pmu { | 135 | pmu { |
120 | compatible = "arm,cortex-a9-pmu"; | 136 | compatible = "arm,cortex-a9-pmu"; |
121 | interrupts = <0 94 0x04>; | 137 | interrupts = <0 94 0x04>; |
@@ -136,8 +152,23 @@ | |||
136 | ranges; | 152 | ranges; |
137 | 153 | ||
138 | spdif: spdif@02004000 { | 154 | spdif: spdif@02004000 { |
155 | compatible = "fsl,imx35-spdif"; | ||
139 | reg = <0x02004000 0x4000>; | 156 | reg = <0x02004000 0x4000>; |
140 | interrupts = <0 52 0x04>; | 157 | interrupts = <0 52 0x04>; |
158 | dmas = <&sdma 14 18 0>, | ||
159 | <&sdma 15 18 0>; | ||
160 | dma-names = "rx", "tx"; | ||
161 | clocks = <&clks 197>, <&clks 3>, | ||
162 | <&clks 197>, <&clks 107>, | ||
163 | <&clks 0>, <&clks 118>, | ||
164 | <&clks 62>, <&clks 139>, | ||
165 | <&clks 0>; | ||
166 | clock-names = "core", "rxtx0", | ||
167 | "rxtx1", "rxtx2", | ||
168 | "rxtx3", "rxtx4", | ||
169 | "rxtx5", "rxtx6", | ||
170 | "rxtx7"; | ||
171 | status = "disabled"; | ||
141 | }; | 172 | }; |
142 | 173 | ||
143 | ecspi1: ecspi@02008000 { | 174 | ecspi1: ecspi@02008000 { |
@@ -1010,6 +1041,12 @@ | |||
1010 | MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0 | 1041 | MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0 |
1011 | >; | 1042 | >; |
1012 | }; | 1043 | }; |
1044 | |||
1045 | pinctrl_spdif_3: spdifgrp-3 { | ||
1046 | fsl,pins = < | ||
1047 | MX6QDL_PAD_ENET_RXD0__SPDIF_OUT 0x1b0b0 | ||
1048 | >; | ||
1049 | }; | ||
1013 | }; | 1050 | }; |
1014 | 1051 | ||
1015 | uart1 { | 1052 | uart1 { |
@@ -1184,6 +1221,36 @@ | |||
1184 | >; | 1221 | >; |
1185 | }; | 1222 | }; |
1186 | 1223 | ||
1224 | pinctrl_usdhc3_1_100mhz: usdhc3grp-1-100mhz { /* 100Mhz */ | ||
1225 | fsl,pins = < | ||
1226 | MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9 | ||
1227 | MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9 | ||
1228 | MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9 | ||
1229 | MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9 | ||
1230 | MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9 | ||
1231 | MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9 | ||
1232 | MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b9 | ||
1233 | MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b9 | ||
1234 | MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b9 | ||
1235 | MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b9 | ||
1236 | >; | ||
1237 | }; | ||
1238 | |||
1239 | pinctrl_usdhc3_1_200mhz: usdhc3grp-1-200mhz { /* 200Mhz */ | ||
1240 | fsl,pins = < | ||
1241 | MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9 | ||
1242 | MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9 | ||
1243 | MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9 | ||
1244 | MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9 | ||
1245 | MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9 | ||
1246 | MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9 | ||
1247 | MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f9 | ||
1248 | MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f9 | ||
1249 | MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f9 | ||
1250 | MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f9 | ||
1251 | >; | ||
1252 | }; | ||
1253 | |||
1187 | pinctrl_usdhc3_2: usdhc3grp-2 { | 1254 | pinctrl_usdhc3_2: usdhc3grp-2 { |
1188 | fsl,pins = < | 1255 | fsl,pins = < |
1189 | MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 | 1256 | MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 |
diff --git a/arch/arm/boot/dts/imx6sl-evk.dts b/arch/arm/boot/dts/imx6sl-evk.dts index 2886a590823d..cc68e19c5163 100644 --- a/arch/arm/boot/dts/imx6sl-evk.dts +++ b/arch/arm/boot/dts/imx6sl-evk.dts | |||
@@ -17,6 +17,44 @@ | |||
17 | memory { | 17 | memory { |
18 | reg = <0x80000000 0x40000000>; | 18 | reg = <0x80000000 0x40000000>; |
19 | }; | 19 | }; |
20 | |||
21 | regulators { | ||
22 | compatible = "simple-bus"; | ||
23 | |||
24 | reg_usb_otg1_vbus: usb_otg1_vbus { | ||
25 | compatible = "regulator-fixed"; | ||
26 | regulator-name = "usb_otg1_vbus"; | ||
27 | regulator-min-microvolt = <5000000>; | ||
28 | regulator-max-microvolt = <5000000>; | ||
29 | gpio = <&gpio4 0 0>; | ||
30 | enable-active-high; | ||
31 | }; | ||
32 | |||
33 | reg_usb_otg2_vbus: usb_otg2_vbus { | ||
34 | compatible = "regulator-fixed"; | ||
35 | regulator-name = "usb_otg2_vbus"; | ||
36 | regulator-min-microvolt = <5000000>; | ||
37 | regulator-max-microvolt = <5000000>; | ||
38 | gpio = <&gpio4 2 0>; | ||
39 | enable-active-high; | ||
40 | }; | ||
41 | }; | ||
42 | }; | ||
43 | |||
44 | &ecspi1 { | ||
45 | fsl,spi-num-chipselects = <1>; | ||
46 | cs-gpios = <&gpio4 11 0>; | ||
47 | pinctrl-names = "default"; | ||
48 | pinctrl-0 = <&pinctrl_ecspi1_1>; | ||
49 | status = "okay"; | ||
50 | |||
51 | flash: m25p80@0 { | ||
52 | #address-cells = <1>; | ||
53 | #size-cells = <1>; | ||
54 | compatible = "st,m25p32"; | ||
55 | spi-max-frequency = <20000000>; | ||
56 | reg = <0>; | ||
57 | }; | ||
20 | }; | 58 | }; |
21 | 59 | ||
22 | &fec { | 60 | &fec { |
@@ -38,6 +76,8 @@ | |||
38 | MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x17059 | 76 | MX6SL_PAD_SD2_DAT7__GPIO5_IO00 0x17059 |
39 | MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x17059 | 77 | MX6SL_PAD_SD2_DAT6__GPIO4_IO29 0x17059 |
40 | MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059 | 78 | MX6SL_PAD_REF_CLK_32K__GPIO3_IO22 0x17059 |
79 | MX6SL_PAD_KEY_COL4__GPIO4_IO00 0x80000000 | ||
80 | MX6SL_PAD_KEY_COL5__GPIO4_IO02 0x80000000 | ||
41 | >; | 81 | >; |
42 | }; | 82 | }; |
43 | }; | 83 | }; |
@@ -49,9 +89,26 @@ | |||
49 | status = "okay"; | 89 | status = "okay"; |
50 | }; | 90 | }; |
51 | 91 | ||
52 | &usdhc1 { | 92 | &usbotg1 { |
93 | vbus-supply = <®_usb_otg1_vbus>; | ||
53 | pinctrl-names = "default"; | 94 | pinctrl-names = "default"; |
95 | pinctrl-0 = <&pinctrl_usbotg1_1>; | ||
96 | disable-over-current; | ||
97 | status = "okay"; | ||
98 | }; | ||
99 | |||
100 | &usbotg2 { | ||
101 | vbus-supply = <®_usb_otg2_vbus>; | ||
102 | dr_mode = "host"; | ||
103 | disable-over-current; | ||
104 | status = "okay"; | ||
105 | }; | ||
106 | |||
107 | &usdhc1 { | ||
108 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; | ||
54 | pinctrl-0 = <&pinctrl_usdhc1_1>; | 109 | pinctrl-0 = <&pinctrl_usdhc1_1>; |
110 | pinctrl-1 = <&pinctrl_usdhc1_1_100mhz>; | ||
111 | pinctrl-2 = <&pinctrl_usdhc1_1_200mhz>; | ||
55 | bus-width = <8>; | 112 | bus-width = <8>; |
56 | cd-gpios = <&gpio4 7 0>; | 113 | cd-gpios = <&gpio4 7 0>; |
57 | wp-gpios = <&gpio4 6 0>; | 114 | wp-gpios = <&gpio4 6 0>; |
@@ -59,16 +116,20 @@ | |||
59 | }; | 116 | }; |
60 | 117 | ||
61 | &usdhc2 { | 118 | &usdhc2 { |
62 | pinctrl-names = "default"; | 119 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; |
63 | pinctrl-0 = <&pinctrl_usdhc2_1>; | 120 | pinctrl-0 = <&pinctrl_usdhc2_1>; |
121 | pinctrl-1 = <&pinctrl_usdhc2_1_100mhz>; | ||
122 | pinctrl-2 = <&pinctrl_usdhc2_1_200mhz>; | ||
64 | cd-gpios = <&gpio5 0 0>; | 123 | cd-gpios = <&gpio5 0 0>; |
65 | wp-gpios = <&gpio4 29 0>; | 124 | wp-gpios = <&gpio4 29 0>; |
66 | status = "okay"; | 125 | status = "okay"; |
67 | }; | 126 | }; |
68 | 127 | ||
69 | &usdhc3 { | 128 | &usdhc3 { |
70 | pinctrl-names = "default"; | 129 | pinctrl-names = "default", "state_100mhz", "state_200mhz"; |
71 | pinctrl-0 = <&pinctrl_usdhc3_1>; | 130 | pinctrl-0 = <&pinctrl_usdhc3_1>; |
131 | pinctrl-1 = <&pinctrl_usdhc3_1_100mhz>; | ||
132 | pinctrl-2 = <&pinctrl_usdhc3_1_200mhz>; | ||
72 | cd-gpios = <&gpio3 22 0>; | 133 | cd-gpios = <&gpio3 22 0>; |
73 | status = "okay"; | 134 | status = "okay"; |
74 | }; | 135 | }; |
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index 177d9e791a01..28558f1aaf2d 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi | |||
@@ -13,16 +13,20 @@ | |||
13 | 13 | ||
14 | / { | 14 | / { |
15 | aliases { | 15 | aliases { |
16 | serial0 = &uart1; | ||
17 | serial1 = &uart2; | ||
18 | serial2 = &uart3; | ||
19 | serial3 = &uart4; | ||
20 | serial4 = &uart5; | ||
21 | gpio0 = &gpio1; | 16 | gpio0 = &gpio1; |
22 | gpio1 = &gpio2; | 17 | gpio1 = &gpio2; |
23 | gpio2 = &gpio3; | 18 | gpio2 = &gpio3; |
24 | gpio3 = &gpio4; | 19 | gpio3 = &gpio4; |
25 | gpio4 = &gpio5; | 20 | gpio4 = &gpio5; |
21 | serial0 = &uart1; | ||
22 | serial1 = &uart2; | ||
23 | serial2 = &uart3; | ||
24 | serial3 = &uart4; | ||
25 | serial4 = &uart5; | ||
26 | spi0 = &ecspi1; | ||
27 | spi1 = &ecspi2; | ||
28 | spi2 = &ecspi3; | ||
29 | spi3 = &ecspi4; | ||
26 | }; | 30 | }; |
27 | 31 | ||
28 | cpus { | 32 | cpus { |
@@ -530,10 +534,26 @@ | |||
530 | interrupts = <0 89 0x04>; | 534 | interrupts = <0 89 0x04>; |
531 | }; | 535 | }; |
532 | 536 | ||
537 | gpr: iomuxc-gpr@020e0000 { | ||
538 | compatible = "fsl,imx6sl-iomuxc-gpr", | ||
539 | "fsl,imx6q-iomuxc-gpr", "syscon"; | ||
540 | reg = <0x020e0000 0x38>; | ||
541 | }; | ||
542 | |||
533 | iomuxc: iomuxc@020e0000 { | 543 | iomuxc: iomuxc@020e0000 { |
534 | compatible = "fsl,imx6sl-iomuxc"; | 544 | compatible = "fsl,imx6sl-iomuxc"; |
535 | reg = <0x020e0000 0x4000>; | 545 | reg = <0x020e0000 0x4000>; |
536 | 546 | ||
547 | ecspi1 { | ||
548 | pinctrl_ecspi1_1: ecspi1grp-1 { | ||
549 | fsl,pins = < | ||
550 | MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO 0x100b1 | ||
551 | MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0x100b1 | ||
552 | MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0x100b1 | ||
553 | >; | ||
554 | }; | ||
555 | }; | ||
556 | |||
537 | fec { | 557 | fec { |
538 | pinctrl_fec_1: fecgrp-1 { | 558 | pinctrl_fec_1: fecgrp-1 { |
539 | fsl,pins = < | 559 | fsl,pins = < |
@@ -559,6 +579,64 @@ | |||
559 | }; | 579 | }; |
560 | }; | 580 | }; |
561 | 581 | ||
582 | usbotg1 { | ||
583 | pinctrl_usbotg1_1: usbotg1grp-1 { | ||
584 | fsl,pins = < | ||
585 | MX6SL_PAD_EPDC_PWRCOM__USB_OTG1_ID 0x17059 | ||
586 | >; | ||
587 | }; | ||
588 | |||
589 | pinctrl_usbotg1_2: usbotg1grp-2 { | ||
590 | fsl,pins = < | ||
591 | MX6SL_PAD_FEC_RXD0__USB_OTG1_ID 0x17059 | ||
592 | >; | ||
593 | }; | ||
594 | |||
595 | pinctrl_usbotg1_3: usbotg1grp-3 { | ||
596 | fsl,pins = < | ||
597 | MX6SL_PAD_LCD_DAT1__USB_OTG1_ID 0x17059 | ||
598 | >; | ||
599 | }; | ||
600 | |||
601 | pinctrl_usbotg1_4: usbotg1grp-4 { | ||
602 | fsl,pins = < | ||
603 | MX6SL_PAD_REF_CLK_32K__USB_OTG1_ID 0x17059 | ||
604 | >; | ||
605 | }; | ||
606 | |||
607 | pinctrl_usbotg1_5: usbotg1grp-5 { | ||
608 | fsl,pins = < | ||
609 | MX6SL_PAD_SD3_DAT0__USB_OTG1_ID 0x17059 | ||
610 | >; | ||
611 | }; | ||
612 | }; | ||
613 | |||
614 | usbotg2 { | ||
615 | pinctrl_usbotg2_1: usbotg2grp-1 { | ||
616 | fsl,pins = < | ||
617 | MX6SL_PAD_ECSPI1_SCLK__USB_OTG2_OC 0x17059 | ||
618 | >; | ||
619 | }; | ||
620 | |||
621 | pinctrl_usbotg2_2: usbotg2grp-2 { | ||
622 | fsl,pins = < | ||
623 | MX6SL_PAD_ECSPI2_SCLK__USB_OTG2_OC 0x17059 | ||
624 | >; | ||
625 | }; | ||
626 | |||
627 | pinctrl_usbotg2_3: usbotg2grp-3 { | ||
628 | fsl,pins = < | ||
629 | MX6SL_PAD_KEY_ROW5__USB_OTG2_OC 0x17059 | ||
630 | >; | ||
631 | }; | ||
632 | |||
633 | pinctrl_usbotg2_4: usbotg2grp-4 { | ||
634 | fsl,pins = < | ||
635 | MX6SL_PAD_SD3_DAT2__USB_OTG2_OC 0x17059 | ||
636 | >; | ||
637 | }; | ||
638 | }; | ||
639 | |||
562 | usdhc1 { | 640 | usdhc1 { |
563 | pinctrl_usdhc1_1: usdhc1grp-1 { | 641 | pinctrl_usdhc1_1: usdhc1grp-1 { |
564 | fsl,pins = < | 642 | fsl,pins = < |
@@ -574,6 +652,38 @@ | |||
574 | MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059 | 652 | MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x17059 |
575 | >; | 653 | >; |
576 | }; | 654 | }; |
655 | |||
656 | pinctrl_usdhc1_1_100mhz: usdhc1grp-1-100mhz { | ||
657 | fsl,pins = < | ||
658 | MX6SL_PAD_SD1_CMD__SD1_CMD 0x170b9 | ||
659 | MX6SL_PAD_SD1_CLK__SD1_CLK 0x100b9 | ||
660 | MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170b9 | ||
661 | MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170b9 | ||
662 | MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170b9 | ||
663 | MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170b9 | ||
664 | MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170b9 | ||
665 | MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170b9 | ||
666 | MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170b9 | ||
667 | MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170b9 | ||
668 | >; | ||
669 | }; | ||
670 | |||
671 | pinctrl_usdhc1_1_200mhz: usdhc1grp-1-200mhz { | ||
672 | fsl,pins = < | ||
673 | MX6SL_PAD_SD1_CMD__SD1_CMD 0x170f9 | ||
674 | MX6SL_PAD_SD1_CLK__SD1_CLK 0x100f9 | ||
675 | MX6SL_PAD_SD1_DAT0__SD1_DATA0 0x170f9 | ||
676 | MX6SL_PAD_SD1_DAT1__SD1_DATA1 0x170f9 | ||
677 | MX6SL_PAD_SD1_DAT2__SD1_DATA2 0x170f9 | ||
678 | MX6SL_PAD_SD1_DAT3__SD1_DATA3 0x170f9 | ||
679 | MX6SL_PAD_SD1_DAT4__SD1_DATA4 0x170f9 | ||
680 | MX6SL_PAD_SD1_DAT5__SD1_DATA5 0x170f9 | ||
681 | MX6SL_PAD_SD1_DAT6__SD1_DATA6 0x170f9 | ||
682 | MX6SL_PAD_SD1_DAT7__SD1_DATA7 0x170f9 | ||
683 | >; | ||
684 | }; | ||
685 | |||
686 | |||
577 | }; | 687 | }; |
578 | 688 | ||
579 | usdhc2 { | 689 | usdhc2 { |
@@ -587,6 +697,29 @@ | |||
587 | MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x17059 | 697 | MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x17059 |
588 | >; | 698 | >; |
589 | }; | 699 | }; |
700 | |||
701 | pinctrl_usdhc2_1_100mhz: usdhc2grp-1-100mhz { | ||
702 | fsl,pins = < | ||
703 | MX6SL_PAD_SD2_CMD__SD2_CMD 0x170b9 | ||
704 | MX6SL_PAD_SD2_CLK__SD2_CLK 0x100b9 | ||
705 | MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 | ||
706 | MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 | ||
707 | MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 | ||
708 | MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 | ||
709 | >; | ||
710 | }; | ||
711 | |||
712 | pinctrl_usdhc2_1_200mhz: usdhc2grp-1-200mhz { | ||
713 | fsl,pins = < | ||
714 | MX6SL_PAD_SD2_CMD__SD2_CMD 0x170f9 | ||
715 | MX6SL_PAD_SD2_CLK__SD2_CLK 0x100f9 | ||
716 | MX6SL_PAD_SD2_DAT0__SD2_DATA0 0x170f9 | ||
717 | MX6SL_PAD_SD2_DAT1__SD2_DATA1 0x170f9 | ||
718 | MX6SL_PAD_SD2_DAT2__SD2_DATA2 0x170f9 | ||
719 | MX6SL_PAD_SD2_DAT3__SD2_DATA3 0x170f9 | ||
720 | >; | ||
721 | }; | ||
722 | |||
590 | }; | 723 | }; |
591 | 724 | ||
592 | usdhc3 { | 725 | usdhc3 { |
@@ -600,6 +733,28 @@ | |||
600 | MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x17059 | 733 | MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x17059 |
601 | >; | 734 | >; |
602 | }; | 735 | }; |
736 | |||
737 | pinctrl_usdhc3_1_100mhz: usdhc3grp-1-100mhz { | ||
738 | fsl,pins = < | ||
739 | MX6SL_PAD_SD3_CMD__SD3_CMD 0x170b9 | ||
740 | MX6SL_PAD_SD3_CLK__SD3_CLK 0x100b9 | ||
741 | MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170b9 | ||
742 | MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170b9 | ||
743 | MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170b9 | ||
744 | MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170b9 | ||
745 | >; | ||
746 | }; | ||
747 | |||
748 | pinctrl_usdhc3_1_200mhz: usdhc3grp-1-200mhz { | ||
749 | fsl,pins = < | ||
750 | MX6SL_PAD_SD3_CMD__SD3_CMD 0x170f9 | ||
751 | MX6SL_PAD_SD3_CLK__SD3_CLK 0x100f9 | ||
752 | MX6SL_PAD_SD3_DAT0__SD3_DATA0 0x170f9 | ||
753 | MX6SL_PAD_SD3_DAT1__SD3_DATA1 0x170f9 | ||
754 | MX6SL_PAD_SD3_DAT2__SD3_DATA2 0x170f9 | ||
755 | MX6SL_PAD_SD3_DAT3__SD3_DATA3 0x170f9 | ||
756 | >; | ||
757 | }; | ||
603 | }; | 758 | }; |
604 | }; | 759 | }; |
605 | 760 | ||
@@ -621,7 +776,8 @@ | |||
621 | <&clks IMX6SL_CLK_SDMA>; | 776 | <&clks IMX6SL_CLK_SDMA>; |
622 | clock-names = "ipg", "ahb"; | 777 | clock-names = "ipg", "ahb"; |
623 | #dma-cells = <3>; | 778 | #dma-cells = <3>; |
624 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6sl.bin"; | 779 | /* imx6sl reuses imx6q sdma firmware */ |
780 | fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin"; | ||
625 | }; | 781 | }; |
626 | 782 | ||
627 | pxp: pxp@020f0000 { | 783 | pxp: pxp@020f0000 { |
@@ -665,7 +821,7 @@ | |||
665 | usbotg2: usb@02184200 { | 821 | usbotg2: usb@02184200 { |
666 | compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; | 822 | compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; |
667 | reg = <0x02184200 0x200>; | 823 | reg = <0x02184200 0x200>; |
668 | interrupts = <0 40 0x04>; | 824 | interrupts = <0 42 0x04>; |
669 | clocks = <&clks IMX6SL_CLK_USBOH3>; | 825 | clocks = <&clks IMX6SL_CLK_USBOH3>; |
670 | fsl,usbphy = <&usbphy2>; | 826 | fsl,usbphy = <&usbphy2>; |
671 | fsl,usbmisc = <&usbmisc 1>; | 827 | fsl,usbmisc = <&usbmisc 1>; |
@@ -675,7 +831,7 @@ | |||
675 | usbh: usb@02184400 { | 831 | usbh: usb@02184400 { |
676 | compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; | 832 | compatible = "fsl,imx6sl-usb", "fsl,imx27-usb"; |
677 | reg = <0x02184400 0x200>; | 833 | reg = <0x02184400 0x200>; |
678 | interrupts = <0 42 0x04>; | 834 | interrupts = <0 40 0x04>; |
679 | clocks = <&clks IMX6SL_CLK_USBOH3>; | 835 | clocks = <&clks IMX6SL_CLK_USBOH3>; |
680 | fsl,usbmisc = <&usbmisc 2>; | 836 | fsl,usbmisc = <&usbmisc 2>; |
681 | status = "disabled"; | 837 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/kirkwood-db-88f6281.dts b/arch/arm/boot/dts/kirkwood-db-88f6281.dts index 72c4b0a0366f..c39dd766c75a 100644 --- a/arch/arm/boot/dts/kirkwood-db-88f6281.dts +++ b/arch/arm/boot/dts/kirkwood-db-88f6281.dts | |||
@@ -19,7 +19,6 @@ | |||
19 | compatible = "marvell,db-88f6281-bp", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | 19 | compatible = "marvell,db-88f6281-bp", "marvell,kirkwood-88f6281", "marvell,kirkwood"; |
20 | 20 | ||
21 | mbus { | 21 | mbus { |
22 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
23 | pcie-controller { | 22 | pcie-controller { |
24 | status = "okay"; | 23 | status = "okay"; |
25 | 24 | ||
diff --git a/arch/arm/boot/dts/kirkwood-db-88f6282.dts b/arch/arm/boot/dts/kirkwood-db-88f6282.dts index 36c411d34926..701c6b6cdaa2 100644 --- a/arch/arm/boot/dts/kirkwood-db-88f6282.dts +++ b/arch/arm/boot/dts/kirkwood-db-88f6282.dts | |||
@@ -19,7 +19,6 @@ | |||
19 | compatible = "marvell,db-88f6282-bp", "marvell,kirkwood-88f6282", "marvell,kirkwood"; | 19 | compatible = "marvell,db-88f6282-bp", "marvell,kirkwood-88f6282", "marvell,kirkwood"; |
20 | 20 | ||
21 | mbus { | 21 | mbus { |
22 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
23 | pcie-controller { | 22 | pcie-controller { |
24 | status = "okay"; | 23 | status = "okay"; |
25 | 24 | ||
diff --git a/arch/arm/boot/dts/kirkwood-db.dtsi b/arch/arm/boot/dts/kirkwood-db.dtsi index c0e2a5879174..053aa20fb30f 100644 --- a/arch/arm/boot/dts/kirkwood-db.dtsi +++ b/arch/arm/boot/dts/kirkwood-db.dtsi | |||
@@ -39,28 +39,6 @@ | |||
39 | status = "ok"; | 39 | status = "ok"; |
40 | }; | 40 | }; |
41 | 41 | ||
42 | nand@3000000 { | ||
43 | pinctrl-0 = <&pmx_nand>; | ||
44 | pinctrl-names = "default"; | ||
45 | chip-delay = <25>; | ||
46 | status = "okay"; | ||
47 | |||
48 | partition@0 { | ||
49 | label = "uboot"; | ||
50 | reg = <0x0 0x100000>; | ||
51 | }; | ||
52 | |||
53 | partition@100000 { | ||
54 | label = "uImage"; | ||
55 | reg = <0x100000 0x400000>; | ||
56 | }; | ||
57 | |||
58 | partition@500000 { | ||
59 | label = "root"; | ||
60 | reg = <0x500000 0x1fb00000>; | ||
61 | }; | ||
62 | }; | ||
63 | |||
64 | sata@80000 { | 42 | sata@80000 { |
65 | nr-ports = <2>; | 43 | nr-ports = <2>; |
66 | status = "okay"; | 44 | status = "okay"; |
@@ -80,6 +58,28 @@ | |||
80 | }; | 58 | }; |
81 | }; | 59 | }; |
82 | 60 | ||
61 | &nand { | ||
62 | pinctrl-0 = <&pmx_nand>; | ||
63 | pinctrl-names = "default"; | ||
64 | chip-delay = <25>; | ||
65 | status = "okay"; | ||
66 | |||
67 | partition@0 { | ||
68 | label = "uboot"; | ||
69 | reg = <0x0 0x100000>; | ||
70 | }; | ||
71 | |||
72 | partition@100000 { | ||
73 | label = "uImage"; | ||
74 | reg = <0x100000 0x400000>; | ||
75 | }; | ||
76 | |||
77 | partition@500000 { | ||
78 | label = "root"; | ||
79 | reg = <0x500000 0x1fb00000>; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | &mdio { | 83 | &mdio { |
84 | status = "okay"; | 84 | status = "okay"; |
85 | 85 | ||
diff --git a/arch/arm/boot/dts/kirkwood-dnskw.dtsi b/arch/arm/boot/dts/kirkwood-dnskw.dtsi index d544f77a4ca4..aefa375a550d 100644 --- a/arch/arm/boot/dts/kirkwood-dnskw.dtsi +++ b/arch/arm/boot/dts/kirkwood-dnskw.dtsi | |||
@@ -148,44 +148,6 @@ | |||
148 | status = "okay"; | 148 | status = "okay"; |
149 | nr-ports = <2>; | 149 | nr-ports = <2>; |
150 | }; | 150 | }; |
151 | |||
152 | nand@3000000 { | ||
153 | pinctrl-0 = <&pmx_nand>; | ||
154 | pinctrl-names = "default"; | ||
155 | status = "okay"; | ||
156 | chip-delay = <35>; | ||
157 | |||
158 | partition@0 { | ||
159 | label = "u-boot"; | ||
160 | reg = <0x0000000 0x100000>; | ||
161 | read-only; | ||
162 | }; | ||
163 | |||
164 | partition@100000 { | ||
165 | label = "uImage"; | ||
166 | reg = <0x0100000 0x500000>; | ||
167 | }; | ||
168 | |||
169 | partition@600000 { | ||
170 | label = "ramdisk"; | ||
171 | reg = <0x0600000 0x500000>; | ||
172 | }; | ||
173 | |||
174 | partition@b00000 { | ||
175 | label = "image"; | ||
176 | reg = <0x0b00000 0x6600000>; | ||
177 | }; | ||
178 | |||
179 | partition@7100000 { | ||
180 | label = "mini firmware"; | ||
181 | reg = <0x7100000 0xa00000>; | ||
182 | }; | ||
183 | |||
184 | partition@7b00000 { | ||
185 | label = "config"; | ||
186 | reg = <0x7b00000 0x500000>; | ||
187 | }; | ||
188 | }; | ||
189 | }; | 151 | }; |
190 | 152 | ||
191 | regulators { | 153 | regulators { |
@@ -220,6 +182,44 @@ | |||
220 | }; | 182 | }; |
221 | }; | 183 | }; |
222 | 184 | ||
185 | &nand { | ||
186 | pinctrl-0 = <&pmx_nand>; | ||
187 | pinctrl-names = "default"; | ||
188 | status = "okay"; | ||
189 | chip-delay = <35>; | ||
190 | |||
191 | partition@0 { | ||
192 | label = "u-boot"; | ||
193 | reg = <0x0000000 0x100000>; | ||
194 | read-only; | ||
195 | }; | ||
196 | |||
197 | partition@100000 { | ||
198 | label = "uImage"; | ||
199 | reg = <0x0100000 0x500000>; | ||
200 | }; | ||
201 | |||
202 | partition@600000 { | ||
203 | label = "ramdisk"; | ||
204 | reg = <0x0600000 0x500000>; | ||
205 | }; | ||
206 | |||
207 | partition@b00000 { | ||
208 | label = "image"; | ||
209 | reg = <0x0b00000 0x6600000>; | ||
210 | }; | ||
211 | |||
212 | partition@7100000 { | ||
213 | label = "mini firmware"; | ||
214 | reg = <0x7100000 0xa00000>; | ||
215 | }; | ||
216 | |||
217 | partition@7b00000 { | ||
218 | label = "config"; | ||
219 | reg = <0x7b00000 0x500000>; | ||
220 | }; | ||
221 | }; | ||
222 | |||
223 | &mdio { | 223 | &mdio { |
224 | status = "okay"; | 224 | status = "okay"; |
225 | 225 | ||
diff --git a/arch/arm/boot/dts/kirkwood-dockstar.dts b/arch/arm/boot/dts/kirkwood-dockstar.dts index 59a2117c35a7..33ff368fbfa5 100644 --- a/arch/arm/boot/dts/kirkwood-dockstar.dts +++ b/arch/arm/boot/dts/kirkwood-dockstar.dts | |||
@@ -34,26 +34,6 @@ | |||
34 | serial@12000 { | 34 | serial@12000 { |
35 | status = "ok"; | 35 | status = "ok"; |
36 | }; | 36 | }; |
37 | |||
38 | nand@3000000 { | ||
39 | status = "okay"; | ||
40 | |||
41 | partition@0 { | ||
42 | label = "u-boot"; | ||
43 | reg = <0x0000000 0x100000>; | ||
44 | read-only; | ||
45 | }; | ||
46 | |||
47 | partition@100000 { | ||
48 | label = "uImage"; | ||
49 | reg = <0x0100000 0x400000>; | ||
50 | }; | ||
51 | |||
52 | partition@500000 { | ||
53 | label = "data"; | ||
54 | reg = <0x0500000 0xfb00000>; | ||
55 | }; | ||
56 | }; | ||
57 | }; | 37 | }; |
58 | gpio-leds { | 38 | gpio-leds { |
59 | compatible = "gpio-leds"; | 39 | compatible = "gpio-leds"; |
@@ -91,6 +71,26 @@ | |||
91 | }; | 71 | }; |
92 | }; | 72 | }; |
93 | 73 | ||
74 | &nand { | ||
75 | status = "okay"; | ||
76 | |||
77 | partition@0 { | ||
78 | label = "u-boot"; | ||
79 | reg = <0x0000000 0x100000>; | ||
80 | read-only; | ||
81 | }; | ||
82 | |||
83 | partition@100000 { | ||
84 | label = "uImage"; | ||
85 | reg = <0x0100000 0x400000>; | ||
86 | }; | ||
87 | |||
88 | partition@500000 { | ||
89 | label = "data"; | ||
90 | reg = <0x0500000 0xfb00000>; | ||
91 | }; | ||
92 | }; | ||
93 | |||
94 | &mdio { | 94 | &mdio { |
95 | status = "okay"; | 95 | status = "okay"; |
96 | 96 | ||
diff --git a/arch/arm/boot/dts/kirkwood-goflexnet.dts b/arch/arm/boot/dts/kirkwood-goflexnet.dts index 6f7c7d7ecf2a..a43bebb25110 100644 --- a/arch/arm/boot/dts/kirkwood-goflexnet.dts +++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts | |||
@@ -67,31 +67,6 @@ | |||
67 | status = "ok"; | 67 | status = "ok"; |
68 | }; | 68 | }; |
69 | 69 | ||
70 | nand@3000000 { | ||
71 | chip-delay = <40>; | ||
72 | status = "okay"; | ||
73 | |||
74 | partition@0 { | ||
75 | label = "u-boot"; | ||
76 | reg = <0x0000000 0x100000>; | ||
77 | read-only; | ||
78 | }; | ||
79 | |||
80 | partition@100000 { | ||
81 | label = "uImage"; | ||
82 | reg = <0x0100000 0x400000>; | ||
83 | }; | ||
84 | |||
85 | partition@500000 { | ||
86 | label = "pogoplug"; | ||
87 | reg = <0x0500000 0x2000000>; | ||
88 | }; | ||
89 | |||
90 | partition@2500000 { | ||
91 | label = "root"; | ||
92 | reg = <0x02500000 0xd800000>; | ||
93 | }; | ||
94 | }; | ||
95 | sata@80000 { | 70 | sata@80000 { |
96 | status = "okay"; | 71 | status = "okay"; |
97 | nr-ports = <2>; | 72 | nr-ports = <2>; |
@@ -171,6 +146,32 @@ | |||
171 | }; | 146 | }; |
172 | }; | 147 | }; |
173 | 148 | ||
149 | &nand { | ||
150 | chip-delay = <40>; | ||
151 | status = "okay"; | ||
152 | |||
153 | partition@0 { | ||
154 | label = "u-boot"; | ||
155 | reg = <0x0000000 0x100000>; | ||
156 | read-only; | ||
157 | }; | ||
158 | |||
159 | partition@100000 { | ||
160 | label = "uImage"; | ||
161 | reg = <0x0100000 0x400000>; | ||
162 | }; | ||
163 | |||
164 | partition@500000 { | ||
165 | label = "pogoplug"; | ||
166 | reg = <0x0500000 0x2000000>; | ||
167 | }; | ||
168 | |||
169 | partition@2500000 { | ||
170 | label = "root"; | ||
171 | reg = <0x02500000 0xd800000>; | ||
172 | }; | ||
173 | }; | ||
174 | |||
174 | &mdio { | 175 | &mdio { |
175 | status = "okay"; | 176 | status = "okay"; |
176 | 177 | ||
diff --git a/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts b/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts index 6548b9dc6855..d30a91a5047d 100644 --- a/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts +++ b/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts | |||
@@ -40,26 +40,6 @@ | |||
40 | status = "ok"; | 40 | status = "ok"; |
41 | }; | 41 | }; |
42 | 42 | ||
43 | nand@3000000 { | ||
44 | status = "okay"; | ||
45 | |||
46 | partition@0 { | ||
47 | label = "u-boot"; | ||
48 | reg = <0x00000000 0x00100000>; | ||
49 | read-only; | ||
50 | }; | ||
51 | |||
52 | partition@100000 { | ||
53 | label = "uImage"; | ||
54 | reg = <0x00100000 0x00400000>; | ||
55 | }; | ||
56 | |||
57 | partition@500000 { | ||
58 | label = "data"; | ||
59 | reg = <0x00500000 0x1fb00000>; | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | sata@80000 { | 43 | sata@80000 { |
64 | status = "okay"; | 44 | status = "okay"; |
65 | nr-ports = <1>; | 45 | nr-ports = <1>; |
@@ -97,6 +77,26 @@ | |||
97 | }; | 77 | }; |
98 | }; | 78 | }; |
99 | 79 | ||
80 | &nand { | ||
81 | status = "okay"; | ||
82 | |||
83 | partition@0 { | ||
84 | label = "u-boot"; | ||
85 | reg = <0x00000000 0x00100000>; | ||
86 | read-only; | ||
87 | }; | ||
88 | |||
89 | partition@100000 { | ||
90 | label = "uImage"; | ||
91 | reg = <0x00100000 0x00400000>; | ||
92 | }; | ||
93 | |||
94 | partition@500000 { | ||
95 | label = "data"; | ||
96 | reg = <0x00500000 0x1fb00000>; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | &mdio { | 100 | &mdio { |
101 | status = "okay"; | 101 | status = "okay"; |
102 | 102 | ||
diff --git a/arch/arm/boot/dts/kirkwood-ib62x0.dts b/arch/arm/boot/dts/kirkwood-ib62x0.dts index cb711a3bd983..c5fb02f7ebc3 100644 --- a/arch/arm/boot/dts/kirkwood-ib62x0.dts +++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | / { | 6 | / { |
7 | model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)"; | 7 | model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)"; |
8 | compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; | 8 | compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood"; |
9 | 9 | ||
10 | memory { | 10 | memory { |
11 | device_type = "memory"; | 11 | device_type = "memory"; |
@@ -43,6 +43,7 @@ | |||
43 | marvell,function = "gpio"; | 43 | marvell,function = "gpio"; |
44 | }; | 44 | }; |
45 | }; | 45 | }; |
46 | |||
46 | serial@12000 { | 47 | serial@12000 { |
47 | status = "okay"; | 48 | status = "okay"; |
48 | }; | 49 | }; |
@@ -51,28 +52,6 @@ | |||
51 | status = "okay"; | 52 | status = "okay"; |
52 | nr-ports = <2>; | 53 | nr-ports = <2>; |
53 | }; | 54 | }; |
54 | |||
55 | nand@3000000 { | ||
56 | status = "okay"; | ||
57 | pinctrl-0 = <&pmx_nand>; | ||
58 | pinctrl-names = "default"; | ||
59 | |||
60 | partition@0 { | ||
61 | label = "u-boot"; | ||
62 | reg = <0x0000000 0x100000>; | ||
63 | }; | ||
64 | |||
65 | partition@100000 { | ||
66 | label = "uImage"; | ||
67 | reg = <0x0100000 0x600000>; | ||
68 | }; | ||
69 | |||
70 | partition@700000 { | ||
71 | label = "root"; | ||
72 | reg = <0x0700000 0xf900000>; | ||
73 | }; | ||
74 | |||
75 | }; | ||
76 | }; | 55 | }; |
77 | 56 | ||
78 | gpio_keys { | 57 | gpio_keys { |
@@ -93,6 +72,7 @@ | |||
93 | gpios = <&gpio0 28 1>; | 72 | gpios = <&gpio0 28 1>; |
94 | }; | 73 | }; |
95 | }; | 74 | }; |
75 | |||
96 | gpio-leds { | 76 | gpio-leds { |
97 | compatible = "gpio-leds"; | 77 | compatible = "gpio-leds"; |
98 | pinctrl-0 = <&pmx_led_os_red &pmx_led_os_green | 78 | pinctrl-0 = <&pmx_led_os_red &pmx_led_os_green |
@@ -113,13 +93,39 @@ | |||
113 | gpios = <&gpio0 27 0>; | 93 | gpios = <&gpio0 27 0>; |
114 | }; | 94 | }; |
115 | }; | 95 | }; |
96 | |||
116 | gpio_poweroff { | 97 | gpio_poweroff { |
117 | compatible = "gpio-poweroff"; | 98 | compatible = "gpio-poweroff"; |
118 | pinctrl-0 = <&pmx_power_off>; | 99 | pinctrl-0 = <&pmx_power_off>; |
119 | pinctrl-names = "default"; | 100 | pinctrl-names = "default"; |
120 | gpios = <&gpio0 24 0>; | 101 | gpios = <&gpio0 24 0>; |
121 | }; | 102 | }; |
103 | }; | ||
104 | |||
105 | &nand { | ||
106 | status = "okay"; | ||
107 | pinctrl-0 = <&pmx_nand>; | ||
108 | pinctrl-names = "default"; | ||
109 | |||
110 | partition@0 { | ||
111 | label = "u-boot"; | ||
112 | reg = <0x0000000 0xe0000>; | ||
113 | }; | ||
122 | 114 | ||
115 | partition@e0000 { | ||
116 | label = "u-boot environment"; | ||
117 | reg = <0xe0000 0x100000>; | ||
118 | }; | ||
119 | |||
120 | partition@100000 { | ||
121 | label = "uImage"; | ||
122 | reg = <0x0100000 0x600000>; | ||
123 | }; | ||
124 | |||
125 | partition@700000 { | ||
126 | label = "root"; | ||
127 | reg = <0x0700000 0xf900000>; | ||
128 | }; | ||
123 | 129 | ||
124 | }; | 130 | }; |
125 | 131 | ||
@@ -134,6 +140,7 @@ | |||
134 | 140 | ||
135 | ð0 { | 141 | ð0 { |
136 | status = "okay"; | 142 | status = "okay"; |
143 | |||
137 | ethernet0-port@0 { | 144 | ethernet0-port@0 { |
138 | phy-handle = <ðphy0>; | 145 | phy-handle = <ðphy0>; |
139 | }; | 146 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-iconnect.dts b/arch/arm/boot/dts/kirkwood-iconnect.dts index 0323f017eeed..4a62b206f680 100644 --- a/arch/arm/boot/dts/kirkwood-iconnect.dts +++ b/arch/arm/boot/dts/kirkwood-iconnect.dts | |||
@@ -19,7 +19,6 @@ | |||
19 | }; | 19 | }; |
20 | 20 | ||
21 | mbus { | 21 | mbus { |
22 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
23 | pcie-controller { | 22 | pcie-controller { |
24 | status = "okay"; | 23 | status = "okay"; |
25 | 24 | ||
@@ -83,35 +82,6 @@ | |||
83 | serial@12000 { | 82 | serial@12000 { |
84 | status = "ok"; | 83 | status = "ok"; |
85 | }; | 84 | }; |
86 | |||
87 | nand@3000000 { | ||
88 | status = "okay"; | ||
89 | |||
90 | partition@0 { | ||
91 | label = "uboot"; | ||
92 | reg = <0x0000000 0xc0000>; | ||
93 | }; | ||
94 | |||
95 | partition@a0000 { | ||
96 | label = "env"; | ||
97 | reg = <0xa0000 0x20000>; | ||
98 | }; | ||
99 | |||
100 | partition@100000 { | ||
101 | label = "zImage"; | ||
102 | reg = <0x100000 0x300000>; | ||
103 | }; | ||
104 | |||
105 | partition@540000 { | ||
106 | label = "initrd"; | ||
107 | reg = <0x540000 0x300000>; | ||
108 | }; | ||
109 | |||
110 | partition@980000 { | ||
111 | label = "boot"; | ||
112 | reg = <0x980000 0x1f400000>; | ||
113 | }; | ||
114 | }; | ||
115 | }; | 85 | }; |
116 | 86 | ||
117 | gpio-leds { | 87 | gpio-leds { |
@@ -180,6 +150,35 @@ | |||
180 | }; | 150 | }; |
181 | }; | 151 | }; |
182 | 152 | ||
153 | &nand { | ||
154 | status = "okay"; | ||
155 | |||
156 | partition@0 { | ||
157 | label = "uboot"; | ||
158 | reg = <0x0000000 0xc0000>; | ||
159 | }; | ||
160 | |||
161 | partition@a0000 { | ||
162 | label = "env"; | ||
163 | reg = <0xa0000 0x20000>; | ||
164 | }; | ||
165 | |||
166 | partition@100000 { | ||
167 | label = "zImage"; | ||
168 | reg = <0x100000 0x300000>; | ||
169 | }; | ||
170 | |||
171 | partition@540000 { | ||
172 | label = "initrd"; | ||
173 | reg = <0x540000 0x300000>; | ||
174 | }; | ||
175 | |||
176 | partition@980000 { | ||
177 | label = "boot"; | ||
178 | reg = <0x980000 0x1f400000>; | ||
179 | }; | ||
180 | }; | ||
181 | |||
183 | &mdio { | 182 | &mdio { |
184 | status = "okay"; | 183 | status = "okay"; |
185 | 184 | ||
diff --git a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts index df8447442b37..d15395d671ed 100644 --- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts +++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts | |||
@@ -113,31 +113,6 @@ | |||
113 | status = "ok"; | 113 | status = "ok"; |
114 | }; | 114 | }; |
115 | 115 | ||
116 | nand@3000000 { | ||
117 | status = "okay"; | ||
118 | |||
119 | partition@0 { | ||
120 | label = "u-boot"; | ||
121 | reg = <0x0000000 0x100000>; | ||
122 | read-only; | ||
123 | }; | ||
124 | |||
125 | partition@a0000 { | ||
126 | label = "env"; | ||
127 | reg = <0xa0000 0x20000>; | ||
128 | read-only; | ||
129 | }; | ||
130 | |||
131 | partition@100000 { | ||
132 | label = "uImage"; | ||
133 | reg = <0x100000 0x300000>; | ||
134 | }; | ||
135 | |||
136 | partition@400000 { | ||
137 | label = "uInitrd"; | ||
138 | reg = <0x540000 0x1000000>; | ||
139 | }; | ||
140 | }; | ||
141 | sata@80000 { | 116 | sata@80000 { |
142 | status = "okay"; | 117 | status = "okay"; |
143 | nr-ports = <2>; | 118 | nr-ports = <2>; |
@@ -195,6 +170,32 @@ | |||
195 | }; | 170 | }; |
196 | }; | 171 | }; |
197 | 172 | ||
173 | &nand { | ||
174 | status = "okay"; | ||
175 | |||
176 | partition@0 { | ||
177 | label = "u-boot"; | ||
178 | reg = <0x0000000 0x100000>; | ||
179 | read-only; | ||
180 | }; | ||
181 | |||
182 | partition@a0000 { | ||
183 | label = "env"; | ||
184 | reg = <0xa0000 0x20000>; | ||
185 | read-only; | ||
186 | }; | ||
187 | |||
188 | partition@100000 { | ||
189 | label = "uImage"; | ||
190 | reg = <0x100000 0x300000>; | ||
191 | }; | ||
192 | |||
193 | partition@400000 { | ||
194 | label = "uInitrd"; | ||
195 | reg = <0x540000 0x1000000>; | ||
196 | }; | ||
197 | }; | ||
198 | |||
198 | &mdio { | 199 | &mdio { |
199 | status = "okay"; | 200 | status = "okay"; |
200 | 201 | ||
diff --git a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts index 6899408482d2..cd44f37e54b5 100644 --- a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts +++ b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts | |||
@@ -34,13 +34,6 @@ | |||
34 | serial@12000 { | 34 | serial@12000 { |
35 | status = "ok"; | 35 | status = "ok"; |
36 | }; | 36 | }; |
37 | |||
38 | nand@3000000 { | ||
39 | pinctrl-0 = <&pmx_nand>; | ||
40 | pinctrl-names = "default"; | ||
41 | status = "ok"; | ||
42 | chip-delay = <25>; | ||
43 | }; | ||
44 | }; | 37 | }; |
45 | 38 | ||
46 | i2c@0 { | 39 | i2c@0 { |
@@ -51,6 +44,13 @@ | |||
51 | }; | 44 | }; |
52 | }; | 45 | }; |
53 | 46 | ||
47 | &nand { | ||
48 | pinctrl-0 = <&pmx_nand>; | ||
49 | pinctrl-names = "default"; | ||
50 | status = "ok"; | ||
51 | chip-delay = <25>; | ||
52 | }; | ||
53 | |||
54 | &mdio { | 54 | &mdio { |
55 | status = "okay"; | 55 | status = "okay"; |
56 | 56 | ||
diff --git a/arch/arm/boot/dts/kirkwood-mplcec4.dts b/arch/arm/boot/dts/kirkwood-mplcec4.dts index ce2b94b513db..6c1ec2786e6e 100644 --- a/arch/arm/boot/dts/kirkwood-mplcec4.dts +++ b/arch/arm/boot/dts/kirkwood-mplcec4.dts | |||
@@ -17,7 +17,6 @@ | |||
17 | }; | 17 | }; |
18 | 18 | ||
19 | mbus { | 19 | mbus { |
20 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
21 | pcie-controller { | 20 | pcie-controller { |
22 | status = "okay"; | 21 | status = "okay"; |
23 | 22 | ||
@@ -96,37 +95,6 @@ | |||
96 | pinctrl-names = "default"; | 95 | pinctrl-names = "default"; |
97 | }; | 96 | }; |
98 | 97 | ||
99 | nand@3000000 { | ||
100 | pinctrl-0 = <&pmx_nand>; | ||
101 | pinctrl-names = "default"; | ||
102 | status = "okay"; | ||
103 | |||
104 | partition@0 { | ||
105 | label = "uboot"; | ||
106 | reg = <0x0000000 0x100000>; | ||
107 | }; | ||
108 | |||
109 | partition@100000 { | ||
110 | label = "env"; | ||
111 | reg = <0x100000 0x80000>; | ||
112 | }; | ||
113 | |||
114 | partition@180000 { | ||
115 | label = "fdt"; | ||
116 | reg = <0x180000 0x80000>; | ||
117 | }; | ||
118 | |||
119 | partition@200000 { | ||
120 | label = "kernel"; | ||
121 | reg = <0x200000 0x400000>; | ||
122 | }; | ||
123 | |||
124 | partition@600000 { | ||
125 | label = "rootfs"; | ||
126 | reg = <0x600000 0x1fa00000>; | ||
127 | }; | ||
128 | }; | ||
129 | |||
130 | rtc@10300 { | 98 | rtc@10300 { |
131 | status = "disabled"; | 99 | status = "disabled"; |
132 | }; | 100 | }; |
@@ -194,6 +162,37 @@ | |||
194 | }; | 162 | }; |
195 | }; | 163 | }; |
196 | 164 | ||
165 | &nand { | ||
166 | pinctrl-0 = <&pmx_nand>; | ||
167 | pinctrl-names = "default"; | ||
168 | status = "okay"; | ||
169 | |||
170 | partition@0 { | ||
171 | label = "uboot"; | ||
172 | reg = <0x0000000 0x100000>; | ||
173 | }; | ||
174 | |||
175 | partition@100000 { | ||
176 | label = "env"; | ||
177 | reg = <0x100000 0x80000>; | ||
178 | }; | ||
179 | |||
180 | partition@180000 { | ||
181 | label = "fdt"; | ||
182 | reg = <0x180000 0x80000>; | ||
183 | }; | ||
184 | |||
185 | partition@200000 { | ||
186 | label = "kernel"; | ||
187 | reg = <0x200000 0x400000>; | ||
188 | }; | ||
189 | |||
190 | partition@600000 { | ||
191 | label = "rootfs"; | ||
192 | reg = <0x600000 0x1fa00000>; | ||
193 | }; | ||
194 | }; | ||
195 | |||
197 | &mdio { | 196 | &mdio { |
198 | status = "okay"; | 197 | status = "okay"; |
199 | 198 | ||
diff --git a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts index 874857ea9cb8..e6a102cf424c 100644 --- a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts +++ b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts | |||
@@ -17,7 +17,6 @@ | |||
17 | }; | 17 | }; |
18 | 18 | ||
19 | mbus { | 19 | mbus { |
20 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
21 | pcie-controller { | 20 | pcie-controller { |
22 | status = "okay"; | 21 | status = "okay"; |
23 | 22 | ||
@@ -98,36 +97,6 @@ | |||
98 | status = "okay"; | 97 | status = "okay"; |
99 | }; | 98 | }; |
100 | 99 | ||
101 | nand@3000000 { | ||
102 | status = "okay"; | ||
103 | |||
104 | partition@0 { | ||
105 | label = "u-boot"; | ||
106 | reg = <0x0000000 0x180000>; | ||
107 | read-only; | ||
108 | }; | ||
109 | |||
110 | partition@180000 { | ||
111 | label = "u-boot-env"; | ||
112 | reg = <0x180000 0x20000>; | ||
113 | }; | ||
114 | |||
115 | partition@200000 { | ||
116 | label = "uImage"; | ||
117 | reg = <0x0200000 0x600000>; | ||
118 | }; | ||
119 | |||
120 | partition@800000 { | ||
121 | label = "minirootfs"; | ||
122 | reg = <0x0800000 0x1000000>; | ||
123 | }; | ||
124 | |||
125 | partition@1800000 { | ||
126 | label = "jffs2"; | ||
127 | reg = <0x1800000 0x6800000>; | ||
128 | }; | ||
129 | }; | ||
130 | |||
131 | sata@80000 { | 100 | sata@80000 { |
132 | status = "okay"; | 101 | status = "okay"; |
133 | nr-ports = <2>; | 102 | nr-ports = <2>; |
@@ -208,6 +177,36 @@ | |||
208 | }; | 177 | }; |
209 | }; | 178 | }; |
210 | 179 | ||
180 | &nand { | ||
181 | status = "okay"; | ||
182 | |||
183 | partition@0 { | ||
184 | label = "u-boot"; | ||
185 | reg = <0x0000000 0x180000>; | ||
186 | read-only; | ||
187 | }; | ||
188 | |||
189 | partition@180000 { | ||
190 | label = "u-boot-env"; | ||
191 | reg = <0x180000 0x20000>; | ||
192 | }; | ||
193 | |||
194 | partition@200000 { | ||
195 | label = "uImage"; | ||
196 | reg = <0x0200000 0x600000>; | ||
197 | }; | ||
198 | |||
199 | partition@800000 { | ||
200 | label = "minirootfs"; | ||
201 | reg = <0x0800000 0x1000000>; | ||
202 | }; | ||
203 | |||
204 | partition@1800000 { | ||
205 | label = "jffs2"; | ||
206 | reg = <0x1800000 0x6800000>; | ||
207 | }; | ||
208 | }; | ||
209 | |||
211 | &mdio { | 210 | &mdio { |
212 | status = "okay"; | 211 | status = "okay"; |
213 | 212 | ||
diff --git a/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi b/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi index 06267a91de38..e3f915defd3d 100644 --- a/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi | |||
@@ -27,49 +27,6 @@ | |||
27 | nr-ports = <2>; | 27 | nr-ports = <2>; |
28 | }; | 28 | }; |
29 | 29 | ||
30 | nand@3000000 { | ||
31 | status = "okay"; | ||
32 | chip-delay = <35>; | ||
33 | |||
34 | partition@0 { | ||
35 | label = "uboot"; | ||
36 | reg = <0x0000000 0x0100000>; | ||
37 | read-only; | ||
38 | }; | ||
39 | partition@100000 { | ||
40 | label = "uboot_env"; | ||
41 | reg = <0x0100000 0x0080000>; | ||
42 | }; | ||
43 | partition@180000 { | ||
44 | label = "key_store"; | ||
45 | reg = <0x0180000 0x0080000>; | ||
46 | }; | ||
47 | partition@200000 { | ||
48 | label = "info"; | ||
49 | reg = <0x0200000 0x0080000>; | ||
50 | }; | ||
51 | partition@280000 { | ||
52 | label = "etc"; | ||
53 | reg = <0x0280000 0x0a00000>; | ||
54 | }; | ||
55 | partition@c80000 { | ||
56 | label = "kernel_1"; | ||
57 | reg = <0x0c80000 0x0a00000>; | ||
58 | }; | ||
59 | partition@1680000 { | ||
60 | label = "rootfs1"; | ||
61 | reg = <0x1680000 0x2fc0000>; | ||
62 | }; | ||
63 | partition@4640000 { | ||
64 | label = "kernel_2"; | ||
65 | reg = <0x4640000 0x0a00000>; | ||
66 | }; | ||
67 | partition@5040000 { | ||
68 | label = "rootfs2"; | ||
69 | reg = <0x5040000 0x2fc0000>; | ||
70 | }; | ||
71 | }; | ||
72 | |||
73 | pcie-controller { | 30 | pcie-controller { |
74 | status = "okay"; | 31 | status = "okay"; |
75 | 32 | ||
@@ -105,3 +62,46 @@ | |||
105 | }; | 62 | }; |
106 | }; | 63 | }; |
107 | }; | 64 | }; |
65 | |||
66 | &nand { | ||
67 | status = "okay"; | ||
68 | chip-delay = <35>; | ||
69 | |||
70 | partition@0 { | ||
71 | label = "uboot"; | ||
72 | reg = <0x0000000 0x0100000>; | ||
73 | read-only; | ||
74 | }; | ||
75 | partition@100000 { | ||
76 | label = "uboot_env"; | ||
77 | reg = <0x0100000 0x0080000>; | ||
78 | }; | ||
79 | partition@180000 { | ||
80 | label = "key_store"; | ||
81 | reg = <0x0180000 0x0080000>; | ||
82 | }; | ||
83 | partition@200000 { | ||
84 | label = "info"; | ||
85 | reg = <0x0200000 0x0080000>; | ||
86 | }; | ||
87 | partition@280000 { | ||
88 | label = "etc"; | ||
89 | reg = <0x0280000 0x0a00000>; | ||
90 | }; | ||
91 | partition@c80000 { | ||
92 | label = "kernel_1"; | ||
93 | reg = <0x0c80000 0x0a00000>; | ||
94 | }; | ||
95 | partition@1680000 { | ||
96 | label = "rootfs1"; | ||
97 | reg = <0x1680000 0x2fc0000>; | ||
98 | }; | ||
99 | partition@4640000 { | ||
100 | label = "kernel_2"; | ||
101 | reg = <0x4640000 0x0a00000>; | ||
102 | }; | ||
103 | partition@5040000 { | ||
104 | label = "rootfs2"; | ||
105 | reg = <0x5040000 0x2fc0000>; | ||
106 | }; | ||
107 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-nsa310.dts b/arch/arm/boot/dts/kirkwood-nsa310.dts index 7aeae0c2c1f4..b5418bcaecce 100644 --- a/arch/arm/boot/dts/kirkwood-nsa310.dts +++ b/arch/arm/boot/dts/kirkwood-nsa310.dts | |||
@@ -15,7 +15,6 @@ | |||
15 | }; | 15 | }; |
16 | 16 | ||
17 | mbus { | 17 | mbus { |
18 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
19 | pcie-controller { | 18 | pcie-controller { |
20 | status = "okay"; | 19 | status = "okay"; |
21 | 20 | ||
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts index 85ccf8d8abb1..f0e3d213604c 100644 --- a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts +++ b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts | |||
@@ -29,43 +29,6 @@ | |||
29 | pinctrl-names = "default"; | 29 | pinctrl-names = "default"; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | nand@3000000 { | ||
33 | chip-delay = <25>; | ||
34 | status = "okay"; | ||
35 | pinctrl-0 = <&pmx_nand>; | ||
36 | pinctrl-names = "default"; | ||
37 | |||
38 | partition@0 { | ||
39 | label = "uboot"; | ||
40 | reg = <0x0 0x90000>; | ||
41 | }; | ||
42 | |||
43 | partition@90000 { | ||
44 | label = "env"; | ||
45 | reg = <0x90000 0x44000>; | ||
46 | }; | ||
47 | |||
48 | partition@d4000 { | ||
49 | label = "test"; | ||
50 | reg = <0xd4000 0x24000>; | ||
51 | }; | ||
52 | |||
53 | partition@f4000 { | ||
54 | label = "conf"; | ||
55 | reg = <0xf4000 0x400000>; | ||
56 | }; | ||
57 | |||
58 | partition@4f4000 { | ||
59 | label = "linux"; | ||
60 | reg = <0x4f4000 0x1d20000>; | ||
61 | }; | ||
62 | |||
63 | partition@2214000 { | ||
64 | label = "user"; | ||
65 | reg = <0x2214000 0x1dec000>; | ||
66 | }; | ||
67 | }; | ||
68 | |||
69 | sata@80000 { | 32 | sata@80000 { |
70 | nr-ports = <1>; | 33 | nr-ports = <1>; |
71 | status = "okay"; | 34 | status = "okay"; |
@@ -167,6 +130,43 @@ | |||
167 | }; | 130 | }; |
168 | }; | 131 | }; |
169 | 132 | ||
133 | &nand { | ||
134 | chip-delay = <25>; | ||
135 | status = "okay"; | ||
136 | pinctrl-0 = <&pmx_nand>; | ||
137 | pinctrl-names = "default"; | ||
138 | |||
139 | partition@0 { | ||
140 | label = "uboot"; | ||
141 | reg = <0x0 0x90000>; | ||
142 | }; | ||
143 | |||
144 | partition@90000 { | ||
145 | label = "env"; | ||
146 | reg = <0x90000 0x44000>; | ||
147 | }; | ||
148 | |||
149 | partition@d4000 { | ||
150 | label = "test"; | ||
151 | reg = <0xd4000 0x24000>; | ||
152 | }; | ||
153 | |||
154 | partition@f4000 { | ||
155 | label = "conf"; | ||
156 | reg = <0xf4000 0x400000>; | ||
157 | }; | ||
158 | |||
159 | partition@4f4000 { | ||
160 | label = "linux"; | ||
161 | reg = <0x4f4000 0x1d20000>; | ||
162 | }; | ||
163 | |||
164 | partition@2214000 { | ||
165 | label = "user"; | ||
166 | reg = <0x2214000 0x1dec000>; | ||
167 | }; | ||
168 | }; | ||
169 | |||
170 | &mdio { | 170 | &mdio { |
171 | status = "okay"; | 171 | status = "okay"; |
172 | 172 | ||
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts new file mode 100644 index 000000000000..851fb2a60f20 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts | |||
@@ -0,0 +1,223 @@ | |||
1 | /* | ||
2 | * Device Tree file for OpenBlocks A7 board | ||
3 | * | ||
4 | * Copyright (C) 2013 Free Electrons | ||
5 | * | ||
6 | * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||
7 | * | ||
8 | * This file is licensed under the terms of the GNU General Public | ||
9 | * License version 2. This program is licensed "as is" without any | ||
10 | * warranty of any kind, whether express or implied. | ||
11 | */ | ||
12 | |||
13 | /dts-v1/; | ||
14 | |||
15 | #include "kirkwood.dtsi" | ||
16 | #include "kirkwood-6282.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "Plat'Home OpenBlocksA7"; | ||
20 | compatible = "plathome,openblocks-a7", "marvell,kirkwood-88f6283", "marvell,kirkwood"; | ||
21 | |||
22 | memory { | ||
23 | device_type = "memory"; | ||
24 | reg = <0x00000000 0x40000000>; /* 1 GB */ | ||
25 | }; | ||
26 | |||
27 | chosen { | ||
28 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
29 | }; | ||
30 | |||
31 | ocp@f1000000 { | ||
32 | serial@12000 { | ||
33 | status = "ok"; | ||
34 | pinctrl-0 = <&pmx_uart0>; | ||
35 | pinctrl-names = "default"; | ||
36 | }; | ||
37 | |||
38 | serial@12100 { | ||
39 | status = "ok"; | ||
40 | pinctrl-0 = <&pmx_uart1>; | ||
41 | pinctrl-names = "default"; | ||
42 | }; | ||
43 | |||
44 | sata@80000 { | ||
45 | nr-ports = <1>; | ||
46 | status = "okay"; | ||
47 | }; | ||
48 | |||
49 | i2c@11100 { | ||
50 | status = "okay"; | ||
51 | pinctrl-0 = <&pmx_twsi1>; | ||
52 | pinctrl-names = "default"; | ||
53 | |||
54 | s24c02: s24c02@50 { | ||
55 | compatible = "24c02"; | ||
56 | reg = <0x50>; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | pinctrl: pinctrl@10000 { | ||
61 | pinctrl-0 = <&pmx_dip_switches &pmx_gpio_header>; | ||
62 | pinctrl-names = "default"; | ||
63 | |||
64 | pmx_uart0: pmx-uart0 { | ||
65 | marvell,pins = "mpp10", "mpp11", "mpp15", | ||
66 | "mpp16"; | ||
67 | marvell,function = "uart0"; | ||
68 | }; | ||
69 | |||
70 | pmx_uart1: pmx-uart1 { | ||
71 | marvell,pins = "mpp13", "mpp14", "mpp8", | ||
72 | "mpp9"; | ||
73 | marvell,function = "uart1"; | ||
74 | }; | ||
75 | |||
76 | pmx_sysrst: pmx-sysrst { | ||
77 | marvell,pins = "mpp6"; | ||
78 | marvell,function = "sysrst"; | ||
79 | }; | ||
80 | |||
81 | pmx_dip_switches: pmx-dip-switches { | ||
82 | marvell,pins = "mpp44", "mpp45", "mpp46", "mpp47"; | ||
83 | marvell,function = "gpio"; | ||
84 | }; | ||
85 | |||
86 | /* | ||
87 | * Accessible on connector J202. The MPP | ||
88 | * listed below are pin 1-7, pin 8 is unused, | ||
89 | * pin 9 is external reset input and pin 10 is | ||
90 | * ground. | ||
91 | */ | ||
92 | pmx_gpio_header: pmx-gpio-header { | ||
93 | marvell,pins = "mpp17", "mpp7", "mpp29", "mpp28", | ||
94 | "mpp35", "mpp34", "mpp40"; | ||
95 | marvell,function = "gpio"; | ||
96 | }; | ||
97 | |||
98 | pmx_gpio_init: pmx-init { | ||
99 | marvell,pins = "mpp38"; | ||
100 | marvell,function = "gpio"; | ||
101 | }; | ||
102 | |||
103 | pmx_usb_oc: pmx-usb-oc { | ||
104 | marvell,pins = "mpp39"; | ||
105 | marvell,function = "gpio"; | ||
106 | }; | ||
107 | |||
108 | pmx_leds: pmx-leds { | ||
109 | marvell,pins = "mpp41", "mpp42", "mpp43"; | ||
110 | marvell,function = "gpio"; | ||
111 | }; | ||
112 | |||
113 | pmx_ge1: pmx-ge1 { | ||
114 | marvell,pins = "mpp20", "mpp21", "mpp22", "mpp23", | ||
115 | "mpp24", "mpp25", "mpp26", "mpp27", | ||
116 | "mpp30", "mpp31", "mpp32", "mpp33"; | ||
117 | marvell,function = "ge1"; | ||
118 | }; | ||
119 | }; | ||
120 | }; | ||
121 | |||
122 | gpio-leds { | ||
123 | compatible = "gpio-leds"; | ||
124 | pinctrl-0 = <&pmx_leds>; | ||
125 | pinctrl-names = "default"; | ||
126 | |||
127 | led-red { | ||
128 | label = "obsa7:red:stat"; | ||
129 | gpios = <&gpio1 9 1>; | ||
130 | }; | ||
131 | |||
132 | led-green { | ||
133 | label = "obsa7:green:stat"; | ||
134 | gpios = <&gpio1 10 1>; | ||
135 | }; | ||
136 | |||
137 | led-yellow { | ||
138 | label = "obsa7:yellow:stat"; | ||
139 | gpios = <&gpio1 11 1>; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | gpio_keys { | ||
144 | compatible = "gpio-keys"; | ||
145 | pinctrl-0 = <&pmx_gpio_init>; | ||
146 | pinctrl-names = "default"; | ||
147 | #address-cells = <1>; | ||
148 | #size-cells = <0>; | ||
149 | |||
150 | button@1 { | ||
151 | label = "Init Button"; | ||
152 | linux,code = <116>; | ||
153 | gpios = <&gpio1 6 0>; | ||
154 | }; | ||
155 | }; | ||
156 | }; | ||
157 | |||
158 | &nand { | ||
159 | chip-delay = <25>; | ||
160 | status = "okay"; | ||
161 | pinctrl-0 = <&pmx_nand>; | ||
162 | pinctrl-names = "default"; | ||
163 | |||
164 | partition@0 { | ||
165 | label = "uboot"; | ||
166 | reg = <0x0 0x1c0000>; | ||
167 | }; | ||
168 | |||
169 | partition@1c0000 { | ||
170 | label = "env"; | ||
171 | reg = <0x1c0000 0x2c0000>; | ||
172 | }; | ||
173 | |||
174 | partition@480000 { | ||
175 | label = "test"; | ||
176 | reg = <0x480000 0x160000>; | ||
177 | }; | ||
178 | |||
179 | partition@5e0000 { | ||
180 | label = "conf"; | ||
181 | reg = <0x5e0000 0x540000>; | ||
182 | }; | ||
183 | |||
184 | partition@b20000 { | ||
185 | label = "linux"; | ||
186 | reg = <0xb20000 0x3d40000>; | ||
187 | }; | ||
188 | |||
189 | partition@4860000 { | ||
190 | label = "user"; | ||
191 | reg = <0x4860000 0xb7a0000>; | ||
192 | }; | ||
193 | }; | ||
194 | |||
195 | &mdio { | ||
196 | status = "okay"; | ||
197 | |||
198 | ethphy0: ethernet-phy@0 { | ||
199 | device_type = "ethernet-phy"; | ||
200 | reg = <0>; | ||
201 | }; | ||
202 | |||
203 | ethphy1: ethernet-phy@1 { | ||
204 | device_type = "ethernet-phy"; | ||
205 | reg = <1>; | ||
206 | }; | ||
207 | }; | ||
208 | |||
209 | ð0 { | ||
210 | status = "okay"; | ||
211 | ethernet0-port@0 { | ||
212 | phy-handle = <ðphy0>; | ||
213 | }; | ||
214 | }; | ||
215 | |||
216 | ð1 { | ||
217 | status = "okay"; | ||
218 | pinctrl-0 = <&pmx_ge1>; | ||
219 | pinctrl-names = "default"; | ||
220 | ethernet1-port@0 { | ||
221 | phy-handle = <ðphy1>; | ||
222 | }; | ||
223 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi b/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi index 5696b630b70b..1173d7fb31b2 100644 --- a/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi | |||
@@ -48,27 +48,6 @@ | |||
48 | pinctrl-names = "default"; | 48 | pinctrl-names = "default"; |
49 | status = "okay"; | 49 | status = "okay"; |
50 | }; | 50 | }; |
51 | |||
52 | nand@3000000 { | ||
53 | pinctrl-0 = <&pmx_nand>; | ||
54 | pinctrl-names = "default"; | ||
55 | status = "okay"; | ||
56 | |||
57 | partition@0 { | ||
58 | label = "u-boot"; | ||
59 | reg = <0x0000000 0x100000>; | ||
60 | }; | ||
61 | |||
62 | partition@100000 { | ||
63 | label = "uImage"; | ||
64 | reg = <0x0100000 0x400000>; | ||
65 | }; | ||
66 | |||
67 | partition@500000 { | ||
68 | label = "root"; | ||
69 | reg = <0x0500000 0x1fb00000>; | ||
70 | }; | ||
71 | }; | ||
72 | }; | 51 | }; |
73 | 52 | ||
74 | regulators { | 53 | regulators { |
@@ -92,6 +71,27 @@ | |||
92 | }; | 71 | }; |
93 | }; | 72 | }; |
94 | 73 | ||
74 | &nand { | ||
75 | pinctrl-0 = <&pmx_nand>; | ||
76 | pinctrl-names = "default"; | ||
77 | status = "okay"; | ||
78 | |||
79 | partition@0 { | ||
80 | label = "u-boot"; | ||
81 | reg = <0x0000000 0x100000>; | ||
82 | }; | ||
83 | |||
84 | partition@100000 { | ||
85 | label = "uImage"; | ||
86 | reg = <0x0100000 0x400000>; | ||
87 | }; | ||
88 | |||
89 | partition@500000 { | ||
90 | label = "root"; | ||
91 | reg = <0x0500000 0x1fb00000>; | ||
92 | }; | ||
93 | }; | ||
94 | |||
95 | &mdio { | 95 | &mdio { |
96 | status = "okay"; | 96 | status = "okay"; |
97 | 97 | ||
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts index 30842b4ff293..320da677b984 100644 --- a/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/arch/arm/boot/dts/kirkwood-topkick.dts | |||
@@ -90,37 +90,6 @@ | |||
90 | pinctrl-names = "default"; | 90 | pinctrl-names = "default"; |
91 | }; | 91 | }; |
92 | 92 | ||
93 | nand@3000000 { | ||
94 | status = "okay"; | ||
95 | pinctrl-0 = <&pmx_nand>; | ||
96 | pinctrl-names = "default"; | ||
97 | |||
98 | partition@0 { | ||
99 | label = "u-boot"; | ||
100 | reg = <0x0000000 0x180000>; | ||
101 | }; | ||
102 | |||
103 | partition@180000 { | ||
104 | label = "u-boot env"; | ||
105 | reg = <0x0180000 0x20000>; | ||
106 | }; | ||
107 | |||
108 | partition@200000 { | ||
109 | label = "uImage"; | ||
110 | reg = <0x0200000 0x600000>; | ||
111 | }; | ||
112 | |||
113 | partition@800000 { | ||
114 | label = "uInitrd"; | ||
115 | reg = <0x0800000 0x1000000>; | ||
116 | }; | ||
117 | |||
118 | partition@1800000 { | ||
119 | label = "rootfs"; | ||
120 | reg = <0x1800000 0xe800000>; | ||
121 | }; | ||
122 | }; | ||
123 | |||
124 | sata@80000 { | 93 | sata@80000 { |
125 | status = "okay"; | 94 | status = "okay"; |
126 | nr-ports = <1>; | 95 | nr-ports = <1>; |
@@ -204,6 +173,37 @@ | |||
204 | }; | 173 | }; |
205 | }; | 174 | }; |
206 | 175 | ||
176 | &nand { | ||
177 | status = "okay"; | ||
178 | pinctrl-0 = <&pmx_nand>; | ||
179 | pinctrl-names = "default"; | ||
180 | |||
181 | partition@0 { | ||
182 | label = "u-boot"; | ||
183 | reg = <0x0000000 0x180000>; | ||
184 | }; | ||
185 | |||
186 | partition@180000 { | ||
187 | label = "u-boot env"; | ||
188 | reg = <0x0180000 0x20000>; | ||
189 | }; | ||
190 | |||
191 | partition@200000 { | ||
192 | label = "uImage"; | ||
193 | reg = <0x0200000 0x600000>; | ||
194 | }; | ||
195 | |||
196 | partition@800000 { | ||
197 | label = "uInitrd"; | ||
198 | reg = <0x0800000 0x1000000>; | ||
199 | }; | ||
200 | |||
201 | partition@1800000 { | ||
202 | label = "rootfs"; | ||
203 | reg = <0x1800000 0xe800000>; | ||
204 | }; | ||
205 | }; | ||
206 | |||
207 | &mdio { | 207 | &mdio { |
208 | status = "okay"; | 208 | status = "okay"; |
209 | 209 | ||
diff --git a/arch/arm/boot/dts/kirkwood-ts219-6282.dts b/arch/arm/boot/dts/kirkwood-ts219-6282.dts index 9efcd2dc79d3..345562f75891 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6282.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6282.dts | |||
@@ -6,7 +6,6 @@ | |||
6 | 6 | ||
7 | / { | 7 | / { |
8 | mbus { | 8 | mbus { |
9 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>; | ||
10 | pcie-controller { | 9 | pcie-controller { |
11 | status = "okay"; | 10 | status = "okay"; |
12 | 11 | ||
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 1335b2e1bed4..8b73c80f1dad 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
@@ -28,16 +28,43 @@ | |||
28 | compatible = "marvell,kirkwood-mbus", "simple-bus"; | 28 | compatible = "marvell,kirkwood-mbus", "simple-bus"; |
29 | #address-cells = <2>; | 29 | #address-cells = <2>; |
30 | #size-cells = <1>; | 30 | #size-cells = <1>; |
31 | /* If a board file needs to change this ranges it must replace it completely */ | ||
32 | ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 /* internal-regs */ | ||
33 | MBUS_ID(0x01, 0x2f) 0 0xf4000000 0x10000 /* nand flash */ | ||
34 | MBUS_ID(0x03, 0x01) 0 0xf5000000 0x10000 /* crypto sram */ | ||
35 | >; | ||
31 | controller = <&mbusc>; | 36 | controller = <&mbusc>; |
32 | pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */ | 37 | pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */ |
33 | pcie-io-aperture = <0xf2000000 0x100000>; /* 1 MiB I/O space */ | 38 | pcie-io-aperture = <0xf2000000 0x100000>; /* 1 MiB I/O space */ |
39 | |||
40 | crypto@0301 { | ||
41 | compatible = "marvell,orion-crypto"; | ||
42 | reg = <MBUS_ID(0xf0, 0x01) 0x30000 0x10000>, | ||
43 | <MBUS_ID(0x03, 0x01) 0 0x800>; | ||
44 | reg-names = "regs", "sram"; | ||
45 | interrupts = <22>; | ||
46 | clocks = <&gate_clk 17>; | ||
47 | status = "okay"; | ||
48 | }; | ||
49 | |||
50 | nand: nand@012f { | ||
51 | #address-cells = <1>; | ||
52 | #size-cells = <1>; | ||
53 | cle = <0>; | ||
54 | ale = <1>; | ||
55 | bank-width = <1>; | ||
56 | compatible = "marvell,orion-nand"; | ||
57 | reg = <MBUS_ID(0x01, 0x2f) 0 0x400>; | ||
58 | chip-delay = <25>; | ||
59 | /* set partition map and/or chip-delay in board dts */ | ||
60 | clocks = <&gate_clk 7>; | ||
61 | status = "disabled"; | ||
62 | }; | ||
34 | }; | 63 | }; |
35 | 64 | ||
36 | ocp@f1000000 { | 65 | ocp@f1000000 { |
37 | compatible = "simple-bus"; | 66 | compatible = "simple-bus"; |
38 | ranges = <0x00000000 0xf1000000 0x0100000 | 67 | ranges = <0x00000000 0xf1000000 0x0100000>; |
39 | 0xf4000000 0xf4000000 0x0000400 | ||
40 | 0xf5000000 0xf5000000 0x0000400>; | ||
41 | #address-cells = <1>; | 68 | #address-cells = <1>; |
42 | #size-cells = <1>; | 69 | #size-cells = <1>; |
43 | 70 | ||
@@ -193,20 +220,6 @@ | |||
193 | status = "okay"; | 220 | status = "okay"; |
194 | }; | 221 | }; |
195 | 222 | ||
196 | nand@3000000 { | ||
197 | #address-cells = <1>; | ||
198 | #size-cells = <1>; | ||
199 | cle = <0>; | ||
200 | ale = <1>; | ||
201 | bank-width = <1>; | ||
202 | compatible = "marvell,orion-nand"; | ||
203 | reg = <0xf4000000 0x400>; | ||
204 | chip-delay = <25>; | ||
205 | /* set partition map and/or chip-delay in board dts */ | ||
206 | clocks = <&gate_clk 7>; | ||
207 | status = "disabled"; | ||
208 | }; | ||
209 | |||
210 | i2c@11000 { | 223 | i2c@11000 { |
211 | compatible = "marvell,mv64xxx-i2c"; | 224 | compatible = "marvell,mv64xxx-i2c"; |
212 | reg = <0x11000 0x20>; | 225 | reg = <0x11000 0x20>; |
@@ -218,16 +231,6 @@ | |||
218 | status = "disabled"; | 231 | status = "disabled"; |
219 | }; | 232 | }; |
220 | 233 | ||
221 | crypto@30000 { | ||
222 | compatible = "marvell,orion-crypto"; | ||
223 | reg = <0x30000 0x10000>, | ||
224 | <0xf5000000 0x800>; | ||
225 | reg-names = "regs", "sram"; | ||
226 | interrupts = <22>; | ||
227 | clocks = <&gate_clk 17>; | ||
228 | status = "okay"; | ||
229 | }; | ||
230 | |||
231 | mdio: mdio-bus@72004 { | 234 | mdio: mdio-bus@72004 { |
232 | compatible = "marvell,orion-mdio"; | 235 | compatible = "marvell,orion-mdio"; |
233 | #address-cells = <1>; | 236 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/mxs-pinfunc.h b/arch/arm/boot/dts/mxs-pinfunc.h new file mode 100644 index 000000000000..c6da987b20cb --- /dev/null +++ b/arch/arm/boot/dts/mxs-pinfunc.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * Header providing constants for i.MX28 pinctrl bindings. | ||
3 | * | ||
4 | * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de> | ||
5 | * | ||
6 | * The code contained herein is licensed under the GNU General Public | ||
7 | * License. You may obtain a copy of the GNU General Public License | ||
8 | * Version 2 at the following locations: | ||
9 | * | ||
10 | * http://www.opensource.org/licenses/gpl-license.html | ||
11 | * http://www.gnu.org/copyleft/gpl.html | ||
12 | */ | ||
13 | |||
14 | #ifndef __DT_BINDINGS_MXS_PINCTRL_H__ | ||
15 | #define __DT_BINDINGS_MXS_PINCTRL_H__ | ||
16 | |||
17 | /* fsl,drive-strength property */ | ||
18 | #define MXS_DRIVE_4mA 0 | ||
19 | #define MXS_DRIVE_8mA 1 | ||
20 | #define MXS_DRIVE_12mA 2 | ||
21 | #define MXS_DRIVE_16mA 3 | ||
22 | |||
23 | /* fsl,voltage property */ | ||
24 | #define MXS_VOLTAGE_LOW 0 | ||
25 | #define MXS_VOLTAGE_HIGH 1 | ||
26 | |||
27 | /* fsl,pull-up property */ | ||
28 | #define MXS_PULL_DISABLE 0 | ||
29 | #define MXS_PULL_ENABLE 1 | ||
30 | |||
31 | #endif /* __DT_BINDINGS_MXS_PINCTRL_H__ */ | ||
diff --git a/arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi b/arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi new file mode 100644 index 000000000000..9c18adf788f7 --- /dev/null +++ b/arch/arm/boot/dts/omap-gpmc-smsc911x.dtsi | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * Common file for GPMC connected smsc911x on omaps | ||
3 | * | ||
4 | * Note that the board specifc DTS file needs to specify | ||
5 | * ranges, pinctrl, reg, interrupt parent and interrupts. | ||
6 | */ | ||
7 | |||
8 | / { | ||
9 | vddvario: regulator-vddvario { | ||
10 | compatible = "regulator-fixed"; | ||
11 | regulator-name = "vddvario"; | ||
12 | regulator-always-on; | ||
13 | }; | ||
14 | |||
15 | vdd33a: regulator-vdd33a { | ||
16 | compatible = "regulator-fixed"; | ||
17 | regulator-name = "vdd33a"; | ||
18 | regulator-always-on; | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | &gpmc { | ||
23 | ethernet@gpmc { | ||
24 | compatible = "smsc,lan9221", "smsc,lan9115"; | ||
25 | bank-width = <2>; | ||
26 | gpmc,mux-add-data; | ||
27 | gpmc,cs-on-ns = <0>; | ||
28 | gpmc,cs-rd-off-ns = <186>; | ||
29 | gpmc,cs-wr-off-ns = <186>; | ||
30 | gpmc,adv-on-ns = <12>; | ||
31 | gpmc,adv-rd-off-ns = <48>; | ||
32 | gpmc,adv-wr-off-ns = <48>; | ||
33 | gpmc,oe-on-ns = <54>; | ||
34 | gpmc,oe-off-ns = <168>; | ||
35 | gpmc,we-on-ns = <54>; | ||
36 | gpmc,we-off-ns = <168>; | ||
37 | gpmc,rd-cycle-ns = <186>; | ||
38 | gpmc,wr-cycle-ns = <186>; | ||
39 | gpmc,access-ns = <114>; | ||
40 | gpmc,page-burst-access-ns = <6>; | ||
41 | gpmc,bus-turnaround-ns = <12>; | ||
42 | gpmc,cycle2cycle-delay-ns = <18>; | ||
43 | gpmc,wr-data-mux-bus-ns = <90>; | ||
44 | gpmc,wr-access-ns = <186>; | ||
45 | gpmc,cycle2cycle-samecsen; | ||
46 | gpmc,cycle2cycle-diffcsen; | ||
47 | vmmc-supply = <&vddvario>; | ||
48 | vmmc_aux-supply = <&vdd33a>; | ||
49 | reg-io-width = <4>; | ||
50 | smsc,save-mac-address; | ||
51 | }; | ||
52 | }; | ||
diff --git a/arch/arm/boot/dts/omap-zoom-common.dtsi b/arch/arm/boot/dts/omap-zoom-common.dtsi new file mode 100644 index 000000000000..b0ee342598f0 --- /dev/null +++ b/arch/arm/boot/dts/omap-zoom-common.dtsi | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Common features on the Zoom debug board | ||
3 | */ | ||
4 | |||
5 | #include "omap-gpmc-smsc911x.dtsi" | ||
6 | |||
7 | &gpmc { | ||
8 | ranges = <3 0 0x10000000 0x00000400>, | ||
9 | <7 0 0x2c000000 0x01000000>; | ||
10 | |||
11 | /* | ||
12 | * Four port TL16CP754C serial port on GPMC, | ||
13 | * they probably share the same GPIO IRQ | ||
14 | * REVISIT: Add timing support from slls644g.pdf | ||
15 | */ | ||
16 | 8250@3,0 { | ||
17 | compatible = "ns16550a"; | ||
18 | reg = <3 0 0x100>; | ||
19 | bank-width = <2>; | ||
20 | reg-shift = <1>; | ||
21 | reg-io-width = <1>; | ||
22 | interrupt-parent = <&gpio4>; | ||
23 | interrupts = <6 IRQ_TYPE_EDGE_RISING>; /* gpio102 */ | ||
24 | clock-frequency = <1843200>; | ||
25 | current-speed = <115200>; | ||
26 | }; | ||
27 | |||
28 | ethernet@gpmc { | ||
29 | reg = <7 0 0xff>; | ||
30 | interrupt-parent = <&gpio5>; | ||
31 | interrupts = <30 IRQ_TYPE_LEVEL_LOW>; /* gpio158 */ | ||
32 | }; | ||
33 | }; | ||
diff --git a/arch/arm/boot/dts/omap2420-h4.dts b/arch/arm/boot/dts/omap2420-h4.dts index 224c08f472f4..34cdecb4fdda 100644 --- a/arch/arm/boot/dts/omap2420-h4.dts +++ b/arch/arm/boot/dts/omap2420-h4.dts | |||
@@ -50,15 +50,15 @@ | |||
50 | label = "bootloader"; | 50 | label = "bootloader"; |
51 | reg = <0 0x20000>; | 51 | reg = <0 0x20000>; |
52 | }; | 52 | }; |
53 | partition@0x20000 { | 53 | partition@20000 { |
54 | label = "params"; | 54 | label = "params"; |
55 | reg = <0x20000 0x20000>; | 55 | reg = <0x20000 0x20000>; |
56 | }; | 56 | }; |
57 | partition@0x40000 { | 57 | partition@40000 { |
58 | label = "kernel"; | 58 | label = "kernel"; |
59 | reg = <0x40000 0x200000>; | 59 | reg = <0x40000 0x200000>; |
60 | }; | 60 | }; |
61 | partition@0x240000 { | 61 | partition@240000 { |
62 | label = "file-system"; | 62 | label = "file-system"; |
63 | reg = <0x240000 0x3dc0000>; | 63 | reg = <0x240000 0x3dc0000>; |
64 | }; | 64 | }; |
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts index ba4dcfc6b721..31a632f7effb 100644 --- a/arch/arm/boot/dts/omap3-beagle-xm.dts +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts | |||
@@ -69,6 +69,23 @@ | |||
69 | }; | 69 | }; |
70 | 70 | ||
71 | }; | 71 | }; |
72 | |||
73 | /* HS USB Port 2 Power */ | ||
74 | hsusb2_power: hsusb2_power_reg { | ||
75 | compatible = "regulator-fixed"; | ||
76 | regulator-name = "hsusb2_vbus"; | ||
77 | regulator-min-microvolt = <3300000>; | ||
78 | regulator-max-microvolt = <3300000>; | ||
79 | gpio = <&twl_gpio 18 0>; /* GPIO LEDA */ | ||
80 | startup-delay-us = <70000>; | ||
81 | }; | ||
82 | |||
83 | /* HS USB Host PHY on PORT 2 */ | ||
84 | hsusb2_phy: hsusb2_phy { | ||
85 | compatible = "usb-nop-xceiv"; | ||
86 | reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */ | ||
87 | vcc-supply = <&hsusb2_power>; | ||
88 | }; | ||
72 | }; | 89 | }; |
73 | 90 | ||
74 | &omap3_pmx_wkup { | 91 | &omap3_pmx_wkup { |
@@ -79,6 +96,37 @@ | |||
79 | }; | 96 | }; |
80 | }; | 97 | }; |
81 | 98 | ||
99 | &omap3_pmx_core { | ||
100 | pinctrl-names = "default"; | ||
101 | pinctrl-0 = < | ||
102 | &hsusbb2_pins | ||
103 | >; | ||
104 | |||
105 | uart3_pins: pinmux_uart3_pins { | ||
106 | pinctrl-single,pins = < | ||
107 | 0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ | ||
108 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */ | ||
109 | >; | ||
110 | }; | ||
111 | |||
112 | hsusbb2_pins: pinmux_hsusbb2_pins { | ||
113 | pinctrl-single,pins = < | ||
114 | 0x5c0 (PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ | ||
115 | 0x5c2 (PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ | ||
116 | 0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ | ||
117 | 0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ | ||
118 | 0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ | ||
119 | 0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ | ||
120 | 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */ | ||
121 | 0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */ | ||
122 | 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */ | ||
123 | 0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */ | ||
124 | 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */ | ||
125 | 0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */ | ||
126 | >; | ||
127 | }; | ||
128 | }; | ||
129 | |||
82 | &i2c1 { | 130 | &i2c1 { |
83 | clock-frequency = <2600000>; | 131 | clock-frequency = <2600000>; |
84 | 132 | ||
@@ -150,15 +198,6 @@ | |||
150 | power = <50>; | 198 | power = <50>; |
151 | }; | 199 | }; |
152 | 200 | ||
153 | &omap3_pmx_core { | ||
154 | uart3_pins: pinmux_uart3_pins { | ||
155 | pinctrl-single,pins = < | ||
156 | 0x16e (PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ | ||
157 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx OUTPUT | MODE0 */ | ||
158 | >; | ||
159 | }; | ||
160 | }; | ||
161 | |||
162 | &uart3 { | 201 | &uart3 { |
163 | pinctrl-names = "default"; | 202 | pinctrl-names = "default"; |
164 | pinctrl-0 = <&uart3_pins>; | 203 | pinctrl-0 = <&uart3_pins>; |
@@ -168,3 +207,11 @@ | |||
168 | pinctrl-names = "default"; | 207 | pinctrl-names = "default"; |
169 | pinctrl-0 = <&gpio1_pins>; | 208 | pinctrl-0 = <&gpio1_pins>; |
170 | }; | 209 | }; |
210 | |||
211 | &usbhshost { | ||
212 | port2-mode = "ehci-phy"; | ||
213 | }; | ||
214 | |||
215 | &usbhsehci { | ||
216 | phys = <0 &hsusb2_phy>; | ||
217 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts index dfd83103657a..fa532aaacc68 100644 --- a/arch/arm/boot/dts/omap3-beagle.dts +++ b/arch/arm/boot/dts/omap3-beagle.dts | |||
@@ -44,17 +44,6 @@ | |||
44 | }; | 44 | }; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | /* HS USB Port 2 RESET */ | ||
48 | hsusb2_reset: hsusb2_reset_reg { | ||
49 | compatible = "regulator-fixed"; | ||
50 | regulator-name = "hsusb2_reset"; | ||
51 | regulator-min-microvolt = <3300000>; | ||
52 | regulator-max-microvolt = <3300000>; | ||
53 | gpio = <&gpio5 19 0>; /* gpio_147 */ | ||
54 | startup-delay-us = <70000>; | ||
55 | enable-active-high; | ||
56 | }; | ||
57 | |||
58 | /* HS USB Port 2 Power */ | 47 | /* HS USB Port 2 Power */ |
59 | hsusb2_power: hsusb2_power_reg { | 48 | hsusb2_power: hsusb2_power_reg { |
60 | compatible = "regulator-fixed"; | 49 | compatible = "regulator-fixed"; |
@@ -68,7 +57,7 @@ | |||
68 | /* HS USB Host PHY on PORT 2 */ | 57 | /* HS USB Host PHY on PORT 2 */ |
69 | hsusb2_phy: hsusb2_phy { | 58 | hsusb2_phy: hsusb2_phy { |
70 | compatible = "usb-nop-xceiv"; | 59 | compatible = "usb-nop-xceiv"; |
71 | reset-supply = <&hsusb2_reset>; | 60 | reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; /* gpio_147 */ |
72 | vcc-supply = <&hsusb2_power>; | 61 | vcc-supply = <&hsusb2_power>; |
73 | }; | 62 | }; |
74 | 63 | ||
@@ -101,18 +90,18 @@ | |||
101 | 90 | ||
102 | hsusbb2_pins: pinmux_hsusbb2_pins { | 91 | hsusbb2_pins: pinmux_hsusbb2_pins { |
103 | pinctrl-single,pins = < | 92 | pinctrl-single,pins = < |
104 | 0x5c0 (PIN_OUTPUT | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_clk */ | 93 | 0x5c0 (PIN_OUTPUT | MUX_MODE3) /* etk_d10.hsusb2_clk */ |
105 | 0x5c2 (PIN_OUTPUT | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_stp */ | 94 | 0x5c2 (PIN_OUTPUT | MUX_MODE3) /* etk_d11.hsusb2_stp */ |
106 | 0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dir */ | 95 | 0x5c4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d12.hsusb2_dir */ |
107 | 0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_nxt */ | 96 | 0x5c6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d13.hsusb2_nxt */ |
108 | 0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat0 */ | 97 | 0x5c8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d14.hsusb2_data0 */ |
109 | 0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat1 */ | 98 | 0x5cA (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d15.hsusb2_data1 */ |
110 | 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat2 */ | 99 | 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi1_cs3.hsusb2_data2 */ |
111 | 0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat3 */ | 100 | 0x1a6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_clk.hsusb2_data7 */ |
112 | 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat4 */ | 101 | 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_simo.hsusb2_data4 */ |
113 | 0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat5 */ | 102 | 0x1aa (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_somi.hsusb2_data5 */ |
114 | 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat6 */ | 103 | 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs0.hsusb2_data6 */ |
115 | 0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* usbb2_ulpitll_clk.usbb1_ulpiphy_dat7 */ | 104 | 0x1ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* mcspi2_cs1.hsusb2_data3 */ |
116 | >; | 105 | >; |
117 | }; | 106 | }; |
118 | 107 | ||
@@ -180,3 +169,12 @@ | |||
180 | pinctrl-names = "default"; | 169 | pinctrl-names = "default"; |
181 | pinctrl-0 = <&gpio1_pins>; | 170 | pinctrl-0 = <&gpio1_pins>; |
182 | }; | 171 | }; |
172 | |||
173 | &usb_otg_hs { | ||
174 | interface-type = <0>; | ||
175 | usb-phy = <&usb2_phy>; | ||
176 | phys = <&usb2_phy>; | ||
177 | phy-names = "usb2-phy"; | ||
178 | mode = <3>; | ||
179 | power = <50>; | ||
180 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-devkit8000.dts b/arch/arm/boot/dts/omap3-devkit8000.dts index 7ef282795dd4..4665421bb7bc 100644 --- a/arch/arm/boot/dts/omap3-devkit8000.dts +++ b/arch/arm/boot/dts/omap3-devkit8000.dts | |||
@@ -125,7 +125,7 @@ | |||
125 | nand-bus-width = <16>; | 125 | nand-bus-width = <16>; |
126 | 126 | ||
127 | gpmc,device-nand; | 127 | gpmc,device-nand; |
128 | gpmc,sync-clki-ps = <0>; | 128 | gpmc,sync-clk-ps = <0>; |
129 | gpmc,cs-on-ns = <0>; | 129 | gpmc,cs-on-ns = <0>; |
130 | gpmc,cs-rd-off-ns = <44>; | 130 | gpmc,cs-rd-off-ns = <44>; |
131 | gpmc,cs-wr-off-ns = <44>; | 131 | gpmc,cs-wr-off-ns = <44>; |
diff --git a/arch/arm/boot/dts/omap3-evm-37xx.dts b/arch/arm/boot/dts/omap3-evm-37xx.dts new file mode 100644 index 000000000000..4df68ad3736a --- /dev/null +++ b/arch/arm/boot/dts/omap3-evm-37xx.dts | |||
@@ -0,0 +1,151 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | |||
10 | #include "omap36xx.dtsi" | ||
11 | #include "omap3-evm-common.dtsi" | ||
12 | |||
13 | |||
14 | / { | ||
15 | model = "TI OMAP37XX EVM (TMDSEVM3730)"; | ||
16 | compatible = "ti,omap3-evm-37xx", "ti,omap36xx"; | ||
17 | |||
18 | memory { | ||
19 | device_type = "memory"; | ||
20 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
21 | }; | ||
22 | |||
23 | wl12xx_vmmc: wl12xx_vmmc { | ||
24 | pinctrl-names = "default"; | ||
25 | pinctrl-0 = <&wl12xx_gpio>; | ||
26 | }; | ||
27 | }; | ||
28 | |||
29 | &omap3_pmx_core { | ||
30 | mmc1_pins: pinmux_mmc1_pins { | ||
31 | pinctrl-single,pins = < | ||
32 | 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ | ||
33 | 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ | ||
34 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ | ||
35 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ | ||
36 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ | ||
37 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ | ||
38 | 0x120 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat4.sdmmc1_dat4 */ | ||
39 | 0x122 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat5.sdmmc1_dat5 */ | ||
40 | 0x124 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat6.sdmmc1_dat6 */ | ||
41 | 0x126 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat7.sdmmc1_dat7 */ | ||
42 | >; | ||
43 | }; | ||
44 | |||
45 | /* NOTE: Clocked externally, needs INPUT also for sdmmc2_clk.sdmmc2_clk */ | ||
46 | mmc2_pins: pinmux_mmc2_pins { | ||
47 | pinctrl-single,pins = < | ||
48 | 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ | ||
49 | 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ | ||
50 | 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ | ||
51 | 0x12e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ | ||
52 | 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ | ||
53 | 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ | ||
54 | >; | ||
55 | }; | ||
56 | |||
57 | uart3_pins: pinmux_uart3_pins { | ||
58 | pinctrl-single,pins = < | ||
59 | 0x16e (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ | ||
60 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ | ||
61 | >; | ||
62 | }; | ||
63 | |||
64 | wl12xx_gpio: pinmux_wl12xx_gpio { | ||
65 | pinctrl-single,pins = < | ||
66 | 0x150 (PIN_OUTPUT | MUX_MODE4) /* uart1_cts.gpio_150 */ | ||
67 | 0x14e (PIN_INPUT | MUX_MODE4) /* uart1_rts.gpio_149 */ | ||
68 | >; | ||
69 | }; | ||
70 | |||
71 | smsc911x_pins: pinmux_smsc911x_pins { | ||
72 | pinctrl-single,pins = < | ||
73 | 0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */ | ||
74 | >; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | &mmc1 { | ||
79 | pinctrl-names = "default"; | ||
80 | pinctrl-0 = <&mmc1_pins>; | ||
81 | }; | ||
82 | |||
83 | &mmc2 { | ||
84 | pinctrl-names = "default"; | ||
85 | pinctrl-0 = <&mmc2_pins>; | ||
86 | }; | ||
87 | |||
88 | &mmc3 { | ||
89 | status = "disabled"; | ||
90 | }; | ||
91 | |||
92 | &uart3 { | ||
93 | pinctrl-names = "default"; | ||
94 | pinctrl-0 = <&uart3_pins>; | ||
95 | }; | ||
96 | |||
97 | &gpmc { | ||
98 | ranges = <0 0 0x00000000 0x20000000>, | ||
99 | <5 0 0x2c000000 0x01000000>; | ||
100 | |||
101 | nand@0,0 { | ||
102 | linux,mtd-name= "hynix,h8kds0un0mer-4em"; | ||
103 | reg = <0 0 0>; | ||
104 | nand-bus-width = <16>; | ||
105 | ti,nand-ecc-opt = "bch8"; | ||
106 | |||
107 | gpmc,sync-clk-ps = <0>; | ||
108 | gpmc,cs-on-ns = <0>; | ||
109 | gpmc,cs-rd-off-ns = <44>; | ||
110 | gpmc,cs-wr-off-ns = <44>; | ||
111 | gpmc,adv-on-ns = <6>; | ||
112 | gpmc,adv-rd-off-ns = <34>; | ||
113 | gpmc,adv-wr-off-ns = <44>; | ||
114 | gpmc,we-off-ns = <40>; | ||
115 | gpmc,oe-off-ns = <54>; | ||
116 | gpmc,access-ns = <64>; | ||
117 | gpmc,rd-cycle-ns = <82>; | ||
118 | gpmc,wr-cycle-ns = <82>; | ||
119 | gpmc,wr-access-ns = <40>; | ||
120 | gpmc,wr-data-mux-bus-ns = <0>; | ||
121 | |||
122 | #address-cells = <1>; | ||
123 | #size-cells = <1>; | ||
124 | |||
125 | partition@0 { | ||
126 | label = "X-Loader"; | ||
127 | reg = <0 0x80000>; | ||
128 | }; | ||
129 | partition@0x80000 { | ||
130 | label = "U-Boot"; | ||
131 | reg = <0x80000 0x1c0000>; | ||
132 | }; | ||
133 | partition@0x1c0000 { | ||
134 | label = "Environment"; | ||
135 | reg = <0x240000 0x40000>; | ||
136 | }; | ||
137 | partition@0x280000 { | ||
138 | label = "Kernel"; | ||
139 | reg = <0x280000 0x500000>; | ||
140 | }; | ||
141 | partition@0x780000 { | ||
142 | label = "Filesystem"; | ||
143 | reg = <0x780000 0x1f880000>; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | ethernet@gpmc { | ||
148 | pinctrl-names = "default"; | ||
149 | pinctrl-0 = <&smsc911x_pins>; | ||
150 | }; | ||
151 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-evm-common.dtsi b/arch/arm/boot/dts/omap3-evm-common.dtsi new file mode 100644 index 000000000000..3007e79c9cd6 --- /dev/null +++ b/arch/arm/boot/dts/omap3-evm-common.dtsi | |||
@@ -0,0 +1,96 @@ | |||
1 | /* | ||
2 | * Common support for omap3 EVM boards | ||
3 | */ | ||
4 | |||
5 | #include "omap-gpmc-smsc911x.dtsi" | ||
6 | |||
7 | / { | ||
8 | cpus { | ||
9 | cpu@0 { | ||
10 | cpu0-supply = <&vcc>; | ||
11 | }; | ||
12 | }; | ||
13 | |||
14 | leds { | ||
15 | compatible = "gpio-leds"; | ||
16 | ledb { | ||
17 | label = "omap3evm::ledb"; | ||
18 | gpios = <&twl_gpio 19 GPIO_ACTIVE_HIGH>; /* LEDB */ | ||
19 | linux,default-trigger = "default-on"; | ||
20 | }; | ||
21 | }; | ||
22 | |||
23 | wl12xx_vmmc: wl12xx_vmmc { | ||
24 | compatible = "regulator-fixed"; | ||
25 | regulator-name = "vwl1271"; | ||
26 | regulator-min-microvolt = <1800000>; | ||
27 | regulator-max-microvolt = <1800000>; | ||
28 | gpio = <&gpio5 22 0>; /* gpio150 */ | ||
29 | startup-delay-us = <70000>; | ||
30 | enable-active-high; | ||
31 | vin-supply = <&vmmc2>; | ||
32 | }; | ||
33 | }; | ||
34 | |||
35 | &i2c1 { | ||
36 | clock-frequency = <2600000>; | ||
37 | |||
38 | twl: twl@48 { | ||
39 | reg = <0x48>; | ||
40 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
41 | interrupt-parent = <&intc>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | #include "twl4030.dtsi" | ||
46 | #include "twl4030_omap3.dtsi" | ||
47 | |||
48 | &i2c2 { | ||
49 | clock-frequency = <400000>; | ||
50 | }; | ||
51 | |||
52 | &i2c3 { | ||
53 | clock-frequency = <400000>; | ||
54 | |||
55 | /* | ||
56 | * TVP5146 Video decoder-in for analog input support. | ||
57 | */ | ||
58 | tvp5146@5c { | ||
59 | compatible = "ti,tvp5146m2"; | ||
60 | reg = <0x5c>; | ||
61 | }; | ||
62 | }; | ||
63 | |||
64 | &mmc1 { | ||
65 | vmmc-supply = <&vmmc1>; | ||
66 | vmmc_aux-supply = <&vsim>; | ||
67 | bus-width = <8>; | ||
68 | }; | ||
69 | |||
70 | &mmc2 { | ||
71 | vmmc-supply = <&wl12xx_vmmc>; | ||
72 | non-removable; | ||
73 | bus-width = <4>; | ||
74 | cap-power-off-card; | ||
75 | }; | ||
76 | |||
77 | &twl_gpio { | ||
78 | ti,use-leds; | ||
79 | }; | ||
80 | |||
81 | &usb_otg_hs { | ||
82 | interface-type = <0>; | ||
83 | usb-phy = <&usb2_phy>; | ||
84 | phys = <&usb2_phy>; | ||
85 | phy-names = "usb2-phy"; | ||
86 | mode = <3>; | ||
87 | power = <50>; | ||
88 | }; | ||
89 | |||
90 | &gpmc { | ||
91 | ethernet@gpmc { | ||
92 | interrupt-parent = <&gpio6>; | ||
93 | interrupts = <16 8>; | ||
94 | reg = <5 0 0xff>; | ||
95 | }; | ||
96 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts index 4134dd05c3a4..e10dcd0fa539 100644 --- a/arch/arm/boot/dts/omap3-evm.dts +++ b/arch/arm/boot/dts/omap3-evm.dts | |||
@@ -8,70 +8,14 @@ | |||
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | #include "omap34xx.dtsi" | 10 | #include "omap34xx.dtsi" |
11 | #include "omap3-evm-common.dtsi" | ||
11 | 12 | ||
12 | / { | 13 | / { |
13 | model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)"; | 14 | model = "TI OMAP35XX EVM (TMDSEVM3530)"; |
14 | compatible = "ti,omap3-evm", "ti,omap3"; | 15 | compatible = "ti,omap3-evm", "ti,omap3"; |
15 | 16 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | memory { | 17 | memory { |
23 | device_type = "memory"; | 18 | device_type = "memory"; |
24 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 19 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
25 | }; | 20 | }; |
26 | |||
27 | leds { | ||
28 | compatible = "gpio-leds"; | ||
29 | ledb { | ||
30 | label = "omap3evm::ledb"; | ||
31 | gpios = <&twl_gpio 19 GPIO_ACTIVE_HIGH>; /* LEDB */ | ||
32 | linux,default-trigger = "default-on"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | |||
37 | &i2c1 { | ||
38 | clock-frequency = <2600000>; | ||
39 | |||
40 | twl: twl@48 { | ||
41 | reg = <0x48>; | ||
42 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
43 | interrupt-parent = <&intc>; | ||
44 | }; | ||
45 | }; | ||
46 | |||
47 | #include "twl4030.dtsi" | ||
48 | #include "twl4030_omap3.dtsi" | ||
49 | |||
50 | &i2c2 { | ||
51 | clock-frequency = <400000>; | ||
52 | }; | ||
53 | |||
54 | &i2c3 { | ||
55 | clock-frequency = <400000>; | ||
56 | |||
57 | /* | ||
58 | * TVP5146 Video decoder-in for analog input support. | ||
59 | */ | ||
60 | tvp5146@5c { | ||
61 | compatible = "ti,tvp5146m2"; | ||
62 | reg = <0x5c>; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | &twl_gpio { | ||
67 | ti,use-leds; | ||
68 | }; | ||
69 | |||
70 | &usb_otg_hs { | ||
71 | interface-type = <0>; | ||
72 | usb-phy = <&usb2_phy>; | ||
73 | phys = <&usb2_phy>; | ||
74 | phy-names = "usb2-phy"; | ||
75 | mode = <3>; | ||
76 | power = <50>; | ||
77 | }; | 21 | }; |
diff --git a/arch/arm/boot/dts/omap3-gta04.dts b/arch/arm/boot/dts/omap3-gta04.dts new file mode 100644 index 000000000000..b9b55c95a566 --- /dev/null +++ b/arch/arm/boot/dts/omap3-gta04.dts | |||
@@ -0,0 +1,170 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Marek Belisko <marek@goldelico.com> | ||
3 | * | ||
4 | * Based on omap3-beagle-xm.dts | ||
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 | /dts-v1/; | ||
11 | |||
12 | #include "omap36xx.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "OMAP3 GTA04"; | ||
16 | compatible = "ti,omap3-gta04", "ti,omap3"; | ||
17 | |||
18 | cpus { | ||
19 | cpu@0 { | ||
20 | cpu0-supply = <&vcc>; | ||
21 | }; | ||
22 | }; | ||
23 | |||
24 | memory { | ||
25 | device_type = "memory"; | ||
26 | reg = <0x80000000 0x20000000>; /* 512 MB */ | ||
27 | }; | ||
28 | |||
29 | gpio-keys { | ||
30 | compatible = "gpio-keys"; | ||
31 | |||
32 | aux-button { | ||
33 | label = "aux"; | ||
34 | linux,code = <169>; | ||
35 | gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; | ||
36 | gpio-key,wakeup; | ||
37 | }; | ||
38 | }; | ||
39 | }; | ||
40 | |||
41 | &omap3_pmx_core { | ||
42 | uart1_pins: pinmux_uart1_pins { | ||
43 | pinctrl-single,pins = < | ||
44 | 0x152 (PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */ | ||
45 | 0x14c (PIN_OUTPUT |MUX_MODE0) /* uart1_tx.uart1_tx */ | ||
46 | >; | ||
47 | }; | ||
48 | |||
49 | uart2_pins: pinmux_uart2_pins { | ||
50 | pinctrl-single,pins = < | ||
51 | 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */ | ||
52 | 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ | ||
53 | >; | ||
54 | }; | ||
55 | |||
56 | uart3_pins: pinmux_uart3_pins { | ||
57 | pinctrl-single,pins = < | ||
58 | 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx.uart3_rx */ | ||
59 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx.uart3_tx */ | ||
60 | >; | ||
61 | }; | ||
62 | |||
63 | mmc1_pins: pinmux_mmc1_pins { | ||
64 | pinctrl-single,pins = < | ||
65 | 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ | ||
66 | 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ | ||
67 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ | ||
68 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ | ||
69 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ | ||
70 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ | ||
71 | >; | ||
72 | }; | ||
73 | }; | ||
74 | |||
75 | &i2c1 { | ||
76 | clock-frequency = <2600000>; | ||
77 | |||
78 | twl: twl@48 { | ||
79 | reg = <0x48>; | ||
80 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
81 | interrupt-parent = <&intc>; | ||
82 | }; | ||
83 | }; | ||
84 | |||
85 | #include "twl4030.dtsi" | ||
86 | #include "twl4030_omap3.dtsi" | ||
87 | |||
88 | &i2c2 { | ||
89 | clock-frequency = <400000>; | ||
90 | |||
91 | /* pressure sensor */ | ||
92 | bmp085@77 { | ||
93 | compatible = "bosch,bmp085"; | ||
94 | reg = <0x77>; | ||
95 | }; | ||
96 | |||
97 | /* leds */ | ||
98 | tca6507@45 { | ||
99 | compatible = "ti,tca6507"; | ||
100 | #address-cells = <1>; | ||
101 | #size-cells = <0>; | ||
102 | reg = <0x45>; | ||
103 | |||
104 | gta04_led0: red_aux@0 { | ||
105 | label = "gta04:red:aux"; | ||
106 | reg = <0x0>; | ||
107 | }; | ||
108 | |||
109 | gta04_led1: green_aux@1 { | ||
110 | label = "gta04:green:aux"; | ||
111 | reg = <0x1>; | ||
112 | }; | ||
113 | |||
114 | gta04_led3: red_power@3 { | ||
115 | label = "gta04:red:power"; | ||
116 | reg = <0x3>; | ||
117 | linux,default-trigger = "default-on"; | ||
118 | }; | ||
119 | |||
120 | gta04_led4: green_power@4 { | ||
121 | label = "gta04:green:power"; | ||
122 | reg = <0x4>; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | |||
127 | &i2c3 { | ||
128 | clock-frequency = <100000>; | ||
129 | }; | ||
130 | |||
131 | &usb_otg_hs { | ||
132 | interface-type = <0>; | ||
133 | usb-phy = <&usb2_phy>; | ||
134 | phys = <&usb2_phy>; | ||
135 | phy-names = "usb2-phy"; | ||
136 | mode = <3>; | ||
137 | power = <50>; | ||
138 | }; | ||
139 | |||
140 | &mmc1 { | ||
141 | pinctrl-names = "default"; | ||
142 | pinctrl-0 = <&mmc1_pins>; | ||
143 | vmmc-supply = <&vmmc1>; | ||
144 | vmmc_aux-supply = <&vsim>; | ||
145 | bus-width = <4>; | ||
146 | }; | ||
147 | |||
148 | &mmc2 { | ||
149 | status = "disabled"; | ||
150 | }; | ||
151 | |||
152 | &mmc3 { | ||
153 | status = "disabled"; | ||
154 | }; | ||
155 | |||
156 | &uart1 { | ||
157 | pinctrl-names = "default"; | ||
158 | pinctrl-0 = <&uart1_pins>; | ||
159 | }; | ||
160 | |||
161 | &uart2 { | ||
162 | pinctrl-names = "default"; | ||
163 | pinctrl-0 = <&uart2_pins>; | ||
164 | }; | ||
165 | |||
166 | &uart3 { | ||
167 | pinctrl-names = "default"; | ||
168 | pinctrl-0 = <&uart3_pins>; | ||
169 | }; | ||
170 | |||
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi index 2326d11462a5..ba1e58b7b7e3 100644 --- a/arch/arm/boot/dts/omap3-igep.dtsi +++ b/arch/arm/boot/dts/omap3-igep.dtsi | |||
@@ -77,6 +77,8 @@ | |||
77 | 0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */ | 77 | 0x1a2 (PIN_INPUT | MUX_MODE4) /* mcspi1_cs2.gpio_176 */ |
78 | >; | 78 | >; |
79 | }; | 79 | }; |
80 | |||
81 | leds_pins: pinmux_leds_pins { }; | ||
80 | }; | 82 | }; |
81 | 83 | ||
82 | &i2c1 { | 84 | &i2c1 { |
@@ -141,3 +143,12 @@ | |||
141 | &twl_gpio { | 143 | &twl_gpio { |
142 | ti,use-leds; | 144 | ti,use-leds; |
143 | }; | 145 | }; |
146 | |||
147 | &usb_otg_hs { | ||
148 | interface-type = <0>; | ||
149 | usb-phy = <&usb2_phy>; | ||
150 | phys = <&usb2_phy>; | ||
151 | phy-names = "usb2-phy"; | ||
152 | mode = <3>; | ||
153 | power = <50>; | ||
154 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts index e8c48284587c..d5cc79267250 100644 --- a/arch/arm/boot/dts/omap3-igep0020.dts +++ b/arch/arm/boot/dts/omap3-igep0020.dts | |||
@@ -10,13 +10,17 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "omap3-igep.dtsi" | 12 | #include "omap3-igep.dtsi" |
13 | #include "omap-gpmc-smsc911x.dtsi" | ||
13 | 14 | ||
14 | / { | 15 | / { |
15 | model = "IGEPv2"; | 16 | model = "IGEPv2"; |
16 | compatible = "isee,omap3-igep0020", "ti,omap3"; | 17 | compatible = "isee,omap3-igep0020", "ti,omap3"; |
17 | 18 | ||
18 | leds { | 19 | leds { |
20 | pinctrl-names = "default"; | ||
21 | pinctrl-0 = <&leds_pins>; | ||
19 | compatible = "gpio-leds"; | 22 | compatible = "gpio-leds"; |
23 | |||
20 | boot { | 24 | boot { |
21 | label = "omap3:green:boot"; | 25 | label = "omap3:green:boot"; |
22 | gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>; | 26 | gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>; |
@@ -41,19 +45,56 @@ | |||
41 | }; | 45 | }; |
42 | }; | 46 | }; |
43 | 47 | ||
44 | vddvario: regulator-vddvario { | 48 | /* HS USB Port 1 Power */ |
45 | compatible = "regulator-fixed"; | 49 | hsusb1_power: hsusb1_power_reg { |
46 | regulator-name = "vddvario"; | 50 | compatible = "regulator-fixed"; |
47 | regulator-always-on; | 51 | regulator-name = "hsusb1_vbus"; |
52 | regulator-min-microvolt = <3300000>; | ||
53 | regulator-max-microvolt = <3300000>; | ||
54 | gpio = <&twl_gpio 18 GPIO_ACTIVE_LOW>; /* GPIO LEDA */ | ||
55 | startup-delay-us = <70000>; | ||
56 | }; | ||
57 | |||
58 | /* HS USB Host PHY on PORT 1 */ | ||
59 | hsusb1_phy: hsusb1_phy { | ||
60 | compatible = "usb-nop-xceiv"; | ||
61 | reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; /* gpio_24 */ | ||
62 | vcc-supply = <&hsusb1_power>; | ||
48 | }; | 63 | }; |
64 | }; | ||
49 | 65 | ||
50 | vdd33a: regulator-vdd33a { | 66 | &omap3_pmx_core { |
51 | compatible = "regulator-fixed"; | 67 | pinctrl-names = "default"; |
52 | regulator-name = "vdd33a"; | 68 | pinctrl-0 = < |
53 | regulator-always-on; | 69 | &hsusbb1_pins |
70 | >; | ||
71 | |||
72 | hsusbb1_pins: pinmux_hsusbb1_pins { | ||
73 | pinctrl-single,pins = < | ||
74 | 0x5aa (PIN_OUTPUT | MUX_MODE3) /* etk_ctl.hsusb1_clk */ | ||
75 | 0x5a8 (PIN_OUTPUT | MUX_MODE3) /* etk_clk.hsusb1_stp */ | ||
76 | 0x5bc (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d8.hsusb1_dir */ | ||
77 | 0x5be (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d9.hsusb1_nxt */ | ||
78 | 0x5ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d0.hsusb1_data0 */ | ||
79 | 0x5ae (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d1.hsusb1_data1 */ | ||
80 | 0x5b0 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d2.hsusb1_data2 */ | ||
81 | 0x5b2 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d3.hsusb1_data7 */ | ||
82 | 0x5b4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d4.hsusb1_data4 */ | ||
83 | 0x5b6 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d5.hsusb1_data5 */ | ||
84 | 0x5b8 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d6.hsusb1_data6 */ | ||
85 | 0x5ba (PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d7.hsusb1_data3 */ | ||
86 | >; | ||
54 | }; | 87 | }; |
55 | }; | 88 | }; |
56 | 89 | ||
90 | &leds_pins { | ||
91 | pinctrl-single,pins = < | ||
92 | 0x5c4 (PIN_OUTPUT | MUX_MODE4) /* etk_d12.gpio_26 */ | ||
93 | 0x5c6 (PIN_OUTPUT | MUX_MODE4) /* etk_d13.gpio_27 */ | ||
94 | 0x5c8 (PIN_OUTPUT | MUX_MODE4) /* etk_d14.gpio_28 */ | ||
95 | >; | ||
96 | }; | ||
97 | |||
57 | &i2c3 { | 98 | &i2c3 { |
58 | clock-frequency = <100000>; | 99 | clock-frequency = <100000>; |
59 | 100 | ||
@@ -99,59 +140,37 @@ | |||
99 | label = "SPL"; | 140 | label = "SPL"; |
100 | reg = <0 0x100000>; | 141 | reg = <0 0x100000>; |
101 | }; | 142 | }; |
102 | partition@0x80000 { | 143 | partition@80000 { |
103 | label = "U-Boot"; | 144 | label = "U-Boot"; |
104 | reg = <0x100000 0x180000>; | 145 | reg = <0x100000 0x180000>; |
105 | }; | 146 | }; |
106 | partition@0x1c0000 { | 147 | partition@1c0000 { |
107 | label = "Environment"; | 148 | label = "Environment"; |
108 | reg = <0x280000 0x100000>; | 149 | reg = <0x280000 0x100000>; |
109 | }; | 150 | }; |
110 | partition@0x280000 { | 151 | partition@280000 { |
111 | label = "Kernel"; | 152 | label = "Kernel"; |
112 | reg = <0x380000 0x300000>; | 153 | reg = <0x380000 0x300000>; |
113 | }; | 154 | }; |
114 | partition@0x780000 { | 155 | partition@780000 { |
115 | label = "Filesystem"; | 156 | label = "Filesystem"; |
116 | reg = <0x680000 0x1f980000>; | 157 | reg = <0x680000 0x1f980000>; |
117 | }; | 158 | }; |
118 | }; | 159 | }; |
119 | 160 | ||
120 | ethernet@5,0 { | 161 | ethernet@gpmc { |
121 | pinctrl-names = "default"; | 162 | pinctrl-names = "default"; |
122 | pinctrl-0 = <&smsc911x_pins>; | 163 | pinctrl-0 = <&smsc911x_pins>; |
123 | compatible = "smsc,lan9221", "smsc,lan9115"; | ||
124 | reg = <5 0 0xff>; | 164 | reg = <5 0 0xff>; |
125 | bank-width = <2>; | ||
126 | |||
127 | gpmc,mux-add-data; | ||
128 | gpmc,cs-on-ns = <0>; | ||
129 | gpmc,cs-rd-off-ns = <186>; | ||
130 | gpmc,cs-wr-off-ns = <186>; | ||
131 | gpmc,adv-on-ns = <12>; | ||
132 | gpmc,adv-rd-off-ns = <48>; | ||
133 | gpmc,adv-wr-off-ns = <48>; | ||
134 | gpmc,oe-on-ns = <54>; | ||
135 | gpmc,oe-off-ns = <168>; | ||
136 | gpmc,we-on-ns = <54>; | ||
137 | gpmc,we-off-ns = <168>; | ||
138 | gpmc,rd-cycle-ns = <186>; | ||
139 | gpmc,wr-cycle-ns = <186>; | ||
140 | gpmc,access-ns = <114>; | ||
141 | gpmc,page-burst-access-ns = <6>; | ||
142 | gpmc,bus-turnaround-ns = <12>; | ||
143 | gpmc,cycle2cycle-delay-ns = <18>; | ||
144 | gpmc,wr-data-mux-bus-ns = <90>; | ||
145 | gpmc,wr-access-ns = <186>; | ||
146 | gpmc,cycle2cycle-samecsen; | ||
147 | gpmc,cycle2cycle-diffcsen; | ||
148 | |||
149 | interrupt-parent = <&gpio6>; | 165 | interrupt-parent = <&gpio6>; |
150 | interrupts = <16 8>; | 166 | interrupts = <16 IRQ_TYPE_LEVEL_LOW>; |
151 | vmmc-supply = <&vddvario>; | ||
152 | vmmc_aux-supply = <&vdd33a>; | ||
153 | reg-io-width = <4>; | ||
154 | |||
155 | smsc,save-mac-address; | ||
156 | }; | 167 | }; |
157 | }; | 168 | }; |
169 | |||
170 | &usbhshost { | ||
171 | port1-mode = "ehci-phy"; | ||
172 | }; | ||
173 | |||
174 | &usbhsehci { | ||
175 | phys = <&hsusb1_phy>; | ||
176 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts index 644d05383836..525e6d9b0978 100644 --- a/arch/arm/boot/dts/omap3-igep0030.dts +++ b/arch/arm/boot/dts/omap3-igep0030.dts | |||
@@ -16,7 +16,10 @@ | |||
16 | compatible = "isee,omap3-igep0030", "ti,omap3"; | 16 | compatible = "isee,omap3-igep0030", "ti,omap3"; |
17 | 17 | ||
18 | leds { | 18 | leds { |
19 | pinctrl-names = "default"; | ||
20 | pinctrl-0 = <&leds_pins>; | ||
19 | compatible = "gpio-leds"; | 21 | compatible = "gpio-leds"; |
22 | |||
20 | boot { | 23 | boot { |
21 | label = "omap3:green:boot"; | 24 | label = "omap3:green:boot"; |
22 | gpios = <&twl_gpio 13 GPIO_ACTIVE_LOW>; | 25 | gpios = <&twl_gpio 13 GPIO_ACTIVE_LOW>; |
@@ -43,6 +46,12 @@ | |||
43 | }; | 46 | }; |
44 | }; | 47 | }; |
45 | 48 | ||
49 | &leds_pins { | ||
50 | pinctrl-single,pins = < | ||
51 | 0x5b0 (PIN_OUTPUT | MUX_MODE4) /* etk_d2.gpio_16 */ | ||
52 | >; | ||
53 | }; | ||
54 | |||
46 | &gpmc { | 55 | &gpmc { |
47 | ranges = <0 0 0x00000000 0x20000000>; | 56 | ranges = <0 0 0x00000000 0x20000000>; |
48 | 57 | ||
@@ -74,19 +83,19 @@ | |||
74 | label = "SPL"; | 83 | label = "SPL"; |
75 | reg = <0 0x100000>; | 84 | reg = <0 0x100000>; |
76 | }; | 85 | }; |
77 | partition@0x80000 { | 86 | partition@80000 { |
78 | label = "U-Boot"; | 87 | label = "U-Boot"; |
79 | reg = <0x100000 0x180000>; | 88 | reg = <0x100000 0x180000>; |
80 | }; | 89 | }; |
81 | partition@0x1c0000 { | 90 | partition@1c0000 { |
82 | label = "Environment"; | 91 | label = "Environment"; |
83 | reg = <0x280000 0x100000>; | 92 | reg = <0x280000 0x100000>; |
84 | }; | 93 | }; |
85 | partition@0x280000 { | 94 | partition@280000 { |
86 | label = "Kernel"; | 95 | label = "Kernel"; |
87 | reg = <0x380000 0x300000>; | 96 | reg = <0x380000 0x300000>; |
88 | }; | 97 | }; |
89 | partition@0x780000 { | 98 | partition@780000 { |
90 | label = "Filesystem"; | 99 | label = "Filesystem"; |
91 | reg = <0x680000 0x1f980000>; | 100 | reg = <0x680000 0x1f980000>; |
92 | }; | 101 | }; |
diff --git a/arch/arm/boot/dts/omap3-n9.dts b/arch/arm/boot/dts/omap3-n9.dts new file mode 100644 index 000000000000..39828ce464ee --- /dev/null +++ b/arch/arm/boot/dts/omap3-n9.dts | |||
@@ -0,0 +1,18 @@ | |||
1 | /* | ||
2 | * omap3-n9.dts - Device Tree file for Nokia N9 | ||
3 | * | ||
4 | * Written by: Aaro Koskinen <aaro.koskinen@iki.fi> | ||
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 | /dts-v1/; | ||
12 | |||
13 | #include "omap3-n950-n9.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "Nokia N9"; | ||
17 | compatible = "nokia,omap3-n9", "ti,omap3"; | ||
18 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts new file mode 100644 index 000000000000..c4f20bfe4cce --- /dev/null +++ b/arch/arm/boot/dts/omap3-n900.dts | |||
@@ -0,0 +1,484 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz> | ||
3 | * Copyright 2013 Aaro Koskinen <aaro.koskinen@iki.fi> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 (or later) as | ||
7 | * published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | /dts-v1/; | ||
11 | |||
12 | #include "omap34xx.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "Nokia N900"; | ||
16 | compatible = "nokia,omap3-n900", "ti,omap3"; | ||
17 | |||
18 | cpus { | ||
19 | cpu@0 { | ||
20 | cpu0-supply = <&vcc>; | ||
21 | }; | ||
22 | }; | ||
23 | |||
24 | memory { | ||
25 | device_type = "memory"; | ||
26 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
27 | }; | ||
28 | |||
29 | gpio_keys { | ||
30 | compatible = "gpio-keys"; | ||
31 | |||
32 | camera_lens_cover { | ||
33 | label = "Camera Lens Cover"; | ||
34 | gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */ | ||
35 | linux,input-type = <5>; /* EV_SW */ | ||
36 | linux,code = <0x09>; /* SW_CAMERA_LENS_COVER */ | ||
37 | gpio-key,wakeup; | ||
38 | }; | ||
39 | |||
40 | camera_focus { | ||
41 | label = "Camera Focus"; | ||
42 | gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */ | ||
43 | linux,code = <0x210>; /* KEY_CAMERA_FOCUS */ | ||
44 | gpio-key,wakeup; | ||
45 | }; | ||
46 | |||
47 | camera_capture { | ||
48 | label = "Camera Capture"; | ||
49 | gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */ | ||
50 | linux,code = <0xd4>; /* KEY_CAMERA */ | ||
51 | gpio-key,wakeup; | ||
52 | }; | ||
53 | |||
54 | lock_button { | ||
55 | label = "Lock Button"; | ||
56 | gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */ | ||
57 | linux,code = <0x98>; /* KEY_SCREENLOCK */ | ||
58 | gpio-key,wakeup; | ||
59 | }; | ||
60 | |||
61 | keypad_slide { | ||
62 | label = "Keypad Slide"; | ||
63 | gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */ | ||
64 | linux,input-type = <5>; /* EV_SW */ | ||
65 | linux,code = <0x0a>; /* SW_KEYPAD_SLIDE */ | ||
66 | gpio-key,wakeup; | ||
67 | }; | ||
68 | |||
69 | proximity_sensor { | ||
70 | label = "Proximity Sensor"; | ||
71 | gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */ | ||
72 | linux,input-type = <5>; /* EV_SW */ | ||
73 | linux,code = <0x0b>; /* SW_FRONT_PROXIMITY */ | ||
74 | }; | ||
75 | }; | ||
76 | |||
77 | }; | ||
78 | |||
79 | &omap3_pmx_core { | ||
80 | pinctrl-names = "default"; | ||
81 | |||
82 | uart2_pins: pinmux_uart2_pins { | ||
83 | pinctrl-single,pins = < | ||
84 | 0x14a (PIN_INPUT | MUX_MODE0) /* uart2_rx */ | ||
85 | 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx */ | ||
86 | >; | ||
87 | }; | ||
88 | |||
89 | uart3_pins: pinmux_uart3_pins { | ||
90 | pinctrl-single,pins = < | ||
91 | 0x16e (PIN_INPUT | MUX_MODE0) /* uart3_rx */ | ||
92 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx */ | ||
93 | >; | ||
94 | }; | ||
95 | |||
96 | i2c1_pins: pinmux_i2c1_pins { | ||
97 | pinctrl-single,pins = < | ||
98 | 0x18a (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ | ||
99 | 0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ | ||
100 | >; | ||
101 | }; | ||
102 | |||
103 | i2c2_pins: pinmux_i2c2_pins { | ||
104 | pinctrl-single,pins = < | ||
105 | 0x18e (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */ | ||
106 | 0x190 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */ | ||
107 | >; | ||
108 | }; | ||
109 | |||
110 | i2c3_pins: pinmux_i2c3_pins { | ||
111 | pinctrl-single,pins = < | ||
112 | 0x192 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */ | ||
113 | 0x194 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */ | ||
114 | >; | ||
115 | }; | ||
116 | |||
117 | mmc1_pins: pinmux_mmc1_pins { | ||
118 | pinctrl-single,pins = < | ||
119 | 0x114 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */ | ||
120 | 0x116 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */ | ||
121 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */ | ||
122 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */ | ||
123 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */ | ||
124 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */ | ||
125 | >; | ||
126 | }; | ||
127 | |||
128 | display_pins: pinmux_display_pins { | ||
129 | pinctrl-single,pins = < | ||
130 | 0x0d4 (PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */ | ||
131 | >; | ||
132 | }; | ||
133 | }; | ||
134 | |||
135 | &i2c1 { | ||
136 | pinctrl-names = "default"; | ||
137 | pinctrl-0 = <&i2c1_pins>; | ||
138 | |||
139 | clock-frequency = <2200000>; | ||
140 | |||
141 | twl: twl@48 { | ||
142 | reg = <0x48>; | ||
143 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
144 | interrupt-parent = <&intc>; | ||
145 | }; | ||
146 | }; | ||
147 | |||
148 | #include "twl4030.dtsi" | ||
149 | #include "twl4030_omap3.dtsi" | ||
150 | |||
151 | &vaux1 { | ||
152 | regulator-name = "V28"; | ||
153 | regulator-min-microvolt = <2800000>; | ||
154 | regulator-max-microvolt = <2800000>; | ||
155 | regulator-always-on; /* due battery cover sensor */ | ||
156 | }; | ||
157 | |||
158 | &vaux2 { | ||
159 | regulator-name = "VCSI"; | ||
160 | regulator-min-microvolt = <1800000>; | ||
161 | regulator-max-microvolt = <1800000>; | ||
162 | }; | ||
163 | |||
164 | &vaux3 { | ||
165 | regulator-name = "VMMC2_30"; | ||
166 | regulator-min-microvolt = <2800000>; | ||
167 | regulator-max-microvolt = <3000000>; | ||
168 | }; | ||
169 | |||
170 | &vaux4 { | ||
171 | regulator-name = "VCAM_ANA_28"; | ||
172 | regulator-min-microvolt = <2800000>; | ||
173 | regulator-max-microvolt = <2800000>; | ||
174 | }; | ||
175 | |||
176 | &vmmc1 { | ||
177 | regulator-name = "VMMC1"; | ||
178 | regulator-min-microvolt = <1850000>; | ||
179 | regulator-max-microvolt = <3150000>; | ||
180 | }; | ||
181 | |||
182 | &vmmc2 { | ||
183 | regulator-name = "V28_A"; | ||
184 | regulator-min-microvolt = <2800000>; | ||
185 | regulator-max-microvolt = <3000000>; | ||
186 | regulator-always-on; /* due VIO leak to AIC34 VDDs */ | ||
187 | }; | ||
188 | |||
189 | &vpll1 { | ||
190 | regulator-name = "VPLL"; | ||
191 | regulator-min-microvolt = <1800000>; | ||
192 | regulator-max-microvolt = <1800000>; | ||
193 | regulator-always-on; | ||
194 | }; | ||
195 | |||
196 | &vpll2 { | ||
197 | regulator-name = "VSDI_CSI"; | ||
198 | regulator-min-microvolt = <1800000>; | ||
199 | regulator-max-microvolt = <1800000>; | ||
200 | regulator-always-on; | ||
201 | }; | ||
202 | |||
203 | &vsim { | ||
204 | regulator-name = "VMMC2_IO_18"; | ||
205 | regulator-min-microvolt = <1800000>; | ||
206 | regulator-max-microvolt = <1800000>; | ||
207 | }; | ||
208 | |||
209 | &vio { | ||
210 | regulator-name = "VIO"; | ||
211 | regulator-min-microvolt = <1800000>; | ||
212 | regulator-max-microvolt = <1800000>; | ||
213 | |||
214 | }; | ||
215 | |||
216 | &vintana1 { | ||
217 | regulator-name = "VINTANA1"; | ||
218 | /* fixed to 1500000 */ | ||
219 | regulator-always-on; | ||
220 | }; | ||
221 | |||
222 | &vintana2 { | ||
223 | regulator-name = "VINTANA2"; | ||
224 | regulator-min-microvolt = <2750000>; | ||
225 | regulator-max-microvolt = <2750000>; | ||
226 | regulator-always-on; | ||
227 | }; | ||
228 | |||
229 | &vintdig { | ||
230 | regulator-name = "VINTDIG"; | ||
231 | /* fixed to 1500000 */ | ||
232 | regulator-always-on; | ||
233 | }; | ||
234 | |||
235 | &twl { | ||
236 | twl_audio: audio { | ||
237 | compatible = "ti,twl4030-audio"; | ||
238 | ti,enable-vibra = <1>; | ||
239 | }; | ||
240 | }; | ||
241 | |||
242 | &twl_gpio { | ||
243 | ti,pullups = <0x0>; | ||
244 | ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */ | ||
245 | }; | ||
246 | |||
247 | &i2c2 { | ||
248 | pinctrl-names = "default"; | ||
249 | pinctrl-0 = <&i2c2_pins>; | ||
250 | |||
251 | clock-frequency = <100000>; | ||
252 | |||
253 | tlv320aic3x: tlv320aic3x@18 { | ||
254 | compatible = "ti,tlv320aic3x"; | ||
255 | reg = <0x18>; | ||
256 | gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ | ||
257 | ai3x-gpio-func = < | ||
258 | 0 /* AIC3X_GPIO1_FUNC_DISABLED */ | ||
259 | 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */ | ||
260 | >; | ||
261 | |||
262 | AVDD-supply = <&vmmc2>; | ||
263 | DRVDD-supply = <&vmmc2>; | ||
264 | IOVDD-supply = <&vio>; | ||
265 | DVDD-supply = <&vio>; | ||
266 | }; | ||
267 | |||
268 | tlv320aic3x_aux: tlv320aic3x@19 { | ||
269 | compatible = "ti,tlv320aic3x"; | ||
270 | reg = <0x19>; | ||
271 | gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */ | ||
272 | |||
273 | AVDD-supply = <&vmmc2>; | ||
274 | DRVDD-supply = <&vmmc2>; | ||
275 | IOVDD-supply = <&vio>; | ||
276 | DVDD-supply = <&vio>; | ||
277 | }; | ||
278 | |||
279 | lp5523: lp5523@32 { | ||
280 | compatible = "national,lp5523"; | ||
281 | reg = <0x32>; | ||
282 | clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */ | ||
283 | enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */ | ||
284 | |||
285 | chan0 { | ||
286 | chan-name = "lp5523:kb1"; | ||
287 | led-cur = /bits/ 8 <50>; | ||
288 | max-cur = /bits/ 8 <100>; | ||
289 | }; | ||
290 | |||
291 | chan1 { | ||
292 | chan-name = "lp5523:kb2"; | ||
293 | led-cur = /bits/ 8 <50>; | ||
294 | max-cur = /bits/ 8 <100>; | ||
295 | }; | ||
296 | |||
297 | chan2 { | ||
298 | chan-name = "lp5523:kb3"; | ||
299 | led-cur = /bits/ 8 <50>; | ||
300 | max-cur = /bits/ 8 <100>; | ||
301 | }; | ||
302 | |||
303 | chan3 { | ||
304 | chan-name = "lp5523:kb4"; | ||
305 | led-cur = /bits/ 8 <50>; | ||
306 | max-cur = /bits/ 8 <100>; | ||
307 | }; | ||
308 | |||
309 | chan4 { | ||
310 | chan-name = "lp5523:b"; | ||
311 | led-cur = /bits/ 8 <50>; | ||
312 | max-cur = /bits/ 8 <100>; | ||
313 | }; | ||
314 | |||
315 | chan5 { | ||
316 | chan-name = "lp5523:g"; | ||
317 | led-cur = /bits/ 8 <50>; | ||
318 | max-cur = /bits/ 8 <100>; | ||
319 | }; | ||
320 | |||
321 | chan6 { | ||
322 | chan-name = "lp5523:r"; | ||
323 | led-cur = /bits/ 8 <50>; | ||
324 | max-cur = /bits/ 8 <100>; | ||
325 | }; | ||
326 | |||
327 | chan7 { | ||
328 | chan-name = "lp5523:kb5"; | ||
329 | led-cur = /bits/ 8 <50>; | ||
330 | max-cur = /bits/ 8 <100>; | ||
331 | }; | ||
332 | |||
333 | chan8 { | ||
334 | chan-name = "lp5523:kb6"; | ||
335 | led-cur = /bits/ 8 <50>; | ||
336 | max-cur = /bits/ 8 <100>; | ||
337 | }; | ||
338 | }; | ||
339 | |||
340 | bq27200: bq27200@55 { | ||
341 | compatible = "ti,bq27200"; | ||
342 | reg = <0x55>; | ||
343 | }; | ||
344 | }; | ||
345 | |||
346 | &i2c3 { | ||
347 | pinctrl-names = "default"; | ||
348 | pinctrl-0 = <&i2c3_pins>; | ||
349 | |||
350 | clock-frequency = <400000>; | ||
351 | }; | ||
352 | |||
353 | &mmc1 { | ||
354 | pinctrl-names = "default"; | ||
355 | pinctrl-0 = <&mmc1_pins>; | ||
356 | vmmc-supply = <&vmmc1>; | ||
357 | bus-width = <4>; | ||
358 | cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */ | ||
359 | }; | ||
360 | |||
361 | &mmc2 { | ||
362 | status = "disabled"; | ||
363 | }; | ||
364 | |||
365 | &mmc3 { | ||
366 | status = "disabled"; | ||
367 | }; | ||
368 | |||
369 | &gpmc { | ||
370 | ranges = <0 0 0x04000000 0x10000000>; /* 256MB */ | ||
371 | |||
372 | /* gpio-irq for dma: 65 */ | ||
373 | |||
374 | onenand@0,0 { | ||
375 | #address-cells = <1>; | ||
376 | #size-cells = <1>; | ||
377 | reg = <0 0 0x10000000>; | ||
378 | |||
379 | gpmc,sync-read; | ||
380 | gpmc,sync-write; | ||
381 | gpmc,burst-length = <16>; | ||
382 | gpmc,burst-read; | ||
383 | gpmc,burst-wrap; | ||
384 | gpmc,burst-write; | ||
385 | gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */ | ||
386 | gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */ | ||
387 | gpmc,cs-on-ns = <0>; | ||
388 | gpmc,cs-rd-off-ns = <87>; | ||
389 | gpmc,cs-wr-off-ns = <87>; | ||
390 | gpmc,adv-on-ns = <0>; | ||
391 | gpmc,adv-rd-off-ns = <10>; | ||
392 | gpmc,adv-wr-off-ns = <10>; | ||
393 | gpmc,oe-on-ns = <15>; | ||
394 | gpmc,oe-off-ns = <87>; | ||
395 | gpmc,we-on-ns = <0>; | ||
396 | gpmc,we-off-ns = <87>; | ||
397 | gpmc,rd-cycle-ns = <112>; | ||
398 | gpmc,wr-cycle-ns = <112>; | ||
399 | gpmc,access-ns = <81>; | ||
400 | gpmc,page-burst-access-ns = <15>; | ||
401 | gpmc,bus-turnaround-ns = <0>; | ||
402 | gpmc,cycle2cycle-delay-ns = <0>; | ||
403 | gpmc,wait-monitoring-ns = <0>; | ||
404 | gpmc,clk-activation-ns = <5>; | ||
405 | gpmc,wr-data-mux-bus-ns = <30>; | ||
406 | gpmc,wr-access-ns = <81>; | ||
407 | gpmc,sync-clk-ps = <15000>; | ||
408 | |||
409 | /* | ||
410 | * MTD partition table corresponding to Nokia's | ||
411 | * Maemo 5 (Fremantle) release. | ||
412 | */ | ||
413 | partition@0 { | ||
414 | label = "bootloader"; | ||
415 | reg = <0x00000000 0x00020000>; | ||
416 | read-only; | ||
417 | }; | ||
418 | partition@1 { | ||
419 | label = "config"; | ||
420 | reg = <0x00020000 0x00060000>; | ||
421 | }; | ||
422 | partition@2 { | ||
423 | label = "log"; | ||
424 | reg = <0x00080000 0x00040000>; | ||
425 | }; | ||
426 | partition@3 { | ||
427 | label = "kernel"; | ||
428 | reg = <0x000c0000 0x00200000>; | ||
429 | }; | ||
430 | partition@4 { | ||
431 | label = "initfs"; | ||
432 | reg = <0x002c0000 0x00200000>; | ||
433 | }; | ||
434 | partition@5 { | ||
435 | label = "rootfs"; | ||
436 | reg = <0x004c0000 0x0fb40000>; | ||
437 | }; | ||
438 | }; | ||
439 | }; | ||
440 | |||
441 | &mcspi1 { | ||
442 | /* | ||
443 | * For some reason, touchscreen is necessary for screen to work at | ||
444 | * all on real hw. It works well without it on emulator. | ||
445 | * | ||
446 | * Also... order in the device tree actually matters here. | ||
447 | */ | ||
448 | tsc2005@0 { | ||
449 | compatible = "tsc2005"; | ||
450 | spi-max-frequency = <6000000>; | ||
451 | reg = <0>; | ||
452 | }; | ||
453 | mipid@2 { | ||
454 | compatible = "acx565akm"; | ||
455 | spi-max-frequency = <6000000>; | ||
456 | reg = <2>; | ||
457 | |||
458 | pinctrl-names = "default"; | ||
459 | pinctrl-0 = <&display_pins>; | ||
460 | }; | ||
461 | }; | ||
462 | |||
463 | &usb_otg_hs { | ||
464 | interface-type = <0>; | ||
465 | usb-phy = <&usb2_phy>; | ||
466 | phys = <&usb2_phy>; | ||
467 | phy-names = "usb2-phy"; | ||
468 | mode = <2>; | ||
469 | power = <50>; | ||
470 | }; | ||
471 | |||
472 | &uart1 { | ||
473 | status = "disabled"; | ||
474 | }; | ||
475 | |||
476 | &uart2 { | ||
477 | pinctrl-names = "default"; | ||
478 | pinctrl-0 = <&uart2_pins>; | ||
479 | }; | ||
480 | |||
481 | &uart3 { | ||
482 | pinctrl-names = "default"; | ||
483 | pinctrl-0 = <&uart3_pins>; | ||
484 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-n950-n9.dtsi b/arch/arm/boot/dts/omap3-n950-n9.dtsi new file mode 100644 index 000000000000..94eb77d3b9dd --- /dev/null +++ b/arch/arm/boot/dts/omap3-n950-n9.dtsi | |||
@@ -0,0 +1,174 @@ | |||
1 | /* | ||
2 | * omap3-n950-n9.dtsi - Device Tree file for Nokia N950 & N9 (common stuff) | ||
3 | * | ||
4 | * Written by: Aaro Koskinen <aaro.koskinen@iki.fi> | ||
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 "omap36xx.dtsi" | ||
12 | |||
13 | / { | ||
14 | cpus { | ||
15 | cpu@0 { | ||
16 | cpu0-supply = <&vcc>; | ||
17 | }; | ||
18 | }; | ||
19 | |||
20 | memory { | ||
21 | device_type = "memory"; | ||
22 | reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
23 | }; | ||
24 | |||
25 | vemmc: fixedregulator@0 { | ||
26 | compatible = "regulator-fixed"; | ||
27 | regulator-name = "VEMMC"; | ||
28 | regulator-min-microvolt = <2900000>; | ||
29 | regulator-max-microvolt = <2900000>; | ||
30 | gpio = <&gpio5 29 0>; /* gpio line 157 */ | ||
31 | startup-delay-us = <150>; | ||
32 | enable-active-high; | ||
33 | }; | ||
34 | }; | ||
35 | |||
36 | &omap3_pmx_core { | ||
37 | mmc2_pins: pinmux_mmc2_pins { | ||
38 | pinctrl-single,pins = < | ||
39 | 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */ | ||
40 | 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */ | ||
41 | 0x12c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */ | ||
42 | 0x12e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */ | ||
43 | 0x130 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */ | ||
44 | 0x132 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */ | ||
45 | >; | ||
46 | }; | ||
47 | }; | ||
48 | |||
49 | &i2c1 { | ||
50 | clock-frequency = <2900000>; | ||
51 | |||
52 | twl: twl@48 { | ||
53 | reg = <0x48>; | ||
54 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
55 | interrupt-parent = <&intc>; | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | /include/ "twl4030.dtsi" | ||
60 | |||
61 | &twl { | ||
62 | compatible = "ti,twl5031"; | ||
63 | }; | ||
64 | |||
65 | &twl_gpio { | ||
66 | ti,pullups = <0x000001>; /* BIT(0) */ | ||
67 | ti,pulldowns = <0x008106>; /* BIT(1) | BIT(2) | BIT(8) | BIT(15) */ | ||
68 | }; | ||
69 | |||
70 | &i2c2 { | ||
71 | clock-frequency = <400000>; | ||
72 | }; | ||
73 | |||
74 | &i2c3 { | ||
75 | clock-frequency = <400000>; | ||
76 | }; | ||
77 | |||
78 | &mmc1 { | ||
79 | status = "disabled"; | ||
80 | }; | ||
81 | |||
82 | &mmc2 { | ||
83 | pinctrl-names = "default"; | ||
84 | pinctrl-0 = <&mmc2_pins>; | ||
85 | vmmc-supply = <&vemmc>; | ||
86 | bus-width = <4>; | ||
87 | ti,non-removable; | ||
88 | }; | ||
89 | |||
90 | &mmc3 { | ||
91 | status = "disabled"; | ||
92 | }; | ||
93 | |||
94 | &usb_otg_hs { | ||
95 | interface-type = <0>; | ||
96 | usb-phy = <&usb2_phy>; | ||
97 | phys = <&usb2_phy>; | ||
98 | phy-names = "usb2-phy"; | ||
99 | mode = <3>; | ||
100 | power = <50>; | ||
101 | }; | ||
102 | |||
103 | &gpmc { | ||
104 | ranges = <0 0 0x04000000 0x20000000>; | ||
105 | |||
106 | onenand@0,0 { | ||
107 | #address-cells = <1>; | ||
108 | #size-cells = <1>; | ||
109 | reg = <0 0 0x20000000>; | ||
110 | |||
111 | gpmc,sync-read; | ||
112 | gpmc,sync-write; | ||
113 | gpmc,burst-length = <16>; | ||
114 | gpmc,burst-read; | ||
115 | gpmc,burst-wrap; | ||
116 | gpmc,burst-write; | ||
117 | gpmc,device-width = <2>; | ||
118 | gpmc,mux-add-data = <2>; | ||
119 | gpmc,cs-on-ns = <0>; | ||
120 | gpmc,cs-rd-off-ns = <87>; | ||
121 | gpmc,cs-wr-off-ns = <87>; | ||
122 | gpmc,adv-on-ns = <0>; | ||
123 | gpmc,adv-rd-off-ns = <10>; | ||
124 | gpmc,adv-wr-off-ns = <10>; | ||
125 | gpmc,oe-on-ns = <15>; | ||
126 | gpmc,oe-off-ns = <87>; | ||
127 | gpmc,we-on-ns = <0>; | ||
128 | gpmc,we-off-ns = <87>; | ||
129 | gpmc,rd-cycle-ns = <112>; | ||
130 | gpmc,wr-cycle-ns = <112>; | ||
131 | gpmc,access-ns = <81>; | ||
132 | gpmc,page-burst-access-ns = <15>; | ||
133 | gpmc,bus-turnaround-ns = <0>; | ||
134 | gpmc,cycle2cycle-delay-ns = <0>; | ||
135 | gpmc,wait-monitoring-ns = <0>; | ||
136 | gpmc,clk-activation-ns = <5>; | ||
137 | gpmc,wr-data-mux-bus-ns = <30>; | ||
138 | gpmc,wr-access-ns = <81>; | ||
139 | gpmc,sync-clk-ps = <15000>; | ||
140 | |||
141 | /* | ||
142 | * MTD partition table corresponding to Nokia's MeeGo 1.2 | ||
143 | * Harmattan release. | ||
144 | */ | ||
145 | partition@0 { | ||
146 | label = "bootloader"; | ||
147 | reg = <0x00000000 0x00100000>; | ||
148 | }; | ||
149 | partition@1 { | ||
150 | label = "config"; | ||
151 | reg = <0x00100000 0x002c0000>; | ||
152 | }; | ||
153 | partition@2 { | ||
154 | label = "kernel"; | ||
155 | reg = <0x003c0000 0x01000000>; | ||
156 | }; | ||
157 | partition@3 { | ||
158 | label = "log"; | ||
159 | reg = <0x013c0000 0x00200000>; | ||
160 | }; | ||
161 | partition@4 { | ||
162 | label = "var"; | ||
163 | reg = <0x015c0000 0x1ca40000>; | ||
164 | }; | ||
165 | partition@5 { | ||
166 | label = "moslo"; | ||
167 | reg = <0x1e000000 0x02000000>; | ||
168 | }; | ||
169 | partition@6 { | ||
170 | label = "omap2-onenand"; | ||
171 | reg = <0x00000000 0x20000000>; | ||
172 | }; | ||
173 | }; | ||
174 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-n950.dts b/arch/arm/boot/dts/omap3-n950.dts new file mode 100644 index 000000000000..b076a526b999 --- /dev/null +++ b/arch/arm/boot/dts/omap3-n950.dts | |||
@@ -0,0 +1,18 @@ | |||
1 | /* | ||
2 | * omap3-n950.dts - Device Tree file for Nokia N950 | ||
3 | * | ||
4 | * Written by: Aaro Koskinen <aaro.koskinen@iki.fi> | ||
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 | /dts-v1/; | ||
12 | |||
13 | #include "omap3-n950-n9.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "Nokia N950"; | ||
17 | compatible = "nokia,omap3-n950", "ti,omap3"; | ||
18 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-zoom3.dts b/arch/arm/boot/dts/omap3-zoom3.dts new file mode 100644 index 000000000000..15eb9fe5169c --- /dev/null +++ b/arch/arm/boot/dts/omap3-zoom3.dts | |||
@@ -0,0 +1,217 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | /dts-v1/; | ||
9 | |||
10 | #include "omap36xx.dtsi" | ||
11 | #include "omap-zoom-common.dtsi" | ||
12 | |||
13 | / { | ||
14 | model = "TI Zoom3"; | ||
15 | compatible = "ti,omap3-zoom3", "ti,omap36xx", "ti,omap3"; | ||
16 | |||
17 | cpus { | ||
18 | cpu@0 { | ||
19 | cpu0-supply = <&vcc>; | ||
20 | }; | ||
21 | }; | ||
22 | |||
23 | memory { | ||
24 | device_type = "memory"; | ||
25 | reg = <0x80000000 0x20000000>; /* 512 MB */ | ||
26 | }; | ||
27 | |||
28 | vddvario: regulator-vddvario { | ||
29 | compatible = "regulator-fixed"; | ||
30 | regulator-name = "vddvario"; | ||
31 | regulator-always-on; | ||
32 | }; | ||
33 | |||
34 | vdd33a: regulator-vdd33a { | ||
35 | compatible = "regulator-fixed"; | ||
36 | regulator-name = "vdd33a"; | ||
37 | regulator-always-on; | ||
38 | }; | ||
39 | |||
40 | wl12xx_vmmc: wl12xx_vmmc { | ||
41 | pinctrl-names = "default"; | ||
42 | pinctrl-0 = <&wl12xx_gpio>; | ||
43 | compatible = "regulator-fixed"; | ||
44 | regulator-name = "vwl1271"; | ||
45 | regulator-min-microvolt = <1800000>; | ||
46 | regulator-max-microvolt = <1800000>; | ||
47 | gpio = <&gpio4 5 0>; /* gpio101 */ | ||
48 | startup-delay-us = <70000>; | ||
49 | enable-active-high; | ||
50 | }; | ||
51 | }; | ||
52 | |||
53 | &omap3_pmx_core { | ||
54 | /* REVISIT: twl gpio0 is mmc0_cd */ | ||
55 | mmc1_pins: pinmux_mmc1_pins { | ||
56 | pinctrl-single,pins = < | ||
57 | 0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ | ||
58 | 0x116 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ | ||
59 | 0x118 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ | ||
60 | 0x11a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ | ||
61 | 0x11c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ | ||
62 | 0x11e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ | ||
63 | >; | ||
64 | }; | ||
65 | |||
66 | mmc2_pins: pinmux_mmc2_pins { | ||
67 | pinctrl-single,pins = < | ||
68 | 0x128 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk.sdmmc2_clk */ | ||
69 | 0x12a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd.sdmmc2_cmd */ | ||
70 | 0x12c (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat0.sdmmc2_dat0 */ | ||
71 | 0x12e (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat1.sdmmc2_dat1 */ | ||
72 | 0x130 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat2.sdmmc2_dat2 */ | ||
73 | 0x132 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat3.sdmmc2_dat3 */ | ||
74 | 0x134 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat4.sdmmc2_dat4 */ | ||
75 | 0x136 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat5.sdmmc2_dat5 */ | ||
76 | 0x138 (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat6.sdmmc2_dat6 */ | ||
77 | 0x13a (PIN_INPUT | MUX_MODE0) /* sdmmc2_dat7.sdmmc2_dat7 */ | ||
78 | >; | ||
79 | }; | ||
80 | |||
81 | mmc3_pins: pinmux_mmc3_pins { | ||
82 | pinctrl-single,pins = < | ||
83 | 0x168 (PIN_INPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 WLAN IRQ */ | ||
84 | 0x1a0 (PIN_INPUT_PULLUP | MUX_MODE3) /* mcspi1_cs1.sdmmc3_cmd */ | ||
85 | 0x5a8 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_clk.sdmmc3_clk */ | ||
86 | 0x5b4 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d4.sdmmc3_dat0 */ | ||
87 | 0x5b6 (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d5.sdmmc3_dat1 */ | ||
88 | 0x5b8 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d6.sdmmc3_dat2 */ | ||
89 | 0x5b2 (PIN_INPUT_PULLUP | MUX_MODE2) /* etk_d3.sdmmc3_dat3 */ | ||
90 | >; | ||
91 | }; | ||
92 | |||
93 | uart1_pins: pinmux_uart1_pins { | ||
94 | pinctrl-single,pins = < | ||
95 | 0x150 (PIN_INPUT | MUX_MODE0) /* uart1_cts.uart1_cts */ | ||
96 | 0x14e (PIN_OUTPUT | MUX_MODE0) /* uart1_rts.uart1_rts */ | ||
97 | 0x152 (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */ | ||
98 | 0x14c (PIN_OUTPUT | MUX_MODE0) /* uart1_tx.uart1_tx */ | ||
99 | >; | ||
100 | }; | ||
101 | |||
102 | uart2_pins: pinmux_uart2_pins { | ||
103 | pinctrl-single,pins = < | ||
104 | 0x144 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts */ | ||
105 | 0x146 (PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */ | ||
106 | 0x14a (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart2_rx.uart2_rx */ | ||
107 | 0x148 (PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */ | ||
108 | >; | ||
109 | }; | ||
110 | |||
111 | uart3_pins: pinmux_uart3_pins { | ||
112 | pinctrl-single,pins = < | ||
113 | 0x16a (PIN_INPUT_PULLDOWN | MUX_MODE0) /* uart3_cts_rctx.uart3_cts_rctx */ | ||
114 | 0x16c (PIN_OUTPUT | MUX_MODE0) /* uart3_rts_sd.uart3_rts_sd */ | ||
115 | 0x16e (WAKEUP_EN | PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ | ||
116 | 0x170 (PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ | ||
117 | >; | ||
118 | }; | ||
119 | |||
120 | /* wl12xx GPIO output for WLAN_EN */ | ||
121 | wl12xx_gpio: pinmux_wl12xx_gpio { | ||
122 | pinctrl-single,pins = < | ||
123 | 0xea (PIN_OUTPUT| MUX_MODE4) /* cam_d2.gpio_101 */ | ||
124 | >; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | &omap3_pmx_wkup { | ||
129 | wlan_host_wkup: pinmux_wlan_host_wkup_pins { | ||
130 | pinctrl-single,pins = < | ||
131 | 0x1a (PIN_INPUT_PULLUP | MUX_MODE4) /* sys_clkout1.gpio_10 WLAN_HOST_WKUP */ | ||
132 | >; | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | &i2c1 { | ||
137 | clock-frequency = <2600000>; | ||
138 | |||
139 | twl: twl@48 { | ||
140 | reg = <0x48>; | ||
141 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
142 | interrupt-parent = <&intc>; | ||
143 | }; | ||
144 | }; | ||
145 | |||
146 | #include "twl4030.dtsi" | ||
147 | |||
148 | &i2c2 { | ||
149 | clock-frequency = <400000>; | ||
150 | }; | ||
151 | |||
152 | &i2c3 { | ||
153 | clock-frequency = <400000>; | ||
154 | |||
155 | /* | ||
156 | * TVP5146 Video decoder-in for analog input support. | ||
157 | */ | ||
158 | tvp5146@5c { | ||
159 | compatible = "ti,tvp5146m2"; | ||
160 | reg = <0x5c>; | ||
161 | }; | ||
162 | }; | ||
163 | |||
164 | &twl_gpio { | ||
165 | ti,use-leds; | ||
166 | }; | ||
167 | |||
168 | &mmc1 { | ||
169 | vmmc-supply = <&vmmc1>; | ||
170 | vmmc_aux-supply = <&vsim>; | ||
171 | bus-width = <4>; | ||
172 | pinctrl-names = "default"; | ||
173 | pinctrl-0 = <&mmc1_pins>; | ||
174 | }; | ||
175 | /* | ||
176 | &mmc2 { | ||
177 | vmmc-supply = <&vmmc2>; | ||
178 | ti,non-removable; | ||
179 | bus-width = <8>; | ||
180 | pinctrl-names = "default"; | ||
181 | pinctrl-0 = <&mmc2_pins>; | ||
182 | }; | ||
183 | */ | ||
184 | &mmc3 { | ||
185 | vmmc-supply = <&wl12xx_vmmc>; | ||
186 | non-removable; | ||
187 | bus-width = <4>; | ||
188 | cap-power-off-card; | ||
189 | pinctrl-names = "default"; | ||
190 | pinctrl-0 = <&mmc3_pins>; | ||
191 | }; | ||
192 | |||
193 | &uart1 { | ||
194 | pinctrl-names = "default"; | ||
195 | pinctrl-0 = <&uart1_pins>; | ||
196 | }; | ||
197 | |||
198 | &uart2 { | ||
199 | pinctrl-names = "default"; | ||
200 | pinctrl-0 = <&uart2_pins>; | ||
201 | }; | ||
202 | |||
203 | &uart3 { | ||
204 | pinctrl-names = "default"; | ||
205 | pinctrl-0 = <&uart3_pins>; | ||
206 | }; | ||
207 | |||
208 | &uart4 { | ||
209 | status = "disabled"; | ||
210 | }; | ||
211 | |||
212 | &usb_otg_hs { | ||
213 | interface-type = <0>; | ||
214 | usb-phy = <&usb2_phy>; | ||
215 | mode = <3>; | ||
216 | power = <50>; | ||
217 | }; | ||
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index b41bd57f4328..f3a0c26ed0c2 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi | |||
@@ -19,6 +19,9 @@ | |||
19 | interrupt-parent = <&intc>; | 19 | interrupt-parent = <&intc>; |
20 | 20 | ||
21 | aliases { | 21 | aliases { |
22 | i2c0 = &i2c1; | ||
23 | i2c1 = &i2c2; | ||
24 | i2c2 = &i2c3; | ||
22 | serial0 = &uart1; | 25 | serial0 = &uart1; |
23 | serial1 = &uart2; | 26 | serial1 = &uart2; |
24 | serial2 = &uart3; | 27 | serial2 = &uart3; |
@@ -37,6 +40,7 @@ | |||
37 | 40 | ||
38 | pmu { | 41 | pmu { |
39 | compatible = "arm,cortex-a8-pmu"; | 42 | compatible = "arm,cortex-a8-pmu"; |
43 | reg = <0x54000000 0x800000>; | ||
40 | interrupts = <3>; | 44 | interrupts = <3>; |
41 | ti,hwmods = "debugss"; | 45 | ti,hwmods = "debugss"; |
42 | }; | 46 | }; |
@@ -71,6 +75,8 @@ | |||
71 | */ | 75 | */ |
72 | ocp { | 76 | ocp { |
73 | compatible = "simple-bus"; | 77 | compatible = "simple-bus"; |
78 | reg = <0x68000000 0x10000>; | ||
79 | interrupts = <9 10>; | ||
74 | #address-cells = <1>; | 80 | #address-cells = <1>; |
75 | #size-cells = <1>; | 81 | #size-cells = <1>; |
76 | ranges; | 82 | ranges; |
@@ -107,15 +113,19 @@ | |||
107 | reg = <0x48002030 0x05cc>; | 113 | reg = <0x48002030 0x05cc>; |
108 | #address-cells = <1>; | 114 | #address-cells = <1>; |
109 | #size-cells = <0>; | 115 | #size-cells = <0>; |
116 | #interrupt-cells = <1>; | ||
117 | interrupt-controller; | ||
110 | pinctrl-single,register-width = <16>; | 118 | pinctrl-single,register-width = <16>; |
111 | pinctrl-single,function-mask = <0xff1f>; | 119 | pinctrl-single,function-mask = <0xff1f>; |
112 | }; | 120 | }; |
113 | 121 | ||
114 | omap3_pmx_wkup: pinmux@0x48002a00 { | 122 | omap3_pmx_wkup: pinmux@48002a00 { |
115 | compatible = "ti,omap3-padconf", "pinctrl-single"; | 123 | compatible = "ti,omap3-padconf", "pinctrl-single"; |
116 | reg = <0x48002a00 0x5c>; | 124 | reg = <0x48002a00 0x5c>; |
117 | #address-cells = <1>; | 125 | #address-cells = <1>; |
118 | #size-cells = <0>; | 126 | #size-cells = <0>; |
127 | #interrupt-cells = <1>; | ||
128 | interrupt-controller; | ||
119 | pinctrl-single,register-width = <16>; | 129 | pinctrl-single,register-width = <16>; |
120 | pinctrl-single,function-mask = <0xff1f>; | 130 | pinctrl-single,function-mask = <0xff1f>; |
121 | }; | 131 | }; |
@@ -189,24 +199,40 @@ | |||
189 | 199 | ||
190 | uart1: serial@4806a000 { | 200 | uart1: serial@4806a000 { |
191 | compatible = "ti,omap3-uart"; | 201 | compatible = "ti,omap3-uart"; |
202 | reg = <0x4806a000 0x2000>; | ||
203 | interrupts = <72>; | ||
204 | dmas = <&sdma 49 &sdma 50>; | ||
205 | dma-names = "tx", "rx"; | ||
192 | ti,hwmods = "uart1"; | 206 | ti,hwmods = "uart1"; |
193 | clock-frequency = <48000000>; | 207 | clock-frequency = <48000000>; |
194 | }; | 208 | }; |
195 | 209 | ||
196 | uart2: serial@4806c000 { | 210 | uart2: serial@4806c000 { |
197 | compatible = "ti,omap3-uart"; | 211 | compatible = "ti,omap3-uart"; |
212 | reg = <0x4806c000 0x400>; | ||
213 | interrupts = <73>; | ||
214 | dmas = <&sdma 51 &sdma 52>; | ||
215 | dma-names = "tx", "rx"; | ||
198 | ti,hwmods = "uart2"; | 216 | ti,hwmods = "uart2"; |
199 | clock-frequency = <48000000>; | 217 | clock-frequency = <48000000>; |
200 | }; | 218 | }; |
201 | 219 | ||
202 | uart3: serial@49020000 { | 220 | uart3: serial@49020000 { |
203 | compatible = "ti,omap3-uart"; | 221 | compatible = "ti,omap3-uart"; |
222 | reg = <0x49020000 0x400>; | ||
223 | interrupts = <74>; | ||
224 | dmas = <&sdma 53 &sdma 54>; | ||
225 | dma-names = "tx", "rx"; | ||
204 | ti,hwmods = "uart3"; | 226 | ti,hwmods = "uart3"; |
205 | clock-frequency = <48000000>; | 227 | clock-frequency = <48000000>; |
206 | }; | 228 | }; |
207 | 229 | ||
208 | i2c1: i2c@48070000 { | 230 | i2c1: i2c@48070000 { |
209 | compatible = "ti,omap3-i2c"; | 231 | compatible = "ti,omap3-i2c"; |
232 | reg = <0x48070000 0x80>; | ||
233 | interrupts = <56>; | ||
234 | dmas = <&sdma 27 &sdma 28>; | ||
235 | dma-names = "tx", "rx"; | ||
210 | #address-cells = <1>; | 236 | #address-cells = <1>; |
211 | #size-cells = <0>; | 237 | #size-cells = <0>; |
212 | ti,hwmods = "i2c1"; | 238 | ti,hwmods = "i2c1"; |
@@ -214,6 +240,10 @@ | |||
214 | 240 | ||
215 | i2c2: i2c@48072000 { | 241 | i2c2: i2c@48072000 { |
216 | compatible = "ti,omap3-i2c"; | 242 | compatible = "ti,omap3-i2c"; |
243 | reg = <0x48072000 0x80>; | ||
244 | interrupts = <57>; | ||
245 | dmas = <&sdma 29 &sdma 30>; | ||
246 | dma-names = "tx", "rx"; | ||
217 | #address-cells = <1>; | 247 | #address-cells = <1>; |
218 | #size-cells = <0>; | 248 | #size-cells = <0>; |
219 | ti,hwmods = "i2c2"; | 249 | ti,hwmods = "i2c2"; |
@@ -221,6 +251,10 @@ | |||
221 | 251 | ||
222 | i2c3: i2c@48060000 { | 252 | i2c3: i2c@48060000 { |
223 | compatible = "ti,omap3-i2c"; | 253 | compatible = "ti,omap3-i2c"; |
254 | reg = <0x48060000 0x80>; | ||
255 | interrupts = <61>; | ||
256 | dmas = <&sdma 25 &sdma 26>; | ||
257 | dma-names = "tx", "rx"; | ||
224 | #address-cells = <1>; | 258 | #address-cells = <1>; |
225 | #size-cells = <0>; | 259 | #size-cells = <0>; |
226 | ti,hwmods = "i2c3"; | 260 | ti,hwmods = "i2c3"; |
@@ -228,6 +262,8 @@ | |||
228 | 262 | ||
229 | mcspi1: spi@48098000 { | 263 | mcspi1: spi@48098000 { |
230 | compatible = "ti,omap2-mcspi"; | 264 | compatible = "ti,omap2-mcspi"; |
265 | reg = <0x48098000 0x100>; | ||
266 | interrupts = <65>; | ||
231 | #address-cells = <1>; | 267 | #address-cells = <1>; |
232 | #size-cells = <0>; | 268 | #size-cells = <0>; |
233 | ti,hwmods = "mcspi1"; | 269 | ti,hwmods = "mcspi1"; |
@@ -246,6 +282,8 @@ | |||
246 | 282 | ||
247 | mcspi2: spi@4809a000 { | 283 | mcspi2: spi@4809a000 { |
248 | compatible = "ti,omap2-mcspi"; | 284 | compatible = "ti,omap2-mcspi"; |
285 | reg = <0x4809a000 0x100>; | ||
286 | interrupts = <66>; | ||
249 | #address-cells = <1>; | 287 | #address-cells = <1>; |
250 | #size-cells = <0>; | 288 | #size-cells = <0>; |
251 | ti,hwmods = "mcspi2"; | 289 | ti,hwmods = "mcspi2"; |
@@ -259,6 +297,8 @@ | |||
259 | 297 | ||
260 | mcspi3: spi@480b8000 { | 298 | mcspi3: spi@480b8000 { |
261 | compatible = "ti,omap2-mcspi"; | 299 | compatible = "ti,omap2-mcspi"; |
300 | reg = <0x480b8000 0x100>; | ||
301 | interrupts = <91>; | ||
262 | #address-cells = <1>; | 302 | #address-cells = <1>; |
263 | #size-cells = <0>; | 303 | #size-cells = <0>; |
264 | ti,hwmods = "mcspi3"; | 304 | ti,hwmods = "mcspi3"; |
@@ -272,6 +312,8 @@ | |||
272 | 312 | ||
273 | mcspi4: spi@480ba000 { | 313 | mcspi4: spi@480ba000 { |
274 | compatible = "ti,omap2-mcspi"; | 314 | compatible = "ti,omap2-mcspi"; |
315 | reg = <0x480ba000 0x100>; | ||
316 | interrupts = <48>; | ||
275 | #address-cells = <1>; | 317 | #address-cells = <1>; |
276 | #size-cells = <0>; | 318 | #size-cells = <0>; |
277 | ti,hwmods = "mcspi4"; | 319 | ti,hwmods = "mcspi4"; |
@@ -280,8 +322,17 @@ | |||
280 | dma-names = "tx0", "rx0"; | 322 | dma-names = "tx0", "rx0"; |
281 | }; | 323 | }; |
282 | 324 | ||
325 | hdqw1w: 1w@480b2000 { | ||
326 | compatible = "ti,omap3-1w"; | ||
327 | reg = <0x480b2000 0x1000>; | ||
328 | interrupts = <58>; | ||
329 | ti,hwmods = "hdq1w"; | ||
330 | }; | ||
331 | |||
283 | mmc1: mmc@4809c000 { | 332 | mmc1: mmc@4809c000 { |
284 | compatible = "ti,omap3-hsmmc"; | 333 | compatible = "ti,omap3-hsmmc"; |
334 | reg = <0x4809c000 0x200>; | ||
335 | interrupts = <83>; | ||
285 | ti,hwmods = "mmc1"; | 336 | ti,hwmods = "mmc1"; |
286 | ti,dual-volt; | 337 | ti,dual-volt; |
287 | dmas = <&sdma 61>, <&sdma 62>; | 338 | dmas = <&sdma 61>, <&sdma 62>; |
@@ -290,6 +341,8 @@ | |||
290 | 341 | ||
291 | mmc2: mmc@480b4000 { | 342 | mmc2: mmc@480b4000 { |
292 | compatible = "ti,omap3-hsmmc"; | 343 | compatible = "ti,omap3-hsmmc"; |
344 | reg = <0x480b4000 0x200>; | ||
345 | interrupts = <86>; | ||
293 | ti,hwmods = "mmc2"; | 346 | ti,hwmods = "mmc2"; |
294 | dmas = <&sdma 47>, <&sdma 48>; | 347 | dmas = <&sdma 47>, <&sdma 48>; |
295 | dma-names = "tx", "rx"; | 348 | dma-names = "tx", "rx"; |
@@ -297,6 +350,8 @@ | |||
297 | 350 | ||
298 | mmc3: mmc@480ad000 { | 351 | mmc3: mmc@480ad000 { |
299 | compatible = "ti,omap3-hsmmc"; | 352 | compatible = "ti,omap3-hsmmc"; |
353 | reg = <0x480ad000 0x200>; | ||
354 | interrupts = <94>; | ||
300 | ti,hwmods = "mmc3"; | 355 | ti,hwmods = "mmc3"; |
301 | dmas = <&sdma 77>, <&sdma 78>; | 356 | dmas = <&sdma 77>, <&sdma 78>; |
302 | dma-names = "tx", "rx"; | 357 | dma-names = "tx", "rx"; |
@@ -304,6 +359,7 @@ | |||
304 | 359 | ||
305 | wdt2: wdt@48314000 { | 360 | wdt2: wdt@48314000 { |
306 | compatible = "ti,omap3-wdt"; | 361 | compatible = "ti,omap3-wdt"; |
362 | reg = <0x48314000 0x80>; | ||
307 | ti,hwmods = "wd_timer2"; | 363 | ti,hwmods = "wd_timer2"; |
308 | }; | 364 | }; |
309 | 365 | ||
diff --git a/arch/arm/boot/dts/omap3430-sdp.dts b/arch/arm/boot/dts/omap3430-sdp.dts index e2249bcc3e63..281914ed0151 100644 --- a/arch/arm/boot/dts/omap3430-sdp.dts +++ b/arch/arm/boot/dts/omap3430-sdp.dts | |||
@@ -84,15 +84,15 @@ | |||
84 | label = "bootloader-nor"; | 84 | label = "bootloader-nor"; |
85 | reg = <0 0x40000>; | 85 | reg = <0 0x40000>; |
86 | }; | 86 | }; |
87 | partition@0x40000 { | 87 | partition@40000 { |
88 | label = "params-nor"; | 88 | label = "params-nor"; |
89 | reg = <0x40000 0x40000>; | 89 | reg = <0x40000 0x40000>; |
90 | }; | 90 | }; |
91 | partition@0x80000 { | 91 | partition@80000 { |
92 | label = "kernel-nor"; | 92 | label = "kernel-nor"; |
93 | reg = <0x80000 0x200000>; | 93 | reg = <0x80000 0x200000>; |
94 | }; | 94 | }; |
95 | partition@0x280000 { | 95 | partition@280000 { |
96 | label = "filesystem-nor"; | 96 | label = "filesystem-nor"; |
97 | reg = <0x240000 0x7d80000>; | 97 | reg = <0x240000 0x7d80000>; |
98 | }; | 98 | }; |
@@ -125,19 +125,19 @@ | |||
125 | label = "xloader-nand"; | 125 | label = "xloader-nand"; |
126 | reg = <0 0x80000>; | 126 | reg = <0 0x80000>; |
127 | }; | 127 | }; |
128 | partition@0x80000 { | 128 | partition@80000 { |
129 | label = "bootloader-nand"; | 129 | label = "bootloader-nand"; |
130 | reg = <0x80000 0x140000>; | 130 | reg = <0x80000 0x140000>; |
131 | }; | 131 | }; |
132 | partition@0x1c0000 { | 132 | partition@1c0000 { |
133 | label = "params-nand"; | 133 | label = "params-nand"; |
134 | reg = <0x1c0000 0xc0000>; | 134 | reg = <0x1c0000 0xc0000>; |
135 | }; | 135 | }; |
136 | partition@0x280000 { | 136 | partition@280000 { |
137 | label = "kernel-nand"; | 137 | label = "kernel-nand"; |
138 | reg = <0x280000 0x500000>; | 138 | reg = <0x280000 0x500000>; |
139 | }; | 139 | }; |
140 | partition@0x780000 { | 140 | partition@780000 { |
141 | label = "filesystem-nand"; | 141 | label = "filesystem-nand"; |
142 | reg = <0x780000 0x7880000>; | 142 | reg = <0x780000 0x7880000>; |
143 | }; | 143 | }; |
@@ -170,19 +170,19 @@ | |||
170 | label = "xloader-onenand"; | 170 | label = "xloader-onenand"; |
171 | reg = <0 0x80000>; | 171 | reg = <0 0x80000>; |
172 | }; | 172 | }; |
173 | partition@0x80000 { | 173 | partition@80000 { |
174 | label = "bootloader-onenand"; | 174 | label = "bootloader-onenand"; |
175 | reg = <0x80000 0x40000>; | 175 | reg = <0x80000 0x40000>; |
176 | }; | 176 | }; |
177 | partition@0xc0000 { | 177 | partition@c0000 { |
178 | label = "params-onenand"; | 178 | label = "params-onenand"; |
179 | reg = <0xc0000 0x20000>; | 179 | reg = <0xc0000 0x20000>; |
180 | }; | 180 | }; |
181 | partition@0xe0000 { | 181 | partition@e0000 { |
182 | label = "kernel-onenand"; | 182 | label = "kernel-onenand"; |
183 | reg = <0xe0000 0x200000>; | 183 | reg = <0xe0000 0x200000>; |
184 | }; | 184 | }; |
185 | partition@0x2e0000 { | 185 | partition@2e0000 { |
186 | label = "filesystem-onenand"; | 186 | label = "filesystem-onenand"; |
187 | reg = <0x2e0000 0xfd20000>; | 187 | reg = <0x2e0000 0xfd20000>; |
188 | }; | 188 | }; |
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi index f8b3765eb9be..380c22eb468e 100644 --- a/arch/arm/boot/dts/omap36xx.dtsi +++ b/arch/arm/boot/dts/omap36xx.dtsi | |||
@@ -31,6 +31,10 @@ | |||
31 | ocp { | 31 | ocp { |
32 | uart4: serial@49042000 { | 32 | uart4: serial@49042000 { |
33 | compatible = "ti,omap3-uart"; | 33 | compatible = "ti,omap3-uart"; |
34 | reg = <0x49042000 0x400>; | ||
35 | interrupts = <80>; | ||
36 | dmas = <&sdma 81 &sdma 82>; | ||
37 | dma-names = "tx", "rx"; | ||
34 | ti,hwmods = "uart4"; | 38 | ti,hwmods = "uart4"; |
35 | clock-frequency = <48000000>; | 39 | clock-frequency = <48000000>; |
36 | }; | 40 | }; |
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi index 814ab67c8c29..298e85020e1b 100644 --- a/arch/arm/boot/dts/omap4-panda-common.dtsi +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi | |||
@@ -60,22 +60,6 @@ | |||
60 | "AFMR", "Line In"; | 60 | "AFMR", "Line In"; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | /* | ||
64 | * Temp hack: Need to be replaced with the proper gpio-controlled | ||
65 | * reset driver as soon it will be merged. | ||
66 | * http://thread.gmane.org/gmane.linux.drivers.devicetree/36830 | ||
67 | */ | ||
68 | /* HS USB Port 1 RESET */ | ||
69 | hsusb1_reset: hsusb1_reset_reg { | ||
70 | compatible = "regulator-fixed"; | ||
71 | regulator-name = "hsusb1_reset"; | ||
72 | regulator-min-microvolt = <3300000>; | ||
73 | regulator-max-microvolt = <3300000>; | ||
74 | gpio = <&gpio2 30 0>; /* gpio_62 */ | ||
75 | startup-delay-us = <70000>; | ||
76 | enable-active-high; | ||
77 | }; | ||
78 | |||
79 | /* HS USB Port 1 Power */ | 63 | /* HS USB Port 1 Power */ |
80 | hsusb1_power: hsusb1_power_reg { | 64 | hsusb1_power: hsusb1_power_reg { |
81 | compatible = "regulator-fixed"; | 65 | compatible = "regulator-fixed"; |
@@ -97,7 +81,7 @@ | |||
97 | /* HS USB Host PHY on PORT 1 */ | 81 | /* HS USB Host PHY on PORT 1 */ |
98 | hsusb1_phy: hsusb1_phy { | 82 | hsusb1_phy: hsusb1_phy { |
99 | compatible = "usb-nop-xceiv"; | 83 | compatible = "usb-nop-xceiv"; |
100 | reset-supply = <&hsusb1_reset>; | 84 | reset-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>; /* gpio_62 */ |
101 | vcc-supply = <&hsusb1_power>; | 85 | vcc-supply = <&hsusb1_power>; |
102 | /** | 86 | /** |
103 | * FIXME: | 87 | * FIXME: |
@@ -122,37 +106,19 @@ | |||
122 | }; | 106 | }; |
123 | }; | 107 | }; |
124 | 108 | ||
125 | &omap4_pmx_wkup { | ||
126 | pinctrl-names = "default"; | ||
127 | pinctrl-0 = < | ||
128 | &twl6030_wkup_pins | ||
129 | >; | ||
130 | |||
131 | twl6030_wkup_pins: pinmux_twl6030_wkup_pins { | ||
132 | pinctrl-single,pins = < | ||
133 | 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */ | ||
134 | >; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | &omap4_pmx_core { | 109 | &omap4_pmx_core { |
139 | pinctrl-names = "default"; | 110 | pinctrl-names = "default"; |
140 | pinctrl-0 = < | 111 | pinctrl-0 = < |
141 | &twl6030_pins | ||
142 | &twl6040_pins | 112 | &twl6040_pins |
143 | &mcpdm_pins | 113 | &mcpdm_pins |
144 | &mcbsp1_pins | 114 | &mcbsp1_pins |
115 | &dss_dpi_pins | ||
116 | &tfp410_pins | ||
145 | &dss_hdmi_pins | 117 | &dss_hdmi_pins |
146 | &tpd12s015_pins | 118 | &tpd12s015_pins |
147 | &hsusbb1_pins | 119 | &hsusbb1_pins |
148 | >; | 120 | >; |
149 | 121 | ||
150 | twl6030_pins: pinmux_twl6030_pins { | ||
151 | pinctrl-single,pins = < | ||
152 | 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */ | ||
153 | >; | ||
154 | }; | ||
155 | |||
156 | twl6040_pins: pinmux_twl6040_pins { | 122 | twl6040_pins: pinmux_twl6040_pins { |
157 | pinctrl-single,pins = < | 123 | pinctrl-single,pins = < |
158 | 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ | 124 | 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ |
@@ -179,6 +145,47 @@ | |||
179 | >; | 145 | >; |
180 | }; | 146 | }; |
181 | 147 | ||
148 | dss_dpi_pins: pinmux_dss_dpi_pins { | ||
149 | pinctrl-single,pins = < | ||
150 | 0x122 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data23 */ | ||
151 | 0x124 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data22 */ | ||
152 | 0x126 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data21 */ | ||
153 | 0x128 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data20 */ | ||
154 | 0x12a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data19 */ | ||
155 | 0x12c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data18 */ | ||
156 | 0x12e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data15 */ | ||
157 | 0x130 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data14 */ | ||
158 | 0x132 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data13 */ | ||
159 | 0x134 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data12 */ | ||
160 | 0x136 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data11 */ | ||
161 | |||
162 | 0x174 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data10 */ | ||
163 | 0x176 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data9 */ | ||
164 | 0x178 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data16 */ | ||
165 | 0x17a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data17 */ | ||
166 | 0x17c (PIN_OUTPUT | MUX_MODE5) /* dispc2_hsync */ | ||
167 | 0x17e (PIN_OUTPUT | MUX_MODE5) /* dispc2_pclk */ | ||
168 | 0x180 (PIN_OUTPUT | MUX_MODE5) /* dispc2_vsync */ | ||
169 | 0x182 (PIN_OUTPUT | MUX_MODE5) /* dispc2_de */ | ||
170 | 0x184 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data8 */ | ||
171 | 0x186 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data7 */ | ||
172 | 0x188 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data6 */ | ||
173 | 0x18a (PIN_OUTPUT | MUX_MODE5) /* dispc2_data5 */ | ||
174 | 0x18c (PIN_OUTPUT | MUX_MODE5) /* dispc2_data4 */ | ||
175 | 0x18e (PIN_OUTPUT | MUX_MODE5) /* dispc2_data3 */ | ||
176 | |||
177 | 0x190 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data2 */ | ||
178 | 0x192 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data1 */ | ||
179 | 0x194 (PIN_OUTPUT | MUX_MODE5) /* dispc2_data0 */ | ||
180 | >; | ||
181 | }; | ||
182 | |||
183 | tfp410_pins: pinmux_tfp410_pins { | ||
184 | pinctrl-single,pins = < | ||
185 | 0x144 (PIN_OUTPUT | MUX_MODE3) /* gpio_0 */ | ||
186 | >; | ||
187 | }; | ||
188 | |||
182 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | 189 | dss_hdmi_pins: pinmux_dss_hdmi_pins { |
183 | pinctrl-single,pins = < | 190 | pinctrl-single,pins = < |
184 | 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ | 191 | 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */ |
@@ -305,6 +312,7 @@ | |||
305 | }; | 312 | }; |
306 | 313 | ||
307 | #include "twl6030.dtsi" | 314 | #include "twl6030.dtsi" |
315 | #include "twl6030_omap4.dtsi" | ||
308 | 316 | ||
309 | &i2c2 { | 317 | &i2c2 { |
310 | pinctrl-names = "default"; | 318 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts index 56c435468e94..816d1c95b592 100644 --- a/arch/arm/boot/dts/omap4-panda-es.dts +++ b/arch/arm/boot/dts/omap4-panda-es.dts | |||
@@ -62,3 +62,7 @@ | |||
62 | gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; | 62 | gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; |
63 | }; | 63 | }; |
64 | }; | 64 | }; |
65 | |||
66 | &gpio1 { | ||
67 | ti,no-reset-on-init; | ||
68 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index 4f78380ecdb8..5fc3f43c5a81 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts | |||
@@ -155,23 +155,9 @@ | |||
155 | }; | 155 | }; |
156 | }; | 156 | }; |
157 | 157 | ||
158 | &omap4_pmx_wkup { | ||
159 | pinctrl-names = "default"; | ||
160 | pinctrl-0 = < | ||
161 | &twl6030_wkup_pins | ||
162 | >; | ||
163 | |||
164 | twl6030_wkup_pins: pinmux_twl6030_wkup_pins { | ||
165 | pinctrl-single,pins = < | ||
166 | 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */ | ||
167 | >; | ||
168 | }; | ||
169 | }; | ||
170 | |||
171 | &omap4_pmx_core { | 158 | &omap4_pmx_core { |
172 | pinctrl-names = "default"; | 159 | pinctrl-names = "default"; |
173 | pinctrl-0 = < | 160 | pinctrl-0 = < |
174 | &twl6030_pins | ||
175 | &twl6040_pins | 161 | &twl6040_pins |
176 | &mcpdm_pins | 162 | &mcpdm_pins |
177 | &dmic_pins | 163 | &dmic_pins |
@@ -206,12 +192,6 @@ | |||
206 | >; | 192 | >; |
207 | }; | 193 | }; |
208 | 194 | ||
209 | twl6030_pins: pinmux_twl6030_pins { | ||
210 | pinctrl-single,pins = < | ||
211 | 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */ | ||
212 | >; | ||
213 | }; | ||
214 | |||
215 | twl6040_pins: pinmux_twl6040_pins { | 195 | twl6040_pins: pinmux_twl6040_pins { |
216 | pinctrl-single,pins = < | 196 | pinctrl-single,pins = < |
217 | 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ | 197 | 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */ |
@@ -370,6 +350,7 @@ | |||
370 | }; | 350 | }; |
371 | 351 | ||
372 | #include "twl6030.dtsi" | 352 | #include "twl6030.dtsi" |
353 | #include "twl6030_omap4.dtsi" | ||
373 | 354 | ||
374 | &i2c2 { | 355 | &i2c2 { |
375 | pinctrl-names = "default"; | 356 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index ea4054bfdfd4..a1e05853afcd 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi | |||
@@ -17,6 +17,10 @@ | |||
17 | interrupt-parent = <&gic>; | 17 | interrupt-parent = <&gic>; |
18 | 18 | ||
19 | aliases { | 19 | aliases { |
20 | i2c0 = &i2c1; | ||
21 | i2c1 = &i2c2; | ||
22 | i2c2 = &i2c3; | ||
23 | i2c3 = &i2c4; | ||
20 | serial0 = &uart1; | 24 | serial0 = &uart1; |
21 | serial1 = &uart2; | 25 | serial1 = &uart2; |
22 | serial2 = &uart3; | 26 | serial2 = &uart3; |
@@ -56,7 +60,7 @@ | |||
56 | cache-level = <2>; | 60 | cache-level = <2>; |
57 | }; | 61 | }; |
58 | 62 | ||
59 | local-timer@0x48240600 { | 63 | local-timer@48240600 { |
60 | compatible = "arm,cortex-a9-twd-timer"; | 64 | compatible = "arm,cortex-a9-twd-timer"; |
61 | reg = <0x48240600 0x20>; | 65 | reg = <0x48240600 0x20>; |
62 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>; | 66 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>; |
@@ -114,6 +118,8 @@ | |||
114 | reg = <0x4a100040 0x0196>; | 118 | reg = <0x4a100040 0x0196>; |
115 | #address-cells = <1>; | 119 | #address-cells = <1>; |
116 | #size-cells = <0>; | 120 | #size-cells = <0>; |
121 | #interrupt-cells = <1>; | ||
122 | interrupt-controller; | ||
117 | pinctrl-single,register-width = <16>; | 123 | pinctrl-single,register-width = <16>; |
118 | pinctrl-single,function-mask = <0x7fff>; | 124 | pinctrl-single,function-mask = <0x7fff>; |
119 | }; | 125 | }; |
@@ -122,6 +128,8 @@ | |||
122 | reg = <0x4a31e040 0x0038>; | 128 | reg = <0x4a31e040 0x0038>; |
123 | #address-cells = <1>; | 129 | #address-cells = <1>; |
124 | #size-cells = <0>; | 130 | #size-cells = <0>; |
131 | #interrupt-cells = <1>; | ||
132 | interrupt-controller; | ||
125 | pinctrl-single,register-width = <16>; | 133 | pinctrl-single,register-width = <16>; |
126 | pinctrl-single,function-mask = <0x7fff>; | 134 | pinctrl-single,function-mask = <0x7fff>; |
127 | }; | 135 | }; |
@@ -214,6 +222,7 @@ | |||
214 | gpmc,num-cs = <8>; | 222 | gpmc,num-cs = <8>; |
215 | gpmc,num-waitpins = <4>; | 223 | gpmc,num-waitpins = <4>; |
216 | ti,hwmods = "gpmc"; | 224 | ti,hwmods = "gpmc"; |
225 | ti,no-idle-on-init; | ||
217 | }; | 226 | }; |
218 | 227 | ||
219 | uart1: serial@4806a000 { | 228 | uart1: serial@4806a000 { |
@@ -248,6 +257,12 @@ | |||
248 | clock-frequency = <48000000>; | 257 | clock-frequency = <48000000>; |
249 | }; | 258 | }; |
250 | 259 | ||
260 | hwspinlock: spinlock@4a0f6000 { | ||
261 | compatible = "ti,omap4-hwspinlock"; | ||
262 | reg = <0x4a0f6000 0x1000>; | ||
263 | ti,hwmods = "spinlock"; | ||
264 | }; | ||
265 | |||
251 | i2c1: i2c@48070000 { | 266 | i2c1: i2c@48070000 { |
252 | compatible = "ti,omap4-i2c"; | 267 | compatible = "ti,omap4-i2c"; |
253 | reg = <0x48070000 0x100>; | 268 | reg = <0x48070000 0x100>; |
@@ -492,6 +507,7 @@ | |||
492 | reg = <0x4c000000 0x100>; | 507 | reg = <0x4c000000 0x100>; |
493 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | 508 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; |
494 | ti,hwmods = "emif1"; | 509 | ti,hwmods = "emif1"; |
510 | ti,no-idle-on-init; | ||
495 | phy-type = <1>; | 511 | phy-type = <1>; |
496 | hw-caps-read-idle-ctrl; | 512 | hw-caps-read-idle-ctrl; |
497 | hw-caps-ll-interface; | 513 | hw-caps-ll-interface; |
@@ -503,6 +519,7 @@ | |||
503 | reg = <0x4d000000 0x100>; | 519 | reg = <0x4d000000 0x100>; |
504 | interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; | 520 | interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; |
505 | ti,hwmods = "emif2"; | 521 | ti,hwmods = "emif2"; |
522 | ti,no-idle-on-init; | ||
506 | phy-type = <1>; | 523 | phy-type = <1>; |
507 | hw-caps-read-idle-ctrl; | 524 | hw-caps-read-idle-ctrl; |
508 | hw-caps-ll-interface; | 525 | hw-caps-ll-interface; |
@@ -670,5 +687,23 @@ | |||
670 | ram-bits = <12>; | 687 | ram-bits = <12>; |
671 | ctrl-module = <&omap_control_usbotg>; | 688 | ctrl-module = <&omap_control_usbotg>; |
672 | }; | 689 | }; |
690 | |||
691 | aes: aes@4b501000 { | ||
692 | compatible = "ti,omap4-aes"; | ||
693 | ti,hwmods = "aes"; | ||
694 | reg = <0x4b501000 0xa0>; | ||
695 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | ||
696 | dmas = <&sdma 111>, <&sdma 110>; | ||
697 | dma-names = "tx", "rx"; | ||
698 | }; | ||
699 | |||
700 | des: des@480a5000 { | ||
701 | compatible = "ti,omap4-des"; | ||
702 | ti,hwmods = "des"; | ||
703 | reg = <0x480a5000 0xa0>; | ||
704 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
705 | dmas = <&sdma 117>, <&sdma 116>; | ||
706 | dma-names = "tx", "rx"; | ||
707 | }; | ||
673 | }; | 708 | }; |
674 | }; | 709 | }; |
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts index 65d7b601651c..002fa70180a5 100644 --- a/arch/arm/boot/dts/omap5-uevm.dts +++ b/arch/arm/boot/dts/omap5-uevm.dts | |||
@@ -27,21 +27,10 @@ | |||
27 | regulator-max-microvolt = <3000000>; | 27 | regulator-max-microvolt = <3000000>; |
28 | }; | 28 | }; |
29 | 29 | ||
30 | /* HS USB Port 2 RESET */ | ||
31 | hsusb2_reset: hsusb2_reset_reg { | ||
32 | compatible = "regulator-fixed"; | ||
33 | regulator-name = "hsusb2_reset"; | ||
34 | regulator-min-microvolt = <3300000>; | ||
35 | regulator-max-microvolt = <3300000>; | ||
36 | gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>; /* gpio3_80 HUB_NRESET */ | ||
37 | startup-delay-us = <70000>; | ||
38 | enable-active-high; | ||
39 | }; | ||
40 | |||
41 | /* HS USB Host PHY on PORT 2 */ | 30 | /* HS USB Host PHY on PORT 2 */ |
42 | hsusb2_phy: hsusb2_phy { | 31 | hsusb2_phy: hsusb2_phy { |
43 | compatible = "usb-nop-xceiv"; | 32 | compatible = "usb-nop-xceiv"; |
44 | reset-supply = <&hsusb2_reset>; | 33 | reset-gpios = <&gpio3 16 GPIO_ACTIVE_LOW>; /* gpio3_80 HUB_NRESET */ |
45 | /** | 34 | /** |
46 | * FIXME | 35 | * FIXME |
47 | * Put the right clock phandle here when available | 36 | * Put the right clock phandle here when available |
@@ -51,21 +40,10 @@ | |||
51 | clock-frequency = <19200000>; | 40 | clock-frequency = <19200000>; |
52 | }; | 41 | }; |
53 | 42 | ||
54 | /* HS USB Port 3 RESET */ | ||
55 | hsusb3_reset: hsusb3_reset_reg { | ||
56 | compatible = "regulator-fixed"; | ||
57 | regulator-name = "hsusb3_reset"; | ||
58 | regulator-min-microvolt = <3300000>; | ||
59 | regulator-max-microvolt = <3300000>; | ||
60 | gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; /* gpio3_79 ETH_NRESET */ | ||
61 | startup-delay-us = <70000>; | ||
62 | enable-active-high; | ||
63 | }; | ||
64 | |||
65 | /* HS USB Host PHY on PORT 3 */ | 43 | /* HS USB Host PHY on PORT 3 */ |
66 | hsusb3_phy: hsusb3_phy { | 44 | hsusb3_phy: hsusb3_phy { |
67 | compatible = "usb-nop-xceiv"; | 45 | compatible = "usb-nop-xceiv"; |
68 | reset-supply = <&hsusb3_reset>; | 46 | reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>; /* gpio3_79 ETH_NRESET */ |
69 | }; | 47 | }; |
70 | 48 | ||
71 | leds { | 49 | leds { |
@@ -84,7 +62,6 @@ | |||
84 | pinctrl-0 = < | 62 | pinctrl-0 = < |
85 | &twl6040_pins | 63 | &twl6040_pins |
86 | &mcpdm_pins | 64 | &mcpdm_pins |
87 | &dmic_pins | ||
88 | &mcbsp1_pins | 65 | &mcbsp1_pins |
89 | &mcbsp2_pins | 66 | &mcbsp2_pins |
90 | &usbhost_pins | 67 | &usbhost_pins |
@@ -93,7 +70,7 @@ | |||
93 | 70 | ||
94 | twl6040_pins: pinmux_twl6040_pins { | 71 | twl6040_pins: pinmux_twl6040_pins { |
95 | pinctrl-single,pins = < | 72 | pinctrl-single,pins = < |
96 | 0x18a (PIN_OUTPUT | MUX_MODE6) /* perslimbus2_clock.gpio5_145 */ | 73 | 0x17e (PIN_OUTPUT | MUX_MODE6) /* mcspi1_somi.gpio5_141 */ |
97 | >; | 74 | >; |
98 | }; | 75 | }; |
99 | 76 | ||
@@ -107,15 +84,6 @@ | |||
107 | >; | 84 | >; |
108 | }; | 85 | }; |
109 | 86 | ||
110 | dmic_pins: pinmux_dmic_pins { | ||
111 | pinctrl-single,pins = < | ||
112 | 0x144 (PIN_INPUT | MUX_MODE0) /* abedmic_din1.abedmic_din1 */ | ||
113 | 0x146 (PIN_INPUT | MUX_MODE0) /* abedmic_din2.abedmic_din2 */ | ||
114 | 0x148 (PIN_INPUT | MUX_MODE0) /* abedmic_din3.abedmic_din3 */ | ||
115 | 0x14a (PIN_OUTPUT | MUX_MODE0) /* abedmic_clk1.abedmic_clk1 */ | ||
116 | >; | ||
117 | }; | ||
118 | |||
119 | mcbsp1_pins: pinmux_mcbsp1_pins { | 87 | mcbsp1_pins: pinmux_mcbsp1_pins { |
120 | pinctrl-single,pins = < | 88 | pinctrl-single,pins = < |
121 | 0x14c (PIN_INPUT | MUX_MODE1) /* abedmic_clk2.abemcbsp1_fsx */ | 89 | 0x14c (PIN_INPUT | MUX_MODE1) /* abedmic_clk2.abemcbsp1_fsx */ |
@@ -153,25 +121,25 @@ | |||
153 | 0xbc (PIN_INPUT | MUX_MODE0) /* mcspi2_clk */ | 121 | 0xbc (PIN_INPUT | MUX_MODE0) /* mcspi2_clk */ |
154 | 0xbe (PIN_INPUT | MUX_MODE0) /* mcspi2_simo */ | 122 | 0xbe (PIN_INPUT | MUX_MODE0) /* mcspi2_simo */ |
155 | 0xc0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mcspi2_somi */ | 123 | 0xc0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mcspi2_somi */ |
156 | 0xc2 (PIN_OUTPUT | MUX_MODE0) /* mcspi2_cs */ | 124 | 0xc2 (PIN_OUTPUT | MUX_MODE0) /* mcspi2_cs0 */ |
157 | >; | 125 | >; |
158 | }; | 126 | }; |
159 | 127 | ||
160 | mcspi3_pins: pinmux_mcspi3_pins { | 128 | mcspi3_pins: pinmux_mcspi3_pins { |
161 | pinctrl-single,pins = < | 129 | pinctrl-single,pins = < |
162 | 0x78 (PIN_INPUT | MUX_MODE1) /* mcspi2_somi */ | 130 | 0x78 (PIN_INPUT | MUX_MODE1) /* mcspi3_somi */ |
163 | 0x7a (PIN_INPUT | MUX_MODE1) /* mcspi2_cs */ | 131 | 0x7a (PIN_INPUT | MUX_MODE1) /* mcspi3_cs0 */ |
164 | 0x7c (PIN_INPUT | MUX_MODE1) /* mcspi2_simo */ | 132 | 0x7c (PIN_INPUT | MUX_MODE1) /* mcspi3_simo */ |
165 | 0x7e (PIN_INPUT | MUX_MODE1) /* mcspi2_clk */ | 133 | 0x7e (PIN_INPUT | MUX_MODE1) /* mcspi3_clk */ |
166 | >; | 134 | >; |
167 | }; | 135 | }; |
168 | 136 | ||
169 | mcspi4_pins: pinmux_mcspi4_pins { | 137 | mcspi4_pins: pinmux_mcspi4_pins { |
170 | pinctrl-single,pins = < | 138 | pinctrl-single,pins = < |
171 | 0x164 (PIN_INPUT | MUX_MODE1) /* mcspi2_clk */ | 139 | 0x164 (PIN_INPUT | MUX_MODE1) /* mcspi4_clk */ |
172 | 0x168 (PIN_INPUT | MUX_MODE1) /* mcspi2_simo */ | 140 | 0x168 (PIN_INPUT | MUX_MODE1) /* mcspi4_simo */ |
173 | 0x16a (PIN_INPUT | MUX_MODE1) /* mcspi2_somi */ | 141 | 0x16a (PIN_INPUT | MUX_MODE1) /* mcspi4_somi */ |
174 | 0x16c (PIN_INPUT | MUX_MODE1) /* mcspi2_cs */ | 142 | 0x16c (PIN_INPUT | MUX_MODE1) /* mcspi4_cs0 */ |
175 | >; | 143 | >; |
176 | }; | 144 | }; |
177 | 145 | ||
@@ -271,6 +239,14 @@ | |||
271 | reg = <0x48>; | 239 | reg = <0x48>; |
272 | interrupt-controller; | 240 | interrupt-controller; |
273 | #interrupt-cells = <2>; | 241 | #interrupt-cells = <2>; |
242 | ti,system-power-controller; | ||
243 | |||
244 | extcon_usb3: palmas_usb { | ||
245 | compatible = "ti,palmas-usb-vid"; | ||
246 | ti,enable-vbus-detection; | ||
247 | ti,enable-id-detection; | ||
248 | ti,wakeup; | ||
249 | }; | ||
274 | 250 | ||
275 | palmas_pmic { | 251 | palmas_pmic { |
276 | compatible = "ti,palmas-pmic"; | 252 | compatible = "ti,palmas-pmic"; |
@@ -334,15 +310,22 @@ | |||
334 | ti,smps-range = <0x80>; | 310 | ti,smps-range = <0x80>; |
335 | }; | 311 | }; |
336 | 312 | ||
337 | smps10_reg: smps10 { | 313 | smps10_out2_reg: smps10_out2 { |
338 | /* VBUS_5V_OTG */ | 314 | /* VBUS_5V_OTG */ |
339 | regulator-name = "smps10"; | 315 | regulator-name = "smps10_out2"; |
340 | regulator-min-microvolt = <5000000>; | 316 | regulator-min-microvolt = <5000000>; |
341 | regulator-max-microvolt = <5000000>; | 317 | regulator-max-microvolt = <5000000>; |
342 | regulator-always-on; | 318 | regulator-always-on; |
343 | regulator-boot-on; | 319 | regulator-boot-on; |
344 | }; | 320 | }; |
345 | 321 | ||
322 | smps10_out1_reg: smps10_out1 { | ||
323 | /* VBUS_5V_OTG */ | ||
324 | regulator-name = "smps10_out1"; | ||
325 | regulator-min-microvolt = <5000000>; | ||
326 | regulator-max-microvolt = <5000000>; | ||
327 | }; | ||
328 | |||
346 | ldo1_reg: ldo1 { | 329 | ldo1_reg: ldo1 { |
347 | /* VDDAPHY_CAM: vdda_csiport */ | 330 | /* VDDAPHY_CAM: vdda_csiport */ |
348 | regulator-name = "ldo1"; | 331 | regulator-name = "ldo1"; |
@@ -470,6 +453,11 @@ | |||
470 | phys = <0 &hsusb2_phy &hsusb3_phy>; | 453 | phys = <0 &hsusb2_phy &hsusb3_phy>; |
471 | }; | 454 | }; |
472 | 455 | ||
456 | &usb3 { | ||
457 | extcon = <&extcon_usb3>; | ||
458 | vbus-supply = <&smps10_out1_reg>; | ||
459 | }; | ||
460 | |||
473 | &mcspi1 { | 461 | &mcspi1 { |
474 | 462 | ||
475 | }; | 463 | }; |
@@ -503,3 +491,7 @@ | |||
503 | pinctrl-names = "default"; | 491 | pinctrl-names = "default"; |
504 | pinctrl-0 = <&uart5_pins>; | 492 | pinctrl-0 = <&uart5_pins>; |
505 | }; | 493 | }; |
494 | |||
495 | &cpu0 { | ||
496 | cpu0-supply = <&smps123_reg>; | ||
497 | }; | ||
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index c0ec6dce30fe..fc3fad563861 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi | |||
@@ -21,6 +21,11 @@ | |||
21 | interrupt-parent = <&gic>; | 21 | interrupt-parent = <&gic>; |
22 | 22 | ||
23 | aliases { | 23 | aliases { |
24 | i2c0 = &i2c1; | ||
25 | i2c1 = &i2c2; | ||
26 | i2c2 = &i2c3; | ||
27 | i2c3 = &i2c4; | ||
28 | i2c4 = &i2c5; | ||
24 | serial0 = &uart1; | 29 | serial0 = &uart1; |
25 | serial1 = &uart2; | 30 | serial1 = &uart2; |
26 | serial2 = &uart3; | 31 | serial2 = &uart3; |
@@ -33,10 +38,17 @@ | |||
33 | #address-cells = <1>; | 38 | #address-cells = <1>; |
34 | #size-cells = <0>; | 39 | #size-cells = <0>; |
35 | 40 | ||
36 | cpu@0 { | 41 | cpu0: cpu@0 { |
37 | device_type = "cpu"; | 42 | device_type = "cpu"; |
38 | compatible = "arm,cortex-a15"; | 43 | compatible = "arm,cortex-a15"; |
39 | reg = <0x0>; | 44 | reg = <0x0>; |
45 | |||
46 | operating-points = < | ||
47 | /* kHz uV */ | ||
48 | 500000 880000 | ||
49 | 1000000 1060000 | ||
50 | 1500000 1250000 | ||
51 | >; | ||
40 | }; | 52 | }; |
41 | cpu@1 { | 53 | cpu@1 { |
42 | device_type = "cpu"; | 54 | device_type = "cpu"; |
@@ -52,7 +64,6 @@ | |||
52 | <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>, | 64 | <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>, |
53 | <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>, | 65 | <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>, |
54 | <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>; | 66 | <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>; |
55 | clock-frequency = <6144000>; | ||
56 | }; | 67 | }; |
57 | 68 | ||
58 | gic: interrupt-controller@48211000 { | 69 | gic: interrupt-controller@48211000 { |
@@ -276,6 +287,12 @@ | |||
276 | ti,hwmods = "i2c5"; | 287 | ti,hwmods = "i2c5"; |
277 | }; | 288 | }; |
278 | 289 | ||
290 | hwspinlock: spinlock@4a0f6000 { | ||
291 | compatible = "ti,omap4-hwspinlock"; | ||
292 | reg = <0x4a0f6000 0x1000>; | ||
293 | ti,hwmods = "spinlock"; | ||
294 | }; | ||
295 | |||
279 | mcspi1: spi@48098000 { | 296 | mcspi1: spi@48098000 { |
280 | compatible = "ti,omap4-mcspi"; | 297 | compatible = "ti,omap4-mcspi"; |
281 | reg = <0x48098000 0x200>; | 298 | reg = <0x48098000 0x200>; |
@@ -604,9 +621,10 @@ | |||
604 | ti,hwmods = "wd_timer2"; | 621 | ti,hwmods = "wd_timer2"; |
605 | }; | 622 | }; |
606 | 623 | ||
607 | emif1: emif@0x4c000000 { | 624 | emif1: emif@4c000000 { |
608 | compatible = "ti,emif-4d5"; | 625 | compatible = "ti,emif-4d5"; |
609 | ti,hwmods = "emif1"; | 626 | ti,hwmods = "emif1"; |
627 | ti,no-idle-on-init; | ||
610 | phy-type = <2>; /* DDR PHY type: Intelli PHY */ | 628 | phy-type = <2>; /* DDR PHY type: Intelli PHY */ |
611 | reg = <0x4c000000 0x400>; | 629 | reg = <0x4c000000 0x400>; |
612 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | 630 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; |
@@ -615,9 +633,10 @@ | |||
615 | hw-caps-temp-alert; | 633 | hw-caps-temp-alert; |
616 | }; | 634 | }; |
617 | 635 | ||
618 | emif2: emif@0x4d000000 { | 636 | emif2: emif@4d000000 { |
619 | compatible = "ti,emif-4d5"; | 637 | compatible = "ti,emif-4d5"; |
620 | ti,hwmods = "emif2"; | 638 | ti,hwmods = "emif2"; |
639 | ti,no-idle-on-init; | ||
621 | phy-type = <2>; /* DDR PHY type: Intelli PHY */ | 640 | phy-type = <2>; /* DDR PHY type: Intelli PHY */ |
622 | reg = <0x4d000000 0x400>; | 641 | reg = <0x4d000000 0x400>; |
623 | interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; | 642 | interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; |
@@ -638,7 +657,7 @@ | |||
638 | reg-names = "power"; | 657 | reg-names = "power"; |
639 | }; | 658 | }; |
640 | 659 | ||
641 | omap_dwc3@4a020000 { | 660 | usb3: omap_dwc3@4a020000 { |
642 | compatible = "ti,dwc3"; | 661 | compatible = "ti,dwc3"; |
643 | ti,hwmods = "usb_otg_ss"; | 662 | ti,hwmods = "usb_otg_ss"; |
644 | reg = <0x4a020000 0x10000>; | 663 | reg = <0x4a020000 0x10000>; |
@@ -652,6 +671,7 @@ | |||
652 | reg = <0x4a030000 0x10000>; | 671 | reg = <0x4a030000 0x10000>; |
653 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; | 672 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; |
654 | usb-phy = <&usb2_phy>, <&usb3_phy>; | 673 | usb-phy = <&usb2_phy>, <&usb3_phy>; |
674 | dr_mode = "peripheral"; | ||
655 | tx-fifo-resize; | 675 | tx-fifo-resize; |
656 | }; | 676 | }; |
657 | }; | 677 | }; |
diff --git a/arch/arm/boot/dts/prima2.dtsi b/arch/arm/boot/dts/prima2.dtsi index 27ed9f5144bc..7cf78afee7b1 100644 --- a/arch/arm/boot/dts/prima2.dtsi +++ b/arch/arm/boot/dts/prima2.dtsi | |||
@@ -76,6 +76,11 @@ | |||
76 | compatible = "sirf,prima2-rsc"; | 76 | compatible = "sirf,prima2-rsc"; |
77 | reg = <0x88020000 0x1000>; | 77 | reg = <0x88020000 0x1000>; |
78 | }; | 78 | }; |
79 | |||
80 | cphifbg@88030000 { | ||
81 | compatible = "sirf,prima2-cphifbg"; | ||
82 | reg = <0x88030000 0x1000>; | ||
83 | }; | ||
79 | }; | 84 | }; |
80 | 85 | ||
81 | mem-iobg { | 86 | mem-iobg { |
@@ -86,10 +91,17 @@ | |||
86 | 91 | ||
87 | memory-controller@90000000 { | 92 | memory-controller@90000000 { |
88 | compatible = "sirf,prima2-memc"; | 93 | compatible = "sirf,prima2-memc"; |
89 | reg = <0x90000000 0x10000>; | 94 | reg = <0x90000000 0x2000>; |
90 | interrupts = <27>; | 95 | interrupts = <27>; |
91 | clocks = <&clks 5>; | 96 | clocks = <&clks 5>; |
92 | }; | 97 | }; |
98 | |||
99 | memc-monitor { | ||
100 | compatible = "sirf,prima2-memcmon"; | ||
101 | reg = <0x90002000 0x200>; | ||
102 | interrupts = <4>; | ||
103 | clocks = <&clks 32>; | ||
104 | }; | ||
93 | }; | 105 | }; |
94 | 106 | ||
95 | disp-iobg { | 107 | disp-iobg { |
@@ -287,7 +299,13 @@ | |||
287 | compatible = "sirf,prima2-spi"; | 299 | compatible = "sirf,prima2-spi"; |
288 | reg = <0xb00d0000 0x10000>; | 300 | reg = <0xb00d0000 0x10000>; |
289 | interrupts = <15>; | 301 | interrupts = <15>; |
302 | sirf,spi-num-chipselects = <1>; | ||
303 | sirf,spi-dma-rx-channel = <25>; | ||
304 | sirf,spi-dma-tx-channel = <20>; | ||
305 | #address-cells = <1>; | ||
306 | #size-cells = <0>; | ||
290 | clocks = <&clks 19>; | 307 | clocks = <&clks 19>; |
308 | status = "disabled"; | ||
291 | }; | 309 | }; |
292 | 310 | ||
293 | spi1: spi@b0170000 { | 311 | spi1: spi@b0170000 { |
@@ -295,7 +313,13 @@ | |||
295 | compatible = "sirf,prima2-spi"; | 313 | compatible = "sirf,prima2-spi"; |
296 | reg = <0xb0170000 0x10000>; | 314 | reg = <0xb0170000 0x10000>; |
297 | interrupts = <16>; | 315 | interrupts = <16>; |
316 | sirf,spi-num-chipselects = <1>; | ||
317 | sirf,spi-dma-rx-channel = <12>; | ||
318 | sirf,spi-dma-tx-channel = <13>; | ||
319 | #address-cells = <1>; | ||
320 | #size-cells = <0>; | ||
298 | clocks = <&clks 20>; | 321 | clocks = <&clks 20>; |
322 | status = "disabled"; | ||
299 | }; | 323 | }; |
300 | 324 | ||
301 | i2c0: i2c@b00e0000 { | 325 | i2c0: i2c@b00e0000 { |
@@ -304,6 +328,8 @@ | |||
304 | reg = <0xb00e0000 0x10000>; | 328 | reg = <0xb00e0000 0x10000>; |
305 | interrupts = <24>; | 329 | interrupts = <24>; |
306 | clocks = <&clks 17>; | 330 | clocks = <&clks 17>; |
331 | #address-cells = <1>; | ||
332 | #size-cells = <0>; | ||
307 | }; | 333 | }; |
308 | 334 | ||
309 | i2c1: i2c@b00f0000 { | 335 | i2c1: i2c@b00f0000 { |
@@ -312,6 +338,8 @@ | |||
312 | reg = <0xb00f0000 0x10000>; | 338 | reg = <0xb00f0000 0x10000>; |
313 | interrupts = <25>; | 339 | interrupts = <25>; |
314 | clocks = <&clks 18>; | 340 | clocks = <&clks 18>; |
341 | #address-cells = <1>; | ||
342 | #size-cells = <0>; | ||
315 | }; | 343 | }; |
316 | 344 | ||
317 | tsc@b0110000 { | 345 | tsc@b0110000 { |
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts index f444624eb097..9443e93d3cac 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | /dts-v1/; | 11 | /dts-v1/; |
12 | /include/ "r8a73a4.dtsi" | 12 | /include/ "r8a73a4.dtsi" |
13 | #include <dt-bindings/gpio/gpio.h> | ||
13 | 14 | ||
14 | / { | 15 | / { |
15 | model = "APE6EVM"; | 16 | model = "APE6EVM"; |
@@ -24,6 +25,34 @@ | |||
24 | reg = <0 0x40000000 0 0x40000000>; | 25 | reg = <0 0x40000000 0 0x40000000>; |
25 | }; | 26 | }; |
26 | 27 | ||
28 | vcc_mmc0: regulator@0 { | ||
29 | compatible = "regulator-fixed"; | ||
30 | regulator-name = "MMC0 Vcc"; | ||
31 | regulator-min-microvolt = <2800000>; | ||
32 | regulator-max-microvolt = <2800000>; | ||
33 | regulator-always-on; | ||
34 | }; | ||
35 | |||
36 | vcc_sdhi0: regulator@1 { | ||
37 | compatible = "regulator-fixed"; | ||
38 | |||
39 | regulator-name = "SDHI0 Vcc"; | ||
40 | regulator-min-microvolt = <3300000>; | ||
41 | regulator-max-microvolt = <3300000>; | ||
42 | |||
43 | gpio = <&pfc 76 GPIO_ACTIVE_HIGH>; | ||
44 | enable-active-high; | ||
45 | }; | ||
46 | |||
47 | /* Common 3.3V rail, used by several devices on APE6EVM */ | ||
48 | ape6evm_fixed_3v3: regulator@2 { | ||
49 | compatible = "regulator-fixed"; | ||
50 | regulator-name = "3V3"; | ||
51 | regulator-min-microvolt = <3300000>; | ||
52 | regulator-max-microvolt = <3300000>; | ||
53 | regulator-always-on; | ||
54 | }; | ||
55 | |||
27 | lbsc { | 56 | lbsc { |
28 | compatible = "simple-bus"; | 57 | compatible = "simple-bus"; |
29 | #address-cells = <1>; | 58 | #address-cells = <1>; |
@@ -33,6 +62,7 @@ | |||
33 | }; | 62 | }; |
34 | 63 | ||
35 | &i2c5 { | 64 | &i2c5 { |
65 | status = "okay"; | ||
36 | vdd_dvfs: max8973@1b { | 66 | vdd_dvfs: max8973@1b { |
37 | compatible = "maxim,max8973"; | 67 | compatible = "maxim,max8973"; |
38 | reg = <0x1b>; | 68 | reg = <0x1b>; |
@@ -62,4 +92,47 @@ | |||
62 | renesas,groups = "scifa0_data"; | 92 | renesas,groups = "scifa0_data"; |
63 | renesas,function = "scifa0"; | 93 | renesas,function = "scifa0"; |
64 | }; | 94 | }; |
95 | |||
96 | mmc0_pins: mmcif { | ||
97 | renesas,groups = "mmc0_data8", "mmc0_ctrl"; | ||
98 | renesas,function = "mmc0"; | ||
99 | }; | ||
100 | |||
101 | sdhi0_pins: sdhi0 { | ||
102 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd"; | ||
103 | renesas,function = "sdhi0"; | ||
104 | }; | ||
105 | |||
106 | sdhi1_pins: sdhi1 { | ||
107 | renesas,groups = "sdhi1_data4", "sdhi1_ctrl"; | ||
108 | renesas,function = "sdhi1"; | ||
109 | }; | ||
110 | }; | ||
111 | |||
112 | &mmcif0 { | ||
113 | vmmc-supply = <&vcc_mmc0>; | ||
114 | bus-width = <8>; | ||
115 | non-removable; | ||
116 | pinctrl-names = "default"; | ||
117 | pinctrl-0 = <&mmc0_pins>; | ||
118 | status = "okay"; | ||
119 | }; | ||
120 | |||
121 | &sdhi0 { | ||
122 | vmmc-supply = <&vcc_sdhi0>; | ||
123 | bus-width = <4>; | ||
124 | toshiba,mmc-wrprotect-disable; | ||
125 | pinctrl-names = "default"; | ||
126 | pinctrl-0 = <&sdhi0_pins>; | ||
127 | status = "okay"; | ||
128 | }; | ||
129 | |||
130 | &sdhi1 { | ||
131 | vmmc-supply = <&ape6evm_fixed_3v3>; | ||
132 | bus-width = <4>; | ||
133 | broken-cd; | ||
134 | toshiba,mmc-wrprotect-disable; | ||
135 | pinctrl-names = "default"; | ||
136 | pinctrl-0 = <&sdhi1_pins>; | ||
137 | status = "okay"; | ||
65 | }; | 138 | }; |
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts index 72f867e65791..91436b58016f 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts | |||
@@ -52,6 +52,7 @@ | |||
52 | }; | 52 | }; |
53 | 53 | ||
54 | &i2c5 { | 54 | &i2c5 { |
55 | status = "okay"; | ||
55 | vdd_dvfs: max8973@1b { | 56 | vdd_dvfs: max8973@1b { |
56 | compatible = "maxim,max8973"; | 57 | compatible = "maxim,max8973"; |
57 | reg = <0x1b>; | 58 | reg = <0x1b>; |
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi index 658fcc537576..287e047592a0 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi | |||
@@ -78,6 +78,49 @@ | |||
78 | <0 56 4>, <0 57 4>; | 78 | <0 56 4>, <0 57 4>; |
79 | }; | 79 | }; |
80 | 80 | ||
81 | dmac: dma-multiplexer@0 { | ||
82 | compatible = "renesas,shdma-mux"; | ||
83 | #dma-cells = <1>; | ||
84 | dma-channels = <20>; | ||
85 | dma-requests = <256>; | ||
86 | #address-cells = <2>; | ||
87 | #size-cells = <2>; | ||
88 | ranges; | ||
89 | |||
90 | dma0: dma-controller@e6700020 { | ||
91 | compatible = "renesas,shdma-r8a73a4"; | ||
92 | reg = <0 0xe6700020 0 0x89e0>; | ||
93 | interrupt-parent = <&gic>; | ||
94 | interrupts = <0 220 4 | ||
95 | 0 200 4 | ||
96 | 0 201 4 | ||
97 | 0 202 4 | ||
98 | 0 203 4 | ||
99 | 0 204 4 | ||
100 | 0 205 4 | ||
101 | 0 206 4 | ||
102 | 0 207 4 | ||
103 | 0 208 4 | ||
104 | 0 209 4 | ||
105 | 0 210 4 | ||
106 | 0 211 4 | ||
107 | 0 212 4 | ||
108 | 0 213 4 | ||
109 | 0 214 4 | ||
110 | 0 215 4 | ||
111 | 0 216 4 | ||
112 | 0 217 4 | ||
113 | 0 218 4 | ||
114 | 0 219 4>; | ||
115 | interrupt-names = "error", | ||
116 | "ch0", "ch1", "ch2", "ch3", | ||
117 | "ch4", "ch5", "ch6", "ch7", | ||
118 | "ch8", "ch9", "ch10", "ch11", | ||
119 | "ch12", "ch13", "ch14", "ch15", | ||
120 | "ch16", "ch17", "ch18", "ch19"; | ||
121 | }; | ||
122 | }; | ||
123 | |||
81 | thermal@e61f0000 { | 124 | thermal@e61f0000 { |
82 | compatible = "renesas,rcar-thermal"; | 125 | compatible = "renesas,rcar-thermal"; |
83 | reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, | 126 | reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, |
@@ -93,6 +136,7 @@ | |||
93 | reg = <0 0xe6500000 0 0x428>; | 136 | reg = <0 0xe6500000 0 0x428>; |
94 | interrupt-parent = <&gic>; | 137 | interrupt-parent = <&gic>; |
95 | interrupts = <0 174 0x4>; | 138 | interrupts = <0 174 0x4>; |
139 | status = "disabled"; | ||
96 | }; | 140 | }; |
97 | 141 | ||
98 | i2c1: i2c@e6510000 { | 142 | i2c1: i2c@e6510000 { |
@@ -102,6 +146,7 @@ | |||
102 | reg = <0 0xe6510000 0 0x428>; | 146 | reg = <0 0xe6510000 0 0x428>; |
103 | interrupt-parent = <&gic>; | 147 | interrupt-parent = <&gic>; |
104 | interrupts = <0 175 0x4>; | 148 | interrupts = <0 175 0x4>; |
149 | status = "disabled"; | ||
105 | }; | 150 | }; |
106 | 151 | ||
107 | i2c2: i2c@e6520000 { | 152 | i2c2: i2c@e6520000 { |
@@ -111,6 +156,7 @@ | |||
111 | reg = <0 0xe6520000 0 0x428>; | 156 | reg = <0 0xe6520000 0 0x428>; |
112 | interrupt-parent = <&gic>; | 157 | interrupt-parent = <&gic>; |
113 | interrupts = <0 176 0x4>; | 158 | interrupts = <0 176 0x4>; |
159 | status = "disabled"; | ||
114 | }; | 160 | }; |
115 | 161 | ||
116 | i2c3: i2c@e6530000 { | 162 | i2c3: i2c@e6530000 { |
@@ -120,6 +166,7 @@ | |||
120 | reg = <0 0xe6530000 0 0x428>; | 166 | reg = <0 0xe6530000 0 0x428>; |
121 | interrupt-parent = <&gic>; | 167 | interrupt-parent = <&gic>; |
122 | interrupts = <0 177 0x4>; | 168 | interrupts = <0 177 0x4>; |
169 | status = "disabled"; | ||
123 | }; | 170 | }; |
124 | 171 | ||
125 | i2c4: i2c@e6540000 { | 172 | i2c4: i2c@e6540000 { |
@@ -129,6 +176,7 @@ | |||
129 | reg = <0 0xe6540000 0 0x428>; | 176 | reg = <0 0xe6540000 0 0x428>; |
130 | interrupt-parent = <&gic>; | 177 | interrupt-parent = <&gic>; |
131 | interrupts = <0 178 0x4>; | 178 | interrupts = <0 178 0x4>; |
179 | status = "disabled"; | ||
132 | }; | 180 | }; |
133 | 181 | ||
134 | i2c5: i2c@e60b0000 { | 182 | i2c5: i2c@e60b0000 { |
@@ -138,6 +186,7 @@ | |||
138 | reg = <0 0xe60b0000 0 0x428>; | 186 | reg = <0 0xe60b0000 0 0x428>; |
139 | interrupt-parent = <&gic>; | 187 | interrupt-parent = <&gic>; |
140 | interrupts = <0 179 0x4>; | 188 | interrupts = <0 179 0x4>; |
189 | status = "disabled"; | ||
141 | }; | 190 | }; |
142 | 191 | ||
143 | i2c6: i2c@e6550000 { | 192 | i2c6: i2c@e6550000 { |
@@ -147,6 +196,7 @@ | |||
147 | reg = <0 0xe6550000 0 0x428>; | 196 | reg = <0 0xe6550000 0 0x428>; |
148 | interrupt-parent = <&gic>; | 197 | interrupt-parent = <&gic>; |
149 | interrupts = <0 184 0x4>; | 198 | interrupts = <0 184 0x4>; |
199 | status = "disabled"; | ||
150 | }; | 200 | }; |
151 | 201 | ||
152 | i2c7: i2c@e6560000 { | 202 | i2c7: i2c@e6560000 { |
@@ -156,6 +206,7 @@ | |||
156 | reg = <0 0xe6560000 0 0x428>; | 206 | reg = <0 0xe6560000 0 0x428>; |
157 | interrupt-parent = <&gic>; | 207 | interrupt-parent = <&gic>; |
158 | interrupts = <0 185 0x4>; | 208 | interrupts = <0 185 0x4>; |
209 | status = "disabled"; | ||
159 | }; | 210 | }; |
160 | 211 | ||
161 | i2c8: i2c@e6570000 { | 212 | i2c8: i2c@e6570000 { |
@@ -165,6 +216,7 @@ | |||
165 | reg = <0 0xe6570000 0 0x428>; | 216 | reg = <0 0xe6570000 0 0x428>; |
166 | interrupt-parent = <&gic>; | 217 | interrupt-parent = <&gic>; |
167 | interrupts = <0 173 0x4>; | 218 | interrupts = <0 173 0x4>; |
219 | status = "disabled"; | ||
168 | }; | 220 | }; |
169 | 221 | ||
170 | mmcif0: mmcif@ee200000 { | 222 | mmcif0: mmcif@ee200000 { |
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts index c638e4ab91b8..1c56c5e56950 100644 --- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts +++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts | |||
@@ -11,6 +11,7 @@ | |||
11 | /dts-v1/; | 11 | /dts-v1/; |
12 | /include/ "r8a7740.dtsi" | 12 | /include/ "r8a7740.dtsi" |
13 | #include <dt-bindings/gpio/gpio.h> | 13 | #include <dt-bindings/gpio/gpio.h> |
14 | #include <dt-bindings/pwm/pwm.h> | ||
14 | 15 | ||
15 | / { | 16 | / { |
16 | model = "armadillo 800 eva reference"; | 17 | model = "armadillo 800 eva reference"; |
@@ -34,6 +35,33 @@ | |||
34 | regulator-boot-on; | 35 | regulator-boot-on; |
35 | }; | 36 | }; |
36 | 37 | ||
38 | vcc_sdhi0: regulator@1 { | ||
39 | compatible = "regulator-fixed"; | ||
40 | |||
41 | regulator-name = "SDHI0 Vcc"; | ||
42 | regulator-min-microvolt = <3300000>; | ||
43 | regulator-max-microvolt = <3300000>; | ||
44 | |||
45 | gpio = <&pfc 75 GPIO_ACTIVE_HIGH>; | ||
46 | enable-active-high; | ||
47 | }; | ||
48 | |||
49 | vccq_sdhi0: regulator@2 { | ||
50 | compatible = "regulator-gpio"; | ||
51 | |||
52 | regulator-name = "SDHI0 VccQ"; | ||
53 | regulator-min-microvolt = <1800000>; | ||
54 | regulator-max-microvolt = <3300000>; | ||
55 | vin-supply = <&vcc_sdhi0>; | ||
56 | |||
57 | enable-gpio = <&pfc 74 GPIO_ACTIVE_HIGH>; | ||
58 | gpios = <&pfc 17 GPIO_ACTIVE_HIGH>; | ||
59 | states = <3300000 0 | ||
60 | 1800000 1>; | ||
61 | |||
62 | enable-active-high; | ||
63 | }; | ||
64 | |||
37 | leds { | 65 | leds { |
38 | compatible = "gpio-leds"; | 66 | compatible = "gpio-leds"; |
39 | led1 { | 67 | led1 { |
@@ -49,9 +77,19 @@ | |||
49 | gpios = <&pfc 177 GPIO_ACTIVE_HIGH>; | 77 | gpios = <&pfc 177 GPIO_ACTIVE_HIGH>; |
50 | }; | 78 | }; |
51 | }; | 79 | }; |
80 | |||
81 | backlight { | ||
82 | compatible = "pwm-backlight"; | ||
83 | pwms = <&tpu 2 33333 PWM_POLARITY_INVERTED>; | ||
84 | brightness-levels = <0 1 2 4 8 16 32 64 128 255>; | ||
85 | default-brightness-level = <9>; | ||
86 | pinctrl-0 = <&backlight_pins>; | ||
87 | pinctrl-names = "default"; | ||
88 | }; | ||
52 | }; | 89 | }; |
53 | 90 | ||
54 | &i2c0 { | 91 | &i2c0 { |
92 | status = "okay"; | ||
55 | touchscreen: st1232@55 { | 93 | touchscreen: st1232@55 { |
56 | compatible = "sitronix,st1232"; | 94 | compatible = "sitronix,st1232"; |
57 | reg = <0x55>; | 95 | reg = <0x55>; |
@@ -76,4 +114,44 @@ | |||
76 | renesas,groups = "intc_irq10"; | 114 | renesas,groups = "intc_irq10"; |
77 | renesas,function = "intc"; | 115 | renesas,function = "intc"; |
78 | }; | 116 | }; |
117 | |||
118 | backlight_pins: backlight { | ||
119 | renesas,groups = "tpu0_to2_1"; | ||
120 | renesas,function = "tpu0"; | ||
121 | }; | ||
122 | |||
123 | mmc0_pins: mmc0 { | ||
124 | renesas,groups = "mmc0_data8_1", "mmc0_ctrl_1"; | ||
125 | renesas,function = "mmc0"; | ||
126 | }; | ||
127 | |||
128 | sdhi0_pins: sdhi0 { | ||
129 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_wp"; | ||
130 | renesas,function = "sdhi0"; | ||
131 | }; | ||
132 | }; | ||
133 | |||
134 | &tpu { | ||
135 | status = "okay"; | ||
136 | }; | ||
137 | |||
138 | &mmcif0 { | ||
139 | pinctrl-0 = <&mmc0_pins>; | ||
140 | pinctrl-names = "default"; | ||
141 | |||
142 | vmmc-supply = <®_3p3v>; | ||
143 | bus-width = <8>; | ||
144 | non-removable; | ||
145 | status = "okay"; | ||
146 | }; | ||
147 | |||
148 | &sdhi0 { | ||
149 | pinctrl-0 = <&sdhi0_pins>; | ||
150 | pinctrl-names = "default"; | ||
151 | |||
152 | vmmc-supply = <&vcc_sdhi0>; | ||
153 | vqmmc-supply = <&vccq_sdhi0>; | ||
154 | bus-width = <4>; | ||
155 | cd-gpios = <&pfc 167 GPIO_ACTIVE_LOW>; | ||
156 | status = "okay"; | ||
79 | }; | 157 | }; |
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi index 44d3d520e01f..ae1e230f711d 100644 --- a/arch/arm/boot/dts/r8a7740.dtsi +++ b/arch/arm/boot/dts/r8a7740.dtsi | |||
@@ -131,6 +131,7 @@ | |||
131 | 0 202 0x4 | 131 | 0 202 0x4 |
132 | 0 203 0x4 | 132 | 0 203 0x4 |
133 | 0 204 0x4>; | 133 | 0 204 0x4>; |
134 | status = "disabled"; | ||
134 | }; | 135 | }; |
135 | 136 | ||
136 | i2c1: i2c@e6c20000 { | 137 | i2c1: i2c@e6c20000 { |
@@ -143,6 +144,7 @@ | |||
143 | 0 71 0x4 | 144 | 0 71 0x4 |
144 | 0 72 0x4 | 145 | 0 72 0x4 |
145 | 0 73 0x4>; | 146 | 0 73 0x4>; |
147 | status = "disabled"; | ||
146 | }; | 148 | }; |
147 | 149 | ||
148 | pfc: pfc@e6050000 { | 150 | pfc: pfc@e6050000 { |
@@ -159,4 +161,37 @@ | |||
159 | status = "disabled"; | 161 | status = "disabled"; |
160 | #pwm-cells = <3>; | 162 | #pwm-cells = <3>; |
161 | }; | 163 | }; |
164 | |||
165 | mmcif0: mmcif@e6bd0000 { | ||
166 | compatible = "renesas,sh-mmcif"; | ||
167 | reg = <0xe6bd0000 0x100>; | ||
168 | interrupt-parent = <&gic>; | ||
169 | interrupts = <0 56 4 | ||
170 | 0 57 4>; | ||
171 | status = "disabled"; | ||
172 | }; | ||
173 | |||
174 | sdhi0: sdhi@e6850000 { | ||
175 | compatible = "renesas,sdhi-r8a7740"; | ||
176 | reg = <0xe6850000 0x100>; | ||
177 | interrupt-parent = <&gic>; | ||
178 | interrupts = <0 117 4 | ||
179 | 0 118 4 | ||
180 | 0 119 4>; | ||
181 | cap-sd-highspeed; | ||
182 | cap-sdio-irq; | ||
183 | status = "disabled"; | ||
184 | }; | ||
185 | |||
186 | sdhi1: sdhi@e6860000 { | ||
187 | compatible = "renesas,sdhi-r8a7740"; | ||
188 | reg = <0xe6860000 0x100>; | ||
189 | interrupt-parent = <&gic>; | ||
190 | interrupts = <0 121 4 | ||
191 | 0 122 4 | ||
192 | 0 123 4>; | ||
193 | cap-sd-highspeed; | ||
194 | cap-sdio-irq; | ||
195 | status = "disabled"; | ||
196 | }; | ||
162 | }; | 197 | }; |
diff --git a/arch/arm/boot/dts/r8a7778-bockw-reference.dts b/arch/arm/boot/dts/r8a7778-bockw-reference.dts index 9bb903a3230d..969e386e852c 100644 --- a/arch/arm/boot/dts/r8a7778-bockw-reference.dts +++ b/arch/arm/boot/dts/r8a7778-bockw-reference.dts | |||
@@ -22,11 +22,36 @@ | |||
22 | compatible = "renesas,bockw-reference", "renesas,r8a7778"; | 22 | compatible = "renesas,bockw-reference", "renesas,r8a7778"; |
23 | 23 | ||
24 | chosen { | 24 | chosen { |
25 | bootargs = "console=ttySC0,115200 ignore_loglevel rw"; | 25 | bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw"; |
26 | }; | 26 | }; |
27 | 27 | ||
28 | memory { | 28 | memory { |
29 | device_type = "memory"; | 29 | device_type = "memory"; |
30 | reg = <0x60000000 0x10000000>; | 30 | reg = <0x60000000 0x10000000>; |
31 | }; | 31 | }; |
32 | |||
33 | fixedregulator3v3: fixedregulator@0 { | ||
34 | compatible = "regulator-fixed"; | ||
35 | regulator-name = "fixed-3.3V"; | ||
36 | regulator-min-microvolt = <3300000>; | ||
37 | regulator-max-microvolt = <3300000>; | ||
38 | regulator-boot-on; | ||
39 | regulator-always-on; | ||
40 | }; | ||
41 | |||
42 | ethernet@18300000 { | ||
43 | compatible = "smsc,lan9220", "smsc,lan9115"; | ||
44 | reg = <0x18300000 0x1000>; | ||
45 | |||
46 | phy-mode = "mii"; | ||
47 | interrupt-parent = <&irqpin>; | ||
48 | interrupts = <0 0>; /* IRQ0: hwirq 0 on irqpin */ | ||
49 | reg-io-width = <4>; | ||
50 | vddvario-supply = <&fixedregulator3v3>; | ||
51 | vdd33a-supply = <&fixedregulator3v3>; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | &irqpin { | ||
56 | status = "okay"; | ||
32 | }; | 57 | }; |
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi index 3577aba82583..a6308a399e2d 100644 --- a/arch/arm/boot/dts/r8a7778.dtsi +++ b/arch/arm/boot/dts/r8a7778.dtsi | |||
@@ -33,6 +33,25 @@ | |||
33 | <0xfe430000 0x100>; | 33 | <0xfe430000 0x100>; |
34 | }; | 34 | }; |
35 | 35 | ||
36 | /* irqpin: IRQ0 - IRQ3 */ | ||
37 | irqpin: irqpin@fe78001c { | ||
38 | compatible = "renesas,intc-irqpin"; | ||
39 | #interrupt-cells = <2>; | ||
40 | interrupt-controller; | ||
41 | status = "disabled"; /* default off */ | ||
42 | reg = <0xfe78001c 4>, | ||
43 | <0xfe780010 4>, | ||
44 | <0xfe780024 4>, | ||
45 | <0xfe780044 4>, | ||
46 | <0xfe780064 4>; | ||
47 | interrupt-parent = <&gic>; | ||
48 | interrupts = <0 27 0x4 | ||
49 | 0 28 0x4 | ||
50 | 0 29 0x4 | ||
51 | 0 30 0x4>; | ||
52 | sense-bitfield-width = <2>; | ||
53 | }; | ||
54 | |||
36 | gpio0: gpio@ffc40000 { | 55 | gpio0: gpio@ffc40000 { |
37 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | 56 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; |
38 | reg = <0xffc40000 0x2c>; | 57 | reg = <0xffc40000 0x2c>; |
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts index 6d5508392252..ab4110aa3c3b 100644 --- a/arch/arm/boot/dts/r8a7779-marzen-reference.dts +++ b/arch/arm/boot/dts/r8a7779-marzen-reference.dts | |||
@@ -42,8 +42,8 @@ | |||
42 | pinctrl-names = "default"; | 42 | pinctrl-names = "default"; |
43 | 43 | ||
44 | phy-mode = "mii"; | 44 | phy-mode = "mii"; |
45 | interrupt-parent = <&gic>; | 45 | interrupt-parent = <&irqpin0>; |
46 | interrupts = <0 28 0x4>; | 46 | interrupts = <1 0>; /* IRQ1: hwirq 1 on irqpin0 */ |
47 | reg-io-width = <4>; | 47 | reg-io-width = <4>; |
48 | vddvario-supply = <&fixedregulator3v3>; | 48 | vddvario-supply = <&fixedregulator3v3>; |
49 | vdd33a-supply = <&fixedregulator3v3>; | 49 | vdd33a-supply = <&fixedregulator3v3>; |
@@ -63,6 +63,10 @@ | |||
63 | }; | 63 | }; |
64 | }; | 64 | }; |
65 | 65 | ||
66 | &irqpin0 { | ||
67 | status = "okay"; | ||
68 | }; | ||
69 | |||
66 | &pfc { | 70 | &pfc { |
67 | pinctrl-0 = <&scif2_pins &scif4_pins &sdhi0_pins>; | 71 | pinctrl-0 = <&scif2_pins &scif4_pins &sdhi0_pins>; |
68 | pinctrl-names = "default"; | 72 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi index ebbe507fcbfa..19faeac3fd2e 100644 --- a/arch/arm/boot/dts/r8a7779.dtsi +++ b/arch/arm/boot/dts/r8a7779.dtsi | |||
@@ -135,6 +135,7 @@ | |||
135 | irqpin0: irqpin@fe780010 { | 135 | irqpin0: irqpin@fe780010 { |
136 | compatible = "renesas,intc-irqpin"; | 136 | compatible = "renesas,intc-irqpin"; |
137 | #interrupt-cells = <2>; | 137 | #interrupt-cells = <2>; |
138 | status = "disabled"; | ||
138 | interrupt-controller; | 139 | interrupt-controller; |
139 | reg = <0xfe78001c 4>, | 140 | reg = <0xfe78001c 4>, |
140 | <0xfe780010 4>, | 141 | <0xfe780010 4>, |
@@ -156,6 +157,7 @@ | |||
156 | reg = <0xffc70000 0x1000>; | 157 | reg = <0xffc70000 0x1000>; |
157 | interrupt-parent = <&gic>; | 158 | interrupt-parent = <&gic>; |
158 | interrupts = <0 79 0x4>; | 159 | interrupts = <0 79 0x4>; |
160 | status = "disabled"; | ||
159 | }; | 161 | }; |
160 | 162 | ||
161 | i2c1: i2c@ffc71000 { | 163 | i2c1: i2c@ffc71000 { |
@@ -165,6 +167,7 @@ | |||
165 | reg = <0xffc71000 0x1000>; | 167 | reg = <0xffc71000 0x1000>; |
166 | interrupt-parent = <&gic>; | 168 | interrupt-parent = <&gic>; |
167 | interrupts = <0 82 0x4>; | 169 | interrupts = <0 82 0x4>; |
170 | status = "disabled"; | ||
168 | }; | 171 | }; |
169 | 172 | ||
170 | i2c2: i2c@ffc72000 { | 173 | i2c2: i2c@ffc72000 { |
@@ -174,6 +177,7 @@ | |||
174 | reg = <0xffc72000 0x1000>; | 177 | reg = <0xffc72000 0x1000>; |
175 | interrupt-parent = <&gic>; | 178 | interrupt-parent = <&gic>; |
176 | interrupts = <0 80 0x4>; | 179 | interrupts = <0 80 0x4>; |
180 | status = "disabled"; | ||
177 | }; | 181 | }; |
178 | 182 | ||
179 | i2c3: i2c@ffc73000 { | 183 | i2c3: i2c@ffc73000 { |
@@ -183,6 +187,7 @@ | |||
183 | reg = <0xffc73000 0x1000>; | 187 | reg = <0xffc73000 0x1000>; |
184 | interrupt-parent = <&gic>; | 188 | interrupt-parent = <&gic>; |
185 | interrupts = <0 81 0x4>; | 189 | interrupts = <0 81 0x4>; |
190 | status = "disabled"; | ||
186 | }; | 191 | }; |
187 | 192 | ||
188 | pfc: pfc@fffc0000 { | 193 | pfc: pfc@fffc0000 { |
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi index 413b4c29e782..ee845fad939b 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi | |||
@@ -24,6 +24,55 @@ | |||
24 | reg = <0>; | 24 | reg = <0>; |
25 | clock-frequency = <1300000000>; | 25 | clock-frequency = <1300000000>; |
26 | }; | 26 | }; |
27 | |||
28 | cpu1: cpu@1 { | ||
29 | device_type = "cpu"; | ||
30 | compatible = "arm,cortex-a15"; | ||
31 | reg = <1>; | ||
32 | clock-frequency = <1300000000>; | ||
33 | }; | ||
34 | |||
35 | cpu2: cpu@2 { | ||
36 | device_type = "cpu"; | ||
37 | compatible = "arm,cortex-a15"; | ||
38 | reg = <2>; | ||
39 | clock-frequency = <1300000000>; | ||
40 | }; | ||
41 | |||
42 | cpu3: cpu@3 { | ||
43 | device_type = "cpu"; | ||
44 | compatible = "arm,cortex-a15"; | ||
45 | reg = <3>; | ||
46 | clock-frequency = <1300000000>; | ||
47 | }; | ||
48 | |||
49 | cpu4: cpu@4 { | ||
50 | device_type = "cpu"; | ||
51 | compatible = "arm,cortex-a7"; | ||
52 | reg = <0x100>; | ||
53 | clock-frequency = <780000000>; | ||
54 | }; | ||
55 | |||
56 | cpu5: cpu@5 { | ||
57 | device_type = "cpu"; | ||
58 | compatible = "arm,cortex-a7"; | ||
59 | reg = <0x101>; | ||
60 | clock-frequency = <780000000>; | ||
61 | }; | ||
62 | |||
63 | cpu6: cpu@6 { | ||
64 | device_type = "cpu"; | ||
65 | compatible = "arm,cortex-a7"; | ||
66 | reg = <0x102>; | ||
67 | clock-frequency = <780000000>; | ||
68 | }; | ||
69 | |||
70 | cpu7: cpu@7 { | ||
71 | device_type = "cpu"; | ||
72 | compatible = "arm,cortex-a7"; | ||
73 | reg = <0x103>; | ||
74 | clock-frequency = <780000000>; | ||
75 | }; | ||
27 | }; | 76 | }; |
28 | 77 | ||
29 | gic: interrupt-controller@f1001000 { | 78 | gic: interrupt-controller@f1001000 { |
@@ -127,6 +176,46 @@ | |||
127 | interrupts = <0 0 4>, <0 1 4>, <0 2 4>, <0 3 4>; | 176 | interrupts = <0 0 4>, <0 1 4>, <0 2 4>, <0 3 4>; |
128 | }; | 177 | }; |
129 | 178 | ||
179 | i2c0: i2c@e6508000 { | ||
180 | #address-cells = <1>; | ||
181 | #size-cells = <0>; | ||
182 | compatible = "renesas,i2c-r8a7790"; | ||
183 | reg = <0 0xe6508000 0 0x40>; | ||
184 | interrupt-parent = <&gic>; | ||
185 | interrupts = <0 287 0x4>; | ||
186 | status = "disabled"; | ||
187 | }; | ||
188 | |||
189 | i2c1: i2c@e6518000 { | ||
190 | #address-cells = <1>; | ||
191 | #size-cells = <0>; | ||
192 | compatible = "renesas,i2c-r8a7790"; | ||
193 | reg = <0 0xe6518000 0 0x40>; | ||
194 | interrupt-parent = <&gic>; | ||
195 | interrupts = <0 288 0x4>; | ||
196 | status = "disabled"; | ||
197 | }; | ||
198 | |||
199 | i2c2: i2c@e6530000 { | ||
200 | #address-cells = <1>; | ||
201 | #size-cells = <0>; | ||
202 | compatible = "renesas,i2c-r8a7790"; | ||
203 | reg = <0 0xe6530000 0 0x40>; | ||
204 | interrupt-parent = <&gic>; | ||
205 | interrupts = <0 286 0x4>; | ||
206 | status = "disabled"; | ||
207 | }; | ||
208 | |||
209 | i2c3: i2c@e6540000 { | ||
210 | #address-cells = <1>; | ||
211 | #size-cells = <0>; | ||
212 | compatible = "renesas,i2c-r8a7790"; | ||
213 | reg = <0 0xe6540000 0 0x40>; | ||
214 | interrupt-parent = <&gic>; | ||
215 | interrupts = <0 290 0x4>; | ||
216 | status = "disabled"; | ||
217 | }; | ||
218 | |||
130 | mmcif0: mmcif@ee200000 { | 219 | mmcif0: mmcif@ee200000 { |
131 | compatible = "renesas,sh-mmcif"; | 220 | compatible = "renesas,sh-mmcif"; |
132 | reg = <0 0xee200000 0 0x80>; | 221 | reg = <0 0xee200000 0 0x80>; |
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi index bbed43bd9be9..fea5cfef4691 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi | |||
@@ -25,6 +25,13 @@ | |||
25 | reg = <0>; | 25 | reg = <0>; |
26 | clock-frequency = <1300000000>; | 26 | clock-frequency = <1300000000>; |
27 | }; | 27 | }; |
28 | |||
29 | cpu1: cpu@1 { | ||
30 | device_type = "cpu"; | ||
31 | compatible = "arm,cortex-a15"; | ||
32 | reg = <1>; | ||
33 | clock-frequency = <1300000000>; | ||
34 | }; | ||
28 | }; | 35 | }; |
29 | 36 | ||
30 | gic: interrupt-controller@f1001000 { | 37 | gic: interrupt-controller@f1001000 { |
@@ -38,4 +45,30 @@ | |||
38 | <0 0xf1006000 0 0x2000>; | 45 | <0 0xf1006000 0 0x2000>; |
39 | interrupts = <1 9 0xf04>; | 46 | interrupts = <1 9 0xf04>; |
40 | }; | 47 | }; |
48 | |||
49 | timer { | ||
50 | compatible = "arm,armv7-timer"; | ||
51 | interrupts = <1 13 0xf08>, | ||
52 | <1 14 0xf08>, | ||
53 | <1 11 0xf08>, | ||
54 | <1 10 0xf08>; | ||
55 | }; | ||
56 | |||
57 | irqc0: interrupt-controller@e61c0000 { | ||
58 | compatible = "renesas,irqc"; | ||
59 | #interrupt-cells = <2>; | ||
60 | interrupt-controller; | ||
61 | reg = <0 0xe61c0000 0 0x200>; | ||
62 | interrupt-parent = <&gic>; | ||
63 | interrupts = <0 0 4>, | ||
64 | <0 1 4>, | ||
65 | <0 2 4>, | ||
66 | <0 3 4>, | ||
67 | <0 12 4>, | ||
68 | <0 13 4>, | ||
69 | <0 14 4>, | ||
70 | <0 15 4>, | ||
71 | <0 16 4>, | ||
72 | <0 17 4>; | ||
73 | }; | ||
41 | }; | 74 | }; |
diff --git a/arch/arm/boot/dts/s3c6400.dtsi b/arch/arm/boot/dts/s3c6400.dtsi new file mode 100644 index 000000000000..a7d1c8ec150d --- /dev/null +++ b/arch/arm/boot/dts/s3c6400.dtsi | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Samsung's S3C6400 SoC device tree source | ||
3 | * | ||
4 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
5 | * | ||
6 | * Samsung's S3C6400 SoC device nodes are listed in this file. S3C6400 | ||
7 | * based board files can include this file and provide values for board specfic | ||
8 | * bindings. | ||
9 | * | ||
10 | * Note: This file does not include device nodes for all the controllers in | ||
11 | * S3C6400 SoC. As device tree coverage for S3C6400 increases, additional | ||
12 | * nodes can be added to this file. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License version 2 as | ||
16 | * published by the Free Software Foundation. | ||
17 | */ | ||
18 | |||
19 | #include "s3c64xx.dtsi" | ||
20 | |||
21 | / { | ||
22 | compatible = "samsung,s3c6400"; | ||
23 | }; | ||
24 | |||
25 | &vic0 { | ||
26 | valid-mask = <0xfffffe1f>; | ||
27 | valid-wakeup-mask = <0x00200004>; | ||
28 | }; | ||
29 | |||
30 | &vic1 { | ||
31 | valid-mask = <0xffffffff>; | ||
32 | valid-wakeup-mask = <0x53020000>; | ||
33 | }; | ||
34 | |||
35 | &soc { | ||
36 | clocks: clock-controller@7e00f000 { | ||
37 | compatible = "samsung,s3c6400-clock"; | ||
38 | reg = <0x7e00f000 0x1000>; | ||
39 | #clock-cells = <1>; | ||
40 | }; | ||
41 | }; | ||
diff --git a/arch/arm/boot/dts/s3c6410-mini6410.dts b/arch/arm/boot/dts/s3c6410-mini6410.dts new file mode 100644 index 000000000000..57e00f9bce99 --- /dev/null +++ b/arch/arm/boot/dts/s3c6410-mini6410.dts | |||
@@ -0,0 +1,228 @@ | |||
1 | /* | ||
2 | * Samsung's S3C6410 based Mini6410 board device tree source | ||
3 | * | ||
4 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
5 | * | ||
6 | * Device tree source file for FriendlyARM Mini6410 board which is based on | ||
7 | * Samsung's S3C6410 SoC. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | |||
16 | #include <dt-bindings/gpio/gpio.h> | ||
17 | #include <dt-bindings/interrupt-controller/irq.h> | ||
18 | |||
19 | #include "s3c6410.dtsi" | ||
20 | |||
21 | / { | ||
22 | model = "FriendlyARM Mini6410 board based on S3C6410"; | ||
23 | compatible = "friendlyarm,mini6410", "samsung,s3c6410"; | ||
24 | |||
25 | memory { | ||
26 | reg = <0x50000000 0x10000000>; | ||
27 | }; | ||
28 | |||
29 | chosen { | ||
30 | bootargs = "console=ttySAC0,115200n8 earlyprintk rootwait root=/dev/mmcblk0p1"; | ||
31 | }; | ||
32 | |||
33 | clocks { | ||
34 | compatible = "simple-bus"; | ||
35 | #address-cells = <1>; | ||
36 | #size-cells = <0>; | ||
37 | |||
38 | fin_pll: oscillator@0 { | ||
39 | compatible = "fixed-clock"; | ||
40 | reg = <0>; | ||
41 | clock-frequency = <12000000>; | ||
42 | clock-output-names = "fin_pll"; | ||
43 | #clock-cells = <0>; | ||
44 | }; | ||
45 | |||
46 | xusbxti: oscillator@1 { | ||
47 | compatible = "fixed-clock"; | ||
48 | reg = <1>; | ||
49 | clock-output-names = "xusbxti"; | ||
50 | clock-frequency = <48000000>; | ||
51 | #clock-cells = <0>; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | srom-cs1@18000000 { | ||
56 | compatible = "simple-bus"; | ||
57 | #address-cells = <1>; | ||
58 | #size-cells = <1>; | ||
59 | reg = <0x18000000 0x8000000>; | ||
60 | ranges; | ||
61 | |||
62 | ethernet@18000000 { | ||
63 | compatible = "davicom,dm9000"; | ||
64 | reg = <0x18000000 0x2 0x18000004 0x2>; | ||
65 | interrupt-parent = <&gpn>; | ||
66 | interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; | ||
67 | davicom,no-eeprom; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | gpio-keys { | ||
72 | compatible = "gpio-keys"; | ||
73 | pinctrl-names = "default"; | ||
74 | pinctrl-0 = <&gpio_keys>; | ||
75 | autorepeat; | ||
76 | |||
77 | button-k1 { | ||
78 | label = "K1"; | ||
79 | gpios = <&gpn 0 GPIO_ACTIVE_LOW>; | ||
80 | linux,code = <2>; | ||
81 | debounce-interval = <20>; | ||
82 | }; | ||
83 | |||
84 | button-k2 { | ||
85 | label = "K2"; | ||
86 | gpios = <&gpn 1 GPIO_ACTIVE_LOW>; | ||
87 | linux,code = <3>; | ||
88 | debounce-interval = <20>; | ||
89 | }; | ||
90 | |||
91 | button-k3 { | ||
92 | label = "K3"; | ||
93 | gpios = <&gpn 2 GPIO_ACTIVE_LOW>; | ||
94 | linux,code = <4>; | ||
95 | debounce-interval = <20>; | ||
96 | }; | ||
97 | |||
98 | button-k4 { | ||
99 | label = "K4"; | ||
100 | gpios = <&gpn 3 GPIO_ACTIVE_LOW>; | ||
101 | linux,code = <5>; | ||
102 | debounce-interval = <20>; | ||
103 | }; | ||
104 | |||
105 | button-k5 { | ||
106 | label = "K5"; | ||
107 | gpios = <&gpn 4 GPIO_ACTIVE_LOW>; | ||
108 | linux,code = <6>; | ||
109 | debounce-interval = <20>; | ||
110 | }; | ||
111 | |||
112 | button-k6 { | ||
113 | label = "K6"; | ||
114 | gpios = <&gpn 5 GPIO_ACTIVE_LOW>; | ||
115 | linux,code = <7>; | ||
116 | debounce-interval = <20>; | ||
117 | }; | ||
118 | |||
119 | button-k7 { | ||
120 | label = "K7"; | ||
121 | gpios = <&gpl 11 GPIO_ACTIVE_LOW>; | ||
122 | linux,code = <8>; | ||
123 | debounce-interval = <20>; | ||
124 | }; | ||
125 | |||
126 | button-k8 { | ||
127 | label = "K8"; | ||
128 | gpios = <&gpl 12 GPIO_ACTIVE_LOW>; | ||
129 | linux,code = <9>; | ||
130 | debounce-interval = <20>; | ||
131 | }; | ||
132 | }; | ||
133 | |||
134 | leds { | ||
135 | compatible = "gpio-leds"; | ||
136 | pinctrl-names = "default"; | ||
137 | pinctrl-0 = <&gpio_leds>; | ||
138 | |||
139 | led-1 { | ||
140 | label = "LED1"; | ||
141 | gpios = <&gpk 4 GPIO_ACTIVE_LOW>; | ||
142 | linux,default-trigger = "heartbeat"; | ||
143 | }; | ||
144 | |||
145 | led-2 { | ||
146 | label = "LED2"; | ||
147 | gpios = <&gpk 5 GPIO_ACTIVE_LOW>; | ||
148 | linux,default-trigger = "mmc0"; | ||
149 | }; | ||
150 | |||
151 | led-3 { | ||
152 | label = "LED3"; | ||
153 | gpios = <&gpk 6 GPIO_ACTIVE_LOW>; | ||
154 | }; | ||
155 | |||
156 | led-4 { | ||
157 | label = "LED4"; | ||
158 | gpios = <&gpk 7 GPIO_ACTIVE_LOW>; | ||
159 | }; | ||
160 | }; | ||
161 | |||
162 | buzzer { | ||
163 | compatible = "pwm-beeper"; | ||
164 | pwms = <&pwm 0 1000000 0>; | ||
165 | pinctrl-names = "default"; | ||
166 | pinctrl-0 = <&pwm0_out>; | ||
167 | }; | ||
168 | }; | ||
169 | |||
170 | &sdhci0 { | ||
171 | pinctrl-names = "default"; | ||
172 | pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; | ||
173 | bus-width = <4>; | ||
174 | status = "okay"; | ||
175 | }; | ||
176 | |||
177 | &uart0 { | ||
178 | pinctrl-names = "default"; | ||
179 | pinctrl-0 = <&uart0_data>; | ||
180 | status = "okay"; | ||
181 | }; | ||
182 | |||
183 | &uart1 { | ||
184 | pinctrl-names = "default"; | ||
185 | pinctrl-0 = <&uart1_data>, <&uart1_fctl>; | ||
186 | status = "okay"; | ||
187 | }; | ||
188 | |||
189 | &uart2 { | ||
190 | pinctrl-names = "default"; | ||
191 | pinctrl-0 = <&uart2_data>; | ||
192 | status = "okay"; | ||
193 | }; | ||
194 | |||
195 | &uart3 { | ||
196 | pinctrl-names = "default"; | ||
197 | pinctrl-0 = <&uart3_data>; | ||
198 | status = "okay"; | ||
199 | }; | ||
200 | |||
201 | &pwm { | ||
202 | status = "okay"; | ||
203 | }; | ||
204 | |||
205 | &pinctrl0 { | ||
206 | gpio_leds: gpio-leds { | ||
207 | samsung,pins = "gpk-4", "gpk-5", "gpk-6", "gpk-7"; | ||
208 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
209 | }; | ||
210 | |||
211 | gpio_keys: gpio-keys { | ||
212 | samsung,pins = "gpn-0", "gpn-1", "gpn-2", "gpn-3", | ||
213 | "gpn-4", "gpn-5", "gpl-11", "gpl-12"; | ||
214 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
215 | }; | ||
216 | }; | ||
217 | |||
218 | &i2c0 { | ||
219 | pinctrl-names = "default"; | ||
220 | pinctrl-0 = <&i2c0_bus>; | ||
221 | status = "okay"; | ||
222 | |||
223 | eeprom@50 { | ||
224 | compatible = "atmel,24c08"; | ||
225 | reg = <0x50>; | ||
226 | pagesize = <16>; | ||
227 | }; | ||
228 | }; | ||
diff --git a/arch/arm/boot/dts/s3c6410-smdk6410.dts b/arch/arm/boot/dts/s3c6410-smdk6410.dts new file mode 100644 index 000000000000..ecf35ec466f7 --- /dev/null +++ b/arch/arm/boot/dts/s3c6410-smdk6410.dts | |||
@@ -0,0 +1,103 @@ | |||
1 | /* | ||
2 | * Samsung S3C6410 based SMDK6410 board device tree source. | ||
3 | * | ||
4 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
5 | * | ||
6 | * Device tree source file for SAMSUNG SMDK6410 board which is based on | ||
7 | * Samsung's S3C6410 SoC. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License version 2 as | ||
11 | * published by the Free Software Foundation. | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | |||
16 | #include <dt-bindings/gpio/gpio.h> | ||
17 | #include <dt-bindings/interrupt-controller/irq.h> | ||
18 | |||
19 | #include "s3c6410.dtsi" | ||
20 | |||
21 | / { | ||
22 | model = "SAMSUNG SMDK6410 board based on S3C6410"; | ||
23 | compatible = "samsung,mini6410", "samsung,s3c6410"; | ||
24 | |||
25 | memory { | ||
26 | reg = <0x50000000 0x8000000>; | ||
27 | }; | ||
28 | |||
29 | chosen { | ||
30 | bootargs = "console=ttySAC0,115200n8 earlyprintk rootwait root=/dev/mmcblk0p1"; | ||
31 | }; | ||
32 | |||
33 | clocks { | ||
34 | compatible = "simple-bus"; | ||
35 | #address-cells = <1>; | ||
36 | #size-cells = <0>; | ||
37 | |||
38 | fin_pll: oscillator@0 { | ||
39 | compatible = "fixed-clock"; | ||
40 | reg = <0>; | ||
41 | clock-frequency = <12000000>; | ||
42 | clock-output-names = "fin_pll"; | ||
43 | #clock-cells = <0>; | ||
44 | }; | ||
45 | |||
46 | xusbxti: oscillator@1 { | ||
47 | compatible = "fixed-clock"; | ||
48 | reg = <1>; | ||
49 | clock-output-names = "xusbxti"; | ||
50 | clock-frequency = <48000000>; | ||
51 | #clock-cells = <0>; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | srom-cs1@18000000 { | ||
56 | compatible = "simple-bus"; | ||
57 | #address-cells = <1>; | ||
58 | #size-cells = <1>; | ||
59 | reg = <0x18000000 0x8000000>; | ||
60 | ranges; | ||
61 | |||
62 | ethernet@18000000 { | ||
63 | compatible = "smsc,lan9115"; | ||
64 | reg = <0x18000000 0x10000>; | ||
65 | interrupt-parent = <&gpn>; | ||
66 | interrupts = <10 IRQ_TYPE_LEVEL_LOW>; | ||
67 | phy-mode = "mii"; | ||
68 | reg-io-width = <4>; | ||
69 | smsc,force-internal-phy; | ||
70 | }; | ||
71 | }; | ||
72 | }; | ||
73 | |||
74 | &sdhci0 { | ||
75 | pinctrl-names = "default"; | ||
76 | pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>; | ||
77 | bus-width = <4>; | ||
78 | status = "okay"; | ||
79 | }; | ||
80 | |||
81 | &uart0 { | ||
82 | pinctrl-names = "default"; | ||
83 | pinctrl-0 = <&uart0_data>, <&uart0_fctl>; | ||
84 | status = "okay"; | ||
85 | }; | ||
86 | |||
87 | &uart1 { | ||
88 | pinctrl-names = "default"; | ||
89 | pinctrl-0 = <&uart1_data>; | ||
90 | status = "okay"; | ||
91 | }; | ||
92 | |||
93 | &uart2 { | ||
94 | pinctrl-names = "default"; | ||
95 | pinctrl-0 = <&uart2_data>; | ||
96 | status = "okay"; | ||
97 | }; | ||
98 | |||
99 | &uart3 { | ||
100 | pinctrl-names = "default"; | ||
101 | pinctrl-0 = <&uart3_data>; | ||
102 | status = "okay"; | ||
103 | }; | ||
diff --git a/arch/arm/boot/dts/s3c6410.dtsi b/arch/arm/boot/dts/s3c6410.dtsi new file mode 100644 index 000000000000..eb4226b3407c --- /dev/null +++ b/arch/arm/boot/dts/s3c6410.dtsi | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | * Samsung's S3C6410 SoC device tree source | ||
3 | * | ||
4 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
5 | * | ||
6 | * Samsung's S3C6410 SoC device nodes are listed in this file. S3C6410 | ||
7 | * based board files can include this file and provide values for board specfic | ||
8 | * bindings. | ||
9 | * | ||
10 | * Note: This file does not include device nodes for all the controllers in | ||
11 | * S3C6410 SoC. As device tree coverage for S3C6410 increases, additional | ||
12 | * nodes can be added to this file. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License version 2 as | ||
16 | * published by the Free Software Foundation. | ||
17 | */ | ||
18 | |||
19 | #include "s3c64xx.dtsi" | ||
20 | |||
21 | / { | ||
22 | compatible = "samsung,s3c6410"; | ||
23 | |||
24 | aliases { | ||
25 | i2c1 = &i2c1; | ||
26 | }; | ||
27 | }; | ||
28 | |||
29 | &vic0 { | ||
30 | valid-mask = <0xffffff7f>; | ||
31 | valid-wakeup-mask = <0x00200004>; | ||
32 | }; | ||
33 | |||
34 | &vic1 { | ||
35 | valid-mask = <0xffffffff>; | ||
36 | valid-wakeup-mask = <0x53020000>; | ||
37 | }; | ||
38 | |||
39 | &soc { | ||
40 | clocks: clock-controller@7e00f000 { | ||
41 | compatible = "samsung,s3c6410-clock"; | ||
42 | reg = <0x7e00f000 0x1000>; | ||
43 | #clock-cells = <1>; | ||
44 | }; | ||
45 | |||
46 | i2c1: i2c@7f00f000 { | ||
47 | compatible = "samsung,s3c2440-i2c"; | ||
48 | reg = <0x7f00f000 0x1000>; | ||
49 | interrupt-parent = <&vic0>; | ||
50 | interrupts = <5>; | ||
51 | clock-names = "i2c"; | ||
52 | clocks = <&clocks PCLK_IIC1>; | ||
53 | status = "disabled"; | ||
54 | #address-cells = <1>; | ||
55 | #size-cells = <0>; | ||
56 | }; | ||
57 | }; | ||
diff --git a/arch/arm/boot/dts/s3c64xx-pinctrl.dtsi b/arch/arm/boot/dts/s3c64xx-pinctrl.dtsi new file mode 100644 index 000000000000..b1197d8b04de --- /dev/null +++ b/arch/arm/boot/dts/s3c64xx-pinctrl.dtsi | |||
@@ -0,0 +1,687 @@ | |||
1 | /* | ||
2 | * Samsung's S3C64xx SoC series common device tree source | ||
3 | * - pin control-related definitions | ||
4 | * | ||
5 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
6 | * | ||
7 | * Samsung's S3C64xx SoCs pin banks, pin-mux and pin-config options are | ||
8 | * listed as device tree nodes in this file. | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #define PIN_PULL_NONE 0 | ||
16 | #define PIN_PULL_DOWN 1 | ||
17 | #define PIN_PULL_UP 2 | ||
18 | |||
19 | &pinctrl0 { | ||
20 | /* | ||
21 | * Pin banks | ||
22 | */ | ||
23 | |||
24 | gpa: gpa { | ||
25 | gpio-controller; | ||
26 | #gpio-cells = <2>; | ||
27 | interrupt-controller; | ||
28 | #interrupt-cells = <2>; | ||
29 | }; | ||
30 | |||
31 | gpb: gpb { | ||
32 | gpio-controller; | ||
33 | #gpio-cells = <2>; | ||
34 | interrupt-controller; | ||
35 | #interrupt-cells = <2>; | ||
36 | }; | ||
37 | |||
38 | gpc: gpc { | ||
39 | gpio-controller; | ||
40 | #gpio-cells = <2>; | ||
41 | interrupt-controller; | ||
42 | #interrupt-cells = <2>; | ||
43 | }; | ||
44 | |||
45 | gpd: gpd { | ||
46 | gpio-controller; | ||
47 | #gpio-cells = <2>; | ||
48 | interrupt-controller; | ||
49 | #interrupt-cells = <2>; | ||
50 | }; | ||
51 | |||
52 | gpe: gpe { | ||
53 | gpio-controller; | ||
54 | #gpio-cells = <2>; | ||
55 | }; | ||
56 | |||
57 | gpf: gpf { | ||
58 | gpio-controller; | ||
59 | #gpio-cells = <2>; | ||
60 | interrupt-controller; | ||
61 | #interrupt-cells = <2>; | ||
62 | }; | ||
63 | |||
64 | gpg: gpg { | ||
65 | gpio-controller; | ||
66 | #gpio-cells = <2>; | ||
67 | interrupt-controller; | ||
68 | #interrupt-cells = <2>; | ||
69 | }; | ||
70 | |||
71 | gph: gph { | ||
72 | gpio-controller; | ||
73 | #gpio-cells = <2>; | ||
74 | interrupt-controller; | ||
75 | #interrupt-cells = <2>; | ||
76 | }; | ||
77 | |||
78 | gpi: gpi { | ||
79 | gpio-controller; | ||
80 | #gpio-cells = <2>; | ||
81 | }; | ||
82 | |||
83 | gpj: gpj { | ||
84 | gpio-controller; | ||
85 | #gpio-cells = <2>; | ||
86 | }; | ||
87 | |||
88 | gpk: gpk { | ||
89 | gpio-controller; | ||
90 | #gpio-cells = <2>; | ||
91 | }; | ||
92 | |||
93 | gpl: gpl { | ||
94 | gpio-controller; | ||
95 | #gpio-cells = <2>; | ||
96 | interrupt-controller; | ||
97 | #interrupt-cells = <2>; | ||
98 | }; | ||
99 | |||
100 | gpm: gpm { | ||
101 | gpio-controller; | ||
102 | #gpio-cells = <2>; | ||
103 | interrupt-controller; | ||
104 | #interrupt-cells = <2>; | ||
105 | }; | ||
106 | |||
107 | gpn: gpn { | ||
108 | gpio-controller; | ||
109 | #gpio-cells = <2>; | ||
110 | interrupt-controller; | ||
111 | #interrupt-cells = <2>; | ||
112 | }; | ||
113 | |||
114 | gpo: gpo { | ||
115 | gpio-controller; | ||
116 | #gpio-cells = <2>; | ||
117 | interrupt-controller; | ||
118 | #interrupt-cells = <2>; | ||
119 | }; | ||
120 | |||
121 | gpp: gpp { | ||
122 | gpio-controller; | ||
123 | #gpio-cells = <2>; | ||
124 | interrupt-controller; | ||
125 | #interrupt-cells = <2>; | ||
126 | }; | ||
127 | |||
128 | gpq: gpq { | ||
129 | gpio-controller; | ||
130 | #gpio-cells = <2>; | ||
131 | interrupt-controller; | ||
132 | #interrupt-cells = <2>; | ||
133 | }; | ||
134 | |||
135 | /* | ||
136 | * Pin groups | ||
137 | */ | ||
138 | |||
139 | uart0_data: uart0-data { | ||
140 | samsung,pins = "gpa-0", "gpa-1"; | ||
141 | samsung,pin-function = <2>; | ||
142 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
143 | }; | ||
144 | |||
145 | uart0_fctl: uart0-fctl { | ||
146 | samsung,pins = "gpa-2", "gpa-3"; | ||
147 | samsung,pin-function = <2>; | ||
148 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
149 | }; | ||
150 | |||
151 | uart1_data: uart1-data { | ||
152 | samsung,pins = "gpa-4", "gpa-5"; | ||
153 | samsung,pin-function = <2>; | ||
154 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
155 | }; | ||
156 | |||
157 | uart1_fctl: uart1-fctl { | ||
158 | samsung,pins = "gpa-6", "gpa-7"; | ||
159 | samsung,pin-function = <2>; | ||
160 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
161 | }; | ||
162 | |||
163 | uart2_data: uart2-data { | ||
164 | samsung,pins = "gpb-0", "gpb-1"; | ||
165 | samsung,pin-function = <2>; | ||
166 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
167 | }; | ||
168 | |||
169 | uart3_data: uart3-data { | ||
170 | samsung,pins = "gpb-2", "gpb-3"; | ||
171 | samsung,pin-function = <2>; | ||
172 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
173 | }; | ||
174 | |||
175 | ext_dma_0: ext-dma-0 { | ||
176 | samsung,pins = "gpb-0", "gpb-1"; | ||
177 | samsung,pin-function = <3>; | ||
178 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
179 | }; | ||
180 | |||
181 | ext_dma_1: ext-dma-1 { | ||
182 | samsung,pins = "gpb-2", "gpb-3"; | ||
183 | samsung,pin-function = <4>; | ||
184 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
185 | }; | ||
186 | |||
187 | irda_data_0: irda-data-0 { | ||
188 | samsung,pins = "gpb-0", "gpb-1"; | ||
189 | samsung,pin-function = <4>; | ||
190 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
191 | }; | ||
192 | |||
193 | irda_data_1: irda-data-1 { | ||
194 | samsung,pins = "gpb-2", "gpb-3"; | ||
195 | samsung,pin-function = <3>; | ||
196 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
197 | }; | ||
198 | |||
199 | irda_sdbw: irda-sdbw { | ||
200 | samsung,pins = "gpb-4"; | ||
201 | samsung,pin-function = <2>; | ||
202 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
203 | }; | ||
204 | |||
205 | i2c0_bus: i2c0-bus { | ||
206 | samsung,pins = "gpb-5", "gpb-6"; | ||
207 | samsung,pin-function = <2>; | ||
208 | samsung,pin-pud = <PIN_PULL_UP>; | ||
209 | }; | ||
210 | |||
211 | i2c1_bus: i2c1-bus { | ||
212 | /* S3C6410-only */ | ||
213 | samsung,pins = "gpb-2", "gpb-3"; | ||
214 | samsung,pin-function = <6>; | ||
215 | samsung,pin-pud = <PIN_PULL_UP>; | ||
216 | }; | ||
217 | |||
218 | spi0_bus: spi0-bus { | ||
219 | samsung,pins = "gpc-0", "gpc-1", "gpc-2"; | ||
220 | samsung,pin-function = <2>; | ||
221 | samsung,pin-pud = <PIN_PULL_UP>; | ||
222 | }; | ||
223 | |||
224 | spi0_cs: spi0-cs { | ||
225 | samsung,pins = "gpc-3"; | ||
226 | samsung,pin-function = <2>; | ||
227 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
228 | }; | ||
229 | |||
230 | spi1_bus: spi1-bus { | ||
231 | samsung,pins = "gpc-4", "gpc-5", "gpc-6"; | ||
232 | samsung,pin-function = <2>; | ||
233 | samsung,pin-pud = <PIN_PULL_UP>; | ||
234 | }; | ||
235 | |||
236 | spi1_cs: spi1-cs { | ||
237 | samsung,pins = "gpc-7"; | ||
238 | samsung,pin-function = <2>; | ||
239 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
240 | }; | ||
241 | |||
242 | sd0_cmd: sd0-cmd { | ||
243 | samsung,pins = "gpg-1"; | ||
244 | samsung,pin-function = <2>; | ||
245 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
246 | }; | ||
247 | |||
248 | sd0_clk: sd0-clk { | ||
249 | samsung,pins = "gpg-0"; | ||
250 | samsung,pin-function = <2>; | ||
251 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
252 | }; | ||
253 | |||
254 | sd0_bus1: sd0-bus1 { | ||
255 | samsung,pins = "gpg-2"; | ||
256 | samsung,pin-function = <2>; | ||
257 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
258 | }; | ||
259 | |||
260 | sd0_bus4: sd0-bus4 { | ||
261 | samsung,pins = "gpg-2", "gpg-3", "gpg-4", "gpg-5"; | ||
262 | samsung,pin-function = <2>; | ||
263 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
264 | }; | ||
265 | |||
266 | sd0_cd: sd0-cd { | ||
267 | samsung,pins = "gpg-6"; | ||
268 | samsung,pin-function = <2>; | ||
269 | samsung,pin-pud = <PIN_PULL_UP>; | ||
270 | }; | ||
271 | |||
272 | sd1_cmd: sd1-cmd { | ||
273 | samsung,pins = "gph-1"; | ||
274 | samsung,pin-function = <2>; | ||
275 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
276 | }; | ||
277 | |||
278 | sd1_clk: sd1-clk { | ||
279 | samsung,pins = "gph-0"; | ||
280 | samsung,pin-function = <2>; | ||
281 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
282 | }; | ||
283 | |||
284 | sd1_bus1: sd1-bus1 { | ||
285 | samsung,pins = "gph-2"; | ||
286 | samsung,pin-function = <2>; | ||
287 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
288 | }; | ||
289 | |||
290 | sd1_bus4: sd1-bus4 { | ||
291 | samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5"; | ||
292 | samsung,pin-function = <2>; | ||
293 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
294 | }; | ||
295 | |||
296 | sd1_bus8: sd1-bus8 { | ||
297 | samsung,pins = "gph-2", "gph-3", "gph-4", "gph-5", | ||
298 | "gph-6", "gph-7", "gph-8", "gph-9"; | ||
299 | samsung,pin-function = <2>; | ||
300 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
301 | }; | ||
302 | |||
303 | sd1_cd: sd1-cd { | ||
304 | samsung,pins = "gpg-6"; | ||
305 | samsung,pin-function = <3>; | ||
306 | samsung,pin-pud = <PIN_PULL_UP>; | ||
307 | }; | ||
308 | |||
309 | sd2_cmd: sd2-cmd { | ||
310 | samsung,pins = "gpc-4"; | ||
311 | samsung,pin-function = <3>; | ||
312 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
313 | }; | ||
314 | |||
315 | sd2_clk: sd2-clk { | ||
316 | samsung,pins = "gpc-5"; | ||
317 | samsung,pin-function = <3>; | ||
318 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
319 | }; | ||
320 | |||
321 | sd2_bus1: sd2-bus1 { | ||
322 | samsung,pins = "gph-6"; | ||
323 | samsung,pin-function = <3>; | ||
324 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
325 | }; | ||
326 | |||
327 | sd2_bus4: sd2-bus4 { | ||
328 | samsung,pins = "gph-6", "gph-7", "gph-8", "gph-9"; | ||
329 | samsung,pin-function = <3>; | ||
330 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
331 | }; | ||
332 | |||
333 | i2s0_bus: i2s0-bus { | ||
334 | samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4"; | ||
335 | samsung,pin-function = <3>; | ||
336 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
337 | }; | ||
338 | |||
339 | i2s0_cdclk: i2s0-cdclk { | ||
340 | samsung,pins = "gpd-1"; | ||
341 | samsung,pin-function = <3>; | ||
342 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
343 | }; | ||
344 | |||
345 | i2s1_bus: i2s1-bus { | ||
346 | samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4"; | ||
347 | samsung,pin-function = <3>; | ||
348 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
349 | }; | ||
350 | |||
351 | i2s1_cdclk: i2s1-cdclk { | ||
352 | samsung,pins = "gpe-1"; | ||
353 | samsung,pin-function = <3>; | ||
354 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
355 | }; | ||
356 | |||
357 | i2s2_bus: i2s2-bus { | ||
358 | /* S3C6410-only */ | ||
359 | samsung,pins = "gpc-4", "gpc-5", "gpc-6", "gph-6", | ||
360 | "gph-8", "gph-9"; | ||
361 | samsung,pin-function = <5>; | ||
362 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
363 | }; | ||
364 | |||
365 | i2s2_cdclk: i2s2-cdclk { | ||
366 | /* S3C6410-only */ | ||
367 | samsung,pins = "gph-7"; | ||
368 | samsung,pin-function = <5>; | ||
369 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
370 | }; | ||
371 | |||
372 | pcm0_bus: pcm0-bus { | ||
373 | samsung,pins = "gpd-0", "gpd-2", "gpd-3", "gpd-4"; | ||
374 | samsung,pin-function = <2>; | ||
375 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
376 | }; | ||
377 | |||
378 | pcm0_extclk: pcm0-extclk { | ||
379 | samsung,pins = "gpd-1"; | ||
380 | samsung,pin-function = <2>; | ||
381 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
382 | }; | ||
383 | |||
384 | pcm1_bus: pcm1-bus { | ||
385 | samsung,pins = "gpe-0", "gpe-2", "gpe-3", "gpe-4"; | ||
386 | samsung,pin-function = <2>; | ||
387 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
388 | }; | ||
389 | |||
390 | pcm1_extclk: pcm1-extclk { | ||
391 | samsung,pins = "gpe-1"; | ||
392 | samsung,pin-function = <2>; | ||
393 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
394 | }; | ||
395 | |||
396 | ac97_bus_0: ac97-bus-0 { | ||
397 | samsung,pins = "gpd-0", "gpd-1", "gpd-2", "gpd-3", "gpd-4"; | ||
398 | samsung,pin-function = <4>; | ||
399 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
400 | }; | ||
401 | |||
402 | ac97_bus_1: ac97-bus-1 { | ||
403 | samsung,pins = "gpe-0", "gpe-1", "gpe-2", "gpe-3", "gpe-4"; | ||
404 | samsung,pin-function = <4>; | ||
405 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
406 | }; | ||
407 | |||
408 | cam_port: cam-port { | ||
409 | samsung,pins = "gpf-0", "gpf-1", "gpf-2", "gpf-4", | ||
410 | "gpf-5", "gpf-6", "gpf-7", "gpf-8", | ||
411 | "gpf-9", "gpf-10", "gpf-11", "gpf-12"; | ||
412 | samsung,pin-function = <2>; | ||
413 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
414 | }; | ||
415 | |||
416 | cam_rst: cam-rst { | ||
417 | samsung,pins = "gpf-3"; | ||
418 | samsung,pin-function = <2>; | ||
419 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
420 | }; | ||
421 | |||
422 | cam_field: cam-field { | ||
423 | /* S3C6410-only */ | ||
424 | samsung,pins = "gpb-4"; | ||
425 | samsung,pin-function = <3>; | ||
426 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
427 | }; | ||
428 | |||
429 | pwm_extclk: pwm-extclk { | ||
430 | samsung,pins = "gpf-13"; | ||
431 | samsung,pin-function = <2>; | ||
432 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
433 | }; | ||
434 | |||
435 | pwm0_out: pwm0-out { | ||
436 | samsung,pins = "gpf-14"; | ||
437 | samsung,pin-function = <2>; | ||
438 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
439 | }; | ||
440 | |||
441 | pwm1_out: pwm1-out { | ||
442 | samsung,pins = "gpf-15"; | ||
443 | samsung,pin-function = <2>; | ||
444 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
445 | }; | ||
446 | |||
447 | clkout0: clkout-0 { | ||
448 | samsung,pins = "gpf-14"; | ||
449 | samsung,pin-function = <3>; | ||
450 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
451 | }; | ||
452 | |||
453 | keypad_col0_0: keypad-col0-0 { | ||
454 | samsung,pins = "gph-0"; | ||
455 | samsung,pin-function = <4>; | ||
456 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
457 | }; | ||
458 | |||
459 | keypad_col1_0: keypad-col1-0 { | ||
460 | samsung,pins = "gph-1"; | ||
461 | samsung,pin-function = <4>; | ||
462 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
463 | }; | ||
464 | |||
465 | keypad_col2_0: keypad-col2-0 { | ||
466 | samsung,pins = "gph-2"; | ||
467 | samsung,pin-function = <4>; | ||
468 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
469 | }; | ||
470 | |||
471 | keypad_col3_0: keypad-col3-0 { | ||
472 | samsung,pins = "gph-3"; | ||
473 | samsung,pin-function = <4>; | ||
474 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
475 | }; | ||
476 | |||
477 | keypad_col4_0: keypad-col4-0 { | ||
478 | samsung,pins = "gph-4"; | ||
479 | samsung,pin-function = <4>; | ||
480 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
481 | }; | ||
482 | |||
483 | keypad_col5_0: keypad-col5-0 { | ||
484 | samsung,pins = "gph-5"; | ||
485 | samsung,pin-function = <4>; | ||
486 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
487 | }; | ||
488 | |||
489 | keypad_col6_0: keypad-col6-0 { | ||
490 | samsung,pins = "gph-6"; | ||
491 | samsung,pin-function = <4>; | ||
492 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
493 | }; | ||
494 | |||
495 | keypad_col7_0: keypad-col7-0 { | ||
496 | samsung,pins = "gph-7"; | ||
497 | samsung,pin-function = <4>; | ||
498 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
499 | }; | ||
500 | |||
501 | keypad_col0_1: keypad-col0-1 { | ||
502 | samsung,pins = "gpl-0"; | ||
503 | samsung,pin-function = <3>; | ||
504 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
505 | }; | ||
506 | |||
507 | keypad_col1_1: keypad-col1-1 { | ||
508 | samsung,pins = "gpl-1"; | ||
509 | samsung,pin-function = <3>; | ||
510 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
511 | }; | ||
512 | |||
513 | keypad_col2_1: keypad-col2-1 { | ||
514 | samsung,pins = "gpl-2"; | ||
515 | samsung,pin-function = <3>; | ||
516 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
517 | }; | ||
518 | |||
519 | keypad_col3_1: keypad-col3-1 { | ||
520 | samsung,pins = "gpl-3"; | ||
521 | samsung,pin-function = <3>; | ||
522 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
523 | }; | ||
524 | |||
525 | keypad_col4_1: keypad-col4-1 { | ||
526 | samsung,pins = "gpl-4"; | ||
527 | samsung,pin-function = <3>; | ||
528 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
529 | }; | ||
530 | |||
531 | keypad_col5_1: keypad-col5-1 { | ||
532 | samsung,pins = "gpl-5"; | ||
533 | samsung,pin-function = <3>; | ||
534 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
535 | }; | ||
536 | |||
537 | keypad_col6_1: keypad-col6-1 { | ||
538 | samsung,pins = "gpl-6"; | ||
539 | samsung,pin-function = <3>; | ||
540 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
541 | }; | ||
542 | |||
543 | keypad_col7_1: keypad-col7-1 { | ||
544 | samsung,pins = "gpl-7"; | ||
545 | samsung,pin-function = <3>; | ||
546 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
547 | }; | ||
548 | |||
549 | keypad_row0_0: keypad-row0-0 { | ||
550 | samsung,pins = "gpk-8"; | ||
551 | samsung,pin-function = <3>; | ||
552 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
553 | }; | ||
554 | |||
555 | keypad_row1_0: keypad-row1-0 { | ||
556 | samsung,pins = "gpk-9"; | ||
557 | samsung,pin-function = <3>; | ||
558 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
559 | }; | ||
560 | |||
561 | keypad_row2_0: keypad-row2-0 { | ||
562 | samsung,pins = "gpk-10"; | ||
563 | samsung,pin-function = <3>; | ||
564 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
565 | }; | ||
566 | |||
567 | keypad_row3_0: keypad-row3-0 { | ||
568 | samsung,pins = "gpk-11"; | ||
569 | samsung,pin-function = <3>; | ||
570 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
571 | }; | ||
572 | |||
573 | keypad_row4_0: keypad-row4-0 { | ||
574 | samsung,pins = "gpk-12"; | ||
575 | samsung,pin-function = <3>; | ||
576 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
577 | }; | ||
578 | |||
579 | keypad_row5_0: keypad-row5-0 { | ||
580 | samsung,pins = "gpk-13"; | ||
581 | samsung,pin-function = <3>; | ||
582 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
583 | }; | ||
584 | |||
585 | keypad_row6_0: keypad-row6-0 { | ||
586 | samsung,pins = "gpk-14"; | ||
587 | samsung,pin-function = <3>; | ||
588 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
589 | }; | ||
590 | |||
591 | keypad_row7_0: keypad-row7-0 { | ||
592 | samsung,pins = "gpk-15"; | ||
593 | samsung,pin-function = <3>; | ||
594 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
595 | }; | ||
596 | |||
597 | keypad_row0_1: keypad-row0-1 { | ||
598 | samsung,pins = "gpn-0"; | ||
599 | samsung,pin-function = <3>; | ||
600 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
601 | }; | ||
602 | |||
603 | keypad_row1_1: keypad-row1-1 { | ||
604 | samsung,pins = "gpn-1"; | ||
605 | samsung,pin-function = <3>; | ||
606 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
607 | }; | ||
608 | |||
609 | keypad_row2_1: keypad-row2-1 { | ||
610 | samsung,pins = "gpn-2"; | ||
611 | samsung,pin-function = <3>; | ||
612 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
613 | }; | ||
614 | |||
615 | keypad_row3_1: keypad-row3-1 { | ||
616 | samsung,pins = "gpn-3"; | ||
617 | samsung,pin-function = <3>; | ||
618 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
619 | }; | ||
620 | |||
621 | keypad_row4_1: keypad-row4-1 { | ||
622 | samsung,pins = "gpn-4"; | ||
623 | samsung,pin-function = <3>; | ||
624 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
625 | }; | ||
626 | |||
627 | keypad_row5_1: keypad-row5-1 { | ||
628 | samsung,pins = "gpn-5"; | ||
629 | samsung,pin-function = <3>; | ||
630 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
631 | }; | ||
632 | |||
633 | keypad_row6_1: keypad-row6-1 { | ||
634 | samsung,pins = "gpn-6"; | ||
635 | samsung,pin-function = <3>; | ||
636 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
637 | }; | ||
638 | |||
639 | keypad_row7_1: keypad-row7-1 { | ||
640 | samsung,pins = "gpn-7"; | ||
641 | samsung,pin-function = <3>; | ||
642 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
643 | }; | ||
644 | |||
645 | lcd_ctrl: lcd-ctrl { | ||
646 | samsung,pins = "gpj-8", "gpj-9", "gpj-10", "gpj-11"; | ||
647 | samsung,pin-function = <2>; | ||
648 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
649 | }; | ||
650 | |||
651 | lcd_data16: lcd-data-width16 { | ||
652 | samsung,pins = "gpi-3", "gpi-4", "gpi-5", "gpi-6", | ||
653 | "gpi-7", "gpi-10", "gpi-11", "gpi-12", | ||
654 | "gpi-13", "gpi-14", "gpi-15", "gpj-3", | ||
655 | "gpj-4", "gpj-5", "gpj-6", "gpj-7"; | ||
656 | samsung,pin-function = <2>; | ||
657 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
658 | }; | ||
659 | |||
660 | lcd_data18: lcd-data-width18 { | ||
661 | samsung,pins = "gpi-2", "gpi-3", "gpi-4", "gpi-5", | ||
662 | "gpi-6", "gpi-7", "gpi-10", "gpi-11", | ||
663 | "gpi-12", "gpi-13", "gpi-14", "gpi-15", | ||
664 | "gpj-2", "gpj-3", "gpj-4", "gpj-5", | ||
665 | "gpj-6", "gpj-7"; | ||
666 | samsung,pin-function = <2>; | ||
667 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
668 | }; | ||
669 | |||
670 | lcd_data24: lcd-data-width24 { | ||
671 | samsung,pins = "gpi-0", "gpi-1", "gpi-2", "gpi-3", | ||
672 | "gpi-4", "gpi-5", "gpi-6", "gpi-7", | ||
673 | "gpi-8", "gpi-9", "gpi-10", "gpi-11", | ||
674 | "gpi-12", "gpi-13", "gpi-14", "gpi-15", | ||
675 | "gpj-0", "gpj-1", "gpj-2", "gpj-3", | ||
676 | "gpj-4", "gpj-5", "gpj-6", "gpj-7"; | ||
677 | samsung,pin-function = <2>; | ||
678 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
679 | }; | ||
680 | |||
681 | hsi_bus: hsi-bus { | ||
682 | samsung,pins = "gpk-0", "gpk-1", "gpk-2", "gpk-3", | ||
683 | "gpk-4", "gpk-5", "gpk-6", "gpk-7"; | ||
684 | samsung,pin-function = <3>; | ||
685 | samsung,pin-pud = <PIN_PULL_NONE>; | ||
686 | }; | ||
687 | }; | ||
diff --git a/arch/arm/boot/dts/s3c64xx.dtsi b/arch/arm/boot/dts/s3c64xx.dtsi new file mode 100644 index 000000000000..4e3be4d3493d --- /dev/null +++ b/arch/arm/boot/dts/s3c64xx.dtsi | |||
@@ -0,0 +1,199 @@ | |||
1 | /* | ||
2 | * Samsung's S3C64xx SoC series common device tree source | ||
3 | * | ||
4 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
5 | * | ||
6 | * Samsung's S3C64xx SoC series device nodes are listed in this file. | ||
7 | * Particular SoCs from S3C64xx series can include this file and provide | ||
8 | * values for SoCs specfic bindings. | ||
9 | * | ||
10 | * Note: This file does not include device nodes for all the controllers in | ||
11 | * S3C64xx SoCs. As device tree coverage for S3C64xx increases, additional | ||
12 | * nodes can be added to this file. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License version 2 as | ||
16 | * published by the Free Software Foundation. | ||
17 | */ | ||
18 | |||
19 | #include "skeleton.dtsi" | ||
20 | #include <dt-bindings/clock/samsung,s3c64xx-clock.h> | ||
21 | |||
22 | / { | ||
23 | aliases { | ||
24 | i2c0 = &i2c0; | ||
25 | pinctrl0 = &pinctrl0; | ||
26 | }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <1>; | ||
30 | #size-cells = <0>; | ||
31 | |||
32 | cpu@0 { | ||
33 | device_type = "cpu"; | ||
34 | compatible = "arm,arm1176jzf-s", "arm,arm1176"; | ||
35 | reg = <0x0>; | ||
36 | }; | ||
37 | }; | ||
38 | |||
39 | soc: soc { | ||
40 | compatible = "simple-bus"; | ||
41 | #address-cells = <1>; | ||
42 | #size-cells = <1>; | ||
43 | ranges; | ||
44 | |||
45 | vic0: interrupt-controller@71200000 { | ||
46 | compatible = "arm,pl192-vic"; | ||
47 | interrupt-controller; | ||
48 | reg = <0x71200000 0x1000>; | ||
49 | #interrupt-cells = <1>; | ||
50 | }; | ||
51 | |||
52 | vic1: interrupt-controller@71300000 { | ||
53 | compatible = "arm,pl192-vic"; | ||
54 | interrupt-controller; | ||
55 | reg = <0x71300000 0x1000>; | ||
56 | #interrupt-cells = <1>; | ||
57 | }; | ||
58 | |||
59 | sdhci0: sdhci@7c200000 { | ||
60 | compatible = "samsung,s3c6410-sdhci"; | ||
61 | reg = <0x7c200000 0x100>; | ||
62 | interrupt-parent = <&vic1>; | ||
63 | interrupts = <24>; | ||
64 | clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2"; | ||
65 | clocks = <&clocks HCLK_HSMMC0>, <&clocks HCLK_HSMMC0>, | ||
66 | <&clocks SCLK_MMC0>; | ||
67 | status = "disabled"; | ||
68 | }; | ||
69 | |||
70 | sdhci1: sdhci@7c300000 { | ||
71 | compatible = "samsung,s3c6410-sdhci"; | ||
72 | reg = <0x7c300000 0x100>; | ||
73 | interrupt-parent = <&vic1>; | ||
74 | interrupts = <25>; | ||
75 | clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2"; | ||
76 | clocks = <&clocks HCLK_HSMMC1>, <&clocks HCLK_HSMMC1>, | ||
77 | <&clocks SCLK_MMC1>; | ||
78 | status = "disabled"; | ||
79 | }; | ||
80 | |||
81 | sdhci2: sdhci@7c400000 { | ||
82 | compatible = "samsung,s3c6410-sdhci"; | ||
83 | reg = <0x7c400000 0x100>; | ||
84 | interrupt-parent = <&vic1>; | ||
85 | interrupts = <17>; | ||
86 | clock-names = "hsmmc", "mmc_busclk.0", "mmc_busclk.2"; | ||
87 | clocks = <&clocks HCLK_HSMMC2>, <&clocks HCLK_HSMMC2>, | ||
88 | <&clocks SCLK_MMC2>; | ||
89 | status = "disabled"; | ||
90 | }; | ||
91 | |||
92 | watchdog: watchdog@7e004000 { | ||
93 | compatible = "samsung,s3c2410-wdt"; | ||
94 | reg = <0x7e004000 0x1000>; | ||
95 | interrupt-parent = <&vic0>; | ||
96 | interrupts = <26>; | ||
97 | clock-names = "watchdog"; | ||
98 | clocks = <&clocks PCLK_WDT>; | ||
99 | status = "disabled"; | ||
100 | }; | ||
101 | |||
102 | i2c0: i2c@7f004000 { | ||
103 | compatible = "samsung,s3c2440-i2c"; | ||
104 | reg = <0x7f004000 0x1000>; | ||
105 | interrupt-parent = <&vic1>; | ||
106 | interrupts = <18>; | ||
107 | clock-names = "i2c"; | ||
108 | clocks = <&clocks PCLK_IIC0>; | ||
109 | status = "disabled"; | ||
110 | #address-cells = <1>; | ||
111 | #size-cells = <0>; | ||
112 | }; | ||
113 | |||
114 | uart0: serial@7f005000 { | ||
115 | compatible = "samsung,s3c6400-uart"; | ||
116 | reg = <0x7f005000 0x100>; | ||
117 | interrupt-parent = <&vic1>; | ||
118 | interrupts = <5>; | ||
119 | clock-names = "uart", "clk_uart_baud2", | ||
120 | "clk_uart_baud3"; | ||
121 | clocks = <&clocks PCLK_UART0>, <&clocks PCLK_UART0>, | ||
122 | <&clocks SCLK_UART>; | ||
123 | status = "disabled"; | ||
124 | }; | ||
125 | |||
126 | uart1: serial@7f005400 { | ||
127 | compatible = "samsung,s3c6400-uart"; | ||
128 | reg = <0x7f005400 0x100>; | ||
129 | interrupt-parent = <&vic1>; | ||
130 | interrupts = <6>; | ||
131 | clock-names = "uart", "clk_uart_baud2", | ||
132 | "clk_uart_baud3"; | ||
133 | clocks = <&clocks PCLK_UART1>, <&clocks PCLK_UART1>, | ||
134 | <&clocks SCLK_UART>; | ||
135 | status = "disabled"; | ||
136 | }; | ||
137 | |||
138 | uart2: serial@7f005800 { | ||
139 | compatible = "samsung,s3c6400-uart"; | ||
140 | reg = <0x7f005800 0x100>; | ||
141 | interrupt-parent = <&vic1>; | ||
142 | interrupts = <7>; | ||
143 | clock-names = "uart", "clk_uart_baud2", | ||
144 | "clk_uart_baud3"; | ||
145 | clocks = <&clocks PCLK_UART2>, <&clocks PCLK_UART2>, | ||
146 | <&clocks SCLK_UART>; | ||
147 | status = "disabled"; | ||
148 | }; | ||
149 | |||
150 | uart3: serial@7f005c00 { | ||
151 | compatible = "samsung,s3c6400-uart"; | ||
152 | reg = <0x7f005c00 0x100>; | ||
153 | interrupt-parent = <&vic1>; | ||
154 | interrupts = <8>; | ||
155 | clock-names = "uart", "clk_uart_baud2", | ||
156 | "clk_uart_baud3"; | ||
157 | clocks = <&clocks PCLK_UART3>, <&clocks PCLK_UART3>, | ||
158 | <&clocks SCLK_UART>; | ||
159 | status = "disabled"; | ||
160 | }; | ||
161 | |||
162 | pwm: pwm@7f006000 { | ||
163 | compatible = "samsung,s3c6400-pwm"; | ||
164 | reg = <0x7f006000 0x1000>; | ||
165 | interrupt-parent = <&vic0>; | ||
166 | interrupts = <23>, <24>, <25>, <27>, <28>; | ||
167 | clock-names = "timers"; | ||
168 | clocks = <&clocks PCLK_PWM>; | ||
169 | samsung,pwm-outputs = <0>, <1>; | ||
170 | #pwm-cells = <3>; | ||
171 | status = "disabled"; | ||
172 | }; | ||
173 | |||
174 | pinctrl0: pinctrl@7f008000 { | ||
175 | compatible = "samsung,s3c64xx-pinctrl"; | ||
176 | reg = <0x7f008000 0x1000>; | ||
177 | interrupt-parent = <&vic1>; | ||
178 | interrupts = <21>; | ||
179 | |||
180 | pctrl_int_map: pinctrl-interrupt-map { | ||
181 | interrupt-map = <0 &vic0 0>, | ||
182 | <1 &vic0 1>, | ||
183 | <2 &vic1 0>, | ||
184 | <3 &vic1 1>; | ||
185 | #address-cells = <0>; | ||
186 | #size-cells = <0>; | ||
187 | #interrupt-cells = <1>; | ||
188 | }; | ||
189 | |||
190 | wakeup-interrupt-controller { | ||
191 | compatible = "samsung,s3c64xx-wakeup-eint"; | ||
192 | interrupts = <0>, <1>, <2>, <3>; | ||
193 | interrupt-parent = <&pctrl_int_map>; | ||
194 | }; | ||
195 | }; | ||
196 | }; | ||
197 | }; | ||
198 | |||
199 | #include "s3c64xx-pinctrl.dtsi" | ||
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index 212230629f27..8ee06dd81799 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | |||
@@ -108,6 +108,7 @@ | |||
108 | }; | 108 | }; |
109 | 109 | ||
110 | &i2c0 { | 110 | &i2c0 { |
111 | status = "okay"; | ||
111 | as3711@40 { | 112 | as3711@40 { |
112 | compatible = "ams,as3711"; | 113 | compatible = "ams,as3711"; |
113 | reg = <0x40>; | 114 | reg = <0x40>; |
@@ -183,6 +184,7 @@ | |||
183 | &i2c3 { | 184 | &i2c3 { |
184 | pinctrl-0 = <&i2c3_pins>; | 185 | pinctrl-0 = <&i2c3_pins>; |
185 | pinctrl-names = "default"; | 186 | pinctrl-names = "default"; |
187 | status = "okay"; | ||
186 | }; | 188 | }; |
187 | 189 | ||
188 | &mmcif { | 190 | &mmcif { |
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi index 3955c7606a6f..fcf26889a8a0 100644 --- a/arch/arm/boot/dts/sh73a0.dtsi +++ b/arch/arm/boot/dts/sh73a0.dtsi | |||
@@ -135,6 +135,7 @@ | |||
135 | 0 168 0x4 | 135 | 0 168 0x4 |
136 | 0 169 0x4 | 136 | 0 169 0x4 |
137 | 0 170 0x4>; | 137 | 0 170 0x4>; |
138 | status = "disabled"; | ||
138 | }; | 139 | }; |
139 | 140 | ||
140 | i2c1: i2c@e6822000 { | 141 | i2c1: i2c@e6822000 { |
@@ -147,6 +148,7 @@ | |||
147 | 0 52 0x4 | 148 | 0 52 0x4 |
148 | 0 53 0x4 | 149 | 0 53 0x4 |
149 | 0 54 0x4>; | 150 | 0 54 0x4>; |
151 | status = "disabled"; | ||
150 | }; | 152 | }; |
151 | 153 | ||
152 | i2c2: i2c@e6824000 { | 154 | i2c2: i2c@e6824000 { |
@@ -159,6 +161,7 @@ | |||
159 | 0 172 0x4 | 161 | 0 172 0x4 |
160 | 0 173 0x4 | 162 | 0 173 0x4 |
161 | 0 174 0x4>; | 163 | 0 174 0x4>; |
164 | status = "disabled"; | ||
162 | }; | 165 | }; |
163 | 166 | ||
164 | i2c3: i2c@e6826000 { | 167 | i2c3: i2c@e6826000 { |
@@ -171,6 +174,7 @@ | |||
171 | 0 184 0x4 | 174 | 0 184 0x4 |
172 | 0 185 0x4 | 175 | 0 185 0x4 |
173 | 0 186 0x4>; | 176 | 0 186 0x4>; |
177 | status = "disabled"; | ||
174 | }; | 178 | }; |
175 | 179 | ||
176 | i2c4: i2c@e6828000 { | 180 | i2c4: i2c@e6828000 { |
@@ -183,6 +187,7 @@ | |||
183 | 0 188 0x4 | 187 | 0 188 0x4 |
184 | 0 189 0x4 | 188 | 0 189 0x4 |
185 | 0 190 0x4>; | 189 | 0 190 0x4>; |
190 | status = "disabled"; | ||
186 | }; | 191 | }; |
187 | 192 | ||
188 | mmcif: mmcif@e6bd0000 { | 193 | mmcif: mmcif@e6bd0000 { |
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi index e273fa993b8c..6d09b8d42fdd 100644 --- a/arch/arm/boot/dts/socfpga.dtsi +++ b/arch/arm/boot/dts/socfpga.dtsi | |||
@@ -147,7 +147,7 @@ | |||
147 | reg = <0x58>; | 147 | reg = <0x58>; |
148 | }; | 148 | }; |
149 | 149 | ||
150 | cfg_s2f_usr0_clk: cfg_s2f_usr0_clk { | 150 | cfg_h2f_usr0_clk: cfg_h2f_usr0_clk { |
151 | #clock-cells = <0>; | 151 | #clock-cells = <0>; |
152 | compatible = "altr,socfpga-perip-clk"; | 152 | compatible = "altr,socfpga-perip-clk"; |
153 | clocks = <&main_pll>; | 153 | clocks = <&main_pll>; |
@@ -198,7 +198,7 @@ | |||
198 | reg = <0x98>; | 198 | reg = <0x98>; |
199 | }; | 199 | }; |
200 | 200 | ||
201 | s2f_usr1_clk: s2f_usr1_clk { | 201 | h2f_usr1_clk: h2f_usr1_clk { |
202 | #clock-cells = <0>; | 202 | #clock-cells = <0>; |
203 | compatible = "altr,socfpga-perip-clk"; | 203 | compatible = "altr,socfpga-perip-clk"; |
204 | clocks = <&periph_pll>; | 204 | clocks = <&periph_pll>; |
@@ -235,7 +235,7 @@ | |||
235 | reg = <0xD0>; | 235 | reg = <0xD0>; |
236 | }; | 236 | }; |
237 | 237 | ||
238 | s2f_usr2_clk: s2f_usr2_clk { | 238 | h2f_usr2_clk: h2f_usr2_clk { |
239 | #clock-cells = <0>; | 239 | #clock-cells = <0>; |
240 | compatible = "altr,socfpga-perip-clk"; | 240 | compatible = "altr,socfpga-perip-clk"; |
241 | clocks = <&sdram_pll>; | 241 | clocks = <&sdram_pll>; |
@@ -243,197 +243,197 @@ | |||
243 | }; | 243 | }; |
244 | }; | 244 | }; |
245 | 245 | ||
246 | mpu_periph_clk: mpu_periph_clk { | 246 | mpu_periph_clk: mpu_periph_clk { |
247 | #clock-cells = <0>; | 247 | #clock-cells = <0>; |
248 | compatible = "altr,socfpga-gate-clk"; | 248 | compatible = "altr,socfpga-gate-clk"; |
249 | clocks = <&mpuclk>; | 249 | clocks = <&mpuclk>; |
250 | fixed-divider = <4>; | 250 | fixed-divider = <4>; |
251 | }; | 251 | }; |
252 | 252 | ||
253 | mpu_l2_ram_clk: mpu_l2_ram_clk { | 253 | mpu_l2_ram_clk: mpu_l2_ram_clk { |
254 | #clock-cells = <0>; | 254 | #clock-cells = <0>; |
255 | compatible = "altr,socfpga-gate-clk"; | 255 | compatible = "altr,socfpga-gate-clk"; |
256 | clocks = <&mpuclk>; | 256 | clocks = <&mpuclk>; |
257 | fixed-divider = <2>; | 257 | fixed-divider = <2>; |
258 | }; | 258 | }; |
259 | 259 | ||
260 | l4_main_clk: l4_main_clk { | 260 | l4_main_clk: l4_main_clk { |
261 | #clock-cells = <0>; | 261 | #clock-cells = <0>; |
262 | compatible = "altr,socfpga-gate-clk"; | 262 | compatible = "altr,socfpga-gate-clk"; |
263 | clocks = <&mainclk>; | 263 | clocks = <&mainclk>; |
264 | clk-gate = <0x60 0>; | 264 | clk-gate = <0x60 0>; |
265 | }; | 265 | }; |
266 | 266 | ||
267 | l3_main_clk: l3_main_clk { | 267 | l3_main_clk: l3_main_clk { |
268 | #clock-cells = <0>; | 268 | #clock-cells = <0>; |
269 | compatible = "altr,socfpga-gate-clk"; | 269 | compatible = "altr,socfpga-gate-clk"; |
270 | clocks = <&mainclk>; | 270 | clocks = <&mainclk>; |
271 | }; | 271 | }; |
272 | 272 | ||
273 | l3_mp_clk: l3_mp_clk { | 273 | l3_mp_clk: l3_mp_clk { |
274 | #clock-cells = <0>; | 274 | #clock-cells = <0>; |
275 | compatible = "altr,socfpga-gate-clk"; | 275 | compatible = "altr,socfpga-gate-clk"; |
276 | clocks = <&mainclk>; | 276 | clocks = <&mainclk>; |
277 | div-reg = <0x64 0 2>; | 277 | div-reg = <0x64 0 2>; |
278 | clk-gate = <0x60 1>; | 278 | clk-gate = <0x60 1>; |
279 | }; | 279 | }; |
280 | 280 | ||
281 | l3_sp_clk: l3_sp_clk { | 281 | l3_sp_clk: l3_sp_clk { |
282 | #clock-cells = <0>; | 282 | #clock-cells = <0>; |
283 | compatible = "altr,socfpga-gate-clk"; | 283 | compatible = "altr,socfpga-gate-clk"; |
284 | clocks = <&mainclk>; | 284 | clocks = <&mainclk>; |
285 | div-reg = <0x64 2 2>; | 285 | div-reg = <0x64 2 2>; |
286 | }; | 286 | }; |
287 | 287 | ||
288 | l4_mp_clk: l4_mp_clk { | 288 | l4_mp_clk: l4_mp_clk { |
289 | #clock-cells = <0>; | 289 | #clock-cells = <0>; |
290 | compatible = "altr,socfpga-gate-clk"; | 290 | compatible = "altr,socfpga-gate-clk"; |
291 | clocks = <&mainclk>, <&per_base_clk>; | 291 | clocks = <&mainclk>, <&per_base_clk>; |
292 | div-reg = <0x64 4 3>; | 292 | div-reg = <0x64 4 3>; |
293 | clk-gate = <0x60 2>; | 293 | clk-gate = <0x60 2>; |
294 | }; | 294 | }; |
295 | 295 | ||
296 | l4_sp_clk: l4_sp_clk { | 296 | l4_sp_clk: l4_sp_clk { |
297 | #clock-cells = <0>; | 297 | #clock-cells = <0>; |
298 | compatible = "altr,socfpga-gate-clk"; | 298 | compatible = "altr,socfpga-gate-clk"; |
299 | clocks = <&mainclk>, <&per_base_clk>; | 299 | clocks = <&mainclk>, <&per_base_clk>; |
300 | div-reg = <0x64 7 3>; | 300 | div-reg = <0x64 7 3>; |
301 | clk-gate = <0x60 3>; | 301 | clk-gate = <0x60 3>; |
302 | }; | 302 | }; |
303 | 303 | ||
304 | dbg_at_clk: dbg_at_clk { | 304 | dbg_at_clk: dbg_at_clk { |
305 | #clock-cells = <0>; | 305 | #clock-cells = <0>; |
306 | compatible = "altr,socfpga-gate-clk"; | 306 | compatible = "altr,socfpga-gate-clk"; |
307 | clocks = <&dbg_base_clk>; | 307 | clocks = <&dbg_base_clk>; |
308 | div-reg = <0x68 0 2>; | 308 | div-reg = <0x68 0 2>; |
309 | clk-gate = <0x60 4>; | 309 | clk-gate = <0x60 4>; |
310 | }; | 310 | }; |
311 | 311 | ||
312 | dbg_clk: dbg_clk { | 312 | dbg_clk: dbg_clk { |
313 | #clock-cells = <0>; | 313 | #clock-cells = <0>; |
314 | compatible = "altr,socfpga-gate-clk"; | 314 | compatible = "altr,socfpga-gate-clk"; |
315 | clocks = <&dbg_base_clk>; | 315 | clocks = <&dbg_base_clk>; |
316 | div-reg = <0x68 2 2>; | 316 | div-reg = <0x68 2 2>; |
317 | clk-gate = <0x60 5>; | 317 | clk-gate = <0x60 5>; |
318 | }; | 318 | }; |
319 | 319 | ||
320 | dbg_trace_clk: dbg_trace_clk { | 320 | dbg_trace_clk: dbg_trace_clk { |
321 | #clock-cells = <0>; | 321 | #clock-cells = <0>; |
322 | compatible = "altr,socfpga-gate-clk"; | 322 | compatible = "altr,socfpga-gate-clk"; |
323 | clocks = <&dbg_base_clk>; | 323 | clocks = <&dbg_base_clk>; |
324 | div-reg = <0x6C 0 3>; | 324 | div-reg = <0x6C 0 3>; |
325 | clk-gate = <0x60 6>; | 325 | clk-gate = <0x60 6>; |
326 | }; | 326 | }; |
327 | 327 | ||
328 | dbg_timer_clk: dbg_timer_clk { | 328 | dbg_timer_clk: dbg_timer_clk { |
329 | #clock-cells = <0>; | 329 | #clock-cells = <0>; |
330 | compatible = "altr,socfpga-gate-clk"; | 330 | compatible = "altr,socfpga-gate-clk"; |
331 | clocks = <&dbg_base_clk>; | 331 | clocks = <&dbg_base_clk>; |
332 | clk-gate = <0x60 7>; | 332 | clk-gate = <0x60 7>; |
333 | }; | 333 | }; |
334 | 334 | ||
335 | cfg_clk: cfg_clk { | 335 | cfg_clk: cfg_clk { |
336 | #clock-cells = <0>; | 336 | #clock-cells = <0>; |
337 | compatible = "altr,socfpga-gate-clk"; | 337 | compatible = "altr,socfpga-gate-clk"; |
338 | clocks = <&cfg_s2f_usr0_clk>; | 338 | clocks = <&cfg_h2f_usr0_clk>; |
339 | clk-gate = <0x60 8>; | 339 | clk-gate = <0x60 8>; |
340 | }; | 340 | }; |
341 | 341 | ||
342 | s2f_user0_clk: s2f_user0_clk { | 342 | h2f_user0_clk: h2f_user0_clk { |
343 | #clock-cells = <0>; | 343 | #clock-cells = <0>; |
344 | compatible = "altr,socfpga-gate-clk"; | 344 | compatible = "altr,socfpga-gate-clk"; |
345 | clocks = <&cfg_s2f_usr0_clk>; | 345 | clocks = <&cfg_h2f_usr0_clk>; |
346 | clk-gate = <0x60 9>; | 346 | clk-gate = <0x60 9>; |
347 | }; | 347 | }; |
348 | 348 | ||
349 | emac_0_clk: emac_0_clk { | 349 | emac_0_clk: emac_0_clk { |
350 | #clock-cells = <0>; | 350 | #clock-cells = <0>; |
351 | compatible = "altr,socfpga-gate-clk"; | 351 | compatible = "altr,socfpga-gate-clk"; |
352 | clocks = <&emac0_clk>; | 352 | clocks = <&emac0_clk>; |
353 | clk-gate = <0xa0 0>; | 353 | clk-gate = <0xa0 0>; |
354 | }; | 354 | }; |
355 | 355 | ||
356 | emac_1_clk: emac_1_clk { | 356 | emac_1_clk: emac_1_clk { |
357 | #clock-cells = <0>; | 357 | #clock-cells = <0>; |
358 | compatible = "altr,socfpga-gate-clk"; | 358 | compatible = "altr,socfpga-gate-clk"; |
359 | clocks = <&emac1_clk>; | 359 | clocks = <&emac1_clk>; |
360 | clk-gate = <0xa0 1>; | 360 | clk-gate = <0xa0 1>; |
361 | }; | 361 | }; |
362 | 362 | ||
363 | usb_mp_clk: usb_mp_clk { | 363 | usb_mp_clk: usb_mp_clk { |
364 | #clock-cells = <0>; | 364 | #clock-cells = <0>; |
365 | compatible = "altr,socfpga-gate-clk"; | 365 | compatible = "altr,socfpga-gate-clk"; |
366 | clocks = <&per_base_clk>; | 366 | clocks = <&per_base_clk>; |
367 | clk-gate = <0xa0 2>; | 367 | clk-gate = <0xa0 2>; |
368 | div-reg = <0xa4 0 3>; | 368 | div-reg = <0xa4 0 3>; |
369 | }; | 369 | }; |
370 | 370 | ||
371 | spi_m_clk: spi_m_clk { | 371 | spi_m_clk: spi_m_clk { |
372 | #clock-cells = <0>; | 372 | #clock-cells = <0>; |
373 | compatible = "altr,socfpga-gate-clk"; | 373 | compatible = "altr,socfpga-gate-clk"; |
374 | clocks = <&per_base_clk>; | 374 | clocks = <&per_base_clk>; |
375 | clk-gate = <0xa0 3>; | 375 | clk-gate = <0xa0 3>; |
376 | div-reg = <0xa4 3 3>; | 376 | div-reg = <0xa4 3 3>; |
377 | }; | 377 | }; |
378 | 378 | ||
379 | can0_clk: can0_clk { | 379 | can0_clk: can0_clk { |
380 | #clock-cells = <0>; | 380 | #clock-cells = <0>; |
381 | compatible = "altr,socfpga-gate-clk"; | 381 | compatible = "altr,socfpga-gate-clk"; |
382 | clocks = <&per_base_clk>; | 382 | clocks = <&per_base_clk>; |
383 | clk-gate = <0xa0 4>; | 383 | clk-gate = <0xa0 4>; |
384 | div-reg = <0xa4 6 3>; | 384 | div-reg = <0xa4 6 3>; |
385 | }; | 385 | }; |
386 | 386 | ||
387 | can1_clk: can1_clk { | 387 | can1_clk: can1_clk { |
388 | #clock-cells = <0>; | 388 | #clock-cells = <0>; |
389 | compatible = "altr,socfpga-gate-clk"; | 389 | compatible = "altr,socfpga-gate-clk"; |
390 | clocks = <&per_base_clk>; | 390 | clocks = <&per_base_clk>; |
391 | clk-gate = <0xa0 5>; | 391 | clk-gate = <0xa0 5>; |
392 | div-reg = <0xa4 9 3>; | 392 | div-reg = <0xa4 9 3>; |
393 | }; | 393 | }; |
394 | 394 | ||
395 | gpio_db_clk: gpio_db_clk { | 395 | gpio_db_clk: gpio_db_clk { |
396 | #clock-cells = <0>; | 396 | #clock-cells = <0>; |
397 | compatible = "altr,socfpga-gate-clk"; | 397 | compatible = "altr,socfpga-gate-clk"; |
398 | clocks = <&per_base_clk>; | 398 | clocks = <&per_base_clk>; |
399 | clk-gate = <0xa0 6>; | 399 | clk-gate = <0xa0 6>; |
400 | div-reg = <0xa8 0 24>; | 400 | div-reg = <0xa8 0 24>; |
401 | }; | 401 | }; |
402 | 402 | ||
403 | s2f_user1_clk: s2f_user1_clk { | 403 | h2f_user1_clk: h2f_user1_clk { |
404 | #clock-cells = <0>; | 404 | #clock-cells = <0>; |
405 | compatible = "altr,socfpga-gate-clk"; | 405 | compatible = "altr,socfpga-gate-clk"; |
406 | clocks = <&s2f_usr1_clk>; | 406 | clocks = <&h2f_usr1_clk>; |
407 | clk-gate = <0xa0 7>; | 407 | clk-gate = <0xa0 7>; |
408 | }; | 408 | }; |
409 | 409 | ||
410 | sdmmc_clk: sdmmc_clk { | 410 | sdmmc_clk: sdmmc_clk { |
411 | #clock-cells = <0>; | 411 | #clock-cells = <0>; |
412 | compatible = "altr,socfpga-gate-clk"; | 412 | compatible = "altr,socfpga-gate-clk"; |
413 | clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; | 413 | clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; |
414 | clk-gate = <0xa0 8>; | 414 | clk-gate = <0xa0 8>; |
415 | }; | 415 | }; |
416 | 416 | ||
417 | nand_x_clk: nand_x_clk { | 417 | nand_x_clk: nand_x_clk { |
418 | #clock-cells = <0>; | 418 | #clock-cells = <0>; |
419 | compatible = "altr,socfpga-gate-clk"; | 419 | compatible = "altr,socfpga-gate-clk"; |
420 | clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; | 420 | clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; |
421 | clk-gate = <0xa0 9>; | 421 | clk-gate = <0xa0 9>; |
422 | }; | 422 | }; |
423 | 423 | ||
424 | nand_clk: nand_clk { | 424 | nand_clk: nand_clk { |
425 | #clock-cells = <0>; | 425 | #clock-cells = <0>; |
426 | compatible = "altr,socfpga-gate-clk"; | 426 | compatible = "altr,socfpga-gate-clk"; |
427 | clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; | 427 | clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; |
428 | clk-gate = <0xa0 10>; | 428 | clk-gate = <0xa0 10>; |
429 | fixed-divider = <4>; | 429 | fixed-divider = <4>; |
430 | }; | 430 | }; |
431 | 431 | ||
432 | qspi_clk: qspi_clk { | 432 | qspi_clk: qspi_clk { |
433 | #clock-cells = <0>; | 433 | #clock-cells = <0>; |
434 | compatible = "altr,socfpga-gate-clk"; | 434 | compatible = "altr,socfpga-gate-clk"; |
435 | clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>; | 435 | clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>; |
436 | clk-gate = <0xa0 11>; | 436 | clk-gate = <0xa0 11>; |
437 | }; | 437 | }; |
438 | }; | 438 | }; |
439 | }; | 439 | }; |
@@ -473,6 +473,7 @@ | |||
473 | compatible = "arm,cortex-a9-twd-timer"; | 473 | compatible = "arm,cortex-a9-twd-timer"; |
474 | reg = <0xfffec600 0x100>; | 474 | reg = <0xfffec600 0x100>; |
475 | interrupts = <1 13 0xf04>; | 475 | interrupts = <1 13 0xf04>; |
476 | clocks = <&mpu_periph_clk>; | ||
476 | }; | 477 | }; |
477 | 478 | ||
478 | timer0: timer0@ffc08000 { | 479 | timer0: timer0@ffc08000 { |
@@ -516,9 +517,9 @@ | |||
516 | }; | 517 | }; |
517 | 518 | ||
518 | rstmgr@ffd05000 { | 519 | rstmgr@ffd05000 { |
519 | compatible = "altr,rst-mgr"; | 520 | compatible = "altr,rst-mgr"; |
520 | reg = <0xffd05000 0x1000>; | 521 | reg = <0xffd05000 0x1000>; |
521 | }; | 522 | }; |
522 | 523 | ||
523 | sysmgr@ffd08000 { | 524 | sysmgr@ffd08000 { |
524 | compatible = "altr,sys-mgr"; | 525 | compatible = "altr,sys-mgr"; |
diff --git a/arch/arm/boot/dts/socfpga_arria5.dtsi b/arch/arm/boot/dts/socfpga_arria5.dtsi new file mode 100644 index 000000000000..a85b4043f888 --- /dev/null +++ b/arch/arm/boot/dts/socfpga_arria5.dtsi | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Altera Corporation <www.altera.com> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it | ||
5 | * under the terms and conditions of the GNU General Public License, | ||
6 | * version 2, as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
11 | * more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License along with | ||
14 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
15 | */ | ||
16 | |||
17 | /dts-v1/; | ||
18 | /include/ "socfpga.dtsi" | ||
19 | |||
20 | / { | ||
21 | soc { | ||
22 | clkmgr@ffd04000 { | ||
23 | clocks { | ||
24 | osc1 { | ||
25 | clock-frequency = <25000000>; | ||
26 | }; | ||
27 | }; | ||
28 | }; | ||
29 | |||
30 | serial0@ffc02000 { | ||
31 | clock-frequency = <100000000>; | ||
32 | }; | ||
33 | |||
34 | serial1@ffc03000 { | ||
35 | clock-frequency = <100000000>; | ||
36 | }; | ||
37 | |||
38 | sysmgr@ffd08000 { | ||
39 | cpu1-start-addr = <0xffd080c4>; | ||
40 | }; | ||
41 | |||
42 | timer0@ffc08000 { | ||
43 | clock-frequency = <100000000>; | ||
44 | }; | ||
45 | |||
46 | timer1@ffc09000 { | ||
47 | clock-frequency = <100000000>; | ||
48 | }; | ||
49 | |||
50 | timer2@ffd00000 { | ||
51 | clock-frequency = <25000000>; | ||
52 | }; | ||
53 | |||
54 | timer3@ffd01000 { | ||
55 | clock-frequency = <25000000>; | ||
56 | }; | ||
57 | }; | ||
58 | }; | ||
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts new file mode 100644 index 000000000000..5beffb2265f4 --- /dev/null +++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Altera Corporation <www.altera.com> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | /include/ "socfpga_arria5.dtsi" | ||
19 | |||
20 | / { | ||
21 | model = "Altera SOCFPGA Arria V SoC Development Kit"; | ||
22 | compatible = "altr,socfpga-arria5", "altr,socfpga"; | ||
23 | |||
24 | chosen { | ||
25 | bootargs = "console=ttyS0,115200"; | ||
26 | }; | ||
27 | |||
28 | memory { | ||
29 | name = "memory"; | ||
30 | device_type = "memory"; | ||
31 | reg = <0x0 0x40000000>; /* 1GB */ | ||
32 | }; | ||
33 | |||
34 | aliases { | ||
35 | /* this allow the ethaddr uboot environmnet variable contents | ||
36 | * to be added to the gmac1 device tree blob. | ||
37 | */ | ||
38 | ethernet0 = &gmac1; | ||
39 | }; | ||
40 | }; | ||
diff --git a/arch/arm/boot/dts/socfpga_cyclone5.dts b/arch/arm/boot/dts/socfpga_cyclone5.dtsi index 973999d2c697..a8716f6dbe2e 100644 --- a/arch/arm/boot/dts/socfpga_cyclone5.dts +++ b/arch/arm/boot/dts/socfpga_cyclone5.dtsi | |||
@@ -19,26 +19,6 @@ | |||
19 | /include/ "socfpga.dtsi" | 19 | /include/ "socfpga.dtsi" |
20 | 20 | ||
21 | / { | 21 | / { |
22 | model = "Altera SOCFPGA Cyclone V"; | ||
23 | compatible = "altr,socfpga-cyclone5", "altr,socfpga"; | ||
24 | |||
25 | chosen { | ||
26 | bootargs = "console=ttyS0,57600"; | ||
27 | }; | ||
28 | |||
29 | memory { | ||
30 | name = "memory"; | ||
31 | device_type = "memory"; | ||
32 | reg = <0x0 0x40000000>; /* 1GB */ | ||
33 | }; | ||
34 | |||
35 | aliases { | ||
36 | /* this allow the ethaddr uboot environmnet variable contents | ||
37 | * to be added to the gmac1 device tree blob. | ||
38 | */ | ||
39 | ethernet0 = &gmac1; | ||
40 | }; | ||
41 | |||
42 | soc { | 22 | soc { |
43 | clkmgr@ffd04000 { | 23 | clkmgr@ffd04000 { |
44 | clocks { | 24 | clocks { |
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts new file mode 100644 index 000000000000..2ee52ab8cabb --- /dev/null +++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Altera Corporation <www.altera.com> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | /include/ "socfpga_cyclone5.dtsi" | ||
19 | |||
20 | / { | ||
21 | model = "Altera SOCFPGA Cyclone V SoC Development Kit"; | ||
22 | compatible = "altr,socfpga-cyclone5", "altr,socfpga"; | ||
23 | |||
24 | chosen { | ||
25 | bootargs = "console=ttyS0,115200"; | ||
26 | }; | ||
27 | |||
28 | memory { | ||
29 | name = "memory"; | ||
30 | device_type = "memory"; | ||
31 | reg = <0x0 0x40000000>; /* 1GB */ | ||
32 | }; | ||
33 | |||
34 | aliases { | ||
35 | /* this allow the ethaddr uboot environmnet variable contents | ||
36 | * to be added to the gmac1 device tree blob. | ||
37 | */ | ||
38 | ethernet0 = &gmac1; | ||
39 | }; | ||
40 | }; | ||
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts new file mode 100644 index 000000000000..50b99a2c12ae --- /dev/null +++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Steffen Trumtrar <s.trumtrar@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | /include/ "socfpga_cyclone5.dtsi" | ||
19 | |||
20 | / { | ||
21 | model = "Terasic SoCkit"; | ||
22 | compatible = "altr,socfpga-cyclone5", "altr,socfpga"; | ||
23 | |||
24 | chosen { | ||
25 | bootargs = "console=ttyS0,115200"; | ||
26 | }; | ||
27 | |||
28 | memory { | ||
29 | name = "memory"; | ||
30 | device_type = "memory"; | ||
31 | reg = <0x0 0x40000000>; /* 1GB */ | ||
32 | }; | ||
33 | }; | ||
34 | |||
35 | &gmac1 { | ||
36 | status = "okay"; | ||
37 | }; | ||
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi index 1c1091eedade..7da99fe497e1 100644 --- a/arch/arm/boot/dts/ste-dbx5x0.dtsi +++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi | |||
@@ -10,6 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <dt-bindings/interrupt-controller/irq.h> | 12 | #include <dt-bindings/interrupt-controller/irq.h> |
13 | #include <dt-bindings/mfd/dbx500-prcmu.h> | ||
13 | #include "skeleton.dtsi" | 14 | #include "skeleton.dtsi" |
14 | 15 | ||
15 | / { | 16 | / { |
@@ -42,16 +43,56 @@ | |||
42 | interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; | 43 | interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; |
43 | }; | 44 | }; |
44 | 45 | ||
46 | |||
47 | clocks { | ||
48 | compatible = "stericsson,u8500-clks"; | ||
49 | |||
50 | prcmu_clk: prcmu-clock { | ||
51 | #clock-cells = <1>; | ||
52 | }; | ||
53 | |||
54 | prcc_pclk: prcc-periph-clock { | ||
55 | #clock-cells = <2>; | ||
56 | }; | ||
57 | |||
58 | prcc_kclk: prcc-kernel-clock { | ||
59 | #clock-cells = <2>; | ||
60 | }; | ||
61 | |||
62 | rtc_clk: rtc32k-clock { | ||
63 | #clock-cells = <0>; | ||
64 | }; | ||
65 | |||
66 | smp_twd_clk: smp-twd-clock { | ||
67 | #clock-cells = <0>; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | mtu@a03c6000 { | ||
72 | /* Nomadik System Timer */ | ||
73 | compatible = "st,nomadik-mtu"; | ||
74 | reg = <0xa03c6000 0x1000>; | ||
75 | interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>; | ||
76 | |||
77 | clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>; | ||
78 | clock-names = "timclk", "apb_pclk"; | ||
79 | }; | ||
80 | |||
45 | timer@a0410600 { | 81 | timer@a0410600 { |
46 | compatible = "arm,cortex-a9-twd-timer"; | 82 | compatible = "arm,cortex-a9-twd-timer"; |
47 | reg = <0xa0410600 0x20>; | 83 | reg = <0xa0410600 0x20>; |
48 | interrupts = <1 13 0x304>; /* IRQ level high per-CPU */ | 84 | interrupts = <1 13 0x304>; /* IRQ level high per-CPU */ |
85 | |||
86 | clocks = <&smp_twd_clk>; | ||
49 | }; | 87 | }; |
50 | 88 | ||
51 | rtc@80154000 { | 89 | rtc@80154000 { |
52 | compatible = "arm,rtc-pl031", "arm,primecell"; | 90 | compatible = "arm,rtc-pl031", "arm,primecell"; |
53 | reg = <0x80154000 0x1000>; | 91 | reg = <0x80154000 0x1000>; |
54 | interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>; | 92 | interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>; |
93 | |||
94 | clocks = <&rtc_clk>; | ||
95 | clock-names = "apb_pclk"; | ||
55 | }; | 96 | }; |
56 | 97 | ||
57 | gpio0: gpio@8012e000 { | 98 | gpio0: gpio@8012e000 { |
@@ -65,6 +106,8 @@ | |||
65 | gpio-controller; | 106 | gpio-controller; |
66 | #gpio-cells = <2>; | 107 | #gpio-cells = <2>; |
67 | gpio-bank = <0>; | 108 | gpio-bank = <0>; |
109 | |||
110 | clocks = <&prcc_pclk 1 9>; | ||
68 | }; | 111 | }; |
69 | 112 | ||
70 | gpio1: gpio@8012e080 { | 113 | gpio1: gpio@8012e080 { |
@@ -78,6 +121,8 @@ | |||
78 | gpio-controller; | 121 | gpio-controller; |
79 | #gpio-cells = <2>; | 122 | #gpio-cells = <2>; |
80 | gpio-bank = <1>; | 123 | gpio-bank = <1>; |
124 | |||
125 | clocks = <&prcc_pclk 1 9>; | ||
81 | }; | 126 | }; |
82 | 127 | ||
83 | gpio2: gpio@8000e000 { | 128 | gpio2: gpio@8000e000 { |
@@ -91,6 +136,8 @@ | |||
91 | gpio-controller; | 136 | gpio-controller; |
92 | #gpio-cells = <2>; | 137 | #gpio-cells = <2>; |
93 | gpio-bank = <2>; | 138 | gpio-bank = <2>; |
139 | |||
140 | clocks = <&prcc_pclk 3 8>; | ||
94 | }; | 141 | }; |
95 | 142 | ||
96 | gpio3: gpio@8000e080 { | 143 | gpio3: gpio@8000e080 { |
@@ -104,6 +151,8 @@ | |||
104 | gpio-controller; | 151 | gpio-controller; |
105 | #gpio-cells = <2>; | 152 | #gpio-cells = <2>; |
106 | gpio-bank = <3>; | 153 | gpio-bank = <3>; |
154 | |||
155 | clocks = <&prcc_pclk 3 8>; | ||
107 | }; | 156 | }; |
108 | 157 | ||
109 | gpio4: gpio@8000e100 { | 158 | gpio4: gpio@8000e100 { |
@@ -117,6 +166,8 @@ | |||
117 | gpio-controller; | 166 | gpio-controller; |
118 | #gpio-cells = <2>; | 167 | #gpio-cells = <2>; |
119 | gpio-bank = <4>; | 168 | gpio-bank = <4>; |
169 | |||
170 | clocks = <&prcc_pclk 3 8>; | ||
120 | }; | 171 | }; |
121 | 172 | ||
122 | gpio5: gpio@8000e180 { | 173 | gpio5: gpio@8000e180 { |
@@ -130,6 +181,8 @@ | |||
130 | gpio-controller; | 181 | gpio-controller; |
131 | #gpio-cells = <2>; | 182 | #gpio-cells = <2>; |
132 | gpio-bank = <5>; | 183 | gpio-bank = <5>; |
184 | |||
185 | clocks = <&prcc_pclk 3 8>; | ||
133 | }; | 186 | }; |
134 | 187 | ||
135 | gpio6: gpio@8011e000 { | 188 | gpio6: gpio@8011e000 { |
@@ -143,6 +196,8 @@ | |||
143 | gpio-controller; | 196 | gpio-controller; |
144 | #gpio-cells = <2>; | 197 | #gpio-cells = <2>; |
145 | gpio-bank = <6>; | 198 | gpio-bank = <6>; |
199 | |||
200 | clocks = <&prcc_pclk 2 11>; | ||
146 | }; | 201 | }; |
147 | 202 | ||
148 | gpio7: gpio@8011e080 { | 203 | gpio7: gpio@8011e080 { |
@@ -156,6 +211,8 @@ | |||
156 | gpio-controller; | 211 | gpio-controller; |
157 | #gpio-cells = <2>; | 212 | #gpio-cells = <2>; |
158 | gpio-bank = <7>; | 213 | gpio-bank = <7>; |
214 | |||
215 | clocks = <&prcc_pclk 2 11>; | ||
159 | }; | 216 | }; |
160 | 217 | ||
161 | gpio8: gpio@a03fe000 { | 218 | gpio8: gpio@a03fe000 { |
@@ -169,6 +226,8 @@ | |||
169 | gpio-controller; | 226 | gpio-controller; |
170 | #gpio-cells = <2>; | 227 | #gpio-cells = <2>; |
171 | gpio-bank = <8>; | 228 | gpio-bank = <8>; |
229 | |||
230 | clocks = <&prcc_pclk 5 1>; | ||
172 | }; | 231 | }; |
173 | 232 | ||
174 | pinctrl { | 233 | pinctrl { |
@@ -177,8 +236,7 @@ | |||
177 | }; | 236 | }; |
178 | 237 | ||
179 | usb_per5@a03e0000 { | 238 | usb_per5@a03e0000 { |
180 | compatible = "stericsson,db8500-musb", | 239 | compatible = "stericsson,db8500-musb"; |
181 | "mentor,musb"; | ||
182 | reg = <0xa03e0000 0x10000>; | 240 | reg = <0xa03e0000 0x10000>; |
183 | interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; | 241 | interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; |
184 | interrupt-names = "mc"; | 242 | interrupt-names = "mc"; |
@@ -210,6 +268,8 @@ | |||
210 | "iep_6_14", "oep_6_14", | 268 | "iep_6_14", "oep_6_14", |
211 | "iep_7_15", "oep_7_15", | 269 | "iep_7_15", "oep_7_15", |
212 | "iep_8", "oep_8"; | 270 | "iep_8", "oep_8"; |
271 | |||
272 | clocks = <&prcc_pclk 5 0>; | ||
213 | }; | 273 | }; |
214 | 274 | ||
215 | dma: dma-controller@801C0000 { | 275 | dma: dma-controller@801C0000 { |
@@ -220,6 +280,8 @@ | |||
220 | 280 | ||
221 | #dma-cells = <3>; | 281 | #dma-cells = <3>; |
222 | memcpy-channels = <56 57 58 59 60>; | 282 | memcpy-channels = <56 57 58 59 60>; |
283 | |||
284 | clocks = <&prcmu_clk PRCMU_DMACLK>; | ||
223 | }; | 285 | }; |
224 | 286 | ||
225 | prcmu: prcmu@80157000 { | 287 | prcmu: prcmu@80157000 { |
@@ -238,6 +300,13 @@ | |||
238 | reg = <0x80157450 0xC>; | 300 | reg = <0x80157450 0xC>; |
239 | }; | 301 | }; |
240 | 302 | ||
303 | cpufreq { | ||
304 | compatible = "stericsson,cpufreq-ux500"; | ||
305 | clocks = <&prcmu_clk PRCMU_ARMSS>; | ||
306 | clock-names = "armss"; | ||
307 | status = "disabled"; | ||
308 | }; | ||
309 | |||
241 | thermal@801573c0 { | 310 | thermal@801573c0 { |
242 | compatible = "stericsson,db8500-thermal"; | 311 | compatible = "stericsson,db8500-thermal"; |
243 | reg = <0x801573c0 0x40>; | 312 | reg = <0x801573c0 0x40>; |
@@ -559,65 +628,74 @@ | |||
559 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; | 628 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; |
560 | reg = <0x80004000 0x1000>; | 629 | reg = <0x80004000 0x1000>; |
561 | interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>; | 630 | interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>; |
562 | arm,primecell-periphid = <0x180024>; | ||
563 | 631 | ||
564 | #address-cells = <1>; | 632 | #address-cells = <1>; |
565 | #size-cells = <0>; | 633 | #size-cells = <0>; |
566 | v-i2c-supply = <&db8500_vape_reg>; | 634 | v-i2c-supply = <&db8500_vape_reg>; |
567 | 635 | ||
568 | clock-frequency = <400000>; | 636 | clock-frequency = <400000>; |
637 | clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>; | ||
638 | clock-names = "i2cclk", "apb_pclk"; | ||
569 | }; | 639 | }; |
570 | 640 | ||
571 | i2c@80122000 { | 641 | i2c@80122000 { |
572 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; | 642 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; |
573 | reg = <0x80122000 0x1000>; | 643 | reg = <0x80122000 0x1000>; |
574 | interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>; | 644 | interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>; |
575 | arm,primecell-periphid = <0x180024>; | ||
576 | 645 | ||
577 | #address-cells = <1>; | 646 | #address-cells = <1>; |
578 | #size-cells = <0>; | 647 | #size-cells = <0>; |
579 | v-i2c-supply = <&db8500_vape_reg>; | 648 | v-i2c-supply = <&db8500_vape_reg>; |
580 | 649 | ||
581 | clock-frequency = <400000>; | 650 | clock-frequency = <400000>; |
651 | |||
652 | clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>; | ||
653 | clock-names = "i2cclk", "apb_pclk"; | ||
582 | }; | 654 | }; |
583 | 655 | ||
584 | i2c@80128000 { | 656 | i2c@80128000 { |
585 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; | 657 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; |
586 | reg = <0x80128000 0x1000>; | 658 | reg = <0x80128000 0x1000>; |
587 | interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>; | 659 | interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>; |
588 | arm,primecell-periphid = <0x180024>; | ||
589 | 660 | ||
590 | #address-cells = <1>; | 661 | #address-cells = <1>; |
591 | #size-cells = <0>; | 662 | #size-cells = <0>; |
592 | v-i2c-supply = <&db8500_vape_reg>; | 663 | v-i2c-supply = <&db8500_vape_reg>; |
593 | 664 | ||
594 | clock-frequency = <400000>; | 665 | clock-frequency = <400000>; |
666 | |||
667 | clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>; | ||
668 | clock-names = "i2cclk", "apb_pclk"; | ||
595 | }; | 669 | }; |
596 | 670 | ||
597 | i2c@80110000 { | 671 | i2c@80110000 { |
598 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; | 672 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; |
599 | reg = <0x80110000 0x1000>; | 673 | reg = <0x80110000 0x1000>; |
600 | interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>; | 674 | interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>; |
601 | arm,primecell-periphid = <0x180024>; | ||
602 | 675 | ||
603 | #address-cells = <1>; | 676 | #address-cells = <1>; |
604 | #size-cells = <0>; | 677 | #size-cells = <0>; |
605 | v-i2c-supply = <&db8500_vape_reg>; | 678 | v-i2c-supply = <&db8500_vape_reg>; |
606 | 679 | ||
607 | clock-frequency = <400000>; | 680 | clock-frequency = <400000>; |
681 | |||
682 | clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>; | ||
683 | clock-names = "i2cclk", "apb_pclk"; | ||
608 | }; | 684 | }; |
609 | 685 | ||
610 | i2c@8012a000 { | 686 | i2c@8012a000 { |
611 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; | 687 | compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell"; |
612 | reg = <0x8012a000 0x1000>; | 688 | reg = <0x8012a000 0x1000>; |
613 | interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>; | 689 | interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>; |
614 | arm,primecell-periphid = <0x180024>; | ||
615 | 690 | ||
616 | #address-cells = <1>; | 691 | #address-cells = <1>; |
617 | #size-cells = <0>; | 692 | #size-cells = <0>; |
618 | v-i2c-supply = <&db8500_vape_reg>; | 693 | v-i2c-supply = <&db8500_vape_reg>; |
619 | 694 | ||
620 | clock-frequency = <400000>; | 695 | clock-frequency = <400000>; |
696 | |||
697 | clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>; | ||
698 | clock-names = "i2cclk", "apb_pclk"; | ||
621 | }; | 699 | }; |
622 | 700 | ||
623 | ssp@80002000 { | 701 | ssp@80002000 { |
@@ -626,7 +704,80 @@ | |||
626 | interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; | 704 | interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>; |
627 | #address-cells = <1>; | 705 | #address-cells = <1>; |
628 | #size-cells = <0>; | 706 | #size-cells = <0>; |
629 | status = "disabled"; | 707 | clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>; |
708 | clock-names = "ssp0clk", "apb_pclk"; | ||
709 | dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */ | ||
710 | <&dma 8 0 0x0>; /* Logical - MemToDev */ | ||
711 | dma-names = "rx", "tx"; | ||
712 | }; | ||
713 | |||
714 | ssp@80003000 { | ||
715 | compatible = "arm,pl022", "arm,primecell"; | ||
716 | reg = <0x80003000 0x1000>; | ||
717 | interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>; | ||
718 | #address-cells = <1>; | ||
719 | #size-cells = <0>; | ||
720 | clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>; | ||
721 | clock-names = "ssp1clk", "apb_pclk"; | ||
722 | dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */ | ||
723 | <&dma 9 0 0x0>; /* Logical - MemToDev */ | ||
724 | dma-names = "rx", "tx"; | ||
725 | }; | ||
726 | |||
727 | spi@8011a000 { | ||
728 | compatible = "arm,pl022", "arm,primecell"; | ||
729 | reg = <0x8011a000 0x1000>; | ||
730 | interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>; | ||
731 | #address-cells = <1>; | ||
732 | #size-cells = <0>; | ||
733 | /* Same clock wired to kernel and pclk */ | ||
734 | clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>; | ||
735 | clock-names = "spi0clk", "apb_pclk"; | ||
736 | dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */ | ||
737 | <&dma 0 0 0x0>; /* Logical - MemToDev */ | ||
738 | dma-names = "rx", "tx"; | ||
739 | }; | ||
740 | |||
741 | spi@80112000 { | ||
742 | compatible = "arm,pl022", "arm,primecell"; | ||
743 | reg = <0x80112000 0x1000>; | ||
744 | interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>; | ||
745 | #address-cells = <1>; | ||
746 | #size-cells = <0>; | ||
747 | /* Same clock wired to kernel and pclk */ | ||
748 | clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>; | ||
749 | clock-names = "spi1clk", "apb_pclk"; | ||
750 | dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */ | ||
751 | <&dma 35 0 0x0>; /* Logical - MemToDev */ | ||
752 | dma-names = "rx", "tx"; | ||
753 | }; | ||
754 | |||
755 | spi@80111000 { | ||
756 | compatible = "arm,pl022", "arm,primecell"; | ||
757 | reg = <0x80111000 0x1000>; | ||
758 | interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; | ||
759 | #address-cells = <1>; | ||
760 | #size-cells = <0>; | ||
761 | /* Same clock wired to kernel and pclk */ | ||
762 | clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>; | ||
763 | clock-names = "spi2clk", "apb_pclk"; | ||
764 | dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */ | ||
765 | <&dma 33 0 0x0>; /* Logical - MemToDev */ | ||
766 | dma-names = "rx", "tx"; | ||
767 | }; | ||
768 | |||
769 | spi@80129000 { | ||
770 | compatible = "arm,pl022", "arm,primecell"; | ||
771 | reg = <0x80129000 0x1000>; | ||
772 | interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>; | ||
773 | #address-cells = <1>; | ||
774 | #size-cells = <0>; | ||
775 | /* Same clock wired to kernel and pclk */ | ||
776 | clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>; | ||
777 | clock-names = "spi3clk", "apb_pclk"; | ||
778 | dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */ | ||
779 | <&dma 40 0 0x0>; /* Logical - MemToDev */ | ||
780 | dma-names = "rx", "tx"; | ||
630 | }; | 781 | }; |
631 | 782 | ||
632 | uart@80120000 { | 783 | uart@80120000 { |
@@ -638,6 +789,9 @@ | |||
638 | <&dma 13 0 0x0>; /* Logical - MemToDev */ | 789 | <&dma 13 0 0x0>; /* Logical - MemToDev */ |
639 | dma-names = "rx", "tx"; | 790 | dma-names = "rx", "tx"; |
640 | 791 | ||
792 | clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>; | ||
793 | clock-names = "uart", "apb_pclk"; | ||
794 | |||
641 | status = "disabled"; | 795 | status = "disabled"; |
642 | }; | 796 | }; |
643 | 797 | ||
@@ -650,6 +804,9 @@ | |||
650 | <&dma 12 0 0x0>; /* Logical - MemToDev */ | 804 | <&dma 12 0 0x0>; /* Logical - MemToDev */ |
651 | dma-names = "rx", "tx"; | 805 | dma-names = "rx", "tx"; |
652 | 806 | ||
807 | clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>; | ||
808 | clock-names = "uart", "apb_pclk"; | ||
809 | |||
653 | status = "disabled"; | 810 | status = "disabled"; |
654 | }; | 811 | }; |
655 | 812 | ||
@@ -662,6 +819,9 @@ | |||
662 | <&dma 11 0 0x0>; /* Logical - MemToDev */ | 819 | <&dma 11 0 0x0>; /* Logical - MemToDev */ |
663 | dma-names = "rx", "tx"; | 820 | dma-names = "rx", "tx"; |
664 | 821 | ||
822 | clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>; | ||
823 | clock-names = "uart", "apb_pclk"; | ||
824 | |||
665 | status = "disabled"; | 825 | status = "disabled"; |
666 | }; | 826 | }; |
667 | 827 | ||
@@ -674,6 +834,9 @@ | |||
674 | <&dma 29 0 0x0>; /* Logical - MemToDev */ | 834 | <&dma 29 0 0x0>; /* Logical - MemToDev */ |
675 | dma-names = "rx", "tx"; | 835 | dma-names = "rx", "tx"; |
676 | 836 | ||
837 | clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>; | ||
838 | clock-names = "sdi", "apb_pclk"; | ||
839 | |||
677 | status = "disabled"; | 840 | status = "disabled"; |
678 | }; | 841 | }; |
679 | 842 | ||
@@ -686,6 +849,9 @@ | |||
686 | <&dma 32 0 0x0>; /* Logical - MemToDev */ | 849 | <&dma 32 0 0x0>; /* Logical - MemToDev */ |
687 | dma-names = "rx", "tx"; | 850 | dma-names = "rx", "tx"; |
688 | 851 | ||
852 | clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>; | ||
853 | clock-names = "sdi", "apb_pclk"; | ||
854 | |||
689 | status = "disabled"; | 855 | status = "disabled"; |
690 | }; | 856 | }; |
691 | 857 | ||
@@ -698,6 +864,9 @@ | |||
698 | <&dma 28 0 0x0>; /* Logical - MemToDev */ | 864 | <&dma 28 0 0x0>; /* Logical - MemToDev */ |
699 | dma-names = "rx", "tx"; | 865 | dma-names = "rx", "tx"; |
700 | 866 | ||
867 | clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>; | ||
868 | clock-names = "sdi", "apb_pclk"; | ||
869 | |||
701 | status = "disabled"; | 870 | status = "disabled"; |
702 | }; | 871 | }; |
703 | 872 | ||
@@ -705,6 +874,10 @@ | |||
705 | compatible = "arm,pl18x", "arm,primecell"; | 874 | compatible = "arm,pl18x", "arm,primecell"; |
706 | reg = <0x80119000 0x1000>; | 875 | reg = <0x80119000 0x1000>; |
707 | interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>; | 876 | interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>; |
877 | |||
878 | clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>; | ||
879 | clock-names = "sdi", "apb_pclk"; | ||
880 | |||
708 | status = "disabled"; | 881 | status = "disabled"; |
709 | }; | 882 | }; |
710 | 883 | ||
@@ -717,6 +890,9 @@ | |||
717 | <&dma 42 0 0x0>; /* Logical - MemToDev */ | 890 | <&dma 42 0 0x0>; /* Logical - MemToDev */ |
718 | dma-names = "rx", "tx"; | 891 | dma-names = "rx", "tx"; |
719 | 892 | ||
893 | clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>; | ||
894 | clock-names = "sdi", "apb_pclk"; | ||
895 | |||
720 | status = "disabled"; | 896 | status = "disabled"; |
721 | }; | 897 | }; |
722 | 898 | ||
@@ -724,6 +900,10 @@ | |||
724 | compatible = "arm,pl18x", "arm,primecell"; | 900 | compatible = "arm,pl18x", "arm,primecell"; |
725 | reg = <0x80008000 0x1000>; | 901 | reg = <0x80008000 0x1000>; |
726 | interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>; | 902 | interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>; |
903 | |||
904 | clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>; | ||
905 | clock-names = "sdi", "apb_pclk"; | ||
906 | |||
727 | status = "disabled"; | 907 | status = "disabled"; |
728 | }; | 908 | }; |
729 | 909 | ||
@@ -732,6 +912,10 @@ | |||
732 | reg = <0x80123000 0x1000>; | 912 | reg = <0x80123000 0x1000>; |
733 | interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>; | 913 | interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>; |
734 | v-ape-supply = <&db8500_vape_reg>; | 914 | v-ape-supply = <&db8500_vape_reg>; |
915 | |||
916 | clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>; | ||
917 | clock-names = "msp", "apb_pclk"; | ||
918 | |||
735 | status = "disabled"; | 919 | status = "disabled"; |
736 | }; | 920 | }; |
737 | 921 | ||
@@ -740,6 +924,10 @@ | |||
740 | reg = <0x80124000 0x1000>; | 924 | reg = <0x80124000 0x1000>; |
741 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; | 925 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; |
742 | v-ape-supply = <&db8500_vape_reg>; | 926 | v-ape-supply = <&db8500_vape_reg>; |
927 | |||
928 | clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>; | ||
929 | clock-names = "msp", "apb_pclk"; | ||
930 | |||
743 | status = "disabled"; | 931 | status = "disabled"; |
744 | }; | 932 | }; |
745 | 933 | ||
@@ -749,6 +937,10 @@ | |||
749 | reg = <0x80117000 0x1000>; | 937 | reg = <0x80117000 0x1000>; |
750 | interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>; | 938 | interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>; |
751 | v-ape-supply = <&db8500_vape_reg>; | 939 | v-ape-supply = <&db8500_vape_reg>; |
940 | |||
941 | clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>; | ||
942 | clock-names = "msp", "apb_pclk"; | ||
943 | |||
752 | status = "disabled"; | 944 | status = "disabled"; |
753 | }; | 945 | }; |
754 | 946 | ||
@@ -757,6 +949,10 @@ | |||
757 | reg = <0x80125000 0x1000>; | 949 | reg = <0x80125000 0x1000>; |
758 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; | 950 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; |
759 | v-ape-supply = <&db8500_vape_reg>; | 951 | v-ape-supply = <&db8500_vape_reg>; |
952 | |||
953 | clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>; | ||
954 | clock-names = "msp", "apb_pclk"; | ||
955 | |||
760 | status = "disabled"; | 956 | status = "disabled"; |
761 | }; | 957 | }; |
762 | 958 | ||
@@ -772,7 +968,7 @@ | |||
772 | cpufreq-cooling { | 968 | cpufreq-cooling { |
773 | compatible = "stericsson,db8500-cpufreq-cooling"; | 969 | compatible = "stericsson,db8500-cpufreq-cooling"; |
774 | status = "disabled"; | 970 | status = "disabled"; |
775 | }; | 971 | }; |
776 | 972 | ||
777 | vmmci: regulator-gpio { | 973 | vmmci: regulator-gpio { |
778 | compatible = "regulator-gpio"; | 974 | compatible = "regulator-gpio"; |
@@ -797,6 +993,7 @@ | |||
797 | interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>; | 993 | interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>; |
798 | 994 | ||
799 | v-ape-supply = <&db8500_vape_reg>; | 995 | v-ape-supply = <&db8500_vape_reg>; |
996 | clocks = <&prcc_pclk 6 1>; | ||
800 | }; | 997 | }; |
801 | 998 | ||
802 | hash@a03c2000 { | 999 | hash@a03c2000 { |
@@ -804,6 +1001,7 @@ | |||
804 | reg = <0xa03c2000 0x1000>; | 1001 | reg = <0xa03c2000 0x1000>; |
805 | 1002 | ||
806 | v-ape-supply = <&db8500_vape_reg>; | 1003 | v-ape-supply = <&db8500_vape_reg>; |
1004 | clocks = <&prcc_pclk 6 2>; | ||
807 | }; | 1005 | }; |
808 | }; | 1006 | }; |
809 | }; | 1007 | }; |
diff --git a/arch/arm/boot/dts/ste-stuib.dtsi b/arch/arm/boot/dts/ste-href-stuib.dtsi index 524e33240ad4..76704ec0ffcc 100644 --- a/arch/arm/boot/dts/ste-stuib.dtsi +++ b/arch/arm/boot/dts/ste-href-stuib.dtsi | |||
@@ -57,7 +57,6 @@ | |||
57 | bu21013_tp@5c { | 57 | bu21013_tp@5c { |
58 | compatible = "rohm,bu21013_tp"; | 58 | compatible = "rohm,bu21013_tp"; |
59 | reg = <0x5c>; | 59 | reg = <0x5c>; |
60 | touch-gpio = <&gpio2 20 0x4>; | ||
61 | avdd-supply = <&ab8500_ldo_aux1_reg>; | 60 | avdd-supply = <&ab8500_ldo_aux1_reg>; |
62 | 61 | ||
63 | rohm,touch-max-x = <384>; | 62 | rohm,touch-max-x = <384>; |
@@ -68,7 +67,6 @@ | |||
68 | bu21013_tp@5d { | 67 | bu21013_tp@5d { |
69 | compatible = "rohm,bu21013_tp"; | 68 | compatible = "rohm,bu21013_tp"; |
70 | reg = <0x5d>; | 69 | reg = <0x5d>; |
71 | touch-gpio = <&gpio2 20 0x4>; | ||
72 | avdd-supply = <&ab8500_ldo_aux1_reg>; | 70 | avdd-supply = <&ab8500_ldo_aux1_reg>; |
73 | 71 | ||
74 | rohm,touch-max-x = <384>; | 72 | rohm,touch-max-x = <384>; |
diff --git a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi new file mode 100644 index 000000000000..76d3ef13175f --- /dev/null +++ b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | * | ||
11 | * Device Tree for the TVK1281618 UIB | ||
12 | */ | ||
13 | |||
14 | #include <dt-bindings/interrupt-controller/irq.h> | ||
15 | |||
16 | / { | ||
17 | soc { | ||
18 | /* Add Synaptics touch screen, TC35892 keypad etc here */ | ||
19 | i2c@80004000 { | ||
20 | tc3589x@44 { | ||
21 | compatible = "tc3589x"; | ||
22 | reg = <0x44>; | ||
23 | interrupt-parent = <&gpio6>; | ||
24 | interrupts = <26 IRQ_TYPE_EDGE_RISING>; | ||
25 | |||
26 | interrupt-controller; | ||
27 | #interrupt-cells = <2>; | ||
28 | |||
29 | tc3589x_gpio { | ||
30 | compatible = "tc3589x-gpio"; | ||
31 | interrupts = <0 IRQ_TYPE_EDGE_RISING>; | ||
32 | |||
33 | interrupt-controller; | ||
34 | #interrupt-cells = <2>; | ||
35 | gpio-controller; | ||
36 | #gpio-cells = <2>; | ||
37 | }; | ||
38 | }; | ||
39 | }; | ||
40 | }; | ||
41 | }; | ||
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi index 370e03f5e7b2..aa3f02060fdd 100644 --- a/arch/arm/boot/dts/ste-href.dtsi +++ b/arch/arm/boot/dts/ste-href.dtsi | |||
@@ -41,28 +41,6 @@ | |||
41 | status = "okay"; | 41 | status = "okay"; |
42 | }; | 42 | }; |
43 | 43 | ||
44 | i2c@80004000 { | ||
45 | tc3589x@42 { | ||
46 | compatible = "tc3589x"; | ||
47 | reg = <0x42>; | ||
48 | interrupt-parent = <&gpio6>; | ||
49 | interrupts = <25 IRQ_TYPE_EDGE_RISING>; | ||
50 | |||
51 | interrupt-controller; | ||
52 | #interrupt-cells = <2>; | ||
53 | |||
54 | tc3589x_gpio: tc3589x_gpio { | ||
55 | compatible = "tc3589x-gpio"; | ||
56 | interrupts = <0 IRQ_TYPE_EDGE_RISING>; | ||
57 | |||
58 | interrupt-controller; | ||
59 | #interrupt-cells = <2>; | ||
60 | gpio-controller; | ||
61 | #gpio-cells = <2>; | ||
62 | }; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | i2c@80128000 { | 44 | i2c@80128000 { |
67 | lp5521@33 { | 45 | lp5521@33 { |
68 | compatible = "national,lp5521"; | 46 | compatible = "national,lp5521"; |
@@ -72,6 +50,7 @@ | |||
72 | chan0 { | 50 | chan0 { |
73 | led-cur = /bits/ 8 <0x2f>; | 51 | led-cur = /bits/ 8 <0x2f>; |
74 | max-cur = /bits/ 8 <0x5f>; | 52 | max-cur = /bits/ 8 <0x5f>; |
53 | linux,default-trigger = "heartbeat"; | ||
75 | }; | 54 | }; |
76 | chan1 { | 55 | chan1 { |
77 | led-cur = /bits/ 8 <0x2f>; | 56 | led-cur = /bits/ 8 <0x2f>; |
@@ -102,7 +81,7 @@ | |||
102 | }; | 81 | }; |
103 | bh1780@29 { | 82 | bh1780@29 { |
104 | compatible = "rohm,bh1780gli"; | 83 | compatible = "rohm,bh1780gli"; |
105 | reg = <0x33>; | 84 | reg = <0x29>; |
106 | }; | 85 | }; |
107 | }; | 86 | }; |
108 | 87 | ||
@@ -167,89 +146,11 @@ | |||
167 | }; | 146 | }; |
168 | 147 | ||
169 | prcmu@80157000 { | 148 | prcmu@80157000 { |
170 | db8500-prcmu-regulators { | 149 | ab8500 { |
171 | db8500_vape_reg: db8500_vape { | 150 | ab8500-gpio { |
172 | regulator-name = "db8500-vape"; | 151 | compatible = "stericsson,ab8500-gpio"; |
173 | }; | ||
174 | |||
175 | db8500_varm_reg: db8500_varm { | ||
176 | regulator-name = "db8500-varm"; | ||
177 | }; | ||
178 | |||
179 | db8500_vmodem_reg: db8500_vmodem { | ||
180 | regulator-name = "db8500-vmodem"; | ||
181 | }; | ||
182 | |||
183 | db8500_vpll_reg: db8500_vpll { | ||
184 | regulator-name = "db8500-vpll"; | ||
185 | }; | ||
186 | |||
187 | db8500_vsmps1_reg: db8500_vsmps1 { | ||
188 | regulator-name = "db8500-vsmps1"; | ||
189 | }; | ||
190 | |||
191 | db8500_vsmps2_reg: db8500_vsmps2 { | ||
192 | regulator-name = "db8500-vsmps2"; | ||
193 | }; | ||
194 | |||
195 | db8500_vsmps3_reg: db8500_vsmps3 { | ||
196 | regulator-name = "db8500-vsmps3"; | ||
197 | }; | ||
198 | |||
199 | db8500_vrf1_reg: db8500_vrf1 { | ||
200 | regulator-name = "db8500-vrf1"; | ||
201 | }; | ||
202 | |||
203 | db8500_sva_mmdsp_reg: db8500_sva_mmdsp { | ||
204 | regulator-name = "db8500-sva-mmdsp"; | ||
205 | }; | ||
206 | |||
207 | db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret { | ||
208 | regulator-name = "db8500-sva-mmdsp-ret"; | ||
209 | }; | ||
210 | |||
211 | db8500_sva_pipe_reg: db8500_sva_pipe { | ||
212 | regulator-name = "db8500_sva_pipe"; | ||
213 | }; | ||
214 | |||
215 | db8500_sia_mmdsp_reg: db8500_sia_mmdsp { | ||
216 | regulator-name = "db8500_sia_mmdsp"; | ||
217 | }; | ||
218 | |||
219 | db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret { | ||
220 | regulator-name = "db8500-sia-mmdsp-ret"; | ||
221 | }; | ||
222 | |||
223 | db8500_sia_pipe_reg: db8500_sia_pipe { | ||
224 | regulator-name = "db8500-sia-pipe"; | ||
225 | }; | ||
226 | |||
227 | db8500_sga_reg: db8500_sga { | ||
228 | regulator-name = "db8500-sga"; | ||
229 | }; | ||
230 | |||
231 | db8500_b2r2_mcde_reg: db8500_b2r2_mcde { | ||
232 | regulator-name = "db8500-b2r2-mcde"; | ||
233 | }; | ||
234 | |||
235 | db8500_esram12_reg: db8500_esram12 { | ||
236 | regulator-name = "db8500-esram12"; | ||
237 | }; | ||
238 | |||
239 | db8500_esram12_ret_reg: db8500_esram12_ret { | ||
240 | regulator-name = "db8500-esram12-ret"; | ||
241 | }; | ||
242 | |||
243 | db8500_esram34_reg: db8500_esram34 { | ||
244 | regulator-name = "db8500-esram34"; | ||
245 | }; | 152 | }; |
246 | 153 | ||
247 | db8500_esram34_ret_reg: db8500_esram34_ret { | ||
248 | regulator-name = "db8500-esram34-ret"; | ||
249 | }; | ||
250 | }; | ||
251 | |||
252 | ab8500 { | ||
253 | ab8500-regulators { | 154 | ab8500-regulators { |
254 | ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { | 155 | ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { |
255 | regulator-name = "V-DISPLAY"; | 156 | regulator-name = "V-DISPLAY"; |
diff --git a/arch/arm/boot/dts/ste-hrefprev60-stuib.dts b/arch/arm/boot/dts/ste-hrefprev60-stuib.dts new file mode 100644 index 000000000000..2b1cb5b584b6 --- /dev/null +++ b/arch/arm/boot/dts/ste-hrefprev60-stuib.dts | |||
@@ -0,0 +1,34 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | #include "ste-hrefprev60.dtsi" | ||
14 | #include "ste-href-stuib.dtsi" | ||
15 | |||
16 | / { | ||
17 | model = "ST-Ericsson HREF (pre-v60) and ST UIB"; | ||
18 | compatible = "st-ericsson,mop500", "st-ericsson,u8500"; | ||
19 | |||
20 | soc { | ||
21 | /* Reset line for the BU21013 touchscreen */ | ||
22 | i2c@80110000 { | ||
23 | /* Only one of these will be used */ | ||
24 | bu21013_tp@5c { | ||
25 | touch-gpio = <&gpio2 12 0x4>; | ||
26 | reset-gpio = <&tc3589x_gpio 13 0x4>; | ||
27 | }; | ||
28 | bu21013_tp@5d { | ||
29 | touch-gpio = <&gpio2 12 0x4>; | ||
30 | reset-gpio = <&tc3589x_gpio 13 0x4>; | ||
31 | }; | ||
32 | }; | ||
33 | }; | ||
34 | }; | ||
diff --git a/arch/arm/boot/dts/ste-hrefprev60-tvk.dts b/arch/arm/boot/dts/ste-hrefprev60-tvk.dts new file mode 100644 index 000000000000..59523f866812 --- /dev/null +++ b/arch/arm/boot/dts/ste-hrefprev60-tvk.dts | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | #include "ste-hrefprev60.dtsi" | ||
14 | #include "ste-href-tvk1281618.dtsi" | ||
15 | |||
16 | / { | ||
17 | model = "ST-Ericsson HREF (pre-v60) and TVK1281618 UIB"; | ||
18 | compatible = "st-ericsson,mop500", "st-ericsson,u8500"; | ||
19 | }; | ||
diff --git a/arch/arm/boot/dts/ste-hrefprev60.dts b/arch/arm/boot/dts/ste-hrefprev60.dtsi index d8d3b99ab007..b2cd7bc2752f 100644 --- a/arch/arm/boot/dts/ste-hrefprev60.dts +++ b/arch/arm/boot/dts/ste-hrefprev60.dtsi | |||
@@ -7,17 +7,14 @@ | |||
7 | * | 7 | * |
8 | * http://www.opensource.org/licenses/gpl-license.html | 8 | * http://www.opensource.org/licenses/gpl-license.html |
9 | * http://www.gnu.org/copyleft/gpl.html | 9 | * http://www.gnu.org/copyleft/gpl.html |
10 | * | ||
11 | * Device Tree for the HREF+ prior to the v60 variant. | ||
10 | */ | 12 | */ |
11 | 13 | ||
12 | /dts-v1/; | ||
13 | #include "ste-dbx5x0.dtsi" | 14 | #include "ste-dbx5x0.dtsi" |
14 | #include "ste-href.dtsi" | 15 | #include "ste-href.dtsi" |
15 | #include "ste-stuib.dtsi" | ||
16 | 16 | ||
17 | / { | 17 | / { |
18 | model = "ST-Ericsson HREF (pre-v60) platform with Device Tree"; | ||
19 | compatible = "st-ericsson,mop500", "st-ericsson,u8500"; | ||
20 | |||
21 | gpio_keys { | 18 | gpio_keys { |
22 | button@1 { | 19 | button@1 { |
23 | gpios = <&tc3589x_gpio 7 0x4>; | 20 | gpios = <&tc3589x_gpio 7 0x4>; |
@@ -25,24 +22,30 @@ | |||
25 | }; | 22 | }; |
26 | 23 | ||
27 | soc { | 24 | soc { |
28 | prcmu@80157000 { | ||
29 | ab8500@5 { | ||
30 | ab8500-gpio { | ||
31 | compatible = "stericsson,ab8500-gpio"; | ||
32 | }; | ||
33 | }; | ||
34 | }; | ||
35 | |||
36 | i2c@80004000 { | 25 | i2c@80004000 { |
37 | tps61052@33 { | 26 | tps61052@33 { |
38 | compatible = "tps61052"; | 27 | compatible = "tps61052"; |
39 | reg = <0x33>; | 28 | reg = <0x33>; |
40 | }; | 29 | }; |
41 | }; | ||
42 | 30 | ||
43 | i2c@80110000 { | 31 | tc3589x@42 { |
44 | bu21013_tp@5c { | 32 | compatible = "tc3589x"; |
45 | reset-gpio = <&tc3589x_gpio 13 0x4>; | 33 | reg = <0x42>; |
34 | interrupt-parent = <&gpio6>; | ||
35 | interrupts = <25 IRQ_TYPE_EDGE_RISING>; | ||
36 | |||
37 | interrupt-controller; | ||
38 | #interrupt-cells = <2>; | ||
39 | |||
40 | tc3589x_gpio: tc3589x_gpio { | ||
41 | compatible = "tc3589x-gpio"; | ||
42 | interrupts = <0 IRQ_TYPE_EDGE_RISING>; | ||
43 | |||
44 | interrupt-controller; | ||
45 | #interrupt-cells = <2>; | ||
46 | gpio-controller; | ||
47 | #gpio-cells = <2>; | ||
48 | }; | ||
46 | }; | 49 | }; |
47 | }; | 50 | }; |
48 | 51 | ||
diff --git a/arch/arm/boot/dts/ste-hrefv60plus-stuib.dts b/arch/arm/boot/dts/ste-hrefv60plus-stuib.dts new file mode 100644 index 000000000000..8c6a2de56cf1 --- /dev/null +++ b/arch/arm/boot/dts/ste-hrefv60plus-stuib.dts | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | * | ||
11 | * Device Tree for the HREF version 60 or later with the ST UIB | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | #include "ste-hrefv60plus.dtsi" | ||
16 | #include "ste-href-stuib.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "ST-Ericsson HREF (v60+) and ST UIB"; | ||
20 | compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; | ||
21 | |||
22 | soc { | ||
23 | /* Reset line for the BU21013 touchscreen */ | ||
24 | i2c@80110000 { | ||
25 | /* Only one of these will be used */ | ||
26 | bu21013_tp@5c { | ||
27 | touch-gpio = <&gpio2 20 0x4>; | ||
28 | reset-gpio = <&gpio4 17 0x4>; | ||
29 | }; | ||
30 | bu21013_tp@5d { | ||
31 | touch-gpio = <&gpio2 20 0x4>; | ||
32 | reset-gpio = <&gpio4 17 0x4>; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | }; | ||
diff --git a/arch/arm/boot/dts/ste-hrefv60plus-tvk.dts b/arch/arm/boot/dts/ste-hrefv60plus-tvk.dts new file mode 100644 index 000000000000..d53cccdce776 --- /dev/null +++ b/arch/arm/boot/dts/ste-hrefv60plus-tvk.dts | |||
@@ -0,0 +1,21 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | * | ||
11 | * Device Tree for the HREF version 60 or later with the TVK1281618 UIB | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | #include "ste-hrefv60plus.dtsi" | ||
16 | #include "ste-href-tvk1281618.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "ST-Ericsson HREF (v60+) and TVK1281618 UIB"; | ||
20 | compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; | ||
21 | }; | ||
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dts b/arch/arm/boot/dts/ste-hrefv60plus.dts deleted file mode 100644 index 6e52ebbf113f..000000000000 --- a/arch/arm/boot/dts/ste-hrefv60plus.dts +++ /dev/null | |||
@@ -1,210 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | #include "ste-dbx5x0.dtsi" | ||
14 | #include "ste-href.dtsi" | ||
15 | #include "ste-stuib.dtsi" | ||
16 | |||
17 | / { | ||
18 | model = "ST-Ericsson HREF (v60+) platform with Device Tree"; | ||
19 | compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; | ||
20 | |||
21 | gpio_keys { | ||
22 | button@1 { | ||
23 | gpios = <&gpio6 25 0x4>; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | soc { | ||
28 | i2c@80110000 { | ||
29 | bu21013_tp@0x5c { | ||
30 | reset-gpio = <&gpio4 15 0x4>; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | // External Micro SD slot | ||
35 | sdi0_per1@80126000 { | ||
36 | arm,primecell-periphid = <0x10480180>; | ||
37 | max-frequency = <100000000>; | ||
38 | bus-width = <4>; | ||
39 | mmc-cap-sd-highspeed; | ||
40 | mmc-cap-mmc-highspeed; | ||
41 | vmmc-supply = <&ab8500_ldo_aux3_reg>; | ||
42 | |||
43 | cd-gpios = <&tc3589x_gpio 3 0x4>; | ||
44 | |||
45 | status = "okay"; | ||
46 | }; | ||
47 | |||
48 | // WLAN SDIO channel | ||
49 | sdi1_per2@80118000 { | ||
50 | arm,primecell-periphid = <0x10480180>; | ||
51 | max-frequency = <100000000>; | ||
52 | bus-width = <4>; | ||
53 | |||
54 | status = "okay"; | ||
55 | }; | ||
56 | |||
57 | // PoP:ed eMMC | ||
58 | sdi2_per3@80005000 { | ||
59 | arm,primecell-periphid = <0x10480180>; | ||
60 | max-frequency = <100000000>; | ||
61 | bus-width = <8>; | ||
62 | mmc-cap-mmc-highspeed; | ||
63 | |||
64 | status = "okay"; | ||
65 | }; | ||
66 | |||
67 | // On-board eMMC | ||
68 | sdi4_per2@80114000 { | ||
69 | arm,primecell-periphid = <0x10480180>; | ||
70 | max-frequency = <100000000>; | ||
71 | bus-width = <8>; | ||
72 | mmc-cap-mmc-highspeed; | ||
73 | vmmc-supply = <&ab8500_ldo_aux2_reg>; | ||
74 | |||
75 | status = "okay"; | ||
76 | }; | ||
77 | |||
78 | prcmu@80157000 { | ||
79 | db8500-prcmu-regulators { | ||
80 | db8500_vape_reg: db8500_vape { | ||
81 | regulator-name = "db8500-vape"; | ||
82 | }; | ||
83 | |||
84 | db8500_varm_reg: db8500_varm { | ||
85 | regulator-name = "db8500-varm"; | ||
86 | }; | ||
87 | |||
88 | db8500_vmodem_reg: db8500_vmodem { | ||
89 | regulator-name = "db8500-vmodem"; | ||
90 | }; | ||
91 | |||
92 | db8500_vpll_reg: db8500_vpll { | ||
93 | regulator-name = "db8500-vpll"; | ||
94 | }; | ||
95 | |||
96 | db8500_vsmps1_reg: db8500_vsmps1 { | ||
97 | regulator-name = "db8500-vsmps1"; | ||
98 | }; | ||
99 | |||
100 | db8500_vsmps2_reg: db8500_vsmps2 { | ||
101 | regulator-name = "db8500-vsmps2"; | ||
102 | }; | ||
103 | |||
104 | db8500_vsmps3_reg: db8500_vsmps3 { | ||
105 | regulator-name = "db8500-vsmps3"; | ||
106 | }; | ||
107 | |||
108 | db8500_vrf1_reg: db8500_vrf1 { | ||
109 | regulator-name = "db8500-vrf1"; | ||
110 | }; | ||
111 | |||
112 | db8500_sva_mmdsp_reg: db8500_sva_mmdsp { | ||
113 | regulator-name = "db8500-sva-mmdsp"; | ||
114 | }; | ||
115 | |||
116 | db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret { | ||
117 | regulator-name = "db8500-sva-mmdsp-ret"; | ||
118 | }; | ||
119 | |||
120 | db8500_sva_pipe_reg: db8500_sva_pipe { | ||
121 | regulator-name = "db8500_sva_pipe"; | ||
122 | }; | ||
123 | |||
124 | db8500_sia_mmdsp_reg: db8500_sia_mmdsp { | ||
125 | regulator-name = "db8500_sia_mmdsp"; | ||
126 | }; | ||
127 | |||
128 | db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret { | ||
129 | regulator-name = "db8500-sia-mmdsp-ret"; | ||
130 | }; | ||
131 | |||
132 | db8500_sia_pipe_reg: db8500_sia_pipe { | ||
133 | regulator-name = "db8500-sia-pipe"; | ||
134 | }; | ||
135 | |||
136 | db8500_sga_reg: db8500_sga { | ||
137 | regulator-name = "db8500-sga"; | ||
138 | }; | ||
139 | |||
140 | db8500_b2r2_mcde_reg: db8500_b2r2_mcde { | ||
141 | regulator-name = "db8500-b2r2-mcde"; | ||
142 | }; | ||
143 | |||
144 | db8500_esram12_reg: db8500_esram12 { | ||
145 | regulator-name = "db8500-esram12"; | ||
146 | }; | ||
147 | |||
148 | db8500_esram12_ret_reg: db8500_esram12_ret { | ||
149 | regulator-name = "db8500-esram12-ret"; | ||
150 | }; | ||
151 | |||
152 | db8500_esram34_reg: db8500_esram34 { | ||
153 | regulator-name = "db8500-esram34"; | ||
154 | }; | ||
155 | |||
156 | db8500_esram34_ret_reg: db8500_esram34_ret { | ||
157 | regulator-name = "db8500-esram34-ret"; | ||
158 | }; | ||
159 | }; | ||
160 | |||
161 | ab8500 { | ||
162 | ab8500-regulators { | ||
163 | ab8500_ldo_aux1_reg: ab8500_ldo_aux1 { | ||
164 | regulator-name = "V-DISPLAY"; | ||
165 | }; | ||
166 | |||
167 | ab8500_ldo_aux2_reg: ab8500_ldo_aux2 { | ||
168 | regulator-name = "V-eMMC1"; | ||
169 | }; | ||
170 | |||
171 | ab8500_ldo_aux3_reg: ab8500_ldo_aux3 { | ||
172 | regulator-name = "V-MMC-SD"; | ||
173 | }; | ||
174 | |||
175 | ab8500_ldo_intcore_reg: ab8500_ldo_intcore { | ||
176 | regulator-name = "V-INTCORE"; | ||
177 | }; | ||
178 | |||
179 | ab8500_ldo_tvout_reg: ab8500_ldo_tvout { | ||
180 | regulator-name = "V-TVOUT"; | ||
181 | }; | ||
182 | |||
183 | ab8500_ldo_usb_reg: ab8500_ldo_usb { | ||
184 | regulator-name = "dummy"; | ||
185 | }; | ||
186 | |||
187 | ab8500_ldo_audio_reg: ab8500_ldo_audio { | ||
188 | regulator-name = "V-AUD"; | ||
189 | }; | ||
190 | |||
191 | ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 { | ||
192 | regulator-name = "V-AMIC1"; | ||
193 | }; | ||
194 | |||
195 | ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 { | ||
196 | regulator-name = "V-AMIC2"; | ||
197 | }; | ||
198 | |||
199 | ab8500_ldo_dmic_reg: ab8500_ldo_dmic { | ||
200 | regulator-name = "V-DMIC"; | ||
201 | }; | ||
202 | |||
203 | ab8500_ldo_ana_reg: ab8500_ldo_ana { | ||
204 | regulator-name = "V-CSI/DSI"; | ||
205 | }; | ||
206 | }; | ||
207 | }; | ||
208 | }; | ||
209 | }; | ||
210 | }; | ||
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi new file mode 100644 index 000000000000..aed511b47a9e --- /dev/null +++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | * Copyright 2012 ST-Ericsson AB | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | #include "ste-dbx5x0.dtsi" | ||
13 | #include "ste-href.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "ST-Ericsson HREF (v60+) platform with Device Tree"; | ||
17 | compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; | ||
18 | |||
19 | gpio_keys { | ||
20 | button@1 { | ||
21 | gpios = <&gpio5 25 0x4>; | ||
22 | }; | ||
23 | }; | ||
24 | |||
25 | soc { | ||
26 | // External Micro SD slot | ||
27 | sdi0_per1@80126000 { | ||
28 | arm,primecell-periphid = <0x10480180>; | ||
29 | max-frequency = <100000000>; | ||
30 | bus-width = <4>; | ||
31 | mmc-cap-sd-highspeed; | ||
32 | mmc-cap-mmc-highspeed; | ||
33 | vmmc-supply = <&ab8500_ldo_aux3_reg>; | ||
34 | |||
35 | cd-gpios = <&gpio2 31 0x4>; // 95 | ||
36 | |||
37 | status = "okay"; | ||
38 | }; | ||
39 | |||
40 | // WLAN SDIO channel | ||
41 | sdi1_per2@80118000 { | ||
42 | arm,primecell-periphid = <0x10480180>; | ||
43 | max-frequency = <100000000>; | ||
44 | bus-width = <4>; | ||
45 | |||
46 | status = "okay"; | ||
47 | }; | ||
48 | |||
49 | // PoP:ed eMMC | ||
50 | sdi2_per3@80005000 { | ||
51 | arm,primecell-periphid = <0x10480180>; | ||
52 | max-frequency = <100000000>; | ||
53 | bus-width = <8>; | ||
54 | mmc-cap-mmc-highspeed; | ||
55 | |||
56 | status = "okay"; | ||
57 | }; | ||
58 | |||
59 | // On-board eMMC | ||
60 | sdi4_per2@80114000 { | ||
61 | arm,primecell-periphid = <0x10480180>; | ||
62 | max-frequency = <100000000>; | ||
63 | bus-width = <8>; | ||
64 | mmc-cap-mmc-highspeed; | ||
65 | vmmc-supply = <&ab8500_ldo_aux2_reg>; | ||
66 | |||
67 | status = "okay"; | ||
68 | }; | ||
69 | }; | ||
70 | }; | ||
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts index f1fc128e249d..f0b39f835914 100644 --- a/arch/arm/boot/dts/ste-snowball.dts +++ b/arch/arm/boot/dts/ste-snowball.dts | |||
@@ -111,12 +111,13 @@ | |||
111 | vdd33a-supply = <&en_3v3_reg>; | 111 | vdd33a-supply = <&en_3v3_reg>; |
112 | vddvario-supply = <&db8500_vape_reg>; | 112 | vddvario-supply = <&db8500_vape_reg>; |
113 | 113 | ||
114 | |||
115 | reg-shift = <1>; | 114 | reg-shift = <1>; |
116 | reg-io-width = <2>; | 115 | reg-io-width = <2>; |
117 | smsc,force-internal-phy; | 116 | smsc,force-internal-phy; |
118 | smsc,irq-active-high; | 117 | smsc,irq-active-high; |
119 | smsc,irq-push-pull; | 118 | smsc,irq-push-pull; |
119 | |||
120 | clocks = <&prcc_pclk 3 0>; | ||
120 | }; | 121 | }; |
121 | }; | 122 | }; |
122 | 123 | ||
@@ -170,86 +171,8 @@ | |||
170 | }; | 171 | }; |
171 | 172 | ||
172 | prcmu@80157000 { | 173 | prcmu@80157000 { |
173 | db8500-prcmu-regulators { | 174 | cpufreq { |
174 | db8500_vape_reg: db8500_vape { | 175 | status = "okay"; |
175 | regulator-name = "db8500-vape"; | ||
176 | }; | ||
177 | |||
178 | db8500_varm_reg: db8500_varm { | ||
179 | regulator-name = "db8500-varm"; | ||
180 | }; | ||
181 | |||
182 | db8500_vmodem_reg: db8500_vmodem { | ||
183 | regulator-name = "db8500-vmodem"; | ||
184 | }; | ||
185 | |||
186 | db8500_vpll_reg: db8500_vpll { | ||
187 | regulator-name = "db8500-vpll"; | ||
188 | }; | ||
189 | |||
190 | db8500_vsmps1_reg: db8500_vsmps1 { | ||
191 | regulator-name = "db8500-vsmps1"; | ||
192 | }; | ||
193 | |||
194 | db8500_vsmps2_reg: db8500_vsmps2 { | ||
195 | regulator-name = "db8500-vsmps2"; | ||
196 | }; | ||
197 | |||
198 | db8500_vsmps3_reg: db8500_vsmps3 { | ||
199 | regulator-name = "db8500-vsmps3"; | ||
200 | }; | ||
201 | |||
202 | db8500_vrf1_reg: db8500_vrf1 { | ||
203 | regulator-name = "db8500-vrf1"; | ||
204 | }; | ||
205 | |||
206 | db8500_sva_mmdsp_reg: db8500_sva_mmdsp { | ||
207 | regulator-name = "db8500-sva-mmdsp"; | ||
208 | }; | ||
209 | |||
210 | db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret { | ||
211 | regulator-name = "db8500-sva-mmdsp-ret"; | ||
212 | }; | ||
213 | |||
214 | db8500_sva_pipe_reg: db8500_sva_pipe { | ||
215 | regulator-name = "db8500_sva_pipe"; | ||
216 | }; | ||
217 | |||
218 | db8500_sia_mmdsp_reg: db8500_sia_mmdsp { | ||
219 | regulator-name = "db8500_sia_mmdsp"; | ||
220 | }; | ||
221 | |||
222 | db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret { | ||
223 | regulator-name = "db8500-sia-mmdsp-ret"; | ||
224 | }; | ||
225 | |||
226 | db8500_sia_pipe_reg: db8500_sia_pipe { | ||
227 | regulator-name = "db8500-sia-pipe"; | ||
228 | }; | ||
229 | |||
230 | db8500_sga_reg: db8500_sga { | ||
231 | regulator-name = "db8500-sga"; | ||
232 | }; | ||
233 | |||
234 | db8500_b2r2_mcde_reg: db8500_b2r2_mcde { | ||
235 | regulator-name = "db8500-b2r2-mcde"; | ||
236 | }; | ||
237 | |||
238 | db8500_esram12_reg: db8500_esram12 { | ||
239 | regulator-name = "db8500-esram12"; | ||
240 | }; | ||
241 | |||
242 | db8500_esram12_ret_reg: db8500_esram12_ret { | ||
243 | regulator-name = "db8500-esram12-ret"; | ||
244 | }; | ||
245 | |||
246 | db8500_esram34_reg: db8500_esram34 { | ||
247 | regulator-name = "db8500-esram34"; | ||
248 | }; | ||
249 | |||
250 | db8500_esram34_ret_reg: db8500_esram34_ret { | ||
251 | regulator-name = "db8500-esram34-ret"; | ||
252 | }; | ||
253 | }; | 176 | }; |
254 | 177 | ||
255 | thermal@801573c0 { | 178 | thermal@801573c0 { |
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi index c32770a28acf..319cc6b509da 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi | |||
@@ -266,6 +266,11 @@ | |||
266 | reg = <0x01c20c90 0x10>; | 266 | reg = <0x01c20c90 0x10>; |
267 | }; | 267 | }; |
268 | 268 | ||
269 | sid: eeprom@01c23800 { | ||
270 | compatible = "allwinner,sun4i-sid"; | ||
271 | reg = <0x01c23800 0x10>; | ||
272 | }; | ||
273 | |||
269 | uart0: serial@01c28000 { | 274 | uart0: serial@01c28000 { |
270 | compatible = "snps,dw-apb-uart"; | 275 | compatible = "snps,dw-apb-uart"; |
271 | reg = <0x01c28000 0x400>; | 276 | reg = <0x01c28000 0x400>; |
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi index 3b4a0574f068..52476742a104 100644 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi | |||
@@ -255,6 +255,11 @@ | |||
255 | reg = <0x01c20c90 0x10>; | 255 | reg = <0x01c20c90 0x10>; |
256 | }; | 256 | }; |
257 | 257 | ||
258 | sid: eeprom@01c23800 { | ||
259 | compatible = "allwinner,sun4i-sid"; | ||
260 | reg = <0x01c23800 0x10>; | ||
261 | }; | ||
262 | |||
258 | uart0: serial@01c28000 { | 263 | uart0: serial@01c28000 { |
259 | compatible = "snps,dw-apb-uart"; | 264 | compatible = "snps,dw-apb-uart"; |
260 | reg = <0x01c28000 0x400>; | 265 | reg = <0x01c28000 0x400>; |
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi index f6091dc0936c..ce8ef2a45be0 100644 --- a/arch/arm/boot/dts/sun5i-a13.dtsi +++ b/arch/arm/boot/dts/sun5i-a13.dtsi | |||
@@ -222,6 +222,11 @@ | |||
222 | reg = <0x01c20c90 0x10>; | 222 | reg = <0x01c20c90 0x10>; |
223 | }; | 223 | }; |
224 | 224 | ||
225 | sid: eeprom@01c23800 { | ||
226 | compatible = "allwinner,sun4i-sid"; | ||
227 | reg = <0x01c23800 0x10>; | ||
228 | }; | ||
229 | |||
225 | uart1: serial@01c28400 { | 230 | uart1: serial@01c28400 { |
226 | compatible = "snps,dw-apb-uart"; | 231 | compatible = "snps,dw-apb-uart"; |
227 | reg = <0x01c28400 0x400>; | 232 | reg = <0x01c28400 0x400>; |
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi index f244f5f02365..c1751a64889a 100644 --- a/arch/arm/boot/dts/sun6i-a31.dtsi +++ b/arch/arm/boot/dts/sun6i-a31.dtsi | |||
@@ -175,7 +175,7 @@ | |||
175 | apb2_gates: apb2_gates@01c2006c { | 175 | apb2_gates: apb2_gates@01c2006c { |
176 | #clock-cells = <1>; | 176 | #clock-cells = <1>; |
177 | compatible = "allwinner,sun6i-a31-apb2-gates-clk"; | 177 | compatible = "allwinner,sun6i-a31-apb2-gates-clk"; |
178 | reg = <0x01c2006c 0x8>; | 178 | reg = <0x01c2006c 0x4>; |
179 | clocks = <&apb2>; | 179 | clocks = <&apb2>; |
180 | clock-output-names = "apb2_i2c0", "apb2_i2c1", | 180 | clock-output-names = "apb2_i2c0", "apb2_i2c1", |
181 | "apb2_i2c2", "apb2_i2c3", "apb2_uart0", | 181 | "apb2_i2c2", "apb2_i2c3", "apb2_uart0", |
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts index 15e625eca312..5c51cb8a98b0 100644 --- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts +++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts | |||
@@ -48,6 +48,18 @@ | |||
48 | pinctrl-0 = <&uart0_pins_a>; | 48 | pinctrl-0 = <&uart0_pins_a>; |
49 | status = "okay"; | 49 | status = "okay"; |
50 | }; | 50 | }; |
51 | |||
52 | i2c0: i2c@01c2ac00 { | ||
53 | pinctrl-names = "default"; | ||
54 | pinctrl-0 = <&i2c0_pins_a>; | ||
55 | status = "okay"; | ||
56 | }; | ||
57 | |||
58 | i2c1: i2c@01c2b000 { | ||
59 | pinctrl-names = "default"; | ||
60 | pinctrl-0 = <&i2c1_pins_a>; | ||
61 | status = "okay"; | ||
62 | }; | ||
51 | }; | 63 | }; |
52 | 64 | ||
53 | leds { | 65 | leds { |
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts new file mode 100644 index 000000000000..8a1009d6c829 --- /dev/null +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * Copyright 2013 Oliver Schinagl | ||
3 | * | ||
4 | * Oliver Schinagl <oliver@schinagl.nl> | ||
5 | * | ||
6 | * The code contained herein is licensed under the GNU General Public | ||
7 | * License. You may obtain a copy of the GNU General Public License | ||
8 | * Version 2 or later at the following locations: | ||
9 | * | ||
10 | * http://www.opensource.org/licenses/gpl-license.html | ||
11 | * http://www.gnu.org/copyleft/gpl.html | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | /include/ "sun7i-a20.dtsi" | ||
16 | |||
17 | / { | ||
18 | model = "Cubietech Cubietruck"; | ||
19 | compatible = "cubietech,cubietruck", "allwinner,sun7i-a20"; | ||
20 | |||
21 | soc@01c00000 { | ||
22 | pinctrl@01c20800 { | ||
23 | led_pins_cubietruck: led_pins@0 { | ||
24 | allwinner,pins = "PH7", "PH11", "PH20", "PH21"; | ||
25 | allwinner,function = "gpio_out"; | ||
26 | allwinner,drive = <0>; | ||
27 | allwinner,pull = <0>; | ||
28 | }; | ||
29 | }; | ||
30 | |||
31 | uart0: serial@01c28000 { | ||
32 | pinctrl-names = "default"; | ||
33 | pinctrl-0 = <&uart0_pins_a>; | ||
34 | status = "okay"; | ||
35 | }; | ||
36 | }; | ||
37 | |||
38 | leds { | ||
39 | compatible = "gpio-leds"; | ||
40 | pinctrl-names = "default"; | ||
41 | pinctrl-0 = <&led_pins_cubietruck>; | ||
42 | |||
43 | blue { | ||
44 | label = "cubietruck:blue:usr"; | ||
45 | gpios = <&pio 7 21 0>; | ||
46 | }; | ||
47 | |||
48 | orange { | ||
49 | label = "cubietruck:orange:usr"; | ||
50 | gpios = <&pio 7 20 0>; | ||
51 | }; | ||
52 | |||
53 | white { | ||
54 | label = "cubietruck:white:usr"; | ||
55 | gpios = <&pio 7 11 0>; | ||
56 | }; | ||
57 | |||
58 | green { | ||
59 | label = "cubietruck:green:usr"; | ||
60 | gpios = <&pio 7 7 0>; | ||
61 | }; | ||
62 | }; | ||
63 | }; | ||
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts index 9e778557fadb..ead3013f9aca 100644 --- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts +++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts | |||
@@ -60,6 +60,24 @@ | |||
60 | pinctrl-0 = <&uart7_pins_a>; | 60 | pinctrl-0 = <&uart7_pins_a>; |
61 | status = "okay"; | 61 | status = "okay"; |
62 | }; | 62 | }; |
63 | |||
64 | i2c0: i2c@01c2ac00 { | ||
65 | pinctrl-names = "default"; | ||
66 | pinctrl-0 = <&i2c0_pins_a>; | ||
67 | status = "okay"; | ||
68 | }; | ||
69 | |||
70 | i2c1: i2c@01c2b000 { | ||
71 | pinctrl-names = "default"; | ||
72 | pinctrl-0 = <&i2c1_pins_a>; | ||
73 | status = "okay"; | ||
74 | }; | ||
75 | |||
76 | i2c2: i2c@01c2b400 { | ||
77 | pinctrl-names = "default"; | ||
78 | pinctrl-0 = <&i2c2_pins_a>; | ||
79 | status = "okay"; | ||
80 | }; | ||
63 | }; | 81 | }; |
64 | 82 | ||
65 | leds { | 83 | leds { |
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi index 80559cbdbc87..e46cfedde74c 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi | |||
@@ -215,6 +215,27 @@ | |||
215 | allwinner,pull = <0>; | 215 | allwinner,pull = <0>; |
216 | }; | 216 | }; |
217 | 217 | ||
218 | i2c0_pins_a: i2c0@0 { | ||
219 | allwinner,pins = "PB0", "PB1"; | ||
220 | allwinner,function = "i2c0"; | ||
221 | allwinner,drive = <0>; | ||
222 | allwinner,pull = <0>; | ||
223 | }; | ||
224 | |||
225 | i2c1_pins_a: i2c1@0 { | ||
226 | allwinner,pins = "PB18", "PB19"; | ||
227 | allwinner,function = "i2c1"; | ||
228 | allwinner,drive = <0>; | ||
229 | allwinner,pull = <0>; | ||
230 | }; | ||
231 | |||
232 | i2c2_pins_a: i2c2@0 { | ||
233 | allwinner,pins = "PB20", "PB21"; | ||
234 | allwinner,function = "i2c2"; | ||
235 | allwinner,drive = <0>; | ||
236 | allwinner,pull = <0>; | ||
237 | }; | ||
238 | |||
218 | emac_pins_a: emac0@0 { | 239 | emac_pins_a: emac0@0 { |
219 | allwinner,pins = "PA0", "PA1", "PA2", | 240 | allwinner,pins = "PA0", "PA1", "PA2", |
220 | "PA3", "PA4", "PA5", "PA6", | 241 | "PA3", "PA4", "PA5", "PA6", |
@@ -244,6 +265,11 @@ | |||
244 | reg = <0x01c20c90 0x10>; | 265 | reg = <0x01c20c90 0x10>; |
245 | }; | 266 | }; |
246 | 267 | ||
268 | sid: eeprom@01c23800 { | ||
269 | compatible = "allwinner,sun7i-a20-sid"; | ||
270 | reg = <0x01c23800 0x200>; | ||
271 | }; | ||
272 | |||
247 | uart0: serial@01c28000 { | 273 | uart0: serial@01c28000 { |
248 | compatible = "snps,dw-apb-uart"; | 274 | compatible = "snps,dw-apb-uart"; |
249 | reg = <0x01c28000 0x400>; | 275 | reg = <0x01c28000 0x400>; |
@@ -324,6 +350,51 @@ | |||
324 | status = "disabled"; | 350 | status = "disabled"; |
325 | }; | 351 | }; |
326 | 352 | ||
353 | i2c0: i2c@01c2ac00 { | ||
354 | compatible = "allwinner,sun4i-i2c"; | ||
355 | reg = <0x01c2ac00 0x400>; | ||
356 | interrupts = <0 7 1>; | ||
357 | clocks = <&apb1_gates 0>; | ||
358 | clock-frequency = <100000>; | ||
359 | status = "disabled"; | ||
360 | }; | ||
361 | |||
362 | i2c1: i2c@01c2b000 { | ||
363 | compatible = "allwinner,sun4i-i2c"; | ||
364 | reg = <0x01c2b000 0x400>; | ||
365 | interrupts = <0 8 1>; | ||
366 | clocks = <&apb1_gates 1>; | ||
367 | clock-frequency = <100000>; | ||
368 | status = "disabled"; | ||
369 | }; | ||
370 | |||
371 | i2c2: i2c@01c2b400 { | ||
372 | compatible = "allwinner,sun4i-i2c"; | ||
373 | reg = <0x01c2b400 0x400>; | ||
374 | interrupts = <0 9 1>; | ||
375 | clocks = <&apb1_gates 2>; | ||
376 | clock-frequency = <100000>; | ||
377 | status = "disabled"; | ||
378 | }; | ||
379 | |||
380 | i2c3: i2c@01c2b800 { | ||
381 | compatible = "allwinner,sun4i-i2c"; | ||
382 | reg = <0x01c2b800 0x400>; | ||
383 | interrupts = <0 88 1>; | ||
384 | clocks = <&apb1_gates 3>; | ||
385 | clock-frequency = <100000>; | ||
386 | status = "disabled"; | ||
387 | }; | ||
388 | |||
389 | i2c4: i2c@01c2bc00 { | ||
390 | compatible = "allwinner,sun4i-i2c"; | ||
391 | reg = <0x01c2bc00 0x400>; | ||
392 | interrupts = <0 89 1>; | ||
393 | clocks = <&apb1_gates 15>; | ||
394 | clock-frequency = <100000>; | ||
395 | status = "disabled"; | ||
396 | }; | ||
397 | |||
327 | gic: interrupt-controller@01c81000 { | 398 | gic: interrupt-controller@01c81000 { |
328 | compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; | 399 | compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; |
329 | reg = <0x01c81000 0x1000>, | 400 | reg = <0x01c81000 0x1000>, |
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts index 60230288884b..cb5ec23b03a7 100644 --- a/arch/arm/boot/dts/tegra114-dalmore.dts +++ b/arch/arm/boot/dts/tegra114-dalmore.dts | |||
@@ -1,5 +1,6 @@ | |||
1 | /dts-v1/; | 1 | /dts-v1/; |
2 | 2 | ||
3 | #include <dt-bindings/input/input.h> | ||
3 | #include "tegra114.dtsi" | 4 | #include "tegra114.dtsi" |
4 | 5 | ||
5 | / { | 6 | / { |
@@ -738,6 +739,14 @@ | |||
738 | realtek,ldo1-en-gpios = | 739 | realtek,ldo1-en-gpios = |
739 | <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>; | 740 | <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>; |
740 | }; | 741 | }; |
742 | |||
743 | temperature-sensor@4c { | ||
744 | compatible = "onnn,nct1008"; | ||
745 | reg = <0x4c>; | ||
746 | vcc-supply = <&palmas_ldo6_reg>; | ||
747 | interrupt-parent = <&gpio>; | ||
748 | interrupts = <TEGRA_GPIO(O, 4) IRQ_TYPE_LEVEL_LOW>; | ||
749 | }; | ||
741 | }; | 750 | }; |
742 | 751 | ||
743 | i2c@7000d000 { | 752 | i2c@7000d000 { |
@@ -947,7 +956,7 @@ | |||
947 | regulator-max-microvolt = <1800000>; | 956 | regulator-max-microvolt = <1800000>; |
948 | }; | 957 | }; |
949 | 958 | ||
950 | ldo6 { | 959 | palmas_ldo6_reg: ldo6 { |
951 | regulator-name = "vdd-sensor-2v85"; | 960 | regulator-name = "vdd-sensor-2v85"; |
952 | regulator-min-microvolt = <2850000>; | 961 | regulator-min-microvolt = <2850000>; |
953 | regulator-max-microvolt = <2850000>; | 962 | regulator-max-microvolt = <2850000>; |
@@ -1011,6 +1020,19 @@ | |||
1011 | interrupt-parent = <&palmas>; | 1020 | interrupt-parent = <&palmas>; |
1012 | interrupts = <8 0>; | 1021 | interrupts = <8 0>; |
1013 | }; | 1022 | }; |
1023 | |||
1024 | pinmux { | ||
1025 | compatible = "ti,tps65913-pinctrl"; | ||
1026 | pinctrl-names = "default"; | ||
1027 | pinctrl-0 = <&palmas_default>; | ||
1028 | |||
1029 | palmas_default: pinmux { | ||
1030 | pin_gpio6 { | ||
1031 | pins = "gpio6"; | ||
1032 | function = "gpio"; | ||
1033 | }; | ||
1034 | }; | ||
1035 | }; | ||
1014 | }; | 1036 | }; |
1015 | }; | 1037 | }; |
1016 | 1038 | ||
@@ -1081,26 +1103,26 @@ | |||
1081 | home { | 1103 | home { |
1082 | label = "Home"; | 1104 | label = "Home"; |
1083 | gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; | 1105 | gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; |
1084 | linux,code = <102>; /* KEY_HOME */ | 1106 | linux,code = <KEY_HOME>; |
1085 | }; | 1107 | }; |
1086 | 1108 | ||
1087 | power { | 1109 | power { |
1088 | label = "Power"; | 1110 | label = "Power"; |
1089 | gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; | 1111 | gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; |
1090 | linux,code = <116>; /* KEY_POWER */ | 1112 | linux,code = <KEY_POWER>; |
1091 | gpio-key,wakeup; | 1113 | gpio-key,wakeup; |
1092 | }; | 1114 | }; |
1093 | 1115 | ||
1094 | volume_down { | 1116 | volume_down { |
1095 | label = "Volume Down"; | 1117 | label = "Volume Down"; |
1096 | gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>; | 1118 | gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>; |
1097 | linux,code = <114>; /* KEY_VOLUMEDOWN */ | 1119 | linux,code = <KEY_VOLUMEDOWN>; |
1098 | }; | 1120 | }; |
1099 | 1121 | ||
1100 | volume_up { | 1122 | volume_up { |
1101 | label = "Volume Up"; | 1123 | label = "Volume Up"; |
1102 | gpios = <&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_LOW>; | 1124 | gpios = <&gpio TEGRA_GPIO(R, 2) GPIO_ACTIVE_LOW>; |
1103 | linux,code = <115>; /* KEY_VOLUMEUP */ | 1125 | linux,code = <KEY_VOLUMEUP>; |
1104 | }; | 1126 | }; |
1105 | }; | 1127 | }; |
1106 | 1128 | ||
diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi index 2905145d8e59..8d42787c8ff1 100644 --- a/arch/arm/boot/dts/tegra114.dtsi +++ b/arch/arm/boot/dts/tegra114.dtsi | |||
@@ -318,9 +318,9 @@ | |||
318 | 318 | ||
319 | iommu { | 319 | iommu { |
320 | compatible = "nvidia,tegra114-smmu", "nvidia,tegra30-smmu"; | 320 | compatible = "nvidia,tegra114-smmu", "nvidia,tegra30-smmu"; |
321 | reg = <0x7000f010 0x02c | 321 | reg = <0x70019010 0x02c |
322 | 0x7000f1f0 0x010 | 322 | 0x700191f0 0x010 |
323 | 0x7000f228 0x074>; | 323 | 0x70019228 0x074>; |
324 | nvidia,#asids = <4>; | 324 | nvidia,#asids = <4>; |
325 | dma-window = <0 0x40000000>; | 325 | dma-window = <0 0x40000000>; |
326 | nvidia,swgroups = <0x18659fe>; | 326 | nvidia,swgroups = <0x18659fe>; |
diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts new file mode 100644 index 000000000000..431d67a2b413 --- /dev/null +++ b/arch/arm/boot/dts/tegra124-venice2.dts | |||
@@ -0,0 +1,27 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | #include "tegra124.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "NVIDIA Tegra124 Venice2"; | ||
7 | compatible = "nvidia,venice2", "nvidia,tegra124"; | ||
8 | |||
9 | memory { | ||
10 | reg = <0x80000000 0x80000000>; | ||
11 | }; | ||
12 | |||
13 | serial@70006000 { | ||
14 | status = "okay"; | ||
15 | }; | ||
16 | |||
17 | pmc@7000e400 { | ||
18 | nvidia,invert-interrupt; | ||
19 | nvidia,suspend-mode = <1>; | ||
20 | nvidia,cpu-pwr-good-time = <500>; | ||
21 | nvidia,cpu-pwr-off-time = <300>; | ||
22 | nvidia,core-pwr-good-time = <641 3845>; | ||
23 | nvidia,core-pwr-off-time = <61036>; | ||
24 | nvidia,core-power-req-active-high; | ||
25 | nvidia,sys-clock-req-active-high; | ||
26 | }; | ||
27 | }; | ||
diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi new file mode 100644 index 000000000000..b7413004ee77 --- /dev/null +++ b/arch/arm/boot/dts/tegra124.dtsi | |||
@@ -0,0 +1,149 @@ | |||
1 | #include <dt-bindings/gpio/tegra-gpio.h> | ||
2 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
3 | |||
4 | #include "skeleton.dtsi" | ||
5 | |||
6 | / { | ||
7 | compatible = "nvidia,tegra124"; | ||
8 | interrupt-parent = <&gic>; | ||
9 | |||
10 | gic: interrupt-controller@50041000 { | ||
11 | compatible = "arm,cortex-a15-gic"; | ||
12 | #interrupt-cells = <3>; | ||
13 | interrupt-controller; | ||
14 | reg = <0x50041000 0x1000>, | ||
15 | <0x50042000 0x1000>, | ||
16 | <0x50044000 0x2000>, | ||
17 | <0x50046000 0x2000>; | ||
18 | interrupts = <GIC_PPI 9 | ||
19 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
20 | }; | ||
21 | |||
22 | timer@60005000 { | ||
23 | compatible = "nvidia,tegra124-timer", "nvidia,tegra20-timer"; | ||
24 | reg = <0x60005000 0x400>; | ||
25 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, | ||
26 | <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, | ||
27 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, | ||
28 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | ||
29 | <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, | ||
30 | <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | ||
31 | }; | ||
32 | |||
33 | gpio: gpio@6000d000 { | ||
34 | compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio"; | ||
35 | reg = <0x6000d000 0x1000>; | ||
36 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, | ||
37 | <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>, | ||
38 | <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, | ||
39 | <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, | ||
40 | <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | ||
41 | <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, | ||
42 | <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>, | ||
43 | <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>; | ||
44 | #gpio-cells = <2>; | ||
45 | gpio-controller; | ||
46 | #interrupt-cells = <2>; | ||
47 | interrupt-controller; | ||
48 | }; | ||
49 | |||
50 | /* | ||
51 | * There are two serial driver i.e. 8250 based simple serial | ||
52 | * driver and APB DMA based serial driver for higher baudrate | ||
53 | * and performace. To enable the 8250 based driver, the compatible | ||
54 | * is "nvidia,tegra124-uart", "nvidia,tegra20-uart" and to enable | ||
55 | * the APB DMA based serial driver, the comptible is | ||
56 | * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart". | ||
57 | */ | ||
58 | serial@70006000 { | ||
59 | compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; | ||
60 | reg = <0x70006000 0x40>; | ||
61 | reg-shift = <2>; | ||
62 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | ||
63 | status = "disabled"; | ||
64 | }; | ||
65 | |||
66 | serial@70006040 { | ||
67 | compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; | ||
68 | reg = <0x70006040 0x40>; | ||
69 | reg-shift = <2>; | ||
70 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | ||
71 | status = "disabled"; | ||
72 | }; | ||
73 | |||
74 | serial@70006200 { | ||
75 | compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; | ||
76 | reg = <0x70006200 0x40>; | ||
77 | reg-shift = <2>; | ||
78 | interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; | ||
79 | status = "disabled"; | ||
80 | }; | ||
81 | |||
82 | serial@70006300 { | ||
83 | compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; | ||
84 | reg = <0x70006300 0x40>; | ||
85 | reg-shift = <2>; | ||
86 | interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; | ||
87 | status = "disabled"; | ||
88 | }; | ||
89 | |||
90 | serial@70006400 { | ||
91 | compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; | ||
92 | reg = <0x70006400 0x40>; | ||
93 | reg-shift = <2>; | ||
94 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | ||
95 | status = "disabled"; | ||
96 | }; | ||
97 | |||
98 | rtc@7000e000 { | ||
99 | compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; | ||
100 | reg = <0x7000e000 0x100>; | ||
101 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | ||
102 | }; | ||
103 | |||
104 | pmc@7000e400 { | ||
105 | compatible = "nvidia,tegra124-pmc"; | ||
106 | reg = <0x7000e400 0x400>; | ||
107 | }; | ||
108 | |||
109 | cpus { | ||
110 | #address-cells = <1>; | ||
111 | #size-cells = <0>; | ||
112 | |||
113 | cpu@0 { | ||
114 | device_type = "cpu"; | ||
115 | compatible = "arm,cortex-a15"; | ||
116 | reg = <0>; | ||
117 | }; | ||
118 | |||
119 | cpu@1 { | ||
120 | device_type = "cpu"; | ||
121 | compatible = "arm,cortex-a15"; | ||
122 | reg = <1>; | ||
123 | }; | ||
124 | |||
125 | cpu@2 { | ||
126 | device_type = "cpu"; | ||
127 | compatible = "arm,cortex-a15"; | ||
128 | reg = <2>; | ||
129 | }; | ||
130 | |||
131 | cpu@3 { | ||
132 | device_type = "cpu"; | ||
133 | compatible = "arm,cortex-a15"; | ||
134 | reg = <3>; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | timer { | ||
139 | compatible = "arm,armv7-timer"; | ||
140 | interrupts = <GIC_PPI 13 | ||
141 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
142 | <GIC_PPI 14 | ||
143 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
144 | <GIC_PPI 11 | ||
145 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
146 | <GIC_PPI 10 | ||
147 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | ||
148 | }; | ||
149 | }; | ||
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index e19dbf238e5c..5ea7dfa4d9fa 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi | |||
@@ -294,9 +294,10 @@ | |||
294 | }; | 294 | }; |
295 | }; | 295 | }; |
296 | 296 | ||
297 | nct1008 { | 297 | temperature-sensor@4c { |
298 | compatible = "onnn,nct1008"; | 298 | compatible = "onnn,nct1008"; |
299 | reg = <0x4c>; | 299 | reg = <0x4c>; |
300 | vcc-supply = <&sys_3v3_reg>; | ||
300 | interrupt-parent = <&gpio>; | 301 | interrupt-parent = <&gpio>; |
301 | interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>; | 302 | interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>; |
302 | }; | 303 | }; |
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index 0022c127e1d9..2bd55cfd88ad 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
@@ -136,12 +136,13 @@ | |||
136 | gr3d { | 136 | gr3d { |
137 | compatible = "nvidia,tegra30-gr3d"; | 137 | compatible = "nvidia,tegra30-gr3d"; |
138 | reg = <0x54180000 0x00040000>; | 138 | reg = <0x54180000 0x00040000>; |
139 | clocks = <&tegra_car 24 &tegra_car 98>; | 139 | clocks = <&tegra_car TEGRA30_CLK_GR3D |
140 | &tegra_car TEGRA30_CLK_GR3D2>; | ||
140 | clock-names = "3d", "3d2"; | 141 | clock-names = "3d", "3d2"; |
141 | }; | 142 | }; |
142 | 143 | ||
143 | dc@54200000 { | 144 | dc@54200000 { |
144 | compatible = "nvidia,tegra30-dc"; | 145 | compatible = "nvidia,tegra30-dc", "nvidia,tegra20-dc"; |
145 | reg = <0x54200000 0x00040000>; | 146 | reg = <0x54200000 0x00040000>; |
146 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | 147 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; |
147 | clocks = <&tegra_car TEGRA30_CLK_DISP1>, | 148 | clocks = <&tegra_car TEGRA30_CLK_DISP1>, |
diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index 5aba238d1f1e..fb1b2ec8eaa9 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi | |||
@@ -23,6 +23,22 @@ | |||
23 | compatible = "ti,twl4030-wdt"; | 23 | compatible = "ti,twl4030-wdt"; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | vaux1: regulator-vaux1 { | ||
27 | compatible = "ti,twl4030-vaux1"; | ||
28 | }; | ||
29 | |||
30 | vaux2: regulator-vaux2 { | ||
31 | compatible = "ti,twl4030-vaux2"; | ||
32 | }; | ||
33 | |||
34 | vaux3: regulator-vaux3 { | ||
35 | compatible = "ti,twl4030-vaux3"; | ||
36 | }; | ||
37 | |||
38 | vaux4: regulator-vaux4 { | ||
39 | compatible = "ti,twl4030-vaux4"; | ||
40 | }; | ||
41 | |||
26 | vcc: regulator-vdd1 { | 42 | vcc: regulator-vdd1 { |
27 | compatible = "ti,twl4030-vdd1"; | 43 | compatible = "ti,twl4030-vdd1"; |
28 | regulator-min-microvolt = <600000>; | 44 | regulator-min-microvolt = <600000>; |
@@ -35,10 +51,20 @@ | |||
35 | regulator-max-microvolt = <1800000>; | 51 | regulator-max-microvolt = <1800000>; |
36 | }; | 52 | }; |
37 | 53 | ||
38 | vpll2: regulator-vpll2 { | 54 | vio: regulator-vio { |
39 | compatible = "ti,twl4030-vpll2"; | 55 | compatible = "ti,twl4030-vio"; |
40 | regulator-min-microvolt = <1800000>; | 56 | }; |
41 | regulator-max-microvolt = <1800000>; | 57 | |
58 | vintana1: regulator-vintana1 { | ||
59 | compatible = "ti,twl4030-vintana1"; | ||
60 | }; | ||
61 | |||
62 | vintana2: regulator-vintana2 { | ||
63 | compatible = "ti,twl4030-vintana2"; | ||
64 | }; | ||
65 | |||
66 | vintdig: regulator-vintdig { | ||
67 | compatible = "ti,twl4030-vintdig"; | ||
42 | }; | 68 | }; |
43 | 69 | ||
44 | vmmc1: regulator-vmmc1 { | 70 | vmmc1: regulator-vmmc1 { |
@@ -65,6 +91,16 @@ | |||
65 | compatible = "ti,twl4030-vusb3v1"; | 91 | compatible = "ti,twl4030-vusb3v1"; |
66 | }; | 92 | }; |
67 | 93 | ||
94 | vpll1: regulator-vpll1 { | ||
95 | compatible = "ti,twl4030-vpll1"; | ||
96 | }; | ||
97 | |||
98 | vpll2: regulator-vpll2 { | ||
99 | compatible = "ti,twl4030-vpll2"; | ||
100 | regulator-min-microvolt = <1800000>; | ||
101 | regulator-max-microvolt = <1800000>; | ||
102 | }; | ||
103 | |||
68 | vsim: regulator-vsim { | 104 | vsim: regulator-vsim { |
69 | compatible = "ti,twl4030-vsim"; | 105 | compatible = "ti,twl4030-vsim"; |
70 | regulator-min-microvolt = <1800000>; | 106 | regulator-min-microvolt = <1800000>; |
@@ -98,4 +134,9 @@ | |||
98 | compatible = "ti,twl4030-pwmled"; | 134 | compatible = "ti,twl4030-pwmled"; |
99 | #pwm-cells = <2>; | 135 | #pwm-cells = <2>; |
100 | }; | 136 | }; |
137 | |||
138 | twl_pwrbutton: pwrbutton { | ||
139 | compatible = "ti,twl4030-pwrbutton"; | ||
140 | interrupts = <8>; | ||
141 | }; | ||
101 | }; | 142 | }; |
diff --git a/arch/arm/boot/dts/twl6030_omap4.dtsi b/arch/arm/boot/dts/twl6030_omap4.dtsi new file mode 100644 index 000000000000..a4fa5703c42b --- /dev/null +++ b/arch/arm/boot/dts/twl6030_omap4.dtsi | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | &twl { | ||
10 | /* | ||
11 | * On most OMAP4 platforms, the twl6030 IRQ line is connected | ||
12 | * to the SYS_NIRQ1 line on OMAP and the twl6030 MSECURE line is | ||
13 | * connected to the fref_clk0_out.sys_drm_msecure line. | ||
14 | * Therefore, configure the defaults for the SYS_NIRQ1 and | ||
15 | * fref_clk0_out.sys_drm_msecure pins here. | ||
16 | */ | ||
17 | pinctrl-names = "default"; | ||
18 | pinctrl-0 = < | ||
19 | &twl6030_pins | ||
20 | &twl6030_wkup_pins | ||
21 | >; | ||
22 | }; | ||
23 | |||
24 | &omap4_pmx_wkup { | ||
25 | twl6030_wkup_pins: pinmux_twl6030_wkup_pins { | ||
26 | pinctrl-single,pins = < | ||
27 | 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */ | ||
28 | >; | ||
29 | }; | ||
30 | }; | ||
31 | |||
32 | &omap4_pmx_core { | ||
33 | twl6030_pins: pinmux_twl6030_pins { | ||
34 | pinctrl-single,pins = < | ||
35 | 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */ | ||
36 | >; | ||
37 | }; | ||
38 | }; | ||
diff --git a/arch/arm/boot/dts/vf610-cosmic.dts b/arch/arm/boot/dts/vf610-cosmic.dts new file mode 100644 index 000000000000..c42e4f938dcd --- /dev/null +++ b/arch/arm/boot/dts/vf610-cosmic.dts | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * Copyright 2013 Freescale Semiconductor, Inc. | ||
3 | * Copyright 2013 Linaro Limited | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation; either version 2 of the License, or | ||
8 | * (at your option) any later version. | ||
9 | */ | ||
10 | |||
11 | /dts-v1/; | ||
12 | #include "vf610.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "PHYTEC Cosmic/Cosmic+ Board"; | ||
16 | compatible = "phytec,vf610-cosmic", "fsl,vf610"; | ||
17 | |||
18 | chosen { | ||
19 | bootargs = "console=ttyLP1,115200"; | ||
20 | }; | ||
21 | |||
22 | memory { | ||
23 | reg = <0x80000000 0x10000000>; | ||
24 | }; | ||
25 | |||
26 | clocks { | ||
27 | enet_ext { | ||
28 | compatible = "fixed-clock"; | ||
29 | #clock-cells = <0>; | ||
30 | clock-frequency = <50000000>; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | }; | ||
35 | |||
36 | &fec1 { | ||
37 | phy-mode = "rmii"; | ||
38 | pinctrl-names = "default"; | ||
39 | pinctrl-0 = <&pinctrl_fec1_1>; | ||
40 | status = "okay"; | ||
41 | }; | ||
42 | |||
43 | &uart1 { | ||
44 | pinctrl-names = "default"; | ||
45 | pinctrl-0 = <&pinctrl_uart1_1>; | ||
46 | status = "okay"; | ||
47 | }; | ||
diff --git a/arch/arm/boot/dts/vf610-twr.dts b/arch/arm/boot/dts/vf610-twr.dts index 1a58678b93fa..c8047ca16501 100644 --- a/arch/arm/boot/dts/vf610-twr.dts +++ b/arch/arm/boot/dts/vf610-twr.dts | |||
@@ -36,6 +36,23 @@ | |||
36 | 36 | ||
37 | }; | 37 | }; |
38 | 38 | ||
39 | &dspi0 { | ||
40 | bus-num = <0>; | ||
41 | pinctrl-names = "default"; | ||
42 | pinctrl-0 = <&pinctrl_dspi0_1>; | ||
43 | status = "okay"; | ||
44 | |||
45 | sflash: at26df081a@0 { | ||
46 | #address-cells = <1>; | ||
47 | #size-cells = <1>; | ||
48 | compatible = "atmel,at26df081a"; | ||
49 | spi-max-frequency = <16000000>; | ||
50 | spi-cpol; | ||
51 | spi-cpha; | ||
52 | reg = <0>; | ||
53 | }; | ||
54 | }; | ||
55 | |||
39 | &fec0 { | 56 | &fec0 { |
40 | phy-mode = "rmii"; | 57 | phy-mode = "rmii"; |
41 | pinctrl-names = "default"; | 58 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/vf610.dtsi b/arch/arm/boot/dts/vf610.dtsi index 67d929cf9804..d31ce1b4a7b0 100644 --- a/arch/arm/boot/dts/vf610.dtsi +++ b/arch/arm/boot/dts/vf610.dtsi | |||
@@ -123,6 +123,18 @@ | |||
123 | status = "disabled"; | 123 | status = "disabled"; |
124 | }; | 124 | }; |
125 | 125 | ||
126 | dspi0: dspi0@4002c000 { | ||
127 | #address-cells = <1>; | ||
128 | #size-cells = <0>; | ||
129 | compatible = "fsl,vf610-dspi"; | ||
130 | reg = <0x4002c000 0x1000>; | ||
131 | interrupts = <0 67 0x04>; | ||
132 | clocks = <&clks VF610_CLK_DSPI0>; | ||
133 | clock-names = "dspi"; | ||
134 | spi-num-chipselects = <5>; | ||
135 | status = "disabled"; | ||
136 | }; | ||
137 | |||
126 | sai2: sai@40031000 { | 138 | sai2: sai@40031000 { |
127 | compatible = "fsl,vf610-sai"; | 139 | compatible = "fsl,vf610-sai"; |
128 | reg = <0x40031000 0x1000>; | 140 | reg = <0x40031000 0x1000>; |
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig index 254cf0539439..98a50c309b90 100644 --- a/arch/arm/configs/omap2plus_defconfig +++ b/arch/arm/configs/omap2plus_defconfig | |||
@@ -1,14 +1,13 @@ | |||
1 | CONFIG_EXPERIMENTAL=y | ||
2 | CONFIG_SYSVIPC=y | 1 | CONFIG_SYSVIPC=y |
3 | CONFIG_POSIX_MQUEUE=y | 2 | CONFIG_POSIX_MQUEUE=y |
3 | CONFIG_NO_HZ=y | ||
4 | CONFIG_HIGH_RES_TIMERS=y | ||
4 | CONFIG_BSD_PROCESS_ACCT=y | 5 | CONFIG_BSD_PROCESS_ACCT=y |
5 | CONFIG_IKCONFIG=y | 6 | CONFIG_IKCONFIG=y |
6 | CONFIG_IKCONFIG_PROC=y | 7 | CONFIG_IKCONFIG_PROC=y |
7 | CONFIG_LOG_BUF_SHIFT=16 | 8 | CONFIG_LOG_BUF_SHIFT=16 |
8 | CONFIG_BLK_DEV_INITRD=y | 9 | CONFIG_BLK_DEV_INITRD=y |
9 | CONFIG_EXPERT=y | 10 | CONFIG_EXPERT=y |
10 | # CONFIG_SYSCTL_SYSCALL is not set | ||
11 | CONFIG_KALLSYMS_EXTRA_PASS=y | ||
12 | CONFIG_SLAB=y | 11 | CONFIG_SLAB=y |
13 | CONFIG_PROFILING=y | 12 | CONFIG_PROFILING=y |
14 | CONFIG_OPROFILE=y | 13 | CONFIG_OPROFILE=y |
@@ -20,22 +19,21 @@ CONFIG_MODULE_FORCE_UNLOAD=y | |||
20 | CONFIG_MODVERSIONS=y | 19 | CONFIG_MODVERSIONS=y |
21 | CONFIG_MODULE_SRCVERSION_ALL=y | 20 | CONFIG_MODULE_SRCVERSION_ALL=y |
22 | # CONFIG_BLK_DEV_BSG is not set | 21 | # CONFIG_BLK_DEV_BSG is not set |
22 | CONFIG_PARTITION_ADVANCED=y | ||
23 | CONFIG_ARCH_MULTI_V6=y | 23 | CONFIG_ARCH_MULTI_V6=y |
24 | CONFIG_ARCH_OMAP2PLUS=y | 24 | CONFIG_OMAP_RESET_CLOCKS=y |
25 | CONFIG_OMAP_MUX_DEBUG=y | ||
25 | CONFIG_ARCH_OMAP2=y | 26 | CONFIG_ARCH_OMAP2=y |
26 | CONFIG_ARCH_OMAP3=y | 27 | CONFIG_ARCH_OMAP3=y |
27 | CONFIG_ARCH_OMAP4=y | 28 | CONFIG_ARCH_OMAP4=y |
29 | CONFIG_SOC_OMAP5=y | ||
28 | CONFIG_SOC_AM33XX=y | 30 | CONFIG_SOC_AM33XX=y |
29 | CONFIG_OMAP_RESET_CLOCKS=y | 31 | CONFIG_SOC_DRA7XX=y |
30 | CONFIG_OMAP_MUX_DEBUG=y | ||
31 | CONFIG_ARCH_VEXPRESS_CA9X4=y | ||
32 | CONFIG_ARM_THUMBEE=y | 32 | CONFIG_ARM_THUMBEE=y |
33 | CONFIG_ARM_ERRATA_411920=y | 33 | CONFIG_ARM_ERRATA_411920=y |
34 | CONFIG_NO_HZ=y | ||
35 | CONFIG_HIGH_RES_TIMERS=y | ||
36 | CONFIG_SMP=y | 34 | CONFIG_SMP=y |
37 | CONFIG_NR_CPUS=2 | 35 | CONFIG_NR_CPUS=2 |
38 | CONFIG_LEDS=y | 36 | CONFIG_CMA=y |
39 | CONFIG_ZBOOT_ROM_TEXT=0x0 | 37 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
40 | CONFIG_ZBOOT_ROM_BSS=0x0 | 38 | CONFIG_ZBOOT_ROM_BSS=0x0 |
41 | CONFIG_ARM_APPENDED_DTB=y | 39 | CONFIG_ARM_APPENDED_DTB=y |
@@ -61,8 +59,6 @@ CONFIG_IP_PNP_RARP=y | |||
61 | # CONFIG_IPV6 is not set | 59 | # CONFIG_IPV6 is not set |
62 | CONFIG_NETFILTER=y | 60 | CONFIG_NETFILTER=y |
63 | CONFIG_CAN=m | 61 | CONFIG_CAN=m |
64 | CONFIG_CAN_RAW=m | ||
65 | CONFIG_CAN_BCM=m | ||
66 | CONFIG_CAN_C_CAN=m | 62 | CONFIG_CAN_C_CAN=m |
67 | CONFIG_CAN_C_CAN_PLATFORM=m | 63 | CONFIG_CAN_C_CAN_PLATFORM=m |
68 | CONFIG_BT=m | 64 | CONFIG_BT=m |
@@ -77,14 +73,13 @@ CONFIG_MAC80211=m | |||
77 | CONFIG_MAC80211_RC_PID=y | 73 | CONFIG_MAC80211_RC_PID=y |
78 | CONFIG_MAC80211_RC_DEFAULT_PID=y | 74 | CONFIG_MAC80211_RC_DEFAULT_PID=y |
79 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 75 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
80 | CONFIG_CMA=y | ||
81 | CONFIG_DMA_CMA=y | ||
82 | CONFIG_CONNECTOR=y | ||
83 | CONFIG_DEVTMPFS=y | 76 | CONFIG_DEVTMPFS=y |
84 | CONFIG_DEVTMPFS_MOUNT=y | 77 | CONFIG_DEVTMPFS_MOUNT=y |
78 | CONFIG_DMA_CMA=y | ||
79 | CONFIG_OMAP_OCP2SCP=y | ||
80 | CONFIG_CONNECTOR=y | ||
85 | CONFIG_MTD=y | 81 | CONFIG_MTD=y |
86 | CONFIG_MTD_CMDLINE_PARTS=y | 82 | CONFIG_MTD_CMDLINE_PARTS=y |
87 | CONFIG_MTD_CHAR=y | ||
88 | CONFIG_MTD_BLOCK=y | 83 | CONFIG_MTD_BLOCK=y |
89 | CONFIG_MTD_OOPS=y | 84 | CONFIG_MTD_OOPS=y |
90 | CONFIG_MTD_CFI=y | 85 | CONFIG_MTD_CFI=y |
@@ -98,32 +93,40 @@ CONFIG_MTD_UBI=y | |||
98 | CONFIG_BLK_DEV_LOOP=y | 93 | CONFIG_BLK_DEV_LOOP=y |
99 | CONFIG_BLK_DEV_RAM=y | 94 | CONFIG_BLK_DEV_RAM=y |
100 | CONFIG_BLK_DEV_RAM_SIZE=16384 | 95 | CONFIG_BLK_DEV_RAM_SIZE=16384 |
101 | CONFIG_SENSORS_LIS3LV02D=m | ||
102 | CONFIG_SENSORS_TSL2550=m | 96 | CONFIG_SENSORS_TSL2550=m |
103 | CONFIG_SENSORS_LIS3_I2C=m | ||
104 | CONFIG_BMP085_I2C=m | 97 | CONFIG_BMP085_I2C=m |
98 | CONFIG_SENSORS_LIS3_I2C=m | ||
105 | CONFIG_SCSI=y | 99 | CONFIG_SCSI=y |
106 | CONFIG_BLK_DEV_SD=y | 100 | CONFIG_BLK_DEV_SD=y |
107 | CONFIG_SCSI_MULTI_LUN=y | 101 | CONFIG_SCSI_MULTI_LUN=y |
108 | CONFIG_SCSI_SCAN_ASYNC=y | 102 | CONFIG_SCSI_SCAN_ASYNC=y |
109 | CONFIG_MD=y | 103 | CONFIG_MD=y |
110 | CONFIG_NETDEVICES=y | 104 | CONFIG_NETDEVICES=y |
111 | CONFIG_SMSC_PHY=y | ||
112 | CONFIG_NET_ETHERNET=y | ||
113 | CONFIG_SMC91X=y | ||
114 | CONFIG_SMSC911X=y | ||
115 | CONFIG_KS8851=y | 105 | CONFIG_KS8851=y |
116 | CONFIG_KS8851_MLL=y | 106 | CONFIG_KS8851_MLL=y |
117 | CONFIG_LIBERTAS=m | 107 | CONFIG_SMC91X=y |
118 | CONFIG_LIBERTAS_USB=m | 108 | CONFIG_SMSC911X=y |
119 | CONFIG_LIBERTAS_SDIO=m | 109 | CONFIG_TI_CPSW=y |
120 | CONFIG_LIBERTAS_DEBUG=y | 110 | CONFIG_AT803X_PHY=y |
111 | CONFIG_SMSC_PHY=y | ||
121 | CONFIG_USB_USBNET=y | 112 | CONFIG_USB_USBNET=y |
122 | CONFIG_USB_NET_SMSC95XX=y | 113 | CONFIG_USB_NET_SMSC95XX=y |
123 | CONFIG_USB_ALI_M5632=y | 114 | CONFIG_USB_ALI_M5632=y |
124 | CONFIG_USB_AN2720=y | 115 | CONFIG_USB_AN2720=y |
125 | CONFIG_USB_EPSON2888=y | 116 | CONFIG_USB_EPSON2888=y |
126 | CONFIG_USB_KC2190=y | 117 | CONFIG_USB_KC2190=y |
118 | CONFIG_LIBERTAS=m | ||
119 | CONFIG_LIBERTAS_USB=m | ||
120 | CONFIG_LIBERTAS_SDIO=m | ||
121 | CONFIG_LIBERTAS_DEBUG=y | ||
122 | CONFIG_WL_TI=y | ||
123 | CONFIG_WL12XX=m | ||
124 | CONFIG_WL18XX=m | ||
125 | CONFIG_WLCORE_SPI=m | ||
126 | CONFIG_WLCORE_SDIO=m | ||
127 | CONFIG_MWIFIEX=m | ||
128 | CONFIG_MWIFIEX_SDIO=m | ||
129 | CONFIG_MWIFIEX_USB=m | ||
127 | CONFIG_INPUT_JOYDEV=y | 130 | CONFIG_INPUT_JOYDEV=y |
128 | CONFIG_INPUT_EVDEV=y | 131 | CONFIG_INPUT_EVDEV=y |
129 | CONFIG_KEYBOARD_GPIO=y | 132 | CONFIG_KEYBOARD_GPIO=y |
@@ -133,7 +136,6 @@ CONFIG_INPUT_TOUCHSCREEN=y | |||
133 | CONFIG_TOUCHSCREEN_ADS7846=y | 136 | CONFIG_TOUCHSCREEN_ADS7846=y |
134 | CONFIG_INPUT_MISC=y | 137 | CONFIG_INPUT_MISC=y |
135 | CONFIG_INPUT_TWL4030_PWRBUTTON=y | 138 | CONFIG_INPUT_TWL4030_PWRBUTTON=y |
136 | CONFIG_VT_HW_CONSOLE_BINDING=y | ||
137 | # CONFIG_LEGACY_PTYS is not set | 139 | # CONFIG_LEGACY_PTYS is not set |
138 | CONFIG_SERIAL_8250=y | 140 | CONFIG_SERIAL_8250=y |
139 | CONFIG_SERIAL_8250_CONSOLE=y | 141 | CONFIG_SERIAL_8250_CONSOLE=y |
@@ -143,8 +145,7 @@ CONFIG_SERIAL_8250_MANY_PORTS=y | |||
143 | CONFIG_SERIAL_8250_SHARE_IRQ=y | 145 | CONFIG_SERIAL_8250_SHARE_IRQ=y |
144 | CONFIG_SERIAL_8250_DETECT_IRQ=y | 146 | CONFIG_SERIAL_8250_DETECT_IRQ=y |
145 | CONFIG_SERIAL_8250_RSA=y | 147 | CONFIG_SERIAL_8250_RSA=y |
146 | CONFIG_SERIAL_AMBA_PL011=y | 148 | CONFIG_SERIAL_OF_PLATFORM=y |
147 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y | ||
148 | CONFIG_SERIAL_OMAP=y | 149 | CONFIG_SERIAL_OMAP=y |
149 | CONFIG_SERIAL_OMAP_CONSOLE=y | 150 | CONFIG_SERIAL_OMAP_CONSOLE=y |
150 | CONFIG_HW_RANDOM=y | 151 | CONFIG_HW_RANDOM=y |
@@ -158,31 +159,31 @@ CONFIG_GPIO_TWL4030=y | |||
158 | CONFIG_W1=y | 159 | CONFIG_W1=y |
159 | CONFIG_POWER_SUPPLY=y | 160 | CONFIG_POWER_SUPPLY=y |
160 | CONFIG_SENSORS_LM75=m | 161 | CONFIG_SENSORS_LM75=m |
161 | CONFIG_WATCHDOG=y | ||
162 | CONFIG_THERMAL=y | 162 | CONFIG_THERMAL=y |
163 | CONFIG_THERMAL_HWMON=y | ||
164 | CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y | ||
165 | CONFIG_THERMAL_GOV_FAIR_SHARE=y | 163 | CONFIG_THERMAL_GOV_FAIR_SHARE=y |
166 | CONFIG_THERMAL_GOV_STEP_WISE=y | ||
167 | CONFIG_THERMAL_GOV_USER_SPACE=y | 164 | CONFIG_THERMAL_GOV_USER_SPACE=y |
168 | CONFIG_CPU_THERMAL=y | 165 | CONFIG_TI_SOC_THERMAL=y |
166 | CONFIG_OMAP4_THERMAL=y | ||
167 | CONFIG_OMAP5_THERMAL=y | ||
168 | CONFIG_DRA752_THERMAL=y | ||
169 | CONFIG_WATCHDOG=y | ||
169 | CONFIG_OMAP_WATCHDOG=y | 170 | CONFIG_OMAP_WATCHDOG=y |
170 | CONFIG_TWL4030_WATCHDOG=y | 171 | CONFIG_TWL4030_WATCHDOG=y |
172 | CONFIG_MFD_PALMAS=y | ||
171 | CONFIG_MFD_TPS65217=y | 173 | CONFIG_MFD_TPS65217=y |
172 | CONFIG_MFD_TPS65910=y | 174 | CONFIG_MFD_TPS65910=y |
173 | CONFIG_TWL6040_CORE=y | 175 | CONFIG_TWL6040_CORE=y |
174 | CONFIG_REGULATOR_TWL4030=y | 176 | CONFIG_REGULATOR_PALMAS=y |
175 | CONFIG_REGULATOR_TPS65023=y | 177 | CONFIG_REGULATOR_TPS65023=y |
176 | CONFIG_REGULATOR_TPS6507X=y | 178 | CONFIG_REGULATOR_TPS6507X=y |
177 | CONFIG_REGULATOR_TPS65217=y | 179 | CONFIG_REGULATOR_TPS65217=y |
178 | CONFIG_REGULATOR_TPS65910=y | 180 | CONFIG_REGULATOR_TPS65910=y |
181 | CONFIG_REGULATOR_TWL4030=y | ||
179 | CONFIG_FB=y | 182 | CONFIG_FB=y |
180 | CONFIG_FIRMWARE_EDID=y | 183 | CONFIG_FIRMWARE_EDID=y |
181 | CONFIG_FB_MODE_HELPERS=y | 184 | CONFIG_FB_MODE_HELPERS=y |
182 | CONFIG_FB_TILEBLITTING=y | 185 | CONFIG_FB_TILEBLITTING=y |
183 | CONFIG_FB_OMAP_LCD_VGA=y | ||
184 | CONFIG_OMAP2_DSS=m | 186 | CONFIG_OMAP2_DSS=m |
185 | CONFIG_OMAP2_DSS_RFBI=y | ||
186 | CONFIG_OMAP2_DSS_SDI=y | 187 | CONFIG_OMAP2_DSS_SDI=y |
187 | CONFIG_OMAP2_DSS_DSI=y | 188 | CONFIG_OMAP2_DSS_DSI=y |
188 | CONFIG_FB_OMAP2=m | 189 | CONFIG_FB_OMAP2=m |
@@ -194,12 +195,8 @@ CONFIG_DISPLAY_PANEL_DPI=m | |||
194 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 195 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
195 | CONFIG_LCD_CLASS_DEVICE=y | 196 | CONFIG_LCD_CLASS_DEVICE=y |
196 | CONFIG_LCD_PLATFORM=y | 197 | CONFIG_LCD_PLATFORM=y |
197 | CONFIG_DISPLAY_SUPPORT=y | ||
198 | CONFIG_FRAMEBUFFER_CONSOLE=y | 198 | CONFIG_FRAMEBUFFER_CONSOLE=y |
199 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y | 199 | CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y |
200 | CONFIG_FONTS=y | ||
201 | CONFIG_FONT_8x8=y | ||
202 | CONFIG_FONT_8x16=y | ||
203 | CONFIG_LOGO=y | 200 | CONFIG_LOGO=y |
204 | CONFIG_SOUND=m | 201 | CONFIG_SOUND=m |
205 | CONFIG_SND=m | 202 | CONFIG_SND=m |
@@ -216,14 +213,14 @@ CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m | |||
216 | CONFIG_USB=y | 213 | CONFIG_USB=y |
217 | CONFIG_USB_DEBUG=y | 214 | CONFIG_USB_DEBUG=y |
218 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y | 215 | CONFIG_USB_ANNOUNCE_NEW_DEVICES=y |
219 | CONFIG_USB_DEVICEFS=y | ||
220 | CONFIG_USB_MON=y | 216 | CONFIG_USB_MON=y |
221 | CONFIG_USB_WDM=y | 217 | CONFIG_USB_WDM=y |
222 | CONFIG_USB_STORAGE=y | 218 | CONFIG_USB_STORAGE=y |
223 | CONFIG_USB_LIBUSUAL=y | 219 | CONFIG_USB_DWC3=m |
224 | CONFIG_USB_TEST=y | 220 | CONFIG_USB_TEST=y |
225 | CONFIG_USB_PHY=y | ||
226 | CONFIG_NOP_USB_XCEIV=y | 221 | CONFIG_NOP_USB_XCEIV=y |
222 | CONFIG_OMAP_USB2=y | ||
223 | CONFIG_OMAP_USB3=y | ||
227 | CONFIG_USB_GADGET=y | 224 | CONFIG_USB_GADGET=y |
228 | CONFIG_USB_GADGET_DEBUG=y | 225 | CONFIG_USB_GADGET_DEBUG=y |
229 | CONFIG_USB_GADGET_DEBUG_FILES=y | 226 | CONFIG_USB_GADGET_DEBUG_FILES=y |
@@ -232,7 +229,6 @@ CONFIG_USB_ZERO=m | |||
232 | CONFIG_MMC=y | 229 | CONFIG_MMC=y |
233 | CONFIG_MMC_UNSAFE_RESUME=y | 230 | CONFIG_MMC_UNSAFE_RESUME=y |
234 | CONFIG_SDIO_UART=y | 231 | CONFIG_SDIO_UART=y |
235 | CONFIG_MMC_ARMMMCI=y | ||
236 | CONFIG_MMC_OMAP=y | 232 | CONFIG_MMC_OMAP=y |
237 | CONFIG_MMC_OMAP_HS=y | 233 | CONFIG_MMC_OMAP_HS=y |
238 | CONFIG_NEW_LEDS=y | 234 | CONFIG_NEW_LEDS=y |
@@ -252,11 +248,8 @@ CONFIG_RTC_DRV_OMAP=y | |||
252 | CONFIG_DMADEVICES=y | 248 | CONFIG_DMADEVICES=y |
253 | CONFIG_TI_EDMA=y | 249 | CONFIG_TI_EDMA=y |
254 | CONFIG_DMA_OMAP=y | 250 | CONFIG_DMA_OMAP=y |
255 | CONFIG_TI_SOC_THERMAL=y | 251 | CONFIG_EXTCON=y |
256 | CONFIG_TI_THERMAL=y | 252 | CONFIG_EXTCON_PALMAS=y |
257 | CONFIG_OMAP4_THERMAL=y | ||
258 | CONFIG_OMAP5_THERMAL=y | ||
259 | CONFIG_DRA752_THERMAL=y | ||
260 | CONFIG_EXT2_FS=y | 253 | CONFIG_EXT2_FS=y |
261 | CONFIG_EXT3_FS=y | 254 | CONFIG_EXT3_FS=y |
262 | # CONFIG_EXT3_FS_XATTR is not set | 255 | # CONFIG_EXT3_FS_XATTR is not set |
@@ -275,23 +268,18 @@ CONFIG_JFFS2_RUBIN=y | |||
275 | CONFIG_UBIFS_FS=y | 268 | CONFIG_UBIFS_FS=y |
276 | CONFIG_CRAMFS=y | 269 | CONFIG_CRAMFS=y |
277 | CONFIG_NFS_FS=y | 270 | CONFIG_NFS_FS=y |
278 | CONFIG_NFS_V3=y | ||
279 | CONFIG_NFS_V3_ACL=y | 271 | CONFIG_NFS_V3_ACL=y |
280 | CONFIG_NFS_V4=y | 272 | CONFIG_NFS_V4=y |
281 | CONFIG_ROOT_NFS=y | 273 | CONFIG_ROOT_NFS=y |
282 | CONFIG_PARTITION_ADVANCED=y | ||
283 | CONFIG_NLS_CODEPAGE_437=y | 274 | CONFIG_NLS_CODEPAGE_437=y |
284 | CONFIG_NLS_ISO8859_1=y | 275 | CONFIG_NLS_ISO8859_1=y |
285 | CONFIG_PRINTK_TIME=y | 276 | CONFIG_PRINTK_TIME=y |
277 | CONFIG_DEBUG_INFO=y | ||
286 | CONFIG_MAGIC_SYSRQ=y | 278 | CONFIG_MAGIC_SYSRQ=y |
287 | CONFIG_DEBUG_KERNEL=y | ||
288 | CONFIG_SCHEDSTATS=y | 279 | CONFIG_SCHEDSTATS=y |
289 | CONFIG_TIMER_STATS=y | 280 | CONFIG_TIMER_STATS=y |
290 | CONFIG_PROVE_LOCKING=y | 281 | CONFIG_PROVE_LOCKING=y |
291 | CONFIG_DEBUG_SPINLOCK_SLEEP=y | ||
292 | # CONFIG_DEBUG_BUGVERBOSE is not set | 282 | # CONFIG_DEBUG_BUGVERBOSE is not set |
293 | CONFIG_DEBUG_INFO=y | ||
294 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
295 | CONFIG_SECURITY=y | 283 | CONFIG_SECURITY=y |
296 | CONFIG_CRYPTO_MICHAEL_MIC=y | 284 | CONFIG_CRYPTO_MICHAEL_MIC=y |
297 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 285 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
@@ -300,9 +288,6 @@ CONFIG_CRC_T10DIF=y | |||
300 | CONFIG_CRC_ITU_T=y | 288 | CONFIG_CRC_ITU_T=y |
301 | CONFIG_CRC7=y | 289 | CONFIG_CRC7=y |
302 | CONFIG_LIBCRC32C=y | 290 | CONFIG_LIBCRC32C=y |
303 | CONFIG_SOC_OMAP5=y | 291 | CONFIG_FONTS=y |
304 | CONFIG_TI_DAVINCI_MDIO=y | 292 | CONFIG_FONT_8x8=y |
305 | CONFIG_TI_DAVINCI_CPDMA=y | 293 | CONFIG_FONT_8x16=y |
306 | CONFIG_TI_CPSW=y | ||
307 | CONFIG_AT803X_PHY=y | ||
308 | CONFIG_SOC_DRA7XX=y | ||
diff --git a/arch/arm/configs/u8500_defconfig b/arch/arm/configs/u8500_defconfig index a0025dc13021..ac632cc38f24 100644 --- a/arch/arm/configs/u8500_defconfig +++ b/arch/arm/configs/u8500_defconfig | |||
@@ -1,4 +1,3 @@ | |||
1 | CONFIG_HIGHMEM=y | ||
2 | # CONFIG_SWAP is not set | 1 | # CONFIG_SWAP is not set |
3 | CONFIG_SYSVIPC=y | 2 | CONFIG_SYSVIPC=y |
4 | CONFIG_NO_HZ=y | 3 | CONFIG_NO_HZ=y |
@@ -16,6 +15,9 @@ CONFIG_SMP=y | |||
16 | CONFIG_NR_CPUS=2 | 15 | CONFIG_NR_CPUS=2 |
17 | CONFIG_PREEMPT=y | 16 | CONFIG_PREEMPT=y |
18 | CONFIG_AEABI=y | 17 | CONFIG_AEABI=y |
18 | CONFIG_HIGHMEM=y | ||
19 | CONFIG_ARM_APPENDED_DTB=y | ||
20 | CONFIG_ARM_ATAG_DTB_COMPAT=y | ||
19 | CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8" | 21 | CONFIG_CMDLINE="root=/dev/ram0 console=ttyAMA2,115200n8" |
20 | CONFIG_CPU_FREQ=y | 22 | CONFIG_CPU_FREQ=y |
21 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y | 23 | CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y |
@@ -68,8 +70,8 @@ CONFIG_CPU_THERMAL=y | |||
68 | CONFIG_WATCHDOG=y | 70 | CONFIG_WATCHDOG=y |
69 | CONFIG_MFD_STMPE=y | 71 | CONFIG_MFD_STMPE=y |
70 | CONFIG_MFD_TC3589X=y | 72 | CONFIG_MFD_TC3589X=y |
71 | CONFIG_REGULATOR_GPIO=y | ||
72 | CONFIG_REGULATOR_AB8500=y | 73 | CONFIG_REGULATOR_AB8500=y |
74 | CONFIG_REGULATOR_GPIO=y | ||
73 | CONFIG_SOUND=y | 75 | CONFIG_SOUND=y |
74 | CONFIG_SND=y | 76 | CONFIG_SND=y |
75 | CONFIG_SND_SOC=y | 77 | CONFIG_SND_SOC=y |
@@ -78,10 +80,8 @@ CONFIG_SND_SOC_UX500_MACH_MOP500=y | |||
78 | CONFIG_USB=y | 80 | CONFIG_USB=y |
79 | CONFIG_USB_MUSB_HDRC=y | 81 | CONFIG_USB_MUSB_HDRC=y |
80 | CONFIG_USB_MUSB_UX500=y | 82 | CONFIG_USB_MUSB_UX500=y |
81 | CONFIG_USB_PHY=y | ||
82 | CONFIG_AB8500_USB=y | 83 | CONFIG_AB8500_USB=y |
83 | CONFIG_USB_GADGET=y | 84 | CONFIG_USB_GADGET=y |
84 | CONFIG_USB_GADGET_MUSB_HDRC=y | ||
85 | CONFIG_USB_ETH=m | 85 | CONFIG_USB_ETH=m |
86 | CONFIG_MMC=y | 86 | CONFIG_MMC=y |
87 | CONFIG_MMC_UNSAFE_RESUME=y | 87 | CONFIG_MMC_UNSAFE_RESUME=y |
@@ -116,12 +116,12 @@ CONFIG_NFS_FS=y | |||
116 | CONFIG_ROOT_NFS=y | 116 | CONFIG_ROOT_NFS=y |
117 | CONFIG_NLS_CODEPAGE_437=y | 117 | CONFIG_NLS_CODEPAGE_437=y |
118 | CONFIG_NLS_ISO8859_1=y | 118 | CONFIG_NLS_ISO8859_1=y |
119 | CONFIG_MAGIC_SYSRQ=y | 119 | CONFIG_DEBUG_INFO=y |
120 | CONFIG_DEBUG_FS=y | 120 | CONFIG_DEBUG_FS=y |
121 | CONFIG_MAGIC_SYSRQ=y | ||
121 | CONFIG_DEBUG_KERNEL=y | 122 | CONFIG_DEBUG_KERNEL=y |
122 | # CONFIG_SCHED_DEBUG is not set | 123 | # CONFIG_SCHED_DEBUG is not set |
123 | # CONFIG_DEBUG_PREEMPT is not set | 124 | # CONFIG_DEBUG_PREEMPT is not set |
124 | CONFIG_DEBUG_INFO=y | ||
125 | # CONFIG_FTRACE is not set | 125 | # CONFIG_FTRACE is not set |
126 | CONFIG_DEBUG_USER=y | 126 | CONFIG_DEBUG_USER=y |
127 | CONFIG_CRYPTO_DEV_UX500=y | 127 | CONFIG_CRYPTO_DEV_UX500=y |
diff --git a/arch/arm/mach-at91/at91sam9n12.c b/arch/arm/mach-at91/at91sam9n12.c index c7d670d11802..2d895a297739 100644 --- a/arch/arm/mach-at91/at91sam9n12.c +++ b/arch/arm/mach-at91/at91sam9n12.c | |||
@@ -169,6 +169,7 @@ static struct clk_lookup periph_clocks_lookups[] = { | |||
169 | CLKDEV_CON_DEV_ID("t0_clk", "f8008000.timer", &tcb_clk), | 169 | CLKDEV_CON_DEV_ID("t0_clk", "f8008000.timer", &tcb_clk), |
170 | CLKDEV_CON_DEV_ID("t0_clk", "f800c000.timer", &tcb_clk), | 170 | CLKDEV_CON_DEV_ID("t0_clk", "f800c000.timer", &tcb_clk), |
171 | CLKDEV_CON_DEV_ID("mci_clk", "f0008000.mmc", &mmc_clk), | 171 | CLKDEV_CON_DEV_ID("mci_clk", "f0008000.mmc", &mmc_clk), |
172 | CLKDEV_CON_DEV_ID(NULL, "f0010000.ssc", &ssc_clk), | ||
172 | CLKDEV_CON_DEV_ID("dma_clk", "ffffec00.dma-controller", &dma_clk), | 173 | CLKDEV_CON_DEV_ID("dma_clk", "ffffec00.dma-controller", &dma_clk), |
173 | CLKDEV_CON_DEV_ID(NULL, "f8010000.i2c", &twi0_clk), | 174 | CLKDEV_CON_DEV_ID(NULL, "f8010000.i2c", &twi0_clk), |
174 | CLKDEV_CON_DEV_ID(NULL, "f8014000.i2c", &twi1_clk), | 175 | CLKDEV_CON_DEV_ID(NULL, "f8014000.i2c", &twi1_clk), |
diff --git a/arch/arm/mach-kirkwood/board-dt.c b/arch/arm/mach-kirkwood/board-dt.c index c9f6fd2d90f5..9caa4fe95913 100644 --- a/arch/arm/mach-kirkwood/board-dt.c +++ b/arch/arm/mach-kirkwood/board-dt.c | |||
@@ -151,7 +151,6 @@ static void __init kirkwood_dt_init(void) | |||
151 | writel(readl(CPU_CONFIG) & ~CPU_CONFIG_ERROR_PROP, CPU_CONFIG); | 151 | writel(readl(CPU_CONFIG) & ~CPU_CONFIG_ERROR_PROP, CPU_CONFIG); |
152 | 152 | ||
153 | BUG_ON(mvebu_mbus_dt_init()); | 153 | BUG_ON(mvebu_mbus_dt_init()); |
154 | kirkwood_setup_wins(); | ||
155 | 154 | ||
156 | kirkwood_l2_init(); | 155 | kirkwood_l2_init(); |
157 | 156 | ||
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index cc511a4890a3..1dc5acd4fc99 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c | |||
@@ -330,6 +330,11 @@ static void __init crystalfontz_init(void) | |||
330 | update_fec_mac_prop(OUI_CRYSTALFONTZ); | 330 | update_fec_mac_prop(OUI_CRYSTALFONTZ); |
331 | } | 331 | } |
332 | 332 | ||
333 | static void __init m28cu3_init(void) | ||
334 | { | ||
335 | update_fec_mac_prop(OUI_DENX); | ||
336 | } | ||
337 | |||
333 | static const char __init *mxs_get_soc_id(void) | 338 | static const char __init *mxs_get_soc_id(void) |
334 | { | 339 | { |
335 | struct device_node *np; | 340 | struct device_node *np; |
@@ -457,6 +462,8 @@ static void __init mxs_machine_init(void) | |||
457 | apx4devkit_init(); | 462 | apx4devkit_init(); |
458 | else if (of_machine_is_compatible("crystalfontz,cfa10036")) | 463 | else if (of_machine_is_compatible("crystalfontz,cfa10036")) |
459 | crystalfontz_init(); | 464 | crystalfontz_init(); |
465 | else if (of_machine_is_compatible("msr,m28cu3")) | ||
466 | m28cu3_init(); | ||
460 | 467 | ||
461 | of_platform_populate(NULL, of_default_bus_match_table, | 468 | of_platform_populate(NULL, of_default_bus_match_table, |
462 | NULL, parent); | 469 | NULL, parent); |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index c94624429680..dc21df166161 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -87,6 +87,7 @@ config ARCH_OMAP2PLUS | |||
87 | select COMMON_CLK | 87 | select COMMON_CLK |
88 | select GENERIC_CLOCKEVENTS | 88 | select GENERIC_CLOCKEVENTS |
89 | select GENERIC_IRQ_CHIP | 89 | select GENERIC_IRQ_CHIP |
90 | select MACH_OMAP_GENERIC | ||
90 | select OMAP_DM_TIMER | 91 | select OMAP_DM_TIMER |
91 | select PINCTRL | 92 | select PINCTRL |
92 | select PROC_DEVICETREE if PROC_FS | 93 | select PROC_DEVICETREE if PROC_FS |
@@ -180,16 +181,11 @@ config OMAP_PACKAGE_CUS | |||
180 | config OMAP_PACKAGE_CBP | 181 | config OMAP_PACKAGE_CBP |
181 | bool | 182 | bool |
182 | 183 | ||
183 | comment "OMAP Board Type" | 184 | comment "OMAP Legacy Platform Data Board Type" |
184 | depends on ARCH_OMAP2PLUS | 185 | depends on ARCH_OMAP2PLUS |
185 | 186 | ||
186 | config MACH_OMAP_GENERIC | 187 | config MACH_OMAP_GENERIC |
187 | bool "Generic OMAP2+ board" | 188 | bool |
188 | depends on ARCH_OMAP2PLUS | ||
189 | default y | ||
190 | help | ||
191 | Support for generic TI OMAP2+ boards using Flattened Device Tree. | ||
192 | More information at Documentation/devicetree | ||
193 | 189 | ||
194 | config MACH_OMAP2_TUSB6010 | 190 | config MACH_OMAP2_TUSB6010 |
195 | bool | 191 | bool |
@@ -253,12 +249,6 @@ config MACH_OVERO | |||
253 | default y | 249 | default y |
254 | select OMAP_PACKAGE_CBB | 250 | select OMAP_PACKAGE_CBB |
255 | 251 | ||
256 | config MACH_OMAP3EVM | ||
257 | bool "OMAP 3530 EVM board" | ||
258 | depends on ARCH_OMAP3 | ||
259 | default y | ||
260 | select OMAP_PACKAGE_CBB | ||
261 | |||
262 | config MACH_OMAP3517EVM | 252 | config MACH_OMAP3517EVM |
263 | bool "OMAP3517/ AM3517 EVM board" | 253 | bool "OMAP3517/ AM3517 EVM board" |
264 | depends on ARCH_OMAP3 | 254 | depends on ARCH_OMAP3 |
@@ -307,33 +297,12 @@ config MACH_NOKIA_N8X0 | |||
307 | select MACH_NOKIA_N810_WIMAX | 297 | select MACH_NOKIA_N810_WIMAX |
308 | select OMAP_PACKAGE_ZAC | 298 | select OMAP_PACKAGE_ZAC |
309 | 299 | ||
310 | config MACH_NOKIA_RM680 | ||
311 | bool "Nokia N950 (RM-680) / N9 (RM-696) phones" | ||
312 | depends on ARCH_OMAP3 | ||
313 | default y | ||
314 | select MACH_NOKIA_RM696 | ||
315 | select OMAP_PACKAGE_CBB | ||
316 | |||
317 | config MACH_NOKIA_RX51 | 300 | config MACH_NOKIA_RX51 |
318 | bool "Nokia N900 (RX-51) phone" | 301 | bool "Nokia N900 (RX-51) phone" |
319 | depends on ARCH_OMAP3 | 302 | depends on ARCH_OMAP3 |
320 | default y | 303 | default y |
321 | select OMAP_PACKAGE_CBB | 304 | select OMAP_PACKAGE_CBB |
322 | 305 | ||
323 | config MACH_OMAP_ZOOM2 | ||
324 | bool "OMAP3 Zoom2 board" | ||
325 | depends on ARCH_OMAP3 | ||
326 | default y | ||
327 | select OMAP_PACKAGE_CBB | ||
328 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||
329 | |||
330 | config MACH_OMAP_ZOOM3 | ||
331 | bool "OMAP3630 Zoom3 board" | ||
332 | depends on ARCH_OMAP3 | ||
333 | default y | ||
334 | select OMAP_PACKAGE_CBP | ||
335 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | ||
336 | |||
337 | config MACH_CM_T35 | 306 | config MACH_CM_T35 |
338 | bool "CompuLab CM-T35/CM-T3730 modules" | 307 | bool "CompuLab CM-T35/CM-T3730 modules" |
339 | depends on ARCH_OMAP3 | 308 | depends on ARCH_OMAP3 |
@@ -350,31 +319,12 @@ config MACH_CM_T3517 | |||
350 | config MACH_CM_T3730 | 319 | config MACH_CM_T3730 |
351 | bool | 320 | bool |
352 | 321 | ||
353 | config MACH_IGEP0020 | ||
354 | bool "IGEP v2 board" | ||
355 | depends on ARCH_OMAP3 | ||
356 | default y | ||
357 | select OMAP_PACKAGE_CBB | ||
358 | |||
359 | config MACH_IGEP0030 | ||
360 | bool "IGEP OMAP3 module" | ||
361 | depends on ARCH_OMAP3 | ||
362 | default y | ||
363 | select MACH_IGEP0020 | ||
364 | select OMAP_PACKAGE_CBB | ||
365 | |||
366 | config MACH_SBC3530 | 322 | config MACH_SBC3530 |
367 | bool "OMAP3 SBC STALKER board" | 323 | bool "OMAP3 SBC STALKER board" |
368 | depends on ARCH_OMAP3 | 324 | depends on ARCH_OMAP3 |
369 | default y | 325 | default y |
370 | select OMAP_PACKAGE_CUS | 326 | select OMAP_PACKAGE_CUS |
371 | 327 | ||
372 | config MACH_OMAP_3630SDP | ||
373 | bool "OMAP3630 SDP board" | ||
374 | depends on ARCH_OMAP3 | ||
375 | default y | ||
376 | select OMAP_PACKAGE_CBP | ||
377 | |||
378 | config MACH_TI8168EVM | 328 | config MACH_TI8168EVM |
379 | bool "TI8168 Evaluation Module" | 329 | bool "TI8168 Evaluation Module" |
380 | depends on SOC_TI81XX | 330 | depends on SOC_TI81XX |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 9b7619f2c1ac..e15ac005ef17 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -236,7 +236,7 @@ endif | |||
236 | obj-$(CONFIG_SOC_OMAP2420) += msdi.o | 236 | obj-$(CONFIG_SOC_OMAP2420) += msdi.o |
237 | 237 | ||
238 | # Specific board support | 238 | # Specific board support |
239 | obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o | 239 | obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o pdata-quirks.o |
240 | obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o | 240 | obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o |
241 | obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o | 241 | obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o |
242 | obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o | 242 | obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o |
@@ -245,26 +245,14 @@ obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o | |||
245 | obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o | 245 | obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o |
246 | obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o | 246 | obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o |
247 | obj-$(CONFIG_MACH_OVERO) += board-overo.o | 247 | obj-$(CONFIG_MACH_OVERO) += board-overo.o |
248 | obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o | ||
249 | obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o | 248 | obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o |
250 | obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o | 249 | obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o |
251 | obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o | 250 | obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o |
252 | obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o sdram-nokia.o | ||
253 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o sdram-nokia.o | 251 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o sdram-nokia.o |
254 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-peripherals.o | 252 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-peripherals.o |
255 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-video.o | 253 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51-video.o |
256 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o board-zoom-peripherals.o | ||
257 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom-display.o | ||
258 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom-debugboard.o | ||
259 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o board-zoom-peripherals.o | ||
260 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom-display.o | ||
261 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom-debugboard.o | ||
262 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o | ||
263 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-zoom-peripherals.o | ||
264 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-zoom-display.o | ||
265 | obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o | 254 | obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o |
266 | obj-$(CONFIG_MACH_CM_T3517) += board-cm-t3517.o | 255 | obj-$(CONFIG_MACH_CM_T3517) += board-cm-t3517.o |
267 | obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o | ||
268 | obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o | 256 | obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o |
269 | 257 | ||
270 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o | 258 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o |
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c deleted file mode 100644 index 20d6d8189240..000000000000 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ /dev/null | |||
@@ -1,225 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Texas Instruments Inc. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #include <linux/kernel.h> | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/platform_device.h> | ||
12 | #include <linux/input.h> | ||
13 | #include <linux/gpio.h> | ||
14 | #include <linux/mtd/nand.h> | ||
15 | |||
16 | #include <asm/mach-types.h> | ||
17 | #include <asm/mach/arch.h> | ||
18 | |||
19 | #include "common.h" | ||
20 | #include "gpmc-smc91x.h" | ||
21 | |||
22 | #include "board-zoom.h" | ||
23 | |||
24 | #include "board-flash.h" | ||
25 | #include "mux.h" | ||
26 | #include "sdram-hynix-h8mbx00u0mer-0em.h" | ||
27 | |||
28 | #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) | ||
29 | |||
30 | static struct omap_smc91x_platform_data board_smc91x_data = { | ||
31 | .cs = 3, | ||
32 | .flags = GPMC_MUX_ADD_DATA | IORESOURCE_IRQ_LOWLEVEL, | ||
33 | }; | ||
34 | |||
35 | static void __init board_smc91x_init(void) | ||
36 | { | ||
37 | board_smc91x_data.gpio_irq = 158; | ||
38 | gpmc_smc91x_init(&board_smc91x_data); | ||
39 | } | ||
40 | |||
41 | #else | ||
42 | |||
43 | static inline void board_smc91x_init(void) | ||
44 | { | ||
45 | } | ||
46 | |||
47 | #endif /* defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) */ | ||
48 | |||
49 | static void enable_board_wakeup_source(void) | ||
50 | { | ||
51 | /* T2 interrupt line (keypad) */ | ||
52 | omap_mux_init_signal("sys_nirq", | ||
53 | OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); | ||
54 | } | ||
55 | |||
56 | static struct usbhs_phy_data phy_data[] __initdata = { | ||
57 | { | ||
58 | .port = 1, | ||
59 | .reset_gpio = 126, | ||
60 | .vcc_gpio = -EINVAL, | ||
61 | }, | ||
62 | { | ||
63 | .port = 2, | ||
64 | .reset_gpio = 61, | ||
65 | .vcc_gpio = -EINVAL, | ||
66 | }, | ||
67 | }; | ||
68 | |||
69 | static struct usbhs_omap_platform_data usbhs_bdata __initdata = { | ||
70 | |||
71 | .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, | ||
72 | .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, | ||
73 | }; | ||
74 | |||
75 | #ifdef CONFIG_OMAP_MUX | ||
76 | static struct omap_board_mux board_mux[] __initdata = { | ||
77 | { .reg_offset = OMAP_MUX_TERMINATOR }, | ||
78 | }; | ||
79 | #endif | ||
80 | |||
81 | /* | ||
82 | * SDP3630 CS organization | ||
83 | * See also the Switch S8 settings in the comments. | ||
84 | */ | ||
85 | static char chip_sel_sdp[][GPMC_CS_NUM] = { | ||
86 | {PDC_NOR, PDC_NAND, PDC_ONENAND, DBG_MPDB, 0, 0, 0, 0}, /* S8:1111 */ | ||
87 | {PDC_ONENAND, PDC_NAND, PDC_NOR, DBG_MPDB, 0, 0, 0, 0}, /* S8:1110 */ | ||
88 | {PDC_NAND, PDC_ONENAND, PDC_NOR, DBG_MPDB, 0, 0, 0, 0}, /* S8:1101 */ | ||
89 | }; | ||
90 | |||
91 | static struct mtd_partition sdp_nor_partitions[] = { | ||
92 | /* bootloader (U-Boot, etc) in first sector */ | ||
93 | { | ||
94 | .name = "Bootloader-NOR", | ||
95 | .offset = 0, | ||
96 | .size = SZ_256K, | ||
97 | .mask_flags = MTD_WRITEABLE, /* force read-only */ | ||
98 | }, | ||
99 | /* bootloader params in the next sector */ | ||
100 | { | ||
101 | .name = "Params-NOR", | ||
102 | .offset = MTDPART_OFS_APPEND, | ||
103 | .size = SZ_256K, | ||
104 | .mask_flags = 0, | ||
105 | }, | ||
106 | /* kernel */ | ||
107 | { | ||
108 | .name = "Kernel-NOR", | ||
109 | .offset = MTDPART_OFS_APPEND, | ||
110 | .size = SZ_2M, | ||
111 | .mask_flags = 0 | ||
112 | }, | ||
113 | /* file system */ | ||
114 | { | ||
115 | .name = "Filesystem-NOR", | ||
116 | .offset = MTDPART_OFS_APPEND, | ||
117 | .size = MTDPART_SIZ_FULL, | ||
118 | .mask_flags = 0 | ||
119 | } | ||
120 | }; | ||
121 | |||
122 | static struct mtd_partition sdp_onenand_partitions[] = { | ||
123 | { | ||
124 | .name = "X-Loader-OneNAND", | ||
125 | .offset = 0, | ||
126 | .size = 4 * (64 * 2048), | ||
127 | .mask_flags = MTD_WRITEABLE /* force read-only */ | ||
128 | }, | ||
129 | { | ||
130 | .name = "U-Boot-OneNAND", | ||
131 | .offset = MTDPART_OFS_APPEND, | ||
132 | .size = 2 * (64 * 2048), | ||
133 | .mask_flags = MTD_WRITEABLE /* force read-only */ | ||
134 | }, | ||
135 | { | ||
136 | .name = "U-Boot Environment-OneNAND", | ||
137 | .offset = MTDPART_OFS_APPEND, | ||
138 | .size = 1 * (64 * 2048), | ||
139 | }, | ||
140 | { | ||
141 | .name = "Kernel-OneNAND", | ||
142 | .offset = MTDPART_OFS_APPEND, | ||
143 | .size = 16 * (64 * 2048), | ||
144 | }, | ||
145 | { | ||
146 | .name = "File System-OneNAND", | ||
147 | .offset = MTDPART_OFS_APPEND, | ||
148 | .size = MTDPART_SIZ_FULL, | ||
149 | }, | ||
150 | }; | ||
151 | |||
152 | static struct mtd_partition sdp_nand_partitions[] = { | ||
153 | /* All the partition sizes are listed in terms of NAND block size */ | ||
154 | { | ||
155 | .name = "X-Loader-NAND", | ||
156 | .offset = 0, | ||
157 | .size = 4 * (64 * 2048), | ||
158 | .mask_flags = MTD_WRITEABLE, /* force read-only */ | ||
159 | }, | ||
160 | { | ||
161 | .name = "U-Boot-NAND", | ||
162 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */ | ||
163 | .size = 10 * (64 * 2048), | ||
164 | .mask_flags = MTD_WRITEABLE, /* force read-only */ | ||
165 | }, | ||
166 | { | ||
167 | .name = "Boot Env-NAND", | ||
168 | |||
169 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */ | ||
170 | .size = 6 * (64 * 2048), | ||
171 | }, | ||
172 | { | ||
173 | .name = "Kernel-NAND", | ||
174 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x280000 */ | ||
175 | .size = 40 * (64 * 2048), | ||
176 | }, | ||
177 | { | ||
178 | .name = "File System - NAND", | ||
179 | .size = MTDPART_SIZ_FULL, | ||
180 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x780000 */ | ||
181 | }, | ||
182 | }; | ||
183 | |||
184 | static struct flash_partitions sdp_flash_partitions[] = { | ||
185 | { | ||
186 | .parts = sdp_nor_partitions, | ||
187 | .nr_parts = ARRAY_SIZE(sdp_nor_partitions), | ||
188 | }, | ||
189 | { | ||
190 | .parts = sdp_onenand_partitions, | ||
191 | .nr_parts = ARRAY_SIZE(sdp_onenand_partitions), | ||
192 | }, | ||
193 | { | ||
194 | .parts = sdp_nand_partitions, | ||
195 | .nr_parts = ARRAY_SIZE(sdp_nand_partitions), | ||
196 | }, | ||
197 | }; | ||
198 | |||
199 | static void __init omap_sdp_init(void) | ||
200 | { | ||
201 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); | ||
202 | zoom_peripherals_init(); | ||
203 | omap_sdrc_init(h8mbx00u0mer0em_sdrc_params, | ||
204 | h8mbx00u0mer0em_sdrc_params); | ||
205 | zoom_display_init(); | ||
206 | board_smc91x_init(); | ||
207 | board_flash_init(sdp_flash_partitions, chip_sel_sdp, NAND_BUSWIDTH_16); | ||
208 | enable_board_wakeup_source(); | ||
209 | |||
210 | usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data)); | ||
211 | usbhs_init(&usbhs_bdata); | ||
212 | } | ||
213 | |||
214 | MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") | ||
215 | .atag_offset = 0x100, | ||
216 | .reserve = omap_reserve, | ||
217 | .map_io = omap3_map_io, | ||
218 | .init_early = omap3630_init_early, | ||
219 | .init_irq = omap3_init_irq, | ||
220 | .handle_irq = omap3_intc_handle_irq, | ||
221 | .init_machine = omap_sdp_init, | ||
222 | .init_late = omap3630_init_late, | ||
223 | .init_time = omap3_sync32k_timer_init, | ||
224 | .restart = omap3xxx_restart, | ||
225 | MACHINE_END | ||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 87162e1b94a5..19f1652e94cf 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -15,13 +15,10 @@ | |||
15 | #include <linux/of_irq.h> | 15 | #include <linux/of_irq.h> |
16 | #include <linux/of_platform.h> | 16 | #include <linux/of_platform.h> |
17 | #include <linux/irqdomain.h> | 17 | #include <linux/irqdomain.h> |
18 | #include <linux/clk.h> | ||
19 | 18 | ||
20 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
21 | 20 | ||
22 | #include "common.h" | 21 | #include "common.h" |
23 | #include "common-board-devices.h" | ||
24 | #include "dss-common.h" | ||
25 | 22 | ||
26 | #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)) | 23 | #if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)) |
27 | #define intc_of_init NULL | 24 | #define intc_of_init NULL |
@@ -36,40 +33,9 @@ static struct of_device_id omap_dt_match_table[] __initdata = { | |||
36 | { } | 33 | { } |
37 | }; | 34 | }; |
38 | 35 | ||
39 | /* | ||
40 | * Create alias for USB host PHY clock. | ||
41 | * Remove this when clock phandle can be provided via DT | ||
42 | */ | ||
43 | static void __init legacy_init_ehci_clk(char *clkname) | ||
44 | { | ||
45 | int ret; | ||
46 | |||
47 | ret = clk_add_alias("main_clk", NULL, clkname, NULL); | ||
48 | if (ret) { | ||
49 | pr_err("%s:Failed to add main_clk alias to %s :%d\n", | ||
50 | __func__, clkname, ret); | ||
51 | } | ||
52 | } | ||
53 | |||
54 | static void __init omap_generic_init(void) | 36 | static void __init omap_generic_init(void) |
55 | { | 37 | { |
56 | omap_sdrc_init(NULL, NULL); | 38 | pdata_quirks_init(omap_dt_match_table); |
57 | |||
58 | of_platform_populate(NULL, omap_dt_match_table, NULL, NULL); | ||
59 | |||
60 | /* | ||
61 | * HACK: call display setup code for selected boards to enable omapdss. | ||
62 | * This will be removed when omapdss supports DT. | ||
63 | */ | ||
64 | if (of_machine_is_compatible("ti,omap4-panda")) { | ||
65 | omap4_panda_display_init_of(); | ||
66 | legacy_init_ehci_clk("auxclk3_ck"); | ||
67 | |||
68 | } | ||
69 | else if (of_machine_is_compatible("ti,omap4-sdp")) | ||
70 | omap_4430sdp_display_init_of(); | ||
71 | else if (of_machine_is_compatible("ti,omap5-uevm")) | ||
72 | legacy_init_ehci_clk("auxclk1_ck"); | ||
73 | } | 39 | } |
74 | 40 | ||
75 | #ifdef CONFIG_SOC_OMAP2420 | 41 | #ifdef CONFIG_SOC_OMAP2420 |
@@ -180,6 +146,7 @@ DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)") | |||
180 | .init_irq = omap_intc_of_init, | 146 | .init_irq = omap_intc_of_init, |
181 | .handle_irq = omap3_intc_handle_irq, | 147 | .handle_irq = omap3_intc_handle_irq, |
182 | .init_machine = omap_generic_init, | 148 | .init_machine = omap_generic_init, |
149 | .init_late = am33xx_init_late, | ||
183 | .init_time = omap3_gptimer_timer_init, | 150 | .init_time = omap3_gptimer_timer_init, |
184 | .dt_compat = am33xx_boards_compat, | 151 | .dt_compat = am33xx_boards_compat, |
185 | .restart = am33xx_restart, | 152 | .restart = am33xx_restart, |
@@ -219,6 +186,7 @@ DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") | |||
219 | .init_early = omap5_init_early, | 186 | .init_early = omap5_init_early, |
220 | .init_irq = omap_gic_of_init, | 187 | .init_irq = omap_gic_of_init, |
221 | .init_machine = omap_generic_init, | 188 | .init_machine = omap_generic_init, |
189 | .init_late = omap5_init_late, | ||
222 | .init_time = omap5_realtime_timer_init, | 190 | .init_time = omap5_realtime_timer_init, |
223 | .dt_compat = omap5_boards_compat, | 191 | .dt_compat = omap5_boards_compat, |
224 | .restart = omap44xx_restart, | 192 | .restart = omap44xx_restart, |
@@ -234,6 +202,7 @@ static const char *am43_boards_compat[] __initdata = { | |||
234 | DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)") | 202 | DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)") |
235 | .map_io = am33xx_map_io, | 203 | .map_io = am33xx_map_io, |
236 | .init_early = am43xx_init_early, | 204 | .init_early = am43xx_init_early, |
205 | .init_late = am43xx_init_late, | ||
237 | .init_irq = omap_gic_of_init, | 206 | .init_irq = omap_gic_of_init, |
238 | .init_machine = omap_generic_init, | 207 | .init_machine = omap_generic_init, |
239 | .init_time = omap3_sync32k_timer_init, | 208 | .init_time = omap3_sync32k_timer_init, |
@@ -252,6 +221,7 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)") | |||
252 | .smp = smp_ops(omap4_smp_ops), | 221 | .smp = smp_ops(omap4_smp_ops), |
253 | .map_io = omap5_map_io, | 222 | .map_io = omap5_map_io, |
254 | .init_early = dra7xx_init_early, | 223 | .init_early = dra7xx_init_early, |
224 | .init_late = dra7xx_init_late, | ||
255 | .init_irq = omap_gic_of_init, | 225 | .init_irq = omap_gic_of_init, |
256 | .init_machine = omap_generic_init, | 226 | .init_machine = omap_generic_init, |
257 | .init_time = omap5_realtime_timer_init, | 227 | .init_time = omap5_realtime_timer_init, |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c deleted file mode 100644 index 06dbb2d3d38b..000000000000 --- a/arch/arm/mach-omap2/board-igep0020.c +++ /dev/null | |||
@@ -1,718 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Integration Software and Electronic Engineering. | ||
3 | * | ||
4 | * Modified from mach-omap2/board-generic.c | ||
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 <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/delay.h> | ||
15 | #include <linux/err.h> | ||
16 | #include <linux/clk.h> | ||
17 | #include <linux/io.h> | ||
18 | #include <linux/gpio.h> | ||
19 | #include <linux/interrupt.h> | ||
20 | #include <linux/input.h> | ||
21 | #include <linux/usb/phy.h> | ||
22 | |||
23 | #include <linux/regulator/machine.h> | ||
24 | #include <linux/regulator/fixed.h> | ||
25 | #include <linux/i2c/twl.h> | ||
26 | #include <linux/mmc/host.h> | ||
27 | |||
28 | #include <linux/mtd/nand.h> | ||
29 | |||
30 | #include <asm/mach-types.h> | ||
31 | #include <asm/mach/arch.h> | ||
32 | |||
33 | #include <video/omapdss.h> | ||
34 | #include <video/omap-panel-data.h> | ||
35 | #include <linux/platform_data/mtd-onenand-omap2.h> | ||
36 | |||
37 | #include "common.h" | ||
38 | #include "gpmc.h" | ||
39 | #include "mux.h" | ||
40 | #include "hsmmc.h" | ||
41 | #include "sdram-numonyx-m65kxxxxam.h" | ||
42 | #include "common-board-devices.h" | ||
43 | #include "board-flash.h" | ||
44 | #include "control.h" | ||
45 | #include "gpmc-onenand.h" | ||
46 | |||
47 | #define IGEP2_SMSC911X_CS 5 | ||
48 | #define IGEP2_SMSC911X_GPIO 176 | ||
49 | #define IGEP2_GPIO_USBH_NRESET 24 | ||
50 | #define IGEP2_GPIO_LED0_GREEN 26 | ||
51 | #define IGEP2_GPIO_LED0_RED 27 | ||
52 | #define IGEP2_GPIO_LED1_RED 28 | ||
53 | #define IGEP2_GPIO_DVI_PUP 170 | ||
54 | |||
55 | #define IGEP2_RB_GPIO_WIFI_NPD 94 | ||
56 | #define IGEP2_RB_GPIO_WIFI_NRESET 95 | ||
57 | #define IGEP2_RB_GPIO_BT_NRESET 137 | ||
58 | #define IGEP2_RC_GPIO_WIFI_NPD 138 | ||
59 | #define IGEP2_RC_GPIO_WIFI_NRESET 139 | ||
60 | #define IGEP2_RC_GPIO_BT_NRESET 137 | ||
61 | |||
62 | #define IGEP3_GPIO_LED0_GREEN 54 | ||
63 | #define IGEP3_GPIO_LED0_RED 53 | ||
64 | #define IGEP3_GPIO_LED1_RED 16 | ||
65 | #define IGEP3_GPIO_USBH_NRESET 183 | ||
66 | |||
67 | #define IGEP_SYSBOOT_MASK 0x1f | ||
68 | #define IGEP_SYSBOOT_NAND 0x0f | ||
69 | #define IGEP_SYSBOOT_ONENAND 0x10 | ||
70 | |||
71 | /* | ||
72 | * IGEP2 Hardware Revision Table | ||
73 | * | ||
74 | * -------------------------------------------------------------------------- | ||
75 | * | Id. | Hw Rev. | HW0 (28) | WIFI_NPD | WIFI_NRESET | BT_NRESET | | ||
76 | * -------------------------------------------------------------------------- | ||
77 | * | 0 | B | high | gpio94 | gpio95 | - | | ||
78 | * | 0 | B/C (B-compatible) | high | gpio94 | gpio95 | gpio137 | | ||
79 | * | 1 | C | low | gpio138 | gpio139 | gpio137 | | ||
80 | * -------------------------------------------------------------------------- | ||
81 | */ | ||
82 | |||
83 | #define IGEP2_BOARD_HWREV_B 0 | ||
84 | #define IGEP2_BOARD_HWREV_C 1 | ||
85 | #define IGEP3_BOARD_HWREV 2 | ||
86 | |||
87 | static u8 hwrev; | ||
88 | |||
89 | static void __init igep2_get_revision(void) | ||
90 | { | ||
91 | u8 ret; | ||
92 | |||
93 | if (machine_is_igep0030()) { | ||
94 | hwrev = IGEP3_BOARD_HWREV; | ||
95 | return; | ||
96 | } | ||
97 | |||
98 | omap_mux_init_gpio(IGEP2_GPIO_LED1_RED, OMAP_PIN_INPUT); | ||
99 | |||
100 | if (gpio_request_one(IGEP2_GPIO_LED1_RED, GPIOF_IN, "GPIO_HW0_REV")) { | ||
101 | pr_warning("IGEP2: Could not obtain gpio GPIO_HW0_REV\n"); | ||
102 | pr_err("IGEP2: Unknown Hardware Revision\n"); | ||
103 | return; | ||
104 | } | ||
105 | |||
106 | ret = gpio_get_value(IGEP2_GPIO_LED1_RED); | ||
107 | if (ret == 0) { | ||
108 | pr_info("IGEP2: Hardware Revision C (B-NON compatible)\n"); | ||
109 | hwrev = IGEP2_BOARD_HWREV_C; | ||
110 | } else if (ret == 1) { | ||
111 | pr_info("IGEP2: Hardware Revision B/C (B compatible)\n"); | ||
112 | hwrev = IGEP2_BOARD_HWREV_B; | ||
113 | } else { | ||
114 | pr_err("IGEP2: Unknown Hardware Revision\n"); | ||
115 | hwrev = -1; | ||
116 | } | ||
117 | |||
118 | gpio_free(IGEP2_GPIO_LED1_RED); | ||
119 | } | ||
120 | |||
121 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ | ||
122 | defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) || \ | ||
123 | defined(CONFIG_MTD_NAND_OMAP2) || \ | ||
124 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) | ||
125 | |||
126 | #define ONENAND_MAP 0x20000000 | ||
127 | |||
128 | /* NAND04GR4E1A ( x2 Flash built-in COMBO POP MEMORY ) | ||
129 | * Since the device is equipped with two DataRAMs, and two-plane NAND | ||
130 | * Flash memory array, these two component enables simultaneous program | ||
131 | * of 4KiB. Plane1 has only even blocks such as block0, block2, block4 | ||
132 | * while Plane2 has only odd blocks such as block1, block3, block5. | ||
133 | * So MTD regards it as 4KiB page size and 256KiB block size 64*(2*2048) | ||
134 | */ | ||
135 | |||
136 | static struct mtd_partition igep_flash_partitions[] = { | ||
137 | { | ||
138 | .name = "X-Loader", | ||
139 | .offset = 0, | ||
140 | .size = 2 * (64*(2*2048)) | ||
141 | }, | ||
142 | { | ||
143 | .name = "U-Boot", | ||
144 | .offset = MTDPART_OFS_APPEND, | ||
145 | .size = 6 * (64*(2*2048)), | ||
146 | }, | ||
147 | { | ||
148 | .name = "Environment", | ||
149 | .offset = MTDPART_OFS_APPEND, | ||
150 | .size = 2 * (64*(2*2048)), | ||
151 | }, | ||
152 | { | ||
153 | .name = "Kernel", | ||
154 | .offset = MTDPART_OFS_APPEND, | ||
155 | .size = 12 * (64*(2*2048)), | ||
156 | }, | ||
157 | { | ||
158 | .name = "File System", | ||
159 | .offset = MTDPART_OFS_APPEND, | ||
160 | .size = MTDPART_SIZ_FULL, | ||
161 | }, | ||
162 | }; | ||
163 | |||
164 | static inline u32 igep_get_sysboot_value(void) | ||
165 | { | ||
166 | return omap_ctrl_readl(OMAP343X_CONTROL_STATUS) & IGEP_SYSBOOT_MASK; | ||
167 | } | ||
168 | |||
169 | static void __init igep_flash_init(void) | ||
170 | { | ||
171 | u32 mux; | ||
172 | mux = igep_get_sysboot_value(); | ||
173 | |||
174 | if (mux == IGEP_SYSBOOT_NAND) { | ||
175 | pr_info("IGEP: initializing NAND memory device\n"); | ||
176 | board_nand_init(igep_flash_partitions, | ||
177 | ARRAY_SIZE(igep_flash_partitions), | ||
178 | 0, NAND_BUSWIDTH_16, nand_default_timings); | ||
179 | } else if (mux == IGEP_SYSBOOT_ONENAND) { | ||
180 | pr_info("IGEP: initializing OneNAND memory device\n"); | ||
181 | board_onenand_init(igep_flash_partitions, | ||
182 | ARRAY_SIZE(igep_flash_partitions), 0); | ||
183 | } else { | ||
184 | pr_err("IGEP: Flash: unsupported sysboot sequence found\n"); | ||
185 | } | ||
186 | } | ||
187 | |||
188 | #else | ||
189 | static void __init igep_flash_init(void) {} | ||
190 | #endif | ||
191 | |||
192 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
193 | |||
194 | #include <linux/smsc911x.h> | ||
195 | #include "gpmc-smsc911x.h" | ||
196 | |||
197 | static struct omap_smsc911x_platform_data smsc911x_cfg = { | ||
198 | .cs = IGEP2_SMSC911X_CS, | ||
199 | .gpio_irq = IGEP2_SMSC911X_GPIO, | ||
200 | .gpio_reset = -EINVAL, | ||
201 | .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS, | ||
202 | }; | ||
203 | |||
204 | static inline void __init igep2_init_smsc911x(void) | ||
205 | { | ||
206 | gpmc_smsc911x_init(&smsc911x_cfg); | ||
207 | } | ||
208 | |||
209 | #else | ||
210 | static inline void __init igep2_init_smsc911x(void) { } | ||
211 | #endif | ||
212 | |||
213 | static struct regulator_consumer_supply igep_vmmc1_supply[] = { | ||
214 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), | ||
215 | }; | ||
216 | |||
217 | /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ | ||
218 | static struct regulator_init_data igep_vmmc1 = { | ||
219 | .constraints = { | ||
220 | .min_uV = 1850000, | ||
221 | .max_uV = 3150000, | ||
222 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
223 | | REGULATOR_MODE_STANDBY, | ||
224 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
225 | | REGULATOR_CHANGE_MODE | ||
226 | | REGULATOR_CHANGE_STATUS, | ||
227 | }, | ||
228 | .num_consumer_supplies = ARRAY_SIZE(igep_vmmc1_supply), | ||
229 | .consumer_supplies = igep_vmmc1_supply, | ||
230 | }; | ||
231 | |||
232 | static struct regulator_consumer_supply igep_vio_supply[] = { | ||
233 | REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.1"), | ||
234 | }; | ||
235 | |||
236 | static struct regulator_init_data igep_vio = { | ||
237 | .constraints = { | ||
238 | .min_uV = 1800000, | ||
239 | .max_uV = 1800000, | ||
240 | .apply_uV = 1, | ||
241 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
242 | | REGULATOR_MODE_STANDBY, | ||
243 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
244 | | REGULATOR_CHANGE_MODE | ||
245 | | REGULATOR_CHANGE_STATUS, | ||
246 | }, | ||
247 | .num_consumer_supplies = ARRAY_SIZE(igep_vio_supply), | ||
248 | .consumer_supplies = igep_vio_supply, | ||
249 | }; | ||
250 | |||
251 | static struct regulator_consumer_supply igep_vmmc2_supply[] = { | ||
252 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"), | ||
253 | }; | ||
254 | |||
255 | static struct regulator_init_data igep_vmmc2 = { | ||
256 | .constraints = { | ||
257 | .valid_modes_mask = REGULATOR_MODE_NORMAL, | ||
258 | .always_on = 1, | ||
259 | }, | ||
260 | .num_consumer_supplies = ARRAY_SIZE(igep_vmmc2_supply), | ||
261 | .consumer_supplies = igep_vmmc2_supply, | ||
262 | }; | ||
263 | |||
264 | static struct fixed_voltage_config igep_vwlan = { | ||
265 | .supply_name = "vwlan", | ||
266 | .microvolts = 3300000, | ||
267 | .gpio = -EINVAL, | ||
268 | .enabled_at_boot = 1, | ||
269 | .init_data = &igep_vmmc2, | ||
270 | }; | ||
271 | |||
272 | static struct platform_device igep_vwlan_device = { | ||
273 | .name = "reg-fixed-voltage", | ||
274 | .id = 0, | ||
275 | .dev = { | ||
276 | .platform_data = &igep_vwlan, | ||
277 | }, | ||
278 | }; | ||
279 | |||
280 | static struct omap2_hsmmc_info mmc[] = { | ||
281 | { | ||
282 | .mmc = 1, | ||
283 | .caps = MMC_CAP_4_BIT_DATA, | ||
284 | .gpio_cd = -EINVAL, | ||
285 | .gpio_wp = -EINVAL, | ||
286 | .deferred = true, | ||
287 | }, | ||
288 | #if defined(CONFIG_LIBERTAS_SDIO) || defined(CONFIG_LIBERTAS_SDIO_MODULE) | ||
289 | { | ||
290 | .mmc = 2, | ||
291 | .caps = MMC_CAP_4_BIT_DATA, | ||
292 | .gpio_cd = -EINVAL, | ||
293 | .gpio_wp = -EINVAL, | ||
294 | }, | ||
295 | #endif | ||
296 | {} /* Terminator */ | ||
297 | }; | ||
298 | |||
299 | #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) | ||
300 | #include <linux/leds.h> | ||
301 | |||
302 | static struct gpio_led igep_gpio_leds[] = { | ||
303 | [0] = { | ||
304 | .name = "omap3:red:user0", | ||
305 | .default_state = 0, | ||
306 | }, | ||
307 | [1] = { | ||
308 | .name = "omap3:green:boot", | ||
309 | .default_state = 1, | ||
310 | }, | ||
311 | [2] = { | ||
312 | .name = "omap3:red:user1", | ||
313 | .default_state = 0, | ||
314 | }, | ||
315 | [3] = { | ||
316 | .name = "omap3:green:user1", | ||
317 | .default_state = 0, | ||
318 | .gpio = -EINVAL, /* gets replaced */ | ||
319 | .active_low = 1, | ||
320 | }, | ||
321 | }; | ||
322 | |||
323 | static struct gpio_led_platform_data igep_led_pdata = { | ||
324 | .leds = igep_gpio_leds, | ||
325 | .num_leds = ARRAY_SIZE(igep_gpio_leds), | ||
326 | }; | ||
327 | |||
328 | static struct platform_device igep_led_device = { | ||
329 | .name = "leds-gpio", | ||
330 | .id = -1, | ||
331 | .dev = { | ||
332 | .platform_data = &igep_led_pdata, | ||
333 | }, | ||
334 | }; | ||
335 | |||
336 | static void __init igep_leds_init(void) | ||
337 | { | ||
338 | if (machine_is_igep0020()) { | ||
339 | igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED; | ||
340 | igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN; | ||
341 | igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED; | ||
342 | } else { | ||
343 | igep_gpio_leds[0].gpio = IGEP3_GPIO_LED0_RED; | ||
344 | igep_gpio_leds[1].gpio = IGEP3_GPIO_LED0_GREEN; | ||
345 | igep_gpio_leds[2].gpio = IGEP3_GPIO_LED1_RED; | ||
346 | } | ||
347 | |||
348 | platform_device_register(&igep_led_device); | ||
349 | } | ||
350 | |||
351 | #else | ||
352 | static struct gpio igep_gpio_leds[] __initdata = { | ||
353 | { -EINVAL, GPIOF_OUT_INIT_LOW, "gpio-led:red:d0" }, | ||
354 | { -EINVAL, GPIOF_OUT_INIT_LOW, "gpio-led:green:d0" }, | ||
355 | { -EINVAL, GPIOF_OUT_INIT_LOW, "gpio-led:red:d1" }, | ||
356 | }; | ||
357 | |||
358 | static inline void igep_leds_init(void) | ||
359 | { | ||
360 | int i; | ||
361 | |||
362 | if (machine_is_igep0020()) { | ||
363 | igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED; | ||
364 | igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN; | ||
365 | igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED; | ||
366 | } else { | ||
367 | igep_gpio_leds[0].gpio = IGEP3_GPIO_LED0_RED; | ||
368 | igep_gpio_leds[1].gpio = IGEP3_GPIO_LED0_GREEN; | ||
369 | igep_gpio_leds[2].gpio = IGEP3_GPIO_LED1_RED; | ||
370 | } | ||
371 | |||
372 | if (gpio_request_array(igep_gpio_leds, ARRAY_SIZE(igep_gpio_leds))) { | ||
373 | pr_warning("IGEP v2: Could not obtain leds gpios\n"); | ||
374 | return; | ||
375 | } | ||
376 | |||
377 | for (i = 0; i < ARRAY_SIZE(igep_gpio_leds); i++) | ||
378 | gpio_export(igep_gpio_leds[i].gpio, 0); | ||
379 | } | ||
380 | #endif | ||
381 | |||
382 | static struct gpio igep2_twl_gpios[] = { | ||
383 | { -EINVAL, GPIOF_IN, "GPIO_EHCI_NOC" }, | ||
384 | { -EINVAL, GPIOF_OUT_INIT_LOW, "GPIO_USBH_CPEN" }, | ||
385 | }; | ||
386 | |||
387 | static int igep_twl_gpio_setup(struct device *dev, | ||
388 | unsigned gpio, unsigned ngpio) | ||
389 | { | ||
390 | int ret; | ||
391 | |||
392 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | ||
393 | mmc[0].gpio_cd = gpio + 0; | ||
394 | omap_hsmmc_late_init(mmc); | ||
395 | |||
396 | /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ | ||
397 | #if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) | ||
398 | ret = gpio_request_one(gpio + TWL4030_GPIO_MAX + 1, GPIOF_OUT_INIT_HIGH, | ||
399 | "gpio-led:green:d1"); | ||
400 | if (ret == 0) | ||
401 | gpio_export(gpio + TWL4030_GPIO_MAX + 1, 0); | ||
402 | else | ||
403 | pr_warning("IGEP: Could not obtain gpio GPIO_LED1_GREEN\n"); | ||
404 | #else | ||
405 | igep_gpio_leds[3].gpio = gpio + TWL4030_GPIO_MAX + 1; | ||
406 | #endif | ||
407 | |||
408 | if (machine_is_igep0030()) | ||
409 | return 0; | ||
410 | |||
411 | /* | ||
412 | * REVISIT: need ehci-omap hooks for external VBUS | ||
413 | * power switch and overcurrent detect | ||
414 | */ | ||
415 | igep2_twl_gpios[0].gpio = gpio + 1; | ||
416 | |||
417 | /* TWL4030_GPIO_MAX + 0 == ledA, GPIO_USBH_CPEN (out, active low) */ | ||
418 | igep2_twl_gpios[1].gpio = gpio + TWL4030_GPIO_MAX; | ||
419 | |||
420 | ret = gpio_request_array(igep2_twl_gpios, ARRAY_SIZE(igep2_twl_gpios)); | ||
421 | if (ret < 0) | ||
422 | pr_err("IGEP2: Could not obtain gpio for USBH_CPEN"); | ||
423 | |||
424 | return 0; | ||
425 | }; | ||
426 | |||
427 | static struct twl4030_gpio_platform_data igep_twl4030_gpio_pdata = { | ||
428 | .use_leds = true, | ||
429 | .setup = igep_twl_gpio_setup, | ||
430 | }; | ||
431 | |||
432 | static struct connector_dvi_platform_data omap3stalker_dvi_connector_pdata = { | ||
433 | .name = "dvi", | ||
434 | .source = "tfp410.0", | ||
435 | .i2c_bus_num = 3, | ||
436 | }; | ||
437 | |||
438 | static struct platform_device omap3stalker_dvi_connector_device = { | ||
439 | .name = "connector-dvi", | ||
440 | .id = 0, | ||
441 | .dev.platform_data = &omap3stalker_dvi_connector_pdata, | ||
442 | }; | ||
443 | |||
444 | static struct encoder_tfp410_platform_data omap3stalker_tfp410_pdata = { | ||
445 | .name = "tfp410.0", | ||
446 | .source = "dpi.0", | ||
447 | .data_lines = 24, | ||
448 | .power_down_gpio = IGEP2_GPIO_DVI_PUP, | ||
449 | }; | ||
450 | |||
451 | static struct platform_device omap3stalker_tfp410_device = { | ||
452 | .name = "tfp410", | ||
453 | .id = 0, | ||
454 | .dev.platform_data = &omap3stalker_tfp410_pdata, | ||
455 | }; | ||
456 | |||
457 | static struct omap_dss_board_info igep2_dss_data = { | ||
458 | .default_display_name = "dvi", | ||
459 | }; | ||
460 | |||
461 | static struct platform_device *igep_devices[] __initdata = { | ||
462 | &igep_vwlan_device, | ||
463 | &omap3stalker_tfp410_device, | ||
464 | &omap3stalker_dvi_connector_device, | ||
465 | }; | ||
466 | |||
467 | static int igep2_keymap[] = { | ||
468 | KEY(0, 0, KEY_LEFT), | ||
469 | KEY(0, 1, KEY_RIGHT), | ||
470 | KEY(0, 2, KEY_A), | ||
471 | KEY(0, 3, KEY_B), | ||
472 | KEY(1, 0, KEY_DOWN), | ||
473 | KEY(1, 1, KEY_UP), | ||
474 | KEY(1, 2, KEY_E), | ||
475 | KEY(1, 3, KEY_F), | ||
476 | KEY(2, 0, KEY_ENTER), | ||
477 | KEY(2, 1, KEY_I), | ||
478 | KEY(2, 2, KEY_J), | ||
479 | KEY(2, 3, KEY_K), | ||
480 | KEY(3, 0, KEY_M), | ||
481 | KEY(3, 1, KEY_N), | ||
482 | KEY(3, 2, KEY_O), | ||
483 | KEY(3, 3, KEY_P) | ||
484 | }; | ||
485 | |||
486 | static struct matrix_keymap_data igep2_keymap_data = { | ||
487 | .keymap = igep2_keymap, | ||
488 | .keymap_size = ARRAY_SIZE(igep2_keymap), | ||
489 | }; | ||
490 | |||
491 | static struct twl4030_keypad_data igep2_keypad_pdata = { | ||
492 | .keymap_data = &igep2_keymap_data, | ||
493 | .rows = 4, | ||
494 | .cols = 4, | ||
495 | .rep = 1, | ||
496 | }; | ||
497 | |||
498 | static struct twl4030_platform_data igep_twldata = { | ||
499 | /* platform_data for children goes here */ | ||
500 | .gpio = &igep_twl4030_gpio_pdata, | ||
501 | .vmmc1 = &igep_vmmc1, | ||
502 | .vio = &igep_vio, | ||
503 | }; | ||
504 | |||
505 | static struct i2c_board_info __initdata igep2_i2c3_boardinfo[] = { | ||
506 | { | ||
507 | I2C_BOARD_INFO("eeprom", 0x50), | ||
508 | }, | ||
509 | }; | ||
510 | |||
511 | static void __init igep_i2c_init(void) | ||
512 | { | ||
513 | int ret; | ||
514 | |||
515 | omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB, | ||
516 | TWL_COMMON_REGULATOR_VPLL2); | ||
517 | igep_twldata.vpll2->constraints.apply_uV = true; | ||
518 | igep_twldata.vpll2->constraints.name = "VDVI"; | ||
519 | |||
520 | if (machine_is_igep0020()) { | ||
521 | /* | ||
522 | * Bus 3 is attached to the DVI port where devices like the | ||
523 | * pico DLP projector don't work reliably with 400kHz | ||
524 | */ | ||
525 | ret = omap_register_i2c_bus(3, 100, igep2_i2c3_boardinfo, | ||
526 | ARRAY_SIZE(igep2_i2c3_boardinfo)); | ||
527 | if (ret) | ||
528 | pr_warning("IGEP2: Could not register I2C3 bus (%d)\n", ret); | ||
529 | |||
530 | igep_twldata.keypad = &igep2_keypad_pdata; | ||
531 | /* Get common pmic data */ | ||
532 | omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, 0); | ||
533 | } | ||
534 | |||
535 | omap3_pmic_init("twl4030", &igep_twldata); | ||
536 | } | ||
537 | |||
538 | static struct usbhs_phy_data igep2_phy_data[] __initdata = { | ||
539 | { | ||
540 | .port = 1, | ||
541 | .reset_gpio = IGEP2_GPIO_USBH_NRESET, | ||
542 | .vcc_gpio = -EINVAL, | ||
543 | }, | ||
544 | }; | ||
545 | |||
546 | static struct usbhs_phy_data igep3_phy_data[] __initdata = { | ||
547 | { | ||
548 | .port = 2, | ||
549 | .reset_gpio = IGEP3_GPIO_USBH_NRESET, | ||
550 | .vcc_gpio = -EINVAL, | ||
551 | }, | ||
552 | }; | ||
553 | |||
554 | static struct usbhs_omap_platform_data igep2_usbhs_bdata __initdata = { | ||
555 | .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, | ||
556 | }; | ||
557 | |||
558 | static struct usbhs_omap_platform_data igep3_usbhs_bdata __initdata = { | ||
559 | .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, | ||
560 | }; | ||
561 | |||
562 | #ifdef CONFIG_OMAP_MUX | ||
563 | static struct omap_board_mux board_mux[] __initdata = { | ||
564 | /* Display Sub System */ | ||
565 | OMAP3_MUX(DSS_PCLK, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
566 | OMAP3_MUX(DSS_HSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
567 | OMAP3_MUX(DSS_VSYNC, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
568 | OMAP3_MUX(DSS_ACBIAS, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
569 | OMAP3_MUX(DSS_DATA0, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
570 | OMAP3_MUX(DSS_DATA1, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
571 | OMAP3_MUX(DSS_DATA2, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
572 | OMAP3_MUX(DSS_DATA3, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
573 | OMAP3_MUX(DSS_DATA4, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
574 | OMAP3_MUX(DSS_DATA5, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
575 | OMAP3_MUX(DSS_DATA6, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
576 | OMAP3_MUX(DSS_DATA7, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
577 | OMAP3_MUX(DSS_DATA8, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
578 | OMAP3_MUX(DSS_DATA9, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
579 | OMAP3_MUX(DSS_DATA10, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
580 | OMAP3_MUX(DSS_DATA11, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
581 | OMAP3_MUX(DSS_DATA12, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
582 | OMAP3_MUX(DSS_DATA13, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
583 | OMAP3_MUX(DSS_DATA14, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
584 | OMAP3_MUX(DSS_DATA15, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
585 | OMAP3_MUX(DSS_DATA16, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
586 | OMAP3_MUX(DSS_DATA17, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
587 | OMAP3_MUX(DSS_DATA18, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
588 | OMAP3_MUX(DSS_DATA19, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
589 | OMAP3_MUX(DSS_DATA20, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
590 | OMAP3_MUX(DSS_DATA21, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
591 | OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
592 | OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT), | ||
593 | /* TFP410 PanelBus DVI Transmitte (GPIO_170) */ | ||
594 | OMAP3_MUX(HDQ_SIO, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||
595 | /* SMSC9221 LAN Controller ETH IRQ (GPIO_176) */ | ||
596 | OMAP3_MUX(MCSPI1_CS2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
597 | { .reg_offset = OMAP_MUX_TERMINATOR }, | ||
598 | }; | ||
599 | #endif | ||
600 | |||
601 | #if defined(CONFIG_LIBERTAS_SDIO) || defined(CONFIG_LIBERTAS_SDIO_MODULE) | ||
602 | static struct gpio igep_wlan_bt_gpios[] __initdata = { | ||
603 | { -EINVAL, GPIOF_OUT_INIT_HIGH, "GPIO_WIFI_NPD" }, | ||
604 | { -EINVAL, GPIOF_OUT_INIT_HIGH, "GPIO_WIFI_NRESET" }, | ||
605 | { -EINVAL, GPIOF_OUT_INIT_HIGH, "GPIO_BT_NRESET" }, | ||
606 | }; | ||
607 | |||
608 | static void __init igep_wlan_bt_init(void) | ||
609 | { | ||
610 | int err; | ||
611 | |||
612 | /* GPIO's for WLAN-BT combo depends on hardware revision */ | ||
613 | if (hwrev == IGEP2_BOARD_HWREV_B) { | ||
614 | igep_wlan_bt_gpios[0].gpio = IGEP2_RB_GPIO_WIFI_NPD; | ||
615 | igep_wlan_bt_gpios[1].gpio = IGEP2_RB_GPIO_WIFI_NRESET; | ||
616 | igep_wlan_bt_gpios[2].gpio = IGEP2_RB_GPIO_BT_NRESET; | ||
617 | } else if (hwrev == IGEP2_BOARD_HWREV_C || machine_is_igep0030()) { | ||
618 | igep_wlan_bt_gpios[0].gpio = IGEP2_RC_GPIO_WIFI_NPD; | ||
619 | igep_wlan_bt_gpios[1].gpio = IGEP2_RC_GPIO_WIFI_NRESET; | ||
620 | igep_wlan_bt_gpios[2].gpio = IGEP2_RC_GPIO_BT_NRESET; | ||
621 | } else | ||
622 | return; | ||
623 | |||
624 | /* Make sure that the GPIO pins are muxed correctly */ | ||
625 | omap_mux_init_gpio(igep_wlan_bt_gpios[0].gpio, OMAP_PIN_OUTPUT); | ||
626 | omap_mux_init_gpio(igep_wlan_bt_gpios[1].gpio, OMAP_PIN_OUTPUT); | ||
627 | omap_mux_init_gpio(igep_wlan_bt_gpios[2].gpio, OMAP_PIN_OUTPUT); | ||
628 | |||
629 | err = gpio_request_array(igep_wlan_bt_gpios, | ||
630 | ARRAY_SIZE(igep_wlan_bt_gpios)); | ||
631 | if (err) { | ||
632 | pr_warning("IGEP2: Could not obtain WIFI/BT gpios\n"); | ||
633 | return; | ||
634 | } | ||
635 | |||
636 | gpio_export(igep_wlan_bt_gpios[0].gpio, 0); | ||
637 | gpio_export(igep_wlan_bt_gpios[1].gpio, 0); | ||
638 | gpio_export(igep_wlan_bt_gpios[2].gpio, 0); | ||
639 | |||
640 | gpio_set_value(igep_wlan_bt_gpios[1].gpio, 0); | ||
641 | udelay(10); | ||
642 | gpio_set_value(igep_wlan_bt_gpios[1].gpio, 1); | ||
643 | |||
644 | } | ||
645 | #else | ||
646 | static inline void __init igep_wlan_bt_init(void) { } | ||
647 | #endif | ||
648 | |||
649 | static struct regulator_consumer_supply dummy_supplies[] = { | ||
650 | REGULATOR_SUPPLY("vddvario", "smsc911x.0"), | ||
651 | REGULATOR_SUPPLY("vdd33a", "smsc911x.0"), | ||
652 | }; | ||
653 | |||
654 | static void __init igep_init(void) | ||
655 | { | ||
656 | regulator_register_fixed(1, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | ||
657 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | ||
658 | |||
659 | /* Get IGEP2 hardware revision */ | ||
660 | igep2_get_revision(); | ||
661 | |||
662 | omap_hsmmc_init(mmc); | ||
663 | |||
664 | /* Register I2C busses and drivers */ | ||
665 | igep_i2c_init(); | ||
666 | platform_add_devices(igep_devices, ARRAY_SIZE(igep_devices)); | ||
667 | omap_serial_init(); | ||
668 | omap_sdrc_init(m65kxxxxam_sdrc_params, | ||
669 | m65kxxxxam_sdrc_params); | ||
670 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | ||
671 | usb_musb_init(NULL); | ||
672 | |||
673 | igep_flash_init(); | ||
674 | igep_leds_init(); | ||
675 | omap_twl4030_audio_init("igep2", NULL); | ||
676 | |||
677 | /* | ||
678 | * WLAN-BT combo module from MuRata which has a Marvell WLAN | ||
679 | * (88W8686) + CSR Bluetooth chipset. Uses SDIO interface. | ||
680 | */ | ||
681 | igep_wlan_bt_init(); | ||
682 | |||
683 | if (machine_is_igep0020()) { | ||
684 | omap_display_init(&igep2_dss_data); | ||
685 | igep2_init_smsc911x(); | ||
686 | usbhs_init_phys(igep2_phy_data, ARRAY_SIZE(igep2_phy_data)); | ||
687 | usbhs_init(&igep2_usbhs_bdata); | ||
688 | } else { | ||
689 | usbhs_init_phys(igep3_phy_data, ARRAY_SIZE(igep3_phy_data)); | ||
690 | usbhs_init(&igep3_usbhs_bdata); | ||
691 | } | ||
692 | } | ||
693 | |||
694 | MACHINE_START(IGEP0020, "IGEP v2 board") | ||
695 | .atag_offset = 0x100, | ||
696 | .reserve = omap_reserve, | ||
697 | .map_io = omap3_map_io, | ||
698 | .init_early = omap35xx_init_early, | ||
699 | .init_irq = omap3_init_irq, | ||
700 | .handle_irq = omap3_intc_handle_irq, | ||
701 | .init_machine = igep_init, | ||
702 | .init_late = omap35xx_init_late, | ||
703 | .init_time = omap3_sync32k_timer_init, | ||
704 | .restart = omap3xxx_restart, | ||
705 | MACHINE_END | ||
706 | |||
707 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") | ||
708 | .atag_offset = 0x100, | ||
709 | .reserve = omap_reserve, | ||
710 | .map_io = omap3_map_io, | ||
711 | .init_early = omap35xx_init_early, | ||
712 | .init_irq = omap3_init_irq, | ||
713 | .handle_irq = omap3_intc_handle_irq, | ||
714 | .init_machine = igep_init, | ||
715 | .init_late = omap35xx_init_late, | ||
716 | .init_time = omap3_sync32k_timer_init, | ||
717 | .restart = omap3xxx_restart, | ||
718 | MACHINE_END | ||
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index dd8da2c5399f..4ec8d82b0492 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <asm/mach/map.h> | 36 | #include <asm/mach/map.h> |
37 | 37 | ||
38 | #include "common.h" | 38 | #include "common.h" |
39 | #include "board-zoom.h" | ||
40 | #include "gpmc.h" | 39 | #include "gpmc.h" |
41 | #include "gpmc-smsc911x.h" | 40 | #include "gpmc-smsc911x.h" |
42 | 41 | ||
@@ -406,7 +405,7 @@ static void __init omap_ldp_init(void) | |||
406 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | 405 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); |
407 | usb_musb_init(NULL); | 406 | usb_musb_init(NULL); |
408 | board_nand_init(ldp_nand_partitions, ARRAY_SIZE(ldp_nand_partitions), | 407 | board_nand_init(ldp_nand_partitions, ARRAY_SIZE(ldp_nand_partitions), |
409 | ZOOM_NAND_CS, 0, nand_default_timings); | 408 | 0, 0, nand_default_timings); |
410 | 409 | ||
411 | omap_hsmmc_init(mmc); | 410 | omap_hsmmc_init(mmc); |
412 | ldp_display_init(); | 411 | ldp_display_init(); |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c deleted file mode 100644 index 18143873346c..000000000000 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ /dev/null | |||
@@ -1,756 +0,0 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/mach-omap2/board-omap3evm.c | ||
3 | * | ||
4 | * Copyright (C) 2008 Texas Instruments | ||
5 | * | ||
6 | * Modified from mach-omap2/board-3430sdp.c | ||
7 | * | ||
8 | * Initial code: Syed Mohammed Khasim | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/platform_device.h> | ||
18 | #include <linux/delay.h> | ||
19 | #include <linux/err.h> | ||
20 | #include <linux/clk.h> | ||
21 | #include <linux/gpio.h> | ||
22 | #include <linux/input.h> | ||
23 | #include <linux/input/matrix_keypad.h> | ||
24 | #include <linux/leds.h> | ||
25 | #include <linux/interrupt.h> | ||
26 | |||
27 | #include <linux/mtd/mtd.h> | ||
28 | #include <linux/mtd/partitions.h> | ||
29 | #include <linux/mtd/nand.h> | ||
30 | |||
31 | #include <linux/spi/spi.h> | ||
32 | #include <linux/spi/ads7846.h> | ||
33 | #include <linux/i2c/twl.h> | ||
34 | #include <linux/usb/otg.h> | ||
35 | #include <linux/usb/musb.h> | ||
36 | #include <linux/usb/usb_phy_gen_xceiv.h> | ||
37 | #include <linux/smsc911x.h> | ||
38 | |||
39 | #include <linux/wl12xx.h> | ||
40 | #include <linux/regulator/fixed.h> | ||
41 | #include <linux/regulator/machine.h> | ||
42 | #include <linux/mmc/host.h> | ||
43 | #include <linux/export.h> | ||
44 | #include <linux/usb/phy.h> | ||
45 | |||
46 | #include <asm/mach-types.h> | ||
47 | #include <asm/mach/arch.h> | ||
48 | #include <asm/mach/map.h> | ||
49 | |||
50 | #include <linux/platform_data/mtd-nand-omap2.h> | ||
51 | #include "common.h" | ||
52 | #include <linux/platform_data/spi-omap2-mcspi.h> | ||
53 | #include <video/omapdss.h> | ||
54 | #include <video/omap-panel-data.h> | ||
55 | |||
56 | #include "soc.h" | ||
57 | #include "mux.h" | ||
58 | #include "sdram-micron-mt46h32m32lf-6.h" | ||
59 | #include "hsmmc.h" | ||
60 | #include "common-board-devices.h" | ||
61 | #include "board-flash.h" | ||
62 | |||
63 | #define NAND_CS 0 | ||
64 | |||
65 | #define OMAP3_EVM_TS_GPIO 175 | ||
66 | #define OMAP3_EVM_EHCI_VBUS 22 | ||
67 | #define OMAP3_EVM_EHCI_SELECT 61 | ||
68 | |||
69 | #define OMAP3EVM_ETHR_START 0x2c000000 | ||
70 | #define OMAP3EVM_ETHR_SIZE 1024 | ||
71 | #define OMAP3EVM_ETHR_ID_REV 0x50 | ||
72 | #define OMAP3EVM_ETHR_GPIO_IRQ 176 | ||
73 | #define OMAP3EVM_SMSC911X_CS 5 | ||
74 | /* | ||
75 | * Eth Reset signal | ||
76 | * 64 = Generation 1 (<=RevD) | ||
77 | * 7 = Generation 2 (>=RevE) | ||
78 | */ | ||
79 | #define OMAP3EVM_GEN1_ETHR_GPIO_RST 64 | ||
80 | #define OMAP3EVM_GEN2_ETHR_GPIO_RST 7 | ||
81 | |||
82 | /* | ||
83 | * OMAP35x EVM revision | ||
84 | * Run time detection of EVM revision is done by reading Ethernet | ||
85 | * PHY ID - | ||
86 | * GEN_1 = 0x01150000 | ||
87 | * GEN_2 = 0x92200000 | ||
88 | */ | ||
89 | enum { | ||
90 | OMAP3EVM_BOARD_GEN_1 = 0, /* EVM Rev between A - D */ | ||
91 | OMAP3EVM_BOARD_GEN_2, /* EVM Rev >= Rev E */ | ||
92 | }; | ||
93 | |||
94 | static u8 omap3_evm_version; | ||
95 | |||
96 | static u8 get_omap3_evm_rev(void) | ||
97 | { | ||
98 | return omap3_evm_version; | ||
99 | } | ||
100 | |||
101 | static void __init omap3_evm_get_revision(void) | ||
102 | { | ||
103 | void __iomem *ioaddr; | ||
104 | unsigned int smsc_id; | ||
105 | |||
106 | /* Ethernet PHY ID is stored at ID_REV register */ | ||
107 | ioaddr = ioremap_nocache(OMAP3EVM_ETHR_START, SZ_1K); | ||
108 | if (!ioaddr) | ||
109 | return; | ||
110 | smsc_id = readl(ioaddr + OMAP3EVM_ETHR_ID_REV) & 0xFFFF0000; | ||
111 | iounmap(ioaddr); | ||
112 | |||
113 | switch (smsc_id) { | ||
114 | /*SMSC9115 chipset*/ | ||
115 | case 0x01150000: | ||
116 | omap3_evm_version = OMAP3EVM_BOARD_GEN_1; | ||
117 | break; | ||
118 | /*SMSC 9220 chipset*/ | ||
119 | case 0x92200000: | ||
120 | default: | ||
121 | omap3_evm_version = OMAP3EVM_BOARD_GEN_2; | ||
122 | } | ||
123 | } | ||
124 | |||
125 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
126 | #include "gpmc-smsc911x.h" | ||
127 | |||
128 | static struct omap_smsc911x_platform_data smsc911x_cfg = { | ||
129 | .cs = OMAP3EVM_SMSC911X_CS, | ||
130 | .gpio_irq = OMAP3EVM_ETHR_GPIO_IRQ, | ||
131 | .gpio_reset = -EINVAL, | ||
132 | .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS, | ||
133 | }; | ||
134 | |||
135 | static inline void __init omap3evm_init_smsc911x(void) | ||
136 | { | ||
137 | /* Configure ethernet controller reset gpio */ | ||
138 | if (cpu_is_omap3430()) { | ||
139 | if (get_omap3_evm_rev() == OMAP3EVM_BOARD_GEN_1) | ||
140 | smsc911x_cfg.gpio_reset = OMAP3EVM_GEN1_ETHR_GPIO_RST; | ||
141 | else | ||
142 | smsc911x_cfg.gpio_reset = OMAP3EVM_GEN2_ETHR_GPIO_RST; | ||
143 | } | ||
144 | |||
145 | gpmc_smsc911x_init(&smsc911x_cfg); | ||
146 | } | ||
147 | |||
148 | #else | ||
149 | static inline void __init omap3evm_init_smsc911x(void) { return; } | ||
150 | #endif | ||
151 | |||
152 | /* | ||
153 | * OMAP3EVM LCD Panel control signals | ||
154 | */ | ||
155 | #define OMAP3EVM_LCD_PANEL_LR 2 | ||
156 | #define OMAP3EVM_LCD_PANEL_UD 3 | ||
157 | #define OMAP3EVM_LCD_PANEL_INI 152 | ||
158 | #define OMAP3EVM_LCD_PANEL_QVGA 154 | ||
159 | #define OMAP3EVM_LCD_PANEL_RESB 155 | ||
160 | |||
161 | #define OMAP3EVM_LCD_PANEL_ENVDD 153 | ||
162 | #define OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO 210 | ||
163 | |||
164 | /* | ||
165 | * OMAP3EVM DVI control signals | ||
166 | */ | ||
167 | #define OMAP3EVM_DVI_PANEL_EN_GPIO 199 | ||
168 | |||
169 | #ifdef CONFIG_BROKEN | ||
170 | static void __init omap3_evm_display_init(void) | ||
171 | { | ||
172 | int r; | ||
173 | |||
174 | r = gpio_request_one(OMAP3EVM_LCD_PANEL_ENVDD, GPIOF_OUT_INIT_LOW, | ||
175 | "lcd_panel_envdd"); | ||
176 | if (r) | ||
177 | pr_err("failed to get lcd_panel_envdd GPIO\n"); | ||
178 | |||
179 | r = gpio_request_one(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, | ||
180 | GPIOF_OUT_INIT_LOW, "lcd_panel_bklight"); | ||
181 | if (r) | ||
182 | pr_err("failed to get lcd_panel_bklight GPIO\n"); | ||
183 | |||
184 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) | ||
185 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 0); | ||
186 | else | ||
187 | gpio_set_value_cansleep(OMAP3EVM_LCD_PANEL_BKLIGHT_GPIO, 1); | ||
188 | } | ||
189 | #endif | ||
190 | |||
191 | static struct panel_sharp_ls037v7dw01_platform_data omap3_evm_lcd_pdata = { | ||
192 | .name = "lcd", | ||
193 | .source = "dpi.0", | ||
194 | |||
195 | .data_lines = 18, | ||
196 | |||
197 | .resb_gpio = OMAP3EVM_LCD_PANEL_RESB, | ||
198 | .ini_gpio = OMAP3EVM_LCD_PANEL_INI, | ||
199 | .mo_gpio = OMAP3EVM_LCD_PANEL_QVGA, | ||
200 | .lr_gpio = OMAP3EVM_LCD_PANEL_LR, | ||
201 | .ud_gpio = OMAP3EVM_LCD_PANEL_UD, | ||
202 | }; | ||
203 | |||
204 | static struct platform_device omap3_evm_lcd_device = { | ||
205 | .name = "panel-sharp-ls037v7dw01", | ||
206 | .id = 0, | ||
207 | .dev.platform_data = &omap3_evm_lcd_pdata, | ||
208 | }; | ||
209 | |||
210 | static struct connector_dvi_platform_data omap3_evm_dvi_connector_pdata = { | ||
211 | .name = "dvi", | ||
212 | .source = "tfp410.0", | ||
213 | .i2c_bus_num = -1, | ||
214 | }; | ||
215 | |||
216 | static struct platform_device omap3_evm_dvi_connector_device = { | ||
217 | .name = "connector-dvi", | ||
218 | .id = 0, | ||
219 | .dev.platform_data = &omap3_evm_dvi_connector_pdata, | ||
220 | }; | ||
221 | |||
222 | static struct encoder_tfp410_platform_data omap3_evm_tfp410_pdata = { | ||
223 | .name = "tfp410.0", | ||
224 | .source = "dpi.0", | ||
225 | .data_lines = 24, | ||
226 | .power_down_gpio = OMAP3EVM_DVI_PANEL_EN_GPIO, | ||
227 | }; | ||
228 | |||
229 | static struct platform_device omap3_evm_tfp410_device = { | ||
230 | .name = "tfp410", | ||
231 | .id = 0, | ||
232 | .dev.platform_data = &omap3_evm_tfp410_pdata, | ||
233 | }; | ||
234 | |||
235 | static struct connector_atv_platform_data omap3_evm_tv_pdata = { | ||
236 | .name = "tv", | ||
237 | .source = "venc.0", | ||
238 | .connector_type = OMAP_DSS_VENC_TYPE_SVIDEO, | ||
239 | .invert_polarity = false, | ||
240 | }; | ||
241 | |||
242 | static struct platform_device omap3_evm_tv_connector_device = { | ||
243 | .name = "connector-analog-tv", | ||
244 | .id = 0, | ||
245 | .dev.platform_data = &omap3_evm_tv_pdata, | ||
246 | }; | ||
247 | |||
248 | static struct omap_dss_board_info omap3_evm_dss_data = { | ||
249 | .default_display_name = "lcd", | ||
250 | }; | ||
251 | |||
252 | static struct regulator_consumer_supply omap3evm_vmmc1_supply[] = { | ||
253 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), | ||
254 | }; | ||
255 | |||
256 | static struct regulator_consumer_supply omap3evm_vsim_supply[] = { | ||
257 | REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"), | ||
258 | }; | ||
259 | |||
260 | /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ | ||
261 | static struct regulator_init_data omap3evm_vmmc1 = { | ||
262 | .constraints = { | ||
263 | .min_uV = 1850000, | ||
264 | .max_uV = 3150000, | ||
265 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
266 | | REGULATOR_MODE_STANDBY, | ||
267 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
268 | | REGULATOR_CHANGE_MODE | ||
269 | | REGULATOR_CHANGE_STATUS, | ||
270 | }, | ||
271 | .num_consumer_supplies = ARRAY_SIZE(omap3evm_vmmc1_supply), | ||
272 | .consumer_supplies = omap3evm_vmmc1_supply, | ||
273 | }; | ||
274 | |||
275 | /* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */ | ||
276 | static struct regulator_init_data omap3evm_vsim = { | ||
277 | .constraints = { | ||
278 | .min_uV = 1800000, | ||
279 | .max_uV = 3000000, | ||
280 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
281 | | REGULATOR_MODE_STANDBY, | ||
282 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
283 | | REGULATOR_CHANGE_MODE | ||
284 | | REGULATOR_CHANGE_STATUS, | ||
285 | }, | ||
286 | .num_consumer_supplies = ARRAY_SIZE(omap3evm_vsim_supply), | ||
287 | .consumer_supplies = omap3evm_vsim_supply, | ||
288 | }; | ||
289 | |||
290 | static struct omap2_hsmmc_info mmc[] = { | ||
291 | { | ||
292 | .mmc = 1, | ||
293 | .caps = MMC_CAP_4_BIT_DATA, | ||
294 | .gpio_cd = -EINVAL, | ||
295 | .gpio_wp = 63, | ||
296 | .deferred = true, | ||
297 | }, | ||
298 | #ifdef CONFIG_WILINK_PLATFORM_DATA | ||
299 | { | ||
300 | .name = "wl1271", | ||
301 | .mmc = 2, | ||
302 | .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD, | ||
303 | .gpio_wp = -EINVAL, | ||
304 | .gpio_cd = -EINVAL, | ||
305 | .nonremovable = true, | ||
306 | }, | ||
307 | #endif | ||
308 | {} /* Terminator */ | ||
309 | }; | ||
310 | |||
311 | static struct gpio_led gpio_leds[] = { | ||
312 | { | ||
313 | .name = "omap3evm::ledb", | ||
314 | /* normally not visible (board underside) */ | ||
315 | .default_trigger = "default-on", | ||
316 | .gpio = -EINVAL, /* gets replaced */ | ||
317 | .active_low = true, | ||
318 | }, | ||
319 | }; | ||
320 | |||
321 | static struct gpio_led_platform_data gpio_led_info = { | ||
322 | .leds = gpio_leds, | ||
323 | .num_leds = ARRAY_SIZE(gpio_leds), | ||
324 | }; | ||
325 | |||
326 | static struct platform_device leds_gpio = { | ||
327 | .name = "leds-gpio", | ||
328 | .id = -1, | ||
329 | .dev = { | ||
330 | .platform_data = &gpio_led_info, | ||
331 | }, | ||
332 | }; | ||
333 | |||
334 | |||
335 | static int omap3evm_twl_gpio_setup(struct device *dev, | ||
336 | unsigned gpio, unsigned ngpio) | ||
337 | { | ||
338 | int r, lcd_bl_en; | ||
339 | |||
340 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | ||
341 | mmc[0].gpio_cd = gpio + 0; | ||
342 | omap_hsmmc_late_init(mmc); | ||
343 | |||
344 | /* | ||
345 | * Most GPIOs are for USB OTG. Some are mostly sent to | ||
346 | * the P2 connector; notably LEDA for the LCD backlight. | ||
347 | */ | ||
348 | |||
349 | /* TWL4030_GPIO_MAX + 0 == ledA, LCD Backlight control */ | ||
350 | lcd_bl_en = get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2 ? | ||
351 | GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW; | ||
352 | r = gpio_request_one(gpio + TWL4030_GPIO_MAX, lcd_bl_en, "EN_LCD_BKL"); | ||
353 | if (r) | ||
354 | printk(KERN_ERR "failed to get/set lcd_bkl gpio\n"); | ||
355 | |||
356 | /* gpio + 7 == DVI Enable */ | ||
357 | gpio_request_one(gpio + 7, GPIOF_OUT_INIT_LOW, "EN_DVI"); | ||
358 | |||
359 | /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ | ||
360 | gpio_leds[0].gpio = gpio + TWL4030_GPIO_MAX + 1; | ||
361 | |||
362 | platform_device_register(&leds_gpio); | ||
363 | |||
364 | /* Enable VBUS switch by setting TWL4030.GPIO2DIR as output | ||
365 | * for starting USB tranceiver | ||
366 | */ | ||
367 | #ifdef CONFIG_TWL4030_CORE | ||
368 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) { | ||
369 | u8 val; | ||
370 | |||
371 | twl_i2c_read_u8(TWL4030_MODULE_GPIO, &val, REG_GPIODATADIR1); | ||
372 | val |= 0x04; /* TWL4030.GPIO2DIR BIT at GPIODATADIR1(0x9B) */ | ||
373 | twl_i2c_write_u8(TWL4030_MODULE_GPIO, val, REG_GPIODATADIR1); | ||
374 | } | ||
375 | #endif | ||
376 | |||
377 | return 0; | ||
378 | } | ||
379 | |||
380 | static struct twl4030_gpio_platform_data omap3evm_gpio_data = { | ||
381 | .use_leds = true, | ||
382 | .setup = omap3evm_twl_gpio_setup, | ||
383 | }; | ||
384 | |||
385 | static uint32_t board_keymap[] = { | ||
386 | KEY(0, 0, KEY_LEFT), | ||
387 | KEY(0, 1, KEY_DOWN), | ||
388 | KEY(0, 2, KEY_ENTER), | ||
389 | KEY(0, 3, KEY_M), | ||
390 | |||
391 | KEY(1, 0, KEY_RIGHT), | ||
392 | KEY(1, 1, KEY_UP), | ||
393 | KEY(1, 2, KEY_I), | ||
394 | KEY(1, 3, KEY_N), | ||
395 | |||
396 | KEY(2, 0, KEY_A), | ||
397 | KEY(2, 1, KEY_E), | ||
398 | KEY(2, 2, KEY_J), | ||
399 | KEY(2, 3, KEY_O), | ||
400 | |||
401 | KEY(3, 0, KEY_B), | ||
402 | KEY(3, 1, KEY_F), | ||
403 | KEY(3, 2, KEY_K), | ||
404 | KEY(3, 3, KEY_P) | ||
405 | }; | ||
406 | |||
407 | static struct matrix_keymap_data board_map_data = { | ||
408 | .keymap = board_keymap, | ||
409 | .keymap_size = ARRAY_SIZE(board_keymap), | ||
410 | }; | ||
411 | |||
412 | static struct twl4030_keypad_data omap3evm_kp_data = { | ||
413 | .keymap_data = &board_map_data, | ||
414 | .rows = 4, | ||
415 | .cols = 4, | ||
416 | .rep = 1, | ||
417 | }; | ||
418 | |||
419 | /* ads7846 on SPI */ | ||
420 | static struct regulator_consumer_supply omap3evm_vio_supply[] = { | ||
421 | REGULATOR_SUPPLY("vcc", "spi1.0"), | ||
422 | }; | ||
423 | |||
424 | /* VIO for ads7846 */ | ||
425 | static struct regulator_init_data omap3evm_vio = { | ||
426 | .constraints = { | ||
427 | .min_uV = 1800000, | ||
428 | .max_uV = 1800000, | ||
429 | .apply_uV = true, | ||
430 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
431 | | REGULATOR_MODE_STANDBY, | ||
432 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
433 | | REGULATOR_CHANGE_STATUS, | ||
434 | }, | ||
435 | .num_consumer_supplies = ARRAY_SIZE(omap3evm_vio_supply), | ||
436 | .consumer_supplies = omap3evm_vio_supply, | ||
437 | }; | ||
438 | |||
439 | #ifdef CONFIG_WILINK_PLATFORM_DATA | ||
440 | |||
441 | #define OMAP3EVM_WLAN_PMENA_GPIO (150) | ||
442 | #define OMAP3EVM_WLAN_IRQ_GPIO (149) | ||
443 | |||
444 | static struct regulator_consumer_supply omap3evm_vmmc2_supply[] = { | ||
445 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"), | ||
446 | }; | ||
447 | |||
448 | /* VMMC2 for driving the WL12xx module */ | ||
449 | static struct regulator_init_data omap3evm_vmmc2 = { | ||
450 | .constraints = { | ||
451 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
452 | }, | ||
453 | .num_consumer_supplies = ARRAY_SIZE(omap3evm_vmmc2_supply), | ||
454 | .consumer_supplies = omap3evm_vmmc2_supply, | ||
455 | }; | ||
456 | |||
457 | static struct fixed_voltage_config omap3evm_vwlan = { | ||
458 | .supply_name = "vwl1271", | ||
459 | .microvolts = 1800000, /* 1.80V */ | ||
460 | .gpio = OMAP3EVM_WLAN_PMENA_GPIO, | ||
461 | .startup_delay = 70000, /* 70ms */ | ||
462 | .enable_high = 1, | ||
463 | .enabled_at_boot = 0, | ||
464 | .init_data = &omap3evm_vmmc2, | ||
465 | }; | ||
466 | |||
467 | static struct platform_device omap3evm_wlan_regulator = { | ||
468 | .name = "reg-fixed-voltage", | ||
469 | .id = 1, | ||
470 | .dev = { | ||
471 | .platform_data = &omap3evm_vwlan, | ||
472 | }, | ||
473 | }; | ||
474 | |||
475 | struct wl12xx_platform_data omap3evm_wlan_data __initdata = { | ||
476 | .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */ | ||
477 | }; | ||
478 | #endif | ||
479 | |||
480 | /* VAUX2 for USB */ | ||
481 | static struct regulator_consumer_supply omap3evm_vaux2_supplies[] = { | ||
482 | REGULATOR_SUPPLY("VDD_CSIPHY1", "omap3isp"), /* OMAP ISP */ | ||
483 | REGULATOR_SUPPLY("VDD_CSIPHY2", "omap3isp"), /* OMAP ISP */ | ||
484 | REGULATOR_SUPPLY("vcc", "usb_phy_gen_xceiv.2"), /* hsusb port 2 */ | ||
485 | REGULATOR_SUPPLY("vaux2", NULL), | ||
486 | }; | ||
487 | |||
488 | static struct regulator_init_data omap3evm_vaux2 = { | ||
489 | .constraints = { | ||
490 | .min_uV = 2800000, | ||
491 | .max_uV = 2800000, | ||
492 | .apply_uV = true, | ||
493 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
494 | | REGULATOR_MODE_STANDBY, | ||
495 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
496 | | REGULATOR_CHANGE_STATUS, | ||
497 | }, | ||
498 | .num_consumer_supplies = ARRAY_SIZE(omap3evm_vaux2_supplies), | ||
499 | .consumer_supplies = omap3evm_vaux2_supplies, | ||
500 | }; | ||
501 | |||
502 | static struct twl4030_platform_data omap3evm_twldata = { | ||
503 | /* platform_data for children goes here */ | ||
504 | .keypad = &omap3evm_kp_data, | ||
505 | .gpio = &omap3evm_gpio_data, | ||
506 | .vio = &omap3evm_vio, | ||
507 | .vmmc1 = &omap3evm_vmmc1, | ||
508 | .vsim = &omap3evm_vsim, | ||
509 | }; | ||
510 | |||
511 | static int __init omap3_evm_i2c_init(void) | ||
512 | { | ||
513 | omap3_pmic_get_config(&omap3evm_twldata, | ||
514 | TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC | | ||
515 | TWL_COMMON_PDATA_AUDIO, | ||
516 | TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); | ||
517 | |||
518 | omap3evm_twldata.vdac->constraints.apply_uV = true; | ||
519 | omap3evm_twldata.vpll2->constraints.apply_uV = true; | ||
520 | |||
521 | omap3_pmic_init("twl4030", &omap3evm_twldata); | ||
522 | omap_register_i2c_bus(2, 400, NULL, 0); | ||
523 | omap_register_i2c_bus(3, 400, NULL, 0); | ||
524 | return 0; | ||
525 | } | ||
526 | |||
527 | static struct usbhs_phy_data phy_data[] __initdata = { | ||
528 | { | ||
529 | .port = 2, | ||
530 | .reset_gpio = -1, /* set at runtime */ | ||
531 | .vcc_gpio = -EINVAL, | ||
532 | }, | ||
533 | }; | ||
534 | |||
535 | static struct usbhs_omap_platform_data usbhs_bdata __initdata = { | ||
536 | .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, | ||
537 | }; | ||
538 | |||
539 | #ifdef CONFIG_OMAP_MUX | ||
540 | static struct omap_board_mux omap35x_board_mux[] __initdata = { | ||
541 | OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP | | ||
542 | OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW | | ||
543 | OMAP_PIN_OFF_WAKEUPENABLE), | ||
544 | OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP | | ||
545 | OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW | | ||
546 | OMAP_PIN_OFF_WAKEUPENABLE), | ||
547 | OMAP3_MUX(SYS_BOOT5, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP | | ||
548 | OMAP_PIN_OFF_NONE), | ||
549 | OMAP3_MUX(GPMC_WAIT2, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP | | ||
550 | OMAP_PIN_OFF_NONE), | ||
551 | #ifdef CONFIG_WILINK_PLATFORM_DATA | ||
552 | /* WLAN IRQ - GPIO 149 */ | ||
553 | OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
554 | |||
555 | /* WLAN POWER ENABLE - GPIO 150 */ | ||
556 | OMAP3_MUX(UART1_CTS, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||
557 | |||
558 | /* MMC2 SDIO pin muxes for WL12xx */ | ||
559 | OMAP3_MUX(SDMMC2_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
560 | OMAP3_MUX(SDMMC2_CMD, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
561 | OMAP3_MUX(SDMMC2_DAT0, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
562 | OMAP3_MUX(SDMMC2_DAT1, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
563 | OMAP3_MUX(SDMMC2_DAT2, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
564 | OMAP3_MUX(SDMMC2_DAT3, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
565 | #endif | ||
566 | { .reg_offset = OMAP_MUX_TERMINATOR }, | ||
567 | }; | ||
568 | |||
569 | static struct omap_board_mux omap36x_board_mux[] __initdata = { | ||
570 | OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP | | ||
571 | OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW | | ||
572 | OMAP_PIN_OFF_WAKEUPENABLE), | ||
573 | OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP | | ||
574 | OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW | | ||
575 | OMAP_PIN_OFF_WAKEUPENABLE), | ||
576 | /* AM/DM37x EVM: DSS data bus muxed with sys_boot */ | ||
577 | OMAP3_MUX(DSS_DATA18, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
578 | OMAP3_MUX(DSS_DATA19, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
579 | OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
580 | OMAP3_MUX(DSS_DATA21, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
581 | OMAP3_MUX(DSS_DATA22, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
582 | OMAP3_MUX(DSS_DATA23, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
583 | OMAP3_MUX(SYS_BOOT0, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
584 | OMAP3_MUX(SYS_BOOT1, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
585 | OMAP3_MUX(SYS_BOOT3, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
586 | OMAP3_MUX(SYS_BOOT4, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
587 | OMAP3_MUX(SYS_BOOT5, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
588 | OMAP3_MUX(SYS_BOOT6, OMAP_MUX_MODE3 | OMAP_PIN_OFF_NONE), | ||
589 | #ifdef CONFIG_WILINK_PLATFORM_DATA | ||
590 | /* WLAN IRQ - GPIO 149 */ | ||
591 | OMAP3_MUX(UART1_RTS, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
592 | |||
593 | /* WLAN POWER ENABLE - GPIO 150 */ | ||
594 | OMAP3_MUX(UART1_CTS, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||
595 | |||
596 | /* MMC2 SDIO pin muxes for WL12xx */ | ||
597 | OMAP3_MUX(SDMMC2_CLK, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
598 | OMAP3_MUX(SDMMC2_CMD, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
599 | OMAP3_MUX(SDMMC2_DAT0, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
600 | OMAP3_MUX(SDMMC2_DAT1, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
601 | OMAP3_MUX(SDMMC2_DAT2, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
602 | OMAP3_MUX(SDMMC2_DAT3, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP), | ||
603 | #endif | ||
604 | |||
605 | { .reg_offset = OMAP_MUX_TERMINATOR }, | ||
606 | }; | ||
607 | #else | ||
608 | #define omap35x_board_mux NULL | ||
609 | #define omap36x_board_mux NULL | ||
610 | #endif | ||
611 | |||
612 | static struct omap_musb_board_data musb_board_data = { | ||
613 | .interface_type = MUSB_INTERFACE_ULPI, | ||
614 | .mode = MUSB_OTG, | ||
615 | .power = 100, | ||
616 | }; | ||
617 | |||
618 | static struct gpio omap3_evm_ehci_gpios[] __initdata = { | ||
619 | { OMAP3_EVM_EHCI_VBUS, GPIOF_OUT_INIT_HIGH, "enable EHCI VBUS" }, | ||
620 | { OMAP3_EVM_EHCI_SELECT, GPIOF_OUT_INIT_LOW, "select EHCI port" }, | ||
621 | }; | ||
622 | |||
623 | static void __init omap3_evm_wl12xx_init(void) | ||
624 | { | ||
625 | #ifdef CONFIG_WILINK_PLATFORM_DATA | ||
626 | int ret; | ||
627 | |||
628 | /* WL12xx WLAN Init */ | ||
629 | omap3evm_wlan_data.irq = gpio_to_irq(OMAP3EVM_WLAN_IRQ_GPIO); | ||
630 | ret = wl12xx_set_platform_data(&omap3evm_wlan_data); | ||
631 | if (ret) | ||
632 | pr_err("error setting wl12xx data: %d\n", ret); | ||
633 | ret = platform_device_register(&omap3evm_wlan_regulator); | ||
634 | if (ret) | ||
635 | pr_err("error registering wl12xx device: %d\n", ret); | ||
636 | #endif | ||
637 | } | ||
638 | |||
639 | static struct regulator_consumer_supply dummy_supplies[] = { | ||
640 | REGULATOR_SUPPLY("vddvario", "smsc911x.0"), | ||
641 | REGULATOR_SUPPLY("vdd33a", "smsc911x.0"), | ||
642 | }; | ||
643 | |||
644 | static struct mtd_partition omap3evm_nand_partitions[] = { | ||
645 | /* All the partition sizes are listed in terms of NAND block size */ | ||
646 | { | ||
647 | .name = "X-Loader", | ||
648 | .offset = 0, | ||
649 | .size = 4*(SZ_128K), | ||
650 | .mask_flags = MTD_WRITEABLE | ||
651 | }, | ||
652 | { | ||
653 | .name = "U-Boot", | ||
654 | .offset = MTDPART_OFS_APPEND, | ||
655 | .size = 14*(SZ_128K), | ||
656 | .mask_flags = MTD_WRITEABLE | ||
657 | }, | ||
658 | { | ||
659 | .name = "U-Boot Env", | ||
660 | .offset = MTDPART_OFS_APPEND, | ||
661 | .size = 2*(SZ_128K) | ||
662 | }, | ||
663 | { | ||
664 | .name = "Kernel", | ||
665 | .offset = MTDPART_OFS_APPEND, | ||
666 | .size = 40*(SZ_128K) | ||
667 | }, | ||
668 | { | ||
669 | .name = "File system", | ||
670 | .size = MTDPART_SIZ_FULL, | ||
671 | .offset = MTDPART_OFS_APPEND, | ||
672 | }, | ||
673 | }; | ||
674 | |||
675 | static void __init omap3_evm_init(void) | ||
676 | { | ||
677 | struct omap_board_mux *obm; | ||
678 | |||
679 | omap3_evm_get_revision(); | ||
680 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | ||
681 | |||
682 | obm = (cpu_is_omap3630()) ? omap36x_board_mux : omap35x_board_mux; | ||
683 | omap3_mux_init(obm, OMAP_PACKAGE_CBB); | ||
684 | |||
685 | omap_mux_init_gpio(63, OMAP_PIN_INPUT); | ||
686 | omap_hsmmc_init(mmc); | ||
687 | |||
688 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) | ||
689 | omap3evm_twldata.vaux2 = &omap3evm_vaux2; | ||
690 | |||
691 | omap3_evm_i2c_init(); | ||
692 | |||
693 | omap_display_init(&omap3_evm_dss_data); | ||
694 | platform_device_register(&omap3_evm_lcd_device); | ||
695 | platform_device_register(&omap3_evm_tfp410_device); | ||
696 | platform_device_register(&omap3_evm_dvi_connector_device); | ||
697 | platform_device_register(&omap3_evm_tv_connector_device); | ||
698 | |||
699 | omap_serial_init(); | ||
700 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL); | ||
701 | |||
702 | /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */ | ||
703 | usb_nop_xceiv_register(); | ||
704 | |||
705 | if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) { | ||
706 | /* enable EHCI VBUS using GPIO22 */ | ||
707 | omap_mux_init_gpio(OMAP3_EVM_EHCI_VBUS, OMAP_PIN_INPUT_PULLUP); | ||
708 | /* Select EHCI port on main board */ | ||
709 | omap_mux_init_gpio(OMAP3_EVM_EHCI_SELECT, | ||
710 | OMAP_PIN_INPUT_PULLUP); | ||
711 | gpio_request_array(omap3_evm_ehci_gpios, | ||
712 | ARRAY_SIZE(omap3_evm_ehci_gpios)); | ||
713 | |||
714 | /* setup EHCI phy reset config */ | ||
715 | omap_mux_init_gpio(21, OMAP_PIN_INPUT_PULLUP); | ||
716 | phy_data[0].reset_gpio = 21; | ||
717 | |||
718 | /* EVM REV >= E can supply 500mA with EXTVBUS programming */ | ||
719 | musb_board_data.power = 500; | ||
720 | musb_board_data.extvbus = 1; | ||
721 | } else { | ||
722 | /* setup EHCI phy reset on MDC */ | ||
723 | omap_mux_init_gpio(135, OMAP_PIN_OUTPUT); | ||
724 | phy_data[0].reset_gpio = 135; | ||
725 | } | ||
726 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | ||
727 | usb_musb_init(&musb_board_data); | ||
728 | |||
729 | usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data)); | ||
730 | usbhs_init(&usbhs_bdata); | ||
731 | board_nand_init(omap3evm_nand_partitions, | ||
732 | ARRAY_SIZE(omap3evm_nand_partitions), NAND_CS, | ||
733 | NAND_BUSWIDTH_16, NULL); | ||
734 | |||
735 | omap_ads7846_init(1, OMAP3_EVM_TS_GPIO, 310, NULL); | ||
736 | omap3evm_init_smsc911x(); | ||
737 | #ifdef CONFIG_BROKEN | ||
738 | omap3_evm_display_init(); | ||
739 | #endif | ||
740 | omap3_evm_wl12xx_init(); | ||
741 | omap_twl4030_audio_init("omap3evm", NULL); | ||
742 | } | ||
743 | |||
744 | MACHINE_START(OMAP3EVM, "OMAP3 EVM") | ||
745 | /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ | ||
746 | .atag_offset = 0x100, | ||
747 | .reserve = omap_reserve, | ||
748 | .map_io = omap3_map_io, | ||
749 | .init_early = omap35xx_init_early, | ||
750 | .init_irq = omap3_init_irq, | ||
751 | .handle_irq = omap3_intc_handle_irq, | ||
752 | .init_machine = omap3_evm_init, | ||
753 | .init_late = omap35xx_init_late, | ||
754 | .init_time = omap3_sync32k_timer_init, | ||
755 | .restart = omap3xxx_restart, | ||
756 | MACHINE_END | ||
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c deleted file mode 100644 index 345e8c4b8731..000000000000 --- a/arch/arm/mach-omap2/board-rm680.c +++ /dev/null | |||
@@ -1,167 +0,0 @@ | |||
1 | /* | ||
2 | * Board support file for Nokia N950 (RM-680) / N9 (RM-696). | ||
3 | * | ||
4 | * Copyright (C) 2010 Nokia | ||
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 <linux/io.h> | ||
12 | #include <linux/i2c.h> | ||
13 | #include <linux/gpio.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/i2c/twl.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | #include <linux/regulator/fixed.h> | ||
18 | #include <linux/regulator/machine.h> | ||
19 | #include <linux/regulator/consumer.h> | ||
20 | #include <linux/platform_data/mtd-onenand-omap2.h> | ||
21 | #include <linux/usb/phy.h> | ||
22 | |||
23 | #include <asm/mach/arch.h> | ||
24 | #include <asm/mach-types.h> | ||
25 | |||
26 | #include "common.h" | ||
27 | #include "mux.h" | ||
28 | #include "gpmc.h" | ||
29 | #include "mmc.h" | ||
30 | #include "hsmmc.h" | ||
31 | #include "sdram-nokia.h" | ||
32 | #include "common-board-devices.h" | ||
33 | #include "gpmc-onenand.h" | ||
34 | |||
35 | static struct regulator_consumer_supply rm680_vemmc_consumers[] = { | ||
36 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"), | ||
37 | }; | ||
38 | |||
39 | /* Fixed regulator for internal eMMC */ | ||
40 | static struct regulator_init_data rm680_vemmc = { | ||
41 | .constraints = { | ||
42 | .name = "rm680_vemmc", | ||
43 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
44 | | REGULATOR_MODE_STANDBY, | ||
45 | .valid_ops_mask = REGULATOR_CHANGE_STATUS | ||
46 | | REGULATOR_CHANGE_MODE, | ||
47 | }, | ||
48 | .num_consumer_supplies = ARRAY_SIZE(rm680_vemmc_consumers), | ||
49 | .consumer_supplies = rm680_vemmc_consumers, | ||
50 | }; | ||
51 | |||
52 | static struct fixed_voltage_config rm680_vemmc_config = { | ||
53 | .supply_name = "VEMMC", | ||
54 | .microvolts = 2900000, | ||
55 | .gpio = 157, | ||
56 | .startup_delay = 150, | ||
57 | .enable_high = 1, | ||
58 | .init_data = &rm680_vemmc, | ||
59 | }; | ||
60 | |||
61 | static struct platform_device rm680_vemmc_device = { | ||
62 | .name = "reg-fixed-voltage", | ||
63 | .dev = { | ||
64 | .platform_data = &rm680_vemmc_config, | ||
65 | }, | ||
66 | }; | ||
67 | |||
68 | static struct platform_device *rm680_peripherals_devices[] __initdata = { | ||
69 | &rm680_vemmc_device, | ||
70 | }; | ||
71 | |||
72 | /* TWL */ | ||
73 | static struct twl4030_gpio_platform_data rm680_gpio_data = { | ||
74 | .pullups = BIT(0), | ||
75 | .pulldowns = BIT(1) | BIT(2) | BIT(8) | BIT(15), | ||
76 | }; | ||
77 | |||
78 | static struct twl4030_platform_data rm680_twl_data = { | ||
79 | .gpio = &rm680_gpio_data, | ||
80 | /* add rest of the children here */ | ||
81 | }; | ||
82 | |||
83 | static void __init rm680_i2c_init(void) | ||
84 | { | ||
85 | omap3_pmic_get_config(&rm680_twl_data, TWL_COMMON_PDATA_USB, 0); | ||
86 | omap_pmic_init(1, 2900, "twl5031", 7 + OMAP_INTC_START, &rm680_twl_data); | ||
87 | omap_register_i2c_bus(2, 400, NULL, 0); | ||
88 | omap_register_i2c_bus(3, 400, NULL, 0); | ||
89 | } | ||
90 | |||
91 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ | ||
92 | defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) | ||
93 | static struct omap_onenand_platform_data board_onenand_data[] = { | ||
94 | { | ||
95 | .gpio_irq = 65, | ||
96 | .flags = ONENAND_SYNC_READWRITE, | ||
97 | } | ||
98 | }; | ||
99 | #endif | ||
100 | |||
101 | /* eMMC */ | ||
102 | static struct omap2_hsmmc_info mmc[] __initdata = { | ||
103 | { | ||
104 | .name = "internal", | ||
105 | .mmc = 2, | ||
106 | .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED, | ||
107 | .gpio_cd = -EINVAL, | ||
108 | .gpio_wp = -EINVAL, | ||
109 | }, | ||
110 | { /* Terminator */ } | ||
111 | }; | ||
112 | |||
113 | static void __init rm680_peripherals_init(void) | ||
114 | { | ||
115 | platform_add_devices(rm680_peripherals_devices, | ||
116 | ARRAY_SIZE(rm680_peripherals_devices)); | ||
117 | rm680_i2c_init(); | ||
118 | gpmc_onenand_init(board_onenand_data); | ||
119 | omap_hsmmc_init(mmc); | ||
120 | } | ||
121 | |||
122 | #ifdef CONFIG_OMAP_MUX | ||
123 | static struct omap_board_mux board_mux[] __initdata = { | ||
124 | { .reg_offset = OMAP_MUX_TERMINATOR }, | ||
125 | }; | ||
126 | #endif | ||
127 | |||
128 | static void __init rm680_init(void) | ||
129 | { | ||
130 | struct omap_sdrc_params *sdrc_params; | ||
131 | |||
132 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | ||
133 | omap_serial_init(); | ||
134 | |||
135 | sdrc_params = nokia_get_sdram_timings(); | ||
136 | omap_sdrc_init(sdrc_params, sdrc_params); | ||
137 | |||
138 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | ||
139 | usb_musb_init(NULL); | ||
140 | rm680_peripherals_init(); | ||
141 | } | ||
142 | |||
143 | MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") | ||
144 | .atag_offset = 0x100, | ||
145 | .reserve = omap_reserve, | ||
146 | .map_io = omap3_map_io, | ||
147 | .init_early = omap3630_init_early, | ||
148 | .init_irq = omap3_init_irq, | ||
149 | .handle_irq = omap3_intc_handle_irq, | ||
150 | .init_machine = rm680_init, | ||
151 | .init_late = omap3630_init_late, | ||
152 | .init_time = omap3_sync32k_timer_init, | ||
153 | .restart = omap3xxx_restart, | ||
154 | MACHINE_END | ||
155 | |||
156 | MACHINE_START(NOKIA_RM696, "Nokia RM-696 board") | ||
157 | .atag_offset = 0x100, | ||
158 | .reserve = omap_reserve, | ||
159 | .map_io = omap3_map_io, | ||
160 | .init_early = omap3630_init_early, | ||
161 | .init_irq = omap3_init_irq, | ||
162 | .handle_irq = omap3_intc_handle_irq, | ||
163 | .init_machine = rm680_init, | ||
164 | .init_late = omap3630_init_late, | ||
165 | .init_time = omap3_sync32k_timer_init, | ||
166 | .restart = omap3xxx_restart, | ||
167 | MACHINE_END | ||
diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c deleted file mode 100644 index 42e5f231a799..000000000000 --- a/arch/arm/mach-omap2/board-zoom-debugboard.c +++ /dev/null | |||
@@ -1,139 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Texas Instruments Inc. | ||
3 | * Mikkel Christensen <mlc@ti.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/gpio.h> | ||
13 | #include <linux/serial_8250.h> | ||
14 | #include <linux/smsc911x.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | |||
17 | #include <linux/regulator/fixed.h> | ||
18 | #include <linux/regulator/machine.h> | ||
19 | |||
20 | #include "gpmc.h" | ||
21 | #include "gpmc-smsc911x.h" | ||
22 | |||
23 | #include "board-zoom.h" | ||
24 | |||
25 | #include "soc.h" | ||
26 | #include "common.h" | ||
27 | |||
28 | #define ZOOM_SMSC911X_CS 7 | ||
29 | #define ZOOM_SMSC911X_GPIO 158 | ||
30 | #define ZOOM_QUADUART_CS 3 | ||
31 | #define ZOOM_QUADUART_GPIO 102 | ||
32 | #define ZOOM_QUADUART_RST_GPIO 152 | ||
33 | #define QUART_CLK 1843200 | ||
34 | #define DEBUG_BASE 0x08000000 | ||
35 | #define ZOOM_ETHR_START DEBUG_BASE | ||
36 | |||
37 | static struct omap_smsc911x_platform_data zoom_smsc911x_cfg = { | ||
38 | .cs = ZOOM_SMSC911X_CS, | ||
39 | .gpio_irq = ZOOM_SMSC911X_GPIO, | ||
40 | .gpio_reset = -EINVAL, | ||
41 | .flags = SMSC911X_USE_32BIT, | ||
42 | }; | ||
43 | |||
44 | static inline void __init zoom_init_smsc911x(void) | ||
45 | { | ||
46 | gpmc_smsc911x_init(&zoom_smsc911x_cfg); | ||
47 | } | ||
48 | |||
49 | static struct plat_serial8250_port serial_platform_data[] = { | ||
50 | { | ||
51 | .mapbase = ZOOM_UART_BASE, | ||
52 | .flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ, | ||
53 | .irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING, | ||
54 | .iotype = UPIO_MEM, | ||
55 | .regshift = 1, | ||
56 | .uartclk = QUART_CLK, | ||
57 | }, { | ||
58 | .flags = 0 | ||
59 | } | ||
60 | }; | ||
61 | |||
62 | static struct platform_device zoom_debugboard_serial_device = { | ||
63 | .name = "serial8250", | ||
64 | .id = PLAT8250_DEV_PLATFORM, | ||
65 | .dev = { | ||
66 | .platform_data = serial_platform_data, | ||
67 | }, | ||
68 | }; | ||
69 | |||
70 | static inline void __init zoom_init_quaduart(void) | ||
71 | { | ||
72 | int quart_cs; | ||
73 | unsigned long cs_mem_base; | ||
74 | int quart_gpio = 0; | ||
75 | |||
76 | if (gpio_request_one(ZOOM_QUADUART_RST_GPIO, | ||
77 | GPIOF_OUT_INIT_LOW, | ||
78 | "TL16CP754C GPIO") < 0) { | ||
79 | pr_err("Failed to request GPIO%d for TL16CP754C\n", | ||
80 | ZOOM_QUADUART_RST_GPIO); | ||
81 | return; | ||
82 | } | ||
83 | |||
84 | quart_cs = ZOOM_QUADUART_CS; | ||
85 | |||
86 | if (gpmc_cs_request(quart_cs, SZ_1M, &cs_mem_base) < 0) { | ||
87 | pr_err("Failed to request GPMC mem for Quad UART(TL16CP754C)\n"); | ||
88 | return; | ||
89 | } | ||
90 | |||
91 | quart_gpio = ZOOM_QUADUART_GPIO; | ||
92 | |||
93 | if (gpio_request_one(quart_gpio, GPIOF_IN, "TL16CP754C GPIO") < 0) | ||
94 | printk(KERN_ERR "Failed to request GPIO%d for TL16CP754C\n", | ||
95 | quart_gpio); | ||
96 | |||
97 | serial_platform_data[0].irq = gpio_to_irq(102); | ||
98 | } | ||
99 | |||
100 | static inline int omap_zoom_debugboard_detect(void) | ||
101 | { | ||
102 | int debug_board_detect = 0; | ||
103 | int ret = 1; | ||
104 | |||
105 | debug_board_detect = ZOOM_SMSC911X_GPIO; | ||
106 | |||
107 | if (gpio_request_one(debug_board_detect, GPIOF_IN, | ||
108 | "Zoom debug board detect") < 0) { | ||
109 | pr_err("Failed to request GPIO%d for Zoom debug board detect\n", | ||
110 | debug_board_detect); | ||
111 | return 0; | ||
112 | } | ||
113 | |||
114 | if (!gpio_get_value(debug_board_detect)) { | ||
115 | ret = 0; | ||
116 | } | ||
117 | gpio_free(debug_board_detect); | ||
118 | return ret; | ||
119 | } | ||
120 | |||
121 | static struct platform_device *zoom_devices[] __initdata = { | ||
122 | &zoom_debugboard_serial_device, | ||
123 | }; | ||
124 | |||
125 | static struct regulator_consumer_supply dummy_supplies[] = { | ||
126 | REGULATOR_SUPPLY("vddvario", "smsc911x.0"), | ||
127 | REGULATOR_SUPPLY("vdd33a", "smsc911x.0"), | ||
128 | }; | ||
129 | |||
130 | int __init zoom_debugboard_init(void) | ||
131 | { | ||
132 | if (!omap_zoom_debugboard_detect()) | ||
133 | return 0; | ||
134 | |||
135 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | ||
136 | zoom_init_smsc911x(); | ||
137 | zoom_init_quaduart(); | ||
138 | return platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices)); | ||
139 | } | ||
diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach-omap2/board-zoom-display.c deleted file mode 100644 index 3d8ecc1e05bd..000000000000 --- a/arch/arm/mach-omap2/board-zoom-display.c +++ /dev/null | |||
@@ -1,71 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Texas Instruments Inc. | ||
3 | * | ||
4 | * Modified from mach-omap2/board-zoom-peripherals.c | ||
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 <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/gpio.h> | ||
15 | #include <linux/spi/spi.h> | ||
16 | #include <linux/platform_data/spi-omap2-mcspi.h> | ||
17 | #include <video/omapdss.h> | ||
18 | #include <video/omap-panel-data.h> | ||
19 | |||
20 | #include "board-zoom.h" | ||
21 | #include "soc.h" | ||
22 | #include "common.h" | ||
23 | |||
24 | #define LCD_PANEL_RESET_GPIO_PROD 96 | ||
25 | #define LCD_PANEL_RESET_GPIO_PILOT 55 | ||
26 | #define LCD_PANEL_QVGA_GPIO 56 | ||
27 | |||
28 | static struct panel_nec_nl8048hl11_platform_data zoom_lcd_pdata = { | ||
29 | .name = "lcd", | ||
30 | .source = "dpi.0", | ||
31 | |||
32 | .data_lines = 24, | ||
33 | |||
34 | .res_gpio = -1, /* filled in code */ | ||
35 | .qvga_gpio = LCD_PANEL_QVGA_GPIO, | ||
36 | }; | ||
37 | |||
38 | static struct omap_dss_board_info zoom_dss_data = { | ||
39 | .default_display_name = "lcd", | ||
40 | }; | ||
41 | |||
42 | static void __init zoom_lcd_panel_init(void) | ||
43 | { | ||
44 | zoom_lcd_pdata.res_gpio = (omap_rev() > OMAP3430_REV_ES3_0) ? | ||
45 | LCD_PANEL_RESET_GPIO_PROD : | ||
46 | LCD_PANEL_RESET_GPIO_PILOT; | ||
47 | } | ||
48 | |||
49 | static struct omap2_mcspi_device_config dss_lcd_mcspi_config = { | ||
50 | .turbo_mode = 1, | ||
51 | }; | ||
52 | |||
53 | static struct spi_board_info nec_8048_spi_board_info[] __initdata = { | ||
54 | [0] = { | ||
55 | .modalias = "panel-nec-nl8048hl11", | ||
56 | .bus_num = 1, | ||
57 | .chip_select = 2, | ||
58 | .max_speed_hz = 375000, | ||
59 | .controller_data = &dss_lcd_mcspi_config, | ||
60 | .platform_data = &zoom_lcd_pdata, | ||
61 | }, | ||
62 | }; | ||
63 | |||
64 | void __init zoom_display_init(void) | ||
65 | { | ||
66 | omap_display_init(&zoom_dss_data); | ||
67 | zoom_lcd_panel_init(); | ||
68 | spi_register_board_info(nec_8048_spi_board_info, | ||
69 | ARRAY_SIZE(nec_8048_spi_board_info)); | ||
70 | } | ||
71 | |||
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c deleted file mode 100644 index a90375d5b2b6..000000000000 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ /dev/null | |||
@@ -1,360 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Texas Instruments Inc. | ||
3 | * | ||
4 | * Modified from mach-omap2/board-zoom2.c | ||
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 <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/input.h> | ||
15 | #include <linux/input/matrix_keypad.h> | ||
16 | #include <linux/gpio.h> | ||
17 | #include <linux/i2c/twl.h> | ||
18 | #include <linux/regulator/machine.h> | ||
19 | #include <linux/regulator/fixed.h> | ||
20 | #include <linux/wl12xx.h> | ||
21 | #include <linux/mmc/host.h> | ||
22 | #include <linux/platform_data/gpio-omap.h> | ||
23 | #include <linux/platform_data/omap-twl4030.h> | ||
24 | #include <linux/usb/phy.h> | ||
25 | #include <linux/pwm.h> | ||
26 | #include <linux/leds_pwm.h> | ||
27 | #include <linux/pwm_backlight.h> | ||
28 | |||
29 | #include <asm/mach-types.h> | ||
30 | #include <asm/mach/arch.h> | ||
31 | #include <asm/mach/map.h> | ||
32 | |||
33 | #include "common.h" | ||
34 | |||
35 | #include "board-zoom.h" | ||
36 | |||
37 | #include "mux.h" | ||
38 | #include "hsmmc.h" | ||
39 | #include "common-board-devices.h" | ||
40 | |||
41 | #define OMAP_ZOOM_WLAN_PMENA_GPIO (101) | ||
42 | #define OMAP_ZOOM_TSC2004_IRQ_GPIO (153) | ||
43 | #define OMAP_ZOOM_WLAN_IRQ_GPIO (162) | ||
44 | |||
45 | /* Zoom2 has Qwerty keyboard*/ | ||
46 | static uint32_t board_keymap[] = { | ||
47 | KEY(0, 0, KEY_E), | ||
48 | KEY(0, 1, KEY_R), | ||
49 | KEY(0, 2, KEY_T), | ||
50 | KEY(0, 3, KEY_HOME), | ||
51 | KEY(0, 6, KEY_I), | ||
52 | KEY(0, 7, KEY_LEFTSHIFT), | ||
53 | KEY(1, 0, KEY_D), | ||
54 | KEY(1, 1, KEY_F), | ||
55 | KEY(1, 2, KEY_G), | ||
56 | KEY(1, 3, KEY_SEND), | ||
57 | KEY(1, 6, KEY_K), | ||
58 | KEY(1, 7, KEY_ENTER), | ||
59 | KEY(2, 0, KEY_X), | ||
60 | KEY(2, 1, KEY_C), | ||
61 | KEY(2, 2, KEY_V), | ||
62 | KEY(2, 3, KEY_END), | ||
63 | KEY(2, 6, KEY_DOT), | ||
64 | KEY(2, 7, KEY_CAPSLOCK), | ||
65 | KEY(3, 0, KEY_Z), | ||
66 | KEY(3, 1, KEY_KPPLUS), | ||
67 | KEY(3, 2, KEY_B), | ||
68 | KEY(3, 3, KEY_F1), | ||
69 | KEY(3, 6, KEY_O), | ||
70 | KEY(3, 7, KEY_SPACE), | ||
71 | KEY(4, 0, KEY_W), | ||
72 | KEY(4, 1, KEY_Y), | ||
73 | KEY(4, 2, KEY_U), | ||
74 | KEY(4, 3, KEY_F2), | ||
75 | KEY(4, 4, KEY_VOLUMEUP), | ||
76 | KEY(4, 6, KEY_L), | ||
77 | KEY(4, 7, KEY_LEFT), | ||
78 | KEY(5, 0, KEY_S), | ||
79 | KEY(5, 1, KEY_H), | ||
80 | KEY(5, 2, KEY_J), | ||
81 | KEY(5, 3, KEY_F3), | ||
82 | KEY(5, 4, KEY_UNKNOWN), | ||
83 | KEY(5, 5, KEY_VOLUMEDOWN), | ||
84 | KEY(5, 6, KEY_M), | ||
85 | KEY(5, 7, KEY_RIGHT), | ||
86 | KEY(6, 0, KEY_Q), | ||
87 | KEY(6, 1, KEY_A), | ||
88 | KEY(6, 2, KEY_N), | ||
89 | KEY(6, 3, KEY_BACKSPACE), | ||
90 | KEY(6, 6, KEY_P), | ||
91 | KEY(6, 7, KEY_UP), | ||
92 | KEY(7, 0, KEY_PROG1), /*MACRO 1 <User defined> */ | ||
93 | KEY(7, 1, KEY_PROG2), /*MACRO 2 <User defined> */ | ||
94 | KEY(7, 2, KEY_PROG3), /*MACRO 3 <User defined> */ | ||
95 | KEY(7, 3, KEY_PROG4), /*MACRO 4 <User defined> */ | ||
96 | KEY(7, 6, KEY_SELECT), | ||
97 | KEY(7, 7, KEY_DOWN) | ||
98 | }; | ||
99 | |||
100 | static struct matrix_keymap_data board_map_data = { | ||
101 | .keymap = board_keymap, | ||
102 | .keymap_size = ARRAY_SIZE(board_keymap), | ||
103 | }; | ||
104 | |||
105 | static struct twl4030_keypad_data zoom_kp_twl4030_data = { | ||
106 | .keymap_data = &board_map_data, | ||
107 | .rows = 8, | ||
108 | .cols = 8, | ||
109 | .rep = 1, | ||
110 | }; | ||
111 | |||
112 | static struct regulator_consumer_supply zoom_vmmc1_supply[] = { | ||
113 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), | ||
114 | }; | ||
115 | |||
116 | static struct regulator_consumer_supply zoom_vsim_supply[] = { | ||
117 | REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"), | ||
118 | }; | ||
119 | |||
120 | static struct regulator_consumer_supply zoom_vmmc2_supply[] = { | ||
121 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"), | ||
122 | }; | ||
123 | |||
124 | static struct regulator_consumer_supply zoom_vmmc3_supply[] = { | ||
125 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"), | ||
126 | }; | ||
127 | |||
128 | /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ | ||
129 | static struct regulator_init_data zoom_vmmc1 = { | ||
130 | .constraints = { | ||
131 | .min_uV = 1850000, | ||
132 | .max_uV = 3150000, | ||
133 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
134 | | REGULATOR_MODE_STANDBY, | ||
135 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
136 | | REGULATOR_CHANGE_MODE | ||
137 | | REGULATOR_CHANGE_STATUS, | ||
138 | }, | ||
139 | .num_consumer_supplies = ARRAY_SIZE(zoom_vmmc1_supply), | ||
140 | .consumer_supplies = zoom_vmmc1_supply, | ||
141 | }; | ||
142 | |||
143 | /* VMMC2 for MMC2 card */ | ||
144 | static struct regulator_init_data zoom_vmmc2 = { | ||
145 | .constraints = { | ||
146 | .min_uV = 1850000, | ||
147 | .max_uV = 1850000, | ||
148 | .apply_uV = true, | ||
149 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
150 | | REGULATOR_MODE_STANDBY, | ||
151 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
152 | | REGULATOR_CHANGE_STATUS, | ||
153 | }, | ||
154 | .num_consumer_supplies = ARRAY_SIZE(zoom_vmmc2_supply), | ||
155 | .consumer_supplies = zoom_vmmc2_supply, | ||
156 | }; | ||
157 | |||
158 | /* VSIM for OMAP VDD_MMC1A (i/o for DAT4..DAT7) */ | ||
159 | static struct regulator_init_data zoom_vsim = { | ||
160 | .constraints = { | ||
161 | .min_uV = 1800000, | ||
162 | .max_uV = 3000000, | ||
163 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
164 | | REGULATOR_MODE_STANDBY, | ||
165 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
166 | | REGULATOR_CHANGE_MODE | ||
167 | | REGULATOR_CHANGE_STATUS, | ||
168 | }, | ||
169 | .num_consumer_supplies = ARRAY_SIZE(zoom_vsim_supply), | ||
170 | .consumer_supplies = zoom_vsim_supply, | ||
171 | }; | ||
172 | |||
173 | static struct regulator_init_data zoom_vmmc3 = { | ||
174 | .constraints = { | ||
175 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
176 | }, | ||
177 | .num_consumer_supplies = ARRAY_SIZE(zoom_vmmc3_supply), | ||
178 | .consumer_supplies = zoom_vmmc3_supply, | ||
179 | }; | ||
180 | |||
181 | static struct fixed_voltage_config zoom_vwlan = { | ||
182 | .supply_name = "vwl1271", | ||
183 | .microvolts = 1800000, /* 1.8V */ | ||
184 | .gpio = OMAP_ZOOM_WLAN_PMENA_GPIO, | ||
185 | .startup_delay = 70000, /* 70msec */ | ||
186 | .enable_high = 1, | ||
187 | .enabled_at_boot = 0, | ||
188 | .init_data = &zoom_vmmc3, | ||
189 | }; | ||
190 | |||
191 | static struct platform_device omap_vwlan_device = { | ||
192 | .name = "reg-fixed-voltage", | ||
193 | .id = 1, | ||
194 | .dev = { | ||
195 | .platform_data = &zoom_vwlan, | ||
196 | }, | ||
197 | }; | ||
198 | |||
199 | static struct pwm_lookup zoom_pwm_lookup[] = { | ||
200 | PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "zoom::keypad"), | ||
201 | PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", "backlight"), | ||
202 | }; | ||
203 | |||
204 | static struct led_pwm zoom_pwm_leds[] = { | ||
205 | { | ||
206 | .name = "zoom::keypad", | ||
207 | .max_brightness = 127, | ||
208 | .pwm_period_ns = 7812500, | ||
209 | }, | ||
210 | }; | ||
211 | |||
212 | static struct led_pwm_platform_data zoom_pwm_data = { | ||
213 | .num_leds = ARRAY_SIZE(zoom_pwm_leds), | ||
214 | .leds = zoom_pwm_leds, | ||
215 | }; | ||
216 | |||
217 | static struct platform_device zoom_leds_pwm = { | ||
218 | .name = "leds_pwm", | ||
219 | .id = -1, | ||
220 | .dev = { | ||
221 | .platform_data = &zoom_pwm_data, | ||
222 | }, | ||
223 | }; | ||
224 | |||
225 | static struct platform_pwm_backlight_data zoom_backlight_data = { | ||
226 | .pwm_id = 1, | ||
227 | .max_brightness = 127, | ||
228 | .dft_brightness = 127, | ||
229 | .pwm_period_ns = 7812500, | ||
230 | }; | ||
231 | |||
232 | static struct platform_device zoom_backlight_pwm = { | ||
233 | .name = "pwm-backlight", | ||
234 | .id = -1, | ||
235 | .dev = { | ||
236 | .platform_data = &zoom_backlight_data, | ||
237 | }, | ||
238 | }; | ||
239 | |||
240 | static struct platform_device *zoom_devices[] __initdata = { | ||
241 | &omap_vwlan_device, | ||
242 | &zoom_leds_pwm, | ||
243 | &zoom_backlight_pwm, | ||
244 | }; | ||
245 | |||
246 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { | ||
247 | .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ | ||
248 | }; | ||
249 | |||
250 | static struct omap2_hsmmc_info mmc[] = { | ||
251 | { | ||
252 | .name = "external", | ||
253 | .mmc = 1, | ||
254 | .caps = MMC_CAP_4_BIT_DATA, | ||
255 | .gpio_wp = -EINVAL, | ||
256 | .power_saving = true, | ||
257 | .deferred = true, | ||
258 | }, | ||
259 | { | ||
260 | .name = "internal", | ||
261 | .mmc = 2, | ||
262 | .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA, | ||
263 | .gpio_cd = -EINVAL, | ||
264 | .gpio_wp = -EINVAL, | ||
265 | .nonremovable = true, | ||
266 | .power_saving = true, | ||
267 | }, | ||
268 | { | ||
269 | .name = "wl1271", | ||
270 | .mmc = 3, | ||
271 | .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD, | ||
272 | .gpio_wp = -EINVAL, | ||
273 | .gpio_cd = -EINVAL, | ||
274 | .nonremovable = true, | ||
275 | }, | ||
276 | {} /* Terminator */ | ||
277 | }; | ||
278 | |||
279 | static struct omap_tw4030_pdata omap_twl4030_audio_data = { | ||
280 | .voice_connected = true, | ||
281 | .custom_routing = true, | ||
282 | |||
283 | .has_hs = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT, | ||
284 | .has_hf = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT, | ||
285 | |||
286 | .has_mainmic = true, | ||
287 | .has_submic = true, | ||
288 | .has_hsmic = true, | ||
289 | .has_linein = OMAP_TWL4030_LEFT | OMAP_TWL4030_RIGHT, | ||
290 | }; | ||
291 | |||
292 | static int zoom_twl_gpio_setup(struct device *dev, | ||
293 | unsigned gpio, unsigned ngpio) | ||
294 | { | ||
295 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | ||
296 | mmc[0].gpio_cd = gpio + 0; | ||
297 | omap_hsmmc_late_init(mmc); | ||
298 | |||
299 | /* Audio setup */ | ||
300 | omap_twl4030_audio_data.jack_detect = gpio + 2; | ||
301 | omap_twl4030_audio_init("Zoom2", &omap_twl4030_audio_data); | ||
302 | |||
303 | return 0; | ||
304 | } | ||
305 | |||
306 | static struct twl4030_gpio_platform_data zoom_gpio_data = { | ||
307 | .setup = zoom_twl_gpio_setup, | ||
308 | }; | ||
309 | |||
310 | static struct twl4030_platform_data zoom_twldata = { | ||
311 | /* platform_data for children goes here */ | ||
312 | .gpio = &zoom_gpio_data, | ||
313 | .keypad = &zoom_kp_twl4030_data, | ||
314 | .vmmc1 = &zoom_vmmc1, | ||
315 | .vmmc2 = &zoom_vmmc2, | ||
316 | .vsim = &zoom_vsim, | ||
317 | }; | ||
318 | |||
319 | static int __init omap_i2c_init(void) | ||
320 | { | ||
321 | omap3_pmic_get_config(&zoom_twldata, | ||
322 | TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_BCI | | ||
323 | TWL_COMMON_PDATA_MADC | TWL_COMMON_PDATA_AUDIO, | ||
324 | TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); | ||
325 | |||
326 | if (machine_is_omap_zoom2()) | ||
327 | zoom_twldata.audio->codec->ramp_delay_value = 3; /* 161 ms */ | ||
328 | |||
329 | omap_pmic_init(1, 2400, "twl5030", 7 + OMAP_INTC_START, &zoom_twldata); | ||
330 | omap_register_i2c_bus(2, 400, NULL, 0); | ||
331 | omap_register_i2c_bus(3, 400, NULL, 0); | ||
332 | return 0; | ||
333 | } | ||
334 | |||
335 | static void enable_board_wakeup_source(void) | ||
336 | { | ||
337 | /* T2 interrupt line (keypad) */ | ||
338 | omap_mux_init_signal("sys_nirq", | ||
339 | OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); | ||
340 | } | ||
341 | |||
342 | void __init zoom_peripherals_init(void) | ||
343 | { | ||
344 | int ret; | ||
345 | |||
346 | omap_zoom_wlan_data.irq = gpio_to_irq(OMAP_ZOOM_WLAN_IRQ_GPIO); | ||
347 | ret = wl12xx_set_platform_data(&omap_zoom_wlan_data); | ||
348 | |||
349 | if (ret) | ||
350 | pr_err("error setting wl12xx data: %d\n", ret); | ||
351 | |||
352 | omap_hsmmc_init(mmc); | ||
353 | omap_i2c_init(); | ||
354 | pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup)); | ||
355 | platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices)); | ||
356 | usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb"); | ||
357 | usb_musb_init(NULL); | ||
358 | enable_board_wakeup_source(); | ||
359 | omap_serial_init(); | ||
360 | } | ||
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c deleted file mode 100644 index 1a3dd865d8eb..000000000000 --- a/arch/arm/mach-omap2/board-zoom.c +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Texas Instruments Inc. | ||
3 | * Mikkel Christensen <mlc@ti.com> | ||
4 | * Felipe Balbi <balbi@ti.com> | ||
5 | * | ||
6 | * Modified from mach-omap2/board-ldp.c | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/platform_device.h> | ||
16 | #include <linux/input.h> | ||
17 | #include <linux/gpio.h> | ||
18 | #include <linux/i2c/twl.h> | ||
19 | #include <linux/mtd/nand.h> | ||
20 | |||
21 | #include <asm/mach-types.h> | ||
22 | #include <asm/mach/arch.h> | ||
23 | |||
24 | #include "common.h" | ||
25 | |||
26 | #include "board-zoom.h" | ||
27 | |||
28 | #include "board-flash.h" | ||
29 | #include "mux.h" | ||
30 | #include "sdram-micron-mt46h32m32lf-6.h" | ||
31 | #include "sdram-hynix-h8mbx00u0mer-0em.h" | ||
32 | |||
33 | #define ZOOM3_EHCI_RESET_GPIO 64 | ||
34 | |||
35 | #ifdef CONFIG_OMAP_MUX | ||
36 | static struct omap_board_mux board_mux[] __initdata = { | ||
37 | /* WLAN IRQ - GPIO 162 */ | ||
38 | OMAP3_MUX(MCBSP1_CLKX, OMAP_MUX_MODE4 | OMAP_PIN_INPUT), | ||
39 | /* WLAN POWER ENABLE - GPIO 101 */ | ||
40 | OMAP3_MUX(CAM_D2, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||
41 | /* WLAN SDIO: MMC3 CMD */ | ||
42 | OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE3 | OMAP_PIN_INPUT_PULLUP), | ||
43 | /* WLAN SDIO: MMC3 CLK */ | ||
44 | OMAP3_MUX(ETK_CLK, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), | ||
45 | /* WLAN SDIO: MMC3 DAT[0-3] */ | ||
46 | OMAP3_MUX(ETK_D3, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), | ||
47 | OMAP3_MUX(ETK_D4, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), | ||
48 | OMAP3_MUX(ETK_D5, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), | ||
49 | OMAP3_MUX(ETK_D6, OMAP_MUX_MODE2 | OMAP_PIN_INPUT_PULLUP), | ||
50 | { .reg_offset = OMAP_MUX_TERMINATOR }, | ||
51 | }; | ||
52 | #endif | ||
53 | |||
54 | static struct mtd_partition zoom_nand_partitions[] = { | ||
55 | /* All the partition sizes are listed in terms of NAND block size */ | ||
56 | { | ||
57 | .name = "X-Loader-NAND", | ||
58 | .offset = 0, | ||
59 | .size = 4 * (64 * 2048), /* 512KB, 0x80000 */ | ||
60 | .mask_flags = MTD_WRITEABLE, /* force read-only */ | ||
61 | }, | ||
62 | { | ||
63 | .name = "U-Boot-NAND", | ||
64 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */ | ||
65 | .size = 10 * (64 * 2048), /* 1.25MB, 0x140000 */ | ||
66 | .mask_flags = MTD_WRITEABLE, /* force read-only */ | ||
67 | }, | ||
68 | { | ||
69 | .name = "Boot Env-NAND", | ||
70 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */ | ||
71 | .size = 2 * (64 * 2048), /* 256KB, 0x40000 */ | ||
72 | }, | ||
73 | { | ||
74 | .name = "Kernel-NAND", | ||
75 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x0200000*/ | ||
76 | .size = 240 * (64 * 2048), /* 30M, 0x1E00000 */ | ||
77 | }, | ||
78 | { | ||
79 | .name = "system", | ||
80 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x2000000 */ | ||
81 | .size = 3328 * (64 * 2048), /* 416M, 0x1A000000 */ | ||
82 | }, | ||
83 | { | ||
84 | .name = "userdata", | ||
85 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x1C000000*/ | ||
86 | .size = 256 * (64 * 2048), /* 32M, 0x2000000 */ | ||
87 | }, | ||
88 | { | ||
89 | .name = "cache", | ||
90 | .offset = MTDPART_OFS_APPEND, /* Offset = 0x1E000000*/ | ||
91 | .size = 256 * (64 * 2048), /* 32M, 0x2000000 */ | ||
92 | }, | ||
93 | }; | ||
94 | |||
95 | static struct usbhs_phy_data phy_data[] __initdata = { | ||
96 | { | ||
97 | .port = 2, | ||
98 | .reset_gpio = ZOOM3_EHCI_RESET_GPIO, | ||
99 | .vcc_gpio = -EINVAL, | ||
100 | }, | ||
101 | }; | ||
102 | |||
103 | static struct usbhs_omap_platform_data usbhs_bdata __initdata = { | ||
104 | .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, | ||
105 | }; | ||
106 | |||
107 | static void __init omap_zoom_init(void) | ||
108 | { | ||
109 | if (machine_is_omap_zoom2()) { | ||
110 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | ||
111 | } else if (machine_is_omap_zoom3()) { | ||
112 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); | ||
113 | omap_mux_init_gpio(ZOOM3_EHCI_RESET_GPIO, OMAP_PIN_OUTPUT); | ||
114 | |||
115 | usbhs_init_phys(phy_data, ARRAY_SIZE(phy_data)); | ||
116 | usbhs_init(&usbhs_bdata); | ||
117 | } | ||
118 | |||
119 | board_nand_init(zoom_nand_partitions, | ||
120 | ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS, | ||
121 | NAND_BUSWIDTH_16, nand_default_timings); | ||
122 | zoom_debugboard_init(); | ||
123 | zoom_peripherals_init(); | ||
124 | |||
125 | if (machine_is_omap_zoom2()) | ||
126 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
127 | mt46h32m32lf6_sdrc_params); | ||
128 | else if (machine_is_omap_zoom3()) | ||
129 | omap_sdrc_init(h8mbx00u0mer0em_sdrc_params, | ||
130 | h8mbx00u0mer0em_sdrc_params); | ||
131 | |||
132 | zoom_display_init(); | ||
133 | } | ||
134 | |||
135 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") | ||
136 | .atag_offset = 0x100, | ||
137 | .reserve = omap_reserve, | ||
138 | .map_io = omap3_map_io, | ||
139 | .init_early = omap3430_init_early, | ||
140 | .init_irq = omap3_init_irq, | ||
141 | .handle_irq = omap3_intc_handle_irq, | ||
142 | .init_machine = omap_zoom_init, | ||
143 | .init_late = omap3430_init_late, | ||
144 | .init_time = omap3_sync32k_timer_init, | ||
145 | .restart = omap3xxx_restart, | ||
146 | MACHINE_END | ||
147 | |||
148 | MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") | ||
149 | .atag_offset = 0x100, | ||
150 | .reserve = omap_reserve, | ||
151 | .map_io = omap3_map_io, | ||
152 | .init_early = omap3630_init_early, | ||
153 | .init_irq = omap3_init_irq, | ||
154 | .handle_irq = omap3_intc_handle_irq, | ||
155 | .init_machine = omap_zoom_init, | ||
156 | .init_late = omap3630_init_late, | ||
157 | .init_time = omap3_sync32k_timer_init, | ||
158 | .restart = omap3xxx_restart, | ||
159 | MACHINE_END | ||
diff --git a/arch/arm/mach-omap2/board-zoom.h b/arch/arm/mach-omap2/board-zoom.h deleted file mode 100644 index 2e9486940ead..000000000000 --- a/arch/arm/mach-omap2/board-zoom.h +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | /* | ||
2 | * Defines for zoom boards | ||
3 | */ | ||
4 | #include <video/omapdss.h> | ||
5 | |||
6 | #define ZOOM_NAND_CS 0 | ||
7 | |||
8 | extern int __init zoom_debugboard_init(void); | ||
9 | extern void __init zoom_peripherals_init(void); | ||
10 | extern void __init zoom_display_init(void); | ||
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 4a5684b96492..f7644febee81 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -98,6 +98,7 @@ void am35xx_init_early(void); | |||
98 | void ti81xx_init_early(void); | 98 | void ti81xx_init_early(void); |
99 | void am33xx_init_early(void); | 99 | void am33xx_init_early(void); |
100 | void am43xx_init_early(void); | 100 | void am43xx_init_early(void); |
101 | void am43xx_init_late(void); | ||
101 | void omap4430_init_early(void); | 102 | void omap4430_init_early(void); |
102 | void omap5_init_early(void); | 103 | void omap5_init_early(void); |
103 | void omap3_init_late(void); /* Do not use this one */ | 104 | void omap3_init_late(void); /* Do not use this one */ |
@@ -109,8 +110,11 @@ void omap35xx_init_late(void); | |||
109 | void omap3630_init_late(void); | 110 | void omap3630_init_late(void); |
110 | void am35xx_init_late(void); | 111 | void am35xx_init_late(void); |
111 | void ti81xx_init_late(void); | 112 | void ti81xx_init_late(void); |
113 | void am33xx_init_late(void); | ||
114 | void omap5_init_late(void); | ||
112 | int omap2_common_pm_late_init(void); | 115 | int omap2_common_pm_late_init(void); |
113 | void dra7xx_init_early(void); | 116 | void dra7xx_init_early(void); |
117 | void dra7xx_init_late(void); | ||
114 | 118 | ||
115 | #ifdef CONFIG_SOC_BUS | 119 | #ifdef CONFIG_SOC_BUS |
116 | void omap_soc_device_init(void); | 120 | void omap_soc_device_init(void); |
@@ -288,6 +292,9 @@ static inline void omap4_cpu_resume(void) | |||
288 | 292 | ||
289 | #endif | 293 | #endif |
290 | 294 | ||
295 | void pdata_quirks_init(struct of_device_id *); | ||
296 | void omap_pcs_legacy_init(int irq, void (*rearm)(void)); | ||
297 | |||
291 | struct omap_sdrc_params; | 298 | struct omap_sdrc_params; |
292 | extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, | 299 | extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, |
293 | struct omap_sdrc_params *sdrc_cs1); | 300 | struct omap_sdrc_params *sdrc_cs1); |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 89a8698cd6ed..0dd6398bade4 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -19,7 +19,6 @@ | |||
19 | #include <linux/of.h> | 19 | #include <linux/of.h> |
20 | #include <linux/pinctrl/machine.h> | 20 | #include <linux/pinctrl/machine.h> |
21 | #include <linux/platform_data/omap4-keypad.h> | 21 | #include <linux/platform_data/omap4-keypad.h> |
22 | #include <linux/wl12xx.h> | ||
23 | #include <linux/platform_data/mailbox-omap.h> | 22 | #include <linux/platform_data/mailbox-omap.h> |
24 | 23 | ||
25 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
@@ -476,40 +475,6 @@ int __init omap_init_vout(void) | |||
476 | int __init omap_init_vout(void) { return 0; } | 475 | int __init omap_init_vout(void) { return 0; } |
477 | #endif | 476 | #endif |
478 | 477 | ||
479 | #if IS_ENABLED(CONFIG_WL12XX) | ||
480 | |||
481 | static struct wl12xx_platform_data wl12xx __initdata; | ||
482 | |||
483 | void __init omap_init_wl12xx_of(void) | ||
484 | { | ||
485 | int ret; | ||
486 | |||
487 | if (!of_have_populated_dt()) | ||
488 | return; | ||
489 | |||
490 | if (of_machine_is_compatible("ti,omap4-sdp")) { | ||
491 | wl12xx.board_ref_clock = WL12XX_REFCLOCK_26; | ||
492 | wl12xx.board_tcxo_clock = WL12XX_TCXOCLOCK_26; | ||
493 | wl12xx.irq = gpio_to_irq(53); | ||
494 | } else if (of_machine_is_compatible("ti,omap4-panda")) { | ||
495 | wl12xx.board_ref_clock = WL12XX_REFCLOCK_38; | ||
496 | wl12xx.irq = gpio_to_irq(53); | ||
497 | } else { | ||
498 | return; | ||
499 | } | ||
500 | |||
501 | ret = wl12xx_set_platform_data(&wl12xx); | ||
502 | if (ret) { | ||
503 | pr_err("error setting wl12xx data: %d\n", ret); | ||
504 | return; | ||
505 | } | ||
506 | } | ||
507 | #else | ||
508 | static inline void omap_init_wl12xx_of(void) | ||
509 | { | ||
510 | } | ||
511 | #endif | ||
512 | |||
513 | /*-------------------------------------------------------------------------*/ | 478 | /*-------------------------------------------------------------------------*/ |
514 | 479 | ||
515 | static int __init omap2_init_devices(void) | 480 | static int __init omap2_init_devices(void) |
@@ -532,9 +497,6 @@ static int __init omap2_init_devices(void) | |||
532 | omap_init_sham(); | 497 | omap_init_sham(); |
533 | omap_init_aes(); | 498 | omap_init_aes(); |
534 | omap_init_rng(); | 499 | omap_init_rng(); |
535 | } else { | ||
536 | /* These can be removed when bindings are done */ | ||
537 | omap_init_wl12xx_of(); | ||
538 | } | 500 | } |
539 | omap_init_sti(); | 501 | omap_init_sti(); |
540 | 502 | ||
diff --git a/arch/arm/mach-omap2/dss-common.c b/arch/arm/mach-omap2/dss-common.c index bf89effa4c99..365bfd3d9c68 100644 --- a/arch/arm/mach-omap2/dss-common.c +++ b/arch/arm/mach-omap2/dss-common.c | |||
@@ -213,3 +213,47 @@ void __init omap_4430sdp_display_init_of(void) | |||
213 | platform_device_register(&sdp4430_tpd_device); | 213 | platform_device_register(&sdp4430_tpd_device); |
214 | platform_device_register(&sdp4430_hdmi_connector_device); | 214 | platform_device_register(&sdp4430_hdmi_connector_device); |
215 | } | 215 | } |
216 | |||
217 | |||
218 | /* OMAP3 IGEPv2 data */ | ||
219 | |||
220 | #define IGEP2_DVI_TFP410_POWER_DOWN_GPIO 170 | ||
221 | |||
222 | /* DVI Connector */ | ||
223 | static struct connector_dvi_platform_data omap3_igep2_dvi_connector_pdata = { | ||
224 | .name = "dvi", | ||
225 | .source = "tfp410.0", | ||
226 | .i2c_bus_num = 3, | ||
227 | }; | ||
228 | |||
229 | static struct platform_device omap3_igep2_dvi_connector_device = { | ||
230 | .name = "connector-dvi", | ||
231 | .id = 0, | ||
232 | .dev.platform_data = &omap3_igep2_dvi_connector_pdata, | ||
233 | }; | ||
234 | |||
235 | /* TFP410 DPI-to-DVI chip */ | ||
236 | static struct encoder_tfp410_platform_data omap3_igep2_tfp410_pdata = { | ||
237 | .name = "tfp410.0", | ||
238 | .source = "dpi.0", | ||
239 | .data_lines = 24, | ||
240 | .power_down_gpio = IGEP2_DVI_TFP410_POWER_DOWN_GPIO, | ||
241 | }; | ||
242 | |||
243 | static struct platform_device omap3_igep2_tfp410_device = { | ||
244 | .name = "tfp410", | ||
245 | .id = 0, | ||
246 | .dev.platform_data = &omap3_igep2_tfp410_pdata, | ||
247 | }; | ||
248 | |||
249 | static struct omap_dss_board_info igep2_dss_data = { | ||
250 | .default_display_name = "dvi", | ||
251 | }; | ||
252 | |||
253 | void __init omap3_igep2_display_init_of(void) | ||
254 | { | ||
255 | omap_display_init(&igep2_dss_data); | ||
256 | |||
257 | platform_device_register(&omap3_igep2_tfp410_device); | ||
258 | platform_device_register(&omap3_igep2_dvi_connector_device); | ||
259 | } | ||
diff --git a/arch/arm/mach-omap2/dss-common.h b/arch/arm/mach-omap2/dss-common.h index c28fe3c03588..a9becf0d5be8 100644 --- a/arch/arm/mach-omap2/dss-common.h +++ b/arch/arm/mach-omap2/dss-common.h | |||
@@ -8,5 +8,6 @@ | |||
8 | 8 | ||
9 | void __init omap4_panda_display_init_of(void); | 9 | void __init omap4_panda_display_init_of(void); |
10 | void __init omap_4430sdp_display_init_of(void); | 10 | void __init omap_4430sdp_display_init_of(void); |
11 | void __init omap3_igep2_display_init_of(void); | ||
11 | 12 | ||
12 | #endif | 13 | #endif |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 579697adaae7..51525faa0aec 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -1521,6 +1521,42 @@ err: | |||
1521 | return ret; | 1521 | return ret; |
1522 | } | 1522 | } |
1523 | 1523 | ||
1524 | /* | ||
1525 | * REVISIT: Add timing support from slls644g.pdf | ||
1526 | */ | ||
1527 | static int gpmc_probe_8250(struct platform_device *pdev, | ||
1528 | struct device_node *child) | ||
1529 | { | ||
1530 | struct resource res; | ||
1531 | unsigned long base; | ||
1532 | int ret, cs; | ||
1533 | |||
1534 | if (of_property_read_u32(child, "reg", &cs) < 0) { | ||
1535 | dev_err(&pdev->dev, "%s has no 'reg' property\n", | ||
1536 | child->full_name); | ||
1537 | return -ENODEV; | ||
1538 | } | ||
1539 | |||
1540 | if (of_address_to_resource(child, 0, &res) < 0) { | ||
1541 | dev_err(&pdev->dev, "%s has malformed 'reg' property\n", | ||
1542 | child->full_name); | ||
1543 | return -ENODEV; | ||
1544 | } | ||
1545 | |||
1546 | ret = gpmc_cs_request(cs, resource_size(&res), &base); | ||
1547 | if (ret < 0) { | ||
1548 | dev_err(&pdev->dev, "cannot request GPMC CS %d\n", cs); | ||
1549 | return ret; | ||
1550 | } | ||
1551 | |||
1552 | if (of_platform_device_create(child, NULL, &pdev->dev)) | ||
1553 | return 0; | ||
1554 | |||
1555 | dev_err(&pdev->dev, "failed to create gpmc child %s\n", child->name); | ||
1556 | |||
1557 | return -ENODEV; | ||
1558 | } | ||
1559 | |||
1524 | static int gpmc_probe_dt(struct platform_device *pdev) | 1560 | static int gpmc_probe_dt(struct platform_device *pdev) |
1525 | { | 1561 | { |
1526 | int ret; | 1562 | int ret; |
@@ -1564,6 +1600,8 @@ static int gpmc_probe_dt(struct platform_device *pdev) | |||
1564 | else if (of_node_cmp(child->name, "ethernet") == 0 || | 1600 | else if (of_node_cmp(child->name, "ethernet") == 0 || |
1565 | of_node_cmp(child->name, "nor") == 0) | 1601 | of_node_cmp(child->name, "nor") == 0) |
1566 | ret = gpmc_probe_generic_child(pdev, child); | 1602 | ret = gpmc_probe_generic_child(pdev, child); |
1603 | else if (of_node_cmp(child->name, "8250") == 0) | ||
1604 | ret = gpmc_probe_8250(pdev, child); | ||
1567 | 1605 | ||
1568 | if (WARN(ret < 0, "%s: probing gpmc child %s failed\n", | 1606 | if (WARN(ret < 0, "%s: probing gpmc child %s failed\n", |
1569 | __func__, child->full_name)) | 1607 | __func__, child->full_name)) |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index c90f64765a3d..cd22262a2cc0 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -583,6 +583,11 @@ void __init am33xx_init_early(void) | |||
583 | omap_hwmod_init_postsetup(); | 583 | omap_hwmod_init_postsetup(); |
584 | omap_clk_init = am33xx_clk_init; | 584 | omap_clk_init = am33xx_clk_init; |
585 | } | 585 | } |
586 | |||
587 | void __init am33xx_init_late(void) | ||
588 | { | ||
589 | omap_common_late_init(); | ||
590 | } | ||
586 | #endif | 591 | #endif |
587 | 592 | ||
588 | #ifdef CONFIG_SOC_AM43XX | 593 | #ifdef CONFIG_SOC_AM43XX |
@@ -602,6 +607,11 @@ void __init am43xx_init_early(void) | |||
602 | am43xx_hwmod_init(); | 607 | am43xx_hwmod_init(); |
603 | omap_hwmod_init_postsetup(); | 608 | omap_hwmod_init_postsetup(); |
604 | } | 609 | } |
610 | |||
611 | void __init am43xx_init_late(void) | ||
612 | { | ||
613 | omap_common_late_init(); | ||
614 | } | ||
605 | #endif | 615 | #endif |
606 | 616 | ||
607 | #ifdef CONFIG_ARCH_OMAP4 | 617 | #ifdef CONFIG_ARCH_OMAP4 |
@@ -657,6 +667,11 @@ void __init omap5_init_early(void) | |||
657 | omap54xx_hwmod_init(); | 667 | omap54xx_hwmod_init(); |
658 | omap_hwmod_init_postsetup(); | 668 | omap_hwmod_init_postsetup(); |
659 | } | 669 | } |
670 | |||
671 | void __init omap5_init_late(void) | ||
672 | { | ||
673 | omap_common_late_init(); | ||
674 | } | ||
660 | #endif | 675 | #endif |
661 | 676 | ||
662 | #ifdef CONFIG_SOC_DRA7XX | 677 | #ifdef CONFIG_SOC_DRA7XX |
@@ -677,6 +692,11 @@ void __init dra7xx_init_early(void) | |||
677 | dra7xx_hwmod_init(); | 692 | dra7xx_hwmod_init(); |
678 | omap_hwmod_init_postsetup(); | 693 | omap_hwmod_init_postsetup(); |
679 | } | 694 | } |
695 | |||
696 | void __init dra7xx_init_late(void) | ||
697 | { | ||
698 | omap_common_late_init(); | ||
699 | } | ||
680 | #endif | 700 | #endif |
681 | 701 | ||
682 | 702 | ||
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index f82cf878d6af..48094b58c88f 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -811,6 +811,12 @@ int __init omap_mux_late_init(void) | |||
811 | } | 811 | } |
812 | } | 812 | } |
813 | 813 | ||
814 | omap_mux_dbg_init(); | ||
815 | |||
816 | /* see pinctrl-single-omap for the wake-up interrupt handling */ | ||
817 | if (of_have_populated_dt()) | ||
818 | return 0; | ||
819 | |||
814 | ret = request_irq(omap_prcm_event_to_irq("io"), | 820 | ret = request_irq(omap_prcm_event_to_irq("io"), |
815 | omap_hwmod_mux_handle_irq, IRQF_SHARED | IRQF_NO_SUSPEND, | 821 | omap_hwmod_mux_handle_irq, IRQF_SHARED | IRQF_NO_SUSPEND, |
816 | "hwmod_io", omap_mux_late_init); | 822 | "hwmod_io", omap_mux_late_init); |
@@ -818,8 +824,6 @@ int __init omap_mux_late_init(void) | |||
818 | if (ret) | 824 | if (ret) |
819 | pr_warning("mux: Failed to setup hwmod io irq %d\n", ret); | 825 | pr_warning("mux: Failed to setup hwmod io irq %d\n", ret); |
820 | 826 | ||
821 | omap_mux_dbg_init(); | ||
822 | |||
823 | return 0; | 827 | return 0; |
824 | } | 828 | } |
825 | 829 | ||
diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c index bd41d59a7cab..82fd8c72f750 100644 --- a/arch/arm/mach-omap2/opp.c +++ b/arch/arm/mach-omap2/opp.c | |||
@@ -17,6 +17,7 @@ | |||
17 | * GNU General Public License for more details. | 17 | * GNU General Public License for more details. |
18 | */ | 18 | */ |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/of.h> | ||
20 | #include <linux/opp.h> | 21 | #include <linux/opp.h> |
21 | #include <linux/cpu.h> | 22 | #include <linux/cpu.h> |
22 | 23 | ||
@@ -40,6 +41,9 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, | |||
40 | { | 41 | { |
41 | int i, r; | 42 | int i, r; |
42 | 43 | ||
44 | if (of_have_populated_dt()) | ||
45 | return -EINVAL; | ||
46 | |||
43 | if (!opp_def || !opp_def_size) { | 47 | if (!opp_def || !opp_def_size) { |
44 | pr_err("%s: invalid params!\n", __func__); | 48 | pr_err("%s: invalid params!\n", __func__); |
45 | return -EINVAL; | 49 | return -EINVAL; |
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c new file mode 100644 index 000000000000..10c71450cf63 --- /dev/null +++ b/arch/arm/mach-omap2/pdata-quirks.c | |||
@@ -0,0 +1,174 @@ | |||
1 | /* | ||
2 | * Legacy platform_data quirks | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments | ||
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 | #include <linux/clk.h> | ||
11 | #include <linux/gpio.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/of_platform.h> | ||
15 | #include <linux/wl12xx.h> | ||
16 | |||
17 | #include <linux/platform_data/pinctrl-single.h> | ||
18 | |||
19 | #include "common.h" | ||
20 | #include "common-board-devices.h" | ||
21 | #include "dss-common.h" | ||
22 | #include "control.h" | ||
23 | |||
24 | struct pdata_init { | ||
25 | const char *compatible; | ||
26 | void (*fn)(void); | ||
27 | }; | ||
28 | |||
29 | /* | ||
30 | * Create alias for USB host PHY clock. | ||
31 | * Remove this when clock phandle can be provided via DT | ||
32 | */ | ||
33 | static void __init __used legacy_init_ehci_clk(char *clkname) | ||
34 | { | ||
35 | int ret; | ||
36 | |||
37 | ret = clk_add_alias("main_clk", NULL, clkname, NULL); | ||
38 | if (ret) | ||
39 | pr_err("%s:Failed to add main_clk alias to %s :%d\n", | ||
40 | __func__, clkname, ret); | ||
41 | } | ||
42 | |||
43 | #if IS_ENABLED(CONFIG_WL12XX) | ||
44 | |||
45 | static struct wl12xx_platform_data wl12xx __initdata; | ||
46 | |||
47 | static void __init __used legacy_init_wl12xx(unsigned ref_clock, | ||
48 | unsigned tcxo_clock, | ||
49 | int gpio) | ||
50 | { | ||
51 | int res; | ||
52 | |||
53 | wl12xx.board_ref_clock = ref_clock; | ||
54 | wl12xx.board_tcxo_clock = tcxo_clock; | ||
55 | wl12xx.irq = gpio_to_irq(gpio); | ||
56 | |||
57 | res = wl12xx_set_platform_data(&wl12xx); | ||
58 | if (res) { | ||
59 | pr_err("error setting wl12xx data: %d\n", res); | ||
60 | return; | ||
61 | } | ||
62 | } | ||
63 | #else | ||
64 | static inline void legacy_init_wl12xx(unsigned ref_clock, | ||
65 | unsigned tcxo_clock, | ||
66 | int gpio) | ||
67 | { | ||
68 | } | ||
69 | #endif | ||
70 | |||
71 | #ifdef CONFIG_ARCH_OMAP3 | ||
72 | static void __init hsmmc2_internal_input_clk(void) | ||
73 | { | ||
74 | u32 reg; | ||
75 | |||
76 | reg = omap_ctrl_readl(OMAP343X_CONTROL_DEVCONF1); | ||
77 | reg |= OMAP2_MMCSDIO2ADPCLKISEL; | ||
78 | omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1); | ||
79 | } | ||
80 | |||
81 | static void __init omap3_igep0020_legacy_init(void) | ||
82 | { | ||
83 | omap3_igep2_display_init_of(); | ||
84 | } | ||
85 | |||
86 | static void __init omap3_evm_legacy_init(void) | ||
87 | { | ||
88 | legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 149); | ||
89 | } | ||
90 | |||
91 | static void __init omap3_zoom_legacy_init(void) | ||
92 | { | ||
93 | legacy_init_wl12xx(WL12XX_REFCLOCK_26, 0, 162); | ||
94 | } | ||
95 | #endif /* CONFIG_ARCH_OMAP3 */ | ||
96 | |||
97 | #ifdef CONFIG_ARCH_OMAP4 | ||
98 | static void __init omap4_sdp_legacy_init(void) | ||
99 | { | ||
100 | omap_4430sdp_display_init_of(); | ||
101 | legacy_init_wl12xx(WL12XX_REFCLOCK_26, | ||
102 | WL12XX_TCXOCLOCK_26, 53); | ||
103 | } | ||
104 | |||
105 | static void __init omap4_panda_legacy_init(void) | ||
106 | { | ||
107 | omap4_panda_display_init_of(); | ||
108 | legacy_init_ehci_clk("auxclk3_ck"); | ||
109 | legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53); | ||
110 | } | ||
111 | #endif | ||
112 | |||
113 | #ifdef CONFIG_SOC_OMAP5 | ||
114 | static void __init omap5_uevm_legacy_init(void) | ||
115 | { | ||
116 | legacy_init_ehci_clk("auxclk1_ck"); | ||
117 | } | ||
118 | #endif | ||
119 | |||
120 | static struct pcs_pdata pcs_pdata; | ||
121 | |||
122 | void omap_pcs_legacy_init(int irq, void (*rearm)(void)) | ||
123 | { | ||
124 | pcs_pdata.irq = irq; | ||
125 | pcs_pdata.rearm = rearm; | ||
126 | } | ||
127 | |||
128 | struct of_dev_auxdata omap_auxdata_lookup[] __initdata = { | ||
129 | #ifdef CONFIG_ARCH_OMAP3 | ||
130 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata), | ||
131 | OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata), | ||
132 | #endif | ||
133 | #ifdef CONFIG_ARCH_OMAP4 | ||
134 | OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata), | ||
135 | OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata), | ||
136 | #endif | ||
137 | { /* sentinel */ }, | ||
138 | }; | ||
139 | |||
140 | static struct pdata_init pdata_quirks[] __initdata = { | ||
141 | #ifdef CONFIG_ARCH_OMAP3 | ||
142 | { "nokia,omap3-n9", hsmmc2_internal_input_clk, }, | ||
143 | { "nokia,omap3-n950", hsmmc2_internal_input_clk, }, | ||
144 | { "isee,omap3-igep0020", omap3_igep0020_legacy_init, }, | ||
145 | { "ti,omap3-evm-37xx", omap3_evm_legacy_init, }, | ||
146 | { "ti,omap3-zoom3", omap3_zoom_legacy_init, }, | ||
147 | #endif | ||
148 | #ifdef CONFIG_ARCH_OMAP4 | ||
149 | { "ti,omap4-sdp", omap4_sdp_legacy_init, }, | ||
150 | { "ti,omap4-panda", omap4_panda_legacy_init, }, | ||
151 | #endif | ||
152 | #ifdef CONFIG_SOC_OMAP5 | ||
153 | { "ti,omap5-uevm", omap5_uevm_legacy_init, }, | ||
154 | #endif | ||
155 | { /* sentinel */ }, | ||
156 | }; | ||
157 | |||
158 | void __init pdata_quirks_init(struct of_device_id *omap_dt_match_table) | ||
159 | { | ||
160 | struct pdata_init *quirks = pdata_quirks; | ||
161 | |||
162 | omap_sdrc_init(NULL, NULL); | ||
163 | of_platform_populate(NULL, omap_dt_match_table, | ||
164 | omap_auxdata_lookup, NULL); | ||
165 | |||
166 | while (quirks->compatible) { | ||
167 | if (of_machine_is_compatible(quirks->compatible)) { | ||
168 | if (quirks->fn) | ||
169 | quirks->fn(); | ||
170 | break; | ||
171 | } | ||
172 | quirks++; | ||
173 | } | ||
174 | } | ||
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index e742118fcfd2..360b2daf54dd 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c | |||
@@ -266,7 +266,12 @@ static void __init omap4_init_voltages(void) | |||
266 | 266 | ||
267 | static inline void omap_init_cpufreq(void) | 267 | static inline void omap_init_cpufreq(void) |
268 | { | 268 | { |
269 | struct platform_device_info devinfo = { .name = "omap-cpufreq", }; | 269 | struct platform_device_info devinfo = { }; |
270 | |||
271 | if (!of_have_populated_dt()) | ||
272 | devinfo.name = "omap-cpufreq"; | ||
273 | else | ||
274 | devinfo.name = "cpufreq-cpu0"; | ||
270 | platform_device_register_full(&devinfo); | 275 | platform_device_register_full(&devinfo); |
271 | } | 276 | } |
272 | 277 | ||
@@ -300,10 +305,11 @@ int __init omap2_common_pm_late_init(void) | |||
300 | /* Smartreflex device init */ | 305 | /* Smartreflex device init */ |
301 | omap_devinit_smartreflex(); | 306 | omap_devinit_smartreflex(); |
302 | 307 | ||
303 | /* cpufreq dummy device instantiation */ | ||
304 | omap_init_cpufreq(); | ||
305 | } | 308 | } |
306 | 309 | ||
310 | /* cpufreq dummy device instantiation */ | ||
311 | omap_init_cpufreq(); | ||
312 | |||
307 | #ifdef CONFIG_SUSPEND | 313 | #ifdef CONFIG_SUSPEND |
308 | suspend_set_ops(&omap_pm_ops); | 314 | suspend_set_ops(&omap_pm_ops); |
309 | #endif | 315 | #endif |
diff --git a/arch/arm/mach-omap2/prm3xxx.h b/arch/arm/mach-omap2/prm3xxx.h index 277f71794e61..f8eb83323b1a 100644 --- a/arch/arm/mach-omap2/prm3xxx.h +++ b/arch/arm/mach-omap2/prm3xxx.h | |||
@@ -144,7 +144,13 @@ extern u32 omap3_prm_vcvp_read(u8 offset); | |||
144 | extern void omap3_prm_vcvp_write(u32 val, u8 offset); | 144 | extern void omap3_prm_vcvp_write(u32 val, u8 offset); |
145 | extern u32 omap3_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset); | 145 | extern u32 omap3_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset); |
146 | 146 | ||
147 | extern void omap3xxx_prm_reconfigure_io_chain(void); | 147 | #ifdef CONFIG_ARCH_OMAP3 |
148 | void omap3xxx_prm_reconfigure_io_chain(void); | ||
149 | #else | ||
150 | static inline void omap3xxx_prm_reconfigure_io_chain(void) | ||
151 | { | ||
152 | } | ||
153 | #endif | ||
148 | 154 | ||
149 | /* PRM interrupt-related functions */ | 155 | /* PRM interrupt-related functions */ |
150 | extern void omap3xxx_prm_read_pending_irqs(unsigned long *events); | 156 | extern void omap3xxx_prm_read_pending_irqs(unsigned long *events); |
diff --git a/arch/arm/mach-omap2/prm44xx_54xx.h b/arch/arm/mach-omap2/prm44xx_54xx.h index 7cd22abb8f15..a085d9cc1f5d 100644 --- a/arch/arm/mach-omap2/prm44xx_54xx.h +++ b/arch/arm/mach-omap2/prm44xx_54xx.h | |||
@@ -42,7 +42,13 @@ extern u32 omap4_prm_vcvp_read(u8 offset); | |||
42 | extern void omap4_prm_vcvp_write(u32 val, u8 offset); | 42 | extern void omap4_prm_vcvp_write(u32 val, u8 offset); |
43 | extern u32 omap4_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset); | 43 | extern u32 omap4_prm_vcvp_rmw(u32 mask, u32 bits, u8 offset); |
44 | 44 | ||
45 | extern void omap44xx_prm_reconfigure_io_chain(void); | 45 | #if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) |
46 | void omap44xx_prm_reconfigure_io_chain(void); | ||
47 | #else | ||
48 | static inline void omap44xx_prm_reconfigure_io_chain(void) | ||
49 | { | ||
50 | } | ||
51 | #endif | ||
46 | 52 | ||
47 | /* PRM interrupt-related functions */ | 53 | /* PRM interrupt-related functions */ |
48 | extern void omap44xx_prm_read_pending_irqs(unsigned long *events); | 54 | extern void omap44xx_prm_read_pending_irqs(unsigned long *events); |
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c index 228b850e632f..a2e1174ad1b6 100644 --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | 26 | ||
27 | #include "soc.h" | ||
27 | #include "prm2xxx_3xxx.h" | 28 | #include "prm2xxx_3xxx.h" |
28 | #include "prm2xxx.h" | 29 | #include "prm2xxx.h" |
29 | #include "prm3xxx.h" | 30 | #include "prm3xxx.h" |
@@ -322,6 +323,16 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup) | |||
322 | prcm_irq_chips[i] = gc; | 323 | prcm_irq_chips[i] = gc; |
323 | } | 324 | } |
324 | 325 | ||
326 | if (of_have_populated_dt()) { | ||
327 | int irq = omap_prcm_event_to_irq("io"); | ||
328 | if (cpu_is_omap34xx()) | ||
329 | omap_pcs_legacy_init(irq, | ||
330 | omap3xxx_prm_reconfigure_io_chain); | ||
331 | else | ||
332 | omap_pcs_legacy_init(irq, | ||
333 | omap44xx_prm_reconfigure_io_chain); | ||
334 | } | ||
335 | |||
325 | return 0; | 336 | return 0; |
326 | 337 | ||
327 | err: | 338 | err: |
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index a2d5bb33647d..2cb8dc55b50e 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig | |||
@@ -298,4 +298,20 @@ config MACH_WLF_CRAGG_6410 | |||
298 | help | 298 | help |
299 | Machine support for the Wolfson Cragganmore S3C6410 variant. | 299 | Machine support for the Wolfson Cragganmore S3C6410 variant. |
300 | 300 | ||
301 | config MACH_S3C64XX_DT | ||
302 | bool "Samsung S3C6400/S3C6410 machine using Device Tree" | ||
303 | select CLKSRC_OF | ||
304 | select CPU_S3C6400 | ||
305 | select CPU_S3C6410 | ||
306 | select PINCTRL | ||
307 | select PINCTRL_S3C64XX | ||
308 | select USE_OF | ||
309 | help | ||
310 | Machine support for Samsung S3C6400/S3C6410 machines with Device Tree | ||
311 | enabled. | ||
312 | Select this if a fdt blob is available for your S3C64XX SoC based | ||
313 | board. | ||
314 | Note: This is under development and not all peripherals can be | ||
315 | supported with this machine file. | ||
316 | |||
301 | endif | 317 | endif |
diff --git a/arch/arm/mach-s3c64xx/Makefile b/arch/arm/mach-s3c64xx/Makefile index 645a8fe55f8d..6faedcffce04 100644 --- a/arch/arm/mach-s3c64xx/Makefile +++ b/arch/arm/mach-s3c64xx/Makefile | |||
@@ -57,3 +57,4 @@ obj-$(CONFIG_MACH_SMARTQ7) += mach-smartq7.o | |||
57 | obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o | 57 | obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o |
58 | obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o | 58 | obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o |
59 | obj-$(CONFIG_MACH_WLF_CRAGG_6410) += mach-crag6410.o mach-crag6410-module.o | 59 | obj-$(CONFIG_MACH_WLF_CRAGG_6410) += mach-crag6410.o mach-crag6410-module.o |
60 | obj-$(CONFIG_MACH_S3C64XX_DT) += mach-s3c64xx-dt.o | ||
diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c index 7d3cb58f1856..7a3ce4c39e5f 100644 --- a/arch/arm/mach-s3c64xx/common.c +++ b/arch/arm/mach-s3c64xx/common.c | |||
@@ -14,6 +14,10 @@ | |||
14 | * published by the Free Software Foundation. | 14 | * published by the Free Software Foundation. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | /* | ||
18 | * NOTE: Code in this file is not used when booting with Device Tree support. | ||
19 | */ | ||
20 | |||
17 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
18 | #include <linux/init.h> | 22 | #include <linux/init.h> |
19 | #include <linux/module.h> | 23 | #include <linux/module.h> |
@@ -203,6 +207,10 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) | |||
203 | 207 | ||
204 | static __init int s3c64xx_dev_init(void) | 208 | static __init int s3c64xx_dev_init(void) |
205 | { | 209 | { |
210 | /* Not applicable when using DT. */ | ||
211 | if (of_have_populated_dt()) | ||
212 | return 0; | ||
213 | |||
206 | subsys_system_register(&s3c64xx_subsys, NULL); | 214 | subsys_system_register(&s3c64xx_subsys, NULL); |
207 | return device_register(&s3c64xx_dev); | 215 | return device_register(&s3c64xx_dev); |
208 | } | 216 | } |
@@ -404,6 +412,10 @@ static int __init s3c64xx_init_irq_eint(void) | |||
404 | { | 412 | { |
405 | int irq; | 413 | int irq; |
406 | 414 | ||
415 | /* On DT-enabled systems EINTs are handled by pinctrl-s3c64xx driver. */ | ||
416 | if (of_have_populated_dt()) | ||
417 | return -ENODEV; | ||
418 | |||
407 | for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) { | 419 | for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) { |
408 | irq_set_chip_and_handler(irq, &s3c_irq_eint, handle_level_irq); | 420 | irq_set_chip_and_handler(irq, &s3c_irq_eint, handle_level_irq); |
409 | irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq)); | 421 | irq_set_chip_data(irq, (void *)eint_irq_to_bit(irq)); |
diff --git a/arch/arm/mach-s3c64xx/dma.c b/arch/arm/mach-s3c64xx/dma.c index c511dfaae148..7e22c2113816 100644 --- a/arch/arm/mach-s3c64xx/dma.c +++ b/arch/arm/mach-s3c64xx/dma.c | |||
@@ -12,6 +12,10 @@ | |||
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | /* | ||
16 | * NOTE: Code in this file is not used when booting with Device Tree support. | ||
17 | */ | ||
18 | |||
15 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
16 | #include <linux/module.h> | 20 | #include <linux/module.h> |
17 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
@@ -24,6 +28,7 @@ | |||
24 | #include <linux/err.h> | 28 | #include <linux/err.h> |
25 | #include <linux/io.h> | 29 | #include <linux/io.h> |
26 | #include <linux/amba/pl080.h> | 30 | #include <linux/amba/pl080.h> |
31 | #include <linux/of.h> | ||
27 | 32 | ||
28 | #include <mach/dma.h> | 33 | #include <mach/dma.h> |
29 | #include <mach/map.h> | 34 | #include <mach/map.h> |
@@ -726,6 +731,10 @@ static int __init s3c64xx_dma_init(void) | |||
726 | { | 731 | { |
727 | int ret; | 732 | int ret; |
728 | 733 | ||
734 | /* This driver is not supported when booting with device tree. */ | ||
735 | if (of_have_populated_dt()) | ||
736 | return -ENODEV; | ||
737 | |||
729 | printk(KERN_INFO "%s: Registering DMA channels\n", __func__); | 738 | printk(KERN_INFO "%s: Registering DMA channels\n", __func__); |
730 | 739 | ||
731 | dma_pool = dma_pool_create("DMA-LLI", NULL, sizeof(struct pl080s_lli), 16, 0); | 740 | dma_pool = dma_pool_create("DMA-LLI", NULL, sizeof(struct pl080s_lli), 16, 0); |
diff --git a/arch/arm/mach-s3c64xx/irq-pm.c b/arch/arm/mach-s3c64xx/irq-pm.c index c3da1b68d03e..1649c0d1c1b8 100644 --- a/arch/arm/mach-s3c64xx/irq-pm.c +++ b/arch/arm/mach-s3c64xx/irq-pm.c | |||
@@ -12,12 +12,17 @@ | |||
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | /* | ||
16 | * NOTE: Code in this file is not used when booting with Device Tree support. | ||
17 | */ | ||
18 | |||
15 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
16 | #include <linux/syscore_ops.h> | 20 | #include <linux/syscore_ops.h> |
17 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
18 | #include <linux/serial_core.h> | 22 | #include <linux/serial_core.h> |
19 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
20 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/of.h> | ||
21 | 26 | ||
22 | #include <mach/map.h> | 27 | #include <mach/map.h> |
23 | 28 | ||
@@ -101,6 +106,10 @@ static struct syscore_ops s3c64xx_irq_syscore_ops = { | |||
101 | 106 | ||
102 | static __init int s3c64xx_syscore_init(void) | 107 | static __init int s3c64xx_syscore_init(void) |
103 | { | 108 | { |
109 | /* Appropriate drivers (pinctrl, uart) handle this when using DT. */ | ||
110 | if (of_have_populated_dt()) | ||
111 | return 0; | ||
112 | |||
104 | register_syscore_ops(&s3c64xx_irq_syscore_ops); | 113 | register_syscore_ops(&s3c64xx_irq_syscore_ops); |
105 | 114 | ||
106 | return 0; | 115 | return 0; |
diff --git a/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c new file mode 100644 index 000000000000..7eb9a10fc1af --- /dev/null +++ b/arch/arm/mach-s3c64xx/mach-s3c64xx-dt.c | |||
@@ -0,0 +1,85 @@ | |||
1 | /* | ||
2 | * Samsung's S3C64XX flattened device tree enabled machine | ||
3 | * | ||
4 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | ||
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 <linux/clk-provider.h> | ||
12 | #include <linux/irqchip.h> | ||
13 | #include <linux/of_platform.h> | ||
14 | |||
15 | #include <asm/mach/arch.h> | ||
16 | #include <asm/mach/map.h> | ||
17 | #include <asm/system_misc.h> | ||
18 | |||
19 | #include <plat/cpu.h> | ||
20 | #include <plat/watchdog-reset.h> | ||
21 | |||
22 | #include <mach/map.h> | ||
23 | |||
24 | #include "common.h" | ||
25 | |||
26 | /* | ||
27 | * IO mapping for shared system controller IP. | ||
28 | * | ||
29 | * FIXME: Make remaining drivers use dynamic mapping. | ||
30 | */ | ||
31 | static struct map_desc s3c64xx_dt_iodesc[] __initdata = { | ||
32 | { | ||
33 | .virtual = (unsigned long)S3C_VA_SYS, | ||
34 | .pfn = __phys_to_pfn(S3C64XX_PA_SYSCON), | ||
35 | .length = SZ_4K, | ||
36 | .type = MT_DEVICE, | ||
37 | }, | ||
38 | }; | ||
39 | |||
40 | static void __init s3c64xx_dt_map_io(void) | ||
41 | { | ||
42 | debug_ll_io_init(); | ||
43 | iotable_init(s3c64xx_dt_iodesc, ARRAY_SIZE(s3c64xx_dt_iodesc)); | ||
44 | |||
45 | s3c64xx_init_cpu(); | ||
46 | |||
47 | if (!soc_is_s3c64xx()) | ||
48 | panic("SoC is not S3C64xx!"); | ||
49 | } | ||
50 | |||
51 | static void __init s3c64xx_dt_init_irq(void) | ||
52 | { | ||
53 | of_clk_init(NULL); | ||
54 | samsung_wdt_reset_of_init(); | ||
55 | irqchip_init(); | ||
56 | }; | ||
57 | |||
58 | static void __init s3c64xx_dt_init_machine(void) | ||
59 | { | ||
60 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | ||
61 | } | ||
62 | |||
63 | static void s3c64xx_dt_restart(enum reboot_mode mode, const char *cmd) | ||
64 | { | ||
65 | if (mode != REBOOT_SOFT) | ||
66 | samsung_wdt_reset(); | ||
67 | |||
68 | /* if all else fails, or mode was for soft, jump to 0 */ | ||
69 | soft_restart(0); | ||
70 | } | ||
71 | |||
72 | static char const *s3c64xx_dt_compat[] __initdata = { | ||
73 | "samsung,s3c6400", | ||
74 | "samsung,s3c6410", | ||
75 | NULL | ||
76 | }; | ||
77 | |||
78 | DT_MACHINE_START(S3C6400_DT, "Samsung S3C64xx (Flattened Device Tree)") | ||
79 | /* Maintainer: Tomasz Figa <tomasz.figa@gmail.com> */ | ||
80 | .dt_compat = s3c64xx_dt_compat, | ||
81 | .map_io = s3c64xx_dt_map_io, | ||
82 | .init_irq = s3c64xx_dt_init_irq, | ||
83 | .init_machine = s3c64xx_dt_init_machine, | ||
84 | .restart = s3c64xx_dt_restart, | ||
85 | MACHINE_END | ||
diff --git a/arch/arm/mach-s3c64xx/s3c6400.c b/arch/arm/mach-s3c64xx/s3c6400.c index 331fe8e58145..3db0c98222f7 100644 --- a/arch/arm/mach-s3c64xx/s3c6400.c +++ b/arch/arm/mach-s3c64xx/s3c6400.c | |||
@@ -9,6 +9,10 @@ | |||
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | /* | ||
13 | * NOTE: Code in this file is not used when booting with Device Tree support. | ||
14 | */ | ||
15 | |||
12 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
13 | #include <linux/types.h> | 17 | #include <linux/types.h> |
14 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
@@ -20,6 +24,7 @@ | |||
20 | #include <linux/device.h> | 24 | #include <linux/device.h> |
21 | #include <linux/serial_core.h> | 25 | #include <linux/serial_core.h> |
22 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
27 | #include <linux/of.h> | ||
23 | 28 | ||
24 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 30 | #include <asm/mach/map.h> |
@@ -76,6 +81,10 @@ static struct device s3c6400_dev = { | |||
76 | 81 | ||
77 | static int __init s3c6400_core_init(void) | 82 | static int __init s3c6400_core_init(void) |
78 | { | 83 | { |
84 | /* Not applicable when using DT. */ | ||
85 | if (of_have_populated_dt()) | ||
86 | return 0; | ||
87 | |||
79 | return subsys_system_register(&s3c6400_subsys, NULL); | 88 | return subsys_system_register(&s3c6400_subsys, NULL); |
80 | } | 89 | } |
81 | 90 | ||
diff --git a/arch/arm/mach-s3c64xx/s3c6410.c b/arch/arm/mach-s3c64xx/s3c6410.c index 7e6fa125584a..72b2278953a8 100644 --- a/arch/arm/mach-s3c64xx/s3c6410.c +++ b/arch/arm/mach-s3c64xx/s3c6410.c | |||
@@ -10,6 +10,10 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | /* | ||
14 | * NOTE: Code in this file is not used when booting with Device Tree support. | ||
15 | */ | ||
16 | |||
13 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
14 | #include <linux/types.h> | 18 | #include <linux/types.h> |
15 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
@@ -21,6 +25,7 @@ | |||
21 | #include <linux/device.h> | 25 | #include <linux/device.h> |
22 | #include <linux/serial_core.h> | 26 | #include <linux/serial_core.h> |
23 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
28 | #include <linux/of.h> | ||
24 | 29 | ||
25 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
@@ -79,6 +84,10 @@ static struct device s3c6410_dev = { | |||
79 | 84 | ||
80 | static int __init s3c6410_core_init(void) | 85 | static int __init s3c6410_core_init(void) |
81 | { | 86 | { |
87 | /* Not applicable when using DT. */ | ||
88 | if (of_have_populated_dt()) | ||
89 | return 0; | ||
90 | |||
82 | return subsys_system_register(&s3c6410_subsys, NULL); | 91 | return subsys_system_register(&s3c6410_subsys, NULL); |
83 | } | 92 | } |
84 | 93 | ||
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index fe1f3e26b88b..616b96e86ad4 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile | |||
@@ -2,14 +2,11 @@ | |||
2 | # Makefile for the linux kernel, U8500 machine. | 2 | # Makefile for the linux kernel, U8500 machine. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := cpu.o devices.o devices-common.o \ | 5 | obj-y := cpu.o devices.o id.o timer.o pm.o |
6 | id.o usb.o timer.o pm.o | ||
7 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | 6 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o |
8 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o | 7 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o |
9 | obj-$(CONFIG_MACH_MOP500) += board-mop500.o board-mop500-sdi.o \ | 8 | obj-$(CONFIG_MACH_MOP500) += board-mop500.o board-mop500-sdi.o \ |
10 | board-mop500-regulators.o \ | 9 | board-mop500-regulators.o \ |
11 | board-mop500-uib.o board-mop500-stuib.o \ | ||
12 | board-mop500-u8500uib.o \ | ||
13 | board-mop500-pins.o \ | 10 | board-mop500-pins.o \ |
14 | board-mop500-audio.o | 11 | board-mop500-audio.o |
15 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o | 12 | obj-$(CONFIG_SMP) += platsmp.o headsmp.o |
diff --git a/arch/arm/mach-ux500/board-mop500-audio.c b/arch/arm/mach-ux500/board-mop500-audio.c index ec0807247e60..154e15f59702 100644 --- a/arch/arm/mach-ux500/board-mop500-audio.c +++ b/arch/arm/mach-ux500/board-mop500-audio.c | |||
@@ -68,40 +68,6 @@ static struct stedma40_chan_cfg msp2_dma_tx = { | |||
68 | .phy_channel = 1, | 68 | .phy_channel = 1, |
69 | }; | 69 | }; |
70 | 70 | ||
71 | static struct platform_device *db8500_add_msp_i2s(struct device *parent, | ||
72 | int id, | ||
73 | resource_size_t base, int irq, | ||
74 | struct msp_i2s_platform_data *pdata) | ||
75 | { | ||
76 | struct platform_device *pdev; | ||
77 | struct resource res[] = { | ||
78 | DEFINE_RES_MEM(base, SZ_4K), | ||
79 | DEFINE_RES_IRQ(irq), | ||
80 | }; | ||
81 | |||
82 | pr_info("Register platform-device 'ux500-msp-i2s', id %d, irq %d\n", | ||
83 | id, irq); | ||
84 | pdev = platform_device_register_resndata(parent, "ux500-msp-i2s", id, | ||
85 | res, ARRAY_SIZE(res), | ||
86 | pdata, sizeof(*pdata)); | ||
87 | if (!pdev) { | ||
88 | pr_err("Failed to register platform-device 'ux500-msp-i2s.%d'!\n", | ||
89 | id); | ||
90 | return NULL; | ||
91 | } | ||
92 | |||
93 | return pdev; | ||
94 | } | ||
95 | |||
96 | /* Platform device for ASoC MOP500 machine */ | ||
97 | static struct platform_device snd_soc_mop500 = { | ||
98 | .name = "snd-soc-mop500", | ||
99 | .id = 0, | ||
100 | .dev = { | ||
101 | .platform_data = NULL, | ||
102 | }, | ||
103 | }; | ||
104 | |||
105 | struct msp_i2s_platform_data msp2_platform_data = { | 71 | struct msp_i2s_platform_data msp2_platform_data = { |
106 | .id = MSP_I2S_2, | 72 | .id = MSP_I2S_2, |
107 | .msp_i2s_dma_rx = &msp2_dma_rx, | 73 | .msp_i2s_dma_rx = &msp2_dma_rx, |
@@ -113,19 +79,3 @@ struct msp_i2s_platform_data msp3_platform_data = { | |||
113 | .msp_i2s_dma_rx = &msp1_dma_rx, | 79 | .msp_i2s_dma_rx = &msp1_dma_rx, |
114 | .msp_i2s_dma_tx = NULL, | 80 | .msp_i2s_dma_tx = NULL, |
115 | }; | 81 | }; |
116 | |||
117 | void mop500_audio_init(struct device *parent) | ||
118 | { | ||
119 | pr_info("%s: Register platform-device 'snd-soc-mop500'.\n", __func__); | ||
120 | platform_device_register(&snd_soc_mop500); | ||
121 | |||
122 | pr_info("Initialize MSP I2S-devices.\n"); | ||
123 | db8500_add_msp_i2s(parent, 0, U8500_MSP0_BASE, IRQ_DB8500_MSP0, | ||
124 | &msp0_platform_data); | ||
125 | db8500_add_msp_i2s(parent, 1, U8500_MSP1_BASE, IRQ_DB8500_MSP1, | ||
126 | &msp1_platform_data); | ||
127 | db8500_add_msp_i2s(parent, 2, U8500_MSP2_BASE, IRQ_DB8500_MSP2, | ||
128 | &msp2_platform_data); | ||
129 | db8500_add_msp_i2s(parent, 3, U8500_MSP3_BASE, IRQ_DB8500_MSP1, | ||
130 | &msp3_platform_data); | ||
131 | } | ||
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index b3e61a38e5c8..26600a1c5319 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
@@ -65,18 +65,6 @@ struct mmci_platform_data mop500_sdi0_data = { | |||
65 | #endif | 65 | #endif |
66 | }; | 66 | }; |
67 | 67 | ||
68 | static void sdi0_configure(struct device *parent) | ||
69 | { | ||
70 | /* Add the device, force v2 to subrevision 1 */ | ||
71 | db8500_add_sdi0(parent, &mop500_sdi0_data, U8500_SDI_V2_PERIPHID); | ||
72 | } | ||
73 | |||
74 | void mop500_sdi_tc35892_init(struct device *parent) | ||
75 | { | ||
76 | mop500_sdi0_data.gpio_cd = GPIO_SDMMC_CD; | ||
77 | sdi0_configure(parent); | ||
78 | } | ||
79 | |||
80 | /* | 68 | /* |
81 | * SDI1 (SDIO WLAN) | 69 | * SDI1 (SDIO WLAN) |
82 | */ | 70 | */ |
@@ -178,42 +166,3 @@ struct mmci_platform_data mop500_sdi4_data = { | |||
178 | .dma_tx_param = &mop500_sdi4_dma_cfg_tx, | 166 | .dma_tx_param = &mop500_sdi4_dma_cfg_tx, |
179 | #endif | 167 | #endif |
180 | }; | 168 | }; |
181 | |||
182 | void __init mop500_sdi_init(struct device *parent) | ||
183 | { | ||
184 | /* PoP:ed eMMC */ | ||
185 | db8500_add_sdi2(parent, &mop500_sdi2_data, U8500_SDI_V2_PERIPHID); | ||
186 | /* On-board eMMC */ | ||
187 | db8500_add_sdi4(parent, &mop500_sdi4_data, U8500_SDI_V2_PERIPHID); | ||
188 | |||
189 | /* | ||
190 | * On boards with the TC35892 GPIO expander, sdi0 will finally | ||
191 | * be added when the TC35892 initializes and calls | ||
192 | * mop500_sdi_tc35892_init() above. | ||
193 | */ | ||
194 | } | ||
195 | |||
196 | void __init snowball_sdi_init(struct device *parent) | ||
197 | { | ||
198 | /* On Snowball MMC_CAP_SD_HIGHSPEED isn't supported (Hardware issue?) */ | ||
199 | mop500_sdi0_data.capabilities &= ~MMC_CAP_SD_HIGHSPEED; | ||
200 | /* On-board eMMC */ | ||
201 | db8500_add_sdi4(parent, &mop500_sdi4_data, U8500_SDI_V2_PERIPHID); | ||
202 | /* External Micro SD slot */ | ||
203 | mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO; | ||
204 | mop500_sdi0_data.cd_invert = true; | ||
205 | sdi0_configure(parent); | ||
206 | } | ||
207 | |||
208 | void __init hrefv60_sdi_init(struct device *parent) | ||
209 | { | ||
210 | /* PoP:ed eMMC */ | ||
211 | db8500_add_sdi2(parent, &mop500_sdi2_data, U8500_SDI_V2_PERIPHID); | ||
212 | /* On-board eMMC */ | ||
213 | db8500_add_sdi4(parent, &mop500_sdi4_data, U8500_SDI_V2_PERIPHID); | ||
214 | /* External Micro SD slot */ | ||
215 | mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO; | ||
216 | sdi0_configure(parent); | ||
217 | /* WLAN SDIO channel */ | ||
218 | db8500_add_sdi1(parent, &mop500_sdi1_data, U8500_SDI_V2_PERIPHID); | ||
219 | } | ||
diff --git a/arch/arm/mach-ux500/board-mop500-stuib.c b/arch/arm/mach-ux500/board-mop500-stuib.c deleted file mode 100644 index 7e1f294f0434..000000000000 --- a/arch/arm/mach-ux500/board-mop500-stuib.c +++ /dev/null | |||
@@ -1,120 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * License terms: GNU General Public License (GPL), version 2 | ||
5 | */ | ||
6 | |||
7 | #include <linux/kernel.h> | ||
8 | #include <linux/init.h> | ||
9 | #include <linux/mfd/stmpe.h> | ||
10 | #include <linux/input/bu21013.h> | ||
11 | #include <linux/gpio.h> | ||
12 | #include <linux/interrupt.h> | ||
13 | #include <linux/i2c.h> | ||
14 | #include <linux/input/matrix_keypad.h> | ||
15 | #include <asm/mach-types.h> | ||
16 | |||
17 | #include "board-mop500.h" | ||
18 | |||
19 | /* STMPE/SKE keypad use this key layout */ | ||
20 | static const unsigned int mop500_keymap[] = { | ||
21 | KEY(2, 5, KEY_END), | ||
22 | KEY(4, 1, KEY_POWER), | ||
23 | KEY(3, 5, KEY_VOLUMEDOWN), | ||
24 | KEY(1, 3, KEY_3), | ||
25 | KEY(5, 2, KEY_RIGHT), | ||
26 | KEY(5, 0, KEY_9), | ||
27 | |||
28 | KEY(0, 5, KEY_MENU), | ||
29 | KEY(7, 6, KEY_ENTER), | ||
30 | KEY(4, 5, KEY_0), | ||
31 | KEY(6, 7, KEY_2), | ||
32 | KEY(3, 4, KEY_UP), | ||
33 | KEY(3, 3, KEY_DOWN), | ||
34 | |||
35 | KEY(6, 4, KEY_SEND), | ||
36 | KEY(6, 2, KEY_BACK), | ||
37 | KEY(4, 2, KEY_VOLUMEUP), | ||
38 | KEY(5, 5, KEY_1), | ||
39 | KEY(4, 3, KEY_LEFT), | ||
40 | KEY(3, 2, KEY_7), | ||
41 | }; | ||
42 | |||
43 | static const struct matrix_keymap_data mop500_keymap_data = { | ||
44 | .keymap = mop500_keymap, | ||
45 | .keymap_size = ARRAY_SIZE(mop500_keymap), | ||
46 | }; | ||
47 | /* | ||
48 | * STMPE1601 | ||
49 | */ | ||
50 | static struct stmpe_keypad_platform_data stmpe1601_keypad_data = { | ||
51 | .debounce_ms = 64, | ||
52 | .scan_count = 8, | ||
53 | .no_autorepeat = true, | ||
54 | .keymap_data = &mop500_keymap_data, | ||
55 | }; | ||
56 | |||
57 | static struct stmpe_platform_data stmpe1601_data = { | ||
58 | .id = 1, | ||
59 | .blocks = STMPE_BLOCK_KEYPAD, | ||
60 | .irq_trigger = IRQF_TRIGGER_FALLING, | ||
61 | .irq_base = MOP500_STMPE1601_IRQ(0), | ||
62 | .keypad = &stmpe1601_keypad_data, | ||
63 | .autosleep = true, | ||
64 | .autosleep_timeout = 1024, | ||
65 | }; | ||
66 | |||
67 | static struct i2c_board_info __initdata mop500_i2c0_devices_stuib[] = { | ||
68 | { | ||
69 | I2C_BOARD_INFO("stmpe1601", 0x40), | ||
70 | .irq = NOMADIK_GPIO_TO_IRQ(218), | ||
71 | .platform_data = &stmpe1601_data, | ||
72 | .flags = I2C_CLIENT_WAKE, | ||
73 | }, | ||
74 | }; | ||
75 | |||
76 | /* | ||
77 | * BU21013 ROHM touchscreen interface on the STUIBs | ||
78 | */ | ||
79 | |||
80 | #define TOUCH_GPIO_PIN 84 | ||
81 | |||
82 | #define TOUCH_XMAX 384 | ||
83 | #define TOUCH_YMAX 704 | ||
84 | |||
85 | #define PRCMU_CLOCK_OCR 0x1CC | ||
86 | #define TSC_EXT_CLOCK_9_6MHZ 0x840000 | ||
87 | |||
88 | static struct bu21013_platform_device tsc_plat_device = { | ||
89 | .touch_pin = TOUCH_GPIO_PIN, | ||
90 | .touch_x_max = TOUCH_XMAX, | ||
91 | .touch_y_max = TOUCH_YMAX, | ||
92 | .ext_clk = false, | ||
93 | .x_flip = false, | ||
94 | .y_flip = true, | ||
95 | }; | ||
96 | |||
97 | static struct i2c_board_info __initdata u8500_i2c3_devices_stuib[] = { | ||
98 | { | ||
99 | I2C_BOARD_INFO("bu21013_tp", 0x5C), | ||
100 | .platform_data = &tsc_plat_device, | ||
101 | }, | ||
102 | { | ||
103 | I2C_BOARD_INFO("bu21013_tp", 0x5D), | ||
104 | .platform_data = &tsc_plat_device, | ||
105 | }, | ||
106 | }; | ||
107 | |||
108 | void __init mop500_stuib_init(void) | ||
109 | { | ||
110 | if (machine_is_hrefv60()) | ||
111 | tsc_plat_device.cs_pin = HREFV60_TOUCH_RST_GPIO; | ||
112 | else | ||
113 | tsc_plat_device.cs_pin = GPIO_BU21013_CS; | ||
114 | |||
115 | mop500_uib_i2c_add(0, mop500_i2c0_devices_stuib, | ||
116 | ARRAY_SIZE(mop500_i2c0_devices_stuib)); | ||
117 | |||
118 | mop500_uib_i2c_add(3, u8500_i2c3_devices_stuib, | ||
119 | ARRAY_SIZE(u8500_i2c3_devices_stuib)); | ||
120 | } | ||
diff --git a/arch/arm/mach-ux500/board-mop500-u8500uib.c b/arch/arm/mach-ux500/board-mop500-u8500uib.c deleted file mode 100644 index d397c19570af..000000000000 --- a/arch/arm/mach-ux500/board-mop500-u8500uib.c +++ /dev/null | |||
@@ -1,92 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * Board data for the U8500 UIB, also known as the New UIB | ||
5 | * License terms: GNU General Public License (GPL), version 2 | ||
6 | */ | ||
7 | #include <linux/gpio.h> | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/init.h> | ||
10 | #include <linux/i2c.h> | ||
11 | #include <linux/interrupt.h> | ||
12 | #include <linux/mfd/tc3589x.h> | ||
13 | #include <linux/input/matrix_keypad.h> | ||
14 | |||
15 | #include "irqs.h" | ||
16 | |||
17 | #include "board-mop500.h" | ||
18 | |||
19 | static struct i2c_board_info __initdata mop500_i2c3_devices_u8500[] = { | ||
20 | { | ||
21 | I2C_BOARD_INFO("synaptics_rmi4_i2c", 0x4B), | ||
22 | .irq = NOMADIK_GPIO_TO_IRQ(84), | ||
23 | }, | ||
24 | }; | ||
25 | |||
26 | /* | ||
27 | * TC35893 | ||
28 | */ | ||
29 | static const unsigned int u8500_keymap[] = { | ||
30 | KEY(3, 1, KEY_END), | ||
31 | KEY(4, 1, KEY_POWER), | ||
32 | KEY(6, 4, KEY_VOLUMEDOWN), | ||
33 | KEY(4, 2, KEY_EMAIL), | ||
34 | KEY(3, 3, KEY_RIGHT), | ||
35 | KEY(2, 5, KEY_BACKSPACE), | ||
36 | |||
37 | KEY(6, 7, KEY_MENU), | ||
38 | KEY(5, 0, KEY_ENTER), | ||
39 | KEY(4, 3, KEY_0), | ||
40 | KEY(3, 4, KEY_DOT), | ||
41 | KEY(5, 2, KEY_UP), | ||
42 | KEY(3, 5, KEY_DOWN), | ||
43 | |||
44 | KEY(4, 5, KEY_SEND), | ||
45 | KEY(0, 5, KEY_BACK), | ||
46 | KEY(6, 2, KEY_VOLUMEUP), | ||
47 | KEY(1, 3, KEY_SPACE), | ||
48 | KEY(7, 6, KEY_LEFT), | ||
49 | KEY(5, 5, KEY_SEARCH), | ||
50 | }; | ||
51 | |||
52 | static struct matrix_keymap_data u8500_keymap_data = { | ||
53 | .keymap = u8500_keymap, | ||
54 | .keymap_size = ARRAY_SIZE(u8500_keymap), | ||
55 | }; | ||
56 | |||
57 | static struct tc3589x_keypad_platform_data tc35893_data = { | ||
58 | .krow = TC_KPD_ROWS, | ||
59 | .kcol = TC_KPD_COLUMNS, | ||
60 | .debounce_period = TC_KPD_DEBOUNCE_PERIOD, | ||
61 | .settle_time = TC_KPD_SETTLE_TIME, | ||
62 | .irqtype = IRQF_TRIGGER_FALLING, | ||
63 | .enable_wakeup = true, | ||
64 | .keymap_data = &u8500_keymap_data, | ||
65 | .no_autorepeat = true, | ||
66 | }; | ||
67 | |||
68 | static struct tc3589x_platform_data tc3589x_keypad_data = { | ||
69 | .block = TC3589x_BLOCK_KEYPAD, | ||
70 | .keypad = &tc35893_data, | ||
71 | .irq_base = MOP500_EGPIO_IRQ_BASE, | ||
72 | }; | ||
73 | |||
74 | static struct i2c_board_info __initdata mop500_i2c0_devices_u8500[] = { | ||
75 | { | ||
76 | I2C_BOARD_INFO("tc3589x", 0x44), | ||
77 | .platform_data = &tc3589x_keypad_data, | ||
78 | .irq = NOMADIK_GPIO_TO_IRQ(218), | ||
79 | .flags = I2C_CLIENT_WAKE, | ||
80 | }, | ||
81 | }; | ||
82 | |||
83 | |||
84 | void __init mop500_u8500uib_init(void) | ||
85 | { | ||
86 | mop500_uib_i2c_add(3, mop500_i2c3_devices_u8500, | ||
87 | ARRAY_SIZE(mop500_i2c3_devices_u8500)); | ||
88 | |||
89 | mop500_uib_i2c_add(0, mop500_i2c0_devices_u8500, | ||
90 | ARRAY_SIZE(mop500_i2c0_devices_u8500)); | ||
91 | |||
92 | } | ||
diff --git a/arch/arm/mach-ux500/board-mop500-uib.c b/arch/arm/mach-ux500/board-mop500-uib.c deleted file mode 100644 index bdaa422da028..000000000000 --- a/arch/arm/mach-ux500/board-mop500-uib.c +++ /dev/null | |||
@@ -1,133 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | ||
5 | * License terms: GNU General Public License (GPL), version 2 | ||
6 | */ | ||
7 | |||
8 | #define pr_fmt(fmt) "mop500-uib: " fmt | ||
9 | |||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/i2c.h> | ||
13 | |||
14 | #include "board-mop500.h" | ||
15 | #include "id.h" | ||
16 | |||
17 | enum mop500_uib { | ||
18 | STUIB, | ||
19 | U8500UIB, | ||
20 | }; | ||
21 | |||
22 | struct uib { | ||
23 | const char *name; | ||
24 | const char *option; | ||
25 | void (*init)(void); | ||
26 | }; | ||
27 | |||
28 | static struct uib __initdata mop500_uibs[] = { | ||
29 | [STUIB] = { | ||
30 | .name = "ST-UIB", | ||
31 | .option = "stuib", | ||
32 | .init = mop500_stuib_init, | ||
33 | }, | ||
34 | [U8500UIB] = { | ||
35 | .name = "U8500-UIB", | ||
36 | .option = "u8500uib", | ||
37 | .init = mop500_u8500uib_init, | ||
38 | }, | ||
39 | }; | ||
40 | |||
41 | static struct uib *mop500_uib; | ||
42 | |||
43 | static int __init mop500_uib_setup(char *str) | ||
44 | { | ||
45 | int i; | ||
46 | |||
47 | for (i = 0; i < ARRAY_SIZE(mop500_uibs); i++) { | ||
48 | struct uib *uib = &mop500_uibs[i]; | ||
49 | |||
50 | if (!strcmp(str, uib->option)) { | ||
51 | mop500_uib = uib; | ||
52 | break; | ||
53 | } | ||
54 | } | ||
55 | |||
56 | if (i == ARRAY_SIZE(mop500_uibs)) | ||
57 | pr_err("invalid uib= option (%s)\n", str); | ||
58 | |||
59 | return 1; | ||
60 | } | ||
61 | __setup("uib=", mop500_uib_setup); | ||
62 | |||
63 | /* | ||
64 | * The UIBs are detected after the I2C host controllers are registered, so | ||
65 | * i2c_register_board_info() can't be used. | ||
66 | */ | ||
67 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, | ||
68 | unsigned n) | ||
69 | { | ||
70 | struct i2c_adapter *adap; | ||
71 | struct i2c_client *client; | ||
72 | int i; | ||
73 | |||
74 | adap = i2c_get_adapter(busnum); | ||
75 | if (!adap) { | ||
76 | pr_err("failed to get adapter i2c%d\n", busnum); | ||
77 | return; | ||
78 | } | ||
79 | |||
80 | for (i = 0; i < n; i++) { | ||
81 | client = i2c_new_device(adap, &info[i]); | ||
82 | if (!client) | ||
83 | pr_err("failed to register %s to i2c%d\n", | ||
84 | info[i].type, busnum); | ||
85 | } | ||
86 | |||
87 | i2c_put_adapter(adap); | ||
88 | } | ||
89 | |||
90 | static void __init __mop500_uib_init(struct uib *uib, const char *why) | ||
91 | { | ||
92 | pr_info("%s (%s)\n", uib->name, why); | ||
93 | uib->init(); | ||
94 | } | ||
95 | |||
96 | /* | ||
97 | * Detect the UIB attached based on the presence or absence of i2c devices. | ||
98 | */ | ||
99 | int __init mop500_uib_init(void) | ||
100 | { | ||
101 | struct uib *uib = mop500_uib; | ||
102 | struct i2c_adapter *i2c0; | ||
103 | int ret; | ||
104 | |||
105 | if (!cpu_is_u8500_family()) | ||
106 | return -ENODEV; | ||
107 | |||
108 | if (uib) { | ||
109 | __mop500_uib_init(uib, "from uib= boot argument"); | ||
110 | return 0; | ||
111 | } | ||
112 | |||
113 | i2c0 = i2c_get_adapter(0); | ||
114 | if (!i2c0) { | ||
115 | __mop500_uib_init(&mop500_uibs[STUIB], | ||
116 | "fallback, could not get i2c0"); | ||
117 | return -ENODEV; | ||
118 | } | ||
119 | |||
120 | /* U8500-UIB has the TC35893 at 0x44 on I2C0, the ST-UIB doesn't. */ | ||
121 | ret = i2c_smbus_xfer(i2c0, 0x44, 0, I2C_SMBUS_WRITE, 0, | ||
122 | I2C_SMBUS_QUICK, NULL); | ||
123 | i2c_put_adapter(i2c0); | ||
124 | |||
125 | if (ret == 0) | ||
126 | uib = &mop500_uibs[U8500UIB]; | ||
127 | else | ||
128 | uib = &mop500_uibs[STUIB]; | ||
129 | |||
130 | __mop500_uib_init(uib, "detected"); | ||
131 | |||
132 | return 0; | ||
133 | } | ||
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index ad0806eff762..514d40b625a4 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -14,27 +14,16 @@ | |||
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/clk.h> | 15 | #include <linux/clk.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/i2c.h> | ||
18 | #include <linux/platform_data/i2c-nomadik.h> | ||
19 | #include <linux/platform_data/db8500_thermal.h> | 17 | #include <linux/platform_data/db8500_thermal.h> |
20 | #include <linux/gpio.h> | ||
21 | #include <linux/amba/bus.h> | 18 | #include <linux/amba/bus.h> |
22 | #include <linux/amba/pl022.h> | 19 | #include <linux/amba/pl022.h> |
23 | #include <linux/amba/serial.h> | ||
24 | #include <linux/spi/spi.h> | ||
25 | #include <linux/mfd/abx500/ab8500.h> | 20 | #include <linux/mfd/abx500/ab8500.h> |
26 | #include <linux/regulator/ab8500.h> | 21 | #include <linux/regulator/ab8500.h> |
27 | #include <linux/regulator/fixed.h> | 22 | #include <linux/regulator/fixed.h> |
28 | #include <linux/regulator/driver.h> | 23 | #include <linux/regulator/driver.h> |
29 | #include <linux/regulator/gpio-regulator.h> | ||
30 | #include <linux/mfd/tc3589x.h> | ||
31 | #include <linux/mfd/tps6105x.h> | 24 | #include <linux/mfd/tps6105x.h> |
32 | #include <linux/mfd/abx500/ab8500-gpio.h> | ||
33 | #include <linux/mfd/abx500/ab8500-codec.h> | ||
34 | #include <linux/platform_data/leds-lp55xx.h> | 25 | #include <linux/platform_data/leds-lp55xx.h> |
35 | #include <linux/input.h> | 26 | #include <linux/input.h> |
36 | #include <linux/smsc911x.h> | ||
37 | #include <linux/gpio_keys.h> | ||
38 | #include <linux/delay.h> | 27 | #include <linux/delay.h> |
39 | #include <linux/leds.h> | 28 | #include <linux/leds.h> |
40 | #include <linux/pinctrl/consumer.h> | 29 | #include <linux/pinctrl/consumer.h> |
@@ -46,7 +35,6 @@ | |||
46 | #include "setup.h" | 35 | #include "setup.h" |
47 | #include "devices.h" | 36 | #include "devices.h" |
48 | #include "irqs.h" | 37 | #include "irqs.h" |
49 | #include <linux/platform_data/crypto-ux500.h> | ||
50 | 38 | ||
51 | #include "ste-dma40-db8500.h" | 39 | #include "ste-dma40-db8500.h" |
52 | #include "db8500-regs.h" | 40 | #include "db8500-regs.h" |
@@ -54,401 +42,9 @@ | |||
54 | #include "board-mop500.h" | 42 | #include "board-mop500.h" |
55 | #include "board-mop500-regulators.h" | 43 | #include "board-mop500-regulators.h" |
56 | 44 | ||
57 | static struct gpio_led snowball_led_array[] = { | ||
58 | { | ||
59 | .name = "user_led", | ||
60 | .default_trigger = "heartbeat", | ||
61 | .gpio = 142, | ||
62 | }, | ||
63 | }; | ||
64 | |||
65 | static struct gpio_led_platform_data snowball_led_data = { | ||
66 | .leds = snowball_led_array, | ||
67 | .num_leds = ARRAY_SIZE(snowball_led_array), | ||
68 | }; | ||
69 | |||
70 | static struct platform_device snowball_led_dev = { | ||
71 | .name = "leds-gpio", | ||
72 | .dev = { | ||
73 | .platform_data = &snowball_led_data, | ||
74 | }, | ||
75 | }; | ||
76 | |||
77 | static struct fixed_voltage_config snowball_gpio_en_3v3_data = { | ||
78 | .supply_name = "EN-3V3", | ||
79 | .gpio = SNOWBALL_EN_3V3_ETH_GPIO, | ||
80 | .microvolts = 3300000, | ||
81 | .enable_high = 1, | ||
82 | .init_data = &gpio_en_3v3_regulator, | ||
83 | .startup_delay = 5000, /* 1200us */ | ||
84 | }; | ||
85 | |||
86 | static struct platform_device snowball_gpio_en_3v3_regulator_dev = { | ||
87 | .name = "reg-fixed-voltage", | ||
88 | .id = 1, | ||
89 | .dev = { | ||
90 | .platform_data = &snowball_gpio_en_3v3_data, | ||
91 | }, | ||
92 | }; | ||
93 | |||
94 | /* Dynamically populated. */ | ||
95 | static struct gpio sdi0_reg_gpios[] = { | ||
96 | { 0, GPIOF_OUT_INIT_LOW, "mmci_vsel" }, | ||
97 | }; | ||
98 | |||
99 | static struct gpio_regulator_state sdi0_reg_states[] = { | ||
100 | { .value = 2900000, .gpios = (0 << 0) }, | ||
101 | { .value = 1800000, .gpios = (1 << 0) }, | ||
102 | }; | ||
103 | |||
104 | static struct gpio_regulator_config sdi0_reg_info = { | ||
105 | .supply_name = "ext-mmc-level-shifter", | ||
106 | .gpios = sdi0_reg_gpios, | ||
107 | .nr_gpios = ARRAY_SIZE(sdi0_reg_gpios), | ||
108 | .states = sdi0_reg_states, | ||
109 | .nr_states = ARRAY_SIZE(sdi0_reg_states), | ||
110 | .type = REGULATOR_VOLTAGE, | ||
111 | .enable_high = 1, | ||
112 | .enabled_at_boot = 0, | ||
113 | .init_data = &sdi0_reg_init_data, | ||
114 | .startup_delay = 100, | ||
115 | }; | ||
116 | |||
117 | static struct platform_device sdi0_regulator = { | ||
118 | .name = "gpio-regulator", | ||
119 | .id = -1, | ||
120 | .dev = { | ||
121 | .platform_data = &sdi0_reg_info, | ||
122 | }, | ||
123 | }; | ||
124 | |||
125 | static struct abx500_gpio_platform_data ab8500_gpio_pdata = { | ||
126 | .gpio_base = MOP500_AB8500_PIN_GPIO(1), | ||
127 | }; | ||
128 | |||
129 | /* ab8500-codec */ | ||
130 | static struct ab8500_codec_platform_data ab8500_codec_pdata = { | ||
131 | .amics = { | ||
132 | .mic1_type = AMIC_TYPE_DIFFERENTIAL, | ||
133 | .mic2_type = AMIC_TYPE_DIFFERENTIAL, | ||
134 | .mic1a_micbias = AMIC_MICBIAS_VAMIC1, | ||
135 | .mic1b_micbias = AMIC_MICBIAS_VAMIC1, | ||
136 | .mic2_micbias = AMIC_MICBIAS_VAMIC2 | ||
137 | }, | ||
138 | .ear_cmv = EAR_CMV_0_95V | ||
139 | }; | ||
140 | |||
141 | static struct gpio_keys_button snowball_key_array[] = { | ||
142 | { | ||
143 | .gpio = 32, | ||
144 | .type = EV_KEY, | ||
145 | .code = KEY_1, | ||
146 | .desc = "userpb", | ||
147 | .active_low = 1, | ||
148 | .debounce_interval = 50, | ||
149 | .wakeup = 1, | ||
150 | }, | ||
151 | { | ||
152 | .gpio = 151, | ||
153 | .type = EV_KEY, | ||
154 | .code = KEY_2, | ||
155 | .desc = "extkb1", | ||
156 | .active_low = 1, | ||
157 | .debounce_interval = 50, | ||
158 | .wakeup = 1, | ||
159 | }, | ||
160 | { | ||
161 | .gpio = 152, | ||
162 | .type = EV_KEY, | ||
163 | .code = KEY_3, | ||
164 | .desc = "extkb2", | ||
165 | .active_low = 1, | ||
166 | .debounce_interval = 50, | ||
167 | .wakeup = 1, | ||
168 | }, | ||
169 | { | ||
170 | .gpio = 161, | ||
171 | .type = EV_KEY, | ||
172 | .code = KEY_4, | ||
173 | .desc = "extkb3", | ||
174 | .active_low = 1, | ||
175 | .debounce_interval = 50, | ||
176 | .wakeup = 1, | ||
177 | }, | ||
178 | { | ||
179 | .gpio = 162, | ||
180 | .type = EV_KEY, | ||
181 | .code = KEY_5, | ||
182 | .desc = "extkb4", | ||
183 | .active_low = 1, | ||
184 | .debounce_interval = 50, | ||
185 | .wakeup = 1, | ||
186 | }, | ||
187 | }; | ||
188 | |||
189 | static struct gpio_keys_platform_data snowball_key_data = { | ||
190 | .buttons = snowball_key_array, | ||
191 | .nbuttons = ARRAY_SIZE(snowball_key_array), | ||
192 | }; | ||
193 | |||
194 | static struct platform_device snowball_key_dev = { | ||
195 | .name = "gpio-keys", | ||
196 | .id = -1, | ||
197 | .dev = { | ||
198 | .platform_data = &snowball_key_data, | ||
199 | } | ||
200 | }; | ||
201 | |||
202 | static struct smsc911x_platform_config snowball_sbnet_cfg = { | ||
203 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH, | ||
204 | .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, | ||
205 | .flags = SMSC911X_USE_16BIT | SMSC911X_FORCE_INTERNAL_PHY, | ||
206 | .shift = 1, | ||
207 | }; | ||
208 | |||
209 | static struct resource sbnet_res[] = { | ||
210 | { | ||
211 | .name = "smsc911x-memory", | ||
212 | .start = (0x5000 << 16), | ||
213 | .end = (0x5000 << 16) + 0xffff, | ||
214 | .flags = IORESOURCE_MEM, | ||
215 | }, | ||
216 | { | ||
217 | .start = NOMADIK_GPIO_TO_IRQ(140), | ||
218 | .end = NOMADIK_GPIO_TO_IRQ(140), | ||
219 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, | ||
220 | }, | ||
221 | }; | ||
222 | |||
223 | static struct platform_device snowball_sbnet_dev = { | ||
224 | .name = "smsc911x", | ||
225 | .num_resources = ARRAY_SIZE(sbnet_res), | ||
226 | .resource = sbnet_res, | ||
227 | .dev = { | ||
228 | .platform_data = &snowball_sbnet_cfg, | ||
229 | }, | ||
230 | }; | ||
231 | |||
232 | struct ab8500_platform_data ab8500_platdata = { | 45 | struct ab8500_platform_data ab8500_platdata = { |
233 | .irq_base = MOP500_AB8500_IRQ_BASE, | 46 | .irq_base = MOP500_AB8500_IRQ_BASE, |
234 | .regulator = &ab8500_regulator_plat_data, | 47 | .regulator = &ab8500_regulator_plat_data, |
235 | .gpio = &ab8500_gpio_pdata, | ||
236 | .codec = &ab8500_codec_pdata, | ||
237 | }; | ||
238 | |||
239 | static struct platform_device u8500_cpufreq_cooling_device = { | ||
240 | .name = "db8500-cpufreq-cooling", | ||
241 | }; | ||
242 | |||
243 | /* | ||
244 | * TPS61052 | ||
245 | */ | ||
246 | |||
247 | static struct tps6105x_platform_data mop500_tps61052_data = { | ||
248 | .mode = TPS6105X_MODE_VOLTAGE, | ||
249 | .regulator_data = &tps61052_regulator, | ||
250 | }; | ||
251 | |||
252 | /* | ||
253 | * TC35892 | ||
254 | */ | ||
255 | |||
256 | static void mop500_tc35892_init(struct tc3589x *tc3589x, unsigned int base) | ||
257 | { | ||
258 | struct device *parent = NULL; | ||
259 | #if 0 | ||
260 | /* FIXME: Is the sdi actually part of tc3589x? */ | ||
261 | parent = tc3589x->dev; | ||
262 | #endif | ||
263 | mop500_sdi_tc35892_init(parent); | ||
264 | } | ||
265 | |||
266 | static struct tc3589x_gpio_platform_data mop500_tc35892_gpio_data = { | ||
267 | .gpio_base = MOP500_EGPIO(0), | ||
268 | .setup = mop500_tc35892_init, | ||
269 | }; | ||
270 | |||
271 | static struct tc3589x_platform_data mop500_tc35892_data = { | ||
272 | .block = TC3589x_BLOCK_GPIO, | ||
273 | .gpio = &mop500_tc35892_gpio_data, | ||
274 | .irq_base = MOP500_EGPIO_IRQ_BASE, | ||
275 | }; | ||
276 | |||
277 | static struct lp55xx_led_config lp5521_pri_led[] = { | ||
278 | [0] = { | ||
279 | .chan_nr = 0, | ||
280 | .led_current = 0x2f, | ||
281 | .max_current = 0x5f, | ||
282 | }, | ||
283 | [1] = { | ||
284 | .chan_nr = 1, | ||
285 | .led_current = 0x2f, | ||
286 | .max_current = 0x5f, | ||
287 | }, | ||
288 | [2] = { | ||
289 | .chan_nr = 2, | ||
290 | .led_current = 0x2f, | ||
291 | .max_current = 0x5f, | ||
292 | }, | ||
293 | }; | ||
294 | |||
295 | static struct lp55xx_platform_data __initdata lp5521_pri_data = { | ||
296 | .label = "lp5521_pri", | ||
297 | .led_config = &lp5521_pri_led[0], | ||
298 | .num_channels = 3, | ||
299 | .clock_mode = LP55XX_CLOCK_EXT, | ||
300 | }; | ||
301 | |||
302 | static struct lp55xx_led_config lp5521_sec_led[] = { | ||
303 | [0] = { | ||
304 | .chan_nr = 0, | ||
305 | .led_current = 0x2f, | ||
306 | .max_current = 0x5f, | ||
307 | }, | ||
308 | [1] = { | ||
309 | .chan_nr = 1, | ||
310 | .led_current = 0x2f, | ||
311 | .max_current = 0x5f, | ||
312 | }, | ||
313 | [2] = { | ||
314 | .chan_nr = 2, | ||
315 | .led_current = 0x2f, | ||
316 | .max_current = 0x5f, | ||
317 | }, | ||
318 | }; | ||
319 | |||
320 | static struct lp55xx_platform_data __initdata lp5521_sec_data = { | ||
321 | .label = "lp5521_sec", | ||
322 | .led_config = &lp5521_sec_led[0], | ||
323 | .num_channels = 3, | ||
324 | .clock_mode = LP55XX_CLOCK_EXT, | ||
325 | }; | ||
326 | |||
327 | /* I2C0 devices only available on the first HREF/MOP500 */ | ||
328 | static struct i2c_board_info __initdata mop500_i2c0_devices[] = { | ||
329 | { | ||
330 | I2C_BOARD_INFO("tc3589x", 0x42), | ||
331 | .irq = NOMADIK_GPIO_TO_IRQ(217), | ||
332 | .platform_data = &mop500_tc35892_data, | ||
333 | }, | ||
334 | { | ||
335 | I2C_BOARD_INFO("tps61052", 0x33), | ||
336 | .platform_data = &mop500_tps61052_data, | ||
337 | }, | ||
338 | }; | ||
339 | |||
340 | static struct i2c_board_info __initdata mop500_i2c2_devices[] = { | ||
341 | { | ||
342 | /* lp5521 LED driver, 1st device */ | ||
343 | I2C_BOARD_INFO("lp5521", 0x33), | ||
344 | .platform_data = &lp5521_pri_data, | ||
345 | }, | ||
346 | { | ||
347 | /* lp5521 LED driver, 2st device */ | ||
348 | I2C_BOARD_INFO("lp5521", 0x34), | ||
349 | .platform_data = &lp5521_sec_data, | ||
350 | }, | ||
351 | { | ||
352 | /* Light sensor Rohm BH1780GLI */ | ||
353 | I2C_BOARD_INFO("bh1780", 0x29), | ||
354 | }, | ||
355 | }; | ||
356 | |||
357 | static int __init mop500_i2c_board_init(void) | ||
358 | { | ||
359 | if (machine_is_u8500()) | ||
360 | mop500_uib_i2c_add(0, mop500_i2c0_devices, | ||
361 | ARRAY_SIZE(mop500_i2c0_devices)); | ||
362 | mop500_uib_i2c_add(2, mop500_i2c2_devices, | ||
363 | ARRAY_SIZE(mop500_i2c2_devices)); | ||
364 | return 0; | ||
365 | } | ||
366 | device_initcall(mop500_i2c_board_init); | ||
367 | |||
368 | static void __init mop500_i2c_init(struct device *parent) | ||
369 | { | ||
370 | db8500_add_i2c0(parent, NULL); | ||
371 | db8500_add_i2c1(parent, NULL); | ||
372 | db8500_add_i2c2(parent, NULL); | ||
373 | db8500_add_i2c3(parent, NULL); | ||
374 | } | ||
375 | |||
376 | static struct gpio_keys_button mop500_gpio_keys[] = { | ||
377 | { | ||
378 | .desc = "SFH7741 Proximity Sensor", | ||
379 | .type = EV_SW, | ||
380 | .code = SW_FRONT_PROXIMITY, | ||
381 | .active_low = 0, | ||
382 | .can_disable = 1, | ||
383 | } | ||
384 | }; | ||
385 | |||
386 | static struct regulator *prox_regulator; | ||
387 | static int mop500_prox_activate(struct device *dev); | ||
388 | static void mop500_prox_deactivate(struct device *dev); | ||
389 | |||
390 | static struct gpio_keys_platform_data mop500_gpio_keys_data = { | ||
391 | .buttons = mop500_gpio_keys, | ||
392 | .nbuttons = ARRAY_SIZE(mop500_gpio_keys), | ||
393 | .enable = mop500_prox_activate, | ||
394 | .disable = mop500_prox_deactivate, | ||
395 | }; | ||
396 | |||
397 | static struct platform_device mop500_gpio_keys_device = { | ||
398 | .name = "gpio-keys", | ||
399 | .id = 0, | ||
400 | .dev = { | ||
401 | .platform_data = &mop500_gpio_keys_data, | ||
402 | }, | ||
403 | }; | ||
404 | |||
405 | static int mop500_prox_activate(struct device *dev) | ||
406 | { | ||
407 | prox_regulator = regulator_get(&mop500_gpio_keys_device.dev, | ||
408 | "vcc"); | ||
409 | if (IS_ERR(prox_regulator)) { | ||
410 | dev_err(&mop500_gpio_keys_device.dev, | ||
411 | "no regulator\n"); | ||
412 | return PTR_ERR(prox_regulator); | ||
413 | } | ||
414 | |||
415 | return regulator_enable(prox_regulator); | ||
416 | } | ||
417 | |||
418 | static void mop500_prox_deactivate(struct device *dev) | ||
419 | { | ||
420 | regulator_disable(prox_regulator); | ||
421 | regulator_put(prox_regulator); | ||
422 | } | ||
423 | |||
424 | static struct cryp_platform_data u8500_cryp1_platform_data = { | ||
425 | .mem_to_engine = { | ||
426 | .dir = DMA_MEM_TO_DEV, | ||
427 | .dev_type = DB8500_DMA_DEV48_CAC1, | ||
428 | .mode = STEDMA40_MODE_LOGICAL, | ||
429 | }, | ||
430 | .engine_to_mem = { | ||
431 | .dir = DMA_DEV_TO_MEM, | ||
432 | .dev_type = DB8500_DMA_DEV48_CAC1, | ||
433 | .mode = STEDMA40_MODE_LOGICAL, | ||
434 | } | ||
435 | }; | ||
436 | |||
437 | static struct stedma40_chan_cfg u8500_hash_dma_cfg_tx = { | ||
438 | .dir = DMA_MEM_TO_DEV, | ||
439 | .dev_type = DB8500_DMA_DEV50_HAC1_TX, | ||
440 | .mode = STEDMA40_MODE_LOGICAL, | ||
441 | }; | ||
442 | |||
443 | static struct hash_platform_data u8500_hash1_platform_data = { | ||
444 | .mem_to_engine = &u8500_hash_dma_cfg_tx, | ||
445 | .dma_filter = stedma40_filter, | ||
446 | }; | ||
447 | |||
448 | /* add any platform devices here - TODO */ | ||
449 | static struct platform_device *mop500_platform_devs[] __initdata = { | ||
450 | &mop500_gpio_keys_device, | ||
451 | &sdi0_regulator, | ||
452 | }; | 48 | }; |
453 | 49 | ||
454 | #ifdef CONFIG_STE_DMA40 | 50 | #ifdef CONFIG_STE_DMA40 |
@@ -480,236 +76,3 @@ struct pl022_ssp_controller ssp0_plat = { | |||
480 | */ | 76 | */ |
481 | .num_chipselect = 5, | 77 | .num_chipselect = 5, |
482 | }; | 78 | }; |
483 | |||
484 | static void __init mop500_spi_init(struct device *parent) | ||
485 | { | ||
486 | db8500_add_ssp0(parent, &ssp0_plat); | ||
487 | } | ||
488 | |||
489 | #ifdef CONFIG_STE_DMA40 | ||
490 | static struct stedma40_chan_cfg uart0_dma_cfg_rx = { | ||
491 | .mode = STEDMA40_MODE_LOGICAL, | ||
492 | .dir = DMA_DEV_TO_MEM, | ||
493 | .dev_type = DB8500_DMA_DEV13_UART0, | ||
494 | }; | ||
495 | |||
496 | static struct stedma40_chan_cfg uart0_dma_cfg_tx = { | ||
497 | .mode = STEDMA40_MODE_LOGICAL, | ||
498 | .dir = DMA_MEM_TO_DEV, | ||
499 | .dev_type = DB8500_DMA_DEV13_UART0, | ||
500 | }; | ||
501 | |||
502 | static struct stedma40_chan_cfg uart1_dma_cfg_rx = { | ||
503 | .mode = STEDMA40_MODE_LOGICAL, | ||
504 | .dir = DMA_DEV_TO_MEM, | ||
505 | .dev_type = DB8500_DMA_DEV12_UART1, | ||
506 | }; | ||
507 | |||
508 | static struct stedma40_chan_cfg uart1_dma_cfg_tx = { | ||
509 | .mode = STEDMA40_MODE_LOGICAL, | ||
510 | .dir = DMA_MEM_TO_DEV, | ||
511 | .dev_type = DB8500_DMA_DEV12_UART1, | ||
512 | }; | ||
513 | |||
514 | static struct stedma40_chan_cfg uart2_dma_cfg_rx = { | ||
515 | .mode = STEDMA40_MODE_LOGICAL, | ||
516 | .dir = DMA_DEV_TO_MEM, | ||
517 | .dev_type = DB8500_DMA_DEV11_UART2, | ||
518 | }; | ||
519 | |||
520 | static struct stedma40_chan_cfg uart2_dma_cfg_tx = { | ||
521 | .mode = STEDMA40_MODE_LOGICAL, | ||
522 | .dir = DMA_MEM_TO_DEV, | ||
523 | .dev_type = DB8500_DMA_DEV11_UART2, | ||
524 | }; | ||
525 | #endif | ||
526 | |||
527 | struct amba_pl011_data uart0_plat = { | ||
528 | #ifdef CONFIG_STE_DMA40 | ||
529 | .dma_filter = stedma40_filter, | ||
530 | .dma_rx_param = &uart0_dma_cfg_rx, | ||
531 | .dma_tx_param = &uart0_dma_cfg_tx, | ||
532 | #endif | ||
533 | }; | ||
534 | |||
535 | struct amba_pl011_data uart1_plat = { | ||
536 | #ifdef CONFIG_STE_DMA40 | ||
537 | .dma_filter = stedma40_filter, | ||
538 | .dma_rx_param = &uart1_dma_cfg_rx, | ||
539 | .dma_tx_param = &uart1_dma_cfg_tx, | ||
540 | #endif | ||
541 | }; | ||
542 | |||
543 | struct amba_pl011_data uart2_plat = { | ||
544 | #ifdef CONFIG_STE_DMA40 | ||
545 | .dma_filter = stedma40_filter, | ||
546 | .dma_rx_param = &uart2_dma_cfg_rx, | ||
547 | .dma_tx_param = &uart2_dma_cfg_tx, | ||
548 | #endif | ||
549 | }; | ||
550 | |||
551 | static void __init mop500_uart_init(struct device *parent) | ||
552 | { | ||
553 | db8500_add_uart0(parent, &uart0_plat); | ||
554 | db8500_add_uart1(parent, &uart1_plat); | ||
555 | db8500_add_uart2(parent, &uart2_plat); | ||
556 | } | ||
557 | |||
558 | static void __init u8500_cryp1_hash1_init(struct device *parent) | ||
559 | { | ||
560 | db8500_add_cryp1(parent, &u8500_cryp1_platform_data); | ||
561 | db8500_add_hash1(parent, &u8500_hash1_platform_data); | ||
562 | } | ||
563 | |||
564 | static struct platform_device *snowball_platform_devs[] __initdata = { | ||
565 | &snowball_led_dev, | ||
566 | &snowball_key_dev, | ||
567 | &snowball_sbnet_dev, | ||
568 | &snowball_gpio_en_3v3_regulator_dev, | ||
569 | &u8500_cpufreq_cooling_device, | ||
570 | &sdi0_regulator, | ||
571 | }; | ||
572 | |||
573 | static void __init mop500_init_machine(void) | ||
574 | { | ||
575 | struct device *parent = NULL; | ||
576 | int i; | ||
577 | |||
578 | platform_device_register(&db8500_prcmu_device); | ||
579 | mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; | ||
580 | |||
581 | sdi0_reg_info.enable_gpio = GPIO_SDMMC_EN; | ||
582 | sdi0_reg_info.gpios[0].gpio = GPIO_SDMMC_1V8_3V_SEL; | ||
583 | |||
584 | mop500_pinmaps_init(); | ||
585 | parent = u8500_init_devices(); | ||
586 | |||
587 | for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) | ||
588 | mop500_platform_devs[i]->dev.parent = parent; | ||
589 | |||
590 | platform_add_devices(mop500_platform_devs, | ||
591 | ARRAY_SIZE(mop500_platform_devs)); | ||
592 | |||
593 | mop500_i2c_init(parent); | ||
594 | mop500_sdi_init(parent); | ||
595 | mop500_spi_init(parent); | ||
596 | mop500_audio_init(parent); | ||
597 | mop500_uart_init(parent); | ||
598 | u8500_cryp1_hash1_init(parent); | ||
599 | |||
600 | /* This board has full regulator constraints */ | ||
601 | regulator_has_full_constraints(); | ||
602 | } | ||
603 | |||
604 | |||
605 | static void __init snowball_init_machine(void) | ||
606 | { | ||
607 | struct device *parent = NULL; | ||
608 | int i; | ||
609 | |||
610 | platform_device_register(&db8500_prcmu_device); | ||
611 | |||
612 | sdi0_reg_info.enable_gpio = SNOWBALL_SDMMC_EN_GPIO; | ||
613 | sdi0_reg_info.gpios[0].gpio = SNOWBALL_SDMMC_1V8_3V_GPIO; | ||
614 | |||
615 | snowball_pinmaps_init(); | ||
616 | parent = u8500_init_devices(); | ||
617 | |||
618 | for (i = 0; i < ARRAY_SIZE(snowball_platform_devs); i++) | ||
619 | snowball_platform_devs[i]->dev.parent = parent; | ||
620 | |||
621 | platform_add_devices(snowball_platform_devs, | ||
622 | ARRAY_SIZE(snowball_platform_devs)); | ||
623 | |||
624 | mop500_i2c_init(parent); | ||
625 | snowball_sdi_init(parent); | ||
626 | mop500_spi_init(parent); | ||
627 | mop500_audio_init(parent); | ||
628 | mop500_uart_init(parent); | ||
629 | |||
630 | u8500_cryp1_hash1_init(parent); | ||
631 | |||
632 | /* This board has full regulator constraints */ | ||
633 | regulator_has_full_constraints(); | ||
634 | } | ||
635 | |||
636 | static void __init hrefv60_init_machine(void) | ||
637 | { | ||
638 | struct device *parent = NULL; | ||
639 | int i; | ||
640 | |||
641 | platform_device_register(&db8500_prcmu_device); | ||
642 | /* | ||
643 | * The HREFv60 board removed a GPIO expander and routed | ||
644 | * all these GPIO pins to the internal GPIO controller | ||
645 | * instead. | ||
646 | */ | ||
647 | mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; | ||
648 | |||
649 | sdi0_reg_info.enable_gpio = HREFV60_SDMMC_EN_GPIO; | ||
650 | sdi0_reg_info.gpios[0].gpio = HREFV60_SDMMC_1V8_3V_GPIO; | ||
651 | |||
652 | hrefv60_pinmaps_init(); | ||
653 | parent = u8500_init_devices(); | ||
654 | |||
655 | for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) | ||
656 | mop500_platform_devs[i]->dev.parent = parent; | ||
657 | |||
658 | platform_add_devices(mop500_platform_devs, | ||
659 | ARRAY_SIZE(mop500_platform_devs)); | ||
660 | |||
661 | mop500_i2c_init(parent); | ||
662 | hrefv60_sdi_init(parent); | ||
663 | mop500_spi_init(parent); | ||
664 | mop500_audio_init(parent); | ||
665 | mop500_uart_init(parent); | ||
666 | |||
667 | /* This board has full regulator constraints */ | ||
668 | regulator_has_full_constraints(); | ||
669 | } | ||
670 | |||
671 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | ||
672 | /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */ | ||
673 | .atag_offset = 0x100, | ||
674 | .smp = smp_ops(ux500_smp_ops), | ||
675 | .map_io = u8500_map_io, | ||
676 | .init_irq = ux500_init_irq, | ||
677 | /* we re-use nomadik timer here */ | ||
678 | .init_time = ux500_timer_init, | ||
679 | .init_machine = mop500_init_machine, | ||
680 | .init_late = ux500_init_late, | ||
681 | .restart = ux500_restart, | ||
682 | MACHINE_END | ||
683 | |||
684 | MACHINE_START(U8520, "ST-Ericsson U8520 Platform HREFP520") | ||
685 | .atag_offset = 0x100, | ||
686 | .map_io = u8500_map_io, | ||
687 | .init_irq = ux500_init_irq, | ||
688 | .init_time = ux500_timer_init, | ||
689 | .init_machine = mop500_init_machine, | ||
690 | .init_late = ux500_init_late, | ||
691 | .restart = ux500_restart, | ||
692 | MACHINE_END | ||
693 | |||
694 | MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") | ||
695 | .atag_offset = 0x100, | ||
696 | .smp = smp_ops(ux500_smp_ops), | ||
697 | .map_io = u8500_map_io, | ||
698 | .init_irq = ux500_init_irq, | ||
699 | .init_time = ux500_timer_init, | ||
700 | .init_machine = hrefv60_init_machine, | ||
701 | .init_late = ux500_init_late, | ||
702 | .restart = ux500_restart, | ||
703 | MACHINE_END | ||
704 | |||
705 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") | ||
706 | .atag_offset = 0x100, | ||
707 | .smp = smp_ops(ux500_smp_ops), | ||
708 | .map_io = u8500_map_io, | ||
709 | .init_irq = ux500_init_irq, | ||
710 | /* we re-use nomadik timer here */ | ||
711 | .init_time = ux500_timer_init, | ||
712 | .init_machine = snowball_init_machine, | ||
713 | .init_late = NULL, | ||
714 | .restart = ux500_restart, | ||
715 | MACHINE_END | ||
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h index d6fab166cbf1..511d6febbe99 100644 --- a/arch/arm/mach-ux500/board-mop500.h +++ b/arch/arm/mach-ux500/board-mop500.h | |||
@@ -79,7 +79,6 @@ | |||
79 | #define SNOWBALL_EN_3V3_ETH_GPIO MOP500_AB8500_PIN_GPIO(26) /* GPIO26 */ | 79 | #define SNOWBALL_EN_3V3_ETH_GPIO MOP500_AB8500_PIN_GPIO(26) /* GPIO26 */ |
80 | 80 | ||
81 | struct device; | 81 | struct device; |
82 | struct i2c_board_info; | ||
83 | extern struct mmci_platform_data mop500_sdi0_data; | 82 | extern struct mmci_platform_data mop500_sdi0_data; |
84 | extern struct mmci_platform_data mop500_sdi1_data; | 83 | extern struct mmci_platform_data mop500_sdi1_data; |
85 | extern struct mmci_platform_data mop500_sdi2_data; | 84 | extern struct mmci_platform_data mop500_sdi2_data; |
@@ -88,25 +87,10 @@ extern struct msp_i2s_platform_data msp0_platform_data; | |||
88 | extern struct msp_i2s_platform_data msp1_platform_data; | 87 | extern struct msp_i2s_platform_data msp1_platform_data; |
89 | extern struct msp_i2s_platform_data msp2_platform_data; | 88 | extern struct msp_i2s_platform_data msp2_platform_data; |
90 | extern struct msp_i2s_platform_data msp3_platform_data; | 89 | extern struct msp_i2s_platform_data msp3_platform_data; |
91 | extern struct arm_pmu_platdata db8500_pmu_platdata; | ||
92 | extern struct amba_pl011_data uart0_plat; | ||
93 | extern struct amba_pl011_data uart1_plat; | ||
94 | extern struct amba_pl011_data uart2_plat; | ||
95 | extern struct pl022_ssp_controller ssp0_plat; | 90 | extern struct pl022_ssp_controller ssp0_plat; |
96 | extern struct stedma40_platform_data dma40_plat_data; | ||
97 | 91 | ||
98 | extern void mop500_sdi_init(struct device *parent); | ||
99 | extern void snowball_sdi_init(struct device *parent); | ||
100 | extern void hrefv60_sdi_init(struct device *parent); | ||
101 | extern void mop500_sdi_tc35892_init(struct device *parent); | ||
102 | void __init mop500_u8500uib_init(void); | ||
103 | void __init mop500_stuib_init(void); | ||
104 | void __init mop500_pinmaps_init(void); | 92 | void __init mop500_pinmaps_init(void); |
105 | void __init snowball_pinmaps_init(void); | 93 | void __init snowball_pinmaps_init(void); |
106 | void __init hrefv60_pinmaps_init(void); | 94 | void __init hrefv60_pinmaps_init(void); |
107 | void mop500_audio_init(struct device *parent); | ||
108 | 95 | ||
109 | int __init mop500_uib_init(void); | ||
110 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, | ||
111 | unsigned n); | ||
112 | #endif | 96 | #endif |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 301c3460d96a..2e85c1e72535 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
@@ -32,7 +32,6 @@ | |||
32 | #include "irqs.h" | 32 | #include "irqs.h" |
33 | 33 | ||
34 | #include "devices-db8500.h" | 34 | #include "devices-db8500.h" |
35 | #include "ste-dma40-db8500.h" | ||
36 | #include "db8500-regs.h" | 35 | #include "db8500-regs.h" |
37 | #include "board-mop500.h" | 36 | #include "board-mop500.h" |
38 | #include "id.h" | 37 | #include "id.h" |
@@ -93,14 +92,6 @@ void __init u8500_map_io(void) | |||
93 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); | 92 | iotable_init(u8500_io_desc, ARRAY_SIZE(u8500_io_desc)); |
94 | } | 93 | } |
95 | 94 | ||
96 | static struct resource db8500_pmu_resources[] = { | ||
97 | [0] = { | ||
98 | .start = IRQ_DB8500_PMU, | ||
99 | .end = IRQ_DB8500_PMU, | ||
100 | .flags = IORESOURCE_IRQ, | ||
101 | }, | ||
102 | }; | ||
103 | |||
104 | /* | 95 | /* |
105 | * The PMU IRQ lines of two cores are wired together into a single interrupt. | 96 | * The PMU IRQ lines of two cores are wired together into a single interrupt. |
106 | * Bounce the interrupt to the other core if it's not ours. | 97 | * Bounce the interrupt to the other core if it's not ours. |
@@ -125,54 +116,6 @@ struct arm_pmu_platdata db8500_pmu_platdata = { | |||
125 | .handle_irq = db8500_pmu_handler, | 116 | .handle_irq = db8500_pmu_handler, |
126 | }; | 117 | }; |
127 | 118 | ||
128 | static struct platform_device db8500_pmu_device = { | ||
129 | .name = "arm-pmu", | ||
130 | .id = -1, | ||
131 | .num_resources = ARRAY_SIZE(db8500_pmu_resources), | ||
132 | .resource = db8500_pmu_resources, | ||
133 | .dev.platform_data = &db8500_pmu_platdata, | ||
134 | }; | ||
135 | |||
136 | static struct platform_device *platform_devs[] __initdata = { | ||
137 | &u8500_dma40_device, | ||
138 | &db8500_pmu_device, | ||
139 | }; | ||
140 | |||
141 | static resource_size_t __initdata db8500_gpio_base[] = { | ||
142 | U8500_GPIOBANK0_BASE, | ||
143 | U8500_GPIOBANK1_BASE, | ||
144 | U8500_GPIOBANK2_BASE, | ||
145 | U8500_GPIOBANK3_BASE, | ||
146 | U8500_GPIOBANK4_BASE, | ||
147 | U8500_GPIOBANK5_BASE, | ||
148 | U8500_GPIOBANK6_BASE, | ||
149 | U8500_GPIOBANK7_BASE, | ||
150 | U8500_GPIOBANK8_BASE, | ||
151 | }; | ||
152 | |||
153 | static void __init db8500_add_gpios(struct device *parent) | ||
154 | { | ||
155 | struct nmk_gpio_platform_data pdata = { | ||
156 | .supports_sleepmode = true, | ||
157 | }; | ||
158 | |||
159 | dbx500_add_gpios(parent, db8500_gpio_base, | ||
160 | ARRAY_SIZE(db8500_gpio_base), | ||
161 | IRQ_DB8500_GPIO0, &pdata); | ||
162 | dbx500_add_pinctrl(parent, "pinctrl-db8500", U8500_PRCMU_BASE); | ||
163 | } | ||
164 | |||
165 | static int usb_db8500_dma_cfg[] = { | ||
166 | DB8500_DMA_DEV38_USB_OTG_IEP_AND_OEP_1_9, | ||
167 | DB8500_DMA_DEV37_USB_OTG_IEP_AND_OEP_2_10, | ||
168 | DB8500_DMA_DEV36_USB_OTG_IEP_AND_OEP_3_11, | ||
169 | DB8500_DMA_DEV19_USB_OTG_IEP_AND_OEP_4_12, | ||
170 | DB8500_DMA_DEV18_USB_OTG_IEP_AND_OEP_5_13, | ||
171 | DB8500_DMA_DEV17_USB_OTG_IEP_AND_OEP_6_14, | ||
172 | DB8500_DMA_DEV16_USB_OTG_IEP_AND_OEP_7_15, | ||
173 | DB8500_DMA_DEV39_USB_OTG_IEP_AND_OEP_8 | ||
174 | }; | ||
175 | |||
176 | static const char *db8500_read_soc_id(void) | 119 | static const char *db8500_read_soc_id(void) |
177 | { | 120 | { |
178 | void __iomem *uid = __io_address(U8500_BB_UID_BASE); | 121 | void __iomem *uid = __io_address(U8500_BB_UID_BASE); |
@@ -192,60 +135,22 @@ static struct device * __init db8500_soc_device_init(void) | |||
192 | return ux500_soc_device_init(soc_id); | 135 | return ux500_soc_device_init(soc_id); |
193 | } | 136 | } |
194 | 137 | ||
195 | /* | ||
196 | * This function is called from the board init | ||
197 | */ | ||
198 | struct device * __init u8500_init_devices(void) | ||
199 | { | ||
200 | struct device *parent; | ||
201 | int i; | ||
202 | |||
203 | parent = db8500_soc_device_init(); | ||
204 | |||
205 | db8500_add_rtc(parent); | ||
206 | db8500_add_gpios(parent); | ||
207 | db8500_add_usb(parent, usb_db8500_dma_cfg, usb_db8500_dma_cfg); | ||
208 | |||
209 | for (i = 0; i < ARRAY_SIZE(platform_devs); i++) | ||
210 | platform_devs[i]->dev.parent = parent; | ||
211 | |||
212 | platform_add_devices(platform_devs, ARRAY_SIZE(platform_devs)); | ||
213 | |||
214 | return parent; | ||
215 | } | ||
216 | |||
217 | #ifdef CONFIG_MACH_UX500_DT | 138 | #ifdef CONFIG_MACH_UX500_DT |
218 | static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { | 139 | static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { |
219 | /* Requires call-back bindings. */ | 140 | /* Requires call-back bindings. */ |
220 | OF_DEV_AUXDATA("arm,cortex-a9-pmu", 0, "arm-pmu", &db8500_pmu_platdata), | 141 | OF_DEV_AUXDATA("arm,cortex-a9-pmu", 0, "arm-pmu", &db8500_pmu_platdata), |
221 | /* Requires DMA bindings. */ | 142 | /* Requires DMA bindings. */ |
222 | OF_DEV_AUXDATA("arm,pl011", 0x80120000, "uart0", NULL), | 143 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000, |
223 | OF_DEV_AUXDATA("arm,pl011", 0x80121000, "uart1", NULL), | 144 | "ux500-msp-i2s.0", &msp0_platform_data), |
224 | OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", NULL), | 145 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80124000, |
225 | OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0", &ssp0_plat), | 146 | "ux500-msp-i2s.1", &msp1_platform_data), |
226 | OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0", NULL), | 147 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80117000, |
227 | OF_DEV_AUXDATA("arm,pl18x", 0x80118000, "sdi1", NULL), | 148 | "ux500-msp-i2s.2", &msp2_platform_data), |
228 | OF_DEV_AUXDATA("arm,pl18x", 0x80005000, "sdi2", NULL), | 149 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000, |
229 | OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4", NULL), | 150 | "ux500-msp-i2s.3", &msp3_platform_data), |
230 | /* Requires clock name bindings. */ | 151 | /* Requires non-DT:able platform data. */ |
231 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL), | ||
232 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL), | ||
233 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e000, "gpio.2", NULL), | ||
234 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e080, "gpio.3", NULL), | ||
235 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e100, "gpio.4", NULL), | ||
236 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8000e180, "gpio.5", NULL), | ||
237 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e000, "gpio.6", NULL), | ||
238 | OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e080, "gpio.7", NULL), | ||
239 | OF_DEV_AUXDATA("st,nomadik-gpio", 0xa03fe000, "gpio.8", NULL), | ||
240 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x80004000, "nmk-i2c.0", NULL), | ||
241 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x80122000, "nmk-i2c.1", NULL), | ||
242 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL), | ||
243 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL), | ||
244 | OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL), | ||
245 | OF_DEV_AUXDATA("stericsson,db8500-musb", 0xa03e0000, "musb-ux500.0", NULL), | ||
246 | OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu", | 152 | OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu", |
247 | &db8500_prcmu_pdata), | 153 | &db8500_prcmu_pdata), |
248 | OF_DEV_AUXDATA("smsc,lan9115", 0x50000000, "smsc911x.0", NULL), | ||
249 | OF_DEV_AUXDATA("stericsson,ux500-cryp", 0xa03cb000, "cryp1", NULL), | 154 | OF_DEV_AUXDATA("stericsson,ux500-cryp", 0xa03cb000, "cryp1", NULL), |
250 | OF_DEV_AUXDATA("stericsson,ux500-hash", 0xa03c2000, "hash1", NULL), | 155 | OF_DEV_AUXDATA("stericsson,ux500-hash", 0xa03c2000, "hash1", NULL), |
251 | OF_DEV_AUXDATA("stericsson,snd-soc-mop500", 0, "snd-soc-mop500.0", | 156 | OF_DEV_AUXDATA("stericsson,snd-soc-mop500", 0, "snd-soc-mop500.0", |
@@ -253,17 +158,6 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { | |||
253 | /* Requires device name bindings. */ | 158 | /* Requires device name bindings. */ |
254 | OF_DEV_AUXDATA("stericsson,db8500-pinctrl", U8500_PRCMU_BASE, | 159 | OF_DEV_AUXDATA("stericsson,db8500-pinctrl", U8500_PRCMU_BASE, |
255 | "pinctrl-db8500", NULL), | 160 | "pinctrl-db8500", NULL), |
256 | /* Requires clock name and DMA bindings. */ | ||
257 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80123000, | ||
258 | "ux500-msp-i2s.0", &msp0_platform_data), | ||
259 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80124000, | ||
260 | "ux500-msp-i2s.1", &msp1_platform_data), | ||
261 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80117000, | ||
262 | "ux500-msp-i2s.2", &msp2_platform_data), | ||
263 | OF_DEV_AUXDATA("stericsson,ux500-msp-i2s", 0x80125000, | ||
264 | "ux500-msp-i2s.3", &msp3_platform_data), | ||
265 | /* Requires clock name bindings and channel address lookup table. */ | ||
266 | OF_DEV_AUXDATA("stericsson,db8500-dma40", 0x801C0000, "dma40.0", NULL), | ||
267 | {}, | 161 | {}, |
268 | }; | 162 | }; |
269 | 163 | ||
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 5d7eebcabc63..f84d4397896b 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -78,9 +78,17 @@ void __init ux500_init_irq(void) | |||
78 | if (cpu_is_u8500_family()) { | 78 | if (cpu_is_u8500_family()) { |
79 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); | 79 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); |
80 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); | 80 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); |
81 | u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE, | 81 | |
82 | U8500_CLKRST3_BASE, U8500_CLKRST5_BASE, | 82 | if (of_have_populated_dt()) |
83 | U8500_CLKRST6_BASE); | 83 | u8500_of_clk_init(U8500_CLKRST1_BASE, |
84 | U8500_CLKRST2_BASE, | ||
85 | U8500_CLKRST3_BASE, | ||
86 | U8500_CLKRST5_BASE, | ||
87 | U8500_CLKRST6_BASE); | ||
88 | else | ||
89 | u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE, | ||
90 | U8500_CLKRST3_BASE, U8500_CLKRST5_BASE, | ||
91 | U8500_CLKRST6_BASE); | ||
84 | } else if (cpu_is_u9540()) { | 92 | } else if (cpu_is_u9540()) { |
85 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); | 93 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); |
86 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); | 94 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); |
@@ -96,11 +104,6 @@ void __init ux500_init_irq(void) | |||
96 | } | 104 | } |
97 | } | 105 | } |
98 | 106 | ||
99 | void __init ux500_init_late(void) | ||
100 | { | ||
101 | mop500_uib_init(); | ||
102 | } | ||
103 | |||
104 | static const char * __init ux500_get_machine(void) | 107 | static const char * __init ux500_get_machine(void) |
105 | { | 108 | { |
106 | return kasprintf(GFP_KERNEL, "DB%4x", dbx500_partnumber()); | 109 | return kasprintf(GFP_KERNEL, "DB%4x", dbx500_partnumber()); |
diff --git a/arch/arm/mach-ux500/devices-common.c b/arch/arm/mach-ux500/devices-common.c deleted file mode 100644 index f71b3d7bd4fb..000000000000 --- a/arch/arm/mach-ux500/devices-common.c +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | ||
5 | * License terms: GNU General Public License (GPL), version 2. | ||
6 | */ | ||
7 | |||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/dma-mapping.h> | ||
10 | #include <linux/err.h> | ||
11 | #include <linux/irq.h> | ||
12 | #include <linux/slab.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
15 | |||
16 | #include "irqs.h" | ||
17 | |||
18 | #include "devices-common.h" | ||
19 | |||
20 | static struct platform_device * | ||
21 | dbx500_add_gpio(struct device *parent, int id, resource_size_t addr, int irq, | ||
22 | struct nmk_gpio_platform_data *pdata) | ||
23 | { | ||
24 | struct resource resources[] = { | ||
25 | { | ||
26 | .start = addr, | ||
27 | .end = addr + 127, | ||
28 | .flags = IORESOURCE_MEM, | ||
29 | }, | ||
30 | { | ||
31 | .start = irq, | ||
32 | .end = irq, | ||
33 | .flags = IORESOURCE_IRQ, | ||
34 | } | ||
35 | }; | ||
36 | |||
37 | return platform_device_register_resndata( | ||
38 | parent, | ||
39 | "gpio", | ||
40 | id, | ||
41 | resources, | ||
42 | ARRAY_SIZE(resources), | ||
43 | pdata, | ||
44 | sizeof(*pdata)); | ||
45 | } | ||
46 | |||
47 | void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num, | ||
48 | int irq, struct nmk_gpio_platform_data *pdata) | ||
49 | { | ||
50 | int first = 0; | ||
51 | int i; | ||
52 | |||
53 | for (i = 0; i < num; i++, first += 32, irq++) { | ||
54 | pdata->first_gpio = first; | ||
55 | pdata->first_irq = NOMADIK_GPIO_TO_IRQ(first); | ||
56 | pdata->num_gpio = 32; | ||
57 | |||
58 | dbx500_add_gpio(parent, i, base[i], irq, pdata); | ||
59 | } | ||
60 | } | ||
diff --git a/arch/arm/mach-ux500/devices-common.h b/arch/arm/mach-ux500/devices-common.h deleted file mode 100644 index 96fa4ac89e2e..000000000000 --- a/arch/arm/mach-ux500/devices-common.h +++ /dev/null | |||
@@ -1,149 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | ||
5 | * License terms: GNU General Public License (GPL), version 2. | ||
6 | */ | ||
7 | |||
8 | #ifndef __DEVICES_COMMON_H | ||
9 | #define __DEVICES_COMMON_H | ||
10 | |||
11 | #include <linux/platform_device.h> | ||
12 | #include <linux/dma-mapping.h> | ||
13 | #include <linux/sys_soc.h> | ||
14 | #include <linux/amba/bus.h> | ||
15 | #include <linux/platform_data/i2c-nomadik.h> | ||
16 | #include <linux/platform_data/crypto-ux500.h> | ||
17 | |||
18 | struct spi_master_cntlr; | ||
19 | |||
20 | static inline struct amba_device * | ||
21 | dbx500_add_msp_spi(struct device *parent, const char *name, | ||
22 | resource_size_t base, int irq, | ||
23 | struct spi_master_cntlr *pdata) | ||
24 | { | ||
25 | return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, | ||
26 | pdata, 0); | ||
27 | } | ||
28 | |||
29 | static inline struct amba_device * | ||
30 | dbx500_add_spi(struct device *parent, const char *name, resource_size_t base, | ||
31 | int irq, struct spi_master_cntlr *pdata, | ||
32 | u32 periphid) | ||
33 | { | ||
34 | return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, | ||
35 | pdata, periphid); | ||
36 | } | ||
37 | |||
38 | struct mmci_platform_data; | ||
39 | |||
40 | static inline struct amba_device * | ||
41 | dbx500_add_sdi(struct device *parent, const char *name, resource_size_t base, | ||
42 | int irq, struct mmci_platform_data *pdata, u32 periphid) | ||
43 | { | ||
44 | return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, | ||
45 | pdata, periphid); | ||
46 | } | ||
47 | |||
48 | struct amba_pl011_data; | ||
49 | |||
50 | static inline struct amba_device * | ||
51 | dbx500_add_uart(struct device *parent, const char *name, resource_size_t base, | ||
52 | int irq, struct amba_pl011_data *pdata) | ||
53 | { | ||
54 | return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0); | ||
55 | } | ||
56 | |||
57 | struct nmk_i2c_controller; | ||
58 | |||
59 | static inline struct amba_device * | ||
60 | dbx500_add_i2c(struct device *parent, int id, resource_size_t base, int irq, | ||
61 | struct nmk_i2c_controller *data) | ||
62 | { | ||
63 | /* Conjure a name similar to what the platform device used to have */ | ||
64 | char name[16]; | ||
65 | |||
66 | snprintf(name, sizeof(name), "nmk-i2c.%d", id); | ||
67 | return amba_apb_device_add(parent, name, base, SZ_4K, irq, 0, data, 0); | ||
68 | } | ||
69 | |||
70 | static inline struct amba_device * | ||
71 | dbx500_add_rtc(struct device *parent, resource_size_t base, int irq) | ||
72 | { | ||
73 | return amba_apb_device_add(parent, "rtc-pl031", base, SZ_4K, irq, | ||
74 | 0, NULL, 0); | ||
75 | } | ||
76 | |||
77 | struct cryp_platform_data; | ||
78 | |||
79 | static inline struct platform_device * | ||
80 | dbx500_add_cryp1(struct device *parent, int id, resource_size_t base, int irq, | ||
81 | struct cryp_platform_data *pdata) | ||
82 | { | ||
83 | struct resource res[] = { | ||
84 | DEFINE_RES_MEM(base, SZ_4K), | ||
85 | DEFINE_RES_IRQ(irq), | ||
86 | }; | ||
87 | |||
88 | struct platform_device_info pdevinfo = { | ||
89 | .parent = parent, | ||
90 | .name = "cryp1", | ||
91 | .id = id, | ||
92 | .res = res, | ||
93 | .num_res = ARRAY_SIZE(res), | ||
94 | .data = pdata, | ||
95 | .size_data = sizeof(*pdata), | ||
96 | .dma_mask = DMA_BIT_MASK(32), | ||
97 | }; | ||
98 | |||
99 | return platform_device_register_full(&pdevinfo); | ||
100 | } | ||
101 | |||
102 | struct hash_platform_data; | ||
103 | |||
104 | static inline struct platform_device * | ||
105 | dbx500_add_hash1(struct device *parent, int id, resource_size_t base, | ||
106 | struct hash_platform_data *pdata) | ||
107 | { | ||
108 | struct resource res[] = { | ||
109 | DEFINE_RES_MEM(base, SZ_4K), | ||
110 | }; | ||
111 | |||
112 | struct platform_device_info pdevinfo = { | ||
113 | .parent = parent, | ||
114 | .name = "hash1", | ||
115 | .id = id, | ||
116 | .res = res, | ||
117 | .num_res = ARRAY_SIZE(res), | ||
118 | .data = pdata, | ||
119 | .size_data = sizeof(*pdata), | ||
120 | .dma_mask = DMA_BIT_MASK(32), | ||
121 | }; | ||
122 | |||
123 | return platform_device_register_full(&pdevinfo); | ||
124 | } | ||
125 | |||
126 | struct nmk_gpio_platform_data; | ||
127 | |||
128 | void dbx500_add_gpios(struct device *parent, resource_size_t *base, int num, | ||
129 | int irq, struct nmk_gpio_platform_data *pdata); | ||
130 | |||
131 | static inline void | ||
132 | dbx500_add_pinctrl(struct device *parent, const char *name, | ||
133 | resource_size_t base) | ||
134 | { | ||
135 | struct resource res[] = { | ||
136 | DEFINE_RES_MEM(base, SZ_8K), | ||
137 | }; | ||
138 | struct platform_device_info pdevinfo = { | ||
139 | .parent = parent, | ||
140 | .name = name, | ||
141 | .id = -1, | ||
142 | .res = res, | ||
143 | .num_res = ARRAY_SIZE(res), | ||
144 | }; | ||
145 | |||
146 | platform_device_register_full(&pdevinfo); | ||
147 | } | ||
148 | |||
149 | #endif | ||
diff --git a/arch/arm/mach-ux500/devices-db8500.c b/arch/arm/mach-ux500/devices-db8500.c index bc316062e0c2..c59f89d058ff 100644 --- a/arch/arm/mach-ux500/devices-db8500.c +++ b/arch/arm/mach-ux500/devices-db8500.c | |||
@@ -9,10 +9,8 @@ | |||
9 | #include <linux/platform_device.h> | 9 | #include <linux/platform_device.h> |
10 | #include <linux/interrupt.h> | 10 | #include <linux/interrupt.h> |
11 | #include <linux/io.h> | 11 | #include <linux/io.h> |
12 | #include <linux/gpio.h> | ||
13 | #include <linux/amba/bus.h> | 12 | #include <linux/amba/bus.h> |
14 | #include <linux/amba/pl022.h> | 13 | #include <linux/amba/pl022.h> |
15 | #include <linux/platform_data/dma-ste-dma40.h> | ||
16 | #include <linux/mfd/dbx500-prcmu.h> | 14 | #include <linux/mfd/dbx500-prcmu.h> |
17 | 15 | ||
18 | #include "setup.h" | 16 | #include "setup.h" |
@@ -20,62 +18,6 @@ | |||
20 | 18 | ||
21 | #include "db8500-regs.h" | 19 | #include "db8500-regs.h" |
22 | #include "devices-db8500.h" | 20 | #include "devices-db8500.h" |
23 | #include "ste-dma40-db8500.h" | ||
24 | |||
25 | static struct resource dma40_resources[] = { | ||
26 | [0] = { | ||
27 | .start = U8500_DMA_BASE, | ||
28 | .end = U8500_DMA_BASE + SZ_4K - 1, | ||
29 | .flags = IORESOURCE_MEM, | ||
30 | .name = "base", | ||
31 | }, | ||
32 | [1] = { | ||
33 | .start = U8500_DMA_LCPA_BASE, | ||
34 | .end = U8500_DMA_LCPA_BASE + 2 * SZ_1K - 1, | ||
35 | .flags = IORESOURCE_MEM, | ||
36 | .name = "lcpa", | ||
37 | }, | ||
38 | [2] = { | ||
39 | .start = IRQ_DB8500_DMA, | ||
40 | .end = IRQ_DB8500_DMA, | ||
41 | .flags = IORESOURCE_IRQ, | ||
42 | } | ||
43 | }; | ||
44 | |||
45 | struct stedma40_platform_data dma40_plat_data = { | ||
46 | .disabled_channels = {-1}, | ||
47 | }; | ||
48 | |||
49 | struct platform_device u8500_dma40_device = { | ||
50 | .dev = { | ||
51 | .platform_data = &dma40_plat_data, | ||
52 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
53 | }, | ||
54 | .name = "dma40", | ||
55 | .id = 0, | ||
56 | .num_resources = ARRAY_SIZE(dma40_resources), | ||
57 | .resource = dma40_resources | ||
58 | }; | ||
59 | |||
60 | struct resource keypad_resources[] = { | ||
61 | [0] = { | ||
62 | .start = U8500_SKE_BASE, | ||
63 | .end = U8500_SKE_BASE + SZ_4K - 1, | ||
64 | .flags = IORESOURCE_MEM, | ||
65 | }, | ||
66 | [1] = { | ||
67 | .start = IRQ_DB8500_KB, | ||
68 | .end = IRQ_DB8500_KB, | ||
69 | .flags = IORESOURCE_IRQ, | ||
70 | }, | ||
71 | }; | ||
72 | |||
73 | struct platform_device u8500_ske_keypad_device = { | ||
74 | .name = "nmk-ske-keypad", | ||
75 | .id = -1, | ||
76 | .num_resources = ARRAY_SIZE(keypad_resources), | ||
77 | .resource = keypad_resources, | ||
78 | }; | ||
79 | 21 | ||
80 | struct prcmu_pdata db8500_prcmu_pdata = { | 22 | struct prcmu_pdata db8500_prcmu_pdata = { |
81 | .ab_platdata = &ab8500_platdata, | 23 | .ab_platdata = &ab8500_platdata, |
@@ -84,39 +26,3 @@ struct prcmu_pdata db8500_prcmu_pdata = { | |||
84 | .version_offset = DB8500_PRCMU_FW_VERSION_OFFSET, | 26 | .version_offset = DB8500_PRCMU_FW_VERSION_OFFSET, |
85 | .legacy_offset = DB8500_PRCMU_LEGACY_OFFSET, | 27 | .legacy_offset = DB8500_PRCMU_LEGACY_OFFSET, |
86 | }; | 28 | }; |
87 | |||
88 | static struct resource db8500_prcmu_res[] = { | ||
89 | { | ||
90 | .name = "prcmu", | ||
91 | .start = U8500_PRCMU_BASE, | ||
92 | .end = U8500_PRCMU_BASE + SZ_8K - 1, | ||
93 | .flags = IORESOURCE_MEM, | ||
94 | }, | ||
95 | { | ||
96 | .name = "prcmu-tcdm", | ||
97 | .start = U8500_PRCMU_TCDM_BASE, | ||
98 | .end = U8500_PRCMU_TCDM_BASE + SZ_4K - 1, | ||
99 | .flags = IORESOURCE_MEM, | ||
100 | }, | ||
101 | { | ||
102 | .name = "irq", | ||
103 | .start = IRQ_DB8500_PRCMU1, | ||
104 | .end = IRQ_DB8500_PRCMU1, | ||
105 | .flags = IORESOURCE_IRQ, | ||
106 | }, | ||
107 | { | ||
108 | .name = "prcmu-tcpm", | ||
109 | .start = U8500_PRCMU_TCPM_BASE, | ||
110 | .end = U8500_PRCMU_TCPM_BASE + SZ_32K - 1, | ||
111 | .flags = IORESOURCE_MEM, | ||
112 | }, | ||
113 | }; | ||
114 | |||
115 | struct platform_device db8500_prcmu_device = { | ||
116 | .name = "db8500-prcmu", | ||
117 | .resource = db8500_prcmu_res, | ||
118 | .num_resources = ARRAY_SIZE(db8500_prcmu_res), | ||
119 | .dev = { | ||
120 | .platform_data = &db8500_prcmu_pdata, | ||
121 | }, | ||
122 | }; | ||
diff --git a/arch/arm/mach-ux500/devices-db8500.h b/arch/arm/mach-ux500/devices-db8500.h index 321998320f98..b8ffc9979bb2 100644 --- a/arch/arm/mach-ux500/devices-db8500.h +++ b/arch/arm/mach-ux500/devices-db8500.h | |||
@@ -8,122 +8,12 @@ | |||
8 | #ifndef __DEVICES_DB8500_H | 8 | #ifndef __DEVICES_DB8500_H |
9 | #define __DEVICES_DB8500_H | 9 | #define __DEVICES_DB8500_H |
10 | 10 | ||
11 | #include <linux/platform_data/usb-musb-ux500.h> | ||
12 | #include "irqs.h" | 11 | #include "irqs.h" |
13 | #include "db8500-regs.h" | 12 | #include "db8500-regs.h" |
14 | #include "devices-common.h" | ||
15 | 13 | ||
16 | struct ske_keypad_platform_data; | ||
17 | struct pl022_ssp_controller; | ||
18 | struct platform_device; | 14 | struct platform_device; |
19 | 15 | ||
20 | extern struct ab8500_platform_data ab8500_platdata; | 16 | extern struct ab8500_platform_data ab8500_platdata; |
21 | extern struct prcmu_pdata db8500_prcmu_pdata; | 17 | extern struct prcmu_pdata db8500_prcmu_pdata; |
22 | extern struct platform_device db8500_prcmu_device; | ||
23 | 18 | ||
24 | static inline struct platform_device * | ||
25 | db8500_add_ske_keypad(struct device *parent, | ||
26 | struct ske_keypad_platform_data *pdata, | ||
27 | size_t size) | ||
28 | { | ||
29 | struct resource resources[] = { | ||
30 | DEFINE_RES_MEM(U8500_SKE_BASE, SZ_4K), | ||
31 | DEFINE_RES_IRQ(IRQ_DB8500_KB), | ||
32 | }; | ||
33 | |||
34 | return platform_device_register_resndata(parent, "nmk-ske-keypad", -1, | ||
35 | resources, 2, pdata, size); | ||
36 | } | ||
37 | |||
38 | static inline struct amba_device * | ||
39 | db8500_add_ssp(struct device *parent, const char *name, resource_size_t base, | ||
40 | int irq, struct pl022_ssp_controller *pdata) | ||
41 | { | ||
42 | return amba_ahb_device_add(parent, name, base, SZ_4K, irq, 0, pdata, 0); | ||
43 | } | ||
44 | |||
45 | #define db8500_add_i2c0(parent, pdata) \ | ||
46 | dbx500_add_i2c(parent, 0, U8500_I2C0_BASE, IRQ_DB8500_I2C0, pdata) | ||
47 | #define db8500_add_i2c1(parent, pdata) \ | ||
48 | dbx500_add_i2c(parent, 1, U8500_I2C1_BASE, IRQ_DB8500_I2C1, pdata) | ||
49 | #define db8500_add_i2c2(parent, pdata) \ | ||
50 | dbx500_add_i2c(parent, 2, U8500_I2C2_BASE, IRQ_DB8500_I2C2, pdata) | ||
51 | #define db8500_add_i2c3(parent, pdata) \ | ||
52 | dbx500_add_i2c(parent, 3, U8500_I2C3_BASE, IRQ_DB8500_I2C3, pdata) | ||
53 | #define db8500_add_i2c4(parent, pdata) \ | ||
54 | dbx500_add_i2c(parent, 4, U8500_I2C4_BASE, IRQ_DB8500_I2C4, pdata) | ||
55 | |||
56 | #define db8500_add_msp0_spi(parent, pdata) \ | ||
57 | dbx500_add_msp_spi(parent, "msp0", U8500_MSP0_BASE, \ | ||
58 | IRQ_DB8500_MSP0, pdata) | ||
59 | #define db8500_add_msp1_spi(parent, pdata) \ | ||
60 | dbx500_add_msp_spi(parent, "msp1", U8500_MSP1_BASE, \ | ||
61 | IRQ_DB8500_MSP1, pdata) | ||
62 | #define db8500_add_msp2_spi(parent, pdata) \ | ||
63 | dbx500_add_msp_spi(parent, "msp2", U8500_MSP2_BASE, \ | ||
64 | IRQ_DB8500_MSP2, pdata) | ||
65 | #define db8500_add_msp3_spi(parent, pdata) \ | ||
66 | dbx500_add_msp_spi(parent, "msp3", U8500_MSP3_BASE, \ | ||
67 | IRQ_DB8500_MSP1, pdata) | ||
68 | |||
69 | #define db8500_add_rtc(parent) \ | ||
70 | dbx500_add_rtc(parent, U8500_RTC_BASE, IRQ_DB8500_RTC); | ||
71 | |||
72 | #define db8500_add_usb(parent, rx_cfg, tx_cfg) \ | ||
73 | ux500_add_usb(parent, U8500_USBOTG_BASE, \ | ||
74 | IRQ_DB8500_USBOTG, rx_cfg, tx_cfg) | ||
75 | |||
76 | #define db8500_add_sdi0(parent, pdata, pid) \ | ||
77 | dbx500_add_sdi(parent, "sdi0", U8500_SDI0_BASE, \ | ||
78 | IRQ_DB8500_SDMMC0, pdata, pid) | ||
79 | #define db8500_add_sdi1(parent, pdata, pid) \ | ||
80 | dbx500_add_sdi(parent, "sdi1", U8500_SDI1_BASE, \ | ||
81 | IRQ_DB8500_SDMMC1, pdata, pid) | ||
82 | #define db8500_add_sdi2(parent, pdata, pid) \ | ||
83 | dbx500_add_sdi(parent, "sdi2", U8500_SDI2_BASE, \ | ||
84 | IRQ_DB8500_SDMMC2, pdata, pid) | ||
85 | #define db8500_add_sdi3(parent, pdata, pid) \ | ||
86 | dbx500_add_sdi(parent, "sdi3", U8500_SDI3_BASE, \ | ||
87 | IRQ_DB8500_SDMMC3, pdata, pid) | ||
88 | #define db8500_add_sdi4(parent, pdata, pid) \ | ||
89 | dbx500_add_sdi(parent, "sdi4", U8500_SDI4_BASE, \ | ||
90 | IRQ_DB8500_SDMMC4, pdata, pid) | ||
91 | #define db8500_add_sdi5(parent, pdata, pid) \ | ||
92 | dbx500_add_sdi(parent, "sdi5", U8500_SDI5_BASE, \ | ||
93 | IRQ_DB8500_SDMMC5, pdata, pid) | ||
94 | |||
95 | #define db8500_add_ssp0(parent, pdata) \ | ||
96 | db8500_add_ssp(parent, "ssp0", U8500_SSP0_BASE, \ | ||
97 | IRQ_DB8500_SSP0, pdata) | ||
98 | #define db8500_add_ssp1(parent, pdata) \ | ||
99 | db8500_add_ssp(parent, "ssp1", U8500_SSP1_BASE, \ | ||
100 | IRQ_DB8500_SSP1, pdata) | ||
101 | |||
102 | #define db8500_add_spi0(parent, pdata) \ | ||
103 | dbx500_add_spi(parent, "spi0", U8500_SPI0_BASE, \ | ||
104 | IRQ_DB8500_SPI0, pdata, 0) | ||
105 | #define db8500_add_spi1(parent, pdata) \ | ||
106 | dbx500_add_spi(parent, "spi1", U8500_SPI1_BASE, \ | ||
107 | IRQ_DB8500_SPI1, pdata, 0) | ||
108 | #define db8500_add_spi2(parent, pdata) \ | ||
109 | dbx500_add_spi(parent, "spi2", U8500_SPI2_BASE, \ | ||
110 | IRQ_DB8500_SPI2, pdata, 0) | ||
111 | #define db8500_add_spi3(parent, pdata) \ | ||
112 | dbx500_add_spi(parent, "spi3", U8500_SPI3_BASE, \ | ||
113 | IRQ_DB8500_SPI3, pdata, 0) | ||
114 | |||
115 | #define db8500_add_uart0(parent, pdata) \ | ||
116 | dbx500_add_uart(parent, "uart0", U8500_UART0_BASE, \ | ||
117 | IRQ_DB8500_UART0, pdata) | ||
118 | #define db8500_add_uart1(parent, pdata) \ | ||
119 | dbx500_add_uart(parent, "uart1", U8500_UART1_BASE, \ | ||
120 | IRQ_DB8500_UART1, pdata) | ||
121 | #define db8500_add_uart2(parent, pdata) \ | ||
122 | dbx500_add_uart(parent, "uart2", U8500_UART2_BASE, \ | ||
123 | IRQ_DB8500_UART2, pdata) | ||
124 | |||
125 | #define db8500_add_cryp1(parent, pdata) \ | ||
126 | dbx500_add_cryp1(parent, -1, U8500_CRYP1_BASE, IRQ_DB8500_CRYP1, pdata) | ||
127 | #define db8500_add_hash1(parent, pdata) \ | ||
128 | dbx500_add_hash1(parent, -1, U8500_HASH1_BASE, pdata) | ||
129 | #endif | 19 | #endif |
diff --git a/arch/arm/mach-ux500/devices.h b/arch/arm/mach-ux500/devices.h index cbc6f1e4104d..5bca7c605cd6 100644 --- a/arch/arm/mach-ux500/devices.h +++ b/arch/arm/mach-ux500/devices.h | |||
@@ -10,14 +10,6 @@ | |||
10 | struct platform_device; | 10 | struct platform_device; |
11 | struct amba_device; | 11 | struct amba_device; |
12 | 12 | ||
13 | extern struct platform_device u8500_gpio_devs[]; | ||
14 | |||
15 | extern struct amba_device ux500_pl031_device; | 13 | extern struct amba_device ux500_pl031_device; |
16 | 14 | ||
17 | extern struct platform_device ux500_hash1_device; | ||
18 | extern struct platform_device ux500_cryp1_device; | ||
19 | |||
20 | extern struct platform_device u8500_dma40_device; | ||
21 | extern struct platform_device ux500_ske_keypad_device; | ||
22 | |||
23 | #endif | 15 | #endif |
diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h index 656324aad18e..bdb356498a74 100644 --- a/arch/arm/mach-ux500/setup.h +++ b/arch/arm/mach-ux500/setup.h | |||
@@ -24,7 +24,6 @@ extern void __init u8500_map_io(void); | |||
24 | extern struct device * __init u8500_init_devices(void); | 24 | extern struct device * __init u8500_init_devices(void); |
25 | 25 | ||
26 | extern void __init ux500_init_irq(void); | 26 | extern void __init ux500_init_irq(void); |
27 | extern void __init ux500_init_late(void); | ||
28 | 27 | ||
29 | extern struct device *ux500_soc_device_init(const char *soc_id); | 28 | extern struct device *ux500_soc_device_init(const char *soc_id); |
30 | 29 | ||
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c index b6bd0efcbe64..05a4ff78b3bd 100644 --- a/arch/arm/mach-ux500/timer.c +++ b/arch/arm/mach-ux500/timer.c | |||
@@ -97,8 +97,8 @@ dt_fail: | |||
97 | * sched_clock with higher rating then MTU since is always-on. | 97 | * sched_clock with higher rating then MTU since is always-on. |
98 | * | 98 | * |
99 | */ | 99 | */ |
100 | 100 | if (!of_have_populated_dt()) | |
101 | nmdk_timer_init(mtu_timer_base, IRQ_MTU0); | 101 | nmdk_timer_init(mtu_timer_base, IRQ_MTU0); |
102 | clksrc_dbx500_prcmu_init(prcmu_timer_base); | 102 | clksrc_dbx500_prcmu_init(prcmu_timer_base); |
103 | ux500_twd_init(); | 103 | ux500_twd_init(); |
104 | } | 104 | } |
diff --git a/arch/arm/mach-ux500/usb.c b/arch/arm/mach-ux500/usb.c deleted file mode 100644 index b7bd8d3a5507..000000000000 --- a/arch/arm/mach-ux500/usb.c +++ /dev/null | |||
@@ -1,135 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2011 | ||
3 | * | ||
4 | * Author: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> | ||
5 | * License terms: GNU General Public License (GPL) version 2 | ||
6 | */ | ||
7 | #include <linux/platform_device.h> | ||
8 | #include <linux/usb/musb.h> | ||
9 | #include <linux/dma-mapping.h> | ||
10 | #include <linux/platform_data/usb-musb-ux500.h> | ||
11 | #include <linux/platform_data/dma-ste-dma40.h> | ||
12 | |||
13 | #include "db8500-regs.h" | ||
14 | |||
15 | #define MUSB_DMA40_RX_CH { \ | ||
16 | .mode = STEDMA40_MODE_LOGICAL, \ | ||
17 | .dir = DMA_DEV_TO_MEM, \ | ||
18 | } | ||
19 | |||
20 | #define MUSB_DMA40_TX_CH { \ | ||
21 | .mode = STEDMA40_MODE_LOGICAL, \ | ||
22 | .dir = DMA_MEM_TO_DEV, \ | ||
23 | } | ||
24 | |||
25 | static struct stedma40_chan_cfg musb_dma_rx_ch[UX500_MUSB_DMA_NUM_RX_TX_CHANNELS] | ||
26 | = { | ||
27 | MUSB_DMA40_RX_CH, | ||
28 | MUSB_DMA40_RX_CH, | ||
29 | MUSB_DMA40_RX_CH, | ||
30 | MUSB_DMA40_RX_CH, | ||
31 | MUSB_DMA40_RX_CH, | ||
32 | MUSB_DMA40_RX_CH, | ||
33 | MUSB_DMA40_RX_CH, | ||
34 | MUSB_DMA40_RX_CH | ||
35 | }; | ||
36 | |||
37 | static struct stedma40_chan_cfg musb_dma_tx_ch[UX500_MUSB_DMA_NUM_RX_TX_CHANNELS] | ||
38 | = { | ||
39 | MUSB_DMA40_TX_CH, | ||
40 | MUSB_DMA40_TX_CH, | ||
41 | MUSB_DMA40_TX_CH, | ||
42 | MUSB_DMA40_TX_CH, | ||
43 | MUSB_DMA40_TX_CH, | ||
44 | MUSB_DMA40_TX_CH, | ||
45 | MUSB_DMA40_TX_CH, | ||
46 | MUSB_DMA40_TX_CH, | ||
47 | }; | ||
48 | |||
49 | static void *ux500_dma_rx_param_array[UX500_MUSB_DMA_NUM_RX_TX_CHANNELS] = { | ||
50 | &musb_dma_rx_ch[0], | ||
51 | &musb_dma_rx_ch[1], | ||
52 | &musb_dma_rx_ch[2], | ||
53 | &musb_dma_rx_ch[3], | ||
54 | &musb_dma_rx_ch[4], | ||
55 | &musb_dma_rx_ch[5], | ||
56 | &musb_dma_rx_ch[6], | ||
57 | &musb_dma_rx_ch[7] | ||
58 | }; | ||
59 | |||
60 | static void *ux500_dma_tx_param_array[UX500_MUSB_DMA_NUM_RX_TX_CHANNELS] = { | ||
61 | &musb_dma_tx_ch[0], | ||
62 | &musb_dma_tx_ch[1], | ||
63 | &musb_dma_tx_ch[2], | ||
64 | &musb_dma_tx_ch[3], | ||
65 | &musb_dma_tx_ch[4], | ||
66 | &musb_dma_tx_ch[5], | ||
67 | &musb_dma_tx_ch[6], | ||
68 | &musb_dma_tx_ch[7] | ||
69 | }; | ||
70 | |||
71 | static struct ux500_musb_board_data musb_board_data = { | ||
72 | .dma_rx_param_array = ux500_dma_rx_param_array, | ||
73 | .dma_tx_param_array = ux500_dma_tx_param_array, | ||
74 | .dma_filter = stedma40_filter, | ||
75 | }; | ||
76 | |||
77 | static struct musb_hdrc_platform_data musb_platform_data = { | ||
78 | .mode = MUSB_OTG, | ||
79 | .board_data = &musb_board_data, | ||
80 | }; | ||
81 | |||
82 | static struct resource usb_resources[] = { | ||
83 | [0] = { | ||
84 | .name = "usb-mem", | ||
85 | .flags = IORESOURCE_MEM, | ||
86 | }, | ||
87 | |||
88 | [1] = { | ||
89 | .name = "mc", /* hard-coded in musb */ | ||
90 | .flags = IORESOURCE_IRQ, | ||
91 | }, | ||
92 | }; | ||
93 | |||
94 | struct platform_device ux500_musb_device = { | ||
95 | .name = "musb-ux500", | ||
96 | .id = 0, | ||
97 | .dev = { | ||
98 | .platform_data = &musb_platform_data, | ||
99 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
100 | }, | ||
101 | .num_resources = ARRAY_SIZE(usb_resources), | ||
102 | .resource = usb_resources, | ||
103 | }; | ||
104 | |||
105 | static inline void ux500_usb_dma_update_rx_ch_config(int *dev_type) | ||
106 | { | ||
107 | u32 idx; | ||
108 | |||
109 | for (idx = 0; idx < UX500_MUSB_DMA_NUM_RX_TX_CHANNELS; idx++) | ||
110 | musb_dma_rx_ch[idx].dev_type = dev_type[idx]; | ||
111 | } | ||
112 | |||
113 | static inline void ux500_usb_dma_update_tx_ch_config(int *dev_type) | ||
114 | { | ||
115 | u32 idx; | ||
116 | |||
117 | for (idx = 0; idx < UX500_MUSB_DMA_NUM_RX_TX_CHANNELS; idx++) | ||
118 | musb_dma_tx_ch[idx].dev_type = dev_type[idx]; | ||
119 | } | ||
120 | |||
121 | void ux500_add_usb(struct device *parent, resource_size_t base, int irq, | ||
122 | int *dma_rx_cfg, int *dma_tx_cfg) | ||
123 | { | ||
124 | ux500_musb_device.resource[0].start = base; | ||
125 | ux500_musb_device.resource[0].end = base + SZ_64K - 1; | ||
126 | ux500_musb_device.resource[1].start = irq; | ||
127 | ux500_musb_device.resource[1].end = irq; | ||
128 | |||
129 | ux500_usb_dma_update_rx_ch_config(dma_rx_cfg); | ||
130 | ux500_usb_dma_update_tx_ch_config(dma_tx_cfg); | ||
131 | |||
132 | ux500_musb_device.dev.parent = parent; | ||
133 | |||
134 | platform_device_register(&ux500_musb_device); | ||
135 | } | ||
diff --git a/arch/arm/plat-samsung/init.c b/arch/arm/plat-samsung/init.c index 50a3ea0037db..aa9511b6914a 100644 --- a/arch/arm/plat-samsung/init.c +++ b/arch/arm/plat-samsung/init.c | |||
@@ -11,12 +11,18 @@ | |||
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | /* | ||
15 | * NOTE: Code in this file is not used on S3C64xx when booting with | ||
16 | * Device Tree support. | ||
17 | */ | ||
18 | |||
14 | #include <linux/init.h> | 19 | #include <linux/init.h> |
15 | #include <linux/module.h> | 20 | #include <linux/module.h> |
16 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
17 | #include <linux/ioport.h> | 22 | #include <linux/ioport.h> |
18 | #include <linux/serial_core.h> | 23 | #include <linux/serial_core.h> |
19 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/of.h> | ||
20 | 26 | ||
21 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
22 | 28 | ||
@@ -148,8 +154,12 @@ static int __init s3c_arch_init(void) | |||
148 | 154 | ||
149 | // do the correct init for cpu | 155 | // do the correct init for cpu |
150 | 156 | ||
151 | if (cpu == NULL) | 157 | if (cpu == NULL) { |
158 | /* Not needed when booting with device tree. */ | ||
159 | if (of_have_populated_dt()) | ||
160 | return 0; | ||
152 | panic("s3c_arch_init: NULL cpu\n"); | 161 | panic("s3c_arch_init: NULL cpu\n"); |
162 | } | ||
153 | 163 | ||
154 | ret = (cpu->init)(); | 164 | ret = (cpu->init)(); |
155 | if (ret != 0) | 165 | if (ret != 0) |
diff --git a/drivers/clk/ux500/Makefile b/drivers/clk/ux500/Makefile index c6a806ed0e8c..521483f0ba33 100644 --- a/drivers/clk/ux500/Makefile +++ b/drivers/clk/ux500/Makefile | |||
@@ -8,6 +8,7 @@ obj-y += clk-prcmu.o | |||
8 | obj-y += clk-sysctrl.o | 8 | obj-y += clk-sysctrl.o |
9 | 9 | ||
10 | # Clock definitions | 10 | # Clock definitions |
11 | obj-y += u8500_of_clk.o | ||
11 | obj-y += u8500_clk.o | 12 | obj-y += u8500_clk.o |
12 | obj-y += u9540_clk.o | 13 | obj-y += u9540_clk.o |
13 | obj-y += u8540_clk.o | 14 | obj-y += u8540_clk.o |
diff --git a/drivers/clk/ux500/u8500_of_clk.c b/drivers/clk/ux500/u8500_of_clk.c new file mode 100644 index 000000000000..cdeff299de26 --- /dev/null +++ b/drivers/clk/ux500/u8500_of_clk.c | |||
@@ -0,0 +1,559 @@ | |||
1 | /* | ||
2 | * Clock definitions for u8500 platform. | ||
3 | * | ||
4 | * Copyright (C) 2012 ST-Ericsson SA | ||
5 | * Author: Ulf Hansson <ulf.hansson@linaro.org> | ||
6 | * | ||
7 | * License terms: GNU General Public License (GPL) version 2 | ||
8 | */ | ||
9 | |||
10 | #include <linux/of.h> | ||
11 | #include <linux/clk.h> | ||
12 | #include <linux/clkdev.h> | ||
13 | #include <linux/clk-provider.h> | ||
14 | #include <linux/mfd/dbx500-prcmu.h> | ||
15 | #include <linux/platform_data/clk-ux500.h> | ||
16 | #include "clk.h" | ||
17 | |||
18 | #define PRCC_NUM_PERIPH_CLUSTERS 6 | ||
19 | #define PRCC_PERIPHS_PER_CLUSTER 32 | ||
20 | |||
21 | static struct clk *prcmu_clk[PRCMU_NUM_CLKS]; | ||
22 | static struct clk *prcc_pclk[(PRCC_NUM_PERIPH_CLUSTERS + 1) * PRCC_PERIPHS_PER_CLUSTER]; | ||
23 | static struct clk *prcc_kclk[(PRCC_NUM_PERIPH_CLUSTERS + 1) * PRCC_PERIPHS_PER_CLUSTER]; | ||
24 | |||
25 | #define PRCC_SHOW(clk, base, bit) \ | ||
26 | clk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit] | ||
27 | #define PRCC_PCLK_STORE(clk, base, bit) \ | ||
28 | prcc_pclk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit] = clk | ||
29 | #define PRCC_KCLK_STORE(clk, base, bit) \ | ||
30 | prcc_kclk[(base * PRCC_PERIPHS_PER_CLUSTER) + bit] = clk | ||
31 | |||
32 | struct clk *ux500_twocell_get(struct of_phandle_args *clkspec, void *data) | ||
33 | { | ||
34 | struct clk **clk_data = data; | ||
35 | unsigned int base, bit; | ||
36 | |||
37 | if (clkspec->args_count != 2) | ||
38 | return ERR_PTR(-EINVAL); | ||
39 | |||
40 | base = clkspec->args[0]; | ||
41 | bit = clkspec->args[1]; | ||
42 | |||
43 | if (base != 1 && base != 2 && base != 3 && base != 5 && base != 6) { | ||
44 | pr_err("%s: invalid PRCC base %d\n", __func__, base); | ||
45 | return ERR_PTR(-EINVAL); | ||
46 | } | ||
47 | |||
48 | return PRCC_SHOW(clk_data, base, bit); | ||
49 | } | ||
50 | |||
51 | static const struct of_device_id u8500_clk_of_match[] = { | ||
52 | { .compatible = "stericsson,u8500-clks", }, | ||
53 | { }, | ||
54 | }; | ||
55 | |||
56 | void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, | ||
57 | u32 clkrst5_base, u32 clkrst6_base) | ||
58 | { | ||
59 | struct prcmu_fw_version *fw_version; | ||
60 | struct device_node *np = NULL; | ||
61 | struct device_node *child = NULL; | ||
62 | const char *sgaclk_parent = NULL; | ||
63 | struct clk *clk, *rtc_clk, *twd_clk; | ||
64 | |||
65 | if (of_have_populated_dt()) | ||
66 | np = of_find_matching_node(NULL, u8500_clk_of_match); | ||
67 | if (!np) { | ||
68 | pr_err("Either DT or U8500 Clock node not found\n"); | ||
69 | return; | ||
70 | } | ||
71 | |||
72 | /* Clock sources */ | ||
73 | clk = clk_reg_prcmu_gate("soc0_pll", NULL, PRCMU_PLLSOC0, | ||
74 | CLK_IS_ROOT|CLK_IGNORE_UNUSED); | ||
75 | prcmu_clk[PRCMU_PLLSOC0] = clk; | ||
76 | |||
77 | clk = clk_reg_prcmu_gate("soc1_pll", NULL, PRCMU_PLLSOC1, | ||
78 | CLK_IS_ROOT|CLK_IGNORE_UNUSED); | ||
79 | prcmu_clk[PRCMU_PLLSOC1] = clk; | ||
80 | |||
81 | clk = clk_reg_prcmu_gate("ddr_pll", NULL, PRCMU_PLLDDR, | ||
82 | CLK_IS_ROOT|CLK_IGNORE_UNUSED); | ||
83 | prcmu_clk[PRCMU_PLLDDR] = clk; | ||
84 | |||
85 | /* FIXME: Add sys, ulp and int clocks here. */ | ||
86 | |||
87 | rtc_clk = clk_register_fixed_rate(NULL, "rtc32k", "NULL", | ||
88 | CLK_IS_ROOT|CLK_IGNORE_UNUSED, | ||
89 | 32768); | ||
90 | |||
91 | /* PRCMU clocks */ | ||
92 | fw_version = prcmu_get_fw_version(); | ||
93 | if (fw_version != NULL) { | ||
94 | switch (fw_version->project) { | ||
95 | case PRCMU_FW_PROJECT_U8500_C2: | ||
96 | case PRCMU_FW_PROJECT_U8520: | ||
97 | case PRCMU_FW_PROJECT_U8420: | ||
98 | sgaclk_parent = "soc0_pll"; | ||
99 | break; | ||
100 | default: | ||
101 | break; | ||
102 | } | ||
103 | } | ||
104 | |||
105 | if (sgaclk_parent) | ||
106 | clk = clk_reg_prcmu_gate("sgclk", sgaclk_parent, | ||
107 | PRCMU_SGACLK, 0); | ||
108 | else | ||
109 | clk = clk_reg_prcmu_gate("sgclk", NULL, | ||
110 | PRCMU_SGACLK, CLK_IS_ROOT); | ||
111 | prcmu_clk[PRCMU_SGACLK] = clk; | ||
112 | |||
113 | clk = clk_reg_prcmu_gate("uartclk", NULL, PRCMU_UARTCLK, CLK_IS_ROOT); | ||
114 | prcmu_clk[PRCMU_UARTCLK] = clk; | ||
115 | |||
116 | clk = clk_reg_prcmu_gate("msp02clk", NULL, PRCMU_MSP02CLK, CLK_IS_ROOT); | ||
117 | prcmu_clk[PRCMU_MSP02CLK] = clk; | ||
118 | |||
119 | clk = clk_reg_prcmu_gate("msp1clk", NULL, PRCMU_MSP1CLK, CLK_IS_ROOT); | ||
120 | prcmu_clk[PRCMU_MSP1CLK] = clk; | ||
121 | |||
122 | clk = clk_reg_prcmu_gate("i2cclk", NULL, PRCMU_I2CCLK, CLK_IS_ROOT); | ||
123 | prcmu_clk[PRCMU_I2CCLK] = clk; | ||
124 | |||
125 | clk = clk_reg_prcmu_gate("slimclk", NULL, PRCMU_SLIMCLK, CLK_IS_ROOT); | ||
126 | prcmu_clk[PRCMU_SLIMCLK] = clk; | ||
127 | |||
128 | clk = clk_reg_prcmu_gate("per1clk", NULL, PRCMU_PER1CLK, CLK_IS_ROOT); | ||
129 | prcmu_clk[PRCMU_PER1CLK] = clk; | ||
130 | |||
131 | clk = clk_reg_prcmu_gate("per2clk", NULL, PRCMU_PER2CLK, CLK_IS_ROOT); | ||
132 | prcmu_clk[PRCMU_PER2CLK] = clk; | ||
133 | |||
134 | clk = clk_reg_prcmu_gate("per3clk", NULL, PRCMU_PER3CLK, CLK_IS_ROOT); | ||
135 | prcmu_clk[PRCMU_PER3CLK] = clk; | ||
136 | |||
137 | clk = clk_reg_prcmu_gate("per5clk", NULL, PRCMU_PER5CLK, CLK_IS_ROOT); | ||
138 | prcmu_clk[PRCMU_PER5CLK] = clk; | ||
139 | |||
140 | clk = clk_reg_prcmu_gate("per6clk", NULL, PRCMU_PER6CLK, CLK_IS_ROOT); | ||
141 | prcmu_clk[PRCMU_PER6CLK] = clk; | ||
142 | |||
143 | clk = clk_reg_prcmu_gate("per7clk", NULL, PRCMU_PER7CLK, CLK_IS_ROOT); | ||
144 | prcmu_clk[PRCMU_PER7CLK] = clk; | ||
145 | |||
146 | clk = clk_reg_prcmu_scalable("lcdclk", NULL, PRCMU_LCDCLK, 0, | ||
147 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
148 | prcmu_clk[PRCMU_LCDCLK] = clk; | ||
149 | |||
150 | clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BMLCLK, CLK_IS_ROOT); | ||
151 | prcmu_clk[PRCMU_BMLCLK] = clk; | ||
152 | |||
153 | clk = clk_reg_prcmu_scalable("hsitxclk", NULL, PRCMU_HSITXCLK, 0, | ||
154 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
155 | prcmu_clk[PRCMU_HSITXCLK] = clk; | ||
156 | |||
157 | clk = clk_reg_prcmu_scalable("hsirxclk", NULL, PRCMU_HSIRXCLK, 0, | ||
158 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
159 | prcmu_clk[PRCMU_HSIRXCLK] = clk; | ||
160 | |||
161 | clk = clk_reg_prcmu_scalable("hdmiclk", NULL, PRCMU_HDMICLK, 0, | ||
162 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
163 | prcmu_clk[PRCMU_HDMICLK] = clk; | ||
164 | |||
165 | clk = clk_reg_prcmu_gate("apeatclk", NULL, PRCMU_APEATCLK, CLK_IS_ROOT); | ||
166 | prcmu_clk[PRCMU_APEATCLK] = clk; | ||
167 | |||
168 | clk = clk_reg_prcmu_gate("apetraceclk", NULL, PRCMU_APETRACECLK, | ||
169 | CLK_IS_ROOT); | ||
170 | prcmu_clk[PRCMU_APETRACECLK] = clk; | ||
171 | |||
172 | clk = clk_reg_prcmu_gate("mcdeclk", NULL, PRCMU_MCDECLK, CLK_IS_ROOT); | ||
173 | prcmu_clk[PRCMU_MCDECLK] = clk; | ||
174 | |||
175 | clk = clk_reg_prcmu_opp_gate("ipi2cclk", NULL, PRCMU_IPI2CCLK, | ||
176 | CLK_IS_ROOT); | ||
177 | prcmu_clk[PRCMU_IPI2CCLK] = clk; | ||
178 | |||
179 | clk = clk_reg_prcmu_gate("dsialtclk", NULL, PRCMU_DSIALTCLK, | ||
180 | CLK_IS_ROOT); | ||
181 | prcmu_clk[PRCMU_DSIALTCLK] = clk; | ||
182 | |||
183 | clk = clk_reg_prcmu_gate("dmaclk", NULL, PRCMU_DMACLK, CLK_IS_ROOT); | ||
184 | prcmu_clk[PRCMU_DMACLK] = clk; | ||
185 | |||
186 | clk = clk_reg_prcmu_gate("b2r2clk", NULL, PRCMU_B2R2CLK, CLK_IS_ROOT); | ||
187 | prcmu_clk[PRCMU_B2R2CLK] = clk; | ||
188 | |||
189 | clk = clk_reg_prcmu_scalable("tvclk", NULL, PRCMU_TVCLK, 0, | ||
190 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
191 | prcmu_clk[PRCMU_TVCLK] = clk; | ||
192 | |||
193 | clk = clk_reg_prcmu_gate("sspclk", NULL, PRCMU_SSPCLK, CLK_IS_ROOT); | ||
194 | prcmu_clk[PRCMU_SSPCLK] = clk; | ||
195 | |||
196 | clk = clk_reg_prcmu_gate("rngclk", NULL, PRCMU_RNGCLK, CLK_IS_ROOT); | ||
197 | prcmu_clk[PRCMU_RNGCLK] = clk; | ||
198 | |||
199 | clk = clk_reg_prcmu_gate("uiccclk", NULL, PRCMU_UICCCLK, CLK_IS_ROOT); | ||
200 | prcmu_clk[PRCMU_UICCCLK] = clk; | ||
201 | |||
202 | clk = clk_reg_prcmu_gate("timclk", NULL, PRCMU_TIMCLK, CLK_IS_ROOT); | ||
203 | prcmu_clk[PRCMU_TIMCLK] = clk; | ||
204 | |||
205 | clk = clk_reg_prcmu_opp_volt_scalable("sdmmcclk", NULL, PRCMU_SDMMCCLK, | ||
206 | 100000000, | ||
207 | CLK_IS_ROOT|CLK_SET_RATE_GATE); | ||
208 | prcmu_clk[PRCMU_SDMMCCLK] = clk; | ||
209 | |||
210 | clk = clk_reg_prcmu_scalable("dsi_pll", "hdmiclk", | ||
211 | PRCMU_PLLDSI, 0, CLK_SET_RATE_GATE); | ||
212 | prcmu_clk[PRCMU_PLLDSI] = clk; | ||
213 | |||
214 | clk = clk_reg_prcmu_scalable("dsi0clk", "dsi_pll", | ||
215 | PRCMU_DSI0CLK, 0, CLK_SET_RATE_GATE); | ||
216 | prcmu_clk[PRCMU_DSI0CLK] = clk; | ||
217 | |||
218 | clk = clk_reg_prcmu_scalable("dsi1clk", "dsi_pll", | ||
219 | PRCMU_DSI1CLK, 0, CLK_SET_RATE_GATE); | ||
220 | prcmu_clk[PRCMU_DSI1CLK] = clk; | ||
221 | |||
222 | clk = clk_reg_prcmu_scalable("dsi0escclk", "tvclk", | ||
223 | PRCMU_DSI0ESCCLK, 0, CLK_SET_RATE_GATE); | ||
224 | prcmu_clk[PRCMU_DSI0ESCCLK] = clk; | ||
225 | |||
226 | clk = clk_reg_prcmu_scalable("dsi1escclk", "tvclk", | ||
227 | PRCMU_DSI1ESCCLK, 0, CLK_SET_RATE_GATE); | ||
228 | prcmu_clk[PRCMU_DSI1ESCCLK] = clk; | ||
229 | |||
230 | clk = clk_reg_prcmu_scalable("dsi2escclk", "tvclk", | ||
231 | PRCMU_DSI2ESCCLK, 0, CLK_SET_RATE_GATE); | ||
232 | prcmu_clk[PRCMU_DSI2ESCCLK] = clk; | ||
233 | |||
234 | clk = clk_reg_prcmu_scalable_rate("armss", NULL, | ||
235 | PRCMU_ARMSS, 0, CLK_IS_ROOT|CLK_IGNORE_UNUSED); | ||
236 | prcmu_clk[PRCMU_ARMSS] = clk; | ||
237 | |||
238 | twd_clk = clk_register_fixed_factor(NULL, "smp_twd", "armss", | ||
239 | CLK_IGNORE_UNUSED, 1, 2); | ||
240 | |||
241 | /* | ||
242 | * FIXME: Add special handled PRCMU clocks here: | ||
243 | * 1. clkout0yuv, use PRCMU as parent + need regulator + pinctrl. | ||
244 | * 2. ab9540_clkout1yuv, see clkout0yuv | ||
245 | */ | ||
246 | |||
247 | /* PRCC P-clocks */ | ||
248 | clk = clk_reg_prcc_pclk("p1_pclk0", "per1clk", clkrst1_base, | ||
249 | BIT(0), 0); | ||
250 | PRCC_PCLK_STORE(clk, 1, 0); | ||
251 | |||
252 | clk = clk_reg_prcc_pclk("p1_pclk1", "per1clk", clkrst1_base, | ||
253 | BIT(1), 0); | ||
254 | PRCC_PCLK_STORE(clk, 1, 1); | ||
255 | |||
256 | clk = clk_reg_prcc_pclk("p1_pclk2", "per1clk", clkrst1_base, | ||
257 | BIT(2), 0); | ||
258 | PRCC_PCLK_STORE(clk, 1, 2); | ||
259 | |||
260 | clk = clk_reg_prcc_pclk("p1_pclk3", "per1clk", clkrst1_base, | ||
261 | BIT(3), 0); | ||
262 | PRCC_PCLK_STORE(clk, 1, 3); | ||
263 | |||
264 | clk = clk_reg_prcc_pclk("p1_pclk4", "per1clk", clkrst1_base, | ||
265 | BIT(4), 0); | ||
266 | PRCC_PCLK_STORE(clk, 1, 4); | ||
267 | |||
268 | clk = clk_reg_prcc_pclk("p1_pclk5", "per1clk", clkrst1_base, | ||
269 | BIT(5), 0); | ||
270 | PRCC_PCLK_STORE(clk, 1, 5); | ||
271 | |||
272 | clk = clk_reg_prcc_pclk("p1_pclk6", "per1clk", clkrst1_base, | ||
273 | BIT(6), 0); | ||
274 | PRCC_PCLK_STORE(clk, 1, 6); | ||
275 | |||
276 | clk = clk_reg_prcc_pclk("p1_pclk7", "per1clk", clkrst1_base, | ||
277 | BIT(7), 0); | ||
278 | PRCC_PCLK_STORE(clk, 1, 7); | ||
279 | |||
280 | clk = clk_reg_prcc_pclk("p1_pclk8", "per1clk", clkrst1_base, | ||
281 | BIT(8), 0); | ||
282 | PRCC_PCLK_STORE(clk, 1, 8); | ||
283 | |||
284 | clk = clk_reg_prcc_pclk("p1_pclk9", "per1clk", clkrst1_base, | ||
285 | BIT(9), 0); | ||
286 | PRCC_PCLK_STORE(clk, 1, 9); | ||
287 | |||
288 | clk = clk_reg_prcc_pclk("p1_pclk10", "per1clk", clkrst1_base, | ||
289 | BIT(10), 0); | ||
290 | PRCC_PCLK_STORE(clk, 1, 10); | ||
291 | |||
292 | clk = clk_reg_prcc_pclk("p1_pclk11", "per1clk", clkrst1_base, | ||
293 | BIT(11), 0); | ||
294 | PRCC_PCLK_STORE(clk, 1, 11); | ||
295 | |||
296 | clk = clk_reg_prcc_pclk("p2_pclk0", "per2clk", clkrst2_base, | ||
297 | BIT(0), 0); | ||
298 | PRCC_PCLK_STORE(clk, 2, 0); | ||
299 | |||
300 | clk = clk_reg_prcc_pclk("p2_pclk1", "per2clk", clkrst2_base, | ||
301 | BIT(1), 0); | ||
302 | PRCC_PCLK_STORE(clk, 2, 1); | ||
303 | |||
304 | clk = clk_reg_prcc_pclk("p2_pclk2", "per2clk", clkrst2_base, | ||
305 | BIT(2), 0); | ||
306 | PRCC_PCLK_STORE(clk, 2, 2); | ||
307 | |||
308 | clk = clk_reg_prcc_pclk("p2_pclk3", "per2clk", clkrst2_base, | ||
309 | BIT(3), 0); | ||
310 | PRCC_PCLK_STORE(clk, 2, 3); | ||
311 | |||
312 | clk = clk_reg_prcc_pclk("p2_pclk4", "per2clk", clkrst2_base, | ||
313 | BIT(4), 0); | ||
314 | PRCC_PCLK_STORE(clk, 2, 4); | ||
315 | |||
316 | clk = clk_reg_prcc_pclk("p2_pclk5", "per2clk", clkrst2_base, | ||
317 | BIT(5), 0); | ||
318 | PRCC_PCLK_STORE(clk, 2, 5); | ||
319 | |||
320 | clk = clk_reg_prcc_pclk("p2_pclk6", "per2clk", clkrst2_base, | ||
321 | BIT(6), 0); | ||
322 | PRCC_PCLK_STORE(clk, 2, 6); | ||
323 | |||
324 | clk = clk_reg_prcc_pclk("p2_pclk7", "per2clk", clkrst2_base, | ||
325 | BIT(7), 0); | ||
326 | PRCC_PCLK_STORE(clk, 2, 7); | ||
327 | |||
328 | clk = clk_reg_prcc_pclk("p2_pclk8", "per2clk", clkrst2_base, | ||
329 | BIT(8), 0); | ||
330 | PRCC_PCLK_STORE(clk, 2, 8); | ||
331 | |||
332 | clk = clk_reg_prcc_pclk("p2_pclk9", "per2clk", clkrst2_base, | ||
333 | BIT(9), 0); | ||
334 | PRCC_PCLK_STORE(clk, 2, 9); | ||
335 | |||
336 | clk = clk_reg_prcc_pclk("p2_pclk10", "per2clk", clkrst2_base, | ||
337 | BIT(10), 0); | ||
338 | PRCC_PCLK_STORE(clk, 2, 10); | ||
339 | |||
340 | clk = clk_reg_prcc_pclk("p2_pclk11", "per2clk", clkrst2_base, | ||
341 | BIT(11), 0); | ||
342 | PRCC_PCLK_STORE(clk, 2, 11); | ||
343 | |||
344 | clk = clk_reg_prcc_pclk("p2_pclk12", "per2clk", clkrst2_base, | ||
345 | BIT(12), 0); | ||
346 | PRCC_PCLK_STORE(clk, 2, 12); | ||
347 | |||
348 | clk = clk_reg_prcc_pclk("p3_pclk0", "per3clk", clkrst3_base, | ||
349 | BIT(0), 0); | ||
350 | PRCC_PCLK_STORE(clk, 3, 0); | ||
351 | |||
352 | clk = clk_reg_prcc_pclk("p3_pclk1", "per3clk", clkrst3_base, | ||
353 | BIT(1), 0); | ||
354 | PRCC_PCLK_STORE(clk, 3, 1); | ||
355 | |||
356 | clk = clk_reg_prcc_pclk("p3_pclk2", "per3clk", clkrst3_base, | ||
357 | BIT(2), 0); | ||
358 | PRCC_PCLK_STORE(clk, 3, 2); | ||
359 | |||
360 | clk = clk_reg_prcc_pclk("p3_pclk3", "per3clk", clkrst3_base, | ||
361 | BIT(3), 0); | ||
362 | PRCC_PCLK_STORE(clk, 3, 3); | ||
363 | |||
364 | clk = clk_reg_prcc_pclk("p3_pclk4", "per3clk", clkrst3_base, | ||
365 | BIT(4), 0); | ||
366 | PRCC_PCLK_STORE(clk, 3, 4); | ||
367 | |||
368 | clk = clk_reg_prcc_pclk("p3_pclk5", "per3clk", clkrst3_base, | ||
369 | BIT(5), 0); | ||
370 | PRCC_PCLK_STORE(clk, 3, 5); | ||
371 | |||
372 | clk = clk_reg_prcc_pclk("p3_pclk6", "per3clk", clkrst3_base, | ||
373 | BIT(6), 0); | ||
374 | PRCC_PCLK_STORE(clk, 3, 6); | ||
375 | |||
376 | clk = clk_reg_prcc_pclk("p3_pclk7", "per3clk", clkrst3_base, | ||
377 | BIT(7), 0); | ||
378 | PRCC_PCLK_STORE(clk, 3, 7); | ||
379 | |||
380 | clk = clk_reg_prcc_pclk("p3_pclk8", "per3clk", clkrst3_base, | ||
381 | BIT(8), 0); | ||
382 | PRCC_PCLK_STORE(clk, 3, 8); | ||
383 | |||
384 | clk = clk_reg_prcc_pclk("p5_pclk0", "per5clk", clkrst5_base, | ||
385 | BIT(0), 0); | ||
386 | PRCC_PCLK_STORE(clk, 5, 0); | ||
387 | |||
388 | clk = clk_reg_prcc_pclk("p5_pclk1", "per5clk", clkrst5_base, | ||
389 | BIT(1), 0); | ||
390 | PRCC_PCLK_STORE(clk, 5, 1); | ||
391 | |||
392 | clk = clk_reg_prcc_pclk("p6_pclk0", "per6clk", clkrst6_base, | ||
393 | BIT(0), 0); | ||
394 | PRCC_PCLK_STORE(clk, 6, 0); | ||
395 | |||
396 | clk = clk_reg_prcc_pclk("p6_pclk1", "per6clk", clkrst6_base, | ||
397 | BIT(1), 0); | ||
398 | PRCC_PCLK_STORE(clk, 6, 1); | ||
399 | |||
400 | clk = clk_reg_prcc_pclk("p6_pclk2", "per6clk", clkrst6_base, | ||
401 | BIT(2), 0); | ||
402 | PRCC_PCLK_STORE(clk, 6, 2); | ||
403 | |||
404 | clk = clk_reg_prcc_pclk("p6_pclk3", "per6clk", clkrst6_base, | ||
405 | BIT(3), 0); | ||
406 | PRCC_PCLK_STORE(clk, 6, 3); | ||
407 | |||
408 | clk = clk_reg_prcc_pclk("p6_pclk4", "per6clk", clkrst6_base, | ||
409 | BIT(4), 0); | ||
410 | PRCC_PCLK_STORE(clk, 6, 4); | ||
411 | |||
412 | clk = clk_reg_prcc_pclk("p6_pclk5", "per6clk", clkrst6_base, | ||
413 | BIT(5), 0); | ||
414 | PRCC_PCLK_STORE(clk, 6, 5); | ||
415 | |||
416 | clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", clkrst6_base, | ||
417 | BIT(6), 0); | ||
418 | PRCC_PCLK_STORE(clk, 6, 6); | ||
419 | |||
420 | clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", clkrst6_base, | ||
421 | BIT(7), 0); | ||
422 | PRCC_PCLK_STORE(clk, 6, 7); | ||
423 | |||
424 | /* PRCC K-clocks | ||
425 | * | ||
426 | * FIXME: Some drivers requires PERPIH[n| to be automatically enabled | ||
427 | * by enabling just the K-clock, even if it is not a valid parent to | ||
428 | * the K-clock. Until drivers get fixed we might need some kind of | ||
429 | * "parent muxed join". | ||
430 | */ | ||
431 | |||
432 | /* Periph1 */ | ||
433 | clk = clk_reg_prcc_kclk("p1_uart0_kclk", "uartclk", | ||
434 | clkrst1_base, BIT(0), CLK_SET_RATE_GATE); | ||
435 | PRCC_KCLK_STORE(clk, 1, 0); | ||
436 | |||
437 | clk = clk_reg_prcc_kclk("p1_uart1_kclk", "uartclk", | ||
438 | clkrst1_base, BIT(1), CLK_SET_RATE_GATE); | ||
439 | PRCC_KCLK_STORE(clk, 1, 1); | ||
440 | |||
441 | clk = clk_reg_prcc_kclk("p1_i2c1_kclk", "i2cclk", | ||
442 | clkrst1_base, BIT(2), CLK_SET_RATE_GATE); | ||
443 | PRCC_KCLK_STORE(clk, 1, 2); | ||
444 | |||
445 | clk = clk_reg_prcc_kclk("p1_msp0_kclk", "msp02clk", | ||
446 | clkrst1_base, BIT(3), CLK_SET_RATE_GATE); | ||
447 | PRCC_KCLK_STORE(clk, 1, 3); | ||
448 | |||
449 | clk = clk_reg_prcc_kclk("p1_msp1_kclk", "msp1clk", | ||
450 | clkrst1_base, BIT(4), CLK_SET_RATE_GATE); | ||
451 | PRCC_KCLK_STORE(clk, 1, 4); | ||
452 | |||
453 | clk = clk_reg_prcc_kclk("p1_sdi0_kclk", "sdmmcclk", | ||
454 | clkrst1_base, BIT(5), CLK_SET_RATE_GATE); | ||
455 | PRCC_KCLK_STORE(clk, 1, 5); | ||
456 | |||
457 | clk = clk_reg_prcc_kclk("p1_i2c2_kclk", "i2cclk", | ||
458 | clkrst1_base, BIT(6), CLK_SET_RATE_GATE); | ||
459 | PRCC_KCLK_STORE(clk, 1, 6); | ||
460 | |||
461 | clk = clk_reg_prcc_kclk("p1_slimbus0_kclk", "slimclk", | ||
462 | clkrst1_base, BIT(8), CLK_SET_RATE_GATE); | ||
463 | PRCC_KCLK_STORE(clk, 1, 8); | ||
464 | |||
465 | clk = clk_reg_prcc_kclk("p1_i2c4_kclk", "i2cclk", | ||
466 | clkrst1_base, BIT(9), CLK_SET_RATE_GATE); | ||
467 | PRCC_KCLK_STORE(clk, 1, 9); | ||
468 | |||
469 | clk = clk_reg_prcc_kclk("p1_msp3_kclk", "msp1clk", | ||
470 | clkrst1_base, BIT(10), CLK_SET_RATE_GATE); | ||
471 | PRCC_KCLK_STORE(clk, 1, 10); | ||
472 | |||
473 | /* Periph2 */ | ||
474 | clk = clk_reg_prcc_kclk("p2_i2c3_kclk", "i2cclk", | ||
475 | clkrst2_base, BIT(0), CLK_SET_RATE_GATE); | ||
476 | PRCC_KCLK_STORE(clk, 2, 0); | ||
477 | |||
478 | clk = clk_reg_prcc_kclk("p2_sdi4_kclk", "sdmmcclk", | ||
479 | clkrst2_base, BIT(2), CLK_SET_RATE_GATE); | ||
480 | PRCC_KCLK_STORE(clk, 2, 2); | ||
481 | |||
482 | clk = clk_reg_prcc_kclk("p2_msp2_kclk", "msp02clk", | ||
483 | clkrst2_base, BIT(3), CLK_SET_RATE_GATE); | ||
484 | PRCC_KCLK_STORE(clk, 2, 3); | ||
485 | |||
486 | clk = clk_reg_prcc_kclk("p2_sdi1_kclk", "sdmmcclk", | ||
487 | clkrst2_base, BIT(4), CLK_SET_RATE_GATE); | ||
488 | PRCC_KCLK_STORE(clk, 2, 4); | ||
489 | |||
490 | clk = clk_reg_prcc_kclk("p2_sdi3_kclk", "sdmmcclk", | ||
491 | clkrst2_base, BIT(5), CLK_SET_RATE_GATE); | ||
492 | PRCC_KCLK_STORE(clk, 2, 5); | ||
493 | |||
494 | /* Note that rate is received from parent. */ | ||
495 | clk = clk_reg_prcc_kclk("p2_ssirx_kclk", "hsirxclk", | ||
496 | clkrst2_base, BIT(6), | ||
497 | CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT); | ||
498 | PRCC_KCLK_STORE(clk, 2, 6); | ||
499 | |||
500 | clk = clk_reg_prcc_kclk("p2_ssitx_kclk", "hsitxclk", | ||
501 | clkrst2_base, BIT(7), | ||
502 | CLK_SET_RATE_GATE|CLK_SET_RATE_PARENT); | ||
503 | PRCC_KCLK_STORE(clk, 2, 7); | ||
504 | |||
505 | /* Periph3 */ | ||
506 | clk = clk_reg_prcc_kclk("p3_ssp0_kclk", "sspclk", | ||
507 | clkrst3_base, BIT(1), CLK_SET_RATE_GATE); | ||
508 | PRCC_KCLK_STORE(clk, 3, 1); | ||
509 | |||
510 | clk = clk_reg_prcc_kclk("p3_ssp1_kclk", "sspclk", | ||
511 | clkrst3_base, BIT(2), CLK_SET_RATE_GATE); | ||
512 | PRCC_KCLK_STORE(clk, 3, 2); | ||
513 | |||
514 | clk = clk_reg_prcc_kclk("p3_i2c0_kclk", "i2cclk", | ||
515 | clkrst3_base, BIT(3), CLK_SET_RATE_GATE); | ||
516 | PRCC_KCLK_STORE(clk, 3, 3); | ||
517 | |||
518 | clk = clk_reg_prcc_kclk("p3_sdi2_kclk", "sdmmcclk", | ||
519 | clkrst3_base, BIT(4), CLK_SET_RATE_GATE); | ||
520 | PRCC_KCLK_STORE(clk, 3, 4); | ||
521 | |||
522 | clk = clk_reg_prcc_kclk("p3_ske_kclk", "rtc32k", | ||
523 | clkrst3_base, BIT(5), CLK_SET_RATE_GATE); | ||
524 | PRCC_KCLK_STORE(clk, 3, 5); | ||
525 | |||
526 | clk = clk_reg_prcc_kclk("p3_uart2_kclk", "uartclk", | ||
527 | clkrst3_base, BIT(6), CLK_SET_RATE_GATE); | ||
528 | PRCC_KCLK_STORE(clk, 3, 6); | ||
529 | |||
530 | clk = clk_reg_prcc_kclk("p3_sdi5_kclk", "sdmmcclk", | ||
531 | clkrst3_base, BIT(7), CLK_SET_RATE_GATE); | ||
532 | PRCC_KCLK_STORE(clk, 3, 7); | ||
533 | |||
534 | /* Periph6 */ | ||
535 | clk = clk_reg_prcc_kclk("p3_rng_kclk", "rngclk", | ||
536 | clkrst6_base, BIT(0), CLK_SET_RATE_GATE); | ||
537 | PRCC_KCLK_STORE(clk, 6, 0); | ||
538 | |||
539 | for_each_child_of_node(np, child) { | ||
540 | static struct clk_onecell_data clk_data; | ||
541 | |||
542 | if (!of_node_cmp(child->name, "prcmu-clock")) { | ||
543 | clk_data.clks = prcmu_clk; | ||
544 | clk_data.clk_num = ARRAY_SIZE(prcmu_clk); | ||
545 | of_clk_add_provider(child, of_clk_src_onecell_get, &clk_data); | ||
546 | } | ||
547 | if (!of_node_cmp(child->name, "prcc-periph-clock")) | ||
548 | of_clk_add_provider(child, ux500_twocell_get, prcc_pclk); | ||
549 | |||
550 | if (!of_node_cmp(child->name, "prcc-kernel-clock")) | ||
551 | of_clk_add_provider(child, ux500_twocell_get, prcc_kclk); | ||
552 | |||
553 | if (!of_node_cmp(child->name, "rtc32k-clock")) | ||
554 | of_clk_add_provider(child, of_clk_src_simple_get, rtc_clk); | ||
555 | |||
556 | if (!of_node_cmp(child->name, "smp-twd-clock")) | ||
557 | of_clk_add_provider(child, of_clk_src_simple_get, twd_clk); | ||
558 | } | ||
559 | } | ||
diff --git a/drivers/clk/ux500/u8540_clk.c b/drivers/clk/ux500/u8540_clk.c index f26258869deb..20c8add90d11 100644 --- a/drivers/clk/ux500/u8540_clk.c +++ b/drivers/clk/ux500/u8540_clk.c | |||
@@ -83,7 +83,7 @@ void u8540_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, | |||
83 | clk_register_clkdev(clk, NULL, "lcd"); | 83 | clk_register_clkdev(clk, NULL, "lcd"); |
84 | clk_register_clkdev(clk, "lcd", "mcde"); | 84 | clk_register_clkdev(clk, "lcd", "mcde"); |
85 | 85 | ||
86 | clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BML8580CLK, | 86 | clk = clk_reg_prcmu_opp_gate("bmlclk", NULL, PRCMU_BMLCLK, |
87 | CLK_IS_ROOT); | 87 | CLK_IS_ROOT); |
88 | clk_register_clkdev(clk, NULL, "bml"); | 88 | clk_register_clkdev(clk, NULL, "bml"); |
89 | 89 | ||
diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c index f6f1c7d244c4..76e02b9460e6 100644 --- a/drivers/gpio/gpio-samsung.c +++ b/drivers/gpio/gpio-samsung.c | |||
@@ -2082,34 +2082,14 @@ static __init int samsung_gpiolib_init(void) | |||
2082 | int i, nr_chips; | 2082 | int i, nr_chips; |
2083 | int group = 0; | 2083 | int group = 0; |
2084 | 2084 | ||
2085 | #if defined(CONFIG_PINCTRL_EXYNOS) || defined(CONFIG_PINCTRL_EXYNOS5440) | ||
2086 | /* | 2085 | /* |
2087 | * This gpio driver includes support for device tree support and there | 2086 | * Currently there are two drivers that can provide GPIO support for |
2088 | * are platforms using it. In order to maintain compatibility with those | 2087 | * Samsung SoCs. For device tree enabled platforms, the new |
2089 | * platforms, and to allow non-dt Exynos4210 platforms to use this | 2088 | * pinctrl-samsung driver is used, providing both GPIO and pin control |
2090 | * gpiolib support, a check is added to find out if there is a active | 2089 | * interfaces. For legacy (non-DT) platforms this driver is used. |
2091 | * pin-controller driver support available. If it is available, this | 2090 | */ |
2092 | * gpiolib support is ignored and the gpiolib support available in | 2091 | if (of_have_populated_dt()) |
2093 | * pin-controller driver is used. This is a temporary check and will go | 2092 | return -ENODEV; |
2094 | * away when all of the Exynos4210 platforms have switched to using | ||
2095 | * device tree and the pin-ctrl driver. | ||
2096 | */ | ||
2097 | struct device_node *pctrl_np; | ||
2098 | static const struct of_device_id exynos_pinctrl_ids[] = { | ||
2099 | { .compatible = "samsung,s3c2412-pinctrl", }, | ||
2100 | { .compatible = "samsung,s3c2416-pinctrl", }, | ||
2101 | { .compatible = "samsung,s3c2440-pinctrl", }, | ||
2102 | { .compatible = "samsung,s3c2450-pinctrl", }, | ||
2103 | { .compatible = "samsung,exynos4210-pinctrl", }, | ||
2104 | { .compatible = "samsung,exynos4x12-pinctrl", }, | ||
2105 | { .compatible = "samsung,exynos5250-pinctrl", }, | ||
2106 | { .compatible = "samsung,exynos5440-pinctrl", }, | ||
2107 | { } | ||
2108 | }; | ||
2109 | for_each_matching_node(pctrl_np, exynos_pinctrl_ids) | ||
2110 | if (pctrl_np && of_device_is_available(pctrl_np)) | ||
2111 | return -ENODEV; | ||
2112 | #endif | ||
2113 | 2093 | ||
2114 | samsung_gpiolib_set_cfg(samsung_gpio_cfgs, ARRAY_SIZE(samsung_gpio_cfgs)); | 2094 | samsung_gpiolib_set_cfg(samsung_gpio_cfgs, ARRAY_SIZE(samsung_gpio_cfgs)); |
2115 | 2095 | ||
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c index 2bbb00404cf5..8e21ae0bab46 100644 --- a/drivers/irqchip/irq-vic.c +++ b/drivers/irqchip/irq-vic.c | |||
@@ -469,6 +469,8 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, | |||
469 | int __init vic_of_init(struct device_node *node, struct device_node *parent) | 469 | int __init vic_of_init(struct device_node *node, struct device_node *parent) |
470 | { | 470 | { |
471 | void __iomem *regs; | 471 | void __iomem *regs; |
472 | u32 interrupt_mask = ~0; | ||
473 | u32 wakeup_mask = ~0; | ||
472 | 474 | ||
473 | if (WARN(parent, "non-root VICs are not supported")) | 475 | if (WARN(parent, "non-root VICs are not supported")) |
474 | return -EINVAL; | 476 | return -EINVAL; |
@@ -477,10 +479,13 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) | |||
477 | if (WARN_ON(!regs)) | 479 | if (WARN_ON(!regs)) |
478 | return -EIO; | 480 | return -EIO; |
479 | 481 | ||
482 | of_property_read_u32(node, "valid-mask", &interrupt_mask); | ||
483 | of_property_read_u32(node, "valid-wakeup-mask", &wakeup_mask); | ||
484 | |||
480 | /* | 485 | /* |
481 | * Passing 0 as first IRQ makes the simple domain allocate descriptors | 486 | * Passing 0 as first IRQ makes the simple domain allocate descriptors |
482 | */ | 487 | */ |
483 | __vic_init(regs, 0, ~0, ~0, node); | 488 | __vic_init(regs, 0, interrupt_mask, wakeup_mask, node); |
484 | 489 | ||
485 | return 0; | 490 | return 0; |
486 | } | 491 | } |
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index 53f371dcbb6e..b9ce60c301de 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c | |||
@@ -480,7 +480,6 @@ static struct clk_mgt clk_mgt[PRCMU_NUM_REG_CLOCKS] = { | |||
480 | CLK_MGT_ENTRY(PER6CLK, PLL_DIV, true), | 480 | CLK_MGT_ENTRY(PER6CLK, PLL_DIV, true), |
481 | CLK_MGT_ENTRY(PER7CLK, PLL_DIV, true), | 481 | CLK_MGT_ENTRY(PER7CLK, PLL_DIV, true), |
482 | CLK_MGT_ENTRY(LCDCLK, PLL_FIX, true), | 482 | CLK_MGT_ENTRY(LCDCLK, PLL_FIX, true), |
483 | CLK_MGT_ENTRY(BML8580CLK, PLL_DIV, true), | ||
484 | CLK_MGT_ENTRY(BMLCLK, PLL_DIV, true), | 483 | CLK_MGT_ENTRY(BMLCLK, PLL_DIV, true), |
485 | CLK_MGT_ENTRY(HSITXCLK, PLL_DIV, true), | 484 | CLK_MGT_ENTRY(HSITXCLK, PLL_DIV, true), |
486 | CLK_MGT_ENTRY(HSIRXCLK, PLL_DIV, true), | 485 | CLK_MGT_ENTRY(HSIRXCLK, PLL_DIV, true), |
diff --git a/drivers/mfd/dbx500-prcmu-regs.h b/drivers/mfd/dbx500-prcmu-regs.h index 4f6f0fa5d3b7..7cc32a8ff01c 100644 --- a/drivers/mfd/dbx500-prcmu-regs.h +++ b/drivers/mfd/dbx500-prcmu-regs.h | |||
@@ -32,7 +32,6 @@ | |||
32 | #define PRCM_PER7CLK_MGT (0x040) | 32 | #define PRCM_PER7CLK_MGT (0x040) |
33 | #define PRCM_LCDCLK_MGT (0x044) | 33 | #define PRCM_LCDCLK_MGT (0x044) |
34 | #define PRCM_BMLCLK_MGT (0x04C) | 34 | #define PRCM_BMLCLK_MGT (0x04C) |
35 | #define PRCM_BML8580CLK_MGT (0x108) | ||
36 | #define PRCM_HSITXCLK_MGT (0x050) | 35 | #define PRCM_HSITXCLK_MGT (0x050) |
37 | #define PRCM_HSIRXCLK_MGT (0x054) | 36 | #define PRCM_HSIRXCLK_MGT (0x054) |
38 | #define PRCM_HDMICLK_MGT (0x058) | 37 | #define PRCM_HDMICLK_MGT (0x058) |
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index a82ace4d9a20..0846922b2316 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c | |||
@@ -15,15 +15,21 @@ | |||
15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
16 | #include <linux/err.h> | 16 | #include <linux/err.h> |
17 | #include <linux/list.h> | 17 | #include <linux/list.h> |
18 | #include <linux/interrupt.h> | ||
19 | |||
20 | #include <linux/irqchip/chained_irq.h> | ||
18 | 21 | ||
19 | #include <linux/of.h> | 22 | #include <linux/of.h> |
20 | #include <linux/of_device.h> | 23 | #include <linux/of_device.h> |
21 | #include <linux/of_address.h> | 24 | #include <linux/of_address.h> |
25 | #include <linux/of_irq.h> | ||
22 | 26 | ||
23 | #include <linux/pinctrl/pinctrl.h> | 27 | #include <linux/pinctrl/pinctrl.h> |
24 | #include <linux/pinctrl/pinmux.h> | 28 | #include <linux/pinctrl/pinmux.h> |
25 | #include <linux/pinctrl/pinconf-generic.h> | 29 | #include <linux/pinctrl/pinconf-generic.h> |
26 | 30 | ||
31 | #include <linux/platform_data/pinctrl-single.h> | ||
32 | |||
27 | #include "core.h" | 33 | #include "core.h" |
28 | #include "pinconf.h" | 34 | #include "pinconf.h" |
29 | 35 | ||
@@ -150,19 +156,36 @@ struct pcs_name { | |||
150 | }; | 156 | }; |
151 | 157 | ||
152 | /** | 158 | /** |
159 | * struct pcs_soc_data - SoC specific settings | ||
160 | * @flags: initial SoC specific PCS_FEAT_xxx values | ||
161 | * @irq: optional interrupt for the controller | ||
162 | * @irq_enable_mask: optional SoC specific interrupt enable mask | ||
163 | * @irq_status_mask: optional SoC specific interrupt status mask | ||
164 | * @rearm: optional SoC specific wake-up rearm function | ||
165 | */ | ||
166 | struct pcs_soc_data { | ||
167 | unsigned flags; | ||
168 | int irq; | ||
169 | unsigned irq_enable_mask; | ||
170 | unsigned irq_status_mask; | ||
171 | void (*rearm)(void); | ||
172 | }; | ||
173 | |||
174 | /** | ||
153 | * struct pcs_device - pinctrl device instance | 175 | * struct pcs_device - pinctrl device instance |
154 | * @res: resources | 176 | * @res: resources |
155 | * @base: virtual address of the controller | 177 | * @base: virtual address of the controller |
156 | * @size: size of the ioremapped area | 178 | * @size: size of the ioremapped area |
157 | * @dev: device entry | 179 | * @dev: device entry |
158 | * @pctl: pin controller device | 180 | * @pctl: pin controller device |
181 | * @flags: mask of PCS_FEAT_xxx values | ||
182 | * @lock: spinlock for register access | ||
159 | * @mutex: mutex protecting the lists | 183 | * @mutex: mutex protecting the lists |
160 | * @width: bits per mux register | 184 | * @width: bits per mux register |
161 | * @fmask: function register mask | 185 | * @fmask: function register mask |
162 | * @fshift: function register shift | 186 | * @fshift: function register shift |
163 | * @foff: value to turn mux off | 187 | * @foff: value to turn mux off |
164 | * @fmax: max number of functions in fmask | 188 | * @fmax: max number of functions in fmask |
165 | * @is_pinconf: whether supports pinconf | ||
166 | * @bits_per_pin:number of bits per pin | 189 | * @bits_per_pin:number of bits per pin |
167 | * @names: array of register names for pins | 190 | * @names: array of register names for pins |
168 | * @pins: physical pins on the SoC | 191 | * @pins: physical pins on the SoC |
@@ -171,6 +194,9 @@ struct pcs_name { | |||
171 | * @pingroups: list of pingroups | 194 | * @pingroups: list of pingroups |
172 | * @functions: list of functions | 195 | * @functions: list of functions |
173 | * @gpiofuncs: list of gpio functions | 196 | * @gpiofuncs: list of gpio functions |
197 | * @irqs: list of interrupt registers | ||
198 | * @chip: chip container for this instance | ||
199 | * @domain: IRQ domain for this instance | ||
174 | * @ngroups: number of pingroups | 200 | * @ngroups: number of pingroups |
175 | * @nfuncs: number of functions | 201 | * @nfuncs: number of functions |
176 | * @desc: pin controller descriptor | 202 | * @desc: pin controller descriptor |
@@ -183,6 +209,12 @@ struct pcs_device { | |||
183 | unsigned size; | 209 | unsigned size; |
184 | struct device *dev; | 210 | struct device *dev; |
185 | struct pinctrl_dev *pctl; | 211 | struct pinctrl_dev *pctl; |
212 | unsigned flags; | ||
213 | #define PCS_QUIRK_SHARED_IRQ (1 << 2) | ||
214 | #define PCS_FEAT_IRQ (1 << 1) | ||
215 | #define PCS_FEAT_PINCONF (1 << 0) | ||
216 | struct pcs_soc_data socdata; | ||
217 | raw_spinlock_t lock; | ||
186 | struct mutex mutex; | 218 | struct mutex mutex; |
187 | unsigned width; | 219 | unsigned width; |
188 | unsigned fmask; | 220 | unsigned fmask; |
@@ -190,7 +222,6 @@ struct pcs_device { | |||
190 | unsigned foff; | 222 | unsigned foff; |
191 | unsigned fmax; | 223 | unsigned fmax; |
192 | bool bits_per_mux; | 224 | bool bits_per_mux; |
193 | bool is_pinconf; | ||
194 | unsigned bits_per_pin; | 225 | unsigned bits_per_pin; |
195 | struct pcs_name *names; | 226 | struct pcs_name *names; |
196 | struct pcs_data pins; | 227 | struct pcs_data pins; |
@@ -199,6 +230,9 @@ struct pcs_device { | |||
199 | struct list_head pingroups; | 230 | struct list_head pingroups; |
200 | struct list_head functions; | 231 | struct list_head functions; |
201 | struct list_head gpiofuncs; | 232 | struct list_head gpiofuncs; |
233 | struct list_head irqs; | ||
234 | struct irq_chip chip; | ||
235 | struct irq_domain *domain; | ||
202 | unsigned ngroups; | 236 | unsigned ngroups; |
203 | unsigned nfuncs; | 237 | unsigned nfuncs; |
204 | struct pinctrl_desc desc; | 238 | struct pinctrl_desc desc; |
@@ -206,6 +240,10 @@ struct pcs_device { | |||
206 | void (*write)(unsigned val, void __iomem *reg); | 240 | void (*write)(unsigned val, void __iomem *reg); |
207 | }; | 241 | }; |
208 | 242 | ||
243 | #define PCS_QUIRK_HAS_SHARED_IRQ (pcs->flags & PCS_QUIRK_SHARED_IRQ) | ||
244 | #define PCS_HAS_IRQ (pcs->flags & PCS_FEAT_IRQ) | ||
245 | #define PCS_HAS_PINCONF (pcs->flags & PCS_FEAT_PINCONF) | ||
246 | |||
209 | static int pcs_pinconf_get(struct pinctrl_dev *pctldev, unsigned pin, | 247 | static int pcs_pinconf_get(struct pinctrl_dev *pctldev, unsigned pin, |
210 | unsigned long *config); | 248 | unsigned long *config); |
211 | static int pcs_pinconf_set(struct pinctrl_dev *pctldev, unsigned pin, | 249 | static int pcs_pinconf_set(struct pinctrl_dev *pctldev, unsigned pin, |
@@ -429,9 +467,11 @@ static int pcs_enable(struct pinctrl_dev *pctldev, unsigned fselector, | |||
429 | 467 | ||
430 | for (i = 0; i < func->nvals; i++) { | 468 | for (i = 0; i < func->nvals; i++) { |
431 | struct pcs_func_vals *vals; | 469 | struct pcs_func_vals *vals; |
470 | unsigned long flags; | ||
432 | unsigned val, mask; | 471 | unsigned val, mask; |
433 | 472 | ||
434 | vals = &func->vals[i]; | 473 | vals = &func->vals[i]; |
474 | raw_spin_lock_irqsave(&pcs->lock, flags); | ||
435 | val = pcs->read(vals->reg); | 475 | val = pcs->read(vals->reg); |
436 | 476 | ||
437 | if (pcs->bits_per_mux) | 477 | if (pcs->bits_per_mux) |
@@ -442,6 +482,7 @@ static int pcs_enable(struct pinctrl_dev *pctldev, unsigned fselector, | |||
442 | val &= ~mask; | 482 | val &= ~mask; |
443 | val |= (vals->val & mask); | 483 | val |= (vals->val & mask); |
444 | pcs->write(val, vals->reg); | 484 | pcs->write(val, vals->reg); |
485 | raw_spin_unlock_irqrestore(&pcs->lock, flags); | ||
445 | } | 486 | } |
446 | 487 | ||
447 | return 0; | 488 | return 0; |
@@ -483,13 +524,16 @@ static void pcs_disable(struct pinctrl_dev *pctldev, unsigned fselector, | |||
483 | 524 | ||
484 | for (i = 0; i < func->nvals; i++) { | 525 | for (i = 0; i < func->nvals; i++) { |
485 | struct pcs_func_vals *vals; | 526 | struct pcs_func_vals *vals; |
527 | unsigned long flags; | ||
486 | unsigned val; | 528 | unsigned val; |
487 | 529 | ||
488 | vals = &func->vals[i]; | 530 | vals = &func->vals[i]; |
531 | raw_spin_lock_irqsave(&pcs->lock, flags); | ||
489 | val = pcs->read(vals->reg); | 532 | val = pcs->read(vals->reg); |
490 | val &= ~pcs->fmask; | 533 | val &= ~pcs->fmask; |
491 | val |= pcs->foff << pcs->fshift; | 534 | val |= pcs->foff << pcs->fshift; |
492 | pcs->write(val, vals->reg); | 535 | pcs->write(val, vals->reg); |
536 | raw_spin_unlock_irqrestore(&pcs->lock, flags); | ||
493 | } | 537 | } |
494 | } | 538 | } |
495 | 539 | ||
@@ -1060,7 +1104,7 @@ static int pcs_parse_pinconf(struct pcs_device *pcs, struct device_node *np, | |||
1060 | }; | 1104 | }; |
1061 | 1105 | ||
1062 | /* If pinconf isn't supported, don't parse properties in below. */ | 1106 | /* If pinconf isn't supported, don't parse properties in below. */ |
1063 | if (!pcs->is_pinconf) | 1107 | if (!PCS_HAS_PINCONF) |
1064 | return 0; | 1108 | return 0; |
1065 | 1109 | ||
1066 | /* cacluate how much properties are supported in current node */ | 1110 | /* cacluate how much properties are supported in current node */ |
@@ -1184,7 +1228,7 @@ static int pcs_parse_one_pinctrl_entry(struct pcs_device *pcs, | |||
1184 | (*map)->data.mux.group = np->name; | 1228 | (*map)->data.mux.group = np->name; |
1185 | (*map)->data.mux.function = np->name; | 1229 | (*map)->data.mux.function = np->name; |
1186 | 1230 | ||
1187 | if (pcs->is_pinconf) { | 1231 | if (PCS_HAS_PINCONF) { |
1188 | res = pcs_parse_pinconf(pcs, np, function, map); | 1232 | res = pcs_parse_pinconf(pcs, np, function, map); |
1189 | if (res) | 1233 | if (res) |
1190 | goto free_pingroups; | 1234 | goto free_pingroups; |
@@ -1305,7 +1349,7 @@ static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs, | |||
1305 | (*map)->data.mux.group = np->name; | 1349 | (*map)->data.mux.group = np->name; |
1306 | (*map)->data.mux.function = np->name; | 1350 | (*map)->data.mux.function = np->name; |
1307 | 1351 | ||
1308 | if (pcs->is_pinconf) { | 1352 | if (PCS_HAS_PINCONF) { |
1309 | dev_err(pcs->dev, "pinconf not supported\n"); | 1353 | dev_err(pcs->dev, "pinconf not supported\n"); |
1310 | goto free_pingroups; | 1354 | goto free_pingroups; |
1311 | } | 1355 | } |
@@ -1440,11 +1484,33 @@ static void pcs_free_pingroups(struct pcs_device *pcs) | |||
1440 | } | 1484 | } |
1441 | 1485 | ||
1442 | /** | 1486 | /** |
1487 | * pcs_irq_free() - free interrupt | ||
1488 | * @pcs: pcs driver instance | ||
1489 | */ | ||
1490 | static void pcs_irq_free(struct pcs_device *pcs) | ||
1491 | { | ||
1492 | struct pcs_soc_data *pcs_soc = &pcs->socdata; | ||
1493 | |||
1494 | if (pcs_soc->irq < 0) | ||
1495 | return; | ||
1496 | |||
1497 | if (pcs->domain) | ||
1498 | irq_domain_remove(pcs->domain); | ||
1499 | |||
1500 | if (PCS_QUIRK_HAS_SHARED_IRQ) | ||
1501 | free_irq(pcs_soc->irq, pcs_soc); | ||
1502 | else | ||
1503 | irq_set_chained_handler(pcs_soc->irq, NULL); | ||
1504 | } | ||
1505 | |||
1506 | /** | ||
1443 | * pcs_free_resources() - free memory used by this driver | 1507 | * pcs_free_resources() - free memory used by this driver |
1444 | * @pcs: pcs driver instance | 1508 | * @pcs: pcs driver instance |
1445 | */ | 1509 | */ |
1446 | static void pcs_free_resources(struct pcs_device *pcs) | 1510 | static void pcs_free_resources(struct pcs_device *pcs) |
1447 | { | 1511 | { |
1512 | pcs_irq_free(pcs); | ||
1513 | |||
1448 | if (pcs->pctl) | 1514 | if (pcs->pctl) |
1449 | pinctrl_unregister(pcs->pctl); | 1515 | pinctrl_unregister(pcs->pctl); |
1450 | 1516 | ||
@@ -1493,6 +1559,268 @@ static int pcs_add_gpio_func(struct device_node *node, struct pcs_device *pcs) | |||
1493 | } | 1559 | } |
1494 | return ret; | 1560 | return ret; |
1495 | } | 1561 | } |
1562 | /** | ||
1563 | * @reg: virtual address of interrupt register | ||
1564 | * @hwirq: hardware irq number | ||
1565 | * @irq: virtual irq number | ||
1566 | * @node: list node | ||
1567 | */ | ||
1568 | struct pcs_interrupt { | ||
1569 | void __iomem *reg; | ||
1570 | irq_hw_number_t hwirq; | ||
1571 | unsigned int irq; | ||
1572 | struct list_head node; | ||
1573 | }; | ||
1574 | |||
1575 | /** | ||
1576 | * pcs_irq_set() - enables or disables an interrupt | ||
1577 | * | ||
1578 | * Note that this currently assumes one interrupt per pinctrl | ||
1579 | * register that is typically used for wake-up events. | ||
1580 | */ | ||
1581 | static inline void pcs_irq_set(struct pcs_soc_data *pcs_soc, | ||
1582 | int irq, const bool enable) | ||
1583 | { | ||
1584 | struct pcs_device *pcs; | ||
1585 | struct list_head *pos; | ||
1586 | unsigned mask; | ||
1587 | |||
1588 | pcs = container_of(pcs_soc, struct pcs_device, socdata); | ||
1589 | list_for_each(pos, &pcs->irqs) { | ||
1590 | struct pcs_interrupt *pcswi; | ||
1591 | unsigned soc_mask; | ||
1592 | |||
1593 | pcswi = list_entry(pos, struct pcs_interrupt, node); | ||
1594 | if (irq != pcswi->irq) | ||
1595 | continue; | ||
1596 | |||
1597 | soc_mask = pcs_soc->irq_enable_mask; | ||
1598 | raw_spin_lock(&pcs->lock); | ||
1599 | mask = pcs->read(pcswi->reg); | ||
1600 | if (enable) | ||
1601 | mask |= soc_mask; | ||
1602 | else | ||
1603 | mask &= ~soc_mask; | ||
1604 | pcs->write(mask, pcswi->reg); | ||
1605 | raw_spin_unlock(&pcs->lock); | ||
1606 | } | ||
1607 | } | ||
1608 | |||
1609 | /** | ||
1610 | * pcs_irq_mask() - mask pinctrl interrupt | ||
1611 | * @d: interrupt data | ||
1612 | */ | ||
1613 | static void pcs_irq_mask(struct irq_data *d) | ||
1614 | { | ||
1615 | struct pcs_soc_data *pcs_soc = irq_data_get_irq_chip_data(d); | ||
1616 | |||
1617 | pcs_irq_set(pcs_soc, d->irq, false); | ||
1618 | } | ||
1619 | |||
1620 | /** | ||
1621 | * pcs_irq_unmask() - unmask pinctrl interrupt | ||
1622 | * @d: interrupt data | ||
1623 | */ | ||
1624 | static void pcs_irq_unmask(struct irq_data *d) | ||
1625 | { | ||
1626 | struct pcs_soc_data *pcs_soc = irq_data_get_irq_chip_data(d); | ||
1627 | |||
1628 | pcs_irq_set(pcs_soc, d->irq, true); | ||
1629 | if (pcs_soc->rearm) | ||
1630 | pcs_soc->rearm(); | ||
1631 | } | ||
1632 | |||
1633 | /** | ||
1634 | * pcs_irq_set_wake() - toggle the suspend and resume wake up | ||
1635 | * @d: interrupt data | ||
1636 | * @state: wake-up state | ||
1637 | * | ||
1638 | * Note that this should be called only for suspend and resume. | ||
1639 | * For runtime PM, the wake-up events should be enabled by default. | ||
1640 | */ | ||
1641 | static int pcs_irq_set_wake(struct irq_data *d, unsigned int state) | ||
1642 | { | ||
1643 | if (state) | ||
1644 | pcs_irq_unmask(d); | ||
1645 | else | ||
1646 | pcs_irq_mask(d); | ||
1647 | |||
1648 | return 0; | ||
1649 | } | ||
1650 | |||
1651 | /** | ||
1652 | * pcs_irq_handle() - common interrupt handler | ||
1653 | * @pcs_irq: interrupt data | ||
1654 | * | ||
1655 | * Note that this currently assumes we have one interrupt bit per | ||
1656 | * mux register. This interrupt is typically used for wake-up events. | ||
1657 | * For more complex interrupts different handlers can be specified. | ||
1658 | */ | ||
1659 | static int pcs_irq_handle(struct pcs_soc_data *pcs_soc) | ||
1660 | { | ||
1661 | struct pcs_device *pcs; | ||
1662 | struct list_head *pos; | ||
1663 | int count = 0; | ||
1664 | |||
1665 | pcs = container_of(pcs_soc, struct pcs_device, socdata); | ||
1666 | list_for_each(pos, &pcs->irqs) { | ||
1667 | struct pcs_interrupt *pcswi; | ||
1668 | unsigned mask; | ||
1669 | |||
1670 | pcswi = list_entry(pos, struct pcs_interrupt, node); | ||
1671 | raw_spin_lock(&pcs->lock); | ||
1672 | mask = pcs->read(pcswi->reg); | ||
1673 | raw_spin_unlock(&pcs->lock); | ||
1674 | if (mask & pcs_soc->irq_status_mask) { | ||
1675 | generic_handle_irq(irq_find_mapping(pcs->domain, | ||
1676 | pcswi->hwirq)); | ||
1677 | count++; | ||
1678 | } | ||
1679 | } | ||
1680 | |||
1681 | /* | ||
1682 | * For debugging on omaps, you may want to call pcs_soc->rearm() | ||
1683 | * here to see wake-up interrupts during runtime also. | ||
1684 | */ | ||
1685 | |||
1686 | return count; | ||
1687 | } | ||
1688 | |||
1689 | /** | ||
1690 | * pcs_irq_handler() - handler for the shared interrupt case | ||
1691 | * @irq: interrupt | ||
1692 | * @d: data | ||
1693 | * | ||
1694 | * Use this for cases where multiple instances of | ||
1695 | * pinctrl-single share a single interrupt like on omaps. | ||
1696 | */ | ||
1697 | static irqreturn_t pcs_irq_handler(int irq, void *d) | ||
1698 | { | ||
1699 | struct pcs_soc_data *pcs_soc = d; | ||
1700 | |||
1701 | return pcs_irq_handle(pcs_soc) ? IRQ_HANDLED : IRQ_NONE; | ||
1702 | } | ||
1703 | |||
1704 | /** | ||
1705 | * pcs_irq_handle() - handler for the dedicated chained interrupt case | ||
1706 | * @irq: interrupt | ||
1707 | * @desc: interrupt descriptor | ||
1708 | * | ||
1709 | * Use this if you have a separate interrupt for each | ||
1710 | * pinctrl-single instance. | ||
1711 | */ | ||
1712 | static void pcs_irq_chain_handler(unsigned int irq, struct irq_desc *desc) | ||
1713 | { | ||
1714 | struct pcs_soc_data *pcs_soc = irq_desc_get_handler_data(desc); | ||
1715 | struct irq_chip *chip; | ||
1716 | int res; | ||
1717 | |||
1718 | chip = irq_get_chip(irq); | ||
1719 | chained_irq_enter(chip, desc); | ||
1720 | res = pcs_irq_handle(pcs_soc); | ||
1721 | /* REVISIT: export and add handle_bad_irq(irq, desc)? */ | ||
1722 | chained_irq_exit(chip, desc); | ||
1723 | |||
1724 | return; | ||
1725 | } | ||
1726 | |||
1727 | static int pcs_irqdomain_map(struct irq_domain *d, unsigned int irq, | ||
1728 | irq_hw_number_t hwirq) | ||
1729 | { | ||
1730 | struct pcs_soc_data *pcs_soc = d->host_data; | ||
1731 | struct pcs_device *pcs; | ||
1732 | struct pcs_interrupt *pcswi; | ||
1733 | |||
1734 | pcs = container_of(pcs_soc, struct pcs_device, socdata); | ||
1735 | pcswi = devm_kzalloc(pcs->dev, sizeof(*pcswi), GFP_KERNEL); | ||
1736 | if (!pcswi) | ||
1737 | return -ENOMEM; | ||
1738 | |||
1739 | pcswi->reg = pcs->base + hwirq; | ||
1740 | pcswi->hwirq = hwirq; | ||
1741 | pcswi->irq = irq; | ||
1742 | |||
1743 | mutex_lock(&pcs->mutex); | ||
1744 | list_add_tail(&pcswi->node, &pcs->irqs); | ||
1745 | mutex_unlock(&pcs->mutex); | ||
1746 | |||
1747 | irq_set_chip_data(irq, pcs_soc); | ||
1748 | irq_set_chip_and_handler(irq, &pcs->chip, | ||
1749 | handle_level_irq); | ||
1750 | |||
1751 | #ifdef CONFIG_ARM | ||
1752 | set_irq_flags(irq, IRQF_VALID); | ||
1753 | #else | ||
1754 | irq_set_noprobe(irq); | ||
1755 | #endif | ||
1756 | |||
1757 | return 0; | ||
1758 | } | ||
1759 | |||
1760 | static struct irq_domain_ops pcs_irqdomain_ops = { | ||
1761 | .map = pcs_irqdomain_map, | ||
1762 | .xlate = irq_domain_xlate_onecell, | ||
1763 | }; | ||
1764 | |||
1765 | /** | ||
1766 | * pcs_irq_init_chained_handler() - set up a chained interrupt handler | ||
1767 | * @pcs: pcs driver instance | ||
1768 | * @np: device node pointer | ||
1769 | */ | ||
1770 | static int pcs_irq_init_chained_handler(struct pcs_device *pcs, | ||
1771 | struct device_node *np) | ||
1772 | { | ||
1773 | struct pcs_soc_data *pcs_soc = &pcs->socdata; | ||
1774 | const char *name = "pinctrl"; | ||
1775 | int num_irqs; | ||
1776 | |||
1777 | if (!pcs_soc->irq_enable_mask || | ||
1778 | !pcs_soc->irq_status_mask) { | ||
1779 | pcs_soc->irq = -1; | ||
1780 | return -EINVAL; | ||
1781 | } | ||
1782 | |||
1783 | INIT_LIST_HEAD(&pcs->irqs); | ||
1784 | pcs->chip.name = name; | ||
1785 | pcs->chip.irq_ack = pcs_irq_mask; | ||
1786 | pcs->chip.irq_mask = pcs_irq_mask; | ||
1787 | pcs->chip.irq_unmask = pcs_irq_unmask; | ||
1788 | pcs->chip.irq_set_wake = pcs_irq_set_wake; | ||
1789 | |||
1790 | if (PCS_QUIRK_HAS_SHARED_IRQ) { | ||
1791 | int res; | ||
1792 | |||
1793 | res = request_irq(pcs_soc->irq, pcs_irq_handler, | ||
1794 | IRQF_SHARED | IRQF_NO_SUSPEND, | ||
1795 | name, pcs_soc); | ||
1796 | if (res) { | ||
1797 | pcs_soc->irq = -1; | ||
1798 | return res; | ||
1799 | } | ||
1800 | } else { | ||
1801 | irq_set_handler_data(pcs_soc->irq, pcs_soc); | ||
1802 | irq_set_chained_handler(pcs_soc->irq, | ||
1803 | pcs_irq_chain_handler); | ||
1804 | } | ||
1805 | |||
1806 | /* | ||
1807 | * We can use the register offset as the hardirq | ||
1808 | * number as irq_domain_add_simple maps them lazily. | ||
1809 | * This way we can easily support more than one | ||
1810 | * interrupt per function if needed. | ||
1811 | */ | ||
1812 | num_irqs = pcs->size; | ||
1813 | |||
1814 | pcs->domain = irq_domain_add_simple(np, num_irqs, 0, | ||
1815 | &pcs_irqdomain_ops, | ||
1816 | pcs_soc); | ||
1817 | if (!pcs->domain) { | ||
1818 | irq_set_chained_handler(pcs_soc->irq, NULL); | ||
1819 | return -EINVAL; | ||
1820 | } | ||
1821 | |||
1822 | return 0; | ||
1823 | } | ||
1496 | 1824 | ||
1497 | #ifdef CONFIG_PM | 1825 | #ifdef CONFIG_PM |
1498 | static int pinctrl_single_suspend(struct platform_device *pdev, | 1826 | static int pinctrl_single_suspend(struct platform_device *pdev, |
@@ -1523,8 +1851,10 @@ static int pcs_probe(struct platform_device *pdev) | |||
1523 | { | 1851 | { |
1524 | struct device_node *np = pdev->dev.of_node; | 1852 | struct device_node *np = pdev->dev.of_node; |
1525 | const struct of_device_id *match; | 1853 | const struct of_device_id *match; |
1854 | struct pcs_pdata *pdata; | ||
1526 | struct resource *res; | 1855 | struct resource *res; |
1527 | struct pcs_device *pcs; | 1856 | struct pcs_device *pcs; |
1857 | const struct pcs_soc_data *soc; | ||
1528 | int ret; | 1858 | int ret; |
1529 | 1859 | ||
1530 | match = of_match_device(pcs_of_match, &pdev->dev); | 1860 | match = of_match_device(pcs_of_match, &pdev->dev); |
@@ -1537,11 +1867,14 @@ static int pcs_probe(struct platform_device *pdev) | |||
1537 | return -ENOMEM; | 1867 | return -ENOMEM; |
1538 | } | 1868 | } |
1539 | pcs->dev = &pdev->dev; | 1869 | pcs->dev = &pdev->dev; |
1870 | raw_spin_lock_init(&pcs->lock); | ||
1540 | mutex_init(&pcs->mutex); | 1871 | mutex_init(&pcs->mutex); |
1541 | INIT_LIST_HEAD(&pcs->pingroups); | 1872 | INIT_LIST_HEAD(&pcs->pingroups); |
1542 | INIT_LIST_HEAD(&pcs->functions); | 1873 | INIT_LIST_HEAD(&pcs->functions); |
1543 | INIT_LIST_HEAD(&pcs->gpiofuncs); | 1874 | INIT_LIST_HEAD(&pcs->gpiofuncs); |
1544 | pcs->is_pinconf = match->data; | 1875 | soc = match->data; |
1876 | pcs->flags = soc->flags; | ||
1877 | memcpy(&pcs->socdata, soc, sizeof(*soc)); | ||
1545 | 1878 | ||
1546 | PCS_GET_PROP_U32("pinctrl-single,register-width", &pcs->width, | 1879 | PCS_GET_PROP_U32("pinctrl-single,register-width", &pcs->width, |
1547 | "register width not specified\n"); | 1880 | "register width not specified\n"); |
@@ -1610,7 +1943,7 @@ static int pcs_probe(struct platform_device *pdev) | |||
1610 | pcs->desc.name = DRIVER_NAME; | 1943 | pcs->desc.name = DRIVER_NAME; |
1611 | pcs->desc.pctlops = &pcs_pinctrl_ops; | 1944 | pcs->desc.pctlops = &pcs_pinctrl_ops; |
1612 | pcs->desc.pmxops = &pcs_pinmux_ops; | 1945 | pcs->desc.pmxops = &pcs_pinmux_ops; |
1613 | if (pcs->is_pinconf) | 1946 | if (PCS_HAS_PINCONF) |
1614 | pcs->desc.confops = &pcs_pinconf_ops; | 1947 | pcs->desc.confops = &pcs_pinconf_ops; |
1615 | pcs->desc.owner = THIS_MODULE; | 1948 | pcs->desc.owner = THIS_MODULE; |
1616 | 1949 | ||
@@ -1629,6 +1962,27 @@ static int pcs_probe(struct platform_device *pdev) | |||
1629 | if (ret < 0) | 1962 | if (ret < 0) |
1630 | goto free; | 1963 | goto free; |
1631 | 1964 | ||
1965 | pcs->socdata.irq = irq_of_parse_and_map(np, 0); | ||
1966 | if (pcs->socdata.irq) | ||
1967 | pcs->flags |= PCS_FEAT_IRQ; | ||
1968 | |||
1969 | /* We still need auxdata for some omaps for PRM interrupts */ | ||
1970 | pdata = dev_get_platdata(&pdev->dev); | ||
1971 | if (pdata) { | ||
1972 | if (pdata->rearm) | ||
1973 | pcs->socdata.rearm = pdata->rearm; | ||
1974 | if (pdata->irq) { | ||
1975 | pcs->socdata.irq = pdata->irq; | ||
1976 | pcs->flags |= PCS_FEAT_IRQ; | ||
1977 | } | ||
1978 | } | ||
1979 | |||
1980 | if (PCS_HAS_IRQ) { | ||
1981 | ret = pcs_irq_init_chained_handler(pcs, np); | ||
1982 | if (ret < 0) | ||
1983 | dev_warn(pcs->dev, "initialized with no interrupts\n"); | ||
1984 | } | ||
1985 | |||
1632 | dev_info(pcs->dev, "%i pins at pa %p size %u\n", | 1986 | dev_info(pcs->dev, "%i pins at pa %p size %u\n", |
1633 | pcs->desc.npins, pcs->base, pcs->size); | 1987 | pcs->desc.npins, pcs->base, pcs->size); |
1634 | 1988 | ||
@@ -1652,9 +2006,25 @@ static int pcs_remove(struct platform_device *pdev) | |||
1652 | return 0; | 2006 | return 0; |
1653 | } | 2007 | } |
1654 | 2008 | ||
2009 | static const struct pcs_soc_data pinctrl_single_omap_wkup = { | ||
2010 | .flags = PCS_QUIRK_SHARED_IRQ, | ||
2011 | .irq_enable_mask = (1 << 14), /* OMAP_WAKEUP_EN */ | ||
2012 | .irq_status_mask = (1 << 15), /* OMAP_WAKEUP_EVENT */ | ||
2013 | }; | ||
2014 | |||
2015 | static const struct pcs_soc_data pinctrl_single = { | ||
2016 | }; | ||
2017 | |||
2018 | static const struct pcs_soc_data pinconf_single = { | ||
2019 | .flags = PCS_FEAT_PINCONF, | ||
2020 | }; | ||
2021 | |||
1655 | static struct of_device_id pcs_of_match[] = { | 2022 | static struct of_device_id pcs_of_match[] = { |
1656 | { .compatible = "pinctrl-single", .data = (void *)false }, | 2023 | { .compatible = "ti,omap3-padconf", .data = &pinctrl_single_omap_wkup }, |
1657 | { .compatible = "pinconf-single", .data = (void *)true }, | 2024 | { .compatible = "ti,omap4-padconf", .data = &pinctrl_single_omap_wkup }, |
2025 | { .compatible = "ti,omap5-padconf", .data = &pinctrl_single_omap_wkup }, | ||
2026 | { .compatible = "pinctrl-single", .data = &pinctrl_single }, | ||
2027 | { .compatible = "pinconf-single", .data = &pinconf_single }, | ||
1658 | { }, | 2028 | { }, |
1659 | }; | 2029 | }; |
1660 | MODULE_DEVICE_TABLE(of, pcs_of_match); | 2030 | MODULE_DEVICE_TABLE(of, pcs_of_match); |
diff --git a/drivers/usb/musb/ux500.c b/drivers/usb/musb/ux500.c index f483d1924c28..122446bf1664 100644 --- a/drivers/usb/musb/ux500.c +++ b/drivers/usb/musb/ux500.c | |||
@@ -259,7 +259,7 @@ static int ux500_probe(struct platform_device *pdev) | |||
259 | goto err1; | 259 | goto err1; |
260 | } | 260 | } |
261 | 261 | ||
262 | clk = clk_get(&pdev->dev, "usb"); | 262 | clk = clk_get(&pdev->dev, NULL); |
263 | if (IS_ERR(clk)) { | 263 | if (IS_ERR(clk)) { |
264 | dev_err(&pdev->dev, "failed to get clock\n"); | 264 | dev_err(&pdev->dev, "failed to get clock\n"); |
265 | ret = PTR_ERR(clk); | 265 | ret = PTR_ERR(clk); |
diff --git a/include/dt-bindings/mfd/dbx500-prcmu.h b/include/dt-bindings/mfd/dbx500-prcmu.h new file mode 100644 index 000000000000..552a2d174f01 --- /dev/null +++ b/include/dt-bindings/mfd/dbx500-prcmu.h | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | * This header provides constants for the PRCMU bindings. | ||
3 | * | ||
4 | */ | ||
5 | |||
6 | #ifndef _DT_BINDINGS_MFD_PRCMU_H | ||
7 | #define _DT_BINDINGS_MFD_PRCMU_H | ||
8 | |||
9 | /* | ||
10 | * Clock identifiers. | ||
11 | */ | ||
12 | #define ARMCLK 0 | ||
13 | #define PRCMU_ACLK 1 | ||
14 | #define PRCMU_SVAMMCSPCLK 2 | ||
15 | #define PRCMU_SDMMCHCLK 2 /* DBx540 only. */ | ||
16 | #define PRCMU_SIACLK 3 | ||
17 | #define PRCMU_SIAMMDSPCLK 3 /* DBx540 only. */ | ||
18 | #define PRCMU_SGACLK 4 | ||
19 | #define PRCMU_UARTCLK 5 | ||
20 | #define PRCMU_MSP02CLK 6 | ||
21 | #define PRCMU_MSP1CLK 7 | ||
22 | #define PRCMU_I2CCLK 8 | ||
23 | #define PRCMU_SDMMCCLK 9 | ||
24 | #define PRCMU_SLIMCLK 10 | ||
25 | #define PRCMU_CAMCLK 10 /* DBx540 only. */ | ||
26 | #define PRCMU_PER1CLK 11 | ||
27 | #define PRCMU_PER2CLK 12 | ||
28 | #define PRCMU_PER3CLK 13 | ||
29 | #define PRCMU_PER5CLK 14 | ||
30 | #define PRCMU_PER6CLK 15 | ||
31 | #define PRCMU_PER7CLK 16 | ||
32 | #define PRCMU_LCDCLK 17 | ||
33 | #define PRCMU_BMLCLK 18 | ||
34 | #define PRCMU_HSITXCLK 19 | ||
35 | #define PRCMU_HSIRXCLK 20 | ||
36 | #define PRCMU_HDMICLK 21 | ||
37 | #define PRCMU_APEATCLK 22 | ||
38 | #define PRCMU_APETRACECLK 23 | ||
39 | #define PRCMU_MCDECLK 24 | ||
40 | #define PRCMU_IPI2CCLK 25 | ||
41 | #define PRCMU_DSIALTCLK 26 | ||
42 | #define PRCMU_DMACLK 27 | ||
43 | #define PRCMU_B2R2CLK 28 | ||
44 | #define PRCMU_TVCLK 29 | ||
45 | #define SPARE_UNIPROCLK 30 | ||
46 | #define PRCMU_SSPCLK 31 | ||
47 | #define PRCMU_RNGCLK 32 | ||
48 | #define PRCMU_UICCCLK 33 | ||
49 | #define PRCMU_G1CLK 34 /* DBx540 only. */ | ||
50 | #define PRCMU_HVACLK 35 /* DBx540 only. */ | ||
51 | #define PRCMU_SPARE1CLK 36 | ||
52 | #define PRCMU_SPARE2CLK 37 | ||
53 | |||
54 | #define PRCMU_NUM_REG_CLOCKS 38 | ||
55 | |||
56 | #define PRCMU_RTCCLK PRCMU_NUM_REG_CLOCKS | ||
57 | #define PRCMU_SYSCLK 39 | ||
58 | #define PRCMU_CDCLK 40 | ||
59 | #define PRCMU_TIMCLK 41 | ||
60 | #define PRCMU_PLLSOC0 42 | ||
61 | #define PRCMU_PLLSOC1 43 | ||
62 | #define PRCMU_ARMSS 44 | ||
63 | #define PRCMU_PLLDDR 45 | ||
64 | |||
65 | /* DSI Clocks */ | ||
66 | #define PRCMU_PLLDSI 46 | ||
67 | #define PRCMU_DSI0CLK 47 | ||
68 | #define PRCMU_DSI1CLK 48 | ||
69 | #define PRCMU_DSI0ESCCLK 49 | ||
70 | #define PRCMU_DSI1ESCCLK 50 | ||
71 | #define PRCMU_DSI2ESCCLK 51 | ||
72 | |||
73 | /* LCD DSI PLL - Ux540 only */ | ||
74 | #define PRCMU_PLLDSI_LCD 52 | ||
75 | #define PRCMU_DSI0CLK_LCD 53 | ||
76 | #define PRCMU_DSI1CLK_LCD 54 | ||
77 | #define PRCMU_DSI0ESCCLK_LCD 55 | ||
78 | #define PRCMU_DSI1ESCCLK_LCD 56 | ||
79 | #define PRCMU_DSI2ESCCLK_LCD 57 | ||
80 | |||
81 | #define PRCMU_NUM_CLKS 58 | ||
82 | |||
83 | #endif | ||
diff --git a/include/dt-bindings/pinctrl/am43xx.h b/include/dt-bindings/pinctrl/am43xx.h new file mode 100644 index 000000000000..eb6c366adfba --- /dev/null +++ b/include/dt-bindings/pinctrl/am43xx.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * This header provides constants specific to AM43XX pinctrl bindings. | ||
3 | */ | ||
4 | |||
5 | #ifndef _DT_BINDINGS_PINCTRL_AM43XX_H | ||
6 | #define _DT_BINDINGS_PINCTRL_AM43XX_H | ||
7 | |||
8 | #define MUX_MODE0 0 | ||
9 | #define MUX_MODE1 1 | ||
10 | #define MUX_MODE2 2 | ||
11 | #define MUX_MODE3 3 | ||
12 | #define MUX_MODE4 4 | ||
13 | #define MUX_MODE5 5 | ||
14 | #define MUX_MODE6 6 | ||
15 | #define MUX_MODE7 7 | ||
16 | |||
17 | #define PULL_DISABLE (1 << 16) | ||
18 | #define PULL_UP (1 << 17) | ||
19 | #define INPUT_EN (1 << 18) | ||
20 | #define SLEWCTRL_FAST (1 << 19) | ||
21 | #define DS0_PULL_UP_DOWN_EN (1 << 27) | ||
22 | |||
23 | #define PIN_OUTPUT (PULL_DISABLE) | ||
24 | #define PIN_OUTPUT_PULLUP (PULL_UP) | ||
25 | #define PIN_OUTPUT_PULLDOWN 0 | ||
26 | #define PIN_INPUT (INPUT_EN | PULL_DISABLE) | ||
27 | #define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP) | ||
28 | #define PIN_INPUT_PULLDOWN (INPUT_EN) | ||
29 | |||
30 | #endif | ||
31 | |||
diff --git a/include/dt-bindings/pinctrl/dra.h b/include/dt-bindings/pinctrl/dra.h new file mode 100644 index 000000000000..002a2855c046 --- /dev/null +++ b/include/dt-bindings/pinctrl/dra.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /* | ||
2 | * This header provides constants for DRA pinctrl bindings. | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * Author: Rajendra Nayak <rnayak@ti.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #ifndef _DT_BINDINGS_PINCTRL_DRA_H | ||
13 | #define _DT_BINDINGS_PINCTRL_DRA_H | ||
14 | |||
15 | /* DRA7 mux mode options for each pin. See TRM for options */ | ||
16 | #define MUX_MODE0 0x0 | ||
17 | #define MUX_MODE1 0x1 | ||
18 | #define MUX_MODE2 0x2 | ||
19 | #define MUX_MODE3 0x3 | ||
20 | #define MUX_MODE4 0x4 | ||
21 | #define MUX_MODE5 0x5 | ||
22 | #define MUX_MODE6 0x6 | ||
23 | #define MUX_MODE7 0x7 | ||
24 | #define MUX_MODE8 0x8 | ||
25 | #define MUX_MODE9 0x9 | ||
26 | #define MUX_MODE10 0xa | ||
27 | #define MUX_MODE11 0xb | ||
28 | #define MUX_MODE12 0xc | ||
29 | #define MUX_MODE13 0xd | ||
30 | #define MUX_MODE14 0xe | ||
31 | #define MUX_MODE15 0xf | ||
32 | |||
33 | #define PULL_ENA (1 << 16) | ||
34 | #define PULL_UP (1 << 17) | ||
35 | #define INPUT_EN (1 << 18) | ||
36 | #define SLEWCONTROL (1 << 19) | ||
37 | #define WAKEUP_EN (1 << 24) | ||
38 | #define WAKEUP_EVENT (1 << 25) | ||
39 | |||
40 | /* Active pin states */ | ||
41 | #define PIN_OUTPUT 0 | ||
42 | #define PIN_OUTPUT_PULLUP (PIN_OUTPUT | PULL_ENA | PULL_UP) | ||
43 | #define PIN_OUTPUT_PULLDOWN (PIN_OUTPUT | PULL_ENA) | ||
44 | #define PIN_INPUT INPUT_EN | ||
45 | #define PIN_INPUT_SLEW (INPUT_EN | SLEWCONTROL) | ||
46 | #define PIN_INPUT_PULLUP (PULL_ENA | INPUT_EN | PULL_UP) | ||
47 | #define PIN_INPUT_PULLDOWN (PULL_ENA | INPUT_EN) | ||
48 | |||
49 | #endif | ||
50 | |||
diff --git a/include/linux/mfd/dbx500-prcmu.h b/include/linux/mfd/dbx500-prcmu.h index ca0790fba2f5..060e11256fbc 100644 --- a/include/linux/mfd/dbx500-prcmu.h +++ b/include/linux/mfd/dbx500-prcmu.h | |||
@@ -12,6 +12,8 @@ | |||
12 | #include <linux/notifier.h> | 12 | #include <linux/notifier.h> |
13 | #include <linux/err.h> | 13 | #include <linux/err.h> |
14 | 14 | ||
15 | #include <dt-bindings/mfd/dbx500-prcmu.h> /* For clock identifiers */ | ||
16 | |||
15 | /* Offset for the firmware version within the TCPM */ | 17 | /* Offset for the firmware version within the TCPM */ |
16 | #define DB8500_PRCMU_FW_VERSION_OFFSET 0xA4 | 18 | #define DB8500_PRCMU_FW_VERSION_OFFSET 0xA4 |
17 | #define DBX540_PRCMU_FW_VERSION_OFFSET 0xA8 | 19 | #define DBX540_PRCMU_FW_VERSION_OFFSET 0xA8 |
@@ -94,74 +96,6 @@ enum prcmu_wakeup_index { | |||
94 | #define PRCMU_CLKSRC_ARMCLKFIX 0x46 | 96 | #define PRCMU_CLKSRC_ARMCLKFIX 0x46 |
95 | #define PRCMU_CLKSRC_HDMICLK 0x47 | 97 | #define PRCMU_CLKSRC_HDMICLK 0x47 |
96 | 98 | ||
97 | /* | ||
98 | * Clock identifiers. | ||
99 | */ | ||
100 | enum prcmu_clock { | ||
101 | PRCMU_SGACLK, | ||
102 | PRCMU_UARTCLK, | ||
103 | PRCMU_MSP02CLK, | ||
104 | PRCMU_MSP1CLK, | ||
105 | PRCMU_I2CCLK, | ||
106 | PRCMU_SDMMCCLK, | ||
107 | PRCMU_SPARE1CLK, | ||
108 | PRCMU_SLIMCLK, | ||
109 | PRCMU_PER1CLK, | ||
110 | PRCMU_PER2CLK, | ||
111 | PRCMU_PER3CLK, | ||
112 | PRCMU_PER5CLK, | ||
113 | PRCMU_PER6CLK, | ||
114 | PRCMU_PER7CLK, | ||
115 | PRCMU_LCDCLK, | ||
116 | PRCMU_BMLCLK, | ||
117 | PRCMU_HSITXCLK, | ||
118 | PRCMU_HSIRXCLK, | ||
119 | PRCMU_HDMICLK, | ||
120 | PRCMU_APEATCLK, | ||
121 | PRCMU_APETRACECLK, | ||
122 | PRCMU_MCDECLK, | ||
123 | PRCMU_IPI2CCLK, | ||
124 | PRCMU_DSIALTCLK, | ||
125 | PRCMU_DMACLK, | ||
126 | PRCMU_B2R2CLK, | ||
127 | PRCMU_TVCLK, | ||
128 | PRCMU_SSPCLK, | ||
129 | PRCMU_RNGCLK, | ||
130 | PRCMU_UICCCLK, | ||
131 | PRCMU_PWMCLK, | ||
132 | PRCMU_IRDACLK, | ||
133 | PRCMU_IRRCCLK, | ||
134 | PRCMU_SIACLK, | ||
135 | PRCMU_SVACLK, | ||
136 | PRCMU_ACLK, | ||
137 | PRCMU_HVACLK, /* Ux540 only */ | ||
138 | PRCMU_G1CLK, /* Ux540 only */ | ||
139 | PRCMU_SDMMCHCLK, | ||
140 | PRCMU_CAMCLK, | ||
141 | PRCMU_BML8580CLK, | ||
142 | PRCMU_NUM_REG_CLOCKS, | ||
143 | PRCMU_SYSCLK = PRCMU_NUM_REG_CLOCKS, | ||
144 | PRCMU_CDCLK, | ||
145 | PRCMU_TIMCLK, | ||
146 | PRCMU_PLLSOC0, | ||
147 | PRCMU_PLLSOC1, | ||
148 | PRCMU_ARMSS, | ||
149 | PRCMU_PLLDDR, | ||
150 | PRCMU_PLLDSI, | ||
151 | PRCMU_DSI0CLK, | ||
152 | PRCMU_DSI1CLK, | ||
153 | PRCMU_DSI0ESCCLK, | ||
154 | PRCMU_DSI1ESCCLK, | ||
155 | PRCMU_DSI2ESCCLK, | ||
156 | /* LCD DSI PLL - Ux540 only */ | ||
157 | PRCMU_PLLDSI_LCD, | ||
158 | PRCMU_DSI0CLK_LCD, | ||
159 | PRCMU_DSI1CLK_LCD, | ||
160 | PRCMU_DSI0ESCCLK_LCD, | ||
161 | PRCMU_DSI1ESCCLK_LCD, | ||
162 | PRCMU_DSI2ESCCLK_LCD, | ||
163 | }; | ||
164 | |||
165 | /** | 99 | /** |
166 | * enum prcmu_wdog_id - PRCMU watchdog IDs | 100 | * enum prcmu_wdog_id - PRCMU watchdog IDs |
167 | * @PRCMU_WDOG_ALL: use all timers | 101 | * @PRCMU_WDOG_ALL: use all timers |
diff --git a/include/linux/platform_data/clk-ux500.h b/include/linux/platform_data/clk-ux500.h index 9d98f3aaa16c..97baf831e071 100644 --- a/include/linux/platform_data/clk-ux500.h +++ b/include/linux/platform_data/clk-ux500.h | |||
@@ -10,6 +10,9 @@ | |||
10 | #ifndef __CLK_UX500_H | 10 | #ifndef __CLK_UX500_H |
11 | #define __CLK_UX500_H | 11 | #define __CLK_UX500_H |
12 | 12 | ||
13 | void u8500_of_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, | ||
14 | u32 clkrst5_base, u32 clkrst6_base); | ||
15 | |||
13 | void u8500_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, | 16 | void u8500_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, |
14 | u32 clkrst5_base, u32 clkrst6_base); | 17 | u32 clkrst5_base, u32 clkrst6_base); |
15 | void u9540_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, | 18 | void u9540_clk_init(u32 clkrst1_base, u32 clkrst2_base, u32 clkrst3_base, |
diff --git a/include/linux/platform_data/pinctrl-single.h b/include/linux/platform_data/pinctrl-single.h new file mode 100644 index 000000000000..72eacda9b360 --- /dev/null +++ b/include/linux/platform_data/pinctrl-single.h | |||
@@ -0,0 +1,12 @@ | |||
1 | /** | ||
2 | * irq: optional wake-up interrupt | ||
3 | * rearm: optional soc specific rearm function | ||
4 | * | ||
5 | * Note that the irq and rearm setup should come from device | ||
6 | * tree except for omap where there are still some dependencies | ||
7 | * to the legacy PRM code. | ||
8 | */ | ||
9 | struct pcs_pdata { | ||
10 | int irq; | ||
11 | void (*rearm)(void); | ||
12 | }; | ||