diff options
143 files changed, 7751 insertions, 3048 deletions
diff --git a/Documentation/devicetree/bindings/arm/omap/l3-noc.txt b/Documentation/devicetree/bindings/arm/omap/l3-noc.txt index 6888a5efc860..c0105de55cbd 100644 --- a/Documentation/devicetree/bindings/arm/omap/l3-noc.txt +++ b/Documentation/devicetree/bindings/arm/omap/l3-noc.txt | |||
@@ -6,6 +6,7 @@ provided by Arteris. | |||
6 | Required properties: | 6 | Required properties: |
7 | - compatible : Should be "ti,omap3-l3-smx" for OMAP3 family | 7 | - compatible : Should be "ti,omap3-l3-smx" for OMAP3 family |
8 | Should be "ti,omap4-l3-noc" for OMAP4 family | 8 | Should be "ti,omap4-l3-noc" for OMAP4 family |
9 | - reg: Contains L3 register address range for each noc domain. | ||
9 | - ti,hwmods: "l3_main_1", ... One hwmod for each noc domain. | 10 | - ti,hwmods: "l3_main_1", ... One hwmod for each noc domain. |
10 | 11 | ||
11 | Examples: | 12 | Examples: |
diff --git a/Documentation/devicetree/bindings/arm/omap/timer.txt b/Documentation/devicetree/bindings/arm/omap/timer.txt index 8732d4d41f8b..d02e27c764ec 100644 --- a/Documentation/devicetree/bindings/arm/omap/timer.txt +++ b/Documentation/devicetree/bindings/arm/omap/timer.txt | |||
@@ -1,7 +1,20 @@ | |||
1 | OMAP Timer bindings | 1 | OMAP Timer bindings |
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Must be "ti,omap2-timer" for OMAP2+ controllers. | 4 | - compatible: Should be set to one of the below. Please note that |
5 | OMAP44xx devices have timer instances that are 100% | ||
6 | register compatible with OMAP3xxx devices as well as | ||
7 | newer timers that are not 100% register compatible. | ||
8 | So for OMAP44xx devices timer instances may use | ||
9 | different compatible strings. | ||
10 | |||
11 | ti,omap2420-timer (applicable to OMAP24xx devices) | ||
12 | ti,omap3430-timer (applicable to OMAP3xxx/44xx devices) | ||
13 | ti,omap4430-timer (applicable to OMAP44xx devices) | ||
14 | ti,omap5430-timer (applicable to OMAP543x devices) | ||
15 | ti,am335x-timer (applicable to AM335x devices) | ||
16 | ti,am335x-timer-1ms (applicable to AM335x devices) | ||
17 | |||
5 | - reg: Contains timer register address range (base address and | 18 | - reg: Contains timer register address range (base address and |
6 | length). | 19 | length). |
7 | - interrupts: Contains the interrupt information for the timer. The | 20 | - interrupts: Contains the interrupt information for the timer. The |
@@ -22,7 +35,7 @@ Optional properties: | |||
22 | Example: | 35 | Example: |
23 | 36 | ||
24 | timer12: timer@48304000 { | 37 | timer12: timer@48304000 { |
25 | compatible = "ti,omap2-timer"; | 38 | compatible = "ti,omap3430-timer"; |
26 | reg = <0x48304000 0x400>; | 39 | reg = <0x48304000 0x400>; |
27 | interrupts = <95>; | 40 | interrupts = <95>; |
28 | ti,hwmods = "timer12" | 41 | ti,hwmods = "timer12" |
diff --git a/Documentation/devicetree/bindings/arm/samsung/sysreg.txt b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt new file mode 100644 index 000000000000..5039c0a12f55 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt | |||
@@ -0,0 +1,7 @@ | |||
1 | SAMSUNG S5P/Exynos SoC series System Registers (SYSREG) | ||
2 | |||
3 | Properties: | ||
4 | - name : should be 'sysreg'; | ||
5 | - compatible : should contain "samsung,<chip name>-sysreg", "syscon"; | ||
6 | For Exynos4 SoC series it should be "samsung,exynos4-sysreg", "syscon"; | ||
7 | - reg : offset and length of the register set. | ||
diff --git a/Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt b/Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt index ded0398d3bdc..a4873e5e3e36 100644 --- a/Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt +++ b/Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt | |||
@@ -3,17 +3,58 @@ | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : Should be "fsl,<chip>-dma-apbh" or "fsl,<chip>-dma-apbx" | 4 | - compatible : Should be "fsl,<chip>-dma-apbh" or "fsl,<chip>-dma-apbx" |
5 | - reg : Should contain registers location and length | 5 | - reg : Should contain registers location and length |
6 | - interrupts : Should contain the interrupt numbers of DMA channels. | ||
7 | If a channel is empty/reserved, 0 should be filled in place. | ||
8 | - #dma-cells : Must be <1>. The number cell specifies the channel ID. | ||
9 | - dma-channels : Number of channels supported by the DMA controller | ||
10 | |||
11 | Optional properties: | ||
12 | - interrupt-names : Name of DMA channel interrupts | ||
6 | 13 | ||
7 | Supported chips: | 14 | Supported chips: |
8 | imx23, imx28. | 15 | imx23, imx28. |
9 | 16 | ||
10 | Examples: | 17 | Examples: |
11 | dma-apbh@80004000 { | 18 | |
19 | dma_apbh: dma-apbh@80004000 { | ||
12 | compatible = "fsl,imx28-dma-apbh"; | 20 | compatible = "fsl,imx28-dma-apbh"; |
13 | reg = <0x80004000 2000>; | 21 | reg = <0x80004000 0x2000>; |
22 | interrupts = <82 83 84 85 | ||
23 | 88 88 88 88 | ||
24 | 88 88 88 88 | ||
25 | 87 86 0 0>; | ||
26 | interrupt-names = "ssp0", "ssp1", "ssp2", "ssp3", | ||
27 | "gpmi0", "gmpi1", "gpmi2", "gmpi3", | ||
28 | "gpmi4", "gmpi5", "gpmi6", "gmpi7", | ||
29 | "hsadc", "lcdif", "empty", "empty"; | ||
30 | #dma-cells = <1>; | ||
31 | dma-channels = <16>; | ||
14 | }; | 32 | }; |
15 | 33 | ||
16 | dma-apbx@80024000 { | 34 | dma_apbx: dma-apbx@80024000 { |
17 | compatible = "fsl,imx28-dma-apbx"; | 35 | compatible = "fsl,imx28-dma-apbx"; |
18 | reg = <0x80024000 2000>; | 36 | reg = <0x80024000 0x2000>; |
37 | interrupts = <78 79 66 0 | ||
38 | 80 81 68 69 | ||
39 | 70 71 72 73 | ||
40 | 74 75 76 77>; | ||
41 | interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty", | ||
42 | "saif0", "saif1", "i2c0", "i2c1", | ||
43 | "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx", | ||
44 | "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx"; | ||
45 | #dma-cells = <1>; | ||
46 | dma-channels = <16>; | ||
47 | }; | ||
48 | |||
49 | DMA clients connected to the MXS DMA controller must use the format | ||
50 | described in the dma.txt file. | ||
51 | |||
52 | Examples: | ||
53 | |||
54 | auart0: serial@8006a000 { | ||
55 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | ||
56 | reg = <0x8006a000 0x2000>; | ||
57 | interrupts = <112>; | ||
58 | dmas = <&dma_apbx 8>, <&dma_apbx 9>; | ||
59 | dma-names = "rx", "tx"; | ||
19 | }; | 60 | }; |
diff --git a/Documentation/devicetree/bindings/fb/mxsfb.txt b/Documentation/devicetree/bindings/fb/mxsfb.txt index b41e5e52a676..96ec5179c8a0 100644 --- a/Documentation/devicetree/bindings/fb/mxsfb.txt +++ b/Documentation/devicetree/bindings/fb/mxsfb.txt | |||
@@ -5,9 +5,16 @@ Required properties: | |||
5 | imx23 and imx28. | 5 | imx23 and imx28. |
6 | - reg: Address and length of the register set for lcdif | 6 | - reg: Address and length of the register set for lcdif |
7 | - interrupts: Should contain lcdif interrupts | 7 | - interrupts: Should contain lcdif interrupts |
8 | - display : phandle to display node (see below for details) | ||
8 | 9 | ||
9 | Optional properties: | 10 | * display node |
10 | - panel-enable-gpios : Should specify the gpio for panel enable | 11 | |
12 | Required properties: | ||
13 | - bits-per-pixel : <16> for RGB565, <32> for RGB888/666. | ||
14 | - bus-width : number of data lines. Could be <8>, <16>, <18> or <24>. | ||
15 | |||
16 | Required sub-node: | ||
17 | - display-timings : Refer to binding doc display-timing.txt for details. | ||
11 | 18 | ||
12 | Examples: | 19 | Examples: |
13 | 20 | ||
@@ -15,5 +22,28 @@ lcdif@80030000 { | |||
15 | compatible = "fsl,imx28-lcdif"; | 22 | compatible = "fsl,imx28-lcdif"; |
16 | reg = <0x80030000 2000>; | 23 | reg = <0x80030000 2000>; |
17 | interrupts = <38 86>; | 24 | interrupts = <38 86>; |
18 | panel-enable-gpios = <&gpio3 30 0>; | 25 | |
26 | display: display { | ||
27 | bits-per-pixel = <32>; | ||
28 | bus-width = <24>; | ||
29 | |||
30 | display-timings { | ||
31 | native-mode = <&timing0>; | ||
32 | timing0: timing0 { | ||
33 | clock-frequency = <33500000>; | ||
34 | hactive = <800>; | ||
35 | vactive = <480>; | ||
36 | hfront-porch = <164>; | ||
37 | hback-porch = <89>; | ||
38 | hsync-len = <10>; | ||
39 | vback-porch = <23>; | ||
40 | vfront-porch = <10>; | ||
41 | vsync-len = <10>; | ||
42 | hsync-active = <0>; | ||
43 | vsync-active = <0>; | ||
44 | de-active = <1>; | ||
45 | pixelclk-active = <0>; | ||
46 | }; | ||
47 | }; | ||
48 | }; | ||
19 | }; | 49 | }; |
diff --git a/Documentation/devicetree/bindings/gpio/gpio-omap.txt b/Documentation/devicetree/bindings/gpio/gpio-omap.txt index 1b524c0c79fe..8d950522e7fa 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-omap.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-omap.txt | |||
@@ -5,12 +5,12 @@ Required properties: | |||
5 | - "ti,omap2-gpio" for OMAP2 controllers | 5 | - "ti,omap2-gpio" for OMAP2 controllers |
6 | - "ti,omap3-gpio" for OMAP3 controllers | 6 | - "ti,omap3-gpio" for OMAP3 controllers |
7 | - "ti,omap4-gpio" for OMAP4 controllers | 7 | - "ti,omap4-gpio" for OMAP4 controllers |
8 | - gpio-controller : Marks the device node as a GPIO controller. | ||
8 | - #gpio-cells : Should be two. | 9 | - #gpio-cells : Should be two. |
9 | - first cell is the pin number | 10 | - first cell is the pin number |
10 | - second cell is used to specify optional parameters (unused) | 11 | - second cell is used to specify optional parameters (unused) |
11 | - gpio-controller : Marks the device node as a GPIO controller. | 12 | - interrupt-controller: Mark the device node as an interrupt controller. |
12 | - #interrupt-cells : Should be 2. | 13 | - #interrupt-cells : Should be 2. |
13 | - interrupt-controller: Mark the device node as an interrupt controller | ||
14 | The first cell is the GPIO number. | 14 | The first cell is the GPIO number. |
15 | The second cell is used to specify flags: | 15 | The second cell is used to specify flags: |
16 | bits[3:0] trigger type and level flags: | 16 | bits[3:0] trigger type and level flags: |
@@ -32,8 +32,8 @@ Example: | |||
32 | gpio4: gpio4 { | 32 | gpio4: gpio4 { |
33 | compatible = "ti,omap4-gpio"; | 33 | compatible = "ti,omap4-gpio"; |
34 | ti,hwmods = "gpio4"; | 34 | ti,hwmods = "gpio4"; |
35 | #gpio-cells = <2>; | ||
36 | gpio-controller; | 35 | gpio-controller; |
37 | #interrupt-cells = <2>; | 36 | #gpio-cells = <2>; |
38 | interrupt-controller; | 37 | interrupt-controller; |
38 | #interrupt-cells = <2>; | ||
39 | }; | 39 | }; |
diff --git a/Documentation/devicetree/bindings/gpu/samsung-g2d.txt b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt new file mode 100644 index 000000000000..2b14a940eb75 --- /dev/null +++ b/Documentation/devicetree/bindings/gpu/samsung-g2d.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | * Samsung 2D Graphics Accelerator | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : value should be one among the following: | ||
5 | (a) "samsung,s5pv210-g2d" for G2D IP present in S5PV210 & Exynos4210 SoC | ||
6 | (b) "samsung,exynos4212-g2d" for G2D IP present in Exynos4x12 SoCs | ||
7 | (c) "samsung,exynos5250-g2d" for G2D IP present in Exynos5250 SoC | ||
8 | |||
9 | - reg : Physical base address of the IP registers and length of memory | ||
10 | mapped region. | ||
11 | |||
12 | - interrupts : G2D interrupt number to the CPU. | ||
13 | |||
14 | Example: | ||
15 | g2d@12800000 { | ||
16 | compatible = "samsung,s5pv210-g2d"; | ||
17 | reg = <0x12800000 0x1000>; | ||
18 | interrupts = <0 89 0>; | ||
19 | status = "disabled"; | ||
20 | }; | ||
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mxs.txt b/Documentation/devicetree/bindings/i2c/i2c-mxs.txt index 7a3fe9e5f4cb..4e1c8ac01eba 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mxs.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mxs.txt | |||
@@ -3,10 +3,13 @@ | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "fsl,<chip>-i2c" | 4 | - compatible: Should be "fsl,<chip>-i2c" |
5 | - reg: Should contain registers location and length | 5 | - reg: Should contain registers location and length |
6 | - interrupts: Should contain ERROR and DMA interrupts | 6 | - interrupts: Should contain ERROR interrupt number |
7 | - clock-frequency: Desired I2C bus clock frequency in Hz. | 7 | - clock-frequency: Desired I2C bus clock frequency in Hz. |
8 | Only 100000Hz and 400000Hz modes are supported. | 8 | Only 100000Hz and 400000Hz modes are supported. |
9 | - fsl,i2c-dma-channel: APBX DMA channel for the I2C | 9 | - dmas: DMA specifier, consisting of a phandle to DMA controller node |
10 | and I2C DMA channel ID. | ||
11 | Refer to dma.txt and fsl-mxs-dma.txt for details. | ||
12 | - dma-names: Must be "rx-tx". | ||
10 | 13 | ||
11 | Examples: | 14 | Examples: |
12 | 15 | ||
@@ -15,7 +18,8 @@ i2c0: i2c@80058000 { | |||
15 | #size-cells = <0>; | 18 | #size-cells = <0>; |
16 | compatible = "fsl,imx28-i2c"; | 19 | compatible = "fsl,imx28-i2c"; |
17 | reg = <0x80058000 2000>; | 20 | reg = <0x80058000 2000>; |
18 | interrupts = <111 68>; | 21 | interrupts = <111>; |
19 | clock-frequency = <100000>; | 22 | clock-frequency = <100000>; |
20 | fsl,i2c-dma-channel = <6>; | 23 | dmas = <&dma_apbx 6>; |
24 | dma-names = "rx-tx"; | ||
21 | }; | 25 | }; |
diff --git a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt new file mode 100644 index 000000000000..ef77cc7a0e46 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt | |||
@@ -0,0 +1,60 @@ | |||
1 | NVIDIA Tegra20/Tegra30/Tegra114 I2C controller driver. | ||
2 | |||
3 | Required properties: | ||
4 | - compatible : should be: | ||
5 | "nvidia,tegra114-i2c" | ||
6 | "nvidia,tegra30-i2c" | ||
7 | "nvidia,tegra20-i2c" | ||
8 | "nvidia,tegra20-i2c-dvc" | ||
9 | Details of compatible are as follows: | ||
10 | nvidia,tegra20-i2c-dvc: Tegra20 has specific I2C controller called as DVC I2C | ||
11 | controller. This only support master mode of I2C communication. Register | ||
12 | interface/offset and interrupts handling are different than generic I2C | ||
13 | controller. Driver of DVC I2C controller is only compatible with | ||
14 | "nvidia,tegra20-i2c-dvc". | ||
15 | nvidia,tegra20-i2c: Tegra20 has 4 generic I2C controller. This can support | ||
16 | master and slave mode of I2C communication. The i2c-tegra driver only | ||
17 | support master mode of I2C communication. Driver of I2C controller is | ||
18 | only compatible with "nvidia,tegra20-i2c". | ||
19 | nvidia,tegra30-i2c: Tegra30 has 5 generic I2C controller. This controller is | ||
20 | very much similar to Tegra20 I2C controller with additional feature: | ||
21 | Continue Transfer Support. This feature helps to implement M_NO_START | ||
22 | as per I2C core API transfer flags. Driver of I2C controller is | ||
23 | compatible with "nvidia,tegra30-i2c" to enable the continue transfer | ||
24 | support. This is also compatible with "nvidia,tegra20-i2c" without | ||
25 | continue transfer support. | ||
26 | nvidia,tegra114-i2c: Tegra114 has 5 generic I2C controller. This controller is | ||
27 | very much similar to Tegra30 I2C controller with some hardware | ||
28 | modification: | ||
29 | - Tegra30/Tegra20 I2C controller has 2 clock source called div-clk and | ||
30 | fast-clk. Tegra114 has only one clock source called as div-clk and | ||
31 | hence clock mechanism is changed in I2C controller. | ||
32 | - Tegra30/Tegra20 I2C controller has enabled per packet transfer by | ||
33 | default and there is no way to disable it. Tegra114 has this | ||
34 | interrupt disable by default and SW need to enable explicitly. | ||
35 | Due to above changes, Tegra114 I2C driver makes incompatible with | ||
36 | previous hardware driver. Hence, tegra114 I2C controller is compatible | ||
37 | with "nvidia,tegra114-i2c". | ||
38 | - reg: Should contain I2C controller registers physical address and length. | ||
39 | - interrupts: Should contain I2C controller interrupts. | ||
40 | - address-cells: Address cells for I2C device address. | ||
41 | - size-cells: Size of the I2C device address. | ||
42 | - clocks: Clock ID as per | ||
43 | Documentation/devicetree/bindings/clock/tegra<chip-id>.txt | ||
44 | for I2C controller. | ||
45 | - clock-names: Name of the clock: | ||
46 | Tegra20/Tegra30 I2C controller: "div-clk and "fast-clk". | ||
47 | Tegra114 I2C controller: "div-clk". | ||
48 | |||
49 | Example: | ||
50 | |||
51 | i2c@7000c000 { | ||
52 | compatible = "nvidia,tegra20-i2c"; | ||
53 | reg = <0x7000c000 0x100>; | ||
54 | interrupts = <0 38 0x04>; | ||
55 | #address-cells = <1>; | ||
56 | #size-cells = <0>; | ||
57 | clocks = <&tegra_car 12>, <&tegra_car 124>; | ||
58 | clock-names = "div-clk", "fast-clk"; | ||
59 | status = "disabled"; | ||
60 | }; | ||
diff --git a/Documentation/devicetree/bindings/mmc/mxs-mmc.txt b/Documentation/devicetree/bindings/mmc/mxs-mmc.txt index 54949f6faede..515addc20070 100644 --- a/Documentation/devicetree/bindings/mmc/mxs-mmc.txt +++ b/Documentation/devicetree/bindings/mmc/mxs-mmc.txt | |||
@@ -9,15 +9,19 @@ and the properties used by the mxsmmc driver. | |||
9 | Required properties: | 9 | Required properties: |
10 | - compatible: Should be "fsl,<chip>-mmc". The supported chips include | 10 | - compatible: Should be "fsl,<chip>-mmc". The supported chips include |
11 | imx23 and imx28. | 11 | imx23 and imx28. |
12 | - interrupts: Should contain ERROR and DMA interrupts | 12 | - interrupts: Should contain ERROR interrupt number |
13 | - fsl,ssp-dma-channel: APBH DMA channel for the SSP | 13 | - dmas: DMA specifier, consisting of a phandle to DMA controller node |
14 | and SSP DMA channel ID. | ||
15 | Refer to dma.txt and fsl-mxs-dma.txt for details. | ||
16 | - dma-names: Must be "rx-tx". | ||
14 | 17 | ||
15 | Examples: | 18 | Examples: |
16 | 19 | ||
17 | ssp0: ssp@80010000 { | 20 | ssp0: ssp@80010000 { |
18 | compatible = "fsl,imx28-mmc"; | 21 | compatible = "fsl,imx28-mmc"; |
19 | reg = <0x80010000 2000>; | 22 | reg = <0x80010000 2000>; |
20 | interrupts = <96 82>; | 23 | interrupts = <96>; |
21 | fsl,ssp-dma-channel = <0>; | 24 | dmas = <&dma_apbh 0>; |
25 | dma-names = "rx-tx"; | ||
22 | bus-width = <8>; | 26 | bus-width = <8>; |
23 | }; | 27 | }; |
diff --git a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt index 3fb3f9015365..551b2a179d01 100644 --- a/Documentation/devicetree/bindings/mtd/gpmi-nand.txt +++ b/Documentation/devicetree/bindings/mtd/gpmi-nand.txt | |||
@@ -7,10 +7,12 @@ Required properties: | |||
7 | - compatible : should be "fsl,<chip>-gpmi-nand" | 7 | - compatible : should be "fsl,<chip>-gpmi-nand" |
8 | - reg : should contain registers location and length for gpmi and bch. | 8 | - reg : should contain registers location and length for gpmi and bch. |
9 | - reg-names: Should contain the reg names "gpmi-nand" and "bch" | 9 | - reg-names: Should contain the reg names "gpmi-nand" and "bch" |
10 | - interrupts : The first is the DMA interrupt number for GPMI. | 10 | - interrupts : BCH interrupt number. |
11 | The second is the BCH interrupt number. | 11 | - interrupt-names : Should be "bch". |
12 | - interrupt-names : The interrupt names "gpmi-dma", "bch"; | 12 | - dmas: DMA specifier, consisting of a phandle to DMA controller node |
13 | - fsl,gpmi-dma-channel : Should contain the dma channel it uses. | 13 | and GPMI DMA channel ID. |
14 | Refer to dma.txt and fsl-mxs-dma.txt for details. | ||
15 | - dma-names: Must be "rx-tx". | ||
14 | 16 | ||
15 | Optional properties: | 17 | Optional properties: |
16 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not | 18 | - nand-on-flash-bbt: boolean to enable on flash bbt option if not |
@@ -27,9 +29,10 @@ gpmi-nand@8000c000 { | |||
27 | #size-cells = <1>; | 29 | #size-cells = <1>; |
28 | reg = <0x8000c000 2000>, <0x8000a000 2000>; | 30 | reg = <0x8000c000 2000>, <0x8000a000 2000>; |
29 | reg-names = "gpmi-nand", "bch"; | 31 | reg-names = "gpmi-nand", "bch"; |
30 | interrupts = <88>, <41>; | 32 | interrupts = <41>; |
31 | interrupt-names = "gpmi-dma", "bch"; | 33 | interrupt-names = "bch"; |
32 | fsl,gpmi-dma-channel = <4>; | 34 | dmas = <&dma_apbh 4>; |
35 | dma-names = "rx-tx"; | ||
33 | 36 | ||
34 | partition@0 { | 37 | partition@0 { |
35 | ... | 38 | ... |
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt index f7e8e8f4d9a3..3077370c89af 100644 --- a/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt +++ b/Documentation/devicetree/bindings/pinctrl/fsl,mxs-pinctrl.txt | |||
@@ -70,6 +70,10 @@ Optional subnode-properties: | |||
70 | 0: Disable the internal pull-up | 70 | 0: Disable the internal pull-up |
71 | 1: Enable the internal pull-up | 71 | 1: Enable the internal pull-up |
72 | 72 | ||
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 | ||
75 | will only disable the internal pad keeper. | ||
76 | |||
73 | Examples: | 77 | Examples: |
74 | 78 | ||
75 | pinctrl@80018000 { | 79 | pinctrl@80018000 { |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt index b77a97c9101e..05ffecb57103 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-alc5632.txt | |||
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "nvidia,tegra-audio-alc5632" | 4 | - compatible : "nvidia,tegra-audio-alc5632" |
5 | - clocks : Must contain an entry for each entry in clock-names. | ||
6 | - clock-names : Must include the following entries: | ||
7 | "pll_a" (The Tegra clock of that name), | ||
8 | "pll_a_out0" (The Tegra clock of that name), | ||
9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
5 | - nvidia,model : The user-visible name of this sound complex. | 10 | - nvidia,model : The user-visible name of this sound complex. |
6 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
7 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
@@ -56,4 +61,7 @@ sound { | |||
56 | 61 | ||
57 | nvidia,i2s-controller = <&tegra_i2s1>; | 62 | nvidia,i2s-controller = <&tegra_i2s1>; |
58 | nvidia,audio-codec = <&alc5632>; | 63 | nvidia,audio-codec = <&alc5632>; |
64 | |||
65 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>; | ||
66 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
59 | }; | 67 | }; |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt index 04b14cfb1f16..ef1fe7358279 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-trimslice.txt | |||
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex for TrimSlice | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "nvidia,tegra-audio-trimslice" | 4 | - compatible : "nvidia,tegra-audio-trimslice" |
5 | - clocks : Must contain an entry for each entry in clock-names. | ||
6 | - clock-names : Must include the following entries: | ||
7 | "pll_a" (The Tegra clock of that name), | ||
8 | "pll_a_out0" (The Tegra clock of that name), | ||
9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
5 | - nvidia,i2s-controller : The phandle of the Tegra I2S1 controller | 10 | - nvidia,i2s-controller : The phandle of the Tegra I2S1 controller |
6 | - nvidia,audio-codec : The phandle of the WM8903 audio codec | 11 | - nvidia,audio-codec : The phandle of the WM8903 audio codec |
7 | 12 | ||
@@ -11,4 +16,6 @@ sound { | |||
11 | compatible = "nvidia,tegra-audio-trimslice"; | 16 | compatible = "nvidia,tegra-audio-trimslice"; |
12 | nvidia,i2s-controller = <&tegra_i2s1>; | 17 | nvidia,i2s-controller = <&tegra_i2s1>; |
13 | nvidia,audio-codec = <&codec>; | 18 | nvidia,audio-codec = <&codec>; |
19 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>; | ||
20 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
14 | }; | 21 | }; |
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt index c4dd39ce6165..d14510613a7f 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8753.txt | |||
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "nvidia,tegra-audio-wm8753" | 4 | - compatible : "nvidia,tegra-audio-wm8753" |
5 | - clocks : Must contain an entry for each entry in clock-names. | ||
6 | - clock-names : Must include the following entries: | ||
7 | "pll_a" (The Tegra clock of that name), | ||
8 | "pll_a_out0" (The Tegra clock of that name), | ||
9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
5 | - nvidia,model : The user-visible name of this sound complex. | 10 | - nvidia,model : The user-visible name of this sound complex. |
6 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
7 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
@@ -50,5 +55,8 @@ sound { | |||
50 | 55 | ||
51 | nvidia,i2s-controller = <&i2s1>; | 56 | nvidia,i2s-controller = <&i2s1>; |
52 | nvidia,audio-codec = <&wm8753>; | 57 | nvidia,audio-codec = <&wm8753>; |
58 | |||
59 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>; | ||
60 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
53 | }; | 61 | }; |
54 | 62 | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt index d5b0da8bf1d8..3bf722deb722 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm8903.txt | |||
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "nvidia,tegra-audio-wm8903" | 4 | - compatible : "nvidia,tegra-audio-wm8903" |
5 | - clocks : Must contain an entry for each entry in clock-names. | ||
6 | - clock-names : Must include the following entries: | ||
7 | "pll_a" (The Tegra clock of that name), | ||
8 | "pll_a_out0" (The Tegra clock of that name), | ||
9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
5 | - nvidia,model : The user-visible name of this sound complex. | 10 | - nvidia,model : The user-visible name of this sound complex. |
6 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
7 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
@@ -67,5 +72,8 @@ sound { | |||
67 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 72 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
68 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ | 73 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ |
69 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ | 74 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ |
75 | |||
76 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>; | ||
77 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
70 | }; | 78 | }; |
71 | 79 | ||
diff --git a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt index be35d34e8b26..ad589b163639 100644 --- a/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt +++ b/Documentation/devicetree/bindings/sound/nvidia,tegra-audio-wm9712.txt | |||
@@ -2,6 +2,11 @@ NVIDIA Tegra audio complex | |||
2 | 2 | ||
3 | Required properties: | 3 | Required properties: |
4 | - compatible : "nvidia,tegra-audio-wm9712" | 4 | - compatible : "nvidia,tegra-audio-wm9712" |
5 | - clocks : Must contain an entry for each entry in clock-names. | ||
6 | - clock-names : Must include the following entries: | ||
7 | "pll_a" (The Tegra clock of that name), | ||
8 | "pll_a_out0" (The Tegra clock of that name), | ||
9 | "mclk" (The Tegra cdev1/extern1 clock, which feeds the CODEC's mclk) | ||
5 | - nvidia,model : The user-visible name of this sound complex. | 10 | - nvidia,model : The user-visible name of this sound complex. |
6 | - nvidia,audio-routing : A list of the connections between audio components. | 11 | - nvidia,audio-routing : A list of the connections between audio components. |
7 | Each entry is a pair of strings, the first being the connection's sink, | 12 | Each entry is a pair of strings, the first being the connection's sink, |
@@ -48,4 +53,7 @@ sound { | |||
48 | "Mic", "MIC1"; | 53 | "Mic", "MIC1"; |
49 | 54 | ||
50 | nvidia,ac97-controller = <&ac97>; | 55 | nvidia,ac97-controller = <&ac97>; |
56 | |||
57 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 93>; | ||
58 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
51 | }; | 59 | }; |
diff --git a/Documentation/devicetree/bindings/spi/mxs-spi.txt b/Documentation/devicetree/bindings/spi/mxs-spi.txt index e2e13957c2a4..3499b73293c2 100644 --- a/Documentation/devicetree/bindings/spi/mxs-spi.txt +++ b/Documentation/devicetree/bindings/spi/mxs-spi.txt | |||
@@ -3,8 +3,11 @@ | |||
3 | Required properties: | 3 | Required properties: |
4 | - compatible: Should be "fsl,<soc>-spi", where soc is "imx23" or "imx28" | 4 | - compatible: Should be "fsl,<soc>-spi", where soc is "imx23" or "imx28" |
5 | - reg: Offset and length of the register set for the device | 5 | - reg: Offset and length of the register set for the device |
6 | - interrupts: Should contain SSP interrupts (error irq first, dma irq second) | 6 | - interrupts: Should contain SSP ERROR interrupt |
7 | - fsl,ssp-dma-channel: APBX DMA channel for the SSP | 7 | - dmas: DMA specifier, consisting of a phandle to DMA controller node |
8 | and SSP DMA channel ID. | ||
9 | Refer to dma.txt and fsl-mxs-dma.txt for details. | ||
10 | - dma-names: Must be "rx-tx". | ||
8 | 11 | ||
9 | Optional properties: | 12 | Optional properties: |
10 | - clock-frequency : Input clock frequency to the SPI block in Hz. | 13 | - clock-frequency : Input clock frequency to the SPI block in Hz. |
@@ -17,6 +20,7 @@ ssp0: ssp@80010000 { | |||
17 | #size-cells = <0>; | 20 | #size-cells = <0>; |
18 | compatible = "fsl,imx28-spi"; | 21 | compatible = "fsl,imx28-spi"; |
19 | reg = <0x80010000 0x2000>; | 22 | reg = <0x80010000 0x2000>; |
20 | interrupts = <96 82>; | 23 | interrupts = <96>; |
21 | fsl,ssp-dma-channel = <0>; | 24 | dmas = <&dma_apbh 0>; |
25 | dma-names = "rx-tx"; | ||
22 | }; | 26 | }; |
diff --git a/Documentation/devicetree/bindings/spi/spi-davinci.txt b/Documentation/devicetree/bindings/spi/spi-davinci.txt new file mode 100644 index 000000000000..6d0ac8d0ad9b --- /dev/null +++ b/Documentation/devicetree/bindings/spi/spi-davinci.txt | |||
@@ -0,0 +1,51 @@ | |||
1 | Davinci SPI controller device bindings | ||
2 | |||
3 | Required properties: | ||
4 | - #address-cells: number of cells required to define a chip select | ||
5 | address on the SPI bus. Should be set to 1. | ||
6 | - #size-cells: should be zero. | ||
7 | - compatible: | ||
8 | - "ti,dm6441-spi" for SPI used similar to that on DM644x SoC family | ||
9 | - "ti,da830-spi" for SPI used similar to that on DA8xx SoC family | ||
10 | - reg: Offset and length of SPI controller register space | ||
11 | - num-cs: Number of chip selects | ||
12 | - ti,davinci-spi-intr-line: interrupt line used to connect the SPI | ||
13 | IP to the interrupt controller within the SoC. Possible values | ||
14 | are 0 and 1. Manual says one of the two possible interrupt | ||
15 | lines can be tied to the interrupt controller. Set this | ||
16 | based on a specifc SoC configuration. | ||
17 | - interrupts: interrupt number mapped to CPU. | ||
18 | - clocks: spi clk phandle | ||
19 | |||
20 | Example of a NOR flash slave device (n25q032) connected to DaVinci | ||
21 | SPI controller device over the SPI bus. | ||
22 | |||
23 | spi0:spi@20BF0000 { | ||
24 | #address-cells = <1>; | ||
25 | #size-cells = <0>; | ||
26 | compatible = "ti,dm6446-spi"; | ||
27 | reg = <0x20BF0000 0x1000>; | ||
28 | num-cs = <4>; | ||
29 | ti,davinci-spi-intr-line = <0>; | ||
30 | interrupts = <338>; | ||
31 | clocks = <&clkspi>; | ||
32 | |||
33 | flash: n25q032@0 { | ||
34 | #address-cells = <1>; | ||
35 | #size-cells = <1>; | ||
36 | compatible = "st,m25p32"; | ||
37 | spi-max-frequency = <25000000>; | ||
38 | reg = <0>; | ||
39 | |||
40 | partition@0 { | ||
41 | label = "u-boot-spl"; | ||
42 | reg = <0x0 0x80000>; | ||
43 | read-only; | ||
44 | }; | ||
45 | |||
46 | partition@1 { | ||
47 | label = "test"; | ||
48 | reg = <0x80000 0x380000>; | ||
49 | }; | ||
50 | }; | ||
51 | }; | ||
diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt index 273a8d5b3300..2c00ec64628e 100644 --- a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt | |||
@@ -5,20 +5,18 @@ Required properties: | |||
5 | imx23 and imx28. | 5 | imx23 and imx28. |
6 | - reg : Address and length of the register set for the device | 6 | - reg : Address and length of the register set for the device |
7 | - interrupts : Should contain the auart interrupt numbers | 7 | - interrupts : Should contain the auart interrupt numbers |
8 | 8 | - dmas: DMA specifier, consisting of a phandle to DMA controller node | |
9 | Optional properties: | 9 | and AUART DMA channel ID. |
10 | - fsl,auart-dma-channel : The DMA channels, the first is for RX, the other | 10 | Refer to dma.txt and fsl-mxs-dma.txt for details. |
11 | is for TX. If you add this property, it also means that you | 11 | - dma-names: "rx" for RX channel, "tx" for TX channel. |
12 | will enable the DMA support for the auart. | ||
13 | Note: due to the hardware bug in imx23(see errata : 2836), | ||
14 | only the imx28 can enable the DMA support for the auart. | ||
15 | 12 | ||
16 | Example: | 13 | Example: |
17 | auart0: serial@8006a000 { | 14 | auart0: serial@8006a000 { |
18 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 15 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
19 | reg = <0x8006a000 0x2000>; | 16 | reg = <0x8006a000 0x2000>; |
20 | interrupts = <112 70 71>; | 17 | interrupts = <112>; |
21 | fsl,auart-dma-channel = <8 9>; | 18 | dmas = <&dma_apbx 8>, <&dma_apbx 9>; |
19 | dma-names = "rx", "tx"; | ||
22 | }; | 20 | }; |
23 | 21 | ||
24 | Note: Each auart port should have an alias correctly numbered in "aliases" | 22 | Note: Each auart port should have an alias correctly numbered in "aliases" |
diff --git a/Documentation/devicetree/bindings/usb/exynos-usb.txt b/Documentation/devicetree/bindings/usb/exynos-usb.txt index f66fcddba46f..b3abde736017 100644 --- a/Documentation/devicetree/bindings/usb/exynos-usb.txt +++ b/Documentation/devicetree/bindings/usb/exynos-usb.txt | |||
@@ -10,6 +10,8 @@ Required properties: | |||
10 | - reg: physical base address of the controller and length of memory mapped | 10 | - reg: physical base address of the controller 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: from common clock binding: handle to usb clock. | ||
14 | - clock-names: from common clock binding: Shall be "usbhost". | ||
13 | 15 | ||
14 | Optional properties: | 16 | Optional properties: |
15 | - samsung,vbus-gpio: if present, specifies the GPIO that | 17 | - samsung,vbus-gpio: if present, specifies the GPIO that |
@@ -22,6 +24,9 @@ Example: | |||
22 | reg = <0x12110000 0x100>; | 24 | reg = <0x12110000 0x100>; |
23 | interrupts = <0 71 0>; | 25 | interrupts = <0 71 0>; |
24 | samsung,vbus-gpio = <&gpx2 6 1 3 3>; | 26 | samsung,vbus-gpio = <&gpx2 6 1 3 3>; |
27 | |||
28 | clocks = <&clock 285>; | ||
29 | clock-names = "usbhost"; | ||
25 | }; | 30 | }; |
26 | 31 | ||
27 | OHCI | 32 | OHCI |
@@ -31,10 +36,15 @@ Required properties: | |||
31 | - reg: physical base address of the controller and length of memory mapped | 36 | - reg: physical base address of the controller and length of memory mapped |
32 | region. | 37 | region. |
33 | - interrupts: interrupt number to the cpu. | 38 | - interrupts: interrupt number to the cpu. |
39 | - clocks: from common clock binding: handle to usb clock. | ||
40 | - clock-names: from common clock binding: Shall be "usbhost". | ||
34 | 41 | ||
35 | Example: | 42 | Example: |
36 | usb@12120000 { | 43 | usb@12120000 { |
37 | compatible = "samsung,exynos4210-ohci"; | 44 | compatible = "samsung,exynos4210-ohci"; |
38 | reg = <0x12120000 0x100>; | 45 | reg = <0x12120000 0x100>; |
39 | interrupts = <0 71 0>; | 46 | interrupts = <0 71 0>; |
47 | |||
48 | clocks = <&clock 285>; | ||
49 | clock-names = "usbhost"; | ||
40 | }; | 50 | }; |
diff --git a/Documentation/devicetree/bindings/usb/omap-usb.txt b/Documentation/devicetree/bindings/usb/omap-usb.txt index 662f0f1d2315..d4769f343d6c 100644 --- a/Documentation/devicetree/bindings/usb/omap-usb.txt +++ b/Documentation/devicetree/bindings/usb/omap-usb.txt | |||
@@ -18,6 +18,7 @@ OMAP MUSB GLUE | |||
18 | represents PERIPHERAL. | 18 | represents PERIPHERAL. |
19 | - power : Should be "50". This signifies the controller can supply upto | 19 | - power : Should be "50". This signifies the controller can supply upto |
20 | 100mA when operating in host mode. | 20 | 100mA when operating in host mode. |
21 | - usb-phy : the phandle for the PHY device | ||
21 | 22 | ||
22 | Optional properties: | 23 | Optional properties: |
23 | - ctrl-module : phandle of the control module this glue uses to write to | 24 | - ctrl-module : phandle of the control module this glue uses to write to |
diff --git a/Documentation/devicetree/bindings/video/samsung-fimd.txt b/Documentation/devicetree/bindings/video/samsung-fimd.txt new file mode 100644 index 000000000000..778838a0336a --- /dev/null +++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt | |||
@@ -0,0 +1,65 @@ | |||
1 | Device-Tree bindings for Samsung SoC display controller (FIMD) | ||
2 | |||
3 | FIMD (Fully Interactive Mobile Display) is the Display Controller for the | ||
4 | Samsung series of SoCs which transfers the image data from a video memory | ||
5 | buffer to an external LCD interface. | ||
6 | |||
7 | Required properties: | ||
8 | - compatible: value should be one of the following | ||
9 | "samsung,s3c2443-fimd"; /* for S3C24XX SoCs */ | ||
10 | "samsung,s3c6400-fimd"; /* for S3C64XX SoCs */ | ||
11 | "samsung,s5p6440-fimd"; /* for S5P64X0 SoCs */ | ||
12 | "samsung,s5pc100-fimd"; /* for S5PC100 SoC */ | ||
13 | "samsung,s5pv210-fimd"; /* for S5PV210 SoC */ | ||
14 | "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */ | ||
15 | "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */ | ||
16 | |||
17 | - reg: physical base address and length of the FIMD registers set. | ||
18 | |||
19 | - interrupt-parent: should be the phandle of the fimd controller's | ||
20 | parent interrupt controller. | ||
21 | |||
22 | - interrupts: should contain a list of all FIMD IP block interrupts in the | ||
23 | order: FIFO Level, VSYNC, LCD_SYSTEM. The interrupt specifier | ||
24 | format depends on the interrupt controller used. | ||
25 | |||
26 | - interrupt-names: should contain the interrupt names: "fifo", "vsync", | ||
27 | "lcd_sys", in the same order as they were listed in the interrupts | ||
28 | property. | ||
29 | |||
30 | - pinctrl-0: pin control group to be used for this controller. | ||
31 | |||
32 | - pinctrl-names: must contain a "default" entry. | ||
33 | |||
34 | - clocks: must include clock specifiers corresponding to entries in the | ||
35 | clock-names property. | ||
36 | |||
37 | - clock-names: list of clock names sorted in the same order as the clocks | ||
38 | property. Must contain "sclk_fimd" and "fimd". | ||
39 | |||
40 | Optional Properties: | ||
41 | - samsung,power-domain: a phandle to FIMD power domain node. | ||
42 | |||
43 | Example: | ||
44 | |||
45 | SoC specific DT entry: | ||
46 | |||
47 | fimd@11c00000 { | ||
48 | compatible = "samsung,exynos4210-fimd"; | ||
49 | interrupt-parent = <&combiner>; | ||
50 | reg = <0x11c00000 0x20000>; | ||
51 | interrupt-names = "fifo", "vsync", "lcd_sys"; | ||
52 | interrupts = <11 0>, <11 1>, <11 2>; | ||
53 | clocks = <&clock 140>, <&clock 283>; | ||
54 | clock-names = "sclk_fimd", "fimd"; | ||
55 | samsung,power-domain = <&pd_lcd0>; | ||
56 | status = "disabled"; | ||
57 | }; | ||
58 | |||
59 | Board specific DT entry: | ||
60 | |||
61 | fimd@11c00000 { | ||
62 | pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>; | ||
63 | pinctrl-names = "default"; | ||
64 | status = "okay"; | ||
65 | }; | ||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 2ab88e91e65f..e6611eaa2885 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -53,6 +53,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ | |||
53 | exynos4412-smdk4412.dtb \ | 53 | exynos4412-smdk4412.dtb \ |
54 | exynos4412-origen.dtb \ | 54 | exynos4412-origen.dtb \ |
55 | exynos5250-arndale.dtb \ | 55 | exynos5250-arndale.dtb \ |
56 | exynos5440-sd5v1.dtb \ | ||
56 | exynos5250-smdk5250.dtb \ | 57 | exynos5250-smdk5250.dtb \ |
57 | exynos5250-snow.dtb \ | 58 | exynos5250-snow.dtb \ |
58 | exynos5440-ssdk5440.dtb | 59 | exynos5440-ssdk5440.dtb |
@@ -134,10 +135,14 @@ dtb-$(CONFIG_ARCH_MXS) += imx23-evk.dtb \ | |||
134 | imx28-tx28.dtb | 135 | imx28-tx28.dtb |
135 | dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb | 136 | dtb-$(CONFIG_ARCH_NOMADIK) += ste-nomadik-s8815.dtb |
136 | dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | 137 | dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ |
138 | omap3430-sdp.dtb \ | ||
137 | omap3-beagle.dtb \ | 139 | omap3-beagle.dtb \ |
140 | omap3-devkit8000.dtb \ | ||
138 | omap3-beagle-xm.dtb \ | 141 | omap3-beagle-xm.dtb \ |
139 | omap3-evm.dtb \ | 142 | omap3-evm.dtb \ |
140 | omap3-tobi.dtb \ | 143 | omap3-tobi.dtb \ |
144 | omap3-igep0020.dtb \ | ||
145 | omap3-igep0030.dtb \ | ||
141 | omap4-panda.dtb \ | 146 | omap4-panda.dtb \ |
142 | omap4-panda-a4.dtb \ | 147 | omap4-panda-a4.dtb \ |
143 | omap4-panda-es.dtb \ | 148 | omap4-panda-es.dtb \ |
diff --git a/arch/arm/boot/dts/am335x-bone.dts b/arch/arm/boot/dts/am335x-bone.dts index 11b240c5d323..5302f79c05b7 100644 --- a/arch/arm/boot/dts/am335x-bone.dts +++ b/arch/arm/boot/dts/am335x-bone.dts | |||
@@ -43,7 +43,7 @@ | |||
43 | status = "okay"; | 43 | status = "okay"; |
44 | }; | 44 | }; |
45 | 45 | ||
46 | i2c1: i2c@44e0b000 { | 46 | i2c0: i2c@44e0b000 { |
47 | status = "okay"; | 47 | status = "okay"; |
48 | clock-frequency = <400000>; | 48 | clock-frequency = <400000>; |
49 | 49 | ||
@@ -59,27 +59,27 @@ | |||
59 | 59 | ||
60 | led@2 { | 60 | led@2 { |
61 | label = "beaglebone:green:heartbeat"; | 61 | label = "beaglebone:green:heartbeat"; |
62 | gpios = <&gpio2 21 0>; | 62 | gpios = <&gpio1 21 0>; |
63 | linux,default-trigger = "heartbeat"; | 63 | linux,default-trigger = "heartbeat"; |
64 | default-state = "off"; | 64 | default-state = "off"; |
65 | }; | 65 | }; |
66 | 66 | ||
67 | led@3 { | 67 | led@3 { |
68 | label = "beaglebone:green:mmc0"; | 68 | label = "beaglebone:green:mmc0"; |
69 | gpios = <&gpio2 22 0>; | 69 | gpios = <&gpio1 22 0>; |
70 | linux,default-trigger = "mmc0"; | 70 | linux,default-trigger = "mmc0"; |
71 | default-state = "off"; | 71 | default-state = "off"; |
72 | }; | 72 | }; |
73 | 73 | ||
74 | led@4 { | 74 | led@4 { |
75 | label = "beaglebone:green:usr2"; | 75 | label = "beaglebone:green:usr2"; |
76 | gpios = <&gpio2 23 0>; | 76 | gpios = <&gpio1 23 0>; |
77 | default-state = "off"; | 77 | default-state = "off"; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | led@5 { | 80 | led@5 { |
81 | label = "beaglebone:green:usr3"; | 81 | label = "beaglebone:green:usr3"; |
82 | gpios = <&gpio2 24 0>; | 82 | gpios = <&gpio1 24 0>; |
83 | default-state = "off"; | 83 | default-state = "off"; |
84 | }; | 84 | }; |
85 | }; | 85 | }; |
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts index d6496440fcea..0423298a26fe 100644 --- a/arch/arm/boot/dts/am335x-evm.dts +++ b/arch/arm/boot/dts/am335x-evm.dts | |||
@@ -51,7 +51,7 @@ | |||
51 | status = "okay"; | 51 | status = "okay"; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | i2c1: i2c@44e0b000 { | 54 | i2c0: i2c@44e0b000 { |
55 | status = "okay"; | 55 | status = "okay"; |
56 | clock-frequency = <400000>; | 56 | clock-frequency = <400000>; |
57 | 57 | ||
@@ -60,7 +60,7 @@ | |||
60 | }; | 60 | }; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | i2c2: i2c@4802a000 { | 63 | i2c1: i2c@4802a000 { |
64 | status = "okay"; | 64 | status = "okay"; |
65 | clock-frequency = <100000>; | 65 | clock-frequency = <100000>; |
66 | 66 | ||
@@ -123,12 +123,12 @@ | |||
123 | debounce-delay-ms = <5>; | 123 | debounce-delay-ms = <5>; |
124 | col-scan-delay-us = <2>; | 124 | col-scan-delay-us = <2>; |
125 | 125 | ||
126 | row-gpios = <&gpio2 25 0 /* Bank1, pin25 */ | 126 | row-gpios = <&gpio1 25 0 /* Bank1, pin25 */ |
127 | &gpio2 26 0 /* Bank1, pin26 */ | 127 | &gpio1 26 0 /* Bank1, pin26 */ |
128 | &gpio2 27 0>; /* Bank1, pin27 */ | 128 | &gpio1 27 0>; /* Bank1, pin27 */ |
129 | 129 | ||
130 | col-gpios = <&gpio2 21 0 /* Bank1, pin21 */ | 130 | col-gpios = <&gpio1 21 0 /* Bank1, pin21 */ |
131 | &gpio2 22 0>; /* Bank1, pin22 */ | 131 | &gpio1 22 0>; /* Bank1, pin22 */ |
132 | 132 | ||
133 | linux,keymap = <0x0000008b /* MENU */ | 133 | linux,keymap = <0x0000008b /* MENU */ |
134 | 0x0100009e /* BACK */ | 134 | 0x0100009e /* BACK */ |
@@ -147,14 +147,14 @@ | |||
147 | switch@9 { | 147 | switch@9 { |
148 | label = "volume-up"; | 148 | label = "volume-up"; |
149 | linux,code = <115>; | 149 | linux,code = <115>; |
150 | gpios = <&gpio1 2 1>; | 150 | gpios = <&gpio0 2 1>; |
151 | gpio-key,wakeup; | 151 | gpio-key,wakeup; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | switch@10 { | 154 | switch@10 { |
155 | label = "volume-down"; | 155 | label = "volume-down"; |
156 | linux,code = <114>; | 156 | linux,code = <114>; |
157 | gpios = <&gpio1 3 1>; | 157 | gpios = <&gpio0 3 1>; |
158 | gpio-key,wakeup; | 158 | gpio-key,wakeup; |
159 | }; | 159 | }; |
160 | }; | 160 | }; |
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts index f5a6162a4ff2..f67c360844f4 100644 --- a/arch/arm/boot/dts/am335x-evmsk.dts +++ b/arch/arm/boot/dts/am335x-evmsk.dts | |||
@@ -58,7 +58,7 @@ | |||
58 | status = "okay"; | 58 | status = "okay"; |
59 | }; | 59 | }; |
60 | 60 | ||
61 | i2c1: i2c@44e0b000 { | 61 | i2c0: i2c@44e0b000 { |
62 | status = "okay"; | 62 | status = "okay"; |
63 | clock-frequency = <400000>; | 63 | clock-frequency = <400000>; |
64 | 64 | ||
@@ -115,26 +115,26 @@ | |||
115 | 115 | ||
116 | led@1 { | 116 | led@1 { |
117 | label = "evmsk:green:usr0"; | 117 | label = "evmsk:green:usr0"; |
118 | gpios = <&gpio2 4 0>; | 118 | gpios = <&gpio1 4 0>; |
119 | default-state = "off"; | 119 | default-state = "off"; |
120 | }; | 120 | }; |
121 | 121 | ||
122 | led@2 { | 122 | led@2 { |
123 | label = "evmsk:green:usr1"; | 123 | label = "evmsk:green:usr1"; |
124 | gpios = <&gpio2 5 0>; | 124 | gpios = <&gpio1 5 0>; |
125 | default-state = "off"; | 125 | default-state = "off"; |
126 | }; | 126 | }; |
127 | 127 | ||
128 | led@3 { | 128 | led@3 { |
129 | label = "evmsk:green:mmc0"; | 129 | label = "evmsk:green:mmc0"; |
130 | gpios = <&gpio2 6 0>; | 130 | gpios = <&gpio1 6 0>; |
131 | linux,default-trigger = "mmc0"; | 131 | linux,default-trigger = "mmc0"; |
132 | default-state = "off"; | 132 | default-state = "off"; |
133 | }; | 133 | }; |
134 | 134 | ||
135 | led@4 { | 135 | led@4 { |
136 | label = "evmsk:green:heartbeat"; | 136 | label = "evmsk:green:heartbeat"; |
137 | gpios = <&gpio2 7 0>; | 137 | gpios = <&gpio1 7 0>; |
138 | linux,default-trigger = "heartbeat"; | 138 | linux,default-trigger = "heartbeat"; |
139 | default-state = "off"; | 139 | default-state = "off"; |
140 | }; | 140 | }; |
@@ -148,26 +148,26 @@ | |||
148 | switch@1 { | 148 | switch@1 { |
149 | label = "button0"; | 149 | label = "button0"; |
150 | linux,code = <0x100>; | 150 | linux,code = <0x100>; |
151 | gpios = <&gpio3 3 0>; | 151 | gpios = <&gpio2 3 0>; |
152 | }; | 152 | }; |
153 | 153 | ||
154 | switch@2 { | 154 | switch@2 { |
155 | label = "button1"; | 155 | label = "button1"; |
156 | linux,code = <0x101>; | 156 | linux,code = <0x101>; |
157 | gpios = <&gpio3 2 0>; | 157 | gpios = <&gpio2 2 0>; |
158 | }; | 158 | }; |
159 | 159 | ||
160 | switch@3 { | 160 | switch@3 { |
161 | label = "button2"; | 161 | label = "button2"; |
162 | linux,code = <0x102>; | 162 | linux,code = <0x102>; |
163 | gpios = <&gpio1 30 0>; | 163 | gpios = <&gpio0 30 0>; |
164 | gpio-key,wakeup; | 164 | gpio-key,wakeup; |
165 | }; | 165 | }; |
166 | 166 | ||
167 | switch@4 { | 167 | switch@4 { |
168 | label = "button3"; | 168 | label = "button3"; |
169 | linux,code = <0x103>; | 169 | linux,code = <0x103>; |
170 | gpios = <&gpio3 5 0>; | 170 | gpios = <&gpio2 5 0>; |
171 | }; | 171 | }; |
172 | }; | 172 | }; |
173 | }; | 173 | }; |
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi index 91fe4f148f80..d1101103aa51 100644 --- a/arch/arm/boot/dts/am33xx.dtsi +++ b/arch/arm/boot/dts/am33xx.dtsi | |||
@@ -21,6 +21,8 @@ | |||
21 | serial3 = &uart4; | 21 | serial3 = &uart4; |
22 | serial4 = &uart5; | 22 | serial4 = &uart5; |
23 | serial5 = &uart6; | 23 | serial5 = &uart6; |
24 | d_can0 = &dcan0; | ||
25 | d_can1 = &dcan1; | ||
24 | }; | 26 | }; |
25 | 27 | ||
26 | cpus { | 28 | cpus { |
@@ -87,7 +89,7 @@ | |||
87 | reg = <0x48200000 0x1000>; | 89 | reg = <0x48200000 0x1000>; |
88 | }; | 90 | }; |
89 | 91 | ||
90 | gpio1: gpio@44e07000 { | 92 | gpio0: gpio@44e07000 { |
91 | compatible = "ti,omap4-gpio"; | 93 | compatible = "ti,omap4-gpio"; |
92 | ti,hwmods = "gpio1"; | 94 | ti,hwmods = "gpio1"; |
93 | gpio-controller; | 95 | gpio-controller; |
@@ -98,7 +100,7 @@ | |||
98 | interrupts = <96>; | 100 | interrupts = <96>; |
99 | }; | 101 | }; |
100 | 102 | ||
101 | gpio2: gpio@4804c000 { | 103 | gpio1: gpio@4804c000 { |
102 | compatible = "ti,omap4-gpio"; | 104 | compatible = "ti,omap4-gpio"; |
103 | ti,hwmods = "gpio2"; | 105 | ti,hwmods = "gpio2"; |
104 | gpio-controller; | 106 | gpio-controller; |
@@ -109,7 +111,7 @@ | |||
109 | interrupts = <98>; | 111 | interrupts = <98>; |
110 | }; | 112 | }; |
111 | 113 | ||
112 | gpio3: gpio@481ac000 { | 114 | gpio2: gpio@481ac000 { |
113 | compatible = "ti,omap4-gpio"; | 115 | compatible = "ti,omap4-gpio"; |
114 | ti,hwmods = "gpio3"; | 116 | ti,hwmods = "gpio3"; |
115 | gpio-controller; | 117 | gpio-controller; |
@@ -120,7 +122,7 @@ | |||
120 | interrupts = <32>; | 122 | interrupts = <32>; |
121 | }; | 123 | }; |
122 | 124 | ||
123 | gpio4: gpio@481ae000 { | 125 | gpio3: gpio@481ae000 { |
124 | compatible = "ti,omap4-gpio"; | 126 | compatible = "ti,omap4-gpio"; |
125 | ti,hwmods = "gpio4"; | 127 | ti,hwmods = "gpio4"; |
126 | gpio-controller; | 128 | gpio-controller; |
@@ -185,7 +187,7 @@ | |||
185 | status = "disabled"; | 187 | status = "disabled"; |
186 | }; | 188 | }; |
187 | 189 | ||
188 | i2c1: i2c@44e0b000 { | 190 | i2c0: i2c@44e0b000 { |
189 | compatible = "ti,omap4-i2c"; | 191 | compatible = "ti,omap4-i2c"; |
190 | #address-cells = <1>; | 192 | #address-cells = <1>; |
191 | #size-cells = <0>; | 193 | #size-cells = <0>; |
@@ -195,7 +197,7 @@ | |||
195 | status = "disabled"; | 197 | status = "disabled"; |
196 | }; | 198 | }; |
197 | 199 | ||
198 | i2c2: i2c@4802a000 { | 200 | i2c1: i2c@4802a000 { |
199 | compatible = "ti,omap4-i2c"; | 201 | compatible = "ti,omap4-i2c"; |
200 | #address-cells = <1>; | 202 | #address-cells = <1>; |
201 | #size-cells = <0>; | 203 | #size-cells = <0>; |
@@ -205,7 +207,7 @@ | |||
205 | status = "disabled"; | 207 | status = "disabled"; |
206 | }; | 208 | }; |
207 | 209 | ||
208 | i2c3: i2c@4819c000 { | 210 | i2c2: i2c@4819c000 { |
209 | compatible = "ti,omap4-i2c"; | 211 | compatible = "ti,omap4-i2c"; |
210 | #address-cells = <1>; | 212 | #address-cells = <1>; |
211 | #size-cells = <0>; | 213 | #size-cells = <0>; |
@@ -225,7 +227,8 @@ | |||
225 | dcan0: d_can@481cc000 { | 227 | dcan0: d_can@481cc000 { |
226 | compatible = "bosch,d_can"; | 228 | compatible = "bosch,d_can"; |
227 | ti,hwmods = "d_can0"; | 229 | ti,hwmods = "d_can0"; |
228 | reg = <0x481cc000 0x2000>; | 230 | reg = <0x481cc000 0x2000 |
231 | 0x44e10644 0x4>; | ||
229 | interrupts = <52>; | 232 | interrupts = <52>; |
230 | status = "disabled"; | 233 | status = "disabled"; |
231 | }; | 234 | }; |
@@ -233,13 +236,14 @@ | |||
233 | dcan1: d_can@481d0000 { | 236 | dcan1: d_can@481d0000 { |
234 | compatible = "bosch,d_can"; | 237 | compatible = "bosch,d_can"; |
235 | ti,hwmods = "d_can1"; | 238 | ti,hwmods = "d_can1"; |
236 | reg = <0x481d0000 0x2000>; | 239 | reg = <0x481d0000 0x2000 |
240 | 0x44e10644 0x4>; | ||
237 | interrupts = <55>; | 241 | interrupts = <55>; |
238 | status = "disabled"; | 242 | status = "disabled"; |
239 | }; | 243 | }; |
240 | 244 | ||
241 | timer1: timer@44e31000 { | 245 | timer1: timer@44e31000 { |
242 | compatible = "ti,omap2-timer"; | 246 | compatible = "ti,am335x-timer-1ms"; |
243 | reg = <0x44e31000 0x400>; | 247 | reg = <0x44e31000 0x400>; |
244 | interrupts = <67>; | 248 | interrupts = <67>; |
245 | ti,hwmods = "timer1"; | 249 | ti,hwmods = "timer1"; |
@@ -247,21 +251,21 @@ | |||
247 | }; | 251 | }; |
248 | 252 | ||
249 | timer2: timer@48040000 { | 253 | timer2: timer@48040000 { |
250 | compatible = "ti,omap2-timer"; | 254 | compatible = "ti,am335x-timer"; |
251 | reg = <0x48040000 0x400>; | 255 | reg = <0x48040000 0x400>; |
252 | interrupts = <68>; | 256 | interrupts = <68>; |
253 | ti,hwmods = "timer2"; | 257 | ti,hwmods = "timer2"; |
254 | }; | 258 | }; |
255 | 259 | ||
256 | timer3: timer@48042000 { | 260 | timer3: timer@48042000 { |
257 | compatible = "ti,omap2-timer"; | 261 | compatible = "ti,am335x-timer"; |
258 | reg = <0x48042000 0x400>; | 262 | reg = <0x48042000 0x400>; |
259 | interrupts = <69>; | 263 | interrupts = <69>; |
260 | ti,hwmods = "timer3"; | 264 | ti,hwmods = "timer3"; |
261 | }; | 265 | }; |
262 | 266 | ||
263 | timer4: timer@48044000 { | 267 | timer4: timer@48044000 { |
264 | compatible = "ti,omap2-timer"; | 268 | compatible = "ti,am335x-timer"; |
265 | reg = <0x48044000 0x400>; | 269 | reg = <0x48044000 0x400>; |
266 | interrupts = <92>; | 270 | interrupts = <92>; |
267 | ti,hwmods = "timer4"; | 271 | ti,hwmods = "timer4"; |
@@ -269,7 +273,7 @@ | |||
269 | }; | 273 | }; |
270 | 274 | ||
271 | timer5: timer@48046000 { | 275 | timer5: timer@48046000 { |
272 | compatible = "ti,omap2-timer"; | 276 | compatible = "ti,am335x-timer"; |
273 | reg = <0x48046000 0x400>; | 277 | reg = <0x48046000 0x400>; |
274 | interrupts = <93>; | 278 | interrupts = <93>; |
275 | ti,hwmods = "timer5"; | 279 | ti,hwmods = "timer5"; |
@@ -277,7 +281,7 @@ | |||
277 | }; | 281 | }; |
278 | 282 | ||
279 | timer6: timer@48048000 { | 283 | timer6: timer@48048000 { |
280 | compatible = "ti,omap2-timer"; | 284 | compatible = "ti,am335x-timer"; |
281 | reg = <0x48048000 0x400>; | 285 | reg = <0x48048000 0x400>; |
282 | interrupts = <94>; | 286 | interrupts = <94>; |
283 | ti,hwmods = "timer6"; | 287 | ti,hwmods = "timer6"; |
@@ -285,7 +289,7 @@ | |||
285 | }; | 289 | }; |
286 | 290 | ||
287 | timer7: timer@4804a000 { | 291 | timer7: timer@4804a000 { |
288 | compatible = "ti,omap2-timer"; | 292 | compatible = "ti,am335x-timer"; |
289 | reg = <0x4804a000 0x400>; | 293 | reg = <0x4804a000 0x400>; |
290 | interrupts = <95>; | 294 | interrupts = <95>; |
291 | ti,hwmods = "timer7"; | 295 | ti,hwmods = "timer7"; |
@@ -305,7 +309,7 @@ | |||
305 | #address-cells = <1>; | 309 | #address-cells = <1>; |
306 | #size-cells = <0>; | 310 | #size-cells = <0>; |
307 | reg = <0x48030000 0x400>; | 311 | reg = <0x48030000 0x400>; |
308 | interrupt = <65>; | 312 | interrupts = <65>; |
309 | ti,spi-num-cs = <2>; | 313 | ti,spi-num-cs = <2>; |
310 | ti,hwmods = "spi0"; | 314 | ti,hwmods = "spi0"; |
311 | status = "disabled"; | 315 | status = "disabled"; |
@@ -316,7 +320,7 @@ | |||
316 | #address-cells = <1>; | 320 | #address-cells = <1>; |
317 | #size-cells = <0>; | 321 | #size-cells = <0>; |
318 | reg = <0x481a0000 0x400>; | 322 | reg = <0x481a0000 0x400>; |
319 | interrupt = <125>; | 323 | interrupts = <125>; |
320 | ti,spi-num-cs = <2>; | 324 | ti,spi-num-cs = <2>; |
321 | ti,hwmods = "spi1"; | 325 | ti,hwmods = "spi1"; |
322 | status = "disabled"; | 326 | status = "disabled"; |
diff --git a/arch/arm/boot/dts/am3517-evm.dts b/arch/arm/boot/dts/am3517-evm.dts index 474f760ecadf..e9b5bdae4908 100644 --- a/arch/arm/boot/dts/am3517-evm.dts +++ b/arch/arm/boot/dts/am3517-evm.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TI AM3517 EVM (AM3517/05)"; | 13 | model = "TI AM3517 EVM (AM3517/05)"; |
diff --git a/arch/arm/boot/dts/am3517_mt_ventoux.dts b/arch/arm/boot/dts/am3517_mt_ventoux.dts index 5eb26d7d9b4e..556868388a23 100644 --- a/arch/arm/boot/dts/am3517_mt_ventoux.dts +++ b/arch/arm/boot/dts/am3517_mt_ventoux.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TeeJet Mt.Ventoux"; | 13 | model = "TeeJet Mt.Ventoux"; |
diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts index 6403acdbb75f..2353b1f13704 100644 --- a/arch/arm/boot/dts/armada-370-db.dts +++ b/arch/arm/boot/dts/armada-370-db.dts | |||
@@ -30,85 +30,87 @@ | |||
30 | }; | 30 | }; |
31 | 31 | ||
32 | soc { | 32 | soc { |
33 | serial@d0012000 { | 33 | internal-regs { |
34 | clock-frequency = <200000000>; | 34 | serial@12000 { |
35 | status = "okay"; | 35 | clock-frequency = <200000000>; |
36 | }; | 36 | status = "okay"; |
37 | sata@d00a0000 { | ||
38 | nr-ports = <2>; | ||
39 | status = "okay"; | ||
40 | }; | ||
41 | |||
42 | mdio { | ||
43 | phy0: ethernet-phy@0 { | ||
44 | reg = <0>; | ||
45 | }; | 37 | }; |
46 | 38 | sata@a0000 { | |
47 | phy1: ethernet-phy@1 { | 39 | nr-ports = <2>; |
48 | reg = <1>; | 40 | status = "okay"; |
49 | }; | 41 | }; |
50 | }; | ||
51 | 42 | ||
52 | ethernet@d0070000 { | 43 | mdio { |
53 | status = "okay"; | 44 | phy0: ethernet-phy@0 { |
54 | phy = <&phy0>; | 45 | reg = <0>; |
55 | phy-mode = "rgmii-id"; | 46 | }; |
56 | }; | ||
57 | ethernet@d0074000 { | ||
58 | status = "okay"; | ||
59 | phy = <&phy1>; | ||
60 | phy-mode = "rgmii-id"; | ||
61 | }; | ||
62 | 47 | ||
63 | mvsdio@d00d4000 { | 48 | phy1: ethernet-phy@1 { |
64 | pinctrl-0 = <&sdio_pins1>; | 49 | reg = <1>; |
65 | pinctrl-names = "default"; | 50 | }; |
66 | /* | 51 | }; |
67 | * This device is disabled by default, because | ||
68 | * using the SD card connector requires | ||
69 | * changing the default CON40 connector | ||
70 | * "DB-88F6710_MPP_2xRGMII_DEVICE_Jumper" to a | ||
71 | * different connector | ||
72 | * "DB-88F6710_MPP_RGMII_SD_Jumper". | ||
73 | */ | ||
74 | status = "disabled"; | ||
75 | /* No CD or WP GPIOs */ | ||
76 | }; | ||
77 | 52 | ||
78 | usb@d0050000 { | 53 | ethernet@70000 { |
79 | status = "okay"; | 54 | status = "okay"; |
80 | }; | 55 | phy = <&phy0>; |
56 | phy-mode = "rgmii-id"; | ||
57 | }; | ||
58 | ethernet@74000 { | ||
59 | status = "okay"; | ||
60 | phy = <&phy1>; | ||
61 | phy-mode = "rgmii-id"; | ||
62 | }; | ||
81 | 63 | ||
82 | usb@d0051000 { | 64 | mvsdio@d4000 { |
83 | status = "okay"; | 65 | pinctrl-0 = <&sdio_pins1>; |
84 | }; | 66 | pinctrl-names = "default"; |
67 | /* | ||
68 | * This device is disabled by default, because | ||
69 | * using the SD card connector requires | ||
70 | * changing the default CON40 connector | ||
71 | * "DB-88F6710_MPP_2xRGMII_DEVICE_Jumper" to a | ||
72 | * different connector | ||
73 | * "DB-88F6710_MPP_RGMII_SD_Jumper". | ||
74 | */ | ||
75 | status = "disabled"; | ||
76 | /* No CD or WP GPIOs */ | ||
77 | }; | ||
85 | 78 | ||
86 | spi0: spi@d0010600 { | 79 | usb@50000 { |
87 | status = "okay"; | 80 | status = "okay"; |
81 | }; | ||
88 | 82 | ||
89 | spi-flash@0 { | 83 | usb@51000 { |
90 | #address-cells = <1>; | 84 | status = "okay"; |
91 | #size-cells = <1>; | ||
92 | compatible = "mx25l25635e"; | ||
93 | reg = <0>; /* Chip select 0 */ | ||
94 | spi-max-frequency = <50000000>; | ||
95 | }; | 85 | }; |
96 | }; | ||
97 | 86 | ||
98 | pcie-controller { | 87 | spi0: spi@10600 { |
99 | status = "okay"; | ||
100 | /* | ||
101 | * The two PCIe units are accessible through | ||
102 | * both standard PCIe slots and mini-PCIe | ||
103 | * slots on the board. | ||
104 | */ | ||
105 | pcie@1,0 { | ||
106 | /* Port 0, Lane 0 */ | ||
107 | status = "okay"; | 88 | status = "okay"; |
89 | |||
90 | spi-flash@0 { | ||
91 | #address-cells = <1>; | ||
92 | #size-cells = <1>; | ||
93 | compatible = "mx25l25635e"; | ||
94 | reg = <0>; /* Chip select 0 */ | ||
95 | spi-max-frequency = <50000000>; | ||
96 | }; | ||
108 | }; | 97 | }; |
109 | pcie@2,0 { | 98 | |
110 | /* Port 1, Lane 0 */ | 99 | pcie-controller { |
111 | status = "okay"; | 100 | status = "okay"; |
101 | /* | ||
102 | * The two PCIe units are accessible through | ||
103 | * both standard PCIe slots and mini-PCIe | ||
104 | * slots on the board. | ||
105 | */ | ||
106 | pcie@1,0 { | ||
107 | /* Port 0, Lane 0 */ | ||
108 | status = "okay"; | ||
109 | }; | ||
110 | pcie@2,0 { | ||
111 | /* Port 1, Lane 0 */ | ||
112 | status = "okay"; | ||
113 | }; | ||
112 | }; | 114 | }; |
113 | }; | 115 | }; |
114 | }; | 116 | }; |
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts index 58ee79372206..14e36e19d515 100644 --- a/arch/arm/boot/dts/armada-370-mirabox.dts +++ b/arch/arm/boot/dts/armada-370-mirabox.dts | |||
@@ -25,113 +25,115 @@ | |||
25 | }; | 25 | }; |
26 | 26 | ||
27 | soc { | 27 | soc { |
28 | serial@d0012000 { | 28 | internal-regs { |
29 | clock-frequency = <200000000>; | 29 | serial@12000 { |
30 | status = "okay"; | 30 | clock-frequency = <200000000>; |
31 | }; | 31 | status = "okay"; |
32 | timer@d0020300 { | ||
33 | clock-frequency = <600000000>; | ||
34 | status = "okay"; | ||
35 | }; | ||
36 | |||
37 | pinctrl { | ||
38 | pwr_led_pin: pwr-led-pin { | ||
39 | marvell,pins = "mpp63"; | ||
40 | marvell,function = "gpo"; | ||
41 | }; | 32 | }; |
42 | 33 | timer@20300 { | |
43 | stat_led_pins: stat-led-pins { | 34 | clock-frequency = <600000000>; |
44 | marvell,pins = "mpp64", "mpp65"; | 35 | status = "okay"; |
45 | marvell,function = "gpio"; | ||
46 | }; | 36 | }; |
47 | }; | ||
48 | 37 | ||
49 | gpio_leds { | 38 | pinctrl { |
50 | compatible = "gpio-leds"; | 39 | pwr_led_pin: pwr-led-pin { |
51 | pinctrl-names = "default"; | 40 | marvell,pins = "mpp63"; |
52 | pinctrl-0 = <&pwr_led_pin &stat_led_pins>; | 41 | marvell,function = "gpo"; |
42 | }; | ||
53 | 43 | ||
54 | green_pwr_led { | 44 | stat_led_pins: stat-led-pins { |
55 | label = "mirabox:green:pwr"; | 45 | marvell,pins = "mpp64", "mpp65"; |
56 | gpios = <&gpio1 31 1>; | 46 | marvell,function = "gpio"; |
57 | linux,default-trigger = "heartbeat"; | 47 | }; |
58 | }; | 48 | }; |
59 | 49 | ||
60 | blue_stat_led { | 50 | gpio_leds { |
61 | label = "mirabox:blue:stat"; | 51 | compatible = "gpio-leds"; |
62 | gpios = <&gpio2 0 1>; | 52 | pinctrl-names = "default"; |
63 | linux,default-trigger = "cpu0"; | 53 | pinctrl-0 = <&pwr_led_pin &stat_led_pins>; |
54 | |||
55 | green_pwr_led { | ||
56 | label = "mirabox:green:pwr"; | ||
57 | gpios = <&gpio1 31 1>; | ||
58 | linux,default-trigger = "heartbeat"; | ||
59 | }; | ||
60 | |||
61 | blue_stat_led { | ||
62 | label = "mirabox:blue:stat"; | ||
63 | gpios = <&gpio2 0 1>; | ||
64 | linux,default-trigger = "cpu0"; | ||
65 | }; | ||
66 | |||
67 | green_stat_led { | ||
68 | label = "mirabox:green:stat"; | ||
69 | gpios = <&gpio2 1 1>; | ||
70 | default-state = "off"; | ||
71 | }; | ||
64 | }; | 72 | }; |
65 | 73 | ||
66 | green_stat_led { | 74 | mdio { |
67 | label = "mirabox:green:stat"; | 75 | phy0: ethernet-phy@0 { |
68 | gpios = <&gpio2 1 1>; | 76 | reg = <0>; |
69 | default-state = "off"; | 77 | }; |
70 | }; | ||
71 | }; | ||
72 | 78 | ||
73 | mdio { | 79 | phy1: ethernet-phy@1 { |
74 | phy0: ethernet-phy@0 { | 80 | reg = <1>; |
75 | reg = <0>; | 81 | }; |
76 | }; | 82 | }; |
77 | 83 | ethernet@70000 { | |
78 | phy1: ethernet-phy@1 { | 84 | status = "okay"; |
79 | reg = <1>; | 85 | phy = <&phy0>; |
86 | phy-mode = "rgmii-id"; | ||
87 | }; | ||
88 | ethernet@74000 { | ||
89 | status = "okay"; | ||
90 | phy = <&phy1>; | ||
91 | phy-mode = "rgmii-id"; | ||
80 | }; | 92 | }; |
81 | }; | ||
82 | ethernet@d0070000 { | ||
83 | status = "okay"; | ||
84 | phy = <&phy0>; | ||
85 | phy-mode = "rgmii-id"; | ||
86 | }; | ||
87 | ethernet@d0074000 { | ||
88 | status = "okay"; | ||
89 | phy = <&phy1>; | ||
90 | phy-mode = "rgmii-id"; | ||
91 | }; | ||
92 | |||
93 | mvsdio@d00d4000 { | ||
94 | pinctrl-0 = <&sdio_pins3>; | ||
95 | pinctrl-names = "default"; | ||
96 | status = "okay"; | ||
97 | /* | ||
98 | * No CD or WP GPIOs: SDIO interface used for | ||
99 | * Wifi/Bluetooth chip | ||
100 | */ | ||
101 | }; | ||
102 | |||
103 | usb@d0050000 { | ||
104 | status = "okay"; | ||
105 | }; | ||
106 | 93 | ||
107 | usb@d0051000 { | 94 | mvsdio@d4000 { |
108 | status = "okay"; | 95 | pinctrl-0 = <&sdio_pins3>; |
109 | }; | 96 | pinctrl-names = "default"; |
97 | status = "okay"; | ||
98 | /* | ||
99 | * No CD or WP GPIOs: SDIO interface used for | ||
100 | * Wifi/Bluetooth chip | ||
101 | */ | ||
102 | }; | ||
110 | 103 | ||
111 | i2c@d0011000 { | 104 | usb@50000 { |
112 | status = "okay"; | 105 | status = "okay"; |
113 | clock-frequency = <100000>; | ||
114 | pca9505: pca9505@25 { | ||
115 | compatible = "nxp,pca9505"; | ||
116 | gpio-controller; | ||
117 | #gpio-cells = <2>; | ||
118 | reg = <0x25>; | ||
119 | }; | 106 | }; |
120 | }; | ||
121 | 107 | ||
122 | pcie-controller { | 108 | usb@51000 { |
123 | status = "okay"; | 109 | status = "okay"; |
110 | }; | ||
124 | 111 | ||
125 | /* Internal mini-PCIe connector */ | 112 | i2c@11000 { |
126 | pcie@1,0 { | ||
127 | /* Port 0, Lane 0 */ | ||
128 | status = "okay"; | 113 | status = "okay"; |
114 | clock-frequency = <100000>; | ||
115 | pca9505: pca9505@25 { | ||
116 | compatible = "nxp,pca9505"; | ||
117 | gpio-controller; | ||
118 | #gpio-cells = <2>; | ||
119 | reg = <0x25>; | ||
120 | }; | ||
129 | }; | 121 | }; |
130 | 122 | ||
131 | /* Connected on the PCB to a USB 3.0 XHCI controller */ | 123 | pcie-controller { |
132 | pcie@2,0 { | ||
133 | /* Port 1, Lane 0 */ | ||
134 | status = "okay"; | 124 | status = "okay"; |
125 | |||
126 | /* Internal mini-PCIe connector */ | ||
127 | pcie@1,0 { | ||
128 | /* Port 0, Lane 0 */ | ||
129 | status = "okay"; | ||
130 | }; | ||
131 | |||
132 | /* Connected on the PCB to a USB 3.0 XHCI controller */ | ||
133 | pcie@2,0 { | ||
134 | /* Port 1, Lane 0 */ | ||
135 | status = "okay"; | ||
136 | }; | ||
135 | }; | 137 | }; |
136 | }; | 138 | }; |
137 | }; | 139 | }; |
diff --git a/arch/arm/boot/dts/armada-370-rd.dts b/arch/arm/boot/dts/armada-370-rd.dts index 516dec31b469..130f8390a7e4 100644 --- a/arch/arm/boot/dts/armada-370-rd.dts +++ b/arch/arm/boot/dts/armada-370-rd.dts | |||
@@ -28,60 +28,62 @@ | |||
28 | }; | 28 | }; |
29 | 29 | ||
30 | soc { | 30 | soc { |
31 | serial@d0012000 { | 31 | internal-regs { |
32 | clock-frequency = <200000000>; | 32 | serial@12000 { |
33 | status = "okay"; | 33 | clock-frequency = <200000000>; |
34 | }; | 34 | status = "okay"; |
35 | sata@d00a0000 { | ||
36 | nr-ports = <2>; | ||
37 | status = "okay"; | ||
38 | }; | ||
39 | |||
40 | mdio { | ||
41 | phy0: ethernet-phy@0 { | ||
42 | reg = <0>; | ||
43 | }; | 35 | }; |
36 | sata@a0000 { | ||
37 | nr-ports = <2>; | ||
38 | status = "okay"; | ||
39 | }; | ||
40 | |||
41 | mdio { | ||
42 | phy0: ethernet-phy@0 { | ||
43 | reg = <0>; | ||
44 | }; | ||
44 | 45 | ||
45 | phy1: ethernet-phy@1 { | 46 | phy1: ethernet-phy@1 { |
46 | reg = <1>; | 47 | reg = <1>; |
48 | }; | ||
47 | }; | 49 | }; |
48 | }; | ||
49 | 50 | ||
50 | ethernet@d0070000 { | 51 | ethernet@70000 { |
51 | status = "okay"; | 52 | status = "okay"; |
52 | phy = <&phy0>; | 53 | phy = <&phy0>; |
53 | phy-mode = "sgmii"; | 54 | phy-mode = "sgmii"; |
54 | }; | 55 | }; |
55 | ethernet@d0074000 { | 56 | ethernet@74000 { |
56 | status = "okay"; | 57 | status = "okay"; |
57 | phy = <&phy1>; | 58 | phy = <&phy1>; |
58 | phy-mode = "rgmii-id"; | 59 | phy-mode = "rgmii-id"; |
59 | }; | 60 | }; |
60 | 61 | ||
61 | mvsdio@d00d4000 { | 62 | mvsdio@d4000 { |
62 | pinctrl-0 = <&sdio_pins1>; | 63 | pinctrl-0 = <&sdio_pins1>; |
63 | pinctrl-names = "default"; | 64 | pinctrl-names = "default"; |
64 | status = "okay"; | 65 | status = "okay"; |
65 | /* No CD or WP GPIOs */ | 66 | /* No CD or WP GPIOs */ |
66 | }; | 67 | }; |
67 | 68 | ||
68 | usb@d0050000 { | 69 | usb@50000 { |
69 | status = "okay"; | 70 | status = "okay"; |
70 | }; | 71 | }; |
71 | 72 | ||
72 | usb@d0051000 { | 73 | usb@51000 { |
73 | status = "okay"; | 74 | status = "okay"; |
74 | }; | 75 | }; |
75 | }; | ||
76 | 76 | ||
77 | gpio-keys { | 77 | gpio-keys { |
78 | compatible = "gpio-keys"; | 78 | compatible = "gpio-keys"; |
79 | #address-cells = <1>; | 79 | #address-cells = <1>; |
80 | #size-cells = <0>; | 80 | #size-cells = <0>; |
81 | button@1 { | 81 | button@1 { |
82 | label = "Software Button"; | 82 | label = "Software Button"; |
83 | linux,code = <116>; | 83 | linux,code = <116>; |
84 | gpios = <&gpio0 6 1>; | 84 | gpios = <&gpio0 6 1>; |
85 | }; | ||
86 | }; | ||
85 | }; | 87 | }; |
86 | }; | 88 | }; |
87 | }; | 89 | }; |
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi index 9693f796bcfe..272bbc65fab0 100644 --- a/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/arch/arm/boot/dts/armada-370-xp.dtsi | |||
@@ -16,7 +16,7 @@ | |||
16 | * 370 and Armada XP SoC. | 16 | * 370 and Armada XP SoC. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | /include/ "skeleton.dtsi" | 19 | /include/ "skeleton64.dtsi" |
20 | 20 | ||
21 | / { | 21 | / { |
22 | model = "Marvell Armada 370 and XP SoC"; | 22 | model = "Marvell Armada 370 and XP SoC"; |
@@ -28,199 +28,203 @@ | |||
28 | }; | 28 | }; |
29 | }; | 29 | }; |
30 | 30 | ||
31 | mpic: interrupt-controller@d0020000 { | ||
32 | compatible = "marvell,mpic"; | ||
33 | #interrupt-cells = <1>; | ||
34 | #size-cells = <1>; | ||
35 | interrupt-controller; | ||
36 | }; | ||
37 | |||
38 | coherency-fabric@d0020200 { | ||
39 | compatible = "marvell,coherency-fabric"; | ||
40 | reg = <0xd0020200 0xb0>, | ||
41 | <0xd0021810 0x1c>; | ||
42 | }; | ||
43 | |||
44 | soc { | 31 | soc { |
45 | #address-cells = <1>; | 32 | #address-cells = <1>; |
46 | #size-cells = <1>; | 33 | #size-cells = <1>; |
47 | compatible = "simple-bus"; | 34 | compatible = "simple-bus"; |
48 | interrupt-parent = <&mpic>; | 35 | interrupt-parent = <&mpic>; |
49 | ranges; | 36 | ranges = <0 0 0xd0000000 0x100000>; |
37 | |||
38 | internal-regs { | ||
39 | compatible = "simple-bus"; | ||
40 | #address-cells = <1>; | ||
41 | #size-cells = <1>; | ||
42 | ranges; | ||
43 | |||
44 | mpic: interrupt-controller@20000 { | ||
45 | compatible = "marvell,mpic"; | ||
46 | #interrupt-cells = <1>; | ||
47 | #size-cells = <1>; | ||
48 | interrupt-controller; | ||
49 | }; | ||
50 | |||
51 | coherency-fabric@20200 { | ||
52 | compatible = "marvell,coherency-fabric"; | ||
53 | reg = <0x20200 0xb0>, <0x21810 0x1c>; | ||
54 | }; | ||
50 | 55 | ||
51 | serial@d0012000 { | 56 | serial@12000 { |
52 | compatible = "snps,dw-apb-uart"; | 57 | compatible = "snps,dw-apb-uart"; |
53 | reg = <0xd0012000 0x100>; | 58 | reg = <0x12000 0x100>; |
54 | reg-shift = <2>; | 59 | reg-shift = <2>; |
55 | interrupts = <41>; | 60 | interrupts = <41>; |
56 | reg-io-width = <1>; | 61 | reg-io-width = <1>; |
57 | status = "disabled"; | 62 | status = "disabled"; |
58 | }; | 63 | }; |
59 | serial@d0012100 { | 64 | serial@12100 { |
60 | compatible = "snps,dw-apb-uart"; | 65 | compatible = "snps,dw-apb-uart"; |
61 | reg = <0xd0012100 0x100>; | 66 | reg = <0x12100 0x100>; |
62 | reg-shift = <2>; | 67 | reg-shift = <2>; |
63 | interrupts = <42>; | 68 | interrupts = <42>; |
64 | reg-io-width = <1>; | 69 | reg-io-width = <1>; |
65 | status = "disabled"; | 70 | status = "disabled"; |
66 | }; | 71 | }; |
67 | 72 | ||
68 | timer@d0020300 { | 73 | timer@20300 { |
69 | compatible = "marvell,armada-370-xp-timer"; | 74 | compatible = "marvell,armada-370-xp-timer"; |
70 | reg = <0xd0020300 0x30>, | 75 | reg = <0x20300 0x30>, <0x21040 0x30>; |
71 | <0xd0021040 0x30>; | 76 | interrupts = <37>, <38>, <39>, <40>, <5>, <6>; |
72 | interrupts = <37>, <38>, <39>, <40>, <5>, <6>; | 77 | clocks = <&coreclk 2>; |
73 | clocks = <&coreclk 2>; | 78 | }; |
74 | }; | 79 | |
75 | 80 | sata@a0000 { | |
76 | sata@d00a0000 { | 81 | compatible = "marvell,orion-sata"; |
77 | compatible = "marvell,orion-sata"; | 82 | reg = <0xa0000 0x2400>; |
78 | reg = <0xd00a0000 0x2400>; | 83 | interrupts = <55>; |
79 | interrupts = <55>; | 84 | clocks = <&gateclk 15>, <&gateclk 30>; |
80 | clocks = <&gateclk 15>, <&gateclk 30>; | 85 | clock-names = "0", "1"; |
81 | clock-names = "0", "1"; | 86 | status = "disabled"; |
82 | status = "disabled"; | 87 | }; |
83 | }; | ||
84 | 88 | ||
85 | mdio { | 89 | mdio { |
86 | #address-cells = <1>; | 90 | #address-cells = <1>; |
87 | #size-cells = <0>; | 91 | #size-cells = <0>; |
88 | compatible = "marvell,orion-mdio"; | 92 | compatible = "marvell,orion-mdio"; |
89 | reg = <0xd0072004 0x4>; | 93 | reg = <0x72004 0x4>; |
90 | }; | 94 | }; |
91 | 95 | ||
92 | ethernet@d0070000 { | 96 | ethernet@70000 { |
93 | compatible = "marvell,armada-370-neta"; | 97 | compatible = "marvell,armada-370-neta"; |
94 | reg = <0xd0070000 0x2500>; | 98 | reg = <0x70000 0x2500>; |
95 | interrupts = <8>; | 99 | interrupts = <8>; |
96 | clocks = <&gateclk 4>; | 100 | clocks = <&gateclk 4>; |
97 | status = "disabled"; | 101 | status = "disabled"; |
98 | }; | 102 | }; |
99 | 103 | ||
100 | ethernet@d0074000 { | 104 | ethernet@74000 { |
101 | compatible = "marvell,armada-370-neta"; | 105 | compatible = "marvell,armada-370-neta"; |
102 | reg = <0xd0074000 0x2500>; | 106 | reg = <0x74000 0x2500>; |
103 | interrupts = <10>; | 107 | interrupts = <10>; |
104 | clocks = <&gateclk 3>; | 108 | clocks = <&gateclk 3>; |
105 | status = "disabled"; | 109 | status = "disabled"; |
106 | }; | 110 | }; |
107 | 111 | ||
108 | i2c0: i2c@d0011000 { | 112 | i2c0: i2c@11000 { |
109 | compatible = "marvell,mv64xxx-i2c"; | 113 | compatible = "marvell,mv64xxx-i2c"; |
110 | reg = <0xd0011000 0x20>; | 114 | reg = <0x11000 0x20>; |
111 | #address-cells = <1>; | 115 | #address-cells = <1>; |
112 | #size-cells = <0>; | 116 | #size-cells = <0>; |
113 | interrupts = <31>; | 117 | interrupts = <31>; |
114 | timeout-ms = <1000>; | 118 | timeout-ms = <1000>; |
115 | clocks = <&coreclk 0>; | 119 | clocks = <&coreclk 0>; |
116 | status = "disabled"; | 120 | status = "disabled"; |
117 | }; | 121 | }; |
118 | 122 | ||
119 | i2c1: i2c@d0011100 { | 123 | i2c1: i2c@11100 { |
120 | compatible = "marvell,mv64xxx-i2c"; | 124 | compatible = "marvell,mv64xxx-i2c"; |
121 | reg = <0xd0011100 0x20>; | 125 | reg = <0x11100 0x20>; |
122 | #address-cells = <1>; | 126 | #address-cells = <1>; |
123 | #size-cells = <0>; | 127 | #size-cells = <0>; |
124 | interrupts = <32>; | 128 | interrupts = <32>; |
125 | timeout-ms = <1000>; | 129 | timeout-ms = <1000>; |
126 | clocks = <&coreclk 0>; | 130 | clocks = <&coreclk 0>; |
127 | status = "disabled"; | 131 | status = "disabled"; |
128 | }; | 132 | }; |
129 | 133 | ||
130 | rtc@10300 { | 134 | rtc@10300 { |
131 | compatible = "marvell,orion-rtc"; | 135 | compatible = "marvell,orion-rtc"; |
132 | reg = <0xd0010300 0x20>; | 136 | reg = <0x10300 0x20>; |
133 | interrupts = <50>; | 137 | interrupts = <50>; |
134 | }; | 138 | }; |
135 | 139 | ||
136 | mvsdio@d00d4000 { | 140 | mvsdio@d4000 { |
137 | compatible = "marvell,orion-sdio"; | 141 | compatible = "marvell,orion-sdio"; |
138 | reg = <0xd00d4000 0x200>; | 142 | reg = <0xd4000 0x200>; |
139 | interrupts = <54>; | 143 | interrupts = <54>; |
140 | clocks = <&gateclk 17>; | 144 | clocks = <&gateclk 17>; |
141 | status = "disabled"; | 145 | status = "disabled"; |
142 | }; | 146 | }; |
143 | |||
144 | usb@d0050000 { | ||
145 | compatible = "marvell,orion-ehci"; | ||
146 | reg = <0xd0050000 0x500>; | ||
147 | interrupts = <45>; | ||
148 | status = "disabled"; | ||
149 | }; | ||
150 | |||
151 | usb@d0051000 { | ||
152 | compatible = "marvell,orion-ehci"; | ||
153 | reg = <0xd0051000 0x500>; | ||
154 | interrupts = <46>; | ||
155 | status = "disabled"; | ||
156 | }; | ||
157 | |||
158 | spi0: spi@d0010600 { | ||
159 | compatible = "marvell,orion-spi"; | ||
160 | reg = <0xd0010600 0x28>; | ||
161 | #address-cells = <1>; | ||
162 | #size-cells = <0>; | ||
163 | cell-index = <0>; | ||
164 | interrupts = <30>; | ||
165 | clocks = <&coreclk 0>; | ||
166 | status = "disabled"; | ||
167 | }; | ||
168 | |||
169 | spi1: spi@d0010680 { | ||
170 | compatible = "marvell,orion-spi"; | ||
171 | reg = <0xd0010680 0x28>; | ||
172 | #address-cells = <1>; | ||
173 | #size-cells = <0>; | ||
174 | cell-index = <1>; | ||
175 | interrupts = <92>; | ||
176 | clocks = <&coreclk 0>; | ||
177 | status = "disabled"; | ||
178 | }; | ||
179 | |||
180 | devbus-bootcs@d0010400 { | ||
181 | compatible = "marvell,mvebu-devbus"; | ||
182 | reg = <0xd0010400 0x8>; | ||
183 | #address-cells = <1>; | ||
184 | #size-cells = <1>; | ||
185 | clocks = <&coreclk 0>; | ||
186 | status = "disabled"; | ||
187 | }; | ||
188 | |||
189 | devbus-cs0@d0010408 { | ||
190 | compatible = "marvell,mvebu-devbus"; | ||
191 | reg = <0xd0010408 0x8>; | ||
192 | #address-cells = <1>; | ||
193 | #size-cells = <1>; | ||
194 | clocks = <&coreclk 0>; | ||
195 | status = "disabled"; | ||
196 | }; | ||
197 | |||
198 | devbus-cs1@d0010410 { | ||
199 | compatible = "marvell,mvebu-devbus"; | ||
200 | reg = <0xd0010410 0x8>; | ||
201 | #address-cells = <1>; | ||
202 | #size-cells = <1>; | ||
203 | clocks = <&coreclk 0>; | ||
204 | status = "disabled"; | ||
205 | }; | ||
206 | 147 | ||
207 | devbus-cs2@d0010418 { | 148 | usb@50000 { |
208 | compatible = "marvell,mvebu-devbus"; | 149 | compatible = "marvell,orion-ehci"; |
209 | reg = <0xd0010418 0x8>; | 150 | reg = <0x50000 0x500>; |
210 | #address-cells = <1>; | 151 | interrupts = <45>; |
211 | #size-cells = <1>; | 152 | status = "disabled"; |
212 | clocks = <&coreclk 0>; | 153 | }; |
213 | status = "disabled"; | ||
214 | }; | ||
215 | 154 | ||
216 | devbus-cs3@d0010420 { | 155 | usb@51000 { |
217 | compatible = "marvell,mvebu-devbus"; | 156 | compatible = "marvell,orion-ehci"; |
218 | reg = <0xd0010420 0x8>; | 157 | reg = <0x51000 0x500>; |
219 | #address-cells = <1>; | 158 | interrupts = <46>; |
220 | #size-cells = <1>; | 159 | status = "disabled"; |
221 | clocks = <&coreclk 0>; | 160 | }; |
222 | status = "disabled"; | 161 | |
162 | spi0: spi@10600 { | ||
163 | compatible = "marvell,orion-spi"; | ||
164 | reg = <0x10600 0x28>; | ||
165 | #address-cells = <1>; | ||
166 | #size-cells = <0>; | ||
167 | cell-index = <0>; | ||
168 | interrupts = <30>; | ||
169 | clocks = <&coreclk 0>; | ||
170 | status = "disabled"; | ||
171 | }; | ||
172 | |||
173 | spi1: spi@10680 { | ||
174 | compatible = "marvell,orion-spi"; | ||
175 | reg = <0x10680 0x28>; | ||
176 | #address-cells = <1>; | ||
177 | #size-cells = <0>; | ||
178 | cell-index = <1>; | ||
179 | interrupts = <92>; | ||
180 | clocks = <&coreclk 0>; | ||
181 | status = "disabled"; | ||
182 | }; | ||
183 | |||
184 | devbus-bootcs@10400 { | ||
185 | compatible = "marvell,mvebu-devbus"; | ||
186 | reg = <0x10400 0x8>; | ||
187 | #address-cells = <1>; | ||
188 | #size-cells = <1>; | ||
189 | clocks = <&coreclk 0>; | ||
190 | status = "disabled"; | ||
191 | }; | ||
192 | |||
193 | devbus-cs0@10408 { | ||
194 | compatible = "marvell,mvebu-devbus"; | ||
195 | reg = <0x10408 0x8>; | ||
196 | #address-cells = <1>; | ||
197 | #size-cells = <1>; | ||
198 | clocks = <&coreclk 0>; | ||
199 | status = "disabled"; | ||
200 | }; | ||
201 | |||
202 | devbus-cs1@10410 { | ||
203 | compatible = "marvell,mvebu-devbus"; | ||
204 | reg = <0x10410 0x8>; | ||
205 | #address-cells = <1>; | ||
206 | #size-cells = <1>; | ||
207 | clocks = <&coreclk 0>; | ||
208 | status = "disabled"; | ||
209 | }; | ||
210 | |||
211 | devbus-cs2@10418 { | ||
212 | compatible = "marvell,mvebu-devbus"; | ||
213 | reg = <0x10418 0x8>; | ||
214 | #address-cells = <1>; | ||
215 | #size-cells = <1>; | ||
216 | clocks = <&coreclk 0>; | ||
217 | status = "disabled"; | ||
218 | }; | ||
219 | |||
220 | devbus-cs3@10420 { | ||
221 | compatible = "marvell,mvebu-devbus"; | ||
222 | reg = <0x10420 0x8>; | ||
223 | #address-cells = <1>; | ||
224 | #size-cells = <1>; | ||
225 | clocks = <&coreclk 0>; | ||
226 | status = "disabled"; | ||
227 | }; | ||
223 | }; | 228 | }; |
224 | }; | 229 | }; |
225 | }; | 230 | }; |
226 | |||
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi index 18f6eb47cc50..b2c1b5af9749 100644 --- a/arch/arm/boot/dts/armada-370.dtsi +++ b/arch/arm/boot/dts/armada-370.dtsi | |||
@@ -16,16 +16,11 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | /include/ "armada-370-xp.dtsi" | 18 | /include/ "armada-370-xp.dtsi" |
19 | /include/ "skeleton.dtsi" | ||
19 | 20 | ||
20 | / { | 21 | / { |
21 | model = "Marvell Armada 370 family SoC"; | 22 | model = "Marvell Armada 370 family SoC"; |
22 | compatible = "marvell,armada370", "marvell,armada-370-xp"; | 23 | compatible = "marvell,armada370", "marvell,armada-370-xp"; |
23 | L2: l2-cache { | ||
24 | compatible = "marvell,aurora-outer-cache"; | ||
25 | reg = <0xd0008000 0x1000>; | ||
26 | cache-id-part = <0x100>; | ||
27 | wt-override; | ||
28 | }; | ||
29 | 24 | ||
30 | aliases { | 25 | aliases { |
31 | gpio0 = &gpio0; | 26 | gpio0 = &gpio0; |
@@ -33,188 +28,197 @@ | |||
33 | gpio2 = &gpio2; | 28 | gpio2 = &gpio2; |
34 | }; | 29 | }; |
35 | 30 | ||
36 | mpic: interrupt-controller@d0020000 { | ||
37 | reg = <0xd0020a00 0x1d0>, | ||
38 | <0xd0021870 0x58>; | ||
39 | }; | ||
40 | |||
41 | soc { | 31 | soc { |
42 | system-controller@d0018200 { | 32 | ranges = <0 0xd0000000 0x100000>; |
33 | internal-regs { | ||
34 | system-controller@18200 { | ||
43 | compatible = "marvell,armada-370-xp-system-controller"; | 35 | compatible = "marvell,armada-370-xp-system-controller"; |
44 | reg = <0xd0018200 0x100>; | 36 | reg = <0x18200 0x100>; |
45 | }; | ||
46 | |||
47 | pinctrl { | ||
48 | compatible = "marvell,mv88f6710-pinctrl"; | ||
49 | reg = <0xd0018000 0x38>; | ||
50 | |||
51 | sdio_pins1: sdio-pins1 { | ||
52 | marvell,pins = "mpp9", "mpp11", "mpp12", | ||
53 | "mpp13", "mpp14", "mpp15"; | ||
54 | marvell,function = "sd0"; | ||
55 | }; | 37 | }; |
56 | 38 | ||
57 | sdio_pins2: sdio-pins2 { | 39 | L2: l2-cache { |
58 | marvell,pins = "mpp47", "mpp48", "mpp49", | 40 | compatible = "marvell,aurora-outer-cache"; |
59 | "mpp50", "mpp51", "mpp52"; | 41 | reg = <0xd0008000 0x1000>; |
60 | marvell,function = "sd0"; | 42 | cache-id-part = <0x100>; |
43 | wt-override; | ||
61 | }; | 44 | }; |
62 | 45 | ||
63 | sdio_pins3: sdio-pins3 { | 46 | mpic: interrupt-controller@20000 { |
64 | marvell,pins = "mpp48", "mpp49", "mpp50", | 47 | reg = <0x20a00 0x1d0>, <0x21870 0x58>; |
65 | "mpp51", "mpp52", "mpp53"; | ||
66 | marvell,function = "sd0"; | ||
67 | }; | 48 | }; |
68 | }; | ||
69 | |||
70 | gpio0: gpio@d0018100 { | ||
71 | compatible = "marvell,orion-gpio"; | ||
72 | reg = <0xd0018100 0x40>; | ||
73 | ngpios = <32>; | ||
74 | gpio-controller; | ||
75 | #gpio-cells = <2>; | ||
76 | interrupt-controller; | ||
77 | #interrupts-cells = <2>; | ||
78 | interrupts = <82>, <83>, <84>, <85>; | ||
79 | }; | ||
80 | |||
81 | gpio1: gpio@d0018140 { | ||
82 | compatible = "marvell,orion-gpio"; | ||
83 | reg = <0xd0018140 0x40>; | ||
84 | ngpios = <32>; | ||
85 | gpio-controller; | ||
86 | #gpio-cells = <2>; | ||
87 | interrupt-controller; | ||
88 | #interrupts-cells = <2>; | ||
89 | interrupts = <87>, <88>, <89>, <90>; | ||
90 | }; | ||
91 | |||
92 | gpio2: gpio@d0018180 { | ||
93 | compatible = "marvell,orion-gpio"; | ||
94 | reg = <0xd0018180 0x40>; | ||
95 | ngpios = <2>; | ||
96 | gpio-controller; | ||
97 | #gpio-cells = <2>; | ||
98 | interrupt-controller; | ||
99 | #interrupts-cells = <2>; | ||
100 | interrupts = <91>; | ||
101 | }; | ||
102 | 49 | ||
103 | coreclk: mvebu-sar@d0018230 { | 50 | pinctrl { |
104 | compatible = "marvell,armada-370-core-clock"; | 51 | compatible = "marvell,mv88f6710-pinctrl"; |
105 | reg = <0xd0018230 0x08>; | 52 | reg = <0x18000 0x38>; |
106 | #clock-cells = <1>; | 53 | |
107 | }; | 54 | sdio_pins1: sdio-pins1 { |
108 | 55 | marvell,pins = "mpp9", "mpp11", "mpp12", | |
109 | gateclk: clock-gating-control@d0018220 { | 56 | "mpp13", "mpp14", "mpp15"; |
110 | compatible = "marvell,armada-370-gating-clock"; | 57 | marvell,function = "sd0"; |
111 | reg = <0xd0018220 0x4>; | 58 | }; |
112 | clocks = <&coreclk 0>; | 59 | |
113 | #clock-cells = <1>; | 60 | sdio_pins2: sdio-pins2 { |
114 | }; | 61 | marvell,pins = "mpp47", "mpp48", "mpp49", |
115 | 62 | "mpp50", "mpp51", "mpp52"; | |
116 | xor@d0060800 { | 63 | marvell,function = "sd0"; |
117 | compatible = "marvell,orion-xor"; | 64 | }; |
118 | reg = <0xd0060800 0x100 | 65 | |
119 | 0xd0060A00 0x100>; | 66 | sdio_pins3: sdio-pins3 { |
120 | status = "okay"; | 67 | marvell,pins = "mpp48", "mpp49", "mpp50", |
121 | 68 | "mpp51", "mpp52", "mpp53"; | |
122 | xor00 { | 69 | marvell,function = "sd0"; |
123 | interrupts = <51>; | 70 | }; |
124 | dmacap,memcpy; | ||
125 | dmacap,xor; | ||
126 | }; | 71 | }; |
127 | xor01 { | ||
128 | interrupts = <52>; | ||
129 | dmacap,memcpy; | ||
130 | dmacap,xor; | ||
131 | dmacap,memset; | ||
132 | }; | ||
133 | }; | ||
134 | |||
135 | xor@d0060900 { | ||
136 | compatible = "marvell,orion-xor"; | ||
137 | reg = <0xd0060900 0x100 | ||
138 | 0xd0060b00 0x100>; | ||
139 | status = "okay"; | ||
140 | 72 | ||
141 | xor10 { | 73 | gpio0: gpio@18100 { |
142 | interrupts = <94>; | 74 | compatible = "marvell,orion-gpio"; |
143 | dmacap,memcpy; | 75 | reg = <0x18100 0x40>; |
144 | dmacap,xor; | 76 | ngpios = <32>; |
77 | gpio-controller; | ||
78 | #gpio-cells = <2>; | ||
79 | interrupt-controller; | ||
80 | #interrupts-cells = <2>; | ||
81 | interrupts = <82>, <83>, <84>, <85>; | ||
145 | }; | 82 | }; |
146 | xor11 { | ||
147 | interrupts = <95>; | ||
148 | dmacap,memcpy; | ||
149 | dmacap,xor; | ||
150 | dmacap,memset; | ||
151 | }; | ||
152 | }; | ||
153 | 83 | ||
154 | usb@d0050000 { | 84 | gpio1: gpio@18140 { |
155 | clocks = <&coreclk 0>; | 85 | compatible = "marvell,orion-gpio"; |
156 | }; | 86 | reg = <0x18140 0x40>; |
157 | 87 | ngpios = <32>; | |
158 | usb@d0051000 { | 88 | gpio-controller; |
159 | clocks = <&coreclk 0>; | 89 | #gpio-cells = <2>; |
160 | }; | 90 | interrupt-controller; |
91 | #interrupts-cells = <2>; | ||
92 | interrupts = <87>, <88>, <89>, <90>; | ||
93 | }; | ||
161 | 94 | ||
162 | thermal@d0018300 { | 95 | gpio2: gpio@18180 { |
163 | compatible = "marvell,armada370-thermal"; | 96 | compatible = "marvell,orion-gpio"; |
164 | reg = <0xd0018300 0x4 | 97 | reg = <0x18180 0x40>; |
165 | 0xd0018304 0x4>; | 98 | ngpios = <2>; |
166 | status = "okay"; | 99 | gpio-controller; |
167 | }; | 100 | #gpio-cells = <2>; |
101 | interrupt-controller; | ||
102 | #interrupts-cells = <2>; | ||
103 | interrupts = <91>; | ||
104 | }; | ||
168 | 105 | ||
169 | pcie-controller { | 106 | coreclk: mvebu-sar@18230 { |
170 | compatible = "marvell,armada-370-pcie"; | 107 | compatible = "marvell,armada-370-core-clock"; |
171 | status = "disabled"; | 108 | reg = <0x18230 0x08>; |
172 | device_type = "pci"; | 109 | #clock-cells = <1>; |
110 | }; | ||
173 | 111 | ||
174 | #address-cells = <3>; | 112 | gateclk: clock-gating-control@18220 { |
175 | #size-cells = <2>; | 113 | compatible = "marvell,armada-370-gating-clock"; |
114 | reg = <0x18220 0x4>; | ||
115 | clocks = <&coreclk 0>; | ||
116 | #clock-cells = <1>; | ||
117 | }; | ||
176 | 118 | ||
177 | bus-range = <0x00 0xff>; | 119 | xor@60800 { |
120 | compatible = "marvell,orion-xor"; | ||
121 | reg = <0x60800 0x100 | ||
122 | 0x60A00 0x100>; | ||
123 | status = "okay"; | ||
124 | |||
125 | xor00 { | ||
126 | interrupts = <51>; | ||
127 | dmacap,memcpy; | ||
128 | dmacap,xor; | ||
129 | }; | ||
130 | xor01 { | ||
131 | interrupts = <52>; | ||
132 | dmacap,memcpy; | ||
133 | dmacap,xor; | ||
134 | dmacap,memset; | ||
135 | }; | ||
136 | }; | ||
178 | 137 | ||
179 | reg = <0xd0040000 0x2000>, <0xd0080000 0x2000>; | 138 | xor@60900 { |
139 | compatible = "marvell,orion-xor"; | ||
140 | reg = <0x60900 0x100 | ||
141 | 0x60b00 0x100>; | ||
142 | status = "okay"; | ||
143 | |||
144 | xor10 { | ||
145 | interrupts = <94>; | ||
146 | dmacap,memcpy; | ||
147 | dmacap,xor; | ||
148 | }; | ||
149 | xor11 { | ||
150 | interrupts = <95>; | ||
151 | dmacap,memcpy; | ||
152 | dmacap,xor; | ||
153 | dmacap,memset; | ||
154 | }; | ||
155 | }; | ||
180 | 156 | ||
181 | reg-names = "pcie0.0", "pcie1.0"; | 157 | usb@50000 { |
158 | clocks = <&coreclk 0>; | ||
159 | }; | ||
182 | 160 | ||
183 | ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ | 161 | usb@51000 { |
184 | 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */ | 162 | clocks = <&coreclk 0>; |
185 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | 163 | }; |
186 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | ||
187 | 164 | ||
188 | pcie@1,0 { | 165 | thermal@18300 { |
189 | device_type = "pci"; | 166 | compatible = "marvell,armada370-thermal"; |
190 | assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; | 167 | reg = <0x18300 0x4 |
191 | reg = <0x0800 0 0 0 0>; | 168 | 0x18304 0x4>; |
192 | #address-cells = <3>; | 169 | status = "okay"; |
193 | #size-cells = <2>; | ||
194 | #interrupt-cells = <1>; | ||
195 | ranges; | ||
196 | interrupt-map-mask = <0 0 0 0>; | ||
197 | interrupt-map = <0 0 0 0 &mpic 58>; | ||
198 | marvell,pcie-port = <0>; | ||
199 | marvell,pcie-lane = <0>; | ||
200 | clocks = <&gateclk 5>; | ||
201 | status = "disabled"; | ||
202 | }; | 170 | }; |
203 | 171 | ||
204 | pcie@2,0 { | 172 | pcie-controller { |
173 | compatible = "marvell,armada-370-pcie"; | ||
174 | status = "disabled"; | ||
205 | device_type = "pci"; | 175 | device_type = "pci"; |
206 | assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>; | 176 | |
207 | reg = <0x1000 0 0 0 0>; | ||
208 | #address-cells = <3>; | 177 | #address-cells = <3>; |
209 | #size-cells = <2>; | 178 | #size-cells = <2>; |
210 | #interrupt-cells = <1>; | 179 | |
211 | ranges; | 180 | bus-range = <0x00 0xff>; |
212 | interrupt-map-mask = <0 0 0 0>; | 181 | |
213 | interrupt-map = <0 0 0 0 &mpic 62>; | 182 | reg = <0x40000 0x2000>, <0x80000 0x2000>; |
214 | marvell,pcie-port = <1>; | 183 | |
215 | marvell,pcie-lane = <0>; | 184 | reg-names = "pcie0.0", "pcie1.0"; |
216 | clocks = <&gateclk 9>; | 185 | |
217 | status = "disabled"; | 186 | ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000 /* Port 0.0 registers */ |
187 | 0x82000000 0 0x80000 0x80000 0 0x00002000 /* Port 1.0 registers */ | ||
188 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | ||
189 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | ||
190 | |||
191 | pcie@1,0 { | ||
192 | device_type = "pci"; | ||
193 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; | ||
194 | reg = <0x0800 0 0 0 0>; | ||
195 | #address-cells = <3>; | ||
196 | #size-cells = <2>; | ||
197 | #interrupt-cells = <1>; | ||
198 | ranges; | ||
199 | interrupt-map-mask = <0 0 0 0>; | ||
200 | interrupt-map = <0 0 0 0 &mpic 58>; | ||
201 | marvell,pcie-port = <0>; | ||
202 | marvell,pcie-lane = <0>; | ||
203 | clocks = <&gateclk 5>; | ||
204 | status = "disabled"; | ||
205 | }; | ||
206 | |||
207 | pcie@2,0 { | ||
208 | device_type = "pci"; | ||
209 | assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; | ||
210 | reg = <0x1000 0 0 0 0>; | ||
211 | #address-cells = <3>; | ||
212 | #size-cells = <2>; | ||
213 | #interrupt-cells = <1>; | ||
214 | ranges; | ||
215 | interrupt-map-mask = <0 0 0 0>; | ||
216 | interrupt-map = <0 0 0 0 &mpic 62>; | ||
217 | marvell,pcie-port = <1>; | ||
218 | marvell,pcie-lane = <0>; | ||
219 | clocks = <&gateclk 9>; | ||
220 | status = "disabled"; | ||
221 | }; | ||
218 | }; | 222 | }; |
219 | }; | 223 | }; |
220 | }; | 224 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts index 54cc5bb705fb..d6cc8bf8272e 100644 --- a/arch/arm/boot/dts/armada-xp-db.dts +++ b/arch/arm/boot/dts/armada-xp-db.dts | |||
@@ -26,132 +26,134 @@ | |||
26 | 26 | ||
27 | memory { | 27 | memory { |
28 | device_type = "memory"; | 28 | device_type = "memory"; |
29 | reg = <0x00000000 0x80000000>; /* 2 GB */ | 29 | reg = <0 0x00000000 0 0x80000000>; /* 2 GB */ |
30 | }; | 30 | }; |
31 | 31 | ||
32 | soc { | 32 | soc { |
33 | serial@d0012000 { | 33 | internal-regs { |
34 | clock-frequency = <250000000>; | 34 | serial@12000 { |
35 | status = "okay"; | 35 | clock-frequency = <250000000>; |
36 | }; | 36 | status = "okay"; |
37 | serial@d0012100 { | ||
38 | clock-frequency = <250000000>; | ||
39 | status = "okay"; | ||
40 | }; | ||
41 | serial@d0012200 { | ||
42 | clock-frequency = <250000000>; | ||
43 | status = "okay"; | ||
44 | }; | ||
45 | serial@d0012300 { | ||
46 | clock-frequency = <250000000>; | ||
47 | status = "okay"; | ||
48 | }; | ||
49 | |||
50 | sata@d00a0000 { | ||
51 | nr-ports = <2>; | ||
52 | status = "okay"; | ||
53 | }; | ||
54 | |||
55 | mdio { | ||
56 | phy0: ethernet-phy@0 { | ||
57 | reg = <0>; | ||
58 | }; | 37 | }; |
59 | 38 | serial@12100 { | |
60 | phy1: ethernet-phy@1 { | 39 | clock-frequency = <250000000>; |
61 | reg = <1>; | 40 | status = "okay"; |
62 | }; | 41 | }; |
63 | 42 | serial@12200 { | |
64 | phy2: ethernet-phy@2 { | 43 | clock-frequency = <250000000>; |
65 | reg = <25>; | 44 | status = "okay"; |
66 | }; | 45 | }; |
67 | 46 | serial@12300 { | |
68 | phy3: ethernet-phy@3 { | 47 | clock-frequency = <250000000>; |
69 | reg = <27>; | 48 | status = "okay"; |
70 | }; | 49 | }; |
71 | }; | ||
72 | |||
73 | ethernet@d0070000 { | ||
74 | status = "okay"; | ||
75 | phy = <&phy0>; | ||
76 | phy-mode = "rgmii-id"; | ||
77 | }; | ||
78 | ethernet@d0074000 { | ||
79 | status = "okay"; | ||
80 | phy = <&phy1>; | ||
81 | phy-mode = "rgmii-id"; | ||
82 | }; | ||
83 | ethernet@d0030000 { | ||
84 | status = "okay"; | ||
85 | phy = <&phy2>; | ||
86 | phy-mode = "sgmii"; | ||
87 | }; | ||
88 | ethernet@d0034000 { | ||
89 | status = "okay"; | ||
90 | phy = <&phy3>; | ||
91 | phy-mode = "sgmii"; | ||
92 | }; | ||
93 | |||
94 | mvsdio@d00d4000 { | ||
95 | pinctrl-0 = <&sdio_pins>; | ||
96 | pinctrl-names = "default"; | ||
97 | status = "okay"; | ||
98 | /* No CD or WP GPIOs */ | ||
99 | }; | ||
100 | 50 | ||
101 | usb@d0050000 { | 51 | sata@a0000 { |
102 | status = "okay"; | 52 | nr-ports = <2>; |
103 | }; | 53 | status = "okay"; |
54 | }; | ||
104 | 55 | ||
105 | usb@d0051000 { | 56 | mdio { |
106 | status = "okay"; | 57 | phy0: ethernet-phy@0 { |
107 | }; | 58 | reg = <0>; |
59 | }; | ||
108 | 60 | ||
109 | usb@d0052000 { | 61 | phy1: ethernet-phy@1 { |
110 | status = "okay"; | 62 | reg = <1>; |
111 | }; | 63 | }; |
112 | 64 | ||
113 | spi0: spi@d0010600 { | 65 | phy2: ethernet-phy@2 { |
114 | status = "okay"; | 66 | reg = <25>; |
67 | }; | ||
115 | 68 | ||
116 | spi-flash@0 { | 69 | phy3: ethernet-phy@3 { |
117 | #address-cells = <1>; | 70 | reg = <27>; |
118 | #size-cells = <1>; | 71 | }; |
119 | compatible = "m25p64"; | ||
120 | reg = <0>; /* Chip select 0 */ | ||
121 | spi-max-frequency = <20000000>; | ||
122 | }; | 72 | }; |
123 | }; | ||
124 | 73 | ||
125 | pcie-controller { | 74 | ethernet@70000 { |
126 | status = "okay"; | 75 | status = "okay"; |
76 | phy = <&phy0>; | ||
77 | phy-mode = "rgmii-id"; | ||
78 | }; | ||
79 | ethernet@74000 { | ||
80 | status = "okay"; | ||
81 | phy = <&phy1>; | ||
82 | phy-mode = "rgmii-id"; | ||
83 | }; | ||
84 | ethernet@30000 { | ||
85 | status = "okay"; | ||
86 | phy = <&phy2>; | ||
87 | phy-mode = "sgmii"; | ||
88 | }; | ||
89 | ethernet@34000 { | ||
90 | status = "okay"; | ||
91 | phy = <&phy3>; | ||
92 | phy-mode = "sgmii"; | ||
93 | }; | ||
127 | 94 | ||
128 | /* | 95 | mvsdio@d4000 { |
129 | * All 6 slots are physically present as | 96 | pinctrl-0 = <&sdio_pins>; |
130 | * standard PCIe slots on the board. | 97 | pinctrl-names = "default"; |
131 | */ | ||
132 | pcie@1,0 { | ||
133 | /* Port 0, Lane 0 */ | ||
134 | status = "okay"; | 98 | status = "okay"; |
99 | /* No CD or WP GPIOs */ | ||
135 | }; | 100 | }; |
136 | pcie@2,0 { | 101 | |
137 | /* Port 0, Lane 1 */ | 102 | usb@50000 { |
138 | status = "okay"; | 103 | status = "okay"; |
139 | }; | 104 | }; |
140 | pcie@3,0 { | 105 | |
141 | /* Port 0, Lane 2 */ | 106 | usb@51000 { |
142 | status = "okay"; | 107 | status = "okay"; |
143 | }; | 108 | }; |
144 | pcie@4,0 { | 109 | |
145 | /* Port 0, Lane 3 */ | 110 | usb@52000 { |
146 | status = "okay"; | 111 | status = "okay"; |
147 | }; | 112 | }; |
148 | pcie@9,0 { | 113 | |
149 | /* Port 2, Lane 0 */ | 114 | spi0: spi@10600 { |
150 | status = "okay"; | 115 | status = "okay"; |
116 | |||
117 | spi-flash@0 { | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <1>; | ||
120 | compatible = "m25p64"; | ||
121 | reg = <0>; /* Chip select 0 */ | ||
122 | spi-max-frequency = <20000000>; | ||
123 | }; | ||
151 | }; | 124 | }; |
152 | pcie@10,0 { | 125 | |
153 | /* Port 3, Lane 0 */ | 126 | pcie-controller { |
154 | status = "okay"; | 127 | status = "okay"; |
128 | |||
129 | /* | ||
130 | * All 6 slots are physically present as | ||
131 | * standard PCIe slots on the board. | ||
132 | */ | ||
133 | pcie@1,0 { | ||
134 | /* Port 0, Lane 0 */ | ||
135 | status = "okay"; | ||
136 | }; | ||
137 | pcie@2,0 { | ||
138 | /* Port 0, Lane 1 */ | ||
139 | status = "okay"; | ||
140 | }; | ||
141 | pcie@3,0 { | ||
142 | /* Port 0, Lane 2 */ | ||
143 | status = "okay"; | ||
144 | }; | ||
145 | pcie@4,0 { | ||
146 | /* Port 0, Lane 3 */ | ||
147 | status = "okay"; | ||
148 | }; | ||
149 | pcie@9,0 { | ||
150 | /* Port 2, Lane 0 */ | ||
151 | status = "okay"; | ||
152 | }; | ||
153 | pcie@10,0 { | ||
154 | /* Port 3, Lane 0 */ | ||
155 | status = "okay"; | ||
156 | }; | ||
155 | }; | 157 | }; |
156 | }; | 158 | }; |
157 | }; | 159 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts index 04f28a712b98..26ad06fc147e 100644 --- a/arch/arm/boot/dts/armada-xp-gp.dts +++ b/arch/arm/boot/dts/armada-xp-gp.dts | |||
@@ -26,137 +26,141 @@ | |||
26 | 26 | ||
27 | memory { | 27 | memory { |
28 | device_type = "memory"; | 28 | device_type = "memory"; |
29 | |||
30 | /* | 29 | /* |
31 | * 4 GB of plug-in RAM modules by default but only 3GB | 30 | * 8 GB of plug-in RAM modules by default.The amount |
32 | * are visible, the amount of memory available can be | 31 | * of memory available can be changed by the |
33 | * changed by the bootloader according the size of the | 32 | * bootloader according the size of the module |
34 | * module actually plugged | 33 | * actually plugged. Only 7GB are usable because |
34 | * addresses from 0xC0000000 to 0xffffffff are used by | ||
35 | * the internal registers of the SoC. | ||
35 | */ | 36 | */ |
36 | reg = <0x00000000 0xC0000000>; | 37 | reg = <0x00000000 0x00000000 0x00000000 0xC0000000>, |
38 | <0x00000001 0x00000000 0x00000001 0x00000000>; | ||
37 | }; | 39 | }; |
38 | 40 | ||
39 | soc { | 41 | soc { |
40 | serial@d0012000 { | 42 | internal-regs { |
41 | clock-frequency = <250000000>; | 43 | serial@12000 { |
42 | status = "okay"; | 44 | clock-frequency = <250000000>; |
43 | }; | 45 | status = "okay"; |
44 | serial@d0012100 { | ||
45 | clock-frequency = <250000000>; | ||
46 | status = "okay"; | ||
47 | }; | ||
48 | serial@d0012200 { | ||
49 | clock-frequency = <250000000>; | ||
50 | status = "okay"; | ||
51 | }; | ||
52 | serial@d0012300 { | ||
53 | clock-frequency = <250000000>; | ||
54 | status = "okay"; | ||
55 | }; | ||
56 | |||
57 | sata@d00a0000 { | ||
58 | nr-ports = <2>; | ||
59 | status = "okay"; | ||
60 | }; | ||
61 | |||
62 | mdio { | ||
63 | phy0: ethernet-phy@0 { | ||
64 | reg = <16>; | ||
65 | }; | 46 | }; |
66 | 47 | serial@12100 { | |
67 | phy1: ethernet-phy@1 { | 48 | clock-frequency = <250000000>; |
68 | reg = <17>; | 49 | status = "okay"; |
69 | }; | 50 | }; |
70 | 51 | serial@12200 { | |
71 | phy2: ethernet-phy@2 { | 52 | clock-frequency = <250000000>; |
72 | reg = <18>; | 53 | status = "okay"; |
54 | }; | ||
55 | serial@12300 { | ||
56 | clock-frequency = <250000000>; | ||
57 | status = "okay"; | ||
73 | }; | 58 | }; |
74 | 59 | ||
75 | phy3: ethernet-phy@3 { | 60 | sata@a0000 { |
76 | reg = <19>; | 61 | nr-ports = <2>; |
62 | status = "okay"; | ||
77 | }; | 63 | }; |
78 | }; | ||
79 | 64 | ||
80 | ethernet@d0070000 { | 65 | mdio { |
81 | status = "okay"; | 66 | phy0: ethernet-phy@0 { |
82 | phy = <&phy0>; | 67 | reg = <16>; |
83 | phy-mode = "rgmii-id"; | 68 | }; |
84 | }; | ||
85 | ethernet@d0074000 { | ||
86 | status = "okay"; | ||
87 | phy = <&phy1>; | ||
88 | phy-mode = "rgmii-id"; | ||
89 | }; | ||
90 | ethernet@d0030000 { | ||
91 | status = "okay"; | ||
92 | phy = <&phy2>; | ||
93 | phy-mode = "rgmii-id"; | ||
94 | }; | ||
95 | ethernet@d0034000 { | ||
96 | status = "okay"; | ||
97 | phy = <&phy3>; | ||
98 | phy-mode = "rgmii-id"; | ||
99 | }; | ||
100 | 69 | ||
101 | spi0: spi@d0010600 { | 70 | phy1: ethernet-phy@1 { |
102 | status = "okay"; | 71 | reg = <17>; |
72 | }; | ||
103 | 73 | ||
104 | spi-flash@0 { | 74 | phy2: ethernet-phy@2 { |
105 | #address-cells = <1>; | 75 | reg = <18>; |
106 | #size-cells = <1>; | 76 | }; |
107 | compatible = "n25q128a13"; | ||
108 | reg = <0>; /* Chip select 0 */ | ||
109 | spi-max-frequency = <108000000>; | ||
110 | }; | ||
111 | }; | ||
112 | 77 | ||
113 | devbus-bootcs@d0010400 { | 78 | phy3: ethernet-phy@3 { |
114 | status = "okay"; | 79 | reg = <19>; |
115 | ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf000000, size 0x1000000 */ | 80 | }; |
116 | |||
117 | /* Device Bus parameters are required */ | ||
118 | |||
119 | /* Read parameters */ | ||
120 | devbus,bus-width = <8>; | ||
121 | devbus,turn-off-ps = <60000>; | ||
122 | devbus,badr-skew-ps = <0>; | ||
123 | devbus,acc-first-ps = <124000>; | ||
124 | devbus,acc-next-ps = <248000>; | ||
125 | devbus,rd-setup-ps = <0>; | ||
126 | devbus,rd-hold-ps = <0>; | ||
127 | |||
128 | /* Write parameters */ | ||
129 | devbus,sync-enable = <0>; | ||
130 | devbus,wr-high-ps = <60000>; | ||
131 | devbus,wr-low-ps = <60000>; | ||
132 | devbus,ale-wr-ps = <60000>; | ||
133 | |||
134 | /* NOR 16 MiB */ | ||
135 | nor@0 { | ||
136 | compatible = "cfi-flash"; | ||
137 | reg = <0 0x1000000>; | ||
138 | bank-width = <2>; | ||
139 | }; | 81 | }; |
140 | }; | ||
141 | 82 | ||
142 | pcie-controller { | 83 | ethernet@70000 { |
143 | status = "okay"; | 84 | status = "okay"; |
85 | phy = <&phy0>; | ||
86 | phy-mode = "rgmii-id"; | ||
87 | }; | ||
88 | ethernet@74000 { | ||
89 | status = "okay"; | ||
90 | phy = <&phy1>; | ||
91 | phy-mode = "rgmii-id"; | ||
92 | }; | ||
93 | ethernet@30000 { | ||
94 | status = "okay"; | ||
95 | phy = <&phy2>; | ||
96 | phy-mode = "rgmii-id"; | ||
97 | }; | ||
98 | ethernet@34000 { | ||
99 | status = "okay"; | ||
100 | phy = <&phy3>; | ||
101 | phy-mode = "rgmii-id"; | ||
102 | }; | ||
144 | 103 | ||
145 | /* | 104 | spi0: spi@10600 { |
146 | * The 3 slots are physically present as | ||
147 | * standard PCIe slots on the board. | ||
148 | */ | ||
149 | pcie@1,0 { | ||
150 | /* Port 0, Lane 0 */ | ||
151 | status = "okay"; | 105 | status = "okay"; |
106 | |||
107 | spi-flash@0 { | ||
108 | #address-cells = <1>; | ||
109 | #size-cells = <1>; | ||
110 | compatible = "n25q128a13"; | ||
111 | reg = <0>; /* Chip select 0 */ | ||
112 | spi-max-frequency = <108000000>; | ||
113 | }; | ||
152 | }; | 114 | }; |
153 | pcie@9,0 { | 115 | |
154 | /* Port 2, Lane 0 */ | 116 | devbus-bootcs@10400 { |
155 | status = "okay"; | 117 | status = "okay"; |
118 | ranges = <0 0xf0000000 0x1000000>; /* @addr 0xf000000, size 0x1000000 */ | ||
119 | |||
120 | /* Device Bus parameters are required */ | ||
121 | |||
122 | /* Read parameters */ | ||
123 | devbus,bus-width = <8>; | ||
124 | devbus,turn-off-ps = <60000>; | ||
125 | devbus,badr-skew-ps = <0>; | ||
126 | devbus,acc-first-ps = <124000>; | ||
127 | devbus,acc-next-ps = <248000>; | ||
128 | devbus,rd-setup-ps = <0>; | ||
129 | devbus,rd-hold-ps = <0>; | ||
130 | |||
131 | /* Write parameters */ | ||
132 | devbus,sync-enable = <0>; | ||
133 | devbus,wr-high-ps = <60000>; | ||
134 | devbus,wr-low-ps = <60000>; | ||
135 | devbus,ale-wr-ps = <60000>; | ||
136 | |||
137 | /* NOR 16 MiB */ | ||
138 | nor@0 { | ||
139 | compatible = "cfi-flash"; | ||
140 | reg = <0 0x1000000>; | ||
141 | bank-width = <2>; | ||
142 | }; | ||
156 | }; | 143 | }; |
157 | pcie@10,0 { | 144 | |
158 | /* Port 3, Lane 0 */ | 145 | pcie-controller { |
159 | status = "okay"; | 146 | status = "okay"; |
147 | |||
148 | /* | ||
149 | * The 3 slots are physically present as | ||
150 | * standard PCIe slots on the board. | ||
151 | */ | ||
152 | pcie@1,0 { | ||
153 | /* Port 0, Lane 0 */ | ||
154 | status = "okay"; | ||
155 | }; | ||
156 | pcie@9,0 { | ||
157 | /* Port 2, Lane 0 */ | ||
158 | status = "okay"; | ||
159 | }; | ||
160 | pcie@10,0 { | ||
161 | /* Port 3, Lane 0 */ | ||
162 | status = "okay"; | ||
163 | }; | ||
160 | }; | 164 | }; |
161 | }; | 165 | }; |
162 | }; | 166 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78230.dtsi b/arch/arm/boot/dts/armada-xp-mv78230.dtsi index c2c78459a4d4..f8eaa383e07f 100644 --- a/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78230.dtsi | |||
@@ -25,159 +25,161 @@ | |||
25 | }; | 25 | }; |
26 | 26 | ||
27 | cpus { | 27 | cpus { |
28 | #address-cells = <1>; | 28 | #address-cells = <1>; |
29 | #size-cells = <0>; | 29 | #size-cells = <0>; |
30 | 30 | ||
31 | cpu@0 { | 31 | cpu@0 { |
32 | device_type = "cpu"; | 32 | device_type = "cpu"; |
33 | compatible = "marvell,sheeva-v7"; | 33 | compatible = "marvell,sheeva-v7"; |
34 | reg = <0>; | 34 | reg = <0>; |
35 | clocks = <&cpuclk 0>; | 35 | clocks = <&cpuclk 0>; |
36 | }; | ||
37 | |||
38 | cpu@1 { | ||
39 | device_type = "cpu"; | ||
40 | compatible = "marvell,sheeva-v7"; | ||
41 | reg = <1>; | ||
42 | clocks = <&cpuclk 1>; | ||
43 | }; | ||
44 | }; | ||
45 | |||
46 | soc { | ||
47 | pinctrl { | ||
48 | compatible = "marvell,mv78230-pinctrl"; | ||
49 | reg = <0xd0018000 0x38>; | ||
50 | |||
51 | sdio_pins: sdio-pins { | ||
52 | marvell,pins = "mpp30", "mpp31", "mpp32", | ||
53 | "mpp33", "mpp34", "mpp35"; | ||
54 | marvell,function = "sd0"; | ||
55 | }; | ||
56 | }; | ||
57 | |||
58 | gpio0: gpio@d0018100 { | ||
59 | compatible = "marvell,orion-gpio"; | ||
60 | reg = <0xd0018100 0x40>; | ||
61 | ngpios = <32>; | ||
62 | gpio-controller; | ||
63 | #gpio-cells = <2>; | ||
64 | interrupt-controller; | ||
65 | #interrupts-cells = <2>; | ||
66 | interrupts = <82>, <83>, <84>, <85>; | ||
67 | }; | 36 | }; |
68 | 37 | ||
69 | gpio1: gpio@d0018140 { | 38 | cpu@1 { |
70 | compatible = "marvell,orion-gpio"; | 39 | device_type = "cpu"; |
71 | reg = <0xd0018140 0x40>; | 40 | compatible = "marvell,sheeva-v7"; |
72 | ngpios = <17>; | 41 | reg = <1>; |
73 | gpio-controller; | 42 | clocks = <&cpuclk 1>; |
74 | #gpio-cells = <2>; | ||
75 | interrupt-controller; | ||
76 | #interrupts-cells = <2>; | ||
77 | interrupts = <87>, <88>, <89>; | ||
78 | }; | 43 | }; |
44 | }; | ||
79 | 45 | ||
80 | /* | 46 | soc { |
81 | * MV78230 has 2 PCIe units Gen2.0: One unit can be | 47 | internal-regs { |
82 | * configured as x4 or quad x1 lanes. One unit is | 48 | pinctrl { |
83 | * x4/x1. | 49 | compatible = "marvell,mv78230-pinctrl"; |
84 | */ | 50 | reg = <0x18000 0x38>; |
85 | pcie-controller { | 51 | |
86 | compatible = "marvell,armada-xp-pcie"; | 52 | sdio_pins: sdio-pins { |
87 | status = "disabled"; | 53 | marvell,pins = "mpp30", "mpp31", "mpp32", |
88 | device_type = "pci"; | 54 | "mpp33", "mpp34", "mpp35"; |
89 | 55 | marvell,function = "sd0"; | |
90 | #address-cells = <3>; | 56 | }; |
91 | #size-cells = <2>; | ||
92 | |||
93 | bus-range = <0x00 0xff>; | ||
94 | |||
95 | ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ | ||
96 | 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */ | ||
97 | 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */ | ||
98 | 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */ | ||
99 | 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */ | ||
100 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | ||
101 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | ||
102 | |||
103 | pcie@1,0 { | ||
104 | device_type = "pci"; | ||
105 | assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; | ||
106 | reg = <0x0800 0 0 0 0>; | ||
107 | #address-cells = <3>; | ||
108 | #size-cells = <2>; | ||
109 | #interrupt-cells = <1>; | ||
110 | ranges; | ||
111 | interrupt-map-mask = <0 0 0 0>; | ||
112 | interrupt-map = <0 0 0 0 &mpic 58>; | ||
113 | marvell,pcie-port = <0>; | ||
114 | marvell,pcie-lane = <0>; | ||
115 | clocks = <&gateclk 5>; | ||
116 | status = "disabled"; | ||
117 | }; | 57 | }; |
118 | 58 | ||
119 | pcie@2,0 { | 59 | gpio0: gpio@18100 { |
120 | device_type = "pci"; | 60 | compatible = "marvell,orion-gpio"; |
121 | assigned-addresses = <0x82000800 0 0xd0044000 0 0x2000>; | 61 | reg = <0x18100 0x40>; |
122 | reg = <0x1000 0 0 0 0>; | 62 | ngpios = <32>; |
123 | #address-cells = <3>; | 63 | gpio-controller; |
124 | #size-cells = <2>; | 64 | #gpio-cells = <2>; |
125 | #interrupt-cells = <1>; | 65 | interrupt-controller; |
126 | ranges; | 66 | #interrupts-cells = <2>; |
127 | interrupt-map-mask = <0 0 0 0>; | 67 | interrupts = <82>, <83>, <84>, <85>; |
128 | interrupt-map = <0 0 0 0 &mpic 59>; | ||
129 | marvell,pcie-port = <0>; | ||
130 | marvell,pcie-lane = <1>; | ||
131 | clocks = <&gateclk 6>; | ||
132 | status = "disabled"; | ||
133 | }; | 68 | }; |
134 | 69 | ||
135 | pcie@3,0 { | 70 | gpio1: gpio@18140 { |
136 | device_type = "pci"; | 71 | compatible = "marvell,orion-gpio"; |
137 | assigned-addresses = <0x82000800 0 0xd0048000 0 0x2000>; | 72 | reg = <0x18140 0x40>; |
138 | reg = <0x1800 0 0 0 0>; | 73 | ngpios = <17>; |
139 | #address-cells = <3>; | 74 | gpio-controller; |
140 | #size-cells = <2>; | 75 | #gpio-cells = <2>; |
141 | #interrupt-cells = <1>; | 76 | interrupt-controller; |
142 | ranges; | 77 | #interrupts-cells = <2>; |
143 | interrupt-map-mask = <0 0 0 0>; | 78 | interrupts = <87>, <88>, <89>; |
144 | interrupt-map = <0 0 0 0 &mpic 60>; | ||
145 | marvell,pcie-port = <0>; | ||
146 | marvell,pcie-lane = <2>; | ||
147 | clocks = <&gateclk 7>; | ||
148 | status = "disabled"; | ||
149 | }; | 79 | }; |
150 | 80 | ||
151 | pcie@4,0 { | 81 | /* |
152 | device_type = "pci"; | 82 | * MV78230 has 2 PCIe units Gen2.0: One unit can be |
153 | assigned-addresses = <0x82000800 0 0xd004c000 0 0x2000>; | 83 | * configured as x4 or quad x1 lanes. One unit is |
154 | reg = <0x2000 0 0 0 0>; | 84 | * x4/x1. |
155 | #address-cells = <3>; | 85 | */ |
156 | #size-cells = <2>; | 86 | pcie-controller { |
157 | #interrupt-cells = <1>; | 87 | compatible = "marvell,armada-xp-pcie"; |
158 | ranges; | ||
159 | interrupt-map-mask = <0 0 0 0>; | ||
160 | interrupt-map = <0 0 0 0 &mpic 61>; | ||
161 | marvell,pcie-port = <0>; | ||
162 | marvell,pcie-lane = <3>; | ||
163 | clocks = <&gateclk 8>; | ||
164 | status = "disabled"; | 88 | status = "disabled"; |
165 | }; | ||
166 | |||
167 | pcie@9,0 { | ||
168 | device_type = "pci"; | 89 | device_type = "pci"; |
169 | assigned-addresses = <0x82000800 0 0xd0042000 0 0x2000>; | 90 | |
170 | reg = <0x4800 0 0 0 0>; | 91 | #address-cells = <3>; |
171 | #address-cells = <3>; | 92 | #size-cells = <2>; |
172 | #size-cells = <2>; | 93 | |
173 | #interrupt-cells = <1>; | 94 | bus-range = <0x00 0xff>; |
174 | ranges; | 95 | |
175 | interrupt-map-mask = <0 0 0 0>; | 96 | ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000 /* Port 0.0 registers */ |
176 | interrupt-map = <0 0 0 0 &mpic 99>; | 97 | 0x82000000 0 0x42000 0x42000 0 0x00002000 /* Port 2.0 registers */ |
177 | marvell,pcie-port = <2>; | 98 | 0x82000000 0 0x44000 0x44000 0 0x00002000 /* Port 0.1 registers */ |
178 | marvell,pcie-lane = <0>; | 99 | 0x82000000 0 0x48000 0x48000 0 0x00002000 /* Port 0.2 registers */ |
179 | clocks = <&gateclk 26>; | 100 | 0x82000000 0 0x4c000 0x4c000 0 0x00002000 /* Port 0.3 registers */ |
180 | status = "disabled"; | 101 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ |
102 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | ||
103 | |||
104 | pcie@1,0 { | ||
105 | device_type = "pci"; | ||
106 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; | ||
107 | reg = <0x0800 0 0 0 0>; | ||
108 | #address-cells = <3>; | ||
109 | #size-cells = <2>; | ||
110 | #interrupt-cells = <1>; | ||
111 | ranges; | ||
112 | interrupt-map-mask = <0 0 0 0>; | ||
113 | interrupt-map = <0 0 0 0 &mpic 58>; | ||
114 | marvell,pcie-port = <0>; | ||
115 | marvell,pcie-lane = <0>; | ||
116 | clocks = <&gateclk 5>; | ||
117 | status = "disabled"; | ||
118 | }; | ||
119 | |||
120 | pcie@2,0 { | ||
121 | device_type = "pci"; | ||
122 | assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; | ||
123 | reg = <0x1000 0 0 0 0>; | ||
124 | #address-cells = <3>; | ||
125 | #size-cells = <2>; | ||
126 | #interrupt-cells = <1>; | ||
127 | ranges; | ||
128 | interrupt-map-mask = <0 0 0 0>; | ||
129 | interrupt-map = <0 0 0 0 &mpic 59>; | ||
130 | marvell,pcie-port = <0>; | ||
131 | marvell,pcie-lane = <1>; | ||
132 | clocks = <&gateclk 6>; | ||
133 | status = "disabled"; | ||
134 | }; | ||
135 | |||
136 | pcie@3,0 { | ||
137 | device_type = "pci"; | ||
138 | assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; | ||
139 | reg = <0x1800 0 0 0 0>; | ||
140 | #address-cells = <3>; | ||
141 | #size-cells = <2>; | ||
142 | #interrupt-cells = <1>; | ||
143 | ranges; | ||
144 | interrupt-map-mask = <0 0 0 0>; | ||
145 | interrupt-map = <0 0 0 0 &mpic 60>; | ||
146 | marvell,pcie-port = <0>; | ||
147 | marvell,pcie-lane = <2>; | ||
148 | clocks = <&gateclk 7>; | ||
149 | status = "disabled"; | ||
150 | }; | ||
151 | |||
152 | pcie@4,0 { | ||
153 | device_type = "pci"; | ||
154 | assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; | ||
155 | reg = <0x2000 0 0 0 0>; | ||
156 | #address-cells = <3>; | ||
157 | #size-cells = <2>; | ||
158 | #interrupt-cells = <1>; | ||
159 | ranges; | ||
160 | interrupt-map-mask = <0 0 0 0>; | ||
161 | interrupt-map = <0 0 0 0 &mpic 61>; | ||
162 | marvell,pcie-port = <0>; | ||
163 | marvell,pcie-lane = <3>; | ||
164 | clocks = <&gateclk 8>; | ||
165 | status = "disabled"; | ||
166 | }; | ||
167 | |||
168 | pcie@9,0 { | ||
169 | device_type = "pci"; | ||
170 | assigned-addresses = <0x82000800 0 0x42000 0 0x2000>; | ||
171 | reg = <0x4800 0 0 0 0>; | ||
172 | #address-cells = <3>; | ||
173 | #size-cells = <2>; | ||
174 | #interrupt-cells = <1>; | ||
175 | ranges; | ||
176 | interrupt-map-mask = <0 0 0 0>; | ||
177 | interrupt-map = <0 0 0 0 &mpic 99>; | ||
178 | marvell,pcie-port = <2>; | ||
179 | marvell,pcie-lane = <0>; | ||
180 | clocks = <&gateclk 26>; | ||
181 | status = "disabled"; | ||
182 | }; | ||
181 | }; | 183 | }; |
182 | }; | 184 | }; |
183 | }; | 185 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78260.dtsi b/arch/arm/boot/dts/armada-xp-mv78260.dtsi index 885bf229eef7..f4029f015aff 100644 --- a/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78260.dtsi | |||
@@ -26,196 +26,198 @@ | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | cpus { | 28 | cpus { |
29 | #address-cells = <1>; | 29 | #address-cells = <1>; |
30 | #size-cells = <0>; | 30 | #size-cells = <0>; |
31 | 31 | ||
32 | cpu@0 { | 32 | cpu@0 { |
33 | device_type = "cpu"; | 33 | device_type = "cpu"; |
34 | compatible = "marvell,sheeva-v7"; | 34 | compatible = "marvell,sheeva-v7"; |
35 | reg = <0>; | 35 | reg = <0>; |
36 | clocks = <&cpuclk 0>; | 36 | clocks = <&cpuclk 0>; |
37 | }; | 37 | }; |
38 | 38 | ||
39 | cpu@1 { | 39 | cpu@1 { |
40 | device_type = "cpu"; | 40 | device_type = "cpu"; |
41 | compatible = "marvell,sheeva-v7"; | 41 | compatible = "marvell,sheeva-v7"; |
42 | reg = <1>; | 42 | reg = <1>; |
43 | clocks = <&cpuclk 1>; | 43 | clocks = <&cpuclk 1>; |
44 | }; | 44 | }; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | soc { | 47 | soc { |
48 | pinctrl { | 48 | internal-regs { |
49 | compatible = "marvell,mv78260-pinctrl"; | 49 | pinctrl { |
50 | reg = <0xd0018000 0x38>; | 50 | compatible = "marvell,mv78260-pinctrl"; |
51 | 51 | reg = <0x18000 0x38>; | |
52 | sdio_pins: sdio-pins { | 52 | |
53 | marvell,pins = "mpp30", "mpp31", "mpp32", | 53 | sdio_pins: sdio-pins { |
54 | "mpp33", "mpp34", "mpp35"; | 54 | marvell,pins = "mpp30", "mpp31", "mpp32", |
55 | marvell,function = "sd0"; | 55 | "mpp33", "mpp34", "mpp35"; |
56 | marvell,function = "sd0"; | ||
57 | }; | ||
56 | }; | 58 | }; |
57 | }; | ||
58 | 59 | ||
59 | gpio0: gpio@d0018100 { | 60 | gpio0: gpio@18100 { |
60 | compatible = "marvell,orion-gpio"; | 61 | compatible = "marvell,orion-gpio"; |
61 | reg = <0xd0018100 0x40>; | 62 | reg = <0x18100 0x40>; |
62 | ngpios = <32>; | 63 | ngpios = <32>; |
63 | gpio-controller; | 64 | gpio-controller; |
64 | #gpio-cells = <2>; | 65 | #gpio-cells = <2>; |
65 | interrupt-controller; | 66 | interrupt-controller; |
66 | #interrupts-cells = <2>; | 67 | #interrupts-cells = <2>; |
67 | interrupts = <82>, <83>, <84>, <85>; | 68 | interrupts = <82>, <83>, <84>, <85>; |
68 | }; | 69 | }; |
69 | 70 | ||
70 | gpio1: gpio@d0018140 { | 71 | gpio1: gpio@18140 { |
71 | compatible = "marvell,orion-gpio"; | 72 | compatible = "marvell,orion-gpio"; |
72 | reg = <0xd0018140 0x40>; | 73 | reg = <0x18140 0x40>; |
73 | ngpios = <32>; | 74 | ngpios = <32>; |
74 | gpio-controller; | 75 | gpio-controller; |
75 | #gpio-cells = <2>; | 76 | #gpio-cells = <2>; |
76 | interrupt-controller; | 77 | interrupt-controller; |
77 | #interrupts-cells = <2>; | 78 | #interrupts-cells = <2>; |
78 | interrupts = <87>, <88>, <89>, <90>; | 79 | interrupts = <87>, <88>, <89>, <90>; |
79 | }; | 80 | }; |
80 | 81 | ||
81 | gpio2: gpio@d0018180 { | 82 | gpio2: gpio@18180 { |
82 | compatible = "marvell,orion-gpio"; | 83 | compatible = "marvell,orion-gpio"; |
83 | reg = <0xd0018180 0x40>; | 84 | reg = <0x18180 0x40>; |
84 | ngpios = <3>; | 85 | ngpios = <3>; |
85 | gpio-controller; | 86 | gpio-controller; |
86 | #gpio-cells = <2>; | 87 | #gpio-cells = <2>; |
87 | interrupt-controller; | 88 | interrupt-controller; |
88 | #interrupts-cells = <2>; | 89 | #interrupts-cells = <2>; |
89 | interrupts = <91>; | 90 | interrupts = <91>; |
90 | }; | 91 | }; |
91 | 92 | ||
92 | ethernet@d0034000 { | 93 | ethernet@34000 { |
93 | compatible = "marvell,armada-370-neta"; | 94 | compatible = "marvell,armada-370-neta"; |
94 | reg = <0xd0034000 0x2500>; | 95 | reg = <0x34000 0x2500>; |
95 | interrupts = <14>; | 96 | interrupts = <14>; |
96 | clocks = <&gateclk 1>; | 97 | clocks = <&gateclk 1>; |
97 | status = "disabled"; | 98 | status = "disabled"; |
98 | }; | ||
99 | |||
100 | /* | ||
101 | * MV78260 has 3 PCIe units Gen2.0: Two units can be | ||
102 | * configured as x4 or quad x1 lanes. One unit is | ||
103 | * x4/x1. | ||
104 | */ | ||
105 | pcie-controller { | ||
106 | compatible = "marvell,armada-xp-pcie"; | ||
107 | status = "disabled"; | ||
108 | device_type = "pci"; | ||
109 | |||
110 | #address-cells = <3>; | ||
111 | #size-cells = <2>; | ||
112 | |||
113 | bus-range = <0x00 0xff>; | ||
114 | |||
115 | ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ | ||
116 | 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */ | ||
117 | 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */ | ||
118 | 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */ | ||
119 | 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */ | ||
120 | 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */ | ||
121 | 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */ | ||
122 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | ||
123 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | ||
124 | |||
125 | pcie@1,0 { | ||
126 | device_type = "pci"; | ||
127 | assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; | ||
128 | reg = <0x0800 0 0 0 0>; | ||
129 | #address-cells = <3>; | ||
130 | #size-cells = <2>; | ||
131 | #interrupt-cells = <1>; | ||
132 | ranges; | ||
133 | interrupt-map-mask = <0 0 0 0>; | ||
134 | interrupt-map = <0 0 0 0 &mpic 58>; | ||
135 | marvell,pcie-port = <0>; | ||
136 | marvell,pcie-lane = <0>; | ||
137 | clocks = <&gateclk 5>; | ||
138 | status = "disabled"; | ||
139 | }; | ||
140 | |||
141 | pcie@2,0 { | ||
142 | device_type = "pci"; | ||
143 | assigned-addresses = <0x82000800 0 0xd0044000 0 0x2000>; | ||
144 | reg = <0x1000 0 0 0 0>; | ||
145 | #address-cells = <3>; | ||
146 | #size-cells = <2>; | ||
147 | #interrupt-cells = <1>; | ||
148 | ranges; | ||
149 | interrupt-map-mask = <0 0 0 0>; | ||
150 | interrupt-map = <0 0 0 0 &mpic 59>; | ||
151 | marvell,pcie-port = <0>; | ||
152 | marvell,pcie-lane = <1>; | ||
153 | clocks = <&gateclk 6>; | ||
154 | status = "disabled"; | ||
155 | }; | 99 | }; |
156 | 100 | ||
157 | pcie@3,0 { | 101 | /* |
158 | device_type = "pci"; | 102 | * MV78260 has 3 PCIe units Gen2.0: Two units can be |
159 | assigned-addresses = <0x82000800 0 0xd0048000 0 0x2000>; | 103 | * configured as x4 or quad x1 lanes. One unit is |
160 | reg = <0x1800 0 0 0 0>; | 104 | * x4/x1. |
161 | #address-cells = <3>; | 105 | */ |
162 | #size-cells = <2>; | 106 | pcie-controller { |
163 | #interrupt-cells = <1>; | 107 | compatible = "marvell,armada-xp-pcie"; |
164 | ranges; | ||
165 | interrupt-map-mask = <0 0 0 0>; | ||
166 | interrupt-map = <0 0 0 0 &mpic 60>; | ||
167 | marvell,pcie-port = <0>; | ||
168 | marvell,pcie-lane = <2>; | ||
169 | clocks = <&gateclk 7>; | ||
170 | status = "disabled"; | 108 | status = "disabled"; |
171 | }; | ||
172 | |||
173 | pcie@4,0 { | ||
174 | device_type = "pci"; | 109 | device_type = "pci"; |
175 | assigned-addresses = <0x82000800 0 0xd004c000 0 0x2000>; | ||
176 | reg = <0x2000 0 0 0 0>; | ||
177 | #address-cells = <3>; | ||
178 | #size-cells = <2>; | ||
179 | #interrupt-cells = <1>; | ||
180 | ranges; | ||
181 | interrupt-map-mask = <0 0 0 0>; | ||
182 | interrupt-map = <0 0 0 0 &mpic 61>; | ||
183 | marvell,pcie-port = <0>; | ||
184 | marvell,pcie-lane = <3>; | ||
185 | clocks = <&gateclk 8>; | ||
186 | status = "disabled"; | ||
187 | }; | ||
188 | 110 | ||
189 | pcie@9,0 { | ||
190 | device_type = "pci"; | ||
191 | assigned-addresses = <0x82000800 0 0xd0042000 0 0x2000>; | ||
192 | reg = <0x4800 0 0 0 0>; | ||
193 | #address-cells = <3>; | 111 | #address-cells = <3>; |
194 | #size-cells = <2>; | 112 | #size-cells = <2>; |
195 | #interrupt-cells = <1>; | ||
196 | ranges; | ||
197 | interrupt-map-mask = <0 0 0 0>; | ||
198 | interrupt-map = <0 0 0 0 &mpic 99>; | ||
199 | marvell,pcie-port = <2>; | ||
200 | marvell,pcie-lane = <0>; | ||
201 | clocks = <&gateclk 26>; | ||
202 | status = "disabled"; | ||
203 | }; | ||
204 | 113 | ||
205 | pcie@10,0 { | 114 | bus-range = <0x00 0xff>; |
206 | device_type = "pci"; | 115 | |
207 | assigned-addresses = <0x82000800 0 0xd0082000 0 0x2000>; | 116 | ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000 /* Port 0.0 registers */ |
208 | reg = <0x5000 0 0 0 0>; | 117 | 0x82000000 0 0x42000 0x42000 0 0x00002000 /* Port 2.0 registers */ |
209 | #address-cells = <3>; | 118 | 0x82000000 0 0x44000 0x44000 0 0x00002000 /* Port 0.1 registers */ |
210 | #size-cells = <2>; | 119 | 0x82000000 0 0x48000 0x48000 0 0x00002000 /* Port 0.2 registers */ |
211 | #interrupt-cells = <1>; | 120 | 0x82000000 0 0x4c000 0x4c000 0 0x00002000 /* Port 0.3 registers */ |
212 | ranges; | 121 | 0x82000000 0 0x80000 0x80000 0 0x00002000 /* Port 1.0 registers */ |
213 | interrupt-map-mask = <0 0 0 0>; | 122 | 0x82000000 0 0x82000 0x82000 0 0x00002000 /* Port 3.0 registers */ |
214 | interrupt-map = <0 0 0 0 &mpic 103>; | 123 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ |
215 | marvell,pcie-port = <3>; | 124 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ |
216 | marvell,pcie-lane = <0>; | 125 | |
217 | clocks = <&gateclk 27>; | 126 | pcie@1,0 { |
218 | status = "disabled"; | 127 | device_type = "pci"; |
128 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; | ||
129 | reg = <0x0800 0 0 0 0>; | ||
130 | #address-cells = <3>; | ||
131 | #size-cells = <2>; | ||
132 | #interrupt-cells = <1>; | ||
133 | ranges; | ||
134 | interrupt-map-mask = <0 0 0 0>; | ||
135 | interrupt-map = <0 0 0 0 &mpic 58>; | ||
136 | marvell,pcie-port = <0>; | ||
137 | marvell,pcie-lane = <0>; | ||
138 | clocks = <&gateclk 5>; | ||
139 | status = "disabled"; | ||
140 | }; | ||
141 | |||
142 | pcie@2,0 { | ||
143 | device_type = "pci"; | ||
144 | assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; | ||
145 | reg = <0x1000 0 0 0 0>; | ||
146 | #address-cells = <3>; | ||
147 | #size-cells = <2>; | ||
148 | #interrupt-cells = <1>; | ||
149 | ranges; | ||
150 | interrupt-map-mask = <0 0 0 0>; | ||
151 | interrupt-map = <0 0 0 0 &mpic 59>; | ||
152 | marvell,pcie-port = <0>; | ||
153 | marvell,pcie-lane = <1>; | ||
154 | clocks = <&gateclk 6>; | ||
155 | status = "disabled"; | ||
156 | }; | ||
157 | |||
158 | pcie@3,0 { | ||
159 | device_type = "pci"; | ||
160 | assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; | ||
161 | reg = <0x1800 0 0 0 0>; | ||
162 | #address-cells = <3>; | ||
163 | #size-cells = <2>; | ||
164 | #interrupt-cells = <1>; | ||
165 | ranges; | ||
166 | interrupt-map-mask = <0 0 0 0>; | ||
167 | interrupt-map = <0 0 0 0 &mpic 60>; | ||
168 | marvell,pcie-port = <0>; | ||
169 | marvell,pcie-lane = <2>; | ||
170 | clocks = <&gateclk 7>; | ||
171 | status = "disabled"; | ||
172 | }; | ||
173 | |||
174 | pcie@4,0 { | ||
175 | device_type = "pci"; | ||
176 | assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; | ||
177 | reg = <0x2000 0 0 0 0>; | ||
178 | #address-cells = <3>; | ||
179 | #size-cells = <2>; | ||
180 | #interrupt-cells = <1>; | ||
181 | ranges; | ||
182 | interrupt-map-mask = <0 0 0 0>; | ||
183 | interrupt-map = <0 0 0 0 &mpic 61>; | ||
184 | marvell,pcie-port = <0>; | ||
185 | marvell,pcie-lane = <3>; | ||
186 | clocks = <&gateclk 8>; | ||
187 | status = "disabled"; | ||
188 | }; | ||
189 | |||
190 | pcie@9,0 { | ||
191 | device_type = "pci"; | ||
192 | assigned-addresses = <0x82000800 0 0x42000 0 0x2000>; | ||
193 | reg = <0x4800 0 0 0 0>; | ||
194 | #address-cells = <3>; | ||
195 | #size-cells = <2>; | ||
196 | #interrupt-cells = <1>; | ||
197 | ranges; | ||
198 | interrupt-map-mask = <0 0 0 0>; | ||
199 | interrupt-map = <0 0 0 0 &mpic 99>; | ||
200 | marvell,pcie-port = <2>; | ||
201 | marvell,pcie-lane = <0>; | ||
202 | clocks = <&gateclk 26>; | ||
203 | status = "disabled"; | ||
204 | }; | ||
205 | |||
206 | pcie@10,0 { | ||
207 | device_type = "pci"; | ||
208 | assigned-addresses = <0x82000800 0 0x82000 0 0x2000>; | ||
209 | reg = <0x5000 0 0 0 0>; | ||
210 | #address-cells = <3>; | ||
211 | #size-cells = <2>; | ||
212 | #interrupt-cells = <1>; | ||
213 | ranges; | ||
214 | interrupt-map-mask = <0 0 0 0>; | ||
215 | interrupt-map = <0 0 0 0 &mpic 103>; | ||
216 | marvell,pcie-port = <3>; | ||
217 | marvell,pcie-lane = <0>; | ||
218 | clocks = <&gateclk 27>; | ||
219 | status = "disabled"; | ||
220 | }; | ||
219 | }; | 221 | }; |
220 | }; | 222 | }; |
221 | }; | 223 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-mv78460.dtsi b/arch/arm/boot/dts/armada-xp-mv78460.dtsi index 23a5ac4490a8..6ab56bd35de9 100644 --- a/arch/arm/boot/dts/armada-xp-mv78460.dtsi +++ b/arch/arm/boot/dts/armada-xp-mv78460.dtsi | |||
@@ -27,277 +27,279 @@ | |||
27 | 27 | ||
28 | 28 | ||
29 | cpus { | 29 | cpus { |
30 | #address-cells = <1>; | 30 | #address-cells = <1>; |
31 | #size-cells = <0>; | 31 | #size-cells = <0>; |
32 | 32 | ||
33 | cpu@0 { | 33 | cpu@0 { |
34 | device_type = "cpu"; | 34 | device_type = "cpu"; |
35 | compatible = "marvell,sheeva-v7"; | 35 | compatible = "marvell,sheeva-v7"; |
36 | reg = <0>; | 36 | reg = <0>; |
37 | clocks = <&cpuclk 0>; | 37 | clocks = <&cpuclk 0>; |
38 | }; | 38 | }; |
39 | 39 | ||
40 | cpu@1 { | 40 | cpu@1 { |
41 | device_type = "cpu"; | 41 | device_type = "cpu"; |
42 | compatible = "marvell,sheeva-v7"; | 42 | compatible = "marvell,sheeva-v7"; |
43 | reg = <1>; | 43 | reg = <1>; |
44 | clocks = <&cpuclk 1>; | 44 | clocks = <&cpuclk 1>; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | cpu@2 { | 47 | cpu@2 { |
48 | device_type = "cpu"; | 48 | device_type = "cpu"; |
49 | compatible = "marvell,sheeva-v7"; | 49 | compatible = "marvell,sheeva-v7"; |
50 | reg = <2>; | 50 | reg = <2>; |
51 | clocks = <&cpuclk 2>; | 51 | clocks = <&cpuclk 2>; |
52 | }; | 52 | }; |
53 | 53 | ||
54 | cpu@3 { | 54 | cpu@3 { |
55 | device_type = "cpu"; | 55 | device_type = "cpu"; |
56 | compatible = "marvell,sheeva-v7"; | 56 | compatible = "marvell,sheeva-v7"; |
57 | reg = <3>; | 57 | reg = <3>; |
58 | clocks = <&cpuclk 3>; | 58 | clocks = <&cpuclk 3>; |
59 | }; | 59 | }; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | soc { | 62 | soc { |
63 | pinctrl { | 63 | internal-regs { |
64 | compatible = "marvell,mv78460-pinctrl"; | 64 | pinctrl { |
65 | reg = <0xd0018000 0x38>; | 65 | compatible = "marvell,mv78460-pinctrl"; |
66 | reg = <0x18000 0x38>; | ||
66 | 67 | ||
67 | sdio_pins: sdio-pins { | 68 | sdio_pins: sdio-pins { |
68 | marvell,pins = "mpp30", "mpp31", "mpp32", | 69 | marvell,pins = "mpp30", "mpp31", "mpp32", |
69 | "mpp33", "mpp34", "mpp35"; | 70 | "mpp33", "mpp34", "mpp35"; |
70 | marvell,function = "sd0"; | 71 | marvell,function = "sd0"; |
72 | }; | ||
71 | }; | 73 | }; |
72 | }; | ||
73 | 74 | ||
74 | gpio0: gpio@d0018100 { | 75 | gpio0: gpio@18100 { |
75 | compatible = "marvell,orion-gpio"; | 76 | compatible = "marvell,orion-gpio"; |
76 | reg = <0xd0018100 0x40>; | 77 | reg = <0x18100 0x40>; |
77 | ngpios = <32>; | 78 | ngpios = <32>; |
78 | gpio-controller; | 79 | gpio-controller; |
79 | #gpio-cells = <2>; | 80 | #gpio-cells = <2>; |
80 | interrupt-controller; | 81 | interrupt-controller; |
81 | #interrupts-cells = <2>; | 82 | #interrupts-cells = <2>; |
82 | interrupts = <82>, <83>, <84>, <85>; | 83 | interrupts = <82>, <83>, <84>, <85>; |
83 | }; | 84 | }; |
84 | 85 | ||
85 | gpio1: gpio@d0018140 { | 86 | gpio1: gpio@18140 { |
86 | compatible = "marvell,orion-gpio"; | 87 | compatible = "marvell,orion-gpio"; |
87 | reg = <0xd0018140 0x40>; | 88 | reg = <0x18140 0x40>; |
88 | ngpios = <32>; | 89 | ngpios = <32>; |
89 | gpio-controller; | 90 | gpio-controller; |
90 | #gpio-cells = <2>; | 91 | #gpio-cells = <2>; |
91 | interrupt-controller; | 92 | interrupt-controller; |
92 | #interrupts-cells = <2>; | 93 | #interrupts-cells = <2>; |
93 | interrupts = <87>, <88>, <89>, <90>; | 94 | interrupts = <87>, <88>, <89>, <90>; |
94 | }; | 95 | }; |
95 | 96 | ||
96 | gpio2: gpio@d0018180 { | 97 | gpio2: gpio@18180 { |
97 | compatible = "marvell,orion-gpio"; | 98 | compatible = "marvell,orion-gpio"; |
98 | reg = <0xd0018180 0x40>; | 99 | reg = <0x18180 0x40>; |
99 | ngpios = <3>; | 100 | ngpios = <3>; |
100 | gpio-controller; | 101 | gpio-controller; |
101 | #gpio-cells = <2>; | 102 | #gpio-cells = <2>; |
102 | interrupt-controller; | 103 | interrupt-controller; |
103 | #interrupts-cells = <2>; | 104 | #interrupts-cells = <2>; |
104 | interrupts = <91>; | 105 | interrupts = <91>; |
105 | }; | 106 | }; |
106 | 107 | ||
107 | ethernet@d0034000 { | 108 | ethernet@34000 { |
108 | compatible = "marvell,armada-370-neta"; | 109 | compatible = "marvell,armada-370-neta"; |
109 | reg = <0xd0034000 0x2500>; | 110 | reg = <0x34000 0x2500>; |
110 | interrupts = <14>; | 111 | interrupts = <14>; |
111 | clocks = <&gateclk 1>; | 112 | clocks = <&gateclk 1>; |
112 | status = "disabled"; | 113 | status = "disabled"; |
113 | }; | 114 | }; |
114 | 115 | ||
115 | /* | 116 | /* |
116 | * MV78460 has 4 PCIe units Gen2.0: Two units can be | 117 | * MV78460 has 4 PCIe units Gen2.0: Two units can be |
117 | * configured as x4 or quad x1 lanes. Two units are | 118 | * configured as x4 or quad x1 lanes. Two units are |
118 | * x4/x1. | 119 | * x4/x1. |
119 | */ | 120 | */ |
120 | pcie-controller { | 121 | pcie-controller { |
121 | compatible = "marvell,armada-xp-pcie"; | 122 | compatible = "marvell,armada-xp-pcie"; |
122 | status = "disabled"; | 123 | status = "disabled"; |
123 | device_type = "pci"; | 124 | device_type = "pci"; |
124 | 125 | ||
125 | #address-cells = <3>; | 126 | #address-cells = <3>; |
126 | #size-cells = <2>; | 127 | #size-cells = <2>; |
127 | 128 | ||
128 | bus-range = <0x00 0xff>; | 129 | bus-range = <0x00 0xff>; |
129 | 130 | ||
130 | ranges = <0x82000000 0 0xd0040000 0xd0040000 0 0x00002000 /* Port 0.0 registers */ | 131 | ranges = <0x82000000 0 0x40000 0x40000 0 0x00002000 /* Port 0.0 registers */ |
131 | 0x82000000 0 0xd0042000 0xd0042000 0 0x00002000 /* Port 2.0 registers */ | 132 | 0x82000000 0 0x42000 0x42000 0 0x00002000 /* Port 2.0 registers */ |
132 | 0x82000000 0 0xd0044000 0xd0044000 0 0x00002000 /* Port 0.1 registers */ | 133 | 0x82000000 0 0x44000 0x44000 0 0x00002000 /* Port 0.1 registers */ |
133 | 0x82000000 0 0xd0048000 0xd0048000 0 0x00002000 /* Port 0.2 registers */ | 134 | 0x82000000 0 0x48000 0x48000 0 0x00002000 /* Port 0.2 registers */ |
134 | 0x82000000 0 0xd004c000 0xd004c000 0 0x00002000 /* Port 0.3 registers */ | 135 | 0x82000000 0 0x4c000 0x4c000 0 0x00002000 /* Port 0.3 registers */ |
135 | 0x82000000 0 0xd0080000 0xd0080000 0 0x00002000 /* Port 1.0 registers */ | 136 | 0x82000000 0 0x80000 0x80000 0 0x00002000 /* Port 1.0 registers */ |
136 | 0x82000000 0 0xd0082000 0xd0082000 0 0x00002000 /* Port 3.0 registers */ | 137 | 0x82000000 0 0x82000 0x82000 0 0x00002000 /* Port 3.0 registers */ |
137 | 0x82000000 0 0xd0084000 0xd0084000 0 0x00002000 /* Port 1.1 registers */ | 138 | 0x82000000 0 0x84000 0x84000 0 0x00002000 /* Port 1.1 registers */ |
138 | 0x82000000 0 0xd0088000 0xd0088000 0 0x00002000 /* Port 1.2 registers */ | 139 | 0x82000000 0 0x88000 0x88000 0 0x00002000 /* Port 1.2 registers */ |
139 | 0x82000000 0 0xd008c000 0xd008c000 0 0x00002000 /* Port 1.3 registers */ | 140 | 0x82000000 0 0x8c000 0x8c000 0 0x00002000 /* Port 1.3 registers */ |
140 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ | 141 | 0x82000000 0 0xe0000000 0xe0000000 0 0x08000000 /* non-prefetchable memory */ |
141 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ | 142 | 0x81000000 0 0 0xe8000000 0 0x00100000>; /* downstream I/O */ |
142 | 143 | ||
143 | pcie@1,0 { | 144 | pcie@1,0 { |
144 | device_type = "pci"; | 145 | device_type = "pci"; |
145 | assigned-addresses = <0x82000800 0 0xd0040000 0 0x2000>; | 146 | assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; |
146 | reg = <0x0800 0 0 0 0>; | 147 | reg = <0x0800 0 0 0 0>; |
147 | #address-cells = <3>; | 148 | #address-cells = <3>; |
148 | #size-cells = <2>; | 149 | #size-cells = <2>; |
149 | #interrupt-cells = <1>; | 150 | #interrupt-cells = <1>; |
150 | ranges; | 151 | ranges; |
151 | interrupt-map-mask = <0 0 0 0>; | 152 | interrupt-map-mask = <0 0 0 0>; |
152 | interrupt-map = <0 0 0 0 &mpic 58>; | 153 | interrupt-map = <0 0 0 0 &mpic 58>; |
153 | marvell,pcie-port = <0>; | 154 | marvell,pcie-port = <0>; |
154 | marvell,pcie-lane = <0>; | 155 | marvell,pcie-lane = <0>; |
155 | clocks = <&gateclk 5>; | 156 | clocks = <&gateclk 5>; |
156 | status = "disabled"; | 157 | status = "disabled"; |
157 | }; | 158 | }; |
158 | 159 | ||
159 | pcie@2,0 { | 160 | pcie@2,0 { |
160 | device_type = "pci"; | 161 | device_type = "pci"; |
161 | assigned-addresses = <0x82001000 0 0xd0044000 0 0x2000>; | 162 | assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; |
162 | reg = <0x1000 0 0 0 0>; | 163 | reg = <0x1000 0 0 0 0>; |
163 | #address-cells = <3>; | 164 | #address-cells = <3>; |
164 | #size-cells = <2>; | 165 | #size-cells = <2>; |
165 | #interrupt-cells = <1>; | 166 | #interrupt-cells = <1>; |
166 | ranges; | 167 | ranges; |
167 | interrupt-map-mask = <0 0 0 0>; | 168 | interrupt-map-mask = <0 0 0 0>; |
168 | interrupt-map = <0 0 0 0 &mpic 59>; | 169 | interrupt-map = <0 0 0 0 &mpic 59>; |
169 | marvell,pcie-port = <0>; | 170 | marvell,pcie-port = <0>; |
170 | marvell,pcie-lane = <1>; | 171 | marvell,pcie-lane = <1>; |
171 | clocks = <&gateclk 6>; | 172 | clocks = <&gateclk 6>; |
172 | status = "disabled"; | 173 | status = "disabled"; |
173 | }; | 174 | }; |
174 | 175 | ||
175 | pcie@3,0 { | 176 | pcie@3,0 { |
176 | device_type = "pci"; | 177 | device_type = "pci"; |
177 | assigned-addresses = <0x82001800 0 0xd0048000 0 0x2000>; | 178 | assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; |
178 | reg = <0x1800 0 0 0 0>; | 179 | reg = <0x1800 0 0 0 0>; |
179 | #address-cells = <3>; | 180 | #address-cells = <3>; |
180 | #size-cells = <2>; | 181 | #size-cells = <2>; |
181 | #interrupt-cells = <1>; | 182 | #interrupt-cells = <1>; |
182 | ranges; | 183 | ranges; |
183 | interrupt-map-mask = <0 0 0 0>; | 184 | interrupt-map-mask = <0 0 0 0>; |
184 | interrupt-map = <0 0 0 0 &mpic 60>; | 185 | interrupt-map = <0 0 0 0 &mpic 60>; |
185 | marvell,pcie-port = <0>; | 186 | marvell,pcie-port = <0>; |
186 | marvell,pcie-lane = <2>; | 187 | marvell,pcie-lane = <2>; |
187 | clocks = <&gateclk 7>; | 188 | clocks = <&gateclk 7>; |
188 | status = "disabled"; | 189 | status = "disabled"; |
189 | }; | 190 | }; |
190 | 191 | ||
191 | pcie@4,0 { | 192 | pcie@4,0 { |
192 | device_type = "pci"; | 193 | device_type = "pci"; |
193 | assigned-addresses = <0x82002000 0 0xd004c000 0 0x2000>; | 194 | assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; |
194 | reg = <0x2000 0 0 0 0>; | 195 | reg = <0x2000 0 0 0 0>; |
195 | #address-cells = <3>; | 196 | #address-cells = <3>; |
196 | #size-cells = <2>; | 197 | #size-cells = <2>; |
197 | #interrupt-cells = <1>; | 198 | #interrupt-cells = <1>; |
198 | ranges; | 199 | ranges; |
199 | interrupt-map-mask = <0 0 0 0>; | 200 | interrupt-map-mask = <0 0 0 0>; |
200 | interrupt-map = <0 0 0 0 &mpic 61>; | 201 | interrupt-map = <0 0 0 0 &mpic 61>; |
201 | marvell,pcie-port = <0>; | 202 | marvell,pcie-port = <0>; |
202 | marvell,pcie-lane = <3>; | 203 | marvell,pcie-lane = <3>; |
203 | clocks = <&gateclk 8>; | 204 | clocks = <&gateclk 8>; |
204 | status = "disabled"; | 205 | status = "disabled"; |
205 | }; | 206 | }; |
206 | 207 | ||
207 | pcie@5,0 { | 208 | pcie@5,0 { |
208 | device_type = "pci"; | 209 | device_type = "pci"; |
209 | assigned-addresses = <0x82002800 0 0xd0080000 0 0x2000>; | 210 | assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; |
210 | reg = <0x2800 0 0 0 0>; | 211 | reg = <0x2800 0 0 0 0>; |
211 | #address-cells = <3>; | 212 | #address-cells = <3>; |
212 | #size-cells = <2>; | 213 | #size-cells = <2>; |
213 | #interrupt-cells = <1>; | 214 | #interrupt-cells = <1>; |
214 | ranges; | 215 | ranges; |
215 | interrupt-map-mask = <0 0 0 0>; | 216 | interrupt-map-mask = <0 0 0 0>; |
216 | interrupt-map = <0 0 0 0 &mpic 62>; | 217 | interrupt-map = <0 0 0 0 &mpic 62>; |
217 | marvell,pcie-port = <1>; | 218 | marvell,pcie-port = <1>; |
218 | marvell,pcie-lane = <0>; | 219 | marvell,pcie-lane = <0>; |
219 | clocks = <&gateclk 9>; | 220 | clocks = <&gateclk 9>; |
220 | status = "disabled"; | 221 | status = "disabled"; |
221 | }; | 222 | }; |
222 | 223 | ||
223 | pcie@6,0 { | 224 | pcie@6,0 { |
224 | device_type = "pci"; | 225 | device_type = "pci"; |
225 | assigned-addresses = <0x82003000 0 0xd0084000 0 0x2000>; | 226 | assigned-addresses = <0x82003000 0 0x84000 0 0x2000>; |
226 | reg = <0x3000 0 0 0 0>; | 227 | reg = <0x3000 0 0 0 0>; |
227 | #address-cells = <3>; | 228 | #address-cells = <3>; |
228 | #size-cells = <2>; | 229 | #size-cells = <2>; |
229 | #interrupt-cells = <1>; | 230 | #interrupt-cells = <1>; |
230 | ranges; | 231 | ranges; |
231 | interrupt-map-mask = <0 0 0 0>; | 232 | interrupt-map-mask = <0 0 0 0>; |
232 | interrupt-map = <0 0 0 0 &mpic 63>; | 233 | interrupt-map = <0 0 0 0 &mpic 63>; |
233 | marvell,pcie-port = <1>; | 234 | marvell,pcie-port = <1>; |
234 | marvell,pcie-lane = <1>; | 235 | marvell,pcie-lane = <1>; |
235 | clocks = <&gateclk 10>; | 236 | clocks = <&gateclk 10>; |
236 | status = "disabled"; | 237 | status = "disabled"; |
237 | }; | 238 | }; |
238 | 239 | ||
239 | pcie@7,0 { | 240 | pcie@7,0 { |
240 | device_type = "pci"; | 241 | device_type = "pci"; |
241 | assigned-addresses = <0x82003800 0 0xd0088000 0 0x2000>; | 242 | assigned-addresses = <0x82003800 0 0x88000 0 0x2000>; |
242 | reg = <0x3800 0 0 0 0>; | 243 | reg = <0x3800 0 0 0 0>; |
243 | #address-cells = <3>; | 244 | #address-cells = <3>; |
244 | #size-cells = <2>; | 245 | #size-cells = <2>; |
245 | #interrupt-cells = <1>; | 246 | #interrupt-cells = <1>; |
246 | ranges; | 247 | ranges; |
247 | interrupt-map-mask = <0 0 0 0>; | 248 | interrupt-map-mask = <0 0 0 0>; |
248 | interrupt-map = <0 0 0 0 &mpic 64>; | 249 | interrupt-map = <0 0 0 0 &mpic 64>; |
249 | marvell,pcie-port = <1>; | 250 | marvell,pcie-port = <1>; |
250 | marvell,pcie-lane = <2>; | 251 | marvell,pcie-lane = <2>; |
251 | clocks = <&gateclk 11>; | 252 | clocks = <&gateclk 11>; |
252 | status = "disabled"; | 253 | status = "disabled"; |
253 | }; | 254 | }; |
254 | 255 | ||
255 | pcie@8,0 { | 256 | pcie@8,0 { |
256 | device_type = "pci"; | 257 | device_type = "pci"; |
257 | assigned-addresses = <0x82004000 0 0xd008c000 0 0x2000>; | 258 | assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>; |
258 | reg = <0x4000 0 0 0 0>; | 259 | reg = <0x4000 0 0 0 0>; |
259 | #address-cells = <3>; | 260 | #address-cells = <3>; |
260 | #size-cells = <2>; | 261 | #size-cells = <2>; |
261 | #interrupt-cells = <1>; | 262 | #interrupt-cells = <1>; |
262 | ranges; | 263 | ranges; |
263 | interrupt-map-mask = <0 0 0 0>; | 264 | interrupt-map-mask = <0 0 0 0>; |
264 | interrupt-map = <0 0 0 0 &mpic 65>; | 265 | interrupt-map = <0 0 0 0 &mpic 65>; |
265 | marvell,pcie-port = <1>; | 266 | marvell,pcie-port = <1>; |
266 | marvell,pcie-lane = <3>; | 267 | marvell,pcie-lane = <3>; |
267 | clocks = <&gateclk 12>; | 268 | clocks = <&gateclk 12>; |
268 | status = "disabled"; | 269 | status = "disabled"; |
269 | }; | 270 | }; |
270 | pcie@9,0 { | 271 | pcie@9,0 { |
271 | device_type = "pci"; | 272 | device_type = "pci"; |
272 | assigned-addresses = <0x82004800 0 0xd0042000 0 0x2000>; | 273 | assigned-addresses = <0x82004800 0 0x42000 0 0x2000>; |
273 | reg = <0x4800 0 0 0 0>; | 274 | reg = <0x4800 0 0 0 0>; |
274 | #address-cells = <3>; | 275 | #address-cells = <3>; |
275 | #size-cells = <2>; | 276 | #size-cells = <2>; |
276 | #interrupt-cells = <1>; | 277 | #interrupt-cells = <1>; |
277 | ranges; | 278 | ranges; |
278 | interrupt-map-mask = <0 0 0 0>; | 279 | interrupt-map-mask = <0 0 0 0>; |
279 | interrupt-map = <0 0 0 0 &mpic 99>; | 280 | interrupt-map = <0 0 0 0 &mpic 99>; |
280 | marvell,pcie-port = <2>; | 281 | marvell,pcie-port = <2>; |
281 | marvell,pcie-lane = <0>; | 282 | marvell,pcie-lane = <0>; |
282 | clocks = <&gateclk 26>; | 283 | clocks = <&gateclk 26>; |
283 | status = "disabled"; | 284 | status = "disabled"; |
284 | }; | 285 | }; |
285 | 286 | ||
286 | pcie@10,0 { | 287 | pcie@10,0 { |
287 | device_type = "pci"; | 288 | device_type = "pci"; |
288 | assigned-addresses = <0x82005000 0 0xd0082000 0 0x2000>; | 289 | assigned-addresses = <0x82005000 0 0x82000 0 0x2000>; |
289 | reg = <0x5000 0 0 0 0>; | 290 | reg = <0x5000 0 0 0 0>; |
290 | #address-cells = <3>; | 291 | #address-cells = <3>; |
291 | #size-cells = <2>; | 292 | #size-cells = <2>; |
292 | #interrupt-cells = <1>; | 293 | #interrupt-cells = <1>; |
293 | ranges; | 294 | ranges; |
294 | interrupt-map-mask = <0 0 0 0>; | 295 | interrupt-map-mask = <0 0 0 0>; |
295 | interrupt-map = <0 0 0 0 &mpic 103>; | 296 | interrupt-map = <0 0 0 0 &mpic 103>; |
296 | marvell,pcie-port = <3>; | 297 | marvell,pcie-port = <3>; |
297 | marvell,pcie-lane = <0>; | 298 | marvell,pcie-lane = <0>; |
298 | clocks = <&gateclk 27>; | 299 | clocks = <&gateclk 27>; |
299 | status = "disabled"; | 300 | status = "disabled"; |
301 | }; | ||
300 | }; | 302 | }; |
301 | }; | 303 | }; |
302 | }; | 304 | }; |
303 | }; | 305 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts index 9d04f04d4e39..f14d36c46159 100644 --- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts +++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | |||
@@ -23,158 +23,160 @@ | |||
23 | 23 | ||
24 | memory { | 24 | memory { |
25 | device_type = "memory"; | 25 | device_type = "memory"; |
26 | reg = <0x00000000 0xC0000000>; /* 3 GB */ | 26 | reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */ |
27 | }; | 27 | }; |
28 | 28 | ||
29 | soc { | 29 | soc { |
30 | serial@d0012000 { | 30 | internal-regs { |
31 | clock-frequency = <250000000>; | 31 | serial@12000 { |
32 | status = "okay"; | 32 | clock-frequency = <250000000>; |
33 | }; | 33 | status = "okay"; |
34 | serial@d0012100 { | ||
35 | clock-frequency = <250000000>; | ||
36 | status = "okay"; | ||
37 | }; | ||
38 | pinctrl { | ||
39 | led_pins: led-pins-0 { | ||
40 | marvell,pins = "mpp49", "mpp51", "mpp53"; | ||
41 | marvell,function = "gpio"; | ||
42 | }; | 34 | }; |
43 | }; | 35 | serial@12100 { |
44 | leds { | 36 | clock-frequency = <250000000>; |
45 | compatible = "gpio-leds"; | 37 | status = "okay"; |
46 | pinctrl-names = "default"; | ||
47 | pinctrl-0 = <&led_pins>; | ||
48 | |||
49 | red_led { | ||
50 | label = "red_led"; | ||
51 | gpios = <&gpio1 17 1>; | ||
52 | default-state = "off"; | ||
53 | }; | 38 | }; |
54 | 39 | pinctrl { | |
55 | yellow_led { | 40 | led_pins: led-pins-0 { |
56 | label = "yellow_led"; | 41 | marvell,pins = "mpp49", "mpp51", "mpp53"; |
57 | gpios = <&gpio1 19 1>; | 42 | marvell,function = "gpio"; |
58 | default-state = "off"; | 43 | }; |
59 | }; | 44 | }; |
60 | 45 | leds { | |
61 | green_led { | 46 | compatible = "gpio-leds"; |
62 | label = "green_led"; | 47 | pinctrl-names = "default"; |
63 | gpios = <&gpio1 21 1>; | 48 | pinctrl-0 = <&led_pins>; |
64 | default-state = "off"; | 49 | |
65 | linux,default-trigger = "heartbeat"; | 50 | red_led { |
51 | label = "red_led"; | ||
52 | gpios = <&gpio1 17 1>; | ||
53 | default-state = "off"; | ||
54 | }; | ||
55 | |||
56 | yellow_led { | ||
57 | label = "yellow_led"; | ||
58 | gpios = <&gpio1 19 1>; | ||
59 | default-state = "off"; | ||
60 | }; | ||
61 | |||
62 | green_led { | ||
63 | label = "green_led"; | ||
64 | gpios = <&gpio1 21 1>; | ||
65 | default-state = "off"; | ||
66 | linux,default-trigger = "heartbeat"; | ||
67 | }; | ||
66 | }; | 68 | }; |
67 | }; | ||
68 | 69 | ||
69 | gpio_keys { | 70 | gpio_keys { |
70 | compatible = "gpio-keys"; | 71 | compatible = "gpio-keys"; |
71 | #address-cells = <1>; | 72 | #address-cells = <1>; |
72 | #size-cells = <0>; | 73 | #size-cells = <0>; |
73 | 74 | ||
74 | button@1 { | 75 | button@1 { |
75 | label = "Init Button"; | 76 | label = "Init Button"; |
76 | linux,code = <116>; | 77 | linux,code = <116>; |
77 | gpios = <&gpio1 28 0>; | 78 | gpios = <&gpio1 28 0>; |
79 | }; | ||
78 | }; | 80 | }; |
79 | }; | ||
80 | 81 | ||
81 | mdio { | 82 | mdio { |
82 | phy0: ethernet-phy@0 { | 83 | phy0: ethernet-phy@0 { |
83 | reg = <0>; | 84 | reg = <0>; |
84 | }; | 85 | }; |
85 | 86 | ||
86 | phy1: ethernet-phy@1 { | 87 | phy1: ethernet-phy@1 { |
87 | reg = <1>; | 88 | reg = <1>; |
88 | }; | 89 | }; |
89 | 90 | ||
90 | phy2: ethernet-phy@2 { | 91 | phy2: ethernet-phy@2 { |
91 | reg = <2>; | 92 | reg = <2>; |
92 | }; | 93 | }; |
93 | 94 | ||
94 | phy3: ethernet-phy@3 { | 95 | phy3: ethernet-phy@3 { |
95 | reg = <3>; | 96 | reg = <3>; |
97 | }; | ||
96 | }; | 98 | }; |
97 | }; | ||
98 | 99 | ||
99 | ethernet@d0070000 { | 100 | ethernet@70000 { |
100 | status = "okay"; | 101 | status = "okay"; |
101 | phy = <&phy0>; | 102 | phy = <&phy0>; |
102 | phy-mode = "sgmii"; | 103 | phy-mode = "sgmii"; |
103 | }; | 104 | }; |
104 | ethernet@d0074000 { | 105 | ethernet@74000 { |
105 | status = "okay"; | 106 | status = "okay"; |
106 | phy = <&phy1>; | 107 | phy = <&phy1>; |
107 | phy-mode = "sgmii"; | 108 | phy-mode = "sgmii"; |
108 | }; | 109 | }; |
109 | ethernet@d0030000 { | 110 | ethernet@30000 { |
110 | status = "okay"; | 111 | status = "okay"; |
111 | phy = <&phy2>; | 112 | phy = <&phy2>; |
112 | phy-mode = "sgmii"; | 113 | phy-mode = "sgmii"; |
113 | }; | 114 | }; |
114 | ethernet@d0034000 { | 115 | ethernet@34000 { |
115 | status = "okay"; | 116 | status = "okay"; |
116 | phy = <&phy3>; | 117 | phy = <&phy3>; |
117 | phy-mode = "sgmii"; | 118 | phy-mode = "sgmii"; |
118 | }; | 119 | }; |
119 | i2c@d0011000 { | 120 | i2c@11000 { |
120 | status = "okay"; | 121 | status = "okay"; |
121 | clock-frequency = <400000>; | 122 | clock-frequency = <400000>; |
122 | }; | 123 | }; |
123 | i2c@d0011100 { | 124 | i2c@11100 { |
124 | status = "okay"; | 125 | status = "okay"; |
125 | clock-frequency = <400000>; | 126 | clock-frequency = <400000>; |
126 | 127 | ||
127 | s35390a: s35390a@30 { | 128 | s35390a: s35390a@30 { |
128 | compatible = "s35390a"; | 129 | compatible = "s35390a"; |
129 | reg = <0x30>; | 130 | reg = <0x30>; |
131 | }; | ||
132 | }; | ||
133 | sata@a0000 { | ||
134 | nr-ports = <2>; | ||
135 | status = "okay"; | ||
136 | }; | ||
137 | usb@50000 { | ||
138 | status = "okay"; | ||
139 | }; | ||
140 | usb@51000 { | ||
141 | status = "okay"; | ||
130 | }; | 142 | }; |
131 | }; | ||
132 | sata@d00a0000 { | ||
133 | nr-ports = <2>; | ||
134 | status = "okay"; | ||
135 | }; | ||
136 | usb@d0050000 { | ||
137 | status = "okay"; | ||
138 | }; | ||
139 | usb@d0051000 { | ||
140 | status = "okay"; | ||
141 | }; | ||
142 | 143 | ||
143 | devbus-bootcs@d0010400 { | 144 | devbus-bootcs@10400 { |
144 | status = "okay"; | 145 | status = "okay"; |
145 | ranges = <0 0xf0000000 0x8000000>; /* @addr 0xf000000, size 0x8000000 */ | 146 | ranges = <0 0xf0000000 0x8000000>; /* @addr 0xf000000, size 0x8000000 */ |
146 | 147 | ||
147 | /* Device Bus parameters are required */ | 148 | /* Device Bus parameters are required */ |
148 | 149 | ||
149 | /* Read parameters */ | 150 | /* Read parameters */ |
150 | devbus,bus-width = <8>; | 151 | devbus,bus-width = <8>; |
151 | devbus,turn-off-ps = <60000>; | 152 | devbus,turn-off-ps = <60000>; |
152 | devbus,badr-skew-ps = <0>; | 153 | devbus,badr-skew-ps = <0>; |
153 | devbus,acc-first-ps = <124000>; | 154 | devbus,acc-first-ps = <124000>; |
154 | devbus,acc-next-ps = <248000>; | 155 | devbus,acc-next-ps = <248000>; |
155 | devbus,rd-setup-ps = <0>; | 156 | devbus,rd-setup-ps = <0>; |
156 | devbus,rd-hold-ps = <0>; | 157 | devbus,rd-hold-ps = <0>; |
157 | 158 | ||
158 | /* Write parameters */ | 159 | /* Write parameters */ |
159 | devbus,sync-enable = <0>; | 160 | devbus,sync-enable = <0>; |
160 | devbus,wr-high-ps = <60000>; | 161 | devbus,wr-high-ps = <60000>; |
161 | devbus,wr-low-ps = <60000>; | 162 | devbus,wr-low-ps = <60000>; |
162 | devbus,ale-wr-ps = <60000>; | 163 | devbus,ale-wr-ps = <60000>; |
163 | 164 | ||
164 | /* NOR 128 MiB */ | 165 | /* NOR 128 MiB */ |
165 | nor@0 { | 166 | nor@0 { |
166 | compatible = "cfi-flash"; | 167 | compatible = "cfi-flash"; |
167 | reg = <0 0x8000000>; | 168 | reg = <0 0x8000000>; |
168 | bank-width = <2>; | 169 | bank-width = <2>; |
170 | }; | ||
169 | }; | 171 | }; |
170 | }; | ||
171 | 172 | ||
172 | pcie-controller { | 173 | pcie-controller { |
173 | status = "okay"; | ||
174 | /* Internal mini-PCIe connector */ | ||
175 | pcie@1,0 { | ||
176 | /* Port 0, Lane 0 */ | ||
177 | status = "okay"; | 174 | status = "okay"; |
175 | /* Internal mini-PCIe connector */ | ||
176 | pcie@1,0 { | ||
177 | /* Port 0, Lane 0 */ | ||
178 | status = "okay"; | ||
179 | }; | ||
178 | }; | 180 | }; |
179 | }; | 181 | }; |
180 | }; | 182 | }; |
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 29dfeb6d4a26..bacab11c10dc 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi | |||
@@ -22,140 +22,140 @@ | |||
22 | model = "Marvell Armada XP family SoC"; | 22 | model = "Marvell Armada XP family SoC"; |
23 | compatible = "marvell,armadaxp", "marvell,armada-370-xp"; | 23 | compatible = "marvell,armadaxp", "marvell,armada-370-xp"; |
24 | 24 | ||
25 | L2: l2-cache { | 25 | soc { |
26 | compatible = "marvell,aurora-system-cache"; | 26 | internal-regs { |
27 | reg = <0xd0008000 0x1000>; | 27 | L2: l2-cache { |
28 | cache-id-part = <0x100>; | 28 | compatible = "marvell,aurora-system-cache"; |
29 | wt-override; | 29 | reg = <0x08000 0x1000>; |
30 | }; | 30 | cache-id-part = <0x100>; |
31 | wt-override; | ||
32 | }; | ||
31 | 33 | ||
32 | mpic: interrupt-controller@d0020000 { | 34 | mpic: interrupt-controller@20000 { |
33 | reg = <0xd0020a00 0x2d0>, | 35 | reg = <0x20a00 0x2d0>, <0x21070 0x58>; |
34 | <0xd0021070 0x58>; | 36 | }; |
35 | }; | ||
36 | 37 | ||
37 | armada-370-xp-pmsu@d0022000 { | 38 | armada-370-xp-pmsu@22000 { |
38 | compatible = "marvell,armada-370-xp-pmsu"; | 39 | compatible = "marvell,armada-370-xp-pmsu"; |
39 | reg = <0xd0022100 0x430>, | 40 | reg = <0x22100 0x430>, <0x20800 0x20>; |
40 | <0xd0020800 0x20>; | 41 | }; |
41 | }; | ||
42 | 42 | ||
43 | soc { | 43 | serial@12200 { |
44 | serial@d0012200 { | ||
45 | compatible = "snps,dw-apb-uart"; | 44 | compatible = "snps,dw-apb-uart"; |
46 | reg = <0xd0012200 0x100>; | 45 | reg = <0x12200 0x100>; |
47 | reg-shift = <2>; | 46 | reg-shift = <2>; |
48 | interrupts = <43>; | 47 | interrupts = <43>; |
49 | reg-io-width = <1>; | 48 | reg-io-width = <1>; |
50 | status = "disabled"; | 49 | status = "disabled"; |
51 | }; | 50 | }; |
52 | serial@d0012300 { | 51 | serial@12300 { |
53 | compatible = "snps,dw-apb-uart"; | 52 | compatible = "snps,dw-apb-uart"; |
54 | reg = <0xd0012300 0x100>; | 53 | reg = <0x12300 0x100>; |
55 | reg-shift = <2>; | 54 | reg-shift = <2>; |
56 | interrupts = <44>; | 55 | interrupts = <44>; |
57 | reg-io-width = <1>; | 56 | reg-io-width = <1>; |
58 | status = "disabled"; | 57 | status = "disabled"; |
59 | }; | 58 | }; |
60 | 59 | ||
61 | timer@d0020300 { | 60 | timer@20300 { |
62 | marvell,timer-25Mhz; | 61 | marvell,timer-25Mhz; |
63 | }; | 62 | }; |
64 | 63 | ||
65 | coreclk: mvebu-sar@d0018230 { | 64 | coreclk: mvebu-sar@18230 { |
66 | compatible = "marvell,armada-xp-core-clock"; | 65 | compatible = "marvell,armada-xp-core-clock"; |
67 | reg = <0xd0018230 0x08>; | 66 | reg = <0x18230 0x08>; |
68 | #clock-cells = <1>; | 67 | #clock-cells = <1>; |
69 | }; | 68 | }; |
70 | 69 | ||
71 | cpuclk: clock-complex@d0018700 { | 70 | cpuclk: clock-complex@18700 { |
72 | #clock-cells = <1>; | 71 | #clock-cells = <1>; |
73 | compatible = "marvell,armada-xp-cpu-clock"; | 72 | compatible = "marvell,armada-xp-cpu-clock"; |
74 | reg = <0xd0018700 0xA0>; | 73 | reg = <0x18700 0xA0>; |
75 | clocks = <&coreclk 1>; | 74 | clocks = <&coreclk 1>; |
76 | }; | 75 | }; |
77 | 76 | ||
78 | gateclk: clock-gating-control@d0018220 { | 77 | gateclk: clock-gating-control@18220 { |
79 | compatible = "marvell,armada-xp-gating-clock"; | 78 | compatible = "marvell,armada-xp-gating-clock"; |
80 | reg = <0xd0018220 0x4>; | 79 | reg = <0x18220 0x4>; |
81 | clocks = <&coreclk 0>; | 80 | clocks = <&coreclk 0>; |
82 | #clock-cells = <1>; | 81 | #clock-cells = <1>; |
83 | }; | 82 | }; |
84 | 83 | ||
85 | system-controller@d0018200 { | 84 | system-controller@18200 { |
86 | compatible = "marvell,armada-370-xp-system-controller"; | 85 | compatible = "marvell,armada-370-xp-system-controller"; |
87 | reg = <0xd0018200 0x500>; | 86 | reg = <0x18200 0x500>; |
88 | }; | 87 | }; |
89 | 88 | ||
90 | ethernet@d0030000 { | 89 | ethernet@30000 { |
91 | compatible = "marvell,armada-370-neta"; | 90 | compatible = "marvell,armada-370-neta"; |
92 | reg = <0xd0030000 0x2500>; | 91 | reg = <0x30000 0x2500>; |
93 | interrupts = <12>; | 92 | interrupts = <12>; |
94 | clocks = <&gateclk 2>; | 93 | clocks = <&gateclk 2>; |
95 | status = "disabled"; | 94 | status = "disabled"; |
96 | }; | ||
97 | |||
98 | xor@d0060900 { | ||
99 | compatible = "marvell,orion-xor"; | ||
100 | reg = <0xd0060900 0x100 | ||
101 | 0xd0060b00 0x100>; | ||
102 | clocks = <&gateclk 22>; | ||
103 | status = "okay"; | ||
104 | |||
105 | xor10 { | ||
106 | interrupts = <51>; | ||
107 | dmacap,memcpy; | ||
108 | dmacap,xor; | ||
109 | }; | ||
110 | xor11 { | ||
111 | interrupts = <52>; | ||
112 | dmacap,memcpy; | ||
113 | dmacap,xor; | ||
114 | dmacap,memset; | ||
115 | }; | 95 | }; |
116 | }; | ||
117 | 96 | ||
118 | xor@d00f0900 { | 97 | xor@60900 { |
119 | compatible = "marvell,orion-xor"; | 98 | compatible = "marvell,orion-xor"; |
120 | reg = <0xd00F0900 0x100 | 99 | reg = <0x60900 0x100 |
121 | 0xd00F0B00 0x100>; | 100 | 0x60b00 0x100>; |
122 | clocks = <&gateclk 28>; | 101 | clocks = <&gateclk 22>; |
123 | status = "okay"; | 102 | status = "okay"; |
124 | 103 | ||
125 | xor00 { | 104 | xor10 { |
126 | interrupts = <94>; | 105 | interrupts = <51>; |
127 | dmacap,memcpy; | 106 | dmacap,memcpy; |
128 | dmacap,xor; | 107 | dmacap,xor; |
108 | }; | ||
109 | xor11 { | ||
110 | interrupts = <52>; | ||
111 | dmacap,memcpy; | ||
112 | dmacap,xor; | ||
113 | dmacap,memset; | ||
114 | }; | ||
129 | }; | 115 | }; |
130 | xor01 { | 116 | |
131 | interrupts = <95>; | 117 | xor@f0900 { |
132 | dmacap,memcpy; | 118 | compatible = "marvell,orion-xor"; |
133 | dmacap,xor; | 119 | reg = <0xF0900 0x100 |
134 | dmacap,memset; | 120 | 0xF0B00 0x100>; |
121 | clocks = <&gateclk 28>; | ||
122 | status = "okay"; | ||
123 | |||
124 | xor00 { | ||
125 | interrupts = <94>; | ||
126 | dmacap,memcpy; | ||
127 | dmacap,xor; | ||
128 | }; | ||
129 | xor01 { | ||
130 | interrupts = <95>; | ||
131 | dmacap,memcpy; | ||
132 | dmacap,xor; | ||
133 | dmacap,memset; | ||
134 | }; | ||
135 | }; | 135 | }; |
136 | }; | ||
137 | 136 | ||
138 | usb@d0050000 { | 137 | usb@50000 { |
139 | clocks = <&gateclk 18>; | 138 | clocks = <&gateclk 18>; |
140 | }; | 139 | }; |
141 | 140 | ||
142 | usb@d0051000 { | 141 | usb@51000 { |
143 | clocks = <&gateclk 19>; | 142 | clocks = <&gateclk 19>; |
144 | }; | 143 | }; |
145 | 144 | ||
146 | usb@d0052000 { | 145 | usb@52000 { |
147 | compatible = "marvell,orion-ehci"; | 146 | compatible = "marvell,orion-ehci"; |
148 | reg = <0xd0052000 0x500>; | 147 | reg = <0x52000 0x500>; |
149 | interrupts = <47>; | 148 | interrupts = <47>; |
150 | clocks = <&gateclk 20>; | 149 | clocks = <&gateclk 20>; |
151 | status = "disabled"; | 150 | status = "disabled"; |
152 | }; | 151 | }; |
153 | 152 | ||
154 | thermal@d00182b0 { | 153 | thermal@182b0 { |
155 | compatible = "marvell,armadaxp-thermal"; | 154 | compatible = "marvell,armadaxp-thermal"; |
156 | reg = <0xd00182b0 0x4 | 155 | reg = <0x182b0 0x4 |
157 | 0xd00184d0 0x4>; | 156 | 0x184d0 0x4>; |
158 | status = "okay"; | 157 | status = "okay"; |
158 | }; | ||
159 | }; | 159 | }; |
160 | }; | 160 | }; |
161 | }; | 161 | }; |
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi index 62eceb4f0d3f..0a61bbb9102f 100644 --- a/arch/arm/boot/dts/cros5250-common.dtsi +++ b/arch/arm/boot/dts/cros5250-common.dtsi | |||
@@ -19,11 +19,19 @@ | |||
19 | chosen { | 19 | chosen { |
20 | }; | 20 | }; |
21 | 21 | ||
22 | pinctrl@11400000 { | ||
23 | /* | ||
24 | * Disabled pullups since external part has its own pullups and | ||
25 | * double-pulling gets us out of spec in some cases. | ||
26 | */ | ||
27 | i2c2_bus: i2c2-bus { | ||
28 | samsung,pin-pud = <0>; | ||
29 | }; | ||
30 | }; | ||
31 | |||
22 | i2c@12C60000 { | 32 | i2c@12C60000 { |
23 | samsung,i2c-sda-delay = <100>; | 33 | samsung,i2c-sda-delay = <100>; |
24 | samsung,i2c-max-bus-freq = <378000>; | 34 | samsung,i2c-max-bus-freq = <378000>; |
25 | gpios = <&gpb3 0 2 3 0>, | ||
26 | <&gpb3 1 2 3 0>; | ||
27 | 35 | ||
28 | max77686@09 { | 36 | max77686@09 { |
29 | compatible = "maxim,max77686"; | 37 | compatible = "maxim,max77686"; |
@@ -167,21 +175,12 @@ | |||
167 | i2c@12C70000 { | 175 | i2c@12C70000 { |
168 | samsung,i2c-sda-delay = <100>; | 176 | samsung,i2c-sda-delay = <100>; |
169 | samsung,i2c-max-bus-freq = <378000>; | 177 | samsung,i2c-max-bus-freq = <378000>; |
170 | gpios = <&gpb3 2 2 3 0>, | ||
171 | <&gpb3 3 2 3 0>; | ||
172 | }; | 178 | }; |
173 | 179 | ||
174 | i2c@12C80000 { | 180 | i2c@12C80000 { |
175 | samsung,i2c-sda-delay = <100>; | 181 | samsung,i2c-sda-delay = <100>; |
176 | samsung,i2c-max-bus-freq = <66000>; | 182 | samsung,i2c-max-bus-freq = <66000>; |
177 | 183 | ||
178 | /* | ||
179 | * Disabled pullups since external part has its own pullups and | ||
180 | * double-pulling gets us out of spec in some cases. | ||
181 | */ | ||
182 | gpios = <&gpa0 6 3 0 0>, | ||
183 | <&gpa0 7 3 0 0>; | ||
184 | |||
185 | hdmiddc@50 { | 184 | hdmiddc@50 { |
186 | compatible = "samsung,exynos5-hdmiddc"; | 185 | compatible = "samsung,exynos5-hdmiddc"; |
187 | reg = <0x50>; | 186 | reg = <0x50>; |
@@ -191,19 +190,16 @@ | |||
191 | i2c@12C90000 { | 190 | i2c@12C90000 { |
192 | samsung,i2c-sda-delay = <100>; | 191 | samsung,i2c-sda-delay = <100>; |
193 | samsung,i2c-max-bus-freq = <66000>; | 192 | samsung,i2c-max-bus-freq = <66000>; |
194 | gpios = <&gpa1 2 3 3 0>, | ||
195 | <&gpa1 3 3 3 0>; | ||
196 | }; | 193 | }; |
197 | 194 | ||
198 | i2c@12CA0000 { | 195 | i2c@12CA0000 { |
199 | status = "disabled"; | 196 | samsung,i2c-sda-delay = <100>; |
197 | samsung,i2c-max-bus-freq = <66000>; | ||
200 | }; | 198 | }; |
201 | 199 | ||
202 | i2c@12CB0000 { | 200 | i2c@12CB0000 { |
203 | samsung,i2c-sda-delay = <100>; | 201 | samsung,i2c-sda-delay = <100>; |
204 | samsung,i2c-max-bus-freq = <66000>; | 202 | samsung,i2c-max-bus-freq = <66000>; |
205 | gpios = <&gpa2 2 3 3 0>, | ||
206 | <&gpa2 3 3 3 0>; | ||
207 | }; | 203 | }; |
208 | 204 | ||
209 | i2c@12CC0000 { | 205 | i2c@12CC0000 { |
@@ -213,8 +209,6 @@ | |||
213 | i2c@12CD0000 { | 209 | i2c@12CD0000 { |
214 | samsung,i2c-sda-delay = <100>; | 210 | samsung,i2c-sda-delay = <100>; |
215 | samsung,i2c-max-bus-freq = <66000>; | 211 | samsung,i2c-max-bus-freq = <66000>; |
216 | gpios = <&gpb2 2 3 3 0>, | ||
217 | <&gpb2 3 3 3 0>; | ||
218 | }; | 212 | }; |
219 | 213 | ||
220 | i2c@12CE0000 { | 214 | i2c@12CE0000 { |
@@ -236,15 +230,12 @@ | |||
236 | samsung,dw-mshc-ciu-div = <3>; | 230 | samsung,dw-mshc-ciu-div = <3>; |
237 | samsung,dw-mshc-sdr-timing = <2 3>; | 231 | samsung,dw-mshc-sdr-timing = <2 3>; |
238 | samsung,dw-mshc-ddr-timing = <1 2>; | 232 | samsung,dw-mshc-ddr-timing = <1 2>; |
233 | pinctrl-names = "default"; | ||
234 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>; | ||
239 | 235 | ||
240 | slot@0 { | 236 | slot@0 { |
241 | reg = <0>; | 237 | reg = <0>; |
242 | bus-width = <8>; | 238 | bus-width = <8>; |
243 | gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>, | ||
244 | <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>, | ||
245 | <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>, | ||
246 | <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>, | ||
247 | <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>; | ||
248 | }; | 239 | }; |
249 | }; | 240 | }; |
250 | 241 | ||
@@ -260,15 +251,13 @@ | |||
260 | samsung,dw-mshc-ciu-div = <3>; | 251 | samsung,dw-mshc-ciu-div = <3>; |
261 | samsung,dw-mshc-sdr-timing = <2 3>; | 252 | samsung,dw-mshc-sdr-timing = <2 3>; |
262 | samsung,dw-mshc-ddr-timing = <1 2>; | 253 | samsung,dw-mshc-ddr-timing = <1 2>; |
254 | pinctrl-names = "default"; | ||
255 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | ||
263 | 256 | ||
264 | slot@0 { | 257 | slot@0 { |
265 | reg = <0>; | 258 | reg = <0>; |
266 | bus-width = <4>; | 259 | bus-width = <4>; |
267 | samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>; | 260 | wp-gpios = <&gpc2 1 0>; |
268 | wp-gpios = <&gpc2 1 0 0 3>; | ||
269 | gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>, | ||
270 | <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>, | ||
271 | <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>; | ||
272 | }; | 261 | }; |
273 | }; | 262 | }; |
274 | 263 | ||
@@ -281,11 +270,11 @@ | |||
281 | samsung,dw-mshc-ciu-div = <3>; | 270 | samsung,dw-mshc-ciu-div = <3>; |
282 | samsung,dw-mshc-sdr-timing = <2 3>; | 271 | samsung,dw-mshc-sdr-timing = <2 3>; |
283 | samsung,dw-mshc-ddr-timing = <1 2>; | 272 | samsung,dw-mshc-ddr-timing = <1 2>; |
273 | /* See board-specific dts files for pin setup */ | ||
284 | 274 | ||
285 | slot@0 { | 275 | slot@0 { |
286 | reg = <0>; | 276 | reg = <0>; |
287 | bus-width = <4>; | 277 | bus-width = <4>; |
288 | /* See board-specific dts files for GPIOs */ | ||
289 | }; | 278 | }; |
290 | }; | 279 | }; |
291 | 280 | ||
@@ -294,9 +283,6 @@ | |||
294 | }; | 283 | }; |
295 | 284 | ||
296 | spi_1: spi@12d30000 { | 285 | spi_1: spi@12d30000 { |
297 | gpios = <&gpa2 4 2 3 0>, | ||
298 | <&gpa2 6 2 3 0>, | ||
299 | <&gpa2 7 2 3 0>; | ||
300 | samsung,spi-src-clk = <0>; | 286 | samsung,spi-src-clk = <0>; |
301 | num-cs = <1>; | 287 | num-cs = <1>; |
302 | }; | 288 | }; |
@@ -306,7 +292,7 @@ | |||
306 | }; | 292 | }; |
307 | 293 | ||
308 | hdmi { | 294 | hdmi { |
309 | hpd-gpio = <&gpx3 7 0xf 1 3>; | 295 | hpd-gpio = <&gpx3 7 0>; |
310 | }; | 296 | }; |
311 | 297 | ||
312 | gpio-keys { | 298 | gpio-keys { |
@@ -314,7 +300,7 @@ | |||
314 | 300 | ||
315 | power { | 301 | power { |
316 | label = "Power"; | 302 | label = "Power"; |
317 | gpios = <&gpx1 3 0 0x10000 0>; | 303 | gpios = <&gpx1 3 1>; |
318 | linux,code = <116>; /* KEY_POWER */ | 304 | linux,code = <116>; /* KEY_POWER */ |
319 | gpio-key,wakeup; | 305 | gpio-key,wakeup; |
320 | }; | 306 | }; |
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts index c5834a6c5bf4..c914357c0d89 100644 --- a/arch/arm/boot/dts/da850-evm.dts +++ b/arch/arm/boot/dts/da850-evm.dts | |||
@@ -50,6 +50,46 @@ | |||
50 | pinctrl-names = "default"; | 50 | pinctrl-names = "default"; |
51 | pinctrl-0 = <&mmc0_pins>; | 51 | pinctrl-0 = <&mmc0_pins>; |
52 | }; | 52 | }; |
53 | spi1: spi@1f0e000 { | ||
54 | status = "okay"; | ||
55 | pinctrl-names = "default"; | ||
56 | pinctrl-0 = <&spi1_pins &spi1_cs0_pin>; | ||
57 | flash: m25p80@0 { | ||
58 | #address-cells = <1>; | ||
59 | #size-cells = <1>; | ||
60 | compatible = "m25p64"; | ||
61 | spi-max-frequency = <30000000>; | ||
62 | reg = <0>; | ||
63 | partition@0 { | ||
64 | label = "U-Boot-SPL"; | ||
65 | reg = <0x00000000 0x00010000>; | ||
66 | read-only; | ||
67 | }; | ||
68 | partition@1 { | ||
69 | label = "U-Boot"; | ||
70 | reg = <0x00010000 0x00080000>; | ||
71 | read-only; | ||
72 | }; | ||
73 | partition@2 { | ||
74 | label = "U-Boot-Env"; | ||
75 | reg = <0x00090000 0x00010000>; | ||
76 | read-only; | ||
77 | }; | ||
78 | partition@3 { | ||
79 | label = "Kernel"; | ||
80 | reg = <0x000a0000 0x00280000>; | ||
81 | }; | ||
82 | partition@4 { | ||
83 | label = "Filesystem"; | ||
84 | reg = <0x00320000 0x00400000>; | ||
85 | }; | ||
86 | partition@5 { | ||
87 | label = "MAC-Address"; | ||
88 | reg = <0x007f0000 0x00010000>; | ||
89 | read-only; | ||
90 | }; | ||
91 | }; | ||
92 | }; | ||
53 | }; | 93 | }; |
54 | nand_cs3@62000000 { | 94 | nand_cs3@62000000 { |
55 | status = "okay"; | 95 | status = "okay"; |
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index 3ade343f13cc..2c88313d2c7a 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi | |||
@@ -71,6 +71,60 @@ | |||
71 | 0x28 0x00222222 0x00ffffff | 71 | 0x28 0x00222222 0x00ffffff |
72 | >; | 72 | >; |
73 | }; | 73 | }; |
74 | ehrpwm0a_pins: pinmux_ehrpwm0a_pins { | ||
75 | pinctrl-single,bits = < | ||
76 | /* EPWM0A */ | ||
77 | 0xc 0x00000002 0x0000000f | ||
78 | >; | ||
79 | }; | ||
80 | ehrpwm0b_pins: pinmux_ehrpwm0b_pins { | ||
81 | pinctrl-single,bits = < | ||
82 | /* EPWM0B */ | ||
83 | 0xc 0x00000020 0x000000f0 | ||
84 | >; | ||
85 | }; | ||
86 | ehrpwm1a_pins: pinmux_ehrpwm1a_pins { | ||
87 | pinctrl-single,bits = < | ||
88 | /* EPWM1A */ | ||
89 | 0x14 0x00000002 0x0000000f | ||
90 | >; | ||
91 | }; | ||
92 | ehrpwm1b_pins: pinmux_ehrpwm1b_pins { | ||
93 | pinctrl-single,bits = < | ||
94 | /* EPWM1B */ | ||
95 | 0x14 0x00000020 0x000000f0 | ||
96 | >; | ||
97 | }; | ||
98 | ecap0_pins: pinmux_ecap0_pins { | ||
99 | pinctrl-single,bits = < | ||
100 | /* ECAP0_APWM0 */ | ||
101 | 0x8 0x20000000 0xf0000000 | ||
102 | >; | ||
103 | }; | ||
104 | ecap1_pins: pinmux_ecap1_pins { | ||
105 | pinctrl-single,bits = < | ||
106 | /* ECAP1_APWM1 */ | ||
107 | 0x4 0x40000000 0xf0000000 | ||
108 | >; | ||
109 | }; | ||
110 | ecap2_pins: pinmux_ecap2_pins { | ||
111 | pinctrl-single,bits = < | ||
112 | /* ECAP2_APWM2 */ | ||
113 | 0x4 0x00000004 0x0000000f | ||
114 | >; | ||
115 | }; | ||
116 | spi1_pins: pinmux_spi_pins { | ||
117 | pinctrl-single,bits = < | ||
118 | /* SIMO, SOMI, CLK */ | ||
119 | 0x14 0x00110100 0x00ff0f00 | ||
120 | >; | ||
121 | }; | ||
122 | spi1_cs0_pin: pinmux_spi1_cs0 { | ||
123 | pinctrl-single,bits = < | ||
124 | /* CS0 */ | ||
125 | 0x14 0x00000010 0x000000f0 | ||
126 | >; | ||
127 | }; | ||
74 | }; | 128 | }; |
75 | serial0: serial@1c42000 { | 129 | serial0: serial@1c42000 { |
76 | compatible = "ns16550a"; | 130 | compatible = "ns16550a"; |
@@ -122,6 +176,46 @@ | |||
122 | interrupts = <16>; | 176 | interrupts = <16>; |
123 | status = "disabled"; | 177 | status = "disabled"; |
124 | }; | 178 | }; |
179 | ehrpwm0: ehrpwm@01f00000 { | ||
180 | compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; | ||
181 | #pwm-cells = <3>; | ||
182 | reg = <0x300000 0x2000>; | ||
183 | status = "disabled"; | ||
184 | }; | ||
185 | ehrpwm1: ehrpwm@01f02000 { | ||
186 | compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; | ||
187 | #pwm-cells = <3>; | ||
188 | reg = <0x302000 0x2000>; | ||
189 | status = "disabled"; | ||
190 | }; | ||
191 | ecap0: ecap@01f06000 { | ||
192 | compatible = "ti,da850-ecap", "ti,am33xx-ecap"; | ||
193 | #pwm-cells = <3>; | ||
194 | reg = <0x306000 0x80>; | ||
195 | status = "disabled"; | ||
196 | }; | ||
197 | ecap1: ecap@01f07000 { | ||
198 | compatible = "ti,da850-ecap", "ti,am33xx-ecap"; | ||
199 | #pwm-cells = <3>; | ||
200 | reg = <0x307000 0x80>; | ||
201 | status = "disabled"; | ||
202 | }; | ||
203 | ecap2: ecap@01f08000 { | ||
204 | compatible = "ti,da850-ecap", "ti,am33xx-ecap"; | ||
205 | #pwm-cells = <3>; | ||
206 | reg = <0x308000 0x80>; | ||
207 | status = "disabled"; | ||
208 | }; | ||
209 | spi1: spi@1f0e000 { | ||
210 | #address-cells = <1>; | ||
211 | #size-cells = <0>; | ||
212 | compatible = "ti,da830-spi"; | ||
213 | reg = <0x30e000 0x1000>; | ||
214 | num-cs = <4>; | ||
215 | ti,davinci-spi-intr-line = <1>; | ||
216 | interrupts = <56>; | ||
217 | status = "disabled"; | ||
218 | }; | ||
125 | }; | 219 | }; |
126 | nand_cs3@62000000 { | 220 | nand_cs3@62000000 { |
127 | compatible = "ti,davinci-nand"; | 221 | compatible = "ti,davinci-nand"; |
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index 9ac47d51c407..7cfbbd3b7732 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi | |||
@@ -38,6 +38,11 @@ | |||
38 | i2c7 = &i2c_7; | 38 | i2c7 = &i2c_7; |
39 | }; | 39 | }; |
40 | 40 | ||
41 | chipid@10000000 { | ||
42 | compatible = "samsung,exynos4210-chipid"; | ||
43 | reg = <0x10000000 0x100>; | ||
44 | }; | ||
45 | |||
41 | pd_mfc: mfc-power-domain@10023C40 { | 46 | pd_mfc: mfc-power-domain@10023C40 { |
42 | compatible = "samsung,exynos4210-pd"; | 47 | compatible = "samsung,exynos4210-pd"; |
43 | reg = <0x10023C40 0x20>; | 48 | reg = <0x10023C40 0x20>; |
@@ -82,6 +87,11 @@ | |||
82 | reg = <0x10440000 0x1000>; | 87 | reg = <0x10440000 0x1000>; |
83 | }; | 88 | }; |
84 | 89 | ||
90 | sys_reg: sysreg { | ||
91 | compatible = "samsung,exynos4-sysreg", "syscon"; | ||
92 | reg = <0x10010000 0x400>; | ||
93 | }; | ||
94 | |||
85 | watchdog@10060000 { | 95 | watchdog@10060000 { |
86 | compatible = "samsung,s3c2410-wdt"; | 96 | compatible = "samsung,s3c2410-wdt"; |
87 | reg = <0x10060000 0x100>; | 97 | reg = <0x10060000 0x100>; |
@@ -197,6 +207,8 @@ | |||
197 | interrupts = <0 58 0>; | 207 | interrupts = <0 58 0>; |
198 | clocks = <&clock 317>; | 208 | clocks = <&clock 317>; |
199 | clock-names = "i2c"; | 209 | clock-names = "i2c"; |
210 | pinctrl-names = "default"; | ||
211 | pinctrl-0 = <&i2c0_bus>; | ||
200 | status = "disabled"; | 212 | status = "disabled"; |
201 | }; | 213 | }; |
202 | 214 | ||
@@ -208,6 +220,8 @@ | |||
208 | interrupts = <0 59 0>; | 220 | interrupts = <0 59 0>; |
209 | clocks = <&clock 318>; | 221 | clocks = <&clock 318>; |
210 | clock-names = "i2c"; | 222 | clock-names = "i2c"; |
223 | pinctrl-names = "default"; | ||
224 | pinctrl-0 = <&i2c1_bus>; | ||
211 | status = "disabled"; | 225 | status = "disabled"; |
212 | }; | 226 | }; |
213 | 227 | ||
@@ -287,6 +301,8 @@ | |||
287 | #size-cells = <0>; | 301 | #size-cells = <0>; |
288 | clocks = <&clock 327>, <&clock 159>; | 302 | clocks = <&clock 327>, <&clock 159>; |
289 | clock-names = "spi", "spi_busclk0"; | 303 | clock-names = "spi", "spi_busclk0"; |
304 | pinctrl-names = "default"; | ||
305 | pinctrl-0 = <&spi0_bus>; | ||
290 | status = "disabled"; | 306 | status = "disabled"; |
291 | }; | 307 | }; |
292 | 308 | ||
@@ -300,6 +316,8 @@ | |||
300 | #size-cells = <0>; | 316 | #size-cells = <0>; |
301 | clocks = <&clock 328>, <&clock 160>; | 317 | clocks = <&clock 328>, <&clock 160>; |
302 | clock-names = "spi", "spi_busclk0"; | 318 | clock-names = "spi", "spi_busclk0"; |
319 | pinctrl-names = "default"; | ||
320 | pinctrl-0 = <&spi1_bus>; | ||
303 | status = "disabled"; | 321 | status = "disabled"; |
304 | }; | 322 | }; |
305 | 323 | ||
@@ -313,6 +331,8 @@ | |||
313 | #size-cells = <0>; | 331 | #size-cells = <0>; |
314 | clocks = <&clock 329>, <&clock 161>; | 332 | clocks = <&clock 329>, <&clock 161>; |
315 | clock-names = "spi", "spi_busclk0"; | 333 | clock-names = "spi", "spi_busclk0"; |
334 | pinctrl-names = "default"; | ||
335 | pinctrl-0 = <&spi2_bus>; | ||
316 | status = "disabled"; | 336 | status = "disabled"; |
317 | }; | 337 | }; |
318 | 338 | ||
@@ -356,4 +376,16 @@ | |||
356 | #dma-requests = <1>; | 376 | #dma-requests = <1>; |
357 | }; | 377 | }; |
358 | }; | 378 | }; |
379 | |||
380 | fimd: fimd@11c00000 { | ||
381 | compatible = "samsung,exynos4210-fimd"; | ||
382 | interrupt-parent = <&combiner>; | ||
383 | reg = <0x11c00000 0x20000>; | ||
384 | interrupt-names = "fifo", "vsync", "lcd_sys"; | ||
385 | interrupts = <11 0>, <11 1>, <11 2>; | ||
386 | clocks = <&clock 140>, <&clock 283>; | ||
387 | clock-names = "sclk_fimd", "fimd"; | ||
388 | samsung,power-domain = <&pd_lcd0>; | ||
389 | status = "disabled"; | ||
390 | }; | ||
359 | }; | 391 | }; |
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts index 1b30bc8e2654..524b90846df5 100644 --- a/arch/arm/boot/dts/exynos4210-origen.dts +++ b/arch/arm/boot/dts/exynos4210-origen.dts | |||
@@ -57,6 +57,10 @@ | |||
57 | status = "okay"; | 57 | status = "okay"; |
58 | }; | 58 | }; |
59 | 59 | ||
60 | g2d@12800000 { | ||
61 | status = "okay"; | ||
62 | }; | ||
63 | |||
60 | codec@13400000 { | 64 | codec@13400000 { |
61 | samsung,mfc-r = <0x43000000 0x800000>; | 65 | samsung,mfc-r = <0x43000000 0x800000>; |
62 | samsung,mfc-l = <0x51000000 0x800000>; | 66 | samsung,mfc-l = <0x51000000 0x800000>; |
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts index f52c86e2d424..91332b72acf5 100644 --- a/arch/arm/boot/dts/exynos4210-smdkv310.dts +++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts | |||
@@ -30,16 +30,13 @@ | |||
30 | }; | 30 | }; |
31 | 31 | ||
32 | sdhci@12530000 { | 32 | sdhci@12530000 { |
33 | samsung,sdhci-bus-width = <4>; | 33 | bus-width = <4>; |
34 | linux,mmc_cap_4_bit_data; | 34 | pinctrl-names = "default"; |
35 | samsung,sdhci-cd-internal; | 35 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; |
36 | gpio-cd = <&gpk2 2 2 3 3>; | 36 | status = "okay"; |
37 | gpios = <&gpk2 0 2 0 3>, | 37 | }; |
38 | <&gpk2 1 2 0 3>, | 38 | |
39 | <&gpk2 3 2 3 3>, | 39 | g2d@12800000 { |
40 | <&gpk2 4 2 3 3>, | ||
41 | <&gpk2 5 2 3 3>, | ||
42 | <&gpk2 6 2 3 3>; | ||
43 | status = "okay"; | 40 | status = "okay"; |
44 | }; | 41 | }; |
45 | 42 | ||
@@ -65,25 +62,32 @@ | |||
65 | status = "okay"; | 62 | status = "okay"; |
66 | }; | 63 | }; |
67 | 64 | ||
65 | pinctrl@11000000 { | ||
66 | keypad_rows: keypad-rows { | ||
67 | samsung,pins = "gpx2-0", "gpx2-1"; | ||
68 | samsung,pin-function = <3>; | ||
69 | samsung,pin-pud = <3>; | ||
70 | samsung,pin-drv = <0>; | ||
71 | }; | ||
72 | |||
73 | keypad_cols: keypad-cols { | ||
74 | samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3", | ||
75 | "gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7"; | ||
76 | samsung,pin-function = <3>; | ||
77 | samsung,pin-pud = <0>; | ||
78 | samsung,pin-drv = <0>; | ||
79 | }; | ||
80 | }; | ||
81 | |||
68 | keypad@100A0000 { | 82 | keypad@100A0000 { |
69 | samsung,keypad-num-rows = <2>; | 83 | samsung,keypad-num-rows = <2>; |
70 | samsung,keypad-num-columns = <8>; | 84 | samsung,keypad-num-columns = <8>; |
71 | linux,keypad-no-autorepeat; | 85 | linux,keypad-no-autorepeat; |
72 | linux,keypad-wakeup; | 86 | linux,keypad-wakeup; |
87 | pinctrl-names = "default"; | ||
88 | pinctrl-0 = <&keypad_rows &keypad_cols>; | ||
73 | status = "okay"; | 89 | status = "okay"; |
74 | 90 | ||
75 | row-gpios = <&gpx2 0 3 3 0>, | ||
76 | <&gpx2 1 3 3 0>; | ||
77 | |||
78 | col-gpios = <&gpx1 0 3 0 0>, | ||
79 | <&gpx1 1 3 0 0>, | ||
80 | <&gpx1 2 3 0 0>, | ||
81 | <&gpx1 3 3 0 0>, | ||
82 | <&gpx1 4 3 0 0>, | ||
83 | <&gpx1 5 3 0 0>, | ||
84 | <&gpx1 6 3 0 0>, | ||
85 | <&gpx1 7 3 0 0>; | ||
86 | |||
87 | key_1 { | 91 | key_1 { |
88 | keypad,row = <0>; | 92 | keypad,row = <0>; |
89 | keypad,column = <3>; | 93 | keypad,column = <3>; |
@@ -149,9 +153,7 @@ | |||
149 | #address-cells = <1>; | 153 | #address-cells = <1>; |
150 | #size-cells = <0>; | 154 | #size-cells = <0>; |
151 | samsung,i2c-sda-delay = <100>; | 155 | samsung,i2c-sda-delay = <100>; |
152 | samsung,i2c-max-bus-freq = <20000>; | 156 | samsung,i2c-max-bus-freq = <100000>; |
153 | gpios = <&gpd1 0 2 3 0>, | ||
154 | <&gpd1 1 2 3 0>; | ||
155 | status = "okay"; | 157 | status = "okay"; |
156 | 158 | ||
157 | eeprom@50 { | 159 | eeprom@50 { |
@@ -166,9 +168,6 @@ | |||
166 | }; | 168 | }; |
167 | 169 | ||
168 | spi_2: spi@13940000 { | 170 | spi_2: spi@13940000 { |
169 | gpios = <&gpc1 1 5 3 0>, | ||
170 | <&gpc1 3 5 3 0>, | ||
171 | <&gpc1 4 5 3 0>; | ||
172 | status = "okay"; | 171 | status = "okay"; |
173 | 172 | ||
174 | w25x80@0 { | 173 | w25x80@0 { |
@@ -179,7 +178,7 @@ | |||
179 | spi-max-frequency = <1000000>; | 178 | spi-max-frequency = <1000000>; |
180 | 179 | ||
181 | controller-data { | 180 | controller-data { |
182 | cs-gpio = <&gpc1 2 1 0 3>; | 181 | cs-gpio = <&gpc1 2 0>; |
183 | samsung,spi-feedback-delay = <0>; | 182 | samsung,spi-feedback-delay = <0>; |
184 | }; | 183 | }; |
185 | 184 | ||
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi index 15143bdbafb8..66e6b03bf35e 100644 --- a/arch/arm/boot/dts/exynos4210.dtsi +++ b/arch/arm/boot/dts/exynos4210.dtsi | |||
@@ -112,4 +112,11 @@ | |||
112 | reg = <0x100C0000 0x100>; | 112 | reg = <0x100C0000 0x100>; |
113 | interrupts = <2 4>; | 113 | interrupts = <2 4>; |
114 | }; | 114 | }; |
115 | |||
116 | g2d@12800000 { | ||
117 | compatible = "samsung,s5pv210-g2d"; | ||
118 | reg = <0x12800000 0x1000>; | ||
119 | interrupts = <0 89 0>; | ||
120 | status = "disabled"; | ||
121 | }; | ||
115 | }; | 122 | }; |
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts index 1fecf7666dc0..1c21bad32ca9 100644 --- a/arch/arm/boot/dts/exynos4412-origen.dts +++ b/arch/arm/boot/dts/exynos4412-origen.dts | |||
@@ -72,6 +72,27 @@ | |||
72 | status = "okay"; | 72 | status = "okay"; |
73 | }; | 73 | }; |
74 | 74 | ||
75 | fimd@11c00000 { | ||
76 | pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>; | ||
77 | pinctrl-names = "default"; | ||
78 | status = "okay"; | ||
79 | }; | ||
80 | |||
81 | display-timings { | ||
82 | native-mode = <&timing0>; | ||
83 | timing0: timing { | ||
84 | clock-frequency = <50000>; | ||
85 | hactive = <1024>; | ||
86 | vactive = <600>; | ||
87 | hfront-porch = <64>; | ||
88 | hback-porch = <16>; | ||
89 | hsync-len = <48>; | ||
90 | vback-porch = <64>; | ||
91 | vfront-porch = <16>; | ||
92 | vsync-len = <3>; | ||
93 | }; | ||
94 | }; | ||
95 | |||
75 | serial@13800000 { | 96 | serial@13800000 { |
76 | status = "okay"; | 97 | status = "okay"; |
77 | }; | 98 | }; |
diff --git a/arch/arm/boot/dts/exynos4412-smdk4412.dts b/arch/arm/boot/dts/exynos4412-smdk4412.dts index 874beeaef99d..dd564310d4a5 100644 --- a/arch/arm/boot/dts/exynos4412-smdk4412.dts +++ b/arch/arm/boot/dts/exynos4412-smdk4412.dts | |||
@@ -27,6 +27,14 @@ | |||
27 | bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; | 27 | bootargs ="root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC1,115200 init=/linuxrc"; |
28 | }; | 28 | }; |
29 | 29 | ||
30 | g2d@10800000 { | ||
31 | status = "okay"; | ||
32 | }; | ||
33 | |||
34 | g2d@10800000 { | ||
35 | status = "okay"; | ||
36 | }; | ||
37 | |||
30 | sdhci@12530000 { | 38 | sdhci@12530000 { |
31 | bus-width = <4>; | 39 | bus-width = <4>; |
32 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>; | 40 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>; |
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi index d75c047e80a9..7f428272fee6 100644 --- a/arch/arm/boot/dts/exynos4412.dtsi +++ b/arch/arm/boot/dts/exynos4412.dtsi | |||
@@ -51,4 +51,12 @@ | |||
51 | <0x7 0 &gic 1 12 0>; | 51 | <0x7 0 &gic 1 12 0>; |
52 | }; | 52 | }; |
53 | }; | 53 | }; |
54 | |||
55 | mshc@12550000 { | ||
56 | compatible = "samsung,exynos4412-dw-mshc"; | ||
57 | reg = <0x12550000 0x1000>; | ||
58 | interrupts = <0 77 0>; | ||
59 | #address-cells = <1>; | ||
60 | #size-cells = <0>; | ||
61 | }; | ||
54 | }; | 62 | }; |
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi index 7496b8d633ea..e3380a7a285c 100644 --- a/arch/arm/boot/dts/exynos4x12.dtsi +++ b/arch/arm/boot/dts/exynos4x12.dtsi | |||
@@ -72,4 +72,11 @@ | |||
72 | reg = <0x106E0000 0x1000>; | 72 | reg = <0x106E0000 0x1000>; |
73 | interrupts = <0 72 0>; | 73 | interrupts = <0 72 0>; |
74 | }; | 74 | }; |
75 | |||
76 | g2d@10800000 { | ||
77 | compatible = "samsung,exynos4212-g2d"; | ||
78 | reg = <0x10800000 0x1000>; | ||
79 | interrupts = <0 89 0>; | ||
80 | status = "disabled"; | ||
81 | }; | ||
75 | }; | 82 | }; |
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index 5de019cb0e58..02cfc76d002f 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts | |||
@@ -24,8 +24,266 @@ | |||
24 | bootargs = "console=ttySAC2,115200"; | 24 | bootargs = "console=ttySAC2,115200"; |
25 | }; | 25 | }; |
26 | 26 | ||
27 | codec@11000000 { | ||
28 | samsung,mfc-r = <0x43000000 0x800000>; | ||
29 | samsung,mfc-l = <0x51000000 0x800000>; | ||
30 | }; | ||
31 | |||
27 | i2c@12C60000 { | 32 | i2c@12C60000 { |
28 | status = "disabled"; | 33 | samsung,i2c-sda-delay = <100>; |
34 | samsung,i2c-max-bus-freq = <20000>; | ||
35 | samsung,i2c-slave-addr = <0x66>; | ||
36 | |||
37 | s5m8767_pmic@66 { | ||
38 | compatible = "samsung,s5m8767-pmic"; | ||
39 | reg = <0x66>; | ||
40 | |||
41 | s5m8767,pmic-buck2-dvs-voltage = <1300000>; | ||
42 | s5m8767,pmic-buck3-dvs-voltage = <1100000>; | ||
43 | s5m8767,pmic-buck4-dvs-voltage = <1200000>; | ||
44 | s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 0>, | ||
45 | <&gpd1 1 0>, | ||
46 | <&gpd1 2 0>; | ||
47 | s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>, | ||
48 | <&gpx2 4 0>, | ||
49 | <&gpx2 5 0>; | ||
50 | regulators { | ||
51 | ldo1_reg: LDO1 { | ||
52 | regulator-name = "VDD_ALIVE_1.0V"; | ||
53 | regulator-min-microvolt = <1100000>; | ||
54 | regulator-max-microvolt = <1100000>; | ||
55 | regulator-always-on; | ||
56 | regulator-boot-on; | ||
57 | op_mode = <1>; | ||
58 | }; | ||
59 | |||
60 | ldo2_reg: LDO2 { | ||
61 | regulator-name = "VDD_28IO_DP_1.35V"; | ||
62 | regulator-min-microvolt = <1200000>; | ||
63 | regulator-max-microvolt = <1200000>; | ||
64 | regulator-always-on; | ||
65 | regulator-boot-on; | ||
66 | op_mode = <1>; | ||
67 | }; | ||
68 | |||
69 | ldo3_reg: LDO3 { | ||
70 | regulator-name = "VDD_COMMON1_1.8V"; | ||
71 | regulator-min-microvolt = <1800000>; | ||
72 | regulator-max-microvolt = <1800000>; | ||
73 | regulator-always-on; | ||
74 | regulator-boot-on; | ||
75 | op_mode = <1>; | ||
76 | }; | ||
77 | |||
78 | ldo4_reg: LDO4 { | ||
79 | regulator-name = "VDD_IOPERI_1.8V"; | ||
80 | regulator-min-microvolt = <1800000>; | ||
81 | regulator-max-microvolt = <1800000>; | ||
82 | op_mode = <1>; | ||
83 | }; | ||
84 | |||
85 | ldo5_reg: LDO5 { | ||
86 | regulator-name = "VDD_EXT_1.8V"; | ||
87 | regulator-min-microvolt = <1800000>; | ||
88 | regulator-max-microvolt = <1800000>; | ||
89 | regulator-always-on; | ||
90 | regulator-boot-on; | ||
91 | op_mode = <1>; | ||
92 | }; | ||
93 | |||
94 | ldo6_reg: LDO6 { | ||
95 | regulator-name = "VDD_MPLL_1.1V"; | ||
96 | regulator-min-microvolt = <1100000>; | ||
97 | regulator-max-microvolt = <1100000>; | ||
98 | regulator-always-on; | ||
99 | regulator-boot-on; | ||
100 | op_mode = <1>; | ||
101 | }; | ||
102 | |||
103 | ldo7_reg: LDO7 { | ||
104 | regulator-name = "VDD_XPLL_1.1V"; | ||
105 | regulator-min-microvolt = <1100000>; | ||
106 | regulator-max-microvolt = <1100000>; | ||
107 | regulator-always-on; | ||
108 | regulator-boot-on; | ||
109 | op_mode = <1>; | ||
110 | }; | ||
111 | |||
112 | ldo8_reg: LDO8 { | ||
113 | regulator-name = "VDD_COMMON2_1.0V"; | ||
114 | regulator-min-microvolt = <1000000>; | ||
115 | regulator-max-microvolt = <1000000>; | ||
116 | regulator-always-on; | ||
117 | regulator-boot-on; | ||
118 | op_mode = <1>; | ||
119 | }; | ||
120 | |||
121 | ldo9_reg: LDO9 { | ||
122 | regulator-name = "VDD_33ON_3.0V"; | ||
123 | regulator-min-microvolt = <3000000>; | ||
124 | regulator-max-microvolt = <3000000>; | ||
125 | op_mode = <1>; | ||
126 | }; | ||
127 | |||
128 | ldo10_reg: LDO10 { | ||
129 | regulator-name = "VDD_COMMON3_1.8V"; | ||
130 | regulator-min-microvolt = <1800000>; | ||
131 | regulator-max-microvolt = <1800000>; | ||
132 | regulator-always-on; | ||
133 | regulator-boot-on; | ||
134 | op_mode = <1>; | ||
135 | }; | ||
136 | |||
137 | ldo11_reg: LDO11 { | ||
138 | regulator-name = "VDD_ABB2_1.8V"; | ||
139 | regulator-min-microvolt = <1800000>; | ||
140 | regulator-max-microvolt = <1800000>; | ||
141 | regulator-always-on; | ||
142 | regulator-boot-on; | ||
143 | op_mode = <1>; | ||
144 | }; | ||
145 | |||
146 | ldo12_reg: LDO12 { | ||
147 | regulator-name = "VDD_USB_3.0V"; | ||
148 | regulator-min-microvolt = <3000000>; | ||
149 | regulator-max-microvolt = <3000000>; | ||
150 | regulator-always-on; | ||
151 | regulator-boot-on; | ||
152 | op_mode = <1>; | ||
153 | }; | ||
154 | |||
155 | ldo13_reg: LDO13 { | ||
156 | regulator-name = "VDDQ_C2C_W_1.8V"; | ||
157 | regulator-min-microvolt = <1800000>; | ||
158 | regulator-max-microvolt = <1800000>; | ||
159 | regulator-always-on; | ||
160 | regulator-boot-on; | ||
161 | op_mode = <1>; | ||
162 | }; | ||
163 | |||
164 | ldo14_reg: LDO14 { | ||
165 | regulator-name = "VDD18_ABB0_3_1.8V"; | ||
166 | regulator-min-microvolt = <1800000>; | ||
167 | regulator-max-microvolt = <1800000>; | ||
168 | regulator-always-on; | ||
169 | regulator-boot-on; | ||
170 | op_mode = <1>; | ||
171 | }; | ||
172 | |||
173 | ldo15_reg: LDO15 { | ||
174 | regulator-name = "VDD10_COMMON4_1.0V"; | ||
175 | regulator-min-microvolt = <1000000>; | ||
176 | regulator-max-microvolt = <1000000>; | ||
177 | regulator-always-on; | ||
178 | regulator-boot-on; | ||
179 | op_mode = <1>; | ||
180 | }; | ||
181 | |||
182 | ldo16_reg: LDO16 { | ||
183 | regulator-name = "VDD18_HSIC_1.8V"; | ||
184 | regulator-min-microvolt = <1800000>; | ||
185 | regulator-max-microvolt = <1800000>; | ||
186 | regulator-always-on; | ||
187 | regulator-boot-on; | ||
188 | op_mode = <1>; | ||
189 | }; | ||
190 | |||
191 | ldo17_reg: LDO17 { | ||
192 | regulator-name = "VDDQ_MMC2_3_2.8V"; | ||
193 | regulator-min-microvolt = <2800000>; | ||
194 | regulator-max-microvolt = <2800000>; | ||
195 | regulator-always-on; | ||
196 | regulator-boot-on; | ||
197 | op_mode = <1>; | ||
198 | }; | ||
199 | |||
200 | ldo18_reg: LDO18 { | ||
201 | regulator-name = "VDD_33ON_2.8V"; | ||
202 | regulator-min-microvolt = <2800000>; | ||
203 | regulator-max-microvolt = <2800000>; | ||
204 | op_mode = <1>; | ||
205 | }; | ||
206 | |||
207 | ldo22_reg: LDO22 { | ||
208 | regulator-name = "EXT_33_OFF"; | ||
209 | regulator-min-microvolt = <3300000>; | ||
210 | regulator-max-microvolt = <3300000>; | ||
211 | op_mode = <1>; | ||
212 | }; | ||
213 | |||
214 | ldo23_reg: LDO23 { | ||
215 | regulator-name = "EXT_28_OFF"; | ||
216 | regulator-min-microvolt = <2800000>; | ||
217 | regulator-max-microvolt = <2800000>; | ||
218 | op_mode = <1>; | ||
219 | }; | ||
220 | |||
221 | ldo25_reg: LDO25 { | ||
222 | regulator-name = "PVDD_LDO25"; | ||
223 | regulator-min-microvolt = <1200000>; | ||
224 | regulator-max-microvolt = <1200000>; | ||
225 | op_mode = <1>; | ||
226 | }; | ||
227 | |||
228 | ldo26_reg: LDO26 { | ||
229 | regulator-name = "EXT_18_OFF"; | ||
230 | regulator-min-microvolt = <1800000>; | ||
231 | regulator-max-microvolt = <1800000>; | ||
232 | op_mode = <1>; | ||
233 | }; | ||
234 | |||
235 | buck1_reg: BUCK1 { | ||
236 | regulator-name = "vdd_mif"; | ||
237 | regulator-min-microvolt = <950000>; | ||
238 | regulator-max-microvolt = <1200000>; | ||
239 | regulator-always-on; | ||
240 | regulator-boot-on; | ||
241 | op_mode = <1>; | ||
242 | }; | ||
243 | |||
244 | buck2_reg: BUCK2 { | ||
245 | regulator-name = "vdd_arm"; | ||
246 | regulator-min-microvolt = <925000>; | ||
247 | regulator-max-microvolt = <1300000>; | ||
248 | regulator-always-on; | ||
249 | regulator-boot-on; | ||
250 | op_mode = <1>; | ||
251 | }; | ||
252 | |||
253 | buck3_reg: BUCK3 { | ||
254 | regulator-name = "vdd_int"; | ||
255 | regulator-min-microvolt = <900000>; | ||
256 | regulator-max-microvolt = <1200000>; | ||
257 | regulator-always-on; | ||
258 | regulator-boot-on; | ||
259 | op_mode = <1>; | ||
260 | }; | ||
261 | |||
262 | buck4_reg: BUCK4 { | ||
263 | regulator-name = "vdd_g3d"; | ||
264 | regulator-min-microvolt = <1000000>; | ||
265 | regulator-max-microvolt = <1000000>; | ||
266 | regulator-boot-on; | ||
267 | op_mode = <1>; | ||
268 | }; | ||
269 | |||
270 | buck5_reg: BUCK5 { | ||
271 | regulator-name = "VDD_MEM_1.35V"; | ||
272 | regulator-min-microvolt = <750000>; | ||
273 | regulator-max-microvolt = <1355000>; | ||
274 | regulator-always-on; | ||
275 | regulator-boot-on; | ||
276 | op_mode = <1>; | ||
277 | }; | ||
278 | |||
279 | buck9_reg: BUCK9 { | ||
280 | regulator-name = "VDD_33_OFF_EXT1"; | ||
281 | regulator-min-microvolt = <750000>; | ||
282 | regulator-max-microvolt = <3000000>; | ||
283 | op_mode = <1>; | ||
284 | }; | ||
285 | }; | ||
286 | }; | ||
29 | }; | 287 | }; |
30 | 288 | ||
31 | i2c@12C70000 { | 289 | i2c@12C70000 { |
@@ -69,15 +327,13 @@ | |||
69 | samsung,dw-mshc-ciu-div = <3>; | 327 | samsung,dw-mshc-ciu-div = <3>; |
70 | samsung,dw-mshc-sdr-timing = <2 3>; | 328 | samsung,dw-mshc-sdr-timing = <2 3>; |
71 | samsung,dw-mshc-ddr-timing = <1 2>; | 329 | samsung,dw-mshc-ddr-timing = <1 2>; |
330 | vmmc-supply = <&mmc_reg>; | ||
331 | pinctrl-names = "default"; | ||
332 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; | ||
72 | 333 | ||
73 | slot@0 { | 334 | slot@0 { |
74 | reg = <0>; | 335 | reg = <0>; |
75 | bus-width = <8>; | 336 | bus-width = <8>; |
76 | gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>, | ||
77 | <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>, | ||
78 | <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>, | ||
79 | <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>, | ||
80 | <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>; | ||
81 | }; | 337 | }; |
82 | }; | 338 | }; |
83 | 339 | ||
@@ -93,14 +349,14 @@ | |||
93 | samsung,dw-mshc-ciu-div = <3>; | 349 | samsung,dw-mshc-ciu-div = <3>; |
94 | samsung,dw-mshc-sdr-timing = <2 3>; | 350 | samsung,dw-mshc-sdr-timing = <2 3>; |
95 | samsung,dw-mshc-ddr-timing = <1 2>; | 351 | samsung,dw-mshc-ddr-timing = <1 2>; |
352 | vmmc-supply = <&mmc_reg>; | ||
353 | pinctrl-names = "default"; | ||
354 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | ||
96 | 355 | ||
97 | slot@0 { | 356 | slot@0 { |
98 | reg = <0>; | 357 | reg = <0>; |
99 | bus-width = <4>; | 358 | bus-width = <4>; |
100 | samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>; | 359 | disable-wp; |
101 | gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>, | ||
102 | <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>, | ||
103 | <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>; | ||
104 | }; | 360 | }; |
105 | }; | 361 | }; |
106 | 362 | ||
@@ -120,6 +376,73 @@ | |||
120 | status = "disabled"; | 376 | status = "disabled"; |
121 | }; | 377 | }; |
122 | 378 | ||
379 | gpio_keys { | ||
380 | compatible = "gpio-keys"; | ||
381 | |||
382 | menu { | ||
383 | label = "SW-TACT2"; | ||
384 | gpios = <&gpx1 4 1>; | ||
385 | linux,code = <139>; | ||
386 | gpio-key,wakeup; | ||
387 | }; | ||
388 | |||
389 | home { | ||
390 | label = "SW-TACT3"; | ||
391 | gpios = <&gpx1 5 1>; | ||
392 | linux,code = <102>; | ||
393 | gpio-key,wakeup; | ||
394 | }; | ||
395 | |||
396 | up { | ||
397 | label = "SW-TACT4"; | ||
398 | gpios = <&gpx1 6 1>; | ||
399 | linux,code = <103>; | ||
400 | gpio-key,wakeup; | ||
401 | }; | ||
402 | |||
403 | down { | ||
404 | label = "SW-TACT5"; | ||
405 | gpios = <&gpx1 7 1>; | ||
406 | linux,code = <108>; | ||
407 | gpio-key,wakeup; | ||
408 | }; | ||
409 | |||
410 | back { | ||
411 | label = "SW-TACT6"; | ||
412 | gpios = <&gpx2 0 1>; | ||
413 | linux,code = <158>; | ||
414 | gpio-key,wakeup; | ||
415 | }; | ||
416 | |||
417 | wakeup { | ||
418 | label = "SW-TACT7"; | ||
419 | gpios = <&gpx2 1 1>; | ||
420 | linux,code = <143>; | ||
421 | gpio-key,wakeup; | ||
422 | }; | ||
423 | }; | ||
424 | |||
425 | hdmi { | ||
426 | hpd-gpio = <&gpx3 7 2>; | ||
427 | vdd_osc-supply = <&ldo10_reg>; | ||
428 | vdd_pll-supply = <&ldo8_reg>; | ||
429 | vdd-supply = <&ldo8_reg>; | ||
430 | }; | ||
431 | |||
432 | mmc_reg: voltage-regulator { | ||
433 | compatible = "regulator-fixed"; | ||
434 | regulator-name = "VDD_33ON_2.8V"; | ||
435 | regulator-min-microvolt = <2800000>; | ||
436 | regulator-max-microvolt = <2800000>; | ||
437 | gpio = <&gpx1 1 1>; | ||
438 | enable-active-high; | ||
439 | }; | ||
440 | |||
441 | reg_hdmi_en: fixedregulator@0 { | ||
442 | compatible = "regulator-fixed"; | ||
443 | regulator-name = "hdmi-en"; | ||
444 | }; | ||
445 | |||
123 | fixed-rate-clocks { | 446 | fixed-rate-clocks { |
124 | xxti { | 447 | xxti { |
125 | compatible = "samsung,clock-xxti"; | 448 | compatible = "samsung,clock-xxti"; |
diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi new file mode 100644 index 000000000000..d1650fb34c0a --- /dev/null +++ b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi | |||
@@ -0,0 +1,783 @@ | |||
1 | /* | ||
2 | * Samsung's Exynos5250 SoC pin-mux and pin-config device tree source | ||
3 | * | ||
4 | * Copyright (c) 2012 Samsung Electronics Co., Ltd. | ||
5 | * http://www.samsung.com | ||
6 | * | ||
7 | * Samsung's Exynos5250 SoC pin-mux and pin-config optiosn are listed as device | ||
8 | * tree nodes are listed 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 | / { | ||
16 | pinctrl@11400000 { | ||
17 | gpa0: gpa0 { | ||
18 | gpio-controller; | ||
19 | #gpio-cells = <2>; | ||
20 | |||
21 | interrupt-controller; | ||
22 | #interrupt-cells = <2>; | ||
23 | }; | ||
24 | |||
25 | gpa1: gpa1 { | ||
26 | gpio-controller; | ||
27 | #gpio-cells = <2>; | ||
28 | |||
29 | interrupt-controller; | ||
30 | #interrupt-cells = <2>; | ||
31 | }; | ||
32 | |||
33 | gpa2: gpa2 { | ||
34 | gpio-controller; | ||
35 | #gpio-cells = <2>; | ||
36 | |||
37 | interrupt-controller; | ||
38 | #interrupt-cells = <2>; | ||
39 | }; | ||
40 | |||
41 | gpb0: gpb0 { | ||
42 | gpio-controller; | ||
43 | #gpio-cells = <2>; | ||
44 | |||
45 | interrupt-controller; | ||
46 | #interrupt-cells = <2>; | ||
47 | }; | ||
48 | |||
49 | gpb1: gpb1 { | ||
50 | gpio-controller; | ||
51 | #gpio-cells = <2>; | ||
52 | |||
53 | interrupt-controller; | ||
54 | #interrupt-cells = <2>; | ||
55 | }; | ||
56 | |||
57 | gpb2: gpb2 { | ||
58 | gpio-controller; | ||
59 | #gpio-cells = <2>; | ||
60 | |||
61 | interrupt-controller; | ||
62 | #interrupt-cells = <2>; | ||
63 | }; | ||
64 | |||
65 | gpb3: gpb3 { | ||
66 | gpio-controller; | ||
67 | #gpio-cells = <2>; | ||
68 | |||
69 | interrupt-controller; | ||
70 | #interrupt-cells = <2>; | ||
71 | }; | ||
72 | |||
73 | gpc0: gpc0 { | ||
74 | gpio-controller; | ||
75 | #gpio-cells = <2>; | ||
76 | |||
77 | interrupt-controller; | ||
78 | #interrupt-cells = <2>; | ||
79 | }; | ||
80 | |||
81 | gpc1: gpc1 { | ||
82 | gpio-controller; | ||
83 | #gpio-cells = <2>; | ||
84 | |||
85 | interrupt-controller; | ||
86 | #interrupt-cells = <2>; | ||
87 | }; | ||
88 | |||
89 | gpc2: gpc2 { | ||
90 | gpio-controller; | ||
91 | #gpio-cells = <2>; | ||
92 | |||
93 | interrupt-controller; | ||
94 | #interrupt-cells = <2>; | ||
95 | }; | ||
96 | |||
97 | gpc3: gpc3 { | ||
98 | gpio-controller; | ||
99 | #gpio-cells = <2>; | ||
100 | |||
101 | interrupt-controller; | ||
102 | #interrupt-cells = <2>; | ||
103 | }; | ||
104 | |||
105 | gpd0: gpd0 { | ||
106 | gpio-controller; | ||
107 | #gpio-cells = <2>; | ||
108 | |||
109 | interrupt-controller; | ||
110 | #interrupt-cells = <2>; | ||
111 | }; | ||
112 | |||
113 | gpd1: gpd1 { | ||
114 | gpio-controller; | ||
115 | #gpio-cells = <2>; | ||
116 | |||
117 | interrupt-controller; | ||
118 | #interrupt-cells = <2>; | ||
119 | }; | ||
120 | |||
121 | gpy0: gpy0 { | ||
122 | gpio-controller; | ||
123 | #gpio-cells = <2>; | ||
124 | }; | ||
125 | |||
126 | gpy1: gpy1 { | ||
127 | gpio-controller; | ||
128 | #gpio-cells = <2>; | ||
129 | }; | ||
130 | |||
131 | gpy2: gpy2 { | ||
132 | gpio-controller; | ||
133 | #gpio-cells = <2>; | ||
134 | }; | ||
135 | |||
136 | gpy3: gpy3 { | ||
137 | gpio-controller; | ||
138 | #gpio-cells = <2>; | ||
139 | }; | ||
140 | |||
141 | gpy4: gpy4 { | ||
142 | gpio-controller; | ||
143 | #gpio-cells = <2>; | ||
144 | }; | ||
145 | |||
146 | gpy5: gpy5 { | ||
147 | gpio-controller; | ||
148 | #gpio-cells = <2>; | ||
149 | }; | ||
150 | |||
151 | gpy6: gpy6 { | ||
152 | gpio-controller; | ||
153 | #gpio-cells = <2>; | ||
154 | }; | ||
155 | |||
156 | gpc4: gpc4 { | ||
157 | gpio-controller; | ||
158 | #gpio-cells = <2>; | ||
159 | |||
160 | interrupt-controller; | ||
161 | #interrupt-cells = <2>; | ||
162 | }; | ||
163 | |||
164 | gpx0: gpx0 { | ||
165 | gpio-controller; | ||
166 | #gpio-cells = <2>; | ||
167 | |||
168 | interrupt-controller; | ||
169 | interrupt-parent = <&combiner>; | ||
170 | #interrupt-cells = <2>; | ||
171 | interrupts = <23 0>, <24 0>, <25 0>, <25 1>, | ||
172 | <26 0>, <26 1>, <27 0>, <27 1>; | ||
173 | }; | ||
174 | |||
175 | gpx1: gpx1 { | ||
176 | gpio-controller; | ||
177 | #gpio-cells = <2>; | ||
178 | |||
179 | interrupt-controller; | ||
180 | interrupt-parent = <&combiner>; | ||
181 | #interrupt-cells = <2>; | ||
182 | interrupts = <28 0>, <28 1>, <29 0>, <29 1>, | ||
183 | <30 0>, <30 1>, <31 0>, <31 1>; | ||
184 | }; | ||
185 | |||
186 | gpx2: gpx2 { | ||
187 | gpio-controller; | ||
188 | #gpio-cells = <2>; | ||
189 | |||
190 | interrupt-controller; | ||
191 | #interrupt-cells = <2>; | ||
192 | }; | ||
193 | |||
194 | gpx3: gpx3 { | ||
195 | gpio-controller; | ||
196 | #gpio-cells = <2>; | ||
197 | |||
198 | interrupt-controller; | ||
199 | #interrupt-cells = <2>; | ||
200 | }; | ||
201 | |||
202 | uart0_data: uart0-data { | ||
203 | samsung,pins = "gpa0-0", "gpa0-1"; | ||
204 | samsung,pin-function = <2>; | ||
205 | samsung,pin-pud = <0>; | ||
206 | samsung,pin-drv = <0>; | ||
207 | }; | ||
208 | |||
209 | uart0_fctl: uart0-fctl { | ||
210 | samsung,pins = "gpa0-2", "gpa0-3"; | ||
211 | samsung,pin-function = <2>; | ||
212 | samsung,pin-pud = <0>; | ||
213 | samaung,pin-drv = <0>; | ||
214 | }; | ||
215 | |||
216 | i2c2_bus: i2c2-bus { | ||
217 | samsung,pins = "gpa0-6", "gpa0-7"; | ||
218 | samsung,pin-function = <3>; | ||
219 | samsung,pin-pud = <3>; | ||
220 | samaung,pin-drv = <0>; | ||
221 | }; | ||
222 | |||
223 | i2c2_hs_bus: i2c2-hs-bus { | ||
224 | samsung,pins = "gpa0-6", "gpa0-7"; | ||
225 | samsung,pin-function = <4>; | ||
226 | samsung,pin-pud = <3>; | ||
227 | samaung,pin-drv = <0>; | ||
228 | }; | ||
229 | |||
230 | uart2_data: uart2-data { | ||
231 | samsung,pins = "gpa1-0", "gpa1-1"; | ||
232 | samsung,pin-function = <2>; | ||
233 | samsung,pin-pud = <0>; | ||
234 | samsung,pin-drv = <0>; | ||
235 | }; | ||
236 | |||
237 | uart2_fctl: uart2-fctl { | ||
238 | samsung,pins = "gpa1-2", "gpa1-3"; | ||
239 | samsung,pin-function = <2>; | ||
240 | samsung,pin-pud = <0>; | ||
241 | samaung,pin-drv = <0>; | ||
242 | }; | ||
243 | |||
244 | i2c3_bus: i2c3-bus { | ||
245 | samsung,pins = "gpa1-2", "gpa1-3"; | ||
246 | samsung,pin-function = <3>; | ||
247 | samsung,pin-pud = <3>; | ||
248 | samaung,pin-drv = <0>; | ||
249 | }; | ||
250 | |||
251 | i2c3_hs_bus: i2c3-hs-bus { | ||
252 | samsung,pins = "gpa1-2", "gpa1-3"; | ||
253 | samsung,pin-function = <4>; | ||
254 | samsung,pin-pud = <3>; | ||
255 | samaung,pin-drv = <0>; | ||
256 | }; | ||
257 | |||
258 | uart3_data: uart3-data { | ||
259 | samsung,pins = "gpa1-4", "gpa1-4"; | ||
260 | samsung,pin-function = <2>; | ||
261 | samsung,pin-pud = <0>; | ||
262 | samsung,pin-drv = <0>; | ||
263 | }; | ||
264 | |||
265 | spi0_bus: spi0-bus { | ||
266 | samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3"; | ||
267 | samsung,pin-function = <2>; | ||
268 | samsung,pin-pud = <3>; | ||
269 | samsung,pin-drv = <0>; | ||
270 | }; | ||
271 | |||
272 | i2c4_bus: i2c4-bus { | ||
273 | samsung,pins = "gpa2-0", "gpa2-1"; | ||
274 | samsung,pin-function = <3>; | ||
275 | samsung,pin-pud = <3>; | ||
276 | samaung,pin-drv = <0>; | ||
277 | }; | ||
278 | |||
279 | i2c5_bus: i2c5-bus { | ||
280 | samsung,pins = "gpa2-2", "gpa2-3"; | ||
281 | samsung,pin-function = <3>; | ||
282 | samsung,pin-pud = <3>; | ||
283 | samaung,pin-drv = <0>; | ||
284 | }; | ||
285 | |||
286 | spi1_bus: spi1-bus { | ||
287 | samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7"; | ||
288 | samsung,pin-function = <2>; | ||
289 | samsung,pin-pud = <3>; | ||
290 | samsung,pin-drv = <0>; | ||
291 | }; | ||
292 | |||
293 | i2s1_bus: i2s1-bus { | ||
294 | samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", | ||
295 | "gpb0-4"; | ||
296 | samsung,pin-function = <2>; | ||
297 | samsung,pin-pud = <0>; | ||
298 | samsung,pin-drv = <0>; | ||
299 | }; | ||
300 | |||
301 | pcm1_bus: pcm1-bus { | ||
302 | samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", | ||
303 | "gpb0-4"; | ||
304 | samsung,pin-function = <3>; | ||
305 | samsung,pin-pud = <0>; | ||
306 | samsung,pin-drv = <0>; | ||
307 | }; | ||
308 | |||
309 | ac97_bus: ac97-bus { | ||
310 | samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", | ||
311 | "gpb0-4"; | ||
312 | samsung,pin-function = <4>; | ||
313 | samsung,pin-pud = <0>; | ||
314 | samsung,pin-drv = <0>; | ||
315 | }; | ||
316 | |||
317 | i2s2_bus: i2s2-bus { | ||
318 | samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3", | ||
319 | "gpb1-4"; | ||
320 | samsung,pin-function = <2>; | ||
321 | samsung,pin-pud = <0>; | ||
322 | samsung,pin-drv = <0>; | ||
323 | }; | ||
324 | |||
325 | pcm2_bus: pcm2-bus { | ||
326 | samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3", | ||
327 | "gpb1-4"; | ||
328 | samsung,pin-function = <3>; | ||
329 | samsung,pin-pud = <0>; | ||
330 | samsung,pin-drv = <0>; | ||
331 | }; | ||
332 | |||
333 | spdif_bus: spdif-bus { | ||
334 | samsung,pins = "gpb1-0", "gpb1-1"; | ||
335 | samsung,pin-function = <4>; | ||
336 | samsung,pin-pud = <0>; | ||
337 | samsung,pin-drv = <0>; | ||
338 | }; | ||
339 | |||
340 | spi2_bus: spi2-bus { | ||
341 | samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4"; | ||
342 | samsung,pin-function = <5>; | ||
343 | samsung,pin-pud = <3>; | ||
344 | samsung,pin-drv = <0>; | ||
345 | }; | ||
346 | |||
347 | i2c6_bus: i2c6-bus { | ||
348 | samsung,pins = "gpb1-3", "gpb1-4"; | ||
349 | samsung,pin-function = <4>; | ||
350 | samsung,pin-pud = <3>; | ||
351 | samsung,pin-drv = <0>; | ||
352 | }; | ||
353 | |||
354 | i2c7_bus: i2c7-bus { | ||
355 | samsung,pins = "gpb2-2", "gpb2-3"; | ||
356 | samsung,pin-function = <3>; | ||
357 | samsung,pin-pud = <3>; | ||
358 | samsung,pin-drv = <0>; | ||
359 | }; | ||
360 | |||
361 | i2c0_bus: i2c0-bus { | ||
362 | samsung,pins = "gpb3-0", "gpb3-1"; | ||
363 | samsung,pin-function = <2>; | ||
364 | samsung,pin-pud = <3>; | ||
365 | samsung,pin-drv = <0>; | ||
366 | }; | ||
367 | |||
368 | i2c1_bus: i2c1-bus { | ||
369 | samsung,pins = "gpb3-2", "gpb3-3"; | ||
370 | samsung,pin-function = <2>; | ||
371 | samsung,pin-pud = <3>; | ||
372 | samsung,pin-drv = <0>; | ||
373 | }; | ||
374 | |||
375 | i2c0_hs_bus: i2c0-hs-bus { | ||
376 | samsung,pins = "gpb3-0", "gpb3-1"; | ||
377 | samsung,pin-function = <4>; | ||
378 | samsung,pin-pud = <3>; | ||
379 | samaung,pin-drv = <0>; | ||
380 | }; | ||
381 | |||
382 | i2c1_hs_bus: i2c1-hs-bus { | ||
383 | samsung,pins = "gpb3-2", "gpb3-3"; | ||
384 | samsung,pin-function = <4>; | ||
385 | samsung,pin-pud = <3>; | ||
386 | samaung,pin-drv = <0>; | ||
387 | }; | ||
388 | |||
389 | sd0_clk: sd0-clk { | ||
390 | samsung,pins = "gpc0-0"; | ||
391 | samsung,pin-function = <2>; | ||
392 | samsung,pin-pud = <0>; | ||
393 | samsung,pin-drv = <3>; | ||
394 | }; | ||
395 | |||
396 | sd0_cmd: sd0-cmd { | ||
397 | samsung,pins = "gpc0-1"; | ||
398 | samsung,pin-function = <2>; | ||
399 | samsung,pin-pud = <0>; | ||
400 | samsung,pin-drv = <3>; | ||
401 | }; | ||
402 | |||
403 | sd0_cd: sd0-cd { | ||
404 | samsung,pins = "gpc0-2"; | ||
405 | samsung,pin-function = <2>; | ||
406 | samsung,pin-pud = <3>; | ||
407 | samsung,pin-drv = <3>; | ||
408 | }; | ||
409 | |||
410 | sd0_bus1: sd0-bus-width1 { | ||
411 | samsung,pins = "gpc0-3"; | ||
412 | samsung,pin-function = <2>; | ||
413 | samsung,pin-pud = <3>; | ||
414 | samsung,pin-drv = <3>; | ||
415 | }; | ||
416 | |||
417 | sd0_bus4: sd0-bus-width4 { | ||
418 | samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6"; | ||
419 | samsung,pin-function = <2>; | ||
420 | samsung,pin-pud = <3>; | ||
421 | samsung,pin-drv = <3>; | ||
422 | }; | ||
423 | |||
424 | sd0_bus8: sd0-bus-width8 { | ||
425 | samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3"; | ||
426 | samsung,pin-function = <2>; | ||
427 | samsung,pin-pud = <3>; | ||
428 | samsung,pin-drv = <3>; | ||
429 | }; | ||
430 | |||
431 | sd1_clk: sd1-clk { | ||
432 | samsung,pins = "gpc2-0"; | ||
433 | samsung,pin-function = <2>; | ||
434 | samsung,pin-pud = <0>; | ||
435 | samsung,pin-drv = <3>; | ||
436 | }; | ||
437 | |||
438 | sd1_cmd: sd1-cmd { | ||
439 | samsung,pins = "gpc2-1"; | ||
440 | samsung,pin-function = <2>; | ||
441 | samsung,pin-pud = <0>; | ||
442 | samsung,pin-drv = <3>; | ||
443 | }; | ||
444 | |||
445 | sd1_cd: sd1-cd { | ||
446 | samsung,pins = "gpc2-2"; | ||
447 | samsung,pin-function = <2>; | ||
448 | samsung,pin-pud = <3>; | ||
449 | samsung,pin-drv = <3>; | ||
450 | }; | ||
451 | |||
452 | sd1_bus1: sd1-bus-width1 { | ||
453 | samsung,pins = "gpc2-3"; | ||
454 | samsung,pin-function = <2>; | ||
455 | samsung,pin-pud = <3>; | ||
456 | samsung,pin-drv = <3>; | ||
457 | }; | ||
458 | |||
459 | sd1_bus4: sd1-bus-width4 { | ||
460 | samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6"; | ||
461 | samsung,pin-function = <2>; | ||
462 | samsung,pin-pud = <3>; | ||
463 | samsung,pin-drv = <3>; | ||
464 | }; | ||
465 | |||
466 | sd2_clk: sd2-clk { | ||
467 | samsung,pins = "gpc3-0"; | ||
468 | samsung,pin-function = <2>; | ||
469 | samsung,pin-pud = <0>; | ||
470 | samsung,pin-drv = <3>; | ||
471 | }; | ||
472 | |||
473 | sd2_cmd: sd2-cmd { | ||
474 | samsung,pins = "gpc3-1"; | ||
475 | samsung,pin-function = <2>; | ||
476 | samsung,pin-pud = <0>; | ||
477 | samsung,pin-drv = <3>; | ||
478 | }; | ||
479 | |||
480 | sd2_cd: sd2-cd { | ||
481 | samsung,pins = "gpc3-2"; | ||
482 | samsung,pin-function = <2>; | ||
483 | samsung,pin-pud = <3>; | ||
484 | samsung,pin-drv = <3>; | ||
485 | }; | ||
486 | |||
487 | sd2_bus1: sd2-bus-width1 { | ||
488 | samsung,pins = "gpc3-3"; | ||
489 | samsung,pin-function = <2>; | ||
490 | samsung,pin-pud = <3>; | ||
491 | samsung,pin-drv = <3>; | ||
492 | }; | ||
493 | |||
494 | sd2_bus4: sd2-bus-width4 { | ||
495 | samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6"; | ||
496 | samsung,pin-function = <2>; | ||
497 | samsung,pin-pud = <3>; | ||
498 | samsung,pin-drv = <3>; | ||
499 | }; | ||
500 | |||
501 | sd2_bus8: sd2-bus-width8 { | ||
502 | samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6"; | ||
503 | samsung,pin-function = <3>; | ||
504 | samsung,pin-pud = <3>; | ||
505 | samsung,pin-drv = <3>; | ||
506 | }; | ||
507 | |||
508 | sd3_clk: sd3-clk { | ||
509 | samsung,pins = "gpc4-0"; | ||
510 | samsung,pin-function = <2>; | ||
511 | samsung,pin-pud = <0>; | ||
512 | samsung,pin-drv = <3>; | ||
513 | }; | ||
514 | |||
515 | sd3_cmd: sd3-cmd { | ||
516 | samsung,pins = "gpc4-1"; | ||
517 | samsung,pin-function = <2>; | ||
518 | samsung,pin-pud = <0>; | ||
519 | samsung,pin-drv = <3>; | ||
520 | }; | ||
521 | |||
522 | sd3_cd: sd3-cd { | ||
523 | samsung,pins = "gpc4-2"; | ||
524 | samsung,pin-function = <2>; | ||
525 | samsung,pin-pud = <3>; | ||
526 | samsung,pin-drv = <3>; | ||
527 | }; | ||
528 | |||
529 | sd3_bus1: sd3-bus-width1 { | ||
530 | samsung,pins = "gpc4-3"; | ||
531 | samsung,pin-function = <2>; | ||
532 | samsung,pin-pud = <3>; | ||
533 | samsung,pin-drv = <3>; | ||
534 | }; | ||
535 | |||
536 | sd3_bus4: sd3-bus-width4 { | ||
537 | samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6"; | ||
538 | samsung,pin-function = <2>; | ||
539 | samsung,pin-pud = <3>; | ||
540 | samsung,pin-drv = <3>; | ||
541 | }; | ||
542 | |||
543 | uart1_data: uart1-data { | ||
544 | samsung,pins = "gpd0-0", "gpd0-1"; | ||
545 | samsung,pin-function = <2>; | ||
546 | samsung,pin-pud = <0>; | ||
547 | samsung,pin-drv = <0>; | ||
548 | }; | ||
549 | |||
550 | uart1_fctl: uart1-fctl { | ||
551 | samsung,pins = "gpd0-2", "gpd0-3"; | ||
552 | samsung,pin-function = <2>; | ||
553 | samsung,pin-pud = <0>; | ||
554 | samaung,pin-drv = <0>; | ||
555 | }; | ||
556 | }; | ||
557 | |||
558 | pinctrl@13400000 { | ||
559 | gpe0: gpe0 { | ||
560 | gpio-controller; | ||
561 | #gpio-cells = <2>; | ||
562 | |||
563 | interrupt-controller; | ||
564 | #interrupt-cells = <2>; | ||
565 | }; | ||
566 | |||
567 | gpe1: gpe1 { | ||
568 | gpio-controller; | ||
569 | #gpio-cells = <2>; | ||
570 | |||
571 | interrupt-controller; | ||
572 | #interrupt-cells = <2>; | ||
573 | }; | ||
574 | |||
575 | gpf0: gpf0 { | ||
576 | gpio-controller; | ||
577 | #gpio-cells = <2>; | ||
578 | |||
579 | interrupt-controller; | ||
580 | #interrupt-cells = <2>; | ||
581 | }; | ||
582 | |||
583 | gpf1: gpf1 { | ||
584 | gpio-controller; | ||
585 | #gpio-cells = <2>; | ||
586 | |||
587 | interrupt-controller; | ||
588 | #interrupt-cells = <2>; | ||
589 | }; | ||
590 | |||
591 | gpg0: gpg0 { | ||
592 | gpio-controller; | ||
593 | #gpio-cells = <2>; | ||
594 | |||
595 | interrupt-controller; | ||
596 | #interrupt-cells = <2>; | ||
597 | }; | ||
598 | |||
599 | gpg1: gpg1 { | ||
600 | gpio-controller; | ||
601 | #gpio-cells = <2>; | ||
602 | |||
603 | interrupt-controller; | ||
604 | #interrupt-cells = <2>; | ||
605 | }; | ||
606 | |||
607 | gpg2: gpg2 { | ||
608 | gpio-controller; | ||
609 | #gpio-cells = <2>; | ||
610 | |||
611 | interrupt-controller; | ||
612 | #interrupt-cells = <2>; | ||
613 | }; | ||
614 | |||
615 | gph0: gph0 { | ||
616 | gpio-controller; | ||
617 | #gpio-cells = <2>; | ||
618 | |||
619 | interrupt-controller; | ||
620 | #interrupt-cells = <2>; | ||
621 | }; | ||
622 | |||
623 | gph1: gph1 { | ||
624 | gpio-controller; | ||
625 | #gpio-cells = <2>; | ||
626 | |||
627 | interrupt-controller; | ||
628 | #interrupt-cells = <2>; | ||
629 | }; | ||
630 | |||
631 | cam_gpio_a: cam-gpio-a { | ||
632 | samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3", | ||
633 | "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7", | ||
634 | "gpe1-0", "gpe1-1"; | ||
635 | samsung,pin-function = <2>; | ||
636 | samsung,pin-pud = <0>; | ||
637 | samsung,pin-drv = <0>; | ||
638 | }; | ||
639 | |||
640 | cam_gpio_b: cam-gpio-b { | ||
641 | samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3", | ||
642 | "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3"; | ||
643 | samsung,pin-function = <3>; | ||
644 | samsung,pin-pud = <0>; | ||
645 | samaung,pin-drv = <0>; | ||
646 | }; | ||
647 | |||
648 | cam_i2c2_bus: cam-i2c2-bus { | ||
649 | samsung,pins = "gpe0-6", "gpe1-0"; | ||
650 | samsung,pin-function = <4>; | ||
651 | samsung,pin-pud = <3>; | ||
652 | samaung,pin-drv = <0>; | ||
653 | }; | ||
654 | |||
655 | cam_spi1_bus: cam-spi1-bus { | ||
656 | samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3"; | ||
657 | samsung,pin-function = <4>; | ||
658 | samsung,pin-pud = <0>; | ||
659 | samaung,pin-drv = <0>; | ||
660 | }; | ||
661 | |||
662 | cam_i2c1_bus: cam-i2c1-bus { | ||
663 | samsung,pins = "gpf0-2", "gpf0-3"; | ||
664 | samsung,pin-function = <2>; | ||
665 | samsung,pin-pud = <3>; | ||
666 | samaung,pin-drv = <0>; | ||
667 | }; | ||
668 | |||
669 | cam_i2c0_bus: cam-i2c0-bus { | ||
670 | samsung,pins = "gpf0-0", "gpf0-1"; | ||
671 | samsung,pin-function = <2>; | ||
672 | samsung,pin-pud = <3>; | ||
673 | samaung,pin-drv = <0>; | ||
674 | }; | ||
675 | |||
676 | cam_spi0_bus: cam-spi0-bus { | ||
677 | samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3"; | ||
678 | samsung,pin-function = <2>; | ||
679 | samsung,pin-pud = <0>; | ||
680 | samaung,pin-drv = <0>; | ||
681 | }; | ||
682 | |||
683 | cam_bayrgb_bus: cam-bayrgb-bus { | ||
684 | samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3", | ||
685 | "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7", | ||
686 | "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3", | ||
687 | "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7", | ||
688 | "gpg2-0", "gpg2-1"; | ||
689 | samsung,pin-function = <2>; | ||
690 | samsung,pin-pud = <0>; | ||
691 | samaung,pin-drv = <0>; | ||
692 | }; | ||
693 | |||
694 | cam_port_a: cam-port-a { | ||
695 | samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3", | ||
696 | "gph1-0", "gph1-1", "gph1-2", "gph1-3", | ||
697 | "gph1-4", "gph1-5", "gph1-6", "gph1-7"; | ||
698 | samsung,pin-function = <2>; | ||
699 | samsung,pin-pud = <0>; | ||
700 | samaung,pin-drv = <0>; | ||
701 | }; | ||
702 | }; | ||
703 | |||
704 | pinctrl@10d10000 { | ||
705 | gpv0: gpv0 { | ||
706 | gpio-controller; | ||
707 | #gpio-cells = <2>; | ||
708 | |||
709 | interrupt-controller; | ||
710 | #interrupt-cells = <2>; | ||
711 | }; | ||
712 | |||
713 | gpv1: gpv1 { | ||
714 | gpio-controller; | ||
715 | #gpio-cells = <2>; | ||
716 | |||
717 | interrupt-controller; | ||
718 | #interrupt-cells = <2>; | ||
719 | }; | ||
720 | |||
721 | gpv2: gpv2 { | ||
722 | gpio-controller; | ||
723 | #gpio-cells = <2>; | ||
724 | |||
725 | interrupt-controller; | ||
726 | #interrupt-cells = <2>; | ||
727 | }; | ||
728 | |||
729 | gpv3: gpv3 { | ||
730 | gpio-controller; | ||
731 | #gpio-cells = <2>; | ||
732 | |||
733 | interrupt-controller; | ||
734 | #interrupt-cells = <2>; | ||
735 | }; | ||
736 | |||
737 | gpv4: gpv4 { | ||
738 | gpio-controller; | ||
739 | #gpio-cells = <2>; | ||
740 | |||
741 | interrupt-controller; | ||
742 | #interrupt-cells = <2>; | ||
743 | }; | ||
744 | |||
745 | c2c_rxd: c2c-rxd { | ||
746 | samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3", | ||
747 | "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7", | ||
748 | "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3", | ||
749 | "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7"; | ||
750 | samsung,pin-function = <2>; | ||
751 | samsung,pin-pud = <0>; | ||
752 | samaung,pin-drv = <0>; | ||
753 | }; | ||
754 | |||
755 | c2c_txd: c2c-txd { | ||
756 | samsung,pins = "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3", | ||
757 | "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7", | ||
758 | "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3", | ||
759 | "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7"; | ||
760 | samsung,pin-function = <2>; | ||
761 | samsung,pin-pud = <0>; | ||
762 | samaung,pin-drv = <0>; | ||
763 | }; | ||
764 | }; | ||
765 | |||
766 | pinctrl@03680000 { | ||
767 | gpz: gpz { | ||
768 | gpio-controller; | ||
769 | #gpio-cells = <2>; | ||
770 | |||
771 | interrupt-controller; | ||
772 | #interrupt-cells = <2>; | ||
773 | }; | ||
774 | |||
775 | i2s0_bus: i2s0-bus { | ||
776 | samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", | ||
777 | "gpz-4", "gpz-5", "gpz-6"; | ||
778 | samsung,pin-function = <2>; | ||
779 | samsung,pin-pud = <0>; | ||
780 | samsung,pin-drv = <0>; | ||
781 | }; | ||
782 | }; | ||
783 | }; | ||
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 872ae1f93c75..26d856ba50a1 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts | |||
@@ -30,8 +30,6 @@ | |||
30 | i2c@12C60000 { | 30 | i2c@12C60000 { |
31 | samsung,i2c-sda-delay = <100>; | 31 | samsung,i2c-sda-delay = <100>; |
32 | samsung,i2c-max-bus-freq = <20000>; | 32 | samsung,i2c-max-bus-freq = <20000>; |
33 | gpios = <&gpb3 0 2 3 0>, | ||
34 | <&gpb3 1 2 3 0>; | ||
35 | 33 | ||
36 | eeprom@50 { | 34 | eeprom@50 { |
37 | compatible = "samsung,s524ad0xd1"; | 35 | compatible = "samsung,s524ad0xd1"; |
@@ -42,8 +40,6 @@ | |||
42 | i2c@12C70000 { | 40 | i2c@12C70000 { |
43 | samsung,i2c-sda-delay = <100>; | 41 | samsung,i2c-sda-delay = <100>; |
44 | samsung,i2c-max-bus-freq = <20000>; | 42 | samsung,i2c-max-bus-freq = <20000>; |
45 | gpios = <&gpb3 2 2 3 0>, | ||
46 | <&gpb3 3 2 3 0>; | ||
47 | 43 | ||
48 | eeprom@51 { | 44 | eeprom@51 { |
49 | compatible = "samsung,s524ad0xd1"; | 45 | compatible = "samsung,s524ad0xd1"; |
@@ -74,8 +70,6 @@ | |||
74 | i2c@12C80000 { | 70 | i2c@12C80000 { |
75 | samsung,i2c-sda-delay = <100>; | 71 | samsung,i2c-sda-delay = <100>; |
76 | samsung,i2c-max-bus-freq = <66000>; | 72 | samsung,i2c-max-bus-freq = <66000>; |
77 | gpios = <&gpa0 6 3 3 0>, | ||
78 | <&gpa0 7 3 3 0>; | ||
79 | 73 | ||
80 | hdmiddc@50 { | 74 | hdmiddc@50 { |
81 | compatible = "samsung,exynos5-hdmiddc"; | 75 | compatible = "samsung,exynos5-hdmiddc"; |
@@ -122,15 +116,12 @@ | |||
122 | samsung,dw-mshc-ciu-div = <3>; | 116 | samsung,dw-mshc-ciu-div = <3>; |
123 | samsung,dw-mshc-sdr-timing = <2 3>; | 117 | samsung,dw-mshc-sdr-timing = <2 3>; |
124 | samsung,dw-mshc-ddr-timing = <1 2>; | 118 | samsung,dw-mshc-ddr-timing = <1 2>; |
119 | pinctrl-names = "default"; | ||
120 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; | ||
125 | 121 | ||
126 | slot@0 { | 122 | slot@0 { |
127 | reg = <0>; | 123 | reg = <0>; |
128 | bus-width = <8>; | 124 | bus-width = <8>; |
129 | gpios = <&gpc0 0 2 0 3>, <&gpc0 1 2 0 3>, | ||
130 | <&gpc1 0 2 3 3>, <&gpc1 1 2 3 3>, | ||
131 | <&gpc1 2 2 3 3>, <&gpc1 3 2 3 3>, | ||
132 | <&gpc0 3 2 3 3>, <&gpc0 4 2 3 3>, | ||
133 | <&gpc0 5 2 3 3>, <&gpc0 6 2 3 3>; | ||
134 | }; | 125 | }; |
135 | }; | 126 | }; |
136 | 127 | ||
@@ -146,17 +137,13 @@ | |||
146 | samsung,dw-mshc-ciu-div = <3>; | 137 | samsung,dw-mshc-ciu-div = <3>; |
147 | samsung,dw-mshc-sdr-timing = <2 3>; | 138 | samsung,dw-mshc-sdr-timing = <2 3>; |
148 | samsung,dw-mshc-ddr-timing = <1 2>; | 139 | samsung,dw-mshc-ddr-timing = <1 2>; |
140 | pinctrl-names = "default"; | ||
141 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | ||
149 | 142 | ||
150 | slot@0 { | 143 | slot@0 { |
151 | reg = <0>; | 144 | reg = <0>; |
152 | bus-width = <4>; | 145 | bus-width = <4>; |
153 | samsung,cd-pinmux-gpio = <&gpc3 2 2 3 3>; | ||
154 | disable-wp; | 146 | disable-wp; |
155 | gpios = <&gpc3 0 2 0 3>, <&gpc3 1 2 0 3>, | ||
156 | <&gpc3 3 2 3 3>, <&gpc3 4 2 3 3>, | ||
157 | <&gpc3 5 2 3 3>, <&gpc3 6 2 3 3>, | ||
158 | <&gpc4 3 3 3 3>, <&gpc4 3 3 3 3>, | ||
159 | <&gpc4 5 3 3 3>, <&gpc4 6 3 3 3>; | ||
160 | }; | 147 | }; |
161 | }; | 148 | }; |
162 | 149 | ||
@@ -169,10 +156,6 @@ | |||
169 | }; | 156 | }; |
170 | 157 | ||
171 | spi_1: spi@12d30000 { | 158 | spi_1: spi@12d30000 { |
172 | gpios = <&gpa2 4 2 3 0>, | ||
173 | <&gpa2 6 2 3 0>, | ||
174 | <&gpa2 7 2 3 0>; | ||
175 | |||
176 | w25q80bw@0 { | 159 | w25q80bw@0 { |
177 | #address-cells = <1>; | 160 | #address-cells = <1>; |
178 | #size-cells = <1>; | 161 | #size-cells = <1>; |
@@ -181,7 +164,7 @@ | |||
181 | spi-max-frequency = <1000000>; | 164 | spi-max-frequency = <1000000>; |
182 | 165 | ||
183 | controller-data { | 166 | controller-data { |
184 | cs-gpio = <&gpa2 5 1 0 3>; | 167 | cs-gpio = <&gpa2 5 0>; |
185 | samsung,spi-feedback-delay = <0>; | 168 | samsung,spi-feedback-delay = <0>; |
186 | }; | 169 | }; |
187 | 170 | ||
@@ -203,7 +186,7 @@ | |||
203 | }; | 186 | }; |
204 | 187 | ||
205 | hdmi { | 188 | hdmi { |
206 | hpd-gpio = <&gpx3 7 0xf 1 3>; | 189 | hpd-gpio = <&gpx3 7 0>; |
207 | }; | 190 | }; |
208 | 191 | ||
209 | codec@11000000 { | 192 | codec@11000000 { |
@@ -212,9 +195,7 @@ | |||
212 | }; | 195 | }; |
213 | 196 | ||
214 | i2s0: i2s@03830000 { | 197 | i2s0: i2s@03830000 { |
215 | gpios = <&gpz 0 2 0 0>, <&gpz 1 2 0 0>, <&gpz 2 2 0 0>, | 198 | status = "okay"; |
216 | <&gpz 3 2 0 0>, <&gpz 4 2 0 0>, <&gpz 5 2 0 0>, | ||
217 | <&gpz 6 2 0 0>; | ||
218 | }; | 199 | }; |
219 | 200 | ||
220 | i2s1: i2s@12D60000 { | 201 | i2s1: i2s@12D60000 { |
@@ -245,6 +226,22 @@ | |||
245 | samsung,lane-count = <4>; | 226 | samsung,lane-count = <4>; |
246 | }; | 227 | }; |
247 | 228 | ||
229 | display-timings { | ||
230 | native-mode = <&timing0>; | ||
231 | timing0: timing@0 { | ||
232 | /* 1280x800 */ | ||
233 | clock-frequency = <50000>; | ||
234 | hactive = <1280>; | ||
235 | vactive = <800>; | ||
236 | hfront-porch = <4>; | ||
237 | hback-porch = <4>; | ||
238 | hsync-len = <4>; | ||
239 | vback-porch = <4>; | ||
240 | vfront-porch = <4>; | ||
241 | vsync-len = <4>; | ||
242 | }; | ||
243 | }; | ||
244 | |||
248 | fixed-rate-clocks { | 245 | fixed-rate-clocks { |
249 | xxti { | 246 | xxti { |
250 | compatible = "samsung,clock-xxti"; | 247 | compatible = "samsung,clock-xxti"; |
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts index babd9f9b1bf9..bf4744bab445 100644 --- a/arch/arm/boot/dts/exynos5250-snow.dts +++ b/arch/arm/boot/dts/exynos5250-snow.dts | |||
@@ -16,12 +16,31 @@ | |||
16 | model = "Google Snow"; | 16 | model = "Google Snow"; |
17 | compatible = "google,snow", "samsung,exynos5250"; | 17 | compatible = "google,snow", "samsung,exynos5250"; |
18 | 18 | ||
19 | aliases { | ||
20 | i2c104 = &i2c_104; | ||
21 | }; | ||
22 | |||
23 | pinctrl@11400000 { | ||
24 | sd3_clk: sd3-clk { | ||
25 | samsung,pin-drv = <0>; | ||
26 | }; | ||
27 | |||
28 | sd3_cmd: sd3-cmd { | ||
29 | samsung,pin-pud = <3>; | ||
30 | samsung,pin-drv = <0>; | ||
31 | }; | ||
32 | |||
33 | sd3_bus4: sd3-bus-width4 { | ||
34 | samsung,pin-drv = <0>; | ||
35 | }; | ||
36 | }; | ||
37 | |||
19 | gpio-keys { | 38 | gpio-keys { |
20 | compatible = "gpio-keys"; | 39 | compatible = "gpio-keys"; |
21 | 40 | ||
22 | lid-switch { | 41 | lid-switch { |
23 | label = "Lid"; | 42 | label = "Lid"; |
24 | gpios = <&gpx3 5 0 0x10000 0>; | 43 | gpios = <&gpx3 5 1>; |
25 | linux,input-type = <5>; /* EV_SW */ | 44 | linux,input-type = <5>; /* EV_SW */ |
26 | linux,code = <0>; /* SW_LID */ | 45 | linux,code = <0>; /* SW_LID */ |
27 | debounce-interval = <1>; | 46 | debounce-interval = <1>; |
@@ -29,15 +48,137 @@ | |||
29 | }; | 48 | }; |
30 | }; | 49 | }; |
31 | 50 | ||
51 | i2c-arbitrator { | ||
52 | compatible = "i2c-arb-gpio-challenge"; | ||
53 | #address-cells = <1>; | ||
54 | #size-cells = <0>; | ||
55 | |||
56 | i2c-parent = <&{/i2c@12CA0000}>; | ||
57 | |||
58 | our-claim-gpio = <&gpf0 3 1>; | ||
59 | their-claim-gpios = <&gpe0 4 1>; | ||
60 | slew-delay-us = <10>; | ||
61 | wait-retry-us = <3000>; | ||
62 | wait-free-us = <50000>; | ||
63 | |||
64 | /* Use ID 104 as a hint that we're on physical bus 4 */ | ||
65 | i2c_104: i2c@0 { | ||
66 | reg = <0>; | ||
67 | #address-cells = <1>; | ||
68 | #size-cells = <0>; | ||
69 | |||
70 | battery: sbs-battery@b { | ||
71 | compatible = "sbs,sbs-battery"; | ||
72 | reg = <0xb>; | ||
73 | sbs,poll-retry-count = <1>; | ||
74 | }; | ||
75 | |||
76 | ec: embedded-controller { | ||
77 | compatible = "google,cros-ec-i2c"; | ||
78 | reg = <0x1e>; | ||
79 | interrupts = <6 0>; | ||
80 | interrupt-parent = <&gpx1>; | ||
81 | wakeup-source; | ||
82 | |||
83 | keyboard-controller { | ||
84 | compatible = "google,cros-ec-keyb"; | ||
85 | keypad,num-rows = <8>; | ||
86 | keypad,num-columns = <13>; | ||
87 | google,needs-ghost-filter; | ||
88 | linux,keymap = <0x0001003a /* CAPSLK */ | ||
89 | 0x0002003b /* F1 */ | ||
90 | 0x00030030 /* B */ | ||
91 | 0x00040044 /* F10 */ | ||
92 | 0x00060031 /* N */ | ||
93 | 0x0008000d /* = */ | ||
94 | 0x000a0064 /* R_ALT */ | ||
95 | |||
96 | 0x01010001 /* ESC */ | ||
97 | 0x0102003e /* F4 */ | ||
98 | 0x01030022 /* G */ | ||
99 | 0x01040041 /* F7 */ | ||
100 | 0x01060023 /* H */ | ||
101 | 0x01080028 /* ' */ | ||
102 | 0x01090043 /* F9 */ | ||
103 | 0x010b000e /* BKSPACE */ | ||
104 | |||
105 | 0x0200001d /* L_CTRL */ | ||
106 | 0x0201000f /* TAB */ | ||
107 | 0x0202003d /* F3 */ | ||
108 | 0x02030014 /* T */ | ||
109 | 0x02040040 /* F6 */ | ||
110 | 0x0205001b /* ] */ | ||
111 | 0x02060015 /* Y */ | ||
112 | 0x02070056 /* 102ND */ | ||
113 | 0x0208001a /* [ */ | ||
114 | 0x02090042 /* F8 */ | ||
115 | |||
116 | 0x03010029 /* GRAVE */ | ||
117 | 0x0302003c /* F2 */ | ||
118 | 0x03030006 /* 5 */ | ||
119 | 0x0304003f /* F5 */ | ||
120 | 0x03060007 /* 6 */ | ||
121 | 0x0308000c /* - */ | ||
122 | 0x030b002b /* \ */ | ||
123 | |||
124 | 0x04000061 /* R_CTRL */ | ||
125 | 0x0401001e /* A */ | ||
126 | 0x04020020 /* D */ | ||
127 | 0x04030021 /* F */ | ||
128 | 0x0404001f /* S */ | ||
129 | 0x04050025 /* K */ | ||
130 | 0x04060024 /* J */ | ||
131 | 0x04080027 /* ; */ | ||
132 | 0x04090026 /* L */ | ||
133 | 0x040b001c /* ENTER */ | ||
134 | |||
135 | 0x0501002c /* Z */ | ||
136 | 0x0502002e /* C */ | ||
137 | 0x0503002f /* V */ | ||
138 | 0x0504002d /* X */ | ||
139 | 0x05050033 /* , */ | ||
140 | 0x05060032 /* M */ | ||
141 | 0x0507002a /* L_SHIFT */ | ||
142 | 0x05080035 /* / */ | ||
143 | 0x05090034 /* . */ | ||
144 | 0x050B0039 /* SPACE */ | ||
145 | |||
146 | 0x06010002 /* 1 */ | ||
147 | 0x06020004 /* 3 */ | ||
148 | 0x06030005 /* 4 */ | ||
149 | 0x06040003 /* 2 */ | ||
150 | 0x06050009 /* 8 */ | ||
151 | 0x06060008 /* 7 */ | ||
152 | 0x0608000b /* 0 */ | ||
153 | 0x0609000a /* 9 */ | ||
154 | 0x060a0038 /* L_ALT */ | ||
155 | 0x060b006c /* DOWN */ | ||
156 | 0x060c006a /* RIGHT */ | ||
157 | |||
158 | 0x07010010 /* Q */ | ||
159 | 0x07020012 /* E */ | ||
160 | 0x07030013 /* R */ | ||
161 | 0x07040011 /* W */ | ||
162 | 0x07050017 /* I */ | ||
163 | 0x07060016 /* U */ | ||
164 | 0x07070036 /* R_SHIFT */ | ||
165 | 0x07080019 /* P */ | ||
166 | 0x07090018 /* O */ | ||
167 | 0x070b0067 /* UP */ | ||
168 | 0x070c0069>; /* LEFT */ | ||
169 | }; | ||
170 | }; | ||
171 | }; | ||
172 | }; | ||
173 | |||
32 | /* | 174 | /* |
33 | * On Snow we've got SIP WiFi and so can keep drive strengths low to | 175 | * On Snow we've got SIP WiFi and so can keep drive strengths low to |
34 | * reduce EMI. | 176 | * reduce EMI. |
35 | */ | 177 | */ |
36 | dwmmc3@12230000 { | 178 | dwmmc3@12230000 { |
37 | slot@0 { | 179 | slot@0 { |
38 | gpios = <&gpc4 0 2 0 0>, <&gpc4 1 2 3 0>, | 180 | pinctrl-names = "default"; |
39 | <&gpc4 3 2 3 0>, <&gpc4 4 2 3 0>, | 181 | pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>; |
40 | <&gpc4 5 2 3 0>, <&gpc4 6 2 3 0>; | ||
41 | }; | 182 | }; |
42 | }; | 183 | }; |
43 | 184 | ||
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 28758e5dd15c..98dfc3ea5c0b 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi | |||
@@ -18,6 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | 19 | ||
20 | /include/ "skeleton.dtsi" | 20 | /include/ "skeleton.dtsi" |
21 | /include/ "exynos5250-pinctrl.dtsi" | ||
21 | 22 | ||
22 | / { | 23 | / { |
23 | compatible = "samsung,exynos5250"; | 24 | compatible = "samsung,exynos5250"; |
@@ -44,6 +45,15 @@ | |||
44 | i2c6 = &i2c_6; | 45 | i2c6 = &i2c_6; |
45 | i2c7 = &i2c_7; | 46 | i2c7 = &i2c_7; |
46 | i2c8 = &i2c_8; | 47 | i2c8 = &i2c_8; |
48 | pinctrl0 = &pinctrl_0; | ||
49 | pinctrl1 = &pinctrl_1; | ||
50 | pinctrl2 = &pinctrl_2; | ||
51 | pinctrl3 = &pinctrl_3; | ||
52 | }; | ||
53 | |||
54 | chipid@10000000 { | ||
55 | compatible = "samsung,exynos4210-chipid"; | ||
56 | reg = <0x10000000 0x100>; | ||
47 | }; | 57 | }; |
48 | 58 | ||
49 | pd_gsc: gsc-power-domain@0x10044000 { | 59 | pd_gsc: gsc-power-domain@0x10044000 { |
@@ -63,10 +73,22 @@ | |||
63 | }; | 73 | }; |
64 | 74 | ||
65 | gic:interrupt-controller@10481000 { | 75 | gic:interrupt-controller@10481000 { |
66 | compatible = "arm,cortex-a9-gic"; | 76 | compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; |
67 | #interrupt-cells = <3>; | 77 | #interrupt-cells = <3>; |
68 | interrupt-controller; | 78 | interrupt-controller; |
69 | reg = <0x10481000 0x1000>, <0x10482000 0x2000>; | 79 | reg = <0x10481000 0x1000>, |
80 | <0x10482000 0x1000>, | ||
81 | <0x10484000 0x2000>, | ||
82 | <0x10486000 0x2000>; | ||
83 | interrupts = <1 9 0xf04>; | ||
84 | }; | ||
85 | |||
86 | timer { | ||
87 | compatible = "arm,armv7-timer"; | ||
88 | interrupts = <1 13 0xf08>, | ||
89 | <1 14 0xf08>, | ||
90 | <1 11 0xf08>, | ||
91 | <1 10 0xf08>; | ||
70 | }; | 92 | }; |
71 | 93 | ||
72 | combiner:interrupt-controller@10440000 { | 94 | combiner:interrupt-controller@10440000 { |
@@ -115,6 +137,36 @@ | |||
115 | interrupts = <1 2>, <22 4>; | 137 | interrupts = <1 2>, <22 4>; |
116 | }; | 138 | }; |
117 | 139 | ||
140 | pinctrl_0: pinctrl@11400000 { | ||
141 | compatible = "samsung,exynos5250-pinctrl"; | ||
142 | reg = <0x11400000 0x1000>; | ||
143 | interrupts = <0 46 0>; | ||
144 | |||
145 | wakup_eint: wakeup-interrupt-controller { | ||
146 | compatible = "samsung,exynos4210-wakeup-eint"; | ||
147 | interrupt-parent = <&gic>; | ||
148 | interrupts = <0 32 0>; | ||
149 | }; | ||
150 | }; | ||
151 | |||
152 | pinctrl_1: pinctrl@13400000 { | ||
153 | compatible = "samsung,exynos5250-pinctrl"; | ||
154 | reg = <0x13400000 0x1000>; | ||
155 | interrupts = <0 45 0>; | ||
156 | }; | ||
157 | |||
158 | pinctrl_2: pinctrl@10d10000 { | ||
159 | compatible = "samsung,exynos5250-pinctrl"; | ||
160 | reg = <0x10d10000 0x1000>; | ||
161 | interrupts = <0 50 0>; | ||
162 | }; | ||
163 | |||
164 | pinctrl_3: pinctrl@03680000 { | ||
165 | compatible = "samsung,exynos5250-pinctrl"; | ||
166 | reg = <0x0368000 0x1000>; | ||
167 | interrupts = <0 47 0>; | ||
168 | }; | ||
169 | |||
118 | watchdog { | 170 | watchdog { |
119 | compatible = "samsung,s3c2410-wdt"; | 171 | compatible = "samsung,s3c2410-wdt"; |
120 | reg = <0x101D0000 0x100>; | 172 | reg = <0x101D0000 0x100>; |
@@ -200,6 +252,8 @@ | |||
200 | #size-cells = <0>; | 252 | #size-cells = <0>; |
201 | clocks = <&clock 294>; | 253 | clocks = <&clock 294>; |
202 | clock-names = "i2c"; | 254 | clock-names = "i2c"; |
255 | pinctrl-names = "default"; | ||
256 | pinctrl-0 = <&i2c0_bus>; | ||
203 | }; | 257 | }; |
204 | 258 | ||
205 | i2c_1: i2c@12C70000 { | 259 | i2c_1: i2c@12C70000 { |
@@ -210,6 +264,8 @@ | |||
210 | #size-cells = <0>; | 264 | #size-cells = <0>; |
211 | clocks = <&clock 295>; | 265 | clocks = <&clock 295>; |
212 | clock-names = "i2c"; | 266 | clock-names = "i2c"; |
267 | pinctrl-names = "default"; | ||
268 | pinctrl-0 = <&i2c1_bus>; | ||
213 | }; | 269 | }; |
214 | 270 | ||
215 | i2c_2: i2c@12C80000 { | 271 | i2c_2: i2c@12C80000 { |
@@ -220,6 +276,8 @@ | |||
220 | #size-cells = <0>; | 276 | #size-cells = <0>; |
221 | clocks = <&clock 296>; | 277 | clocks = <&clock 296>; |
222 | clock-names = "i2c"; | 278 | clock-names = "i2c"; |
279 | pinctrl-names = "default"; | ||
280 | pinctrl-0 = <&i2c2_bus>; | ||
223 | }; | 281 | }; |
224 | 282 | ||
225 | i2c_3: i2c@12C90000 { | 283 | i2c_3: i2c@12C90000 { |
@@ -230,6 +288,8 @@ | |||
230 | #size-cells = <0>; | 288 | #size-cells = <0>; |
231 | clocks = <&clock 297>; | 289 | clocks = <&clock 297>; |
232 | clock-names = "i2c"; | 290 | clock-names = "i2c"; |
291 | pinctrl-names = "default"; | ||
292 | pinctrl-0 = <&i2c3_bus>; | ||
233 | }; | 293 | }; |
234 | 294 | ||
235 | i2c_4: i2c@12CA0000 { | 295 | i2c_4: i2c@12CA0000 { |
@@ -240,6 +300,8 @@ | |||
240 | #size-cells = <0>; | 300 | #size-cells = <0>; |
241 | clocks = <&clock 298>; | 301 | clocks = <&clock 298>; |
242 | clock-names = "i2c"; | 302 | clock-names = "i2c"; |
303 | pinctrl-names = "default"; | ||
304 | pinctrl-0 = <&i2c4_bus>; | ||
243 | }; | 305 | }; |
244 | 306 | ||
245 | i2c_5: i2c@12CB0000 { | 307 | i2c_5: i2c@12CB0000 { |
@@ -250,6 +312,8 @@ | |||
250 | #size-cells = <0>; | 312 | #size-cells = <0>; |
251 | clocks = <&clock 299>; | 313 | clocks = <&clock 299>; |
252 | clock-names = "i2c"; | 314 | clock-names = "i2c"; |
315 | pinctrl-names = "default"; | ||
316 | pinctrl-0 = <&i2c5_bus>; | ||
253 | }; | 317 | }; |
254 | 318 | ||
255 | i2c_6: i2c@12CC0000 { | 319 | i2c_6: i2c@12CC0000 { |
@@ -260,6 +324,8 @@ | |||
260 | #size-cells = <0>; | 324 | #size-cells = <0>; |
261 | clocks = <&clock 300>; | 325 | clocks = <&clock 300>; |
262 | clock-names = "i2c"; | 326 | clock-names = "i2c"; |
327 | pinctrl-names = "default"; | ||
328 | pinctrl-0 = <&i2c6_bus>; | ||
263 | }; | 329 | }; |
264 | 330 | ||
265 | i2c_7: i2c@12CD0000 { | 331 | i2c_7: i2c@12CD0000 { |
@@ -270,6 +336,8 @@ | |||
270 | #size-cells = <0>; | 336 | #size-cells = <0>; |
271 | clocks = <&clock 301>; | 337 | clocks = <&clock 301>; |
272 | clock-names = "i2c"; | 338 | clock-names = "i2c"; |
339 | pinctrl-names = "default"; | ||
340 | pinctrl-0 = <&i2c7_bus>; | ||
273 | }; | 341 | }; |
274 | 342 | ||
275 | i2c_8: i2c@12CE0000 { | 343 | i2c_8: i2c@12CE0000 { |
@@ -302,6 +370,8 @@ | |||
302 | #size-cells = <0>; | 370 | #size-cells = <0>; |
303 | clocks = <&clock 304>, <&clock 154>; | 371 | clocks = <&clock 304>, <&clock 154>; |
304 | clock-names = "spi", "spi_busclk0"; | 372 | clock-names = "spi", "spi_busclk0"; |
373 | pinctrl-names = "default"; | ||
374 | pinctrl-0 = <&spi0_bus>; | ||
305 | }; | 375 | }; |
306 | 376 | ||
307 | spi_1: spi@12d30000 { | 377 | spi_1: spi@12d30000 { |
@@ -315,6 +385,8 @@ | |||
315 | #size-cells = <0>; | 385 | #size-cells = <0>; |
316 | clocks = <&clock 305>, <&clock 155>; | 386 | clocks = <&clock 305>, <&clock 155>; |
317 | clock-names = "spi", "spi_busclk0"; | 387 | clock-names = "spi", "spi_busclk0"; |
388 | pinctrl-names = "default"; | ||
389 | pinctrl-0 = <&spi1_bus>; | ||
318 | }; | 390 | }; |
319 | 391 | ||
320 | spi_2: spi@12d40000 { | 392 | spi_2: spi@12d40000 { |
@@ -328,6 +400,8 @@ | |||
328 | #size-cells = <0>; | 400 | #size-cells = <0>; |
329 | clocks = <&clock 306>, <&clock 156>; | 401 | clocks = <&clock 306>, <&clock 156>; |
330 | clock-names = "spi", "spi_busclk0"; | 402 | clock-names = "spi", "spi_busclk0"; |
403 | pinctrl-names = "default"; | ||
404 | pinctrl-0 = <&spi2_bus>; | ||
331 | }; | 405 | }; |
332 | 406 | ||
333 | dwmmc_0: dwmmc0@12200000 { | 407 | dwmmc_0: dwmmc0@12200000 { |
@@ -381,6 +455,8 @@ | |||
381 | samsung,supports-rstclr; | 455 | samsung,supports-rstclr; |
382 | samsung,supports-secdai; | 456 | samsung,supports-secdai; |
383 | samsung,idma-addr = <0x03000000>; | 457 | samsung,idma-addr = <0x03000000>; |
458 | pinctrl-names = "default"; | ||
459 | pinctrl-0 = <&i2s0_bus>; | ||
384 | }; | 460 | }; |
385 | 461 | ||
386 | i2s1: i2s@12D60000 { | 462 | i2s1: i2s@12D60000 { |
@@ -389,6 +465,8 @@ | |||
389 | dmas = <&pdma1 12 | 465 | dmas = <&pdma1 12 |
390 | &pdma1 11>; | 466 | &pdma1 11>; |
391 | dma-names = "tx", "rx"; | 467 | dma-names = "tx", "rx"; |
468 | pinctrl-names = "default"; | ||
469 | pinctrl-0 = <&i2s1_bus>; | ||
392 | }; | 470 | }; |
393 | 471 | ||
394 | i2s2: i2s@12D70000 { | 472 | i2s2: i2s@12D70000 { |
@@ -397,18 +475,26 @@ | |||
397 | dmas = <&pdma0 12 | 475 | dmas = <&pdma0 12 |
398 | &pdma0 11>; | 476 | &pdma0 11>; |
399 | dma-names = "tx", "rx"; | 477 | dma-names = "tx", "rx"; |
478 | pinctrl-names = "default"; | ||
479 | pinctrl-0 = <&i2s2_bus>; | ||
400 | }; | 480 | }; |
401 | 481 | ||
402 | usb@12110000 { | 482 | usb@12110000 { |
403 | compatible = "samsung,exynos4210-ehci"; | 483 | compatible = "samsung,exynos4210-ehci"; |
404 | reg = <0x12110000 0x100>; | 484 | reg = <0x12110000 0x100>; |
405 | interrupts = <0 71 0>; | 485 | interrupts = <0 71 0>; |
486 | |||
487 | clocks = <&clock 285>; | ||
488 | clock-names = "usbhost"; | ||
406 | }; | 489 | }; |
407 | 490 | ||
408 | usb@12120000 { | 491 | usb@12120000 { |
409 | compatible = "samsung,exynos4210-ohci"; | 492 | compatible = "samsung,exynos4210-ohci"; |
410 | reg = <0x12120000 0x100>; | 493 | reg = <0x12120000 0x100>; |
411 | interrupts = <0 71 0>; | 494 | interrupts = <0 71 0>; |
495 | |||
496 | clocks = <&clock 285>; | ||
497 | clock-names = "usbhost"; | ||
412 | }; | 498 | }; |
413 | 499 | ||
414 | amba { | 500 | amba { |
@@ -463,254 +549,6 @@ | |||
463 | }; | 549 | }; |
464 | }; | 550 | }; |
465 | 551 | ||
466 | gpio-controllers { | ||
467 | #address-cells = <1>; | ||
468 | #size-cells = <1>; | ||
469 | gpio-controller; | ||
470 | ranges; | ||
471 | |||
472 | gpa0: gpio-controller@11400000 { | ||
473 | compatible = "samsung,exynos4-gpio"; | ||
474 | reg = <0x11400000 0x20>; | ||
475 | #gpio-cells = <4>; | ||
476 | }; | ||
477 | |||
478 | gpa1: gpio-controller@11400020 { | ||
479 | compatible = "samsung,exynos4-gpio"; | ||
480 | reg = <0x11400020 0x20>; | ||
481 | #gpio-cells = <4>; | ||
482 | }; | ||
483 | |||
484 | gpa2: gpio-controller@11400040 { | ||
485 | compatible = "samsung,exynos4-gpio"; | ||
486 | reg = <0x11400040 0x20>; | ||
487 | #gpio-cells = <4>; | ||
488 | }; | ||
489 | |||
490 | gpb0: gpio-controller@11400060 { | ||
491 | compatible = "samsung,exynos4-gpio"; | ||
492 | reg = <0x11400060 0x20>; | ||
493 | #gpio-cells = <4>; | ||
494 | }; | ||
495 | |||
496 | gpb1: gpio-controller@11400080 { | ||
497 | compatible = "samsung,exynos4-gpio"; | ||
498 | reg = <0x11400080 0x20>; | ||
499 | #gpio-cells = <4>; | ||
500 | }; | ||
501 | |||
502 | gpb2: gpio-controller@114000A0 { | ||
503 | compatible = "samsung,exynos4-gpio"; | ||
504 | reg = <0x114000A0 0x20>; | ||
505 | #gpio-cells = <4>; | ||
506 | }; | ||
507 | |||
508 | gpb3: gpio-controller@114000C0 { | ||
509 | compatible = "samsung,exynos4-gpio"; | ||
510 | reg = <0x114000C0 0x20>; | ||
511 | #gpio-cells = <4>; | ||
512 | }; | ||
513 | |||
514 | gpc0: gpio-controller@114000E0 { | ||
515 | compatible = "samsung,exynos4-gpio"; | ||
516 | reg = <0x114000E0 0x20>; | ||
517 | #gpio-cells = <4>; | ||
518 | }; | ||
519 | |||
520 | gpc1: gpio-controller@11400100 { | ||
521 | compatible = "samsung,exynos4-gpio"; | ||
522 | reg = <0x11400100 0x20>; | ||
523 | #gpio-cells = <4>; | ||
524 | }; | ||
525 | |||
526 | gpc2: gpio-controller@11400120 { | ||
527 | compatible = "samsung,exynos4-gpio"; | ||
528 | reg = <0x11400120 0x20>; | ||
529 | #gpio-cells = <4>; | ||
530 | }; | ||
531 | |||
532 | gpc3: gpio-controller@11400140 { | ||
533 | compatible = "samsung,exynos4-gpio"; | ||
534 | reg = <0x11400140 0x20>; | ||
535 | #gpio-cells = <4>; | ||
536 | }; | ||
537 | |||
538 | gpc4: gpio-controller@114002E0 { | ||
539 | compatible = "samsung,exynos4-gpio"; | ||
540 | reg = <0x114002E0 0x20>; | ||
541 | #gpio-cells = <4>; | ||
542 | }; | ||
543 | |||
544 | gpd0: gpio-controller@11400160 { | ||
545 | compatible = "samsung,exynos4-gpio"; | ||
546 | reg = <0x11400160 0x20>; | ||
547 | #gpio-cells = <4>; | ||
548 | }; | ||
549 | |||
550 | gpd1: gpio-controller@11400180 { | ||
551 | compatible = "samsung,exynos4-gpio"; | ||
552 | reg = <0x11400180 0x20>; | ||
553 | #gpio-cells = <4>; | ||
554 | }; | ||
555 | |||
556 | gpy0: gpio-controller@114001A0 { | ||
557 | compatible = "samsung,exynos4-gpio"; | ||
558 | reg = <0x114001A0 0x20>; | ||
559 | #gpio-cells = <4>; | ||
560 | }; | ||
561 | |||
562 | gpy1: gpio-controller@114001C0 { | ||
563 | compatible = "samsung,exynos4-gpio"; | ||
564 | reg = <0x114001C0 0x20>; | ||
565 | #gpio-cells = <4>; | ||
566 | }; | ||
567 | |||
568 | gpy2: gpio-controller@114001E0 { | ||
569 | compatible = "samsung,exynos4-gpio"; | ||
570 | reg = <0x114001E0 0x20>; | ||
571 | #gpio-cells = <4>; | ||
572 | }; | ||
573 | |||
574 | gpy3: gpio-controller@11400200 { | ||
575 | compatible = "samsung,exynos4-gpio"; | ||
576 | reg = <0x11400200 0x20>; | ||
577 | #gpio-cells = <4>; | ||
578 | }; | ||
579 | |||
580 | gpy4: gpio-controller@11400220 { | ||
581 | compatible = "samsung,exynos4-gpio"; | ||
582 | reg = <0x11400220 0x20>; | ||
583 | #gpio-cells = <4>; | ||
584 | }; | ||
585 | |||
586 | gpy5: gpio-controller@11400240 { | ||
587 | compatible = "samsung,exynos4-gpio"; | ||
588 | reg = <0x11400240 0x20>; | ||
589 | #gpio-cells = <4>; | ||
590 | }; | ||
591 | |||
592 | gpy6: gpio-controller@11400260 { | ||
593 | compatible = "samsung,exynos4-gpio"; | ||
594 | reg = <0x11400260 0x20>; | ||
595 | #gpio-cells = <4>; | ||
596 | }; | ||
597 | |||
598 | gpx0: gpio-controller@11400C00 { | ||
599 | compatible = "samsung,exynos4-gpio"; | ||
600 | reg = <0x11400C00 0x20>; | ||
601 | #gpio-cells = <4>; | ||
602 | }; | ||
603 | |||
604 | gpx1: gpio-controller@11400C20 { | ||
605 | compatible = "samsung,exynos4-gpio"; | ||
606 | reg = <0x11400C20 0x20>; | ||
607 | #gpio-cells = <4>; | ||
608 | }; | ||
609 | |||
610 | gpx2: gpio-controller@11400C40 { | ||
611 | compatible = "samsung,exynos4-gpio"; | ||
612 | reg = <0x11400C40 0x20>; | ||
613 | #gpio-cells = <4>; | ||
614 | }; | ||
615 | |||
616 | gpx3: gpio-controller@11400C60 { | ||
617 | compatible = "samsung,exynos4-gpio"; | ||
618 | reg = <0x11400C60 0x20>; | ||
619 | #gpio-cells = <4>; | ||
620 | }; | ||
621 | |||
622 | gpe0: gpio-controller@13400000 { | ||
623 | compatible = "samsung,exynos4-gpio"; | ||
624 | reg = <0x13400000 0x20>; | ||
625 | #gpio-cells = <4>; | ||
626 | }; | ||
627 | |||
628 | gpe1: gpio-controller@13400020 { | ||
629 | compatible = "samsung,exynos4-gpio"; | ||
630 | reg = <0x13400020 0x20>; | ||
631 | #gpio-cells = <4>; | ||
632 | }; | ||
633 | |||
634 | gpf0: gpio-controller@13400040 { | ||
635 | compatible = "samsung,exynos4-gpio"; | ||
636 | reg = <0x13400040 0x20>; | ||
637 | #gpio-cells = <4>; | ||
638 | }; | ||
639 | |||
640 | gpf1: gpio-controller@13400060 { | ||
641 | compatible = "samsung,exynos4-gpio"; | ||
642 | reg = <0x13400060 0x20>; | ||
643 | #gpio-cells = <4>; | ||
644 | }; | ||
645 | |||
646 | gpg0: gpio-controller@13400080 { | ||
647 | compatible = "samsung,exynos4-gpio"; | ||
648 | reg = <0x13400080 0x20>; | ||
649 | #gpio-cells = <4>; | ||
650 | }; | ||
651 | |||
652 | gpg1: gpio-controller@134000A0 { | ||
653 | compatible = "samsung,exynos4-gpio"; | ||
654 | reg = <0x134000A0 0x20>; | ||
655 | #gpio-cells = <4>; | ||
656 | }; | ||
657 | |||
658 | gpg2: gpio-controller@134000C0 { | ||
659 | compatible = "samsung,exynos4-gpio"; | ||
660 | reg = <0x134000C0 0x20>; | ||
661 | #gpio-cells = <4>; | ||
662 | }; | ||
663 | |||
664 | gph0: gpio-controller@134000E0 { | ||
665 | compatible = "samsung,exynos4-gpio"; | ||
666 | reg = <0x134000E0 0x20>; | ||
667 | #gpio-cells = <4>; | ||
668 | }; | ||
669 | |||
670 | gph1: gpio-controller@13400100 { | ||
671 | compatible = "samsung,exynos4-gpio"; | ||
672 | reg = <0x13400100 0x20>; | ||
673 | #gpio-cells = <4>; | ||
674 | }; | ||
675 | |||
676 | gpv0: gpio-controller@10D10000 { | ||
677 | compatible = "samsung,exynos4-gpio"; | ||
678 | reg = <0x10D10000 0x20>; | ||
679 | #gpio-cells = <4>; | ||
680 | }; | ||
681 | |||
682 | gpv1: gpio-controller@10D10020 { | ||
683 | compatible = "samsung,exynos4-gpio"; | ||
684 | reg = <0x10D10020 0x20>; | ||
685 | #gpio-cells = <4>; | ||
686 | }; | ||
687 | |||
688 | gpv2: gpio-controller@10D10040 { | ||
689 | compatible = "samsung,exynos4-gpio"; | ||
690 | reg = <0x10D10060 0x20>; | ||
691 | #gpio-cells = <4>; | ||
692 | }; | ||
693 | |||
694 | gpv3: gpio-controller@10D10060 { | ||
695 | compatible = "samsung,exynos4-gpio"; | ||
696 | reg = <0x10D10080 0x20>; | ||
697 | #gpio-cells = <4>; | ||
698 | }; | ||
699 | |||
700 | gpv4: gpio-controller@10D10080 { | ||
701 | compatible = "samsung,exynos4-gpio"; | ||
702 | reg = <0x10D100C0 0x20>; | ||
703 | #gpio-cells = <4>; | ||
704 | }; | ||
705 | |||
706 | gpz: gpio-controller@03860000 { | ||
707 | compatible = "samsung,exynos4-gpio"; | ||
708 | reg = <0x03860000 0x20>; | ||
709 | #gpio-cells = <4>; | ||
710 | }; | ||
711 | }; | ||
712 | |||
713 | |||
714 | gsc_0: gsc@0x13e00000 { | 552 | gsc_0: gsc@0x13e00000 { |
715 | compatible = "samsung,exynos5-gsc"; | 553 | compatible = "samsung,exynos5-gsc"; |
716 | reg = <0x13e00000 0x1000>; | 554 | reg = <0x13e00000 0x1000>; |
@@ -776,4 +614,14 @@ | |||
776 | samsung,enable-mask = <1>; | 614 | samsung,enable-mask = <1>; |
777 | }; | 615 | }; |
778 | }; | 616 | }; |
617 | |||
618 | fimd { | ||
619 | compatible = "samsung,exynos5250-fimd"; | ||
620 | interrupt-parent = <&combiner>; | ||
621 | reg = <0x14400000 0x40000>; | ||
622 | interrupt-names = "fifo", "vsync", "lcd_sys"; | ||
623 | interrupts = <18 4>, <18 5>, <18 6>; | ||
624 | clocks = <&clock 133>, <&clock 339>; | ||
625 | clock-names = "sclk_fimd", "fimd"; | ||
626 | }; | ||
779 | }; | 627 | }; |
diff --git a/arch/arm/boot/dts/exynos5440-sd5v1.dts b/arch/arm/boot/dts/exynos5440-sd5v1.dts new file mode 100644 index 000000000000..ef747b52b674 --- /dev/null +++ b/arch/arm/boot/dts/exynos5440-sd5v1.dts | |||
@@ -0,0 +1,39 @@ | |||
1 | /* | ||
2 | * SAMSUNG SD5v1 board device tree source | ||
3 | * | ||
4 | * Copyright (c) 2013 Samsung Electronics Co., Ltd. | ||
5 | * http://www.samsung.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 | /dts-v1/; | ||
13 | /include/ "exynos5440.dtsi" | ||
14 | |||
15 | / { | ||
16 | model = "SAMSUNG SD5v1 board based on EXYNOS5440"; | ||
17 | compatible = "samsung,sd5v1", "samsung,exynos5440"; | ||
18 | |||
19 | chosen { | ||
20 | bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200"; | ||
21 | }; | ||
22 | |||
23 | fixed-rate-clocks { | ||
24 | xtal { | ||
25 | compatible = "samsung,clock-xtal"; | ||
26 | clock-frequency = <50000000>; | ||
27 | }; | ||
28 | }; | ||
29 | |||
30 | gmac: ethernet@00230000 { | ||
31 | fixed_phy; | ||
32 | phy_addr = <1>; | ||
33 | }; | ||
34 | |||
35 | spi { | ||
36 | status = "disabled"; | ||
37 | }; | ||
38 | |||
39 | }; | ||
diff --git a/arch/arm/boot/dts/exynos5440-ssdk5440.dts b/arch/arm/boot/dts/exynos5440-ssdk5440.dts index a21eb4cbe893..d55042beb5c5 100644 --- a/arch/arm/boot/dts/exynos5440-ssdk5440.dts +++ b/arch/arm/boot/dts/exynos5440-ssdk5440.dts | |||
@@ -16,12 +16,8 @@ | |||
16 | model = "SAMSUNG SSDK5440 board based on EXYNOS5440"; | 16 | model = "SAMSUNG SSDK5440 board based on EXYNOS5440"; |
17 | compatible = "samsung,ssdk5440", "samsung,exynos5440"; | 17 | compatible = "samsung,ssdk5440", "samsung,exynos5440"; |
18 | 18 | ||
19 | memory { | ||
20 | reg = <0x80000000 0x80000000>; | ||
21 | }; | ||
22 | |||
23 | chosen { | 19 | chosen { |
24 | bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x81000000,8M console=ttySAC0,115200 init=/linuxrc"; | 20 | bootargs = "root=/dev/sda2 rw rootwait ignore_loglevel early_printk no_console_suspend mem=2048M@0x80000000 console=ttySAC0,115200"; |
25 | }; | 21 | }; |
26 | 22 | ||
27 | spi { | 23 | spi { |
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi index 48cc96aa0b5f..f6b1c8973845 100644 --- a/arch/arm/boot/dts/exynos5440.dtsi +++ b/arch/arm/boot/dts/exynos5440.dtsi | |||
@@ -26,7 +26,11 @@ | |||
26 | compatible = "arm,cortex-a15-gic"; | 26 | compatible = "arm,cortex-a15-gic"; |
27 | #interrupt-cells = <3>; | 27 | #interrupt-cells = <3>; |
28 | interrupt-controller; | 28 | interrupt-controller; |
29 | reg = <0x2E1000 0x1000>, <0x2E2000 0x1000>; | 29 | reg = <0x2E1000 0x1000>, |
30 | <0x2E2000 0x1000>, | ||
31 | <0x2E4000 0x2000>, | ||
32 | <0x2E6000 0x2000>; | ||
33 | interrupts = <1 9 0xf04>; | ||
30 | }; | 34 | }; |
31 | 35 | ||
32 | cpus { | 36 | cpus { |
@@ -51,6 +55,14 @@ | |||
51 | }; | 55 | }; |
52 | }; | 56 | }; |
53 | 57 | ||
58 | arm-pmu { | ||
59 | compatible = "arm,cortex-a15-pmu", "arm,cortex-a9-pmu"; | ||
60 | interrupts = <0 52 4>, | ||
61 | <0 53 4>, | ||
62 | <0 54 4>, | ||
63 | <0 55 4>; | ||
64 | }; | ||
65 | |||
54 | timer { | 66 | timer { |
55 | compatible = "arm,cortex-a15-timer", | 67 | compatible = "arm,cortex-a15-timer", |
56 | "arm,armv7-timer"; | 68 | "arm,armv7-timer"; |
@@ -61,6 +73,18 @@ | |||
61 | clock-frequency = <50000000>; | 73 | clock-frequency = <50000000>; |
62 | }; | 74 | }; |
63 | 75 | ||
76 | cpufreq@160000 { | ||
77 | compatible = "samsung,exynos5440-cpufreq"; | ||
78 | reg = <0x160000 0x1000>; | ||
79 | interrupts = <0 57 0>; | ||
80 | operating-points = < | ||
81 | /* KHz uV */ | ||
82 | 1200000 1025000 | ||
83 | 1000000 975000 | ||
84 | 800000 925000 | ||
85 | >; | ||
86 | }; | ||
87 | |||
64 | serial@B0000 { | 88 | serial@B0000 { |
65 | compatible = "samsung,exynos4210-uart"; | 89 | compatible = "samsung,exynos4210-uart"; |
66 | reg = <0xB0000 0x1000>; | 90 | reg = <0xB0000 0x1000>; |
@@ -92,6 +116,8 @@ | |||
92 | pinctrl { | 116 | pinctrl { |
93 | compatible = "samsung,exynos5440-pinctrl"; | 117 | compatible = "samsung,exynos5440-pinctrl"; |
94 | reg = <0xE0000 0x1000>; | 118 | reg = <0xE0000 0x1000>; |
119 | interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, | ||
120 | <0 41 0>, <0 42 0>, <0 43 0>, <0 44 0>; | ||
95 | interrupt-controller; | 121 | interrupt-controller; |
96 | #interrupt-cells = <2>; | 122 | #interrupt-cells = <2>; |
97 | #gpio-cells = <2>; | 123 | #gpio-cells = <2>; |
@@ -141,6 +167,17 @@ | |||
141 | clock-names = "watchdog"; | 167 | clock-names = "watchdog"; |
142 | }; | 168 | }; |
143 | 169 | ||
170 | gmac: ethernet@00230000 { | ||
171 | compatible = "snps,dwmac-3.70a"; | ||
172 | reg = <0x00230000 0x8000>; | ||
173 | interrupt-parent = <&gic>; | ||
174 | interrupts = <0 31 4>; | ||
175 | interrupt-names = "macirq"; | ||
176 | phy-mode = "sgmii"; | ||
177 | clocks = <&clock 25>; | ||
178 | clock-names = "stmmaceth"; | ||
179 | }; | ||
180 | |||
144 | amba { | 181 | amba { |
145 | #address-cells = <1>; | 182 | #address-cells = <1>; |
146 | #size-cells = <1>; | 183 | #size-cells = <1>; |
@@ -148,22 +185,22 @@ | |||
148 | interrupt-parent = <&gic>; | 185 | interrupt-parent = <&gic>; |
149 | ranges; | 186 | ranges; |
150 | 187 | ||
151 | pdma0: pdma@121A0000 { | 188 | pdma0: pdma@00121000 { |
152 | compatible = "arm,pl330", "arm,primecell"; | 189 | compatible = "arm,pl330", "arm,primecell"; |
153 | reg = <0x120000 0x1000>; | 190 | reg = <0x121000 0x1000>; |
154 | interrupts = <0 34 0>; | 191 | interrupts = <0 46 0>; |
155 | clocks = <&clock 21>; | 192 | clocks = <&clock 8>; |
156 | clock-names = "apb_pclk"; | 193 | clock-names = "apb_pclk"; |
157 | #dma-cells = <1>; | 194 | #dma-cells = <1>; |
158 | #dma-channels = <8>; | 195 | #dma-channels = <8>; |
159 | #dma-requests = <32>; | 196 | #dma-requests = <32>; |
160 | }; | 197 | }; |
161 | 198 | ||
162 | pdma1: pdma@121B0000 { | 199 | pdma1: pdma@00120000 { |
163 | compatible = "arm,pl330", "arm,primecell"; | 200 | compatible = "arm,pl330", "arm,primecell"; |
164 | reg = <0x121000 0x1000>; | 201 | reg = <0x120000 0x1000>; |
165 | interrupts = <0 35 0>; | 202 | interrupts = <0 47 0>; |
166 | clocks = <&clock 21>; | 203 | clocks = <&clock 8>; |
167 | clock-names = "apb_pclk"; | 204 | clock-names = "apb_pclk"; |
168 | #dma-cells = <1>; | 205 | #dma-cells = <1>; |
169 | #dma-channels = <8>; | 206 | #dma-channels = <8>; |
diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts index 035c13f9d3c0..da0588a04131 100644 --- a/arch/arm/boot/dts/imx23-evk.dts +++ b/arch/arm/boot/dts/imx23-evk.dts | |||
@@ -59,8 +59,33 @@ | |||
59 | lcdif@80030000 { | 59 | lcdif@80030000 { |
60 | pinctrl-names = "default"; | 60 | pinctrl-names = "default"; |
61 | pinctrl-0 = <&lcdif_24bit_pins_a>; | 61 | pinctrl-0 = <&lcdif_24bit_pins_a>; |
62 | panel-enable-gpios = <&gpio1 18 0>; | 62 | lcd-supply = <®_lcd_3v3>; |
63 | display = <&display>; | ||
63 | status = "okay"; | 64 | status = "okay"; |
65 | |||
66 | display: display { | ||
67 | bits-per-pixel = <32>; | ||
68 | bus-width = <24>; | ||
69 | |||
70 | display-timings { | ||
71 | native-mode = <&timing0>; | ||
72 | timing0: timing0 { | ||
73 | clock-frequency = <9200000>; | ||
74 | hactive = <480>; | ||
75 | vactive = <272>; | ||
76 | hback-porch = <15>; | ||
77 | hfront-porch = <8>; | ||
78 | vback-porch = <12>; | ||
79 | vfront-porch = <4>; | ||
80 | hsync-len = <1>; | ||
81 | vsync-len = <1>; | ||
82 | hsync-active = <0>; | ||
83 | vsync-active = <0>; | ||
84 | de-active = <1>; | ||
85 | pixelclk-active = <0>; | ||
86 | }; | ||
87 | }; | ||
88 | }; | ||
64 | }; | 89 | }; |
65 | }; | 90 | }; |
66 | 91 | ||
@@ -95,6 +120,15 @@ | |||
95 | regulator-max-microvolt = <3300000>; | 120 | regulator-max-microvolt = <3300000>; |
96 | gpio = <&gpio1 29 0>; | 121 | gpio = <&gpio1 29 0>; |
97 | }; | 122 | }; |
123 | |||
124 | reg_lcd_3v3: lcd-3v3 { | ||
125 | compatible = "regulator-fixed"; | ||
126 | regulator-name = "lcd-3v3"; | ||
127 | regulator-min-microvolt = <3300000>; | ||
128 | regulator-max-microvolt = <3300000>; | ||
129 | gpio = <&gpio1 18 0>; | ||
130 | enable-active-high; | ||
131 | }; | ||
98 | }; | 132 | }; |
99 | 133 | ||
100 | backlight { | 134 | backlight { |
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts index e7484e4ea659..d107c4af321f 100644 --- a/arch/arm/boot/dts/imx23-olinuxino.dts +++ b/arch/arm/boot/dts/imx23-olinuxino.dts | |||
@@ -29,6 +29,7 @@ | |||
29 | pinctrl-names = "default"; | 29 | pinctrl-names = "default"; |
30 | pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; | 30 | pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; |
31 | bus-width = <4>; | 31 | bus-width = <4>; |
32 | broken-cd; | ||
32 | status = "okay"; | 33 | status = "okay"; |
33 | }; | 34 | }; |
34 | 35 | ||
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi index ad2d79324cd3..73fd7d0887b5 100644 --- a/arch/arm/boot/dts/imx23.dtsi +++ b/arch/arm/boot/dts/imx23.dtsi | |||
@@ -49,9 +49,15 @@ | |||
49 | reg = <0x80000000 0x2000>; | 49 | reg = <0x80000000 0x2000>; |
50 | }; | 50 | }; |
51 | 51 | ||
52 | dma-apbh@80004000 { | 52 | dma_apbh: dma-apbh@80004000 { |
53 | compatible = "fsl,imx23-dma-apbh"; | 53 | compatible = "fsl,imx23-dma-apbh"; |
54 | reg = <0x80004000 0x2000>; | 54 | reg = <0x80004000 0x2000>; |
55 | interrupts = <0 14 20 0 | ||
56 | 13 13 13 13>; | ||
57 | interrupt-names = "empty", "ssp0", "ssp1", "empty", | ||
58 | "gpmi0", "gpmi1", "gpmi2", "gpmi3"; | ||
59 | #dma-cells = <1>; | ||
60 | dma-channels = <8>; | ||
55 | clocks = <&clks 15>; | 61 | clocks = <&clks 15>; |
56 | }; | 62 | }; |
57 | 63 | ||
@@ -70,6 +76,8 @@ | |||
70 | interrupt-names = "gpmi-dma", "bch"; | 76 | interrupt-names = "gpmi-dma", "bch"; |
71 | clocks = <&clks 34>; | 77 | clocks = <&clks 34>; |
72 | clock-names = "gpmi_io"; | 78 | clock-names = "gpmi_io"; |
79 | dmas = <&dma_apbh 4>; | ||
80 | dma-names = "rx-tx"; | ||
73 | fsl,gpmi-dma-channel = <4>; | 81 | fsl,gpmi-dma-channel = <4>; |
74 | status = "disabled"; | 82 | status = "disabled"; |
75 | }; | 83 | }; |
@@ -78,6 +86,8 @@ | |||
78 | reg = <0x80010000 0x2000>; | 86 | reg = <0x80010000 0x2000>; |
79 | interrupts = <15 14>; | 87 | interrupts = <15 14>; |
80 | clocks = <&clks 33>; | 88 | clocks = <&clks 33>; |
89 | dmas = <&dma_apbh 1>; | ||
90 | dma-names = "rx-tx"; | ||
81 | fsl,ssp-dma-channel = <1>; | 91 | fsl,ssp-dma-channel = <1>; |
82 | status = "disabled"; | 92 | status = "disabled"; |
83 | }; | 93 | }; |
@@ -305,9 +315,19 @@ | |||
305 | status = "disabled"; | 315 | status = "disabled"; |
306 | }; | 316 | }; |
307 | 317 | ||
308 | dma-apbx@80024000 { | 318 | dma_apbx: dma-apbx@80024000 { |
309 | compatible = "fsl,imx23-dma-apbx"; | 319 | compatible = "fsl,imx23-dma-apbx"; |
310 | reg = <0x80024000 0x2000>; | 320 | reg = <0x80024000 0x2000>; |
321 | interrupts = <7 5 9 26 | ||
322 | 19 0 25 23 | ||
323 | 60 58 9 0 | ||
324 | 0 0 0 0>; | ||
325 | interrupt-names = "audio-adc", "audio-dac", "spdif-tx", "i2c", | ||
326 | "saif0", "empty", "auart0-rx", "auart0-tx", | ||
327 | "auart1-rx", "auart1-tx", "saif1", "empty", | ||
328 | "empty", "empty", "empty", "empty"; | ||
329 | #dma-cells = <1>; | ||
330 | dma-channels = <16>; | ||
311 | clocks = <&clks 16>; | 331 | clocks = <&clks 16>; |
312 | }; | 332 | }; |
313 | 333 | ||
@@ -344,6 +364,8 @@ | |||
344 | reg = <0x80034000 0x2000>; | 364 | reg = <0x80034000 0x2000>; |
345 | interrupts = <2 20>; | 365 | interrupts = <2 20>; |
346 | clocks = <&clks 33>; | 366 | clocks = <&clks 33>; |
367 | dmas = <&dma_apbh 2>; | ||
368 | dma-names = "rx-tx"; | ||
347 | fsl,ssp-dma-channel = <2>; | 369 | fsl,ssp-dma-channel = <2>; |
348 | status = "disabled"; | 370 | status = "disabled"; |
349 | }; | 371 | }; |
@@ -369,6 +391,8 @@ | |||
369 | 391 | ||
370 | saif0: saif@80042000 { | 392 | saif0: saif@80042000 { |
371 | reg = <0x80042000 0x2000>; | 393 | reg = <0x80042000 0x2000>; |
394 | dmas = <&dma_apbx 4>; | ||
395 | dma-names = "rx-tx"; | ||
372 | status = "disabled"; | 396 | status = "disabled"; |
373 | }; | 397 | }; |
374 | 398 | ||
@@ -379,16 +403,22 @@ | |||
379 | 403 | ||
380 | saif1: saif@80046000 { | 404 | saif1: saif@80046000 { |
381 | reg = <0x80046000 0x2000>; | 405 | reg = <0x80046000 0x2000>; |
406 | dmas = <&dma_apbx 10>; | ||
407 | dma-names = "rx-tx"; | ||
382 | status = "disabled"; | 408 | status = "disabled"; |
383 | }; | 409 | }; |
384 | 410 | ||
385 | audio-out@80048000 { | 411 | audio-out@80048000 { |
386 | reg = <0x80048000 0x2000>; | 412 | reg = <0x80048000 0x2000>; |
413 | dmas = <&dma_apbx 1>; | ||
414 | dma-names = "tx"; | ||
387 | status = "disabled"; | 415 | status = "disabled"; |
388 | }; | 416 | }; |
389 | 417 | ||
390 | audio-in@8004c000 { | 418 | audio-in@8004c000 { |
391 | reg = <0x8004c000 0x2000>; | 419 | reg = <0x8004c000 0x2000>; |
420 | dmas = <&dma_apbx 0>; | ||
421 | dma-names = "rx"; | ||
392 | status = "disabled"; | 422 | status = "disabled"; |
393 | }; | 423 | }; |
394 | 424 | ||
@@ -401,11 +431,15 @@ | |||
401 | 431 | ||
402 | spdif@80054000 { | 432 | spdif@80054000 { |
403 | reg = <0x80054000 2000>; | 433 | reg = <0x80054000 2000>; |
434 | dmas = <&dma_apbx 2>; | ||
435 | dma-names = "tx"; | ||
404 | status = "disabled"; | 436 | status = "disabled"; |
405 | }; | 437 | }; |
406 | 438 | ||
407 | i2c@80058000 { | 439 | i2c@80058000 { |
408 | reg = <0x80058000 0x2000>; | 440 | reg = <0x80058000 0x2000>; |
441 | dmas = <&dma_apbx 3>; | ||
442 | dma-names = "rx-tx"; | ||
409 | status = "disabled"; | 443 | status = "disabled"; |
410 | }; | 444 | }; |
411 | 445 | ||
@@ -436,6 +470,8 @@ | |||
436 | reg = <0x8006c000 0x2000>; | 470 | reg = <0x8006c000 0x2000>; |
437 | interrupts = <24 25 23>; | 471 | interrupts = <24 25 23>; |
438 | clocks = <&clks 32>; | 472 | clocks = <&clks 32>; |
473 | dmas = <&dma_apbx 6>, <&dma_apbx 7>; | ||
474 | dma-names = "rx", "tx"; | ||
439 | status = "disabled"; | 475 | status = "disabled"; |
440 | }; | 476 | }; |
441 | 477 | ||
@@ -444,6 +480,8 @@ | |||
444 | reg = <0x8006e000 0x2000>; | 480 | reg = <0x8006e000 0x2000>; |
445 | interrupts = <59 60 58>; | 481 | interrupts = <59 60 58>; |
446 | clocks = <&clks 32>; | 482 | clocks = <&clks 32>; |
483 | dmas = <&dma_apbx 8>, <&dma_apbx 9>; | ||
484 | dma-names = "rx", "tx"; | ||
447 | status = "disabled"; | 485 | status = "disabled"; |
448 | }; | 486 | }; |
449 | 487 | ||
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts index 6d8865bfb4b7..3d905d16cbec 100644 --- a/arch/arm/boot/dts/imx28-apf28dev.dts +++ b/arch/arm/boot/dts/imx28-apf28dev.dts | |||
@@ -72,7 +72,32 @@ | |||
72 | pinctrl-names = "default"; | 72 | pinctrl-names = "default"; |
73 | pinctrl-0 = <&lcdif_16bit_pins_a | 73 | pinctrl-0 = <&lcdif_16bit_pins_a |
74 | &lcdif_pins_apf28dev>; | 74 | &lcdif_pins_apf28dev>; |
75 | display = <&display>; | ||
75 | status = "okay"; | 76 | status = "okay"; |
77 | |||
78 | display: display { | ||
79 | bits-per-pixel = <16>; | ||
80 | bus-width = <16>; | ||
81 | |||
82 | display-timings { | ||
83 | native-mode = <&timing0>; | ||
84 | timing0: timing0 { | ||
85 | clock-frequency = <33000033>; | ||
86 | hactive = <800>; | ||
87 | vactive = <480>; | ||
88 | hback-porch = <96>; | ||
89 | hfront-porch = <96>; | ||
90 | vback-porch = <20>; | ||
91 | vfront-porch = <21>; | ||
92 | hsync-len = <64>; | ||
93 | vsync-len = <4>; | ||
94 | hsync-active = <1>; | ||
95 | vsync-active = <1>; | ||
96 | de-active = <1>; | ||
97 | pixelclk-active = <0>; | ||
98 | }; | ||
99 | }; | ||
100 | }; | ||
76 | }; | 101 | }; |
77 | }; | 102 | }; |
78 | 103 | ||
diff --git a/arch/arm/boot/dts/imx28-apx4devkit.dts b/arch/arm/boot/dts/imx28-apx4devkit.dts index 5171667a7763..43bf3c796cba 100644 --- a/arch/arm/boot/dts/imx28-apx4devkit.dts +++ b/arch/arm/boot/dts/imx28-apx4devkit.dts | |||
@@ -94,7 +94,32 @@ | |||
94 | pinctrl-names = "default"; | 94 | pinctrl-names = "default"; |
95 | pinctrl-0 = <&lcdif_24bit_pins_a | 95 | pinctrl-0 = <&lcdif_24bit_pins_a |
96 | &lcdif_pins_apx4>; | 96 | &lcdif_pins_apx4>; |
97 | display = <&display>; | ||
97 | status = "okay"; | 98 | status = "okay"; |
99 | |||
100 | display: display { | ||
101 | bits-per-pixel = <32>; | ||
102 | bus-width = <24>; | ||
103 | |||
104 | display-timings { | ||
105 | native-mode = <&timing0>; | ||
106 | timing0: timing0 { | ||
107 | clock-frequency = <30000000>; | ||
108 | hactive = <800>; | ||
109 | vactive = <480>; | ||
110 | hback-porch = <88>; | ||
111 | hfront-porch = <40>; | ||
112 | vback-porch = <32>; | ||
113 | vfront-porch = <13>; | ||
114 | hsync-len = <48>; | ||
115 | vsync-len = <3>; | ||
116 | hsync-active = <1>; | ||
117 | vsync-active = <1>; | ||
118 | de-active = <1>; | ||
119 | pixelclk-active = <0>; | ||
120 | }; | ||
121 | }; | ||
122 | }; | ||
98 | }; | 123 | }; |
99 | }; | 124 | }; |
100 | 125 | ||
diff --git a/arch/arm/boot/dts/imx28-cfa10049.dts b/arch/arm/boot/dts/imx28-cfa10049.dts index a0d3e9f1738e..063e62059890 100644 --- a/arch/arm/boot/dts/imx28-cfa10049.dts +++ b/arch/arm/boot/dts/imx28-cfa10049.dts | |||
@@ -30,7 +30,6 @@ | |||
30 | reg = <0>; | 30 | reg = <0>; |
31 | fsl,pinmux-ids = < | 31 | fsl,pinmux-ids = < |
32 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ | 32 | 0x0073 /* MX28_PAD_GPMI_D7__GPIO_0_7 */ |
33 | 0x1153 /* MX28_PAD_LCD_D22__GPIO_1_21 */ | ||
34 | 0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */ | 33 | 0x1163 /* MX28_PAD_LCD_D22__GPIO_1_22 */ |
35 | 0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */ | 34 | 0x1173 /* MX28_PAD_LCD_D22__GPIO_1_23 */ |
36 | 0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */ | 35 | 0x2153 /* MX28_PAD_SSP2_D5__GPIO_2_21 */ |
@@ -120,13 +119,48 @@ | |||
120 | fsl,voltage = <1>; | 119 | fsl,voltage = <1>; |
121 | fsl,pull-up = <0>; | 120 | fsl,pull-up = <0>; |
122 | }; | 121 | }; |
122 | |||
123 | w1_gpio_pins: w1-gpio@0 { | ||
124 | reg = <0>; | ||
125 | fsl,pinmux-ids = < | ||
126 | 0x1153 /* MX28_PAD_LCD_D21__GPIO_1_21 */ | ||
127 | >; | ||
128 | fsl,drive-strength = <1>; | ||
129 | fsl,voltage = <1>; | ||
130 | fsl,pull-up = <0>; /* 0 will enable the keeper */ | ||
131 | }; | ||
123 | }; | 132 | }; |
124 | 133 | ||
125 | lcdif@80030000 { | 134 | lcdif@80030000 { |
126 | pinctrl-names = "default"; | 135 | pinctrl-names = "default"; |
127 | pinctrl-0 = <&lcdif_18bit_pins_cfa10049 | 136 | pinctrl-0 = <&lcdif_18bit_pins_cfa10049 |
128 | &lcdif_pins_cfa10049>; | 137 | &lcdif_pins_cfa10049>; |
138 | display = <&display>; | ||
129 | status = "okay"; | 139 | status = "okay"; |
140 | |||
141 | display: display { | ||
142 | bits-per-pixel = <32>; | ||
143 | bus-width = <18>; | ||
144 | |||
145 | display-timings { | ||
146 | native-mode = <&timing0>; | ||
147 | timing0: timing0 { | ||
148 | clock-frequency = <9216000>; | ||
149 | hactive = <320>; | ||
150 | vactive = <480>; | ||
151 | hback-porch = <2>; | ||
152 | hfront-porch = <2>; | ||
153 | vback-porch = <2>; | ||
154 | vfront-porch = <2>; | ||
155 | hsync-len = <15>; | ||
156 | vsync-len = <15>; | ||
157 | hsync-active = <0>; | ||
158 | vsync-active = <0>; | ||
159 | de-active = <1>; | ||
160 | pixelclk-active = <1>; | ||
161 | }; | ||
162 | }; | ||
163 | }; | ||
130 | }; | 164 | }; |
131 | }; | 165 | }; |
132 | 166 | ||
@@ -183,6 +217,11 @@ | |||
183 | usbphy1: usbphy@8007e000 { | 217 | usbphy1: usbphy@8007e000 { |
184 | status = "okay"; | 218 | status = "okay"; |
185 | }; | 219 | }; |
220 | |||
221 | lradc@80050000 { | ||
222 | status = "okay"; | ||
223 | fsl,lradc-touchscreen-wires = <4>; | ||
224 | }; | ||
186 | }; | 225 | }; |
187 | }; | 226 | }; |
188 | 227 | ||
@@ -304,5 +343,14 @@ | |||
304 | pwms = <&pwm 3 5000000>; | 343 | pwms = <&pwm 3 5000000>; |
305 | brightness-levels = <0 4 8 16 32 64 128 255>; | 344 | brightness-levels = <0 4 8 16 32 64 128 255>; |
306 | default-brightness-level = <6>; | 345 | default-brightness-level = <6>; |
346 | |||
347 | }; | ||
348 | |||
349 | onewire@0 { | ||
350 | compatible = "w1-gpio"; | ||
351 | pinctrl-names = "default"; | ||
352 | pinctrl-0 = <&w1_gpio_pins>; | ||
353 | status = "okay"; | ||
354 | gpios = <&gpio1 21 0>; | ||
307 | }; | 355 | }; |
308 | }; | 356 | }; |
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts index 2da316e04409..3637bf3b1d59 100644 --- a/arch/arm/boot/dts/imx28-evk.dts +++ b/arch/arm/boot/dts/imx28-evk.dts | |||
@@ -123,8 +123,33 @@ | |||
123 | pinctrl-names = "default"; | 123 | pinctrl-names = "default"; |
124 | pinctrl-0 = <&lcdif_24bit_pins_a | 124 | pinctrl-0 = <&lcdif_24bit_pins_a |
125 | &lcdif_pins_evk>; | 125 | &lcdif_pins_evk>; |
126 | panel-enable-gpios = <&gpio3 30 0>; | 126 | lcd-supply = <®_lcd_3v3>; |
127 | display = <&display>; | ||
127 | status = "okay"; | 128 | status = "okay"; |
129 | |||
130 | display: display { | ||
131 | bits-per-pixel = <32>; | ||
132 | bus-width = <24>; | ||
133 | |||
134 | display-timings { | ||
135 | native-mode = <&timing0>; | ||
136 | timing0: timing0 { | ||
137 | clock-frequency = <33500000>; | ||
138 | hactive = <800>; | ||
139 | vactive = <480>; | ||
140 | hback-porch = <89>; | ||
141 | hfront-porch = <164>; | ||
142 | vback-porch = <23>; | ||
143 | vfront-porch = <10>; | ||
144 | hsync-len = <10>; | ||
145 | vsync-len = <10>; | ||
146 | hsync-active = <0>; | ||
147 | vsync-active = <0>; | ||
148 | de-active = <1>; | ||
149 | pixelclk-active = <0>; | ||
150 | }; | ||
151 | }; | ||
152 | }; | ||
128 | }; | 153 | }; |
129 | 154 | ||
130 | can0: can@80032000 { | 155 | can0: can@80032000 { |
@@ -285,6 +310,15 @@ | |||
285 | gpio = <&gpio3 8 0>; | 310 | gpio = <&gpio3 8 0>; |
286 | enable-active-high; | 311 | enable-active-high; |
287 | }; | 312 | }; |
313 | |||
314 | reg_lcd_3v3: lcd-3v3 { | ||
315 | compatible = "regulator-fixed"; | ||
316 | regulator-name = "lcd-3v3"; | ||
317 | regulator-min-microvolt = <3300000>; | ||
318 | regulator-max-microvolt = <3300000>; | ||
319 | gpio = <&gpio3 30 0>; | ||
320 | enable-active-high; | ||
321 | }; | ||
288 | }; | 322 | }; |
289 | 323 | ||
290 | sound { | 324 | sound { |
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts index fd36e1cca104..5aa44e05c9f5 100644 --- a/arch/arm/boot/dts/imx28-m28evk.dts +++ b/arch/arm/boot/dts/imx28-m28evk.dts | |||
@@ -119,7 +119,32 @@ | |||
119 | pinctrl-names = "default"; | 119 | pinctrl-names = "default"; |
120 | pinctrl-0 = <&lcdif_24bit_pins_a | 120 | pinctrl-0 = <&lcdif_24bit_pins_a |
121 | &lcdif_pins_m28>; | 121 | &lcdif_pins_m28>; |
122 | display = <&display>; | ||
122 | status = "okay"; | 123 | status = "okay"; |
124 | |||
125 | display: display { | ||
126 | bits-per-pixel = <16>; | ||
127 | bus-width = <18>; | ||
128 | |||
129 | display-timings { | ||
130 | native-mode = <&timing0>; | ||
131 | timing0: timing0 { | ||
132 | clock-frequency = <33260000>; | ||
133 | hactive = <800>; | ||
134 | vactive = <480>; | ||
135 | hback-porch = <0>; | ||
136 | hfront-porch = <256>; | ||
137 | vback-porch = <0>; | ||
138 | vfront-porch = <45>; | ||
139 | hsync-len = <1>; | ||
140 | vsync-len = <1>; | ||
141 | hsync-active = <0>; | ||
142 | vsync-active = <0>; | ||
143 | de-active = <1>; | ||
144 | pixelclk-active = <1>; | ||
145 | }; | ||
146 | }; | ||
147 | }; | ||
123 | }; | 148 | }; |
124 | 149 | ||
125 | can0: can@80032000 { | 150 | can0: can@80032000 { |
@@ -220,6 +245,8 @@ | |||
220 | phy-mode = "rmii"; | 245 | phy-mode = "rmii"; |
221 | pinctrl-names = "default"; | 246 | pinctrl-names = "default"; |
222 | pinctrl-0 = <&mac0_pins_a>; | 247 | pinctrl-0 = <&mac0_pins_a>; |
248 | clocks = <&clks 57>, <&clks 57>; | ||
249 | clock-names = "ipg", "ahb"; | ||
223 | status = "okay"; | 250 | status = "okay"; |
224 | }; | 251 | }; |
225 | 252 | ||
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi index 64af2381c1b0..600f7cb51f3e 100644 --- a/arch/arm/boot/dts/imx28.dtsi +++ b/arch/arm/boot/dts/imx28.dtsi | |||
@@ -61,12 +61,24 @@ | |||
61 | hsadc@80002000 { | 61 | hsadc@80002000 { |
62 | reg = <0x80002000 0x2000>; | 62 | reg = <0x80002000 0x2000>; |
63 | interrupts = <13 87>; | 63 | interrupts = <13 87>; |
64 | dmas = <&dma_apbh 12>; | ||
65 | dma-names = "rx"; | ||
64 | status = "disabled"; | 66 | status = "disabled"; |
65 | }; | 67 | }; |
66 | 68 | ||
67 | dma-apbh@80004000 { | 69 | dma_apbh: dma-apbh@80004000 { |
68 | compatible = "fsl,imx28-dma-apbh"; | 70 | compatible = "fsl,imx28-dma-apbh"; |
69 | reg = <0x80004000 0x2000>; | 71 | reg = <0x80004000 0x2000>; |
72 | interrupts = <82 83 84 85 | ||
73 | 88 88 88 88 | ||
74 | 88 88 88 88 | ||
75 | 87 86 0 0>; | ||
76 | interrupt-names = "ssp0", "ssp1", "ssp2", "ssp3", | ||
77 | "gpmi0", "gmpi1", "gpmi2", "gmpi3", | ||
78 | "gpmi4", "gmpi5", "gpmi6", "gmpi7", | ||
79 | "hsadc", "lcdif", "empty", "empty"; | ||
80 | #dma-cells = <1>; | ||
81 | dma-channels = <16>; | ||
70 | clocks = <&clks 25>; | 82 | clocks = <&clks 25>; |
71 | }; | 83 | }; |
72 | 84 | ||
@@ -86,6 +98,8 @@ | |||
86 | interrupt-names = "gpmi-dma", "bch"; | 98 | interrupt-names = "gpmi-dma", "bch"; |
87 | clocks = <&clks 50>; | 99 | clocks = <&clks 50>; |
88 | clock-names = "gpmi_io"; | 100 | clock-names = "gpmi_io"; |
101 | dmas = <&dma_apbh 4>; | ||
102 | dma-names = "rx-tx"; | ||
89 | fsl,gpmi-dma-channel = <4>; | 103 | fsl,gpmi-dma-channel = <4>; |
90 | status = "disabled"; | 104 | status = "disabled"; |
91 | }; | 105 | }; |
@@ -96,6 +110,8 @@ | |||
96 | reg = <0x80010000 0x2000>; | 110 | reg = <0x80010000 0x2000>; |
97 | interrupts = <96 82>; | 111 | interrupts = <96 82>; |
98 | clocks = <&clks 46>; | 112 | clocks = <&clks 46>; |
113 | dmas = <&dma_apbh 0>; | ||
114 | dma-names = "rx-tx"; | ||
99 | fsl,ssp-dma-channel = <0>; | 115 | fsl,ssp-dma-channel = <0>; |
100 | status = "disabled"; | 116 | status = "disabled"; |
101 | }; | 117 | }; |
@@ -106,6 +122,8 @@ | |||
106 | reg = <0x80012000 0x2000>; | 122 | reg = <0x80012000 0x2000>; |
107 | interrupts = <97 83>; | 123 | interrupts = <97 83>; |
108 | clocks = <&clks 47>; | 124 | clocks = <&clks 47>; |
125 | dmas = <&dma_apbh 1>; | ||
126 | dma-names = "rx-tx"; | ||
109 | fsl,ssp-dma-channel = <1>; | 127 | fsl,ssp-dma-channel = <1>; |
110 | status = "disabled"; | 128 | status = "disabled"; |
111 | }; | 129 | }; |
@@ -116,6 +134,8 @@ | |||
116 | reg = <0x80014000 0x2000>; | 134 | reg = <0x80014000 0x2000>; |
117 | interrupts = <98 84>; | 135 | interrupts = <98 84>; |
118 | clocks = <&clks 48>; | 136 | clocks = <&clks 48>; |
137 | dmas = <&dma_apbh 2>; | ||
138 | dma-names = "rx-tx"; | ||
119 | fsl,ssp-dma-channel = <2>; | 139 | fsl,ssp-dma-channel = <2>; |
120 | status = "disabled"; | 140 | status = "disabled"; |
121 | }; | 141 | }; |
@@ -126,6 +146,8 @@ | |||
126 | reg = <0x80016000 0x2000>; | 146 | reg = <0x80016000 0x2000>; |
127 | interrupts = <99 85>; | 147 | interrupts = <99 85>; |
128 | clocks = <&clks 49>; | 148 | clocks = <&clks 49>; |
149 | dmas = <&dma_apbh 3>; | ||
150 | dma-names = "rx-tx"; | ||
129 | fsl,ssp-dma-channel = <3>; | 151 | fsl,ssp-dma-channel = <3>; |
130 | status = "disabled"; | 152 | status = "disabled"; |
131 | }; | 153 | }; |
@@ -658,9 +680,19 @@ | |||
658 | status = "disabled"; | 680 | status = "disabled"; |
659 | }; | 681 | }; |
660 | 682 | ||
661 | dma-apbx@80024000 { | 683 | dma_apbx: dma-apbx@80024000 { |
662 | compatible = "fsl,imx28-dma-apbx"; | 684 | compatible = "fsl,imx28-dma-apbx"; |
663 | reg = <0x80024000 0x2000>; | 685 | reg = <0x80024000 0x2000>; |
686 | interrupts = <78 79 66 0 | ||
687 | 80 81 68 69 | ||
688 | 70 71 72 73 | ||
689 | 74 75 76 77>; | ||
690 | interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty", | ||
691 | "saif0", "saif1", "i2c0", "i2c1", | ||
692 | "auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx", | ||
693 | "auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx"; | ||
694 | #dma-cells = <1>; | ||
695 | dma-channels = <16>; | ||
664 | clocks = <&clks 26>; | 696 | clocks = <&clks 26>; |
665 | }; | 697 | }; |
666 | 698 | ||
@@ -692,6 +724,8 @@ | |||
692 | reg = <0x80030000 0x2000>; | 724 | reg = <0x80030000 0x2000>; |
693 | interrupts = <38 86>; | 725 | interrupts = <38 86>; |
694 | clocks = <&clks 55>; | 726 | clocks = <&clks 55>; |
727 | dmas = <&dma_apbh 13>; | ||
728 | dma-names = "rx"; | ||
695 | status = "disabled"; | 729 | status = "disabled"; |
696 | }; | 730 | }; |
697 | 731 | ||
@@ -767,6 +801,8 @@ | |||
767 | reg = <0x80042000 0x2000>; | 801 | reg = <0x80042000 0x2000>; |
768 | interrupts = <59 80>; | 802 | interrupts = <59 80>; |
769 | clocks = <&clks 53>; | 803 | clocks = <&clks 53>; |
804 | dmas = <&dma_apbx 4>; | ||
805 | dma-names = "rx-tx"; | ||
770 | fsl,saif-dma-channel = <4>; | 806 | fsl,saif-dma-channel = <4>; |
771 | status = "disabled"; | 807 | status = "disabled"; |
772 | }; | 808 | }; |
@@ -781,6 +817,8 @@ | |||
781 | reg = <0x80046000 0x2000>; | 817 | reg = <0x80046000 0x2000>; |
782 | interrupts = <58 81>; | 818 | interrupts = <58 81>; |
783 | clocks = <&clks 54>; | 819 | clocks = <&clks 54>; |
820 | dmas = <&dma_apbx 5>; | ||
821 | dma-names = "rx-tx"; | ||
784 | fsl,saif-dma-channel = <5>; | 822 | fsl,saif-dma-channel = <5>; |
785 | status = "disabled"; | 823 | status = "disabled"; |
786 | }; | 824 | }; |
@@ -796,6 +834,8 @@ | |||
796 | spdif@80054000 { | 834 | spdif@80054000 { |
797 | reg = <0x80054000 0x2000>; | 835 | reg = <0x80054000 0x2000>; |
798 | interrupts = <45 66>; | 836 | interrupts = <45 66>; |
837 | dmas = <&dma_apbx 2>; | ||
838 | dma-names = "tx"; | ||
799 | status = "disabled"; | 839 | status = "disabled"; |
800 | }; | 840 | }; |
801 | 841 | ||
@@ -812,6 +852,8 @@ | |||
812 | reg = <0x80058000 0x2000>; | 852 | reg = <0x80058000 0x2000>; |
813 | interrupts = <111 68>; | 853 | interrupts = <111 68>; |
814 | clock-frequency = <100000>; | 854 | clock-frequency = <100000>; |
855 | dmas = <&dma_apbx 6>; | ||
856 | dma-names = "rx-tx"; | ||
815 | fsl,i2c-dma-channel = <6>; | 857 | fsl,i2c-dma-channel = <6>; |
816 | status = "disabled"; | 858 | status = "disabled"; |
817 | }; | 859 | }; |
@@ -823,6 +865,8 @@ | |||
823 | reg = <0x8005a000 0x2000>; | 865 | reg = <0x8005a000 0x2000>; |
824 | interrupts = <110 69>; | 866 | interrupts = <110 69>; |
825 | clock-frequency = <100000>; | 867 | clock-frequency = <100000>; |
868 | dmas = <&dma_apbx 7>; | ||
869 | dma-names = "rx-tx"; | ||
826 | fsl,i2c-dma-channel = <7>; | 870 | fsl,i2c-dma-channel = <7>; |
827 | status = "disabled"; | 871 | status = "disabled"; |
828 | }; | 872 | }; |
@@ -847,6 +891,8 @@ | |||
847 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 891 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
848 | reg = <0x8006a000 0x2000>; | 892 | reg = <0x8006a000 0x2000>; |
849 | interrupts = <112 70 71>; | 893 | interrupts = <112 70 71>; |
894 | dmas = <&dma_apbx 8>, <&dma_apbx 9>; | ||
895 | dma-names = "rx", "tx"; | ||
850 | fsl,auart-dma-channel = <8 9>; | 896 | fsl,auart-dma-channel = <8 9>; |
851 | clocks = <&clks 45>; | 897 | clocks = <&clks 45>; |
852 | status = "disabled"; | 898 | status = "disabled"; |
@@ -856,6 +902,8 @@ | |||
856 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 902 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
857 | reg = <0x8006c000 0x2000>; | 903 | reg = <0x8006c000 0x2000>; |
858 | interrupts = <113 72 73>; | 904 | interrupts = <113 72 73>; |
905 | dmas = <&dma_apbx 10>, <&dma_apbx 11>; | ||
906 | dma-names = "rx", "tx"; | ||
859 | clocks = <&clks 45>; | 907 | clocks = <&clks 45>; |
860 | status = "disabled"; | 908 | status = "disabled"; |
861 | }; | 909 | }; |
@@ -864,6 +912,8 @@ | |||
864 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 912 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
865 | reg = <0x8006e000 0x2000>; | 913 | reg = <0x8006e000 0x2000>; |
866 | interrupts = <114 74 75>; | 914 | interrupts = <114 74 75>; |
915 | dmas = <&dma_apbx 12>, <&dma_apbx 13>; | ||
916 | dma-names = "rx", "tx"; | ||
867 | clocks = <&clks 45>; | 917 | clocks = <&clks 45>; |
868 | status = "disabled"; | 918 | status = "disabled"; |
869 | }; | 919 | }; |
@@ -872,6 +922,8 @@ | |||
872 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 922 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
873 | reg = <0x80070000 0x2000>; | 923 | reg = <0x80070000 0x2000>; |
874 | interrupts = <115 76 77>; | 924 | interrupts = <115 76 77>; |
925 | dmas = <&dma_apbx 14>, <&dma_apbx 15>; | ||
926 | dma-names = "rx", "tx"; | ||
875 | clocks = <&clks 45>; | 927 | clocks = <&clks 45>; |
876 | status = "disabled"; | 928 | status = "disabled"; |
877 | }; | 929 | }; |
@@ -880,6 +932,8 @@ | |||
880 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; | 932 | compatible = "fsl,imx28-auart", "fsl,imx23-auart"; |
881 | reg = <0x80072000 0x2000>; | 933 | reg = <0x80072000 0x2000>; |
882 | interrupts = <116 78 79>; | 934 | interrupts = <116 78 79>; |
935 | dmas = <&dma_apbx 0>, <&dma_apbx 1>; | ||
936 | dma-names = "rx", "tx"; | ||
883 | clocks = <&clks 45>; | 937 | clocks = <&clks 45>; |
884 | status = "disabled"; | 938 | status = "disabled"; |
885 | }; | 939 | }; |
@@ -943,8 +997,8 @@ | |||
943 | compatible = "fsl,imx28-fec"; | 997 | compatible = "fsl,imx28-fec"; |
944 | reg = <0x800f0000 0x4000>; | 998 | reg = <0x800f0000 0x4000>; |
945 | interrupts = <101>; | 999 | interrupts = <101>; |
946 | clocks = <&clks 57>, <&clks 57>; | 1000 | clocks = <&clks 57>, <&clks 57>, <&clks 64>; |
947 | clock-names = "ipg", "ahb"; | 1001 | clock-names = "ipg", "ahb", "enet_out"; |
948 | status = "disabled"; | 1002 | status = "disabled"; |
949 | }; | 1003 | }; |
950 | 1004 | ||
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index 3cca7d39529d..9e8296e4c343 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi | |||
@@ -65,9 +65,13 @@ | |||
65 | interrupt-parent = <&intc>; | 65 | interrupt-parent = <&intc>; |
66 | ranges; | 66 | ranges; |
67 | 67 | ||
68 | dma-apbh@00110000 { | 68 | dma_apbh: dma-apbh@00110000 { |
69 | compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; | 69 | compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh"; |
70 | reg = <0x00110000 0x2000>; | 70 | reg = <0x00110000 0x2000>; |
71 | interrupts = <0 13 0x04>, <0 13 0x04>, <0 13 0x04>, <0 13 0x04>; | ||
72 | interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3"; | ||
73 | #dma-cells = <1>; | ||
74 | dma-channels = <4>; | ||
71 | clocks = <&clks 106>; | 75 | clocks = <&clks 106>; |
72 | }; | 76 | }; |
73 | 77 | ||
@@ -83,6 +87,8 @@ | |||
83 | <&clks 150>, <&clks 149>; | 87 | <&clks 150>, <&clks 149>; |
84 | clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", | 88 | clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch", |
85 | "gpmi_bch_apb", "per1_bch"; | 89 | "gpmi_bch_apb", "per1_bch"; |
90 | dmas = <&dma_apbh 0>; | ||
91 | dma-names = "rx-tx"; | ||
86 | fsl,gpmi-dma-channel = <0>; | 92 | fsl,gpmi-dma-channel = <0>; |
87 | status = "disabled"; | 93 | status = "disabled"; |
88 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi index 761c4b69b25b..37aa7487d4d8 100644 --- a/arch/arm/boot/dts/omap2.dtsi +++ b/arch/arm/boot/dts/omap2.dtsi | |||
@@ -26,6 +26,11 @@ | |||
26 | }; | 26 | }; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | pmu { | ||
30 | compatible = "arm,arm1136-pmu"; | ||
31 | interrupts = <3>; | ||
32 | }; | ||
33 | |||
29 | soc { | 34 | soc { |
30 | compatible = "ti,omap-infra"; | 35 | compatible = "ti,omap-infra"; |
31 | mpu { | 36 | mpu { |
@@ -49,6 +54,18 @@ | |||
49 | reg = <0x480FE000 0x1000>; | 54 | reg = <0x480FE000 0x1000>; |
50 | }; | 55 | }; |
51 | 56 | ||
57 | sdma: dma-controller@48056000 { | ||
58 | compatible = "ti,omap2430-sdma", "ti,omap2420-sdma"; | ||
59 | reg = <0x48056000 0x1000>; | ||
60 | interrupts = <12>, | ||
61 | <13>, | ||
62 | <14>, | ||
63 | <15>; | ||
64 | #dma-cells = <1>; | ||
65 | #dma-channels = <32>; | ||
66 | #dma-requests = <64>; | ||
67 | }; | ||
68 | |||
52 | uart1: serial@4806a000 { | 69 | uart1: serial@4806a000 { |
53 | compatible = "ti,omap2-uart"; | 70 | compatible = "ti,omap2-uart"; |
54 | ti,hwmods = "uart1"; | 71 | ti,hwmods = "uart1"; |
@@ -68,28 +85,28 @@ | |||
68 | }; | 85 | }; |
69 | 86 | ||
70 | timer2: timer@4802a000 { | 87 | timer2: timer@4802a000 { |
71 | compatible = "ti,omap2-timer"; | 88 | compatible = "ti,omap2420-timer"; |
72 | reg = <0x4802a000 0x400>; | 89 | reg = <0x4802a000 0x400>; |
73 | interrupts = <38>; | 90 | interrupts = <38>; |
74 | ti,hwmods = "timer2"; | 91 | ti,hwmods = "timer2"; |
75 | }; | 92 | }; |
76 | 93 | ||
77 | timer3: timer@48078000 { | 94 | timer3: timer@48078000 { |
78 | compatible = "ti,omap2-timer"; | 95 | compatible = "ti,omap2420-timer"; |
79 | reg = <0x48078000 0x400>; | 96 | reg = <0x48078000 0x400>; |
80 | interrupts = <39>; | 97 | interrupts = <39>; |
81 | ti,hwmods = "timer3"; | 98 | ti,hwmods = "timer3"; |
82 | }; | 99 | }; |
83 | 100 | ||
84 | timer4: timer@4807a000 { | 101 | timer4: timer@4807a000 { |
85 | compatible = "ti,omap2-timer"; | 102 | compatible = "ti,omap2420-timer"; |
86 | reg = <0x4807a000 0x400>; | 103 | reg = <0x4807a000 0x400>; |
87 | interrupts = <40>; | 104 | interrupts = <40>; |
88 | ti,hwmods = "timer4"; | 105 | ti,hwmods = "timer4"; |
89 | }; | 106 | }; |
90 | 107 | ||
91 | timer5: timer@4807c000 { | 108 | timer5: timer@4807c000 { |
92 | compatible = "ti,omap2-timer"; | 109 | compatible = "ti,omap2420-timer"; |
93 | reg = <0x4807c000 0x400>; | 110 | reg = <0x4807c000 0x400>; |
94 | interrupts = <41>; | 111 | interrupts = <41>; |
95 | ti,hwmods = "timer5"; | 112 | ti,hwmods = "timer5"; |
@@ -97,7 +114,7 @@ | |||
97 | }; | 114 | }; |
98 | 115 | ||
99 | timer6: timer@4807e000 { | 116 | timer6: timer@4807e000 { |
100 | compatible = "ti,omap2-timer"; | 117 | compatible = "ti,omap2420-timer"; |
101 | reg = <0x4807e000 0x400>; | 118 | reg = <0x4807e000 0x400>; |
102 | interrupts = <42>; | 119 | interrupts = <42>; |
103 | ti,hwmods = "timer6"; | 120 | ti,hwmods = "timer6"; |
@@ -105,7 +122,7 @@ | |||
105 | }; | 122 | }; |
106 | 123 | ||
107 | timer7: timer@48080000 { | 124 | timer7: timer@48080000 { |
108 | compatible = "ti,omap2-timer"; | 125 | compatible = "ti,omap2420-timer"; |
109 | reg = <0x48080000 0x400>; | 126 | reg = <0x48080000 0x400>; |
110 | interrupts = <43>; | 127 | interrupts = <43>; |
111 | ti,hwmods = "timer7"; | 128 | ti,hwmods = "timer7"; |
@@ -113,7 +130,7 @@ | |||
113 | }; | 130 | }; |
114 | 131 | ||
115 | timer8: timer@48082000 { | 132 | timer8: timer@48082000 { |
116 | compatible = "ti,omap2-timer"; | 133 | compatible = "ti,omap2420-timer"; |
117 | reg = <0x48082000 0x400>; | 134 | reg = <0x48082000 0x400>; |
118 | interrupts = <44>; | 135 | interrupts = <44>; |
119 | ti,hwmods = "timer8"; | 136 | ti,hwmods = "timer8"; |
@@ -121,7 +138,7 @@ | |||
121 | }; | 138 | }; |
122 | 139 | ||
123 | timer9: timer@48084000 { | 140 | timer9: timer@48084000 { |
124 | compatible = "ti,omap2-timer"; | 141 | compatible = "ti,omap2420-timer"; |
125 | reg = <0x48084000 0x400>; | 142 | reg = <0x48084000 0x400>; |
126 | interrupts = <45>; | 143 | interrupts = <45>; |
127 | ti,hwmods = "timer9"; | 144 | ti,hwmods = "timer9"; |
@@ -129,7 +146,7 @@ | |||
129 | }; | 146 | }; |
130 | 147 | ||
131 | timer10: timer@48086000 { | 148 | timer10: timer@48086000 { |
132 | compatible = "ti,omap2-timer"; | 149 | compatible = "ti,omap2420-timer"; |
133 | reg = <0x48086000 0x400>; | 150 | reg = <0x48086000 0x400>; |
134 | interrupts = <46>; | 151 | interrupts = <46>; |
135 | ti,hwmods = "timer10"; | 152 | ti,hwmods = "timer10"; |
@@ -137,7 +154,7 @@ | |||
137 | }; | 154 | }; |
138 | 155 | ||
139 | timer11: timer@48088000 { | 156 | timer11: timer@48088000 { |
140 | compatible = "ti,omap2-timer"; | 157 | compatible = "ti,omap2420-timer"; |
141 | reg = <0x48088000 0x400>; | 158 | reg = <0x48088000 0x400>; |
142 | interrupts = <47>; | 159 | interrupts = <47>; |
143 | ti,hwmods = "timer11"; | 160 | ti,hwmods = "timer11"; |
@@ -145,7 +162,7 @@ | |||
145 | }; | 162 | }; |
146 | 163 | ||
147 | timer12: timer@4808a000 { | 164 | timer12: timer@4808a000 { |
148 | compatible = "ti,omap2-timer"; | 165 | compatible = "ti,omap2420-timer"; |
149 | reg = <0x4808a000 0x400>; | 166 | reg = <0x4808a000 0x400>; |
150 | interrupts = <48>; | 167 | interrupts = <48>; |
151 | ti,hwmods = "timer12"; | 168 | ti,hwmods = "timer12"; |
diff --git a/arch/arm/boot/dts/omap2420-h4.dts b/arch/arm/boot/dts/omap2420-h4.dts index 9b0d07746cba..68282ee13e26 100644 --- a/arch/arm/boot/dts/omap2420-h4.dts +++ b/arch/arm/boot/dts/omap2420-h4.dts | |||
@@ -18,3 +18,49 @@ | |||
18 | reg = <0x80000000 0x4000000>; /* 64 MB */ | 18 | reg = <0x80000000 0x4000000>; /* 64 MB */ |
19 | }; | 19 | }; |
20 | }; | 20 | }; |
21 | |||
22 | &gpmc { | ||
23 | ranges = <0 0 0x08000000 0x04000000>; | ||
24 | |||
25 | nor@0,0 { | ||
26 | compatible = "cfi-flash"; | ||
27 | linux,mtd-name= "intel,ge28f256l18b85"; | ||
28 | #address-cells = <1>; | ||
29 | #size-cells = <1>; | ||
30 | reg = <0 0 0x04000000>; | ||
31 | bank-width = <2>; | ||
32 | |||
33 | gpmc,mux-add-data = <2>; | ||
34 | gpmc,cs-on-ns = <10>; | ||
35 | gpmc,cs-rd-off-ns = <160>; | ||
36 | gpmc,cs-wr-off-ns = <160>; | ||
37 | gpmc,adv-on-ns = <20>; | ||
38 | gpmc,adv-rd-off-ns = <50>; | ||
39 | gpmc,adv-wr-off-ns = <50>; | ||
40 | gpmc,oe-on-ns = <60>; | ||
41 | gpmc,oe-off-ns = <120>; | ||
42 | gpmc,we-on-ns = <60>; | ||
43 | gpmc,we-off-ns = <120>; | ||
44 | gpmc,rd-cycle-ns = <170>; | ||
45 | gpmc,wr-cycle-ns = <170>; | ||
46 | gpmc,access-ns = <150>; | ||
47 | gpmc,page-burst-access-ns = <10>; | ||
48 | |||
49 | partition@0 { | ||
50 | label = "bootloader"; | ||
51 | reg = <0 0x20000>; | ||
52 | }; | ||
53 | partition@0x20000 { | ||
54 | label = "params"; | ||
55 | reg = <0x20000 0x20000>; | ||
56 | }; | ||
57 | partition@0x40000 { | ||
58 | label = "kernel"; | ||
59 | reg = <0x40000 0x200000>; | ||
60 | }; | ||
61 | partition@0x240000 { | ||
62 | label = "file-system"; | ||
63 | reg = <0x240000 0x3dc0000>; | ||
64 | }; | ||
65 | }; | ||
66 | }; | ||
diff --git a/arch/arm/boot/dts/omap2420.dtsi b/arch/arm/boot/dts/omap2420.dtsi index af6560908905..da5b285b73be 100644 --- a/arch/arm/boot/dts/omap2420.dtsi +++ b/arch/arm/boot/dts/omap2420.dtsi | |||
@@ -29,6 +29,65 @@ | |||
29 | pinctrl-single,function-mask = <0x3f>; | 29 | pinctrl-single,function-mask = <0x3f>; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | gpio1: gpio@48018000 { | ||
33 | compatible = "ti,omap2-gpio"; | ||
34 | reg = <0x48018000 0x200>; | ||
35 | interrupts = <29>; | ||
36 | ti,hwmods = "gpio1"; | ||
37 | ti,gpio-always-on; | ||
38 | #gpio-cells = <2>; | ||
39 | gpio-controller; | ||
40 | #interrupt-cells = <2>; | ||
41 | interrupt-controller; | ||
42 | }; | ||
43 | |||
44 | gpio2: gpio@4801a000 { | ||
45 | compatible = "ti,omap2-gpio"; | ||
46 | reg = <0x4801a000 0x200>; | ||
47 | interrupts = <30>; | ||
48 | ti,hwmods = "gpio2"; | ||
49 | ti,gpio-always-on; | ||
50 | #gpio-cells = <2>; | ||
51 | gpio-controller; | ||
52 | #interrupt-cells = <2>; | ||
53 | interrupt-controller; | ||
54 | }; | ||
55 | |||
56 | gpio3: gpio@4801c000 { | ||
57 | compatible = "ti,omap2-gpio"; | ||
58 | reg = <0x4801c000 0x200>; | ||
59 | interrupts = <31>; | ||
60 | ti,hwmods = "gpio3"; | ||
61 | ti,gpio-always-on; | ||
62 | #gpio-cells = <2>; | ||
63 | gpio-controller; | ||
64 | #interrupt-cells = <2>; | ||
65 | interrupt-controller; | ||
66 | }; | ||
67 | |||
68 | gpio4: gpio@4801e000 { | ||
69 | compatible = "ti,omap2-gpio"; | ||
70 | reg = <0x4801e000 0x200>; | ||
71 | interrupts = <32>; | ||
72 | ti,hwmods = "gpio4"; | ||
73 | ti,gpio-always-on; | ||
74 | #gpio-cells = <2>; | ||
75 | gpio-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | interrupt-controller; | ||
78 | }; | ||
79 | |||
80 | gpmc: gpmc@6800a000 { | ||
81 | compatible = "ti,omap2420-gpmc"; | ||
82 | reg = <0x6800a000 0x1000>; | ||
83 | #address-cells = <2>; | ||
84 | #size-cells = <1>; | ||
85 | interrupts = <20>; | ||
86 | gpmc,num-cs = <8>; | ||
87 | gpmc,num-waitpins = <4>; | ||
88 | ti,hwmods = "gpmc"; | ||
89 | }; | ||
90 | |||
32 | mcbsp1: mcbsp@48074000 { | 91 | mcbsp1: mcbsp@48074000 { |
33 | compatible = "ti,omap2420-mcbsp"; | 92 | compatible = "ti,omap2420-mcbsp"; |
34 | reg = <0x48074000 0xff>; | 93 | reg = <0x48074000 0xff>; |
@@ -37,6 +96,9 @@ | |||
37 | <60>; /* RX interrupt */ | 96 | <60>; /* RX interrupt */ |
38 | interrupt-names = "tx", "rx"; | 97 | interrupt-names = "tx", "rx"; |
39 | ti,hwmods = "mcbsp1"; | 98 | ti,hwmods = "mcbsp1"; |
99 | dmas = <&sdma 31>, | ||
100 | <&sdma 32>; | ||
101 | dma-names = "tx", "rx"; | ||
40 | }; | 102 | }; |
41 | 103 | ||
42 | mcbsp2: mcbsp@48076000 { | 104 | mcbsp2: mcbsp@48076000 { |
@@ -47,10 +109,13 @@ | |||
47 | <63>; /* RX interrupt */ | 109 | <63>; /* RX interrupt */ |
48 | interrupt-names = "tx", "rx"; | 110 | interrupt-names = "tx", "rx"; |
49 | ti,hwmods = "mcbsp2"; | 111 | ti,hwmods = "mcbsp2"; |
112 | dmas = <&sdma 33>, | ||
113 | <&sdma 34>; | ||
114 | dma-names = "tx", "rx"; | ||
50 | }; | 115 | }; |
51 | 116 | ||
52 | timer1: timer@48028000 { | 117 | timer1: timer@48028000 { |
53 | compatible = "ti,omap2-timer"; | 118 | compatible = "ti,omap2420-timer"; |
54 | reg = <0x48028000 0x400>; | 119 | reg = <0x48028000 0x400>; |
55 | interrupts = <37>; | 120 | interrupts = <37>; |
56 | ti,hwmods = "timer1"; | 121 | ti,hwmods = "timer1"; |
diff --git a/arch/arm/boot/dts/omap2430.dtsi b/arch/arm/boot/dts/omap2430.dtsi index c3924457c9b6..054bc4439568 100644 --- a/arch/arm/boot/dts/omap2430.dtsi +++ b/arch/arm/boot/dts/omap2430.dtsi | |||
@@ -29,6 +29,76 @@ | |||
29 | pinctrl-single,function-mask = <0x3f>; | 29 | pinctrl-single,function-mask = <0x3f>; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | gpio1: gpio@4900c000 { | ||
33 | compatible = "ti,omap2-gpio"; | ||
34 | reg = <0x4900c000 0x200>; | ||
35 | interrupts = <29>; | ||
36 | ti,hwmods = "gpio1"; | ||
37 | ti,gpio-always-on; | ||
38 | #gpio-cells = <2>; | ||
39 | gpio-controller; | ||
40 | #interrupt-cells = <2>; | ||
41 | interrupt-controller; | ||
42 | }; | ||
43 | |||
44 | gpio2: gpio@4900e000 { | ||
45 | compatible = "ti,omap2-gpio"; | ||
46 | reg = <0x4900e000 0x200>; | ||
47 | interrupts = <30>; | ||
48 | ti,hwmods = "gpio2"; | ||
49 | ti,gpio-always-on; | ||
50 | #gpio-cells = <2>; | ||
51 | gpio-controller; | ||
52 | #interrupt-cells = <2>; | ||
53 | interrupt-controller; | ||
54 | }; | ||
55 | |||
56 | gpio3: gpio@49010000 { | ||
57 | compatible = "ti,omap2-gpio"; | ||
58 | reg = <0x49010000 0x200>; | ||
59 | interrupts = <31>; | ||
60 | ti,hwmods = "gpio3"; | ||
61 | ti,gpio-always-on; | ||
62 | #gpio-cells = <2>; | ||
63 | gpio-controller; | ||
64 | #interrupt-cells = <2>; | ||
65 | interrupt-controller; | ||
66 | }; | ||
67 | |||
68 | gpio4: gpio@49012000 { | ||
69 | compatible = "ti,omap2-gpio"; | ||
70 | reg = <0x49012000 0x200>; | ||
71 | interrupts = <32>; | ||
72 | ti,hwmods = "gpio4"; | ||
73 | ti,gpio-always-on; | ||
74 | #gpio-cells = <2>; | ||
75 | gpio-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | interrupt-controller; | ||
78 | }; | ||
79 | |||
80 | gpio5: gpio@480b6000 { | ||
81 | compatible = "ti,omap2-gpio"; | ||
82 | reg = <0x480b6000 0x200>; | ||
83 | interrupts = <33>; | ||
84 | ti,hwmods = "gpio5"; | ||
85 | #gpio-cells = <2>; | ||
86 | gpio-controller; | ||
87 | #interrupt-cells = <2>; | ||
88 | interrupt-controller; | ||
89 | }; | ||
90 | |||
91 | gpmc: gpmc@6e000000 { | ||
92 | compatible = "ti,omap2430-gpmc"; | ||
93 | reg = <0x6e000000 0x1000>; | ||
94 | #address-cells = <2>; | ||
95 | #size-cells = <1>; | ||
96 | interrupts = <20>; | ||
97 | gpmc,num-cs = <8>; | ||
98 | gpmc,num-waitpins = <4>; | ||
99 | ti,hwmods = "gpmc"; | ||
100 | }; | ||
101 | |||
32 | mcbsp1: mcbsp@48074000 { | 102 | mcbsp1: mcbsp@48074000 { |
33 | compatible = "ti,omap2430-mcbsp"; | 103 | compatible = "ti,omap2430-mcbsp"; |
34 | reg = <0x48074000 0xff>; | 104 | reg = <0x48074000 0xff>; |
@@ -40,6 +110,9 @@ | |||
40 | interrupt-names = "common", "tx", "rx", "rx_overflow"; | 110 | interrupt-names = "common", "tx", "rx", "rx_overflow"; |
41 | ti,buffer-size = <128>; | 111 | ti,buffer-size = <128>; |
42 | ti,hwmods = "mcbsp1"; | 112 | ti,hwmods = "mcbsp1"; |
113 | dmas = <&sdma 31>, | ||
114 | <&sdma 32>; | ||
115 | dma-names = "tx", "rx"; | ||
43 | }; | 116 | }; |
44 | 117 | ||
45 | mcbsp2: mcbsp@48076000 { | 118 | mcbsp2: mcbsp@48076000 { |
@@ -52,6 +125,9 @@ | |||
52 | interrupt-names = "common", "tx", "rx"; | 125 | interrupt-names = "common", "tx", "rx"; |
53 | ti,buffer-size = <128>; | 126 | ti,buffer-size = <128>; |
54 | ti,hwmods = "mcbsp2"; | 127 | ti,hwmods = "mcbsp2"; |
128 | dmas = <&sdma 33>, | ||
129 | <&sdma 34>; | ||
130 | dma-names = "tx", "rx"; | ||
55 | }; | 131 | }; |
56 | 132 | ||
57 | mcbsp3: mcbsp@4808c000 { | 133 | mcbsp3: mcbsp@4808c000 { |
@@ -64,6 +140,9 @@ | |||
64 | interrupt-names = "common", "tx", "rx"; | 140 | interrupt-names = "common", "tx", "rx"; |
65 | ti,buffer-size = <128>; | 141 | ti,buffer-size = <128>; |
66 | ti,hwmods = "mcbsp3"; | 142 | ti,hwmods = "mcbsp3"; |
143 | dmas = <&sdma 17>, | ||
144 | <&sdma 18>; | ||
145 | dma-names = "tx", "rx"; | ||
67 | }; | 146 | }; |
68 | 147 | ||
69 | mcbsp4: mcbsp@4808e000 { | 148 | mcbsp4: mcbsp@4808e000 { |
@@ -76,6 +155,9 @@ | |||
76 | interrupt-names = "common", "tx", "rx"; | 155 | interrupt-names = "common", "tx", "rx"; |
77 | ti,buffer-size = <128>; | 156 | ti,buffer-size = <128>; |
78 | ti,hwmods = "mcbsp4"; | 157 | ti,hwmods = "mcbsp4"; |
158 | dmas = <&sdma 19>, | ||
159 | <&sdma 20>; | ||
160 | dma-names = "tx", "rx"; | ||
79 | }; | 161 | }; |
80 | 162 | ||
81 | mcbsp5: mcbsp@48096000 { | 163 | mcbsp5: mcbsp@48096000 { |
@@ -88,10 +170,13 @@ | |||
88 | interrupt-names = "common", "tx", "rx"; | 170 | interrupt-names = "common", "tx", "rx"; |
89 | ti,buffer-size = <128>; | 171 | ti,buffer-size = <128>; |
90 | ti,hwmods = "mcbsp5"; | 172 | ti,hwmods = "mcbsp5"; |
173 | dmas = <&sdma 21>, | ||
174 | <&sdma 22>; | ||
175 | dma-names = "tx", "rx"; | ||
91 | }; | 176 | }; |
92 | 177 | ||
93 | timer1: timer@49018000 { | 178 | timer1: timer@49018000 { |
94 | compatible = "ti,omap2-timer"; | 179 | compatible = "ti,omap2420-timer"; |
95 | reg = <0x49018000 0x400>; | 180 | reg = <0x49018000 0x400>; |
96 | interrupts = <37>; | 181 | interrupts = <37>; |
97 | ti,hwmods = "timer1"; | 182 | ti,hwmods = "timer1"; |
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts index 3705a81c1fc2..5a31964ae339 100644 --- a/arch/arm/boot/dts/omap3-beagle-xm.dts +++ b/arch/arm/boot/dts/omap3-beagle-xm.dts | |||
@@ -13,6 +13,12 @@ | |||
13 | model = "TI OMAP3 BeagleBoard xM"; | 13 | model = "TI OMAP3 BeagleBoard xM"; |
14 | compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3"; | 14 | compatible = "ti,omap3-beagle-xm, ti,omap3-beagle", "ti,omap3"; |
15 | 15 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
16 | memory { | 22 | memory { |
17 | device_type = "memory"; | 23 | device_type = "memory"; |
18 | reg = <0x80000000 0x20000000>; /* 512 MB */ | 24 | reg = <0x80000000 0x20000000>; /* 512 MB */ |
@@ -20,10 +26,6 @@ | |||
20 | 26 | ||
21 | leds { | 27 | leds { |
22 | compatible = "gpio-leds"; | 28 | compatible = "gpio-leds"; |
23 | pmu_stat { | ||
24 | label = "beagleboard::pmu_stat"; | ||
25 | gpios = <&twl_gpio 19 0>; /* LEDB */ | ||
26 | }; | ||
27 | 29 | ||
28 | heartbeat { | 30 | heartbeat { |
29 | label = "beagleboard::usr0"; | 31 | label = "beagleboard::usr0"; |
@@ -38,6 +40,16 @@ | |||
38 | }; | 40 | }; |
39 | }; | 41 | }; |
40 | 42 | ||
43 | pwmleds { | ||
44 | compatible = "pwm-leds"; | ||
45 | |||
46 | pmu_stat { | ||
47 | label = "beagleboard::pmu_stat"; | ||
48 | pwms = <&twl_pwmled 1 7812500>; | ||
49 | max-brightness = <127>; | ||
50 | }; | ||
51 | }; | ||
52 | |||
41 | sound { | 53 | sound { |
42 | compatible = "ti,omap-twl4030"; | 54 | compatible = "ti,omap-twl4030"; |
43 | ti,model = "omap3beagle"; | 55 | ti,model = "omap3beagle"; |
@@ -107,3 +119,9 @@ | |||
107 | */ | 119 | */ |
108 | ti,pulldowns = <0x03a1c4>; | 120 | ti,pulldowns = <0x03a1c4>; |
109 | }; | 121 | }; |
122 | |||
123 | &usb_otg_hs { | ||
124 | interface-type = <0>; | ||
125 | mode = <3>; | ||
126 | power = <50>; | ||
127 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts index 02d23f15fd86..6eec69997607 100644 --- a/arch/arm/boot/dts/omap3-beagle.dts +++ b/arch/arm/boot/dts/omap3-beagle.dts | |||
@@ -7,12 +7,18 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TI OMAP3 BeagleBoard"; | 13 | model = "TI OMAP3 BeagleBoard"; |
14 | compatible = "ti,omap3-beagle", "ti,omap3"; | 14 | compatible = "ti,omap3-beagle", "ti,omap3"; |
15 | 15 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
16 | memory { | 22 | memory { |
17 | device_type = "memory"; | 23 | device_type = "memory"; |
18 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 24 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
diff --git a/arch/arm/boot/dts/omap3-devkit8000.dts b/arch/arm/boot/dts/omap3-devkit8000.dts new file mode 100644 index 000000000000..8a5cdcc6debd --- /dev/null +++ b/arch/arm/boot/dts/omap3-devkit8000.dts | |||
@@ -0,0 +1,169 @@ | |||
1 | /* | ||
2 | * Author: Anil Kumar <anilk4.v@gmail.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/ "omap34xx.dtsi" | ||
11 | / { | ||
12 | model = "TimLL OMAP3 Devkit8000"; | ||
13 | compatible = "timll,omap3-devkit8000", "ti,omap3"; | ||
14 | |||
15 | memory { | ||
16 | device_type = "memory"; | ||
17 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
18 | }; | ||
19 | |||
20 | leds { | ||
21 | compatible = "gpio-leds"; | ||
22 | |||
23 | heartbeat { | ||
24 | label = "devkit8000::led1"; | ||
25 | gpios = <&gpio6 26 0>; /* 186 -> LED1 */ | ||
26 | default-state = "on"; | ||
27 | linux,default-trigger = "heartbeat"; | ||
28 | }; | ||
29 | |||
30 | mmc { | ||
31 | label = "devkit8000::led2"; | ||
32 | gpios = <&gpio6 3 0>; /* 163 -> LED2 */ | ||
33 | default-state = "on"; | ||
34 | linux,default-trigger = "none"; | ||
35 | }; | ||
36 | |||
37 | usr { | ||
38 | label = "devkit8000::led3"; | ||
39 | gpios = <&gpio6 4 0>; /* 164 -> LED3 */ | ||
40 | default-state = "on"; | ||
41 | linux,default-trigger = "usr"; | ||
42 | }; | ||
43 | |||
44 | }; | ||
45 | |||
46 | sound { | ||
47 | compatible = "ti,omap-twl4030"; | ||
48 | ti,model = "devkit8000"; | ||
49 | |||
50 | ti,mcbsp = <&mcbsp2>; | ||
51 | ti,codec = <&twl_audio>; | ||
52 | ti,audio-routing = | ||
53 | "Ext Spk", "PREDRIVEL", | ||
54 | "Ext Spk", "PREDRIVER", | ||
55 | "MAINMIC", "Main Mic", | ||
56 | "Main Mic", "Mic Bias 1"; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | &i2c1 { | ||
61 | clock-frequency = <2600000>; | ||
62 | |||
63 | twl: twl@48 { | ||
64 | reg = <0x48>; | ||
65 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
66 | |||
67 | twl_audio: audio { | ||
68 | compatible = "ti,twl4030-audio"; | ||
69 | codec { | ||
70 | }; | ||
71 | }; | ||
72 | }; | ||
73 | }; | ||
74 | |||
75 | &i2c2 { | ||
76 | status = "disabled"; | ||
77 | }; | ||
78 | |||
79 | &i2c3 { | ||
80 | status = "disabled"; | ||
81 | }; | ||
82 | |||
83 | /include/ "twl4030.dtsi" | ||
84 | |||
85 | &mmc1 { | ||
86 | vmmc-supply = <&vmmc1>; | ||
87 | vmmc_aux-supply = <&vsim>; | ||
88 | bus-width = <8>; | ||
89 | }; | ||
90 | |||
91 | &mmc2 { | ||
92 | status = "disabled"; | ||
93 | }; | ||
94 | |||
95 | &mmc3 { | ||
96 | status = "disabled"; | ||
97 | }; | ||
98 | |||
99 | &wdt2 { | ||
100 | status = "disabled"; | ||
101 | }; | ||
102 | |||
103 | &mcbsp1 { | ||
104 | status = "disabled"; | ||
105 | }; | ||
106 | |||
107 | &mcbsp3 { | ||
108 | status = "disabled"; | ||
109 | }; | ||
110 | |||
111 | &mcbsp4 { | ||
112 | status = "disabled"; | ||
113 | }; | ||
114 | |||
115 | &mcbsp5 { | ||
116 | status = "disabled"; | ||
117 | }; | ||
118 | |||
119 | &gpmc { | ||
120 | ranges = <0 0 0x30000000 0x04>; /* CS0: NAND */ | ||
121 | |||
122 | nand@0,0 { | ||
123 | reg = <0 0 0>; /* CS0, offset 0 */ | ||
124 | nand-bus-width = <16>; | ||
125 | |||
126 | gpmc,sync-clk = <0>; | ||
127 | gpmc,cs-on = <0>; | ||
128 | gpmc,cs-rd-off = <44>; | ||
129 | gpmc,cs-wr-off = <44>; | ||
130 | gpmc,adv-on = <6>; | ||
131 | gpmc,adv-rd-off = <34>; | ||
132 | gpmc,adv-wr-off = <44>; | ||
133 | gpmc,we-off = <40>; | ||
134 | gpmc,oe-off = <54>; | ||
135 | gpmc,access = <64>; | ||
136 | gpmc,rd-cycle = <82>; | ||
137 | gpmc,wr-cycle = <82>; | ||
138 | gpmc,wr-access = <40>; | ||
139 | gpmc,wr-data-mux-bus = <0>; | ||
140 | |||
141 | #address-cells = <1>; | ||
142 | #size-cells = <1>; | ||
143 | |||
144 | x-loader@0 { | ||
145 | label = "X-Loader"; | ||
146 | reg = <0 0x80000>; | ||
147 | }; | ||
148 | |||
149 | bootloaders@80000 { | ||
150 | label = "U-Boot"; | ||
151 | reg = <0x80000 0x1e0000>; | ||
152 | }; | ||
153 | |||
154 | bootloaders_env@260000 { | ||
155 | label = "U-Boot Env"; | ||
156 | reg = <0x260000 0x20000>; | ||
157 | }; | ||
158 | |||
159 | kernel@280000 { | ||
160 | label = "Kernel"; | ||
161 | reg = <0x280000 0x400000>; | ||
162 | }; | ||
163 | |||
164 | filesystem@680000 { | ||
165 | label = "File System"; | ||
166 | reg = <0x680000 0xf980000>; | ||
167 | }; | ||
168 | }; | ||
169 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts index e8ba1c247a39..05f51e10ddd6 100644 --- a/arch/arm/boot/dts/omap3-evm.dts +++ b/arch/arm/boot/dts/omap3-evm.dts | |||
@@ -7,12 +7,18 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap3.dtsi" | 10 | /include/ "omap34xx.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)"; | 13 | model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)"; |
14 | compatible = "ti,omap3-evm", "ti,omap3"; | 14 | compatible = "ti,omap3-evm", "ti,omap3"; |
15 | 15 | ||
16 | cpus { | ||
17 | cpu@0 { | ||
18 | cpu0-supply = <&vcc>; | ||
19 | }; | ||
20 | }; | ||
21 | |||
16 | memory { | 22 | memory { |
17 | device_type = "memory"; | 23 | device_type = "memory"; |
18 | reg = <0x80000000 0x10000000>; /* 256 MB */ | 24 | reg = <0x80000000 0x10000000>; /* 256 MB */ |
@@ -59,3 +65,9 @@ | |||
59 | &twl_gpio { | 65 | &twl_gpio { |
60 | ti,use-leds; | 66 | ti,use-leds; |
61 | }; | 67 | }; |
68 | |||
69 | &usb_otg_hs { | ||
70 | interface-type = <0>; | ||
71 | mode = <3>; | ||
72 | power = <50>; | ||
73 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi new file mode 100644 index 000000000000..f8fe3b748c3e --- /dev/null +++ b/arch/arm/boot/dts/omap3-igep.dtsi | |||
@@ -0,0 +1,122 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IGEP Technology devices | ||
3 | * | ||
4 | * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk> | ||
5 | * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.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 | /dts-v1/; | ||
12 | |||
13 | /include/ "omap34xx.dtsi" | ||
14 | |||
15 | / { | ||
16 | memory { | ||
17 | device_type = "memory"; | ||
18 | reg = <0x80000000 0x20000000>; /* 512 MB */ | ||
19 | }; | ||
20 | |||
21 | sound { | ||
22 | compatible = "ti,omap-twl4030"; | ||
23 | ti,model = "igep2"; | ||
24 | ti,mcbsp = <&mcbsp2>; | ||
25 | ti,codec = <&twl_audio>; | ||
26 | }; | ||
27 | }; | ||
28 | |||
29 | &omap3_pmx_core { | ||
30 | uart1_pins: pinmux_uart1_pins { | ||
31 | pinctrl-single,pins = < | ||
32 | 0x152 0x100 /* uart1_rx.uart1_rx INPUT | MODE0 */ | ||
33 | 0x14c 0 /* uart1_tx.uart1_tx OUTPUT | MODE0 */ | ||
34 | >; | ||
35 | }; | ||
36 | |||
37 | uart2_pins: pinmux_uart2_pins { | ||
38 | pinctrl-single,pins = < | ||
39 | 0x14a 0x100 /* uart2_rx.uart2_rx INPUT | MODE0 */ | ||
40 | 0x148 0 /* uart2_tx.uart2_tx OUTPUT | MODE0 */ | ||
41 | >; | ||
42 | }; | ||
43 | |||
44 | uart3_pins: pinmux_uart3_pins { | ||
45 | pinctrl-single,pins = < | ||
46 | 0x16e 0x100 /* uart3_rx.uart3_rx INPUT | MODE0 */ | ||
47 | 0x170 0 /* uart3_tx.uart3_tx OUTPUT | MODE0 */ | ||
48 | >; | ||
49 | }; | ||
50 | |||
51 | mmc1_pins: pinmux_mmc1_pins { | ||
52 | pinctrl-single,pins = < | ||
53 | 0x114 0x0118 /* sdmmc1_clk.sdmmc1_clk INPUT PULLUP | MODE 0 */ | ||
54 | 0x116 0x0118 /* sdmmc1_cmd.sdmmc1_cmd INPUT PULLUP | MODE 0 */ | ||
55 | 0x118 0x0118 /* sdmmc1_dat0.sdmmc1_dat0 INPUT PULLUP | MODE 0 */ | ||
56 | 0x11a 0x0118 /* sdmmc1_dat1.sdmmc1_dat1 INPUT PULLUP | MODE 0 */ | ||
57 | 0x11c 0x0118 /* sdmmc1_dat2.sdmmc1_dat2 INPUT PULLUP | MODE 0 */ | ||
58 | 0x11e 0x0118 /* sdmmc1_dat3.sdmmc1_dat3 INPUT PULLUP | MODE 0 */ | ||
59 | 0x120 0x0100 /* sdmmc1_dat4.sdmmc1_dat4 INPUT | MODE 0 */ | ||
60 | 0x122 0x0100 /* sdmmc1_dat5.sdmmc1_dat5 INPUT | MODE 0 */ | ||
61 | 0x124 0x0100 /* sdmmc1_dat6.sdmmc1_dat6 INPUT | MODE 0 */ | ||
62 | 0x126 0x0100 /* sdmmc1_dat7.sdmmc1_dat7 INPUT | MODE 0 */ | ||
63 | >; | ||
64 | }; | ||
65 | }; | ||
66 | |||
67 | &i2c1 { | ||
68 | clock-frequency = <2600000>; | ||
69 | |||
70 | twl: twl@48 { | ||
71 | reg = <0x48>; | ||
72 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
73 | interrupt-parent = <&intc>; | ||
74 | |||
75 | twl_audio: audio { | ||
76 | compatible = "ti,twl4030-audio"; | ||
77 | codec { | ||
78 | }; | ||
79 | }; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | /include/ "twl4030.dtsi" | ||
84 | |||
85 | &i2c2 { | ||
86 | clock-frequency = <400000>; | ||
87 | }; | ||
88 | |||
89 | &mmc1 { | ||
90 | pinctrl-names = "default"; | ||
91 | pinctrl-0 = <&mmc1_pins>; | ||
92 | vmmc-supply = <&vmmc1>; | ||
93 | vmmc_aux-supply = <&vsim>; | ||
94 | bus-width = <8>; | ||
95 | }; | ||
96 | |||
97 | &mmc2 { | ||
98 | status = "disabled"; | ||
99 | }; | ||
100 | |||
101 | &mmc3 { | ||
102 | status = "disabled"; | ||
103 | }; | ||
104 | |||
105 | &uart1 { | ||
106 | pinctrl-names = "default"; | ||
107 | pinctrl-0 = <&uart1_pins>; | ||
108 | }; | ||
109 | |||
110 | &uart2 { | ||
111 | pinctrl-names = "default"; | ||
112 | pinctrl-0 = <&uart2_pins>; | ||
113 | }; | ||
114 | |||
115 | &uart3 { | ||
116 | pinctrl-names = "default"; | ||
117 | pinctrl-0 = <&uart3_pins>; | ||
118 | }; | ||
119 | |||
120 | &twl_gpio { | ||
121 | ti,use-leds; | ||
122 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep0020.dts b/arch/arm/boot/dts/omap3-igep0020.dts new file mode 100644 index 000000000000..e2b98490cc9a --- /dev/null +++ b/arch/arm/boot/dts/omap3-igep0020.dts | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IGEPv2 board | ||
3 | * | ||
4 | * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk> | ||
5 | * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.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 | /include/ "omap3-igep.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "IGEPv2"; | ||
16 | compatible = "isee,omap3-igep0020", "ti,omap3"; | ||
17 | |||
18 | leds { | ||
19 | compatible = "gpio-leds"; | ||
20 | boot { | ||
21 | label = "omap3:green:boot"; | ||
22 | gpios = <&gpio1 26 0>; | ||
23 | default-state = "on"; | ||
24 | }; | ||
25 | |||
26 | user0 { | ||
27 | label = "omap3:red:user0"; | ||
28 | gpios = <&gpio1 27 0>; | ||
29 | default-state = "off"; | ||
30 | }; | ||
31 | |||
32 | user1 { | ||
33 | label = "omap3:red:user1"; | ||
34 | gpios = <&gpio1 28 0>; | ||
35 | default-state = "off"; | ||
36 | }; | ||
37 | |||
38 | user2 { | ||
39 | label = "omap3:green:user1"; | ||
40 | gpios = <&twl_gpio 19 1>; | ||
41 | }; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | &i2c3 { | ||
46 | clock-frequency = <100000>; | ||
47 | |||
48 | /* | ||
49 | * Display monitor features are burnt in the EEPROM | ||
50 | * as EDID data. | ||
51 | */ | ||
52 | eeprom@50 { | ||
53 | compatible = "ti,eeprom"; | ||
54 | reg = <0x50>; | ||
55 | }; | ||
56 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-igep0030.dts b/arch/arm/boot/dts/omap3-igep0030.dts new file mode 100644 index 000000000000..9dc48d262ffb --- /dev/null +++ b/arch/arm/boot/dts/omap3-igep0030.dts | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | * Device Tree Source for IGEP COM Module | ||
3 | * | ||
4 | * Copyright (C) 2012 Javier Martinez Canillas <javier@collabora.co.uk> | ||
5 | * Copyright (C) 2012 Enric Balletbo i Serra <eballetbo@gmail.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 | /include/ "omap3-igep.dtsi" | ||
13 | |||
14 | / { | ||
15 | model = "IGEP COM Module"; | ||
16 | compatible = "isee,omap3-igep0030", "ti,omap3"; | ||
17 | |||
18 | leds { | ||
19 | compatible = "gpio-leds"; | ||
20 | boot { | ||
21 | label = "omap3:green:boot"; | ||
22 | gpios = <&twl_gpio 13 1>; | ||
23 | default-state = "on"; | ||
24 | }; | ||
25 | |||
26 | user0 { | ||
27 | label = "omap3:red:user0"; | ||
28 | gpios = <&twl_gpio 18 1>; /* LEDA */ | ||
29 | default-state = "off"; | ||
30 | }; | ||
31 | |||
32 | user1 { | ||
33 | label = "omap3:green:user1"; | ||
34 | gpios = <&twl_gpio 19 1>; /* LEDB */ | ||
35 | default-state = "off"; | ||
36 | }; | ||
37 | |||
38 | user2 { | ||
39 | label = "omap3:red:user1"; | ||
40 | gpios = <&gpio1 16 1>; | ||
41 | default-state = "off"; | ||
42 | }; | ||
43 | }; | ||
44 | }; | ||
diff --git a/arch/arm/boot/dts/omap3-overo.dtsi b/arch/arm/boot/dts/omap3-overo.dtsi index 89808ce01673..d4a7280d18b7 100644 --- a/arch/arm/boot/dts/omap3-overo.dtsi +++ b/arch/arm/boot/dts/omap3-overo.dtsi | |||
@@ -11,17 +11,26 @@ | |||
11 | */ | 11 | */ |
12 | /dts-v1/; | 12 | /dts-v1/; |
13 | 13 | ||
14 | /include/ "omap3.dtsi" | 14 | /include/ "omap34xx.dtsi" |
15 | 15 | ||
16 | / { | 16 | / { |
17 | leds { | 17 | pwmleds { |
18 | compatible = "gpio-leds"; | 18 | compatible = "pwm-leds"; |
19 | |||
19 | overo { | 20 | overo { |
20 | label = "overo:blue:COM"; | 21 | label = "overo:blue:COM"; |
21 | gpios = <&twl_gpio 19 0>; | 22 | pwms = <&twl_pwmled 1 7812500>; |
22 | linux,default-trigger = "mmc0"; | 23 | max-brightness = <127>; |
23 | }; | 24 | }; |
24 | }; | 25 | }; |
26 | |||
27 | sound { | ||
28 | compatible = "ti,omap-twl4030"; | ||
29 | ti,model = "overo"; | ||
30 | |||
31 | ti,mcbsp = <&mcbsp2>; | ||
32 | ti,codec = <&twl_audio>; | ||
33 | }; | ||
25 | }; | 34 | }; |
26 | 35 | ||
27 | &i2c1 { | 36 | &i2c1 { |
@@ -31,6 +40,12 @@ | |||
31 | reg = <0x48>; | 40 | reg = <0x48>; |
32 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | 41 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ |
33 | interrupt-parent = <&intc>; | 42 | interrupt-parent = <&intc>; |
43 | |||
44 | twl_audio: audio { | ||
45 | compatible = "ti,twl4030-audio"; | ||
46 | codec { | ||
47 | }; | ||
48 | }; | ||
34 | }; | 49 | }; |
35 | }; | 50 | }; |
36 | 51 | ||
@@ -55,3 +70,9 @@ | |||
55 | &twl_gpio { | 70 | &twl_gpio { |
56 | ti,use-leds; | 71 | ti,use-leds; |
57 | }; | 72 | }; |
73 | |||
74 | &usb_otg_hs { | ||
75 | interface-type = <0>; | ||
76 | mode = <3>; | ||
77 | power = <50>; | ||
78 | }; | ||
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi index a14f74bbce7c..4ad03d9dbf0c 100644 --- a/arch/arm/boot/dts/omap3.dtsi +++ b/arch/arm/boot/dts/omap3.dtsi | |||
@@ -26,8 +26,14 @@ | |||
26 | }; | 26 | }; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | pmu { | ||
30 | compatible = "arm,cortex-a8-pmu"; | ||
31 | interrupts = <3>; | ||
32 | ti,hwmods = "debugss"; | ||
33 | }; | ||
34 | |||
29 | /* | 35 | /* |
30 | * The soc node represents the soc top level view. It is uses for IPs | 36 | * The soc node represents the soc top level view. It is used for IPs |
31 | * that are not memory mapped in the MPU view or for the MPU itself. | 37 | * that are not memory mapped in the MPU view or for the MPU itself. |
32 | */ | 38 | */ |
33 | soc { | 39 | soc { |
@@ -75,76 +81,101 @@ | |||
75 | reg = <0x48200000 0x1000>; | 81 | reg = <0x48200000 0x1000>; |
76 | }; | 82 | }; |
77 | 83 | ||
84 | sdma: dma-controller@48056000 { | ||
85 | compatible = "ti,omap3630-sdma", "ti,omap3430-sdma"; | ||
86 | reg = <0x48056000 0x1000>; | ||
87 | interrupts = <12>, | ||
88 | <13>, | ||
89 | <14>, | ||
90 | <15>; | ||
91 | #dma-cells = <1>; | ||
92 | #dma-channels = <32>; | ||
93 | #dma-requests = <96>; | ||
94 | }; | ||
95 | |||
78 | omap3_pmx_core: pinmux@48002030 { | 96 | omap3_pmx_core: pinmux@48002030 { |
79 | compatible = "ti,omap3-padconf", "pinctrl-single"; | 97 | compatible = "ti,omap3-padconf", "pinctrl-single"; |
80 | reg = <0x48002030 0x05cc>; | 98 | reg = <0x48002030 0x05cc>; |
81 | #address-cells = <1>; | 99 | #address-cells = <1>; |
82 | #size-cells = <0>; | 100 | #size-cells = <0>; |
83 | pinctrl-single,register-width = <16>; | 101 | pinctrl-single,register-width = <16>; |
84 | pinctrl-single,function-mask = <0x7fff>; | 102 | pinctrl-single,function-mask = <0x7f1f>; |
85 | }; | 103 | }; |
86 | 104 | ||
87 | omap3_pmx_wkup: pinmux@0x48002a58 { | 105 | omap3_pmx_wkup: pinmux@0x48002a00 { |
88 | compatible = "ti,omap3-padconf", "pinctrl-single"; | 106 | compatible = "ti,omap3-padconf", "pinctrl-single"; |
89 | reg = <0x48002a58 0x5c>; | 107 | reg = <0x48002a00 0x5c>; |
90 | #address-cells = <1>; | 108 | #address-cells = <1>; |
91 | #size-cells = <0>; | 109 | #size-cells = <0>; |
92 | pinctrl-single,register-width = <16>; | 110 | pinctrl-single,register-width = <16>; |
93 | pinctrl-single,function-mask = <0x7fff>; | 111 | pinctrl-single,function-mask = <0x7f1f>; |
94 | }; | 112 | }; |
95 | 113 | ||
96 | gpio1: gpio@48310000 { | 114 | gpio1: gpio@48310000 { |
97 | compatible = "ti,omap3-gpio"; | 115 | compatible = "ti,omap3-gpio"; |
116 | reg = <0x48310000 0x200>; | ||
117 | interrupts = <29>; | ||
98 | ti,hwmods = "gpio1"; | 118 | ti,hwmods = "gpio1"; |
119 | ti,gpio-always-on; | ||
99 | gpio-controller; | 120 | gpio-controller; |
100 | #gpio-cells = <2>; | 121 | #gpio-cells = <2>; |
101 | interrupt-controller; | 122 | interrupt-controller; |
102 | #interrupt-cells = <1>; | 123 | #interrupt-cells = <2>; |
103 | }; | 124 | }; |
104 | 125 | ||
105 | gpio2: gpio@49050000 { | 126 | gpio2: gpio@49050000 { |
106 | compatible = "ti,omap3-gpio"; | 127 | compatible = "ti,omap3-gpio"; |
128 | reg = <0x49050000 0x200>; | ||
129 | interrupts = <30>; | ||
107 | ti,hwmods = "gpio2"; | 130 | ti,hwmods = "gpio2"; |
108 | gpio-controller; | 131 | gpio-controller; |
109 | #gpio-cells = <2>; | 132 | #gpio-cells = <2>; |
110 | interrupt-controller; | 133 | interrupt-controller; |
111 | #interrupt-cells = <1>; | 134 | #interrupt-cells = <2>; |
112 | }; | 135 | }; |
113 | 136 | ||
114 | gpio3: gpio@49052000 { | 137 | gpio3: gpio@49052000 { |
115 | compatible = "ti,omap3-gpio"; | 138 | compatible = "ti,omap3-gpio"; |
139 | reg = <0x49052000 0x200>; | ||
140 | interrupts = <31>; | ||
116 | ti,hwmods = "gpio3"; | 141 | ti,hwmods = "gpio3"; |
117 | gpio-controller; | 142 | gpio-controller; |
118 | #gpio-cells = <2>; | 143 | #gpio-cells = <2>; |
119 | interrupt-controller; | 144 | interrupt-controller; |
120 | #interrupt-cells = <1>; | 145 | #interrupt-cells = <2>; |
121 | }; | 146 | }; |
122 | 147 | ||
123 | gpio4: gpio@49054000 { | 148 | gpio4: gpio@49054000 { |
124 | compatible = "ti,omap3-gpio"; | 149 | compatible = "ti,omap3-gpio"; |
150 | reg = <0x49054000 0x200>; | ||
151 | interrupts = <32>; | ||
125 | ti,hwmods = "gpio4"; | 152 | ti,hwmods = "gpio4"; |
126 | gpio-controller; | 153 | gpio-controller; |
127 | #gpio-cells = <2>; | 154 | #gpio-cells = <2>; |
128 | interrupt-controller; | 155 | interrupt-controller; |
129 | #interrupt-cells = <1>; | 156 | #interrupt-cells = <2>; |
130 | }; | 157 | }; |
131 | 158 | ||
132 | gpio5: gpio@49056000 { | 159 | gpio5: gpio@49056000 { |
133 | compatible = "ti,omap3-gpio"; | 160 | compatible = "ti,omap3-gpio"; |
161 | reg = <0x49056000 0x200>; | ||
162 | interrupts = <33>; | ||
134 | ti,hwmods = "gpio5"; | 163 | ti,hwmods = "gpio5"; |
135 | gpio-controller; | 164 | gpio-controller; |
136 | #gpio-cells = <2>; | 165 | #gpio-cells = <2>; |
137 | interrupt-controller; | 166 | interrupt-controller; |
138 | #interrupt-cells = <1>; | 167 | #interrupt-cells = <2>; |
139 | }; | 168 | }; |
140 | 169 | ||
141 | gpio6: gpio@49058000 { | 170 | gpio6: gpio@49058000 { |
142 | compatible = "ti,omap3-gpio"; | 171 | compatible = "ti,omap3-gpio"; |
172 | reg = <0x49058000 0x200>; | ||
173 | interrupts = <34>; | ||
143 | ti,hwmods = "gpio6"; | 174 | ti,hwmods = "gpio6"; |
144 | gpio-controller; | 175 | gpio-controller; |
145 | #gpio-cells = <2>; | 176 | #gpio-cells = <2>; |
146 | interrupt-controller; | 177 | interrupt-controller; |
147 | #interrupt-cells = <1>; | 178 | #interrupt-cells = <2>; |
148 | }; | 179 | }; |
149 | 180 | ||
150 | uart1: serial@4806a000 { | 181 | uart1: serial@4806a000 { |
@@ -192,6 +223,16 @@ | |||
192 | #size-cells = <0>; | 223 | #size-cells = <0>; |
193 | ti,hwmods = "mcspi1"; | 224 | ti,hwmods = "mcspi1"; |
194 | ti,spi-num-cs = <4>; | 225 | ti,spi-num-cs = <4>; |
226 | dmas = <&sdma 35>, | ||
227 | <&sdma 36>, | ||
228 | <&sdma 37>, | ||
229 | <&sdma 38>, | ||
230 | <&sdma 39>, | ||
231 | <&sdma 40>, | ||
232 | <&sdma 41>, | ||
233 | <&sdma 42>; | ||
234 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
235 | "tx2", "rx2", "tx3", "rx3"; | ||
195 | }; | 236 | }; |
196 | 237 | ||
197 | mcspi2: spi@4809a000 { | 238 | mcspi2: spi@4809a000 { |
@@ -200,6 +241,11 @@ | |||
200 | #size-cells = <0>; | 241 | #size-cells = <0>; |
201 | ti,hwmods = "mcspi2"; | 242 | ti,hwmods = "mcspi2"; |
202 | ti,spi-num-cs = <2>; | 243 | ti,spi-num-cs = <2>; |
244 | dmas = <&sdma 43>, | ||
245 | <&sdma 44>, | ||
246 | <&sdma 45>, | ||
247 | <&sdma 46>; | ||
248 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
203 | }; | 249 | }; |
204 | 250 | ||
205 | mcspi3: spi@480b8000 { | 251 | mcspi3: spi@480b8000 { |
@@ -208,6 +254,11 @@ | |||
208 | #size-cells = <0>; | 254 | #size-cells = <0>; |
209 | ti,hwmods = "mcspi3"; | 255 | ti,hwmods = "mcspi3"; |
210 | ti,spi-num-cs = <2>; | 256 | ti,spi-num-cs = <2>; |
257 | dmas = <&sdma 15>, | ||
258 | <&sdma 16>, | ||
259 | <&sdma 23>, | ||
260 | <&sdma 24>; | ||
261 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
211 | }; | 262 | }; |
212 | 263 | ||
213 | mcspi4: spi@480ba000 { | 264 | mcspi4: spi@480ba000 { |
@@ -216,22 +267,30 @@ | |||
216 | #size-cells = <0>; | 267 | #size-cells = <0>; |
217 | ti,hwmods = "mcspi4"; | 268 | ti,hwmods = "mcspi4"; |
218 | ti,spi-num-cs = <1>; | 269 | ti,spi-num-cs = <1>; |
270 | dmas = <&sdma 70>, <&sdma 71>; | ||
271 | dma-names = "tx0", "rx0"; | ||
219 | }; | 272 | }; |
220 | 273 | ||
221 | mmc1: mmc@4809c000 { | 274 | mmc1: mmc@4809c000 { |
222 | compatible = "ti,omap3-hsmmc"; | 275 | compatible = "ti,omap3-hsmmc"; |
223 | ti,hwmods = "mmc1"; | 276 | ti,hwmods = "mmc1"; |
224 | ti,dual-volt; | 277 | ti,dual-volt; |
278 | dmas = <&sdma 61>, <&sdma 62>; | ||
279 | dma-names = "tx", "rx"; | ||
225 | }; | 280 | }; |
226 | 281 | ||
227 | mmc2: mmc@480b4000 { | 282 | mmc2: mmc@480b4000 { |
228 | compatible = "ti,omap3-hsmmc"; | 283 | compatible = "ti,omap3-hsmmc"; |
229 | ti,hwmods = "mmc2"; | 284 | ti,hwmods = "mmc2"; |
285 | dmas = <&sdma 47>, <&sdma 48>; | ||
286 | dma-names = "tx", "rx"; | ||
230 | }; | 287 | }; |
231 | 288 | ||
232 | mmc3: mmc@480ad000 { | 289 | mmc3: mmc@480ad000 { |
233 | compatible = "ti,omap3-hsmmc"; | 290 | compatible = "ti,omap3-hsmmc"; |
234 | ti,hwmods = "mmc3"; | 291 | ti,hwmods = "mmc3"; |
292 | dmas = <&sdma 77>, <&sdma 78>; | ||
293 | dma-names = "tx", "rx"; | ||
235 | }; | 294 | }; |
236 | 295 | ||
237 | wdt2: wdt@48314000 { | 296 | wdt2: wdt@48314000 { |
@@ -249,6 +308,9 @@ | |||
249 | interrupt-names = "common", "tx", "rx"; | 308 | interrupt-names = "common", "tx", "rx"; |
250 | ti,buffer-size = <128>; | 309 | ti,buffer-size = <128>; |
251 | ti,hwmods = "mcbsp1"; | 310 | ti,hwmods = "mcbsp1"; |
311 | dmas = <&sdma 31>, | ||
312 | <&sdma 32>; | ||
313 | dma-names = "tx", "rx"; | ||
252 | }; | 314 | }; |
253 | 315 | ||
254 | mcbsp2: mcbsp@49022000 { | 316 | mcbsp2: mcbsp@49022000 { |
@@ -263,6 +325,9 @@ | |||
263 | interrupt-names = "common", "tx", "rx", "sidetone"; | 325 | interrupt-names = "common", "tx", "rx", "sidetone"; |
264 | ti,buffer-size = <1280>; | 326 | ti,buffer-size = <1280>; |
265 | ti,hwmods = "mcbsp2", "mcbsp2_sidetone"; | 327 | ti,hwmods = "mcbsp2", "mcbsp2_sidetone"; |
328 | dmas = <&sdma 33>, | ||
329 | <&sdma 34>; | ||
330 | dma-names = "tx", "rx"; | ||
266 | }; | 331 | }; |
267 | 332 | ||
268 | mcbsp3: mcbsp@49024000 { | 333 | mcbsp3: mcbsp@49024000 { |
@@ -277,6 +342,9 @@ | |||
277 | interrupt-names = "common", "tx", "rx", "sidetone"; | 342 | interrupt-names = "common", "tx", "rx", "sidetone"; |
278 | ti,buffer-size = <128>; | 343 | ti,buffer-size = <128>; |
279 | ti,hwmods = "mcbsp3", "mcbsp3_sidetone"; | 344 | ti,hwmods = "mcbsp3", "mcbsp3_sidetone"; |
345 | dmas = <&sdma 17>, | ||
346 | <&sdma 18>; | ||
347 | dma-names = "tx", "rx"; | ||
280 | }; | 348 | }; |
281 | 349 | ||
282 | mcbsp4: mcbsp@49026000 { | 350 | mcbsp4: mcbsp@49026000 { |
@@ -289,6 +357,9 @@ | |||
289 | interrupt-names = "common", "tx", "rx"; | 357 | interrupt-names = "common", "tx", "rx"; |
290 | ti,buffer-size = <128>; | 358 | ti,buffer-size = <128>; |
291 | ti,hwmods = "mcbsp4"; | 359 | ti,hwmods = "mcbsp4"; |
360 | dmas = <&sdma 19>, | ||
361 | <&sdma 20>; | ||
362 | dma-names = "tx", "rx"; | ||
292 | }; | 363 | }; |
293 | 364 | ||
294 | mcbsp5: mcbsp@48096000 { | 365 | mcbsp5: mcbsp@48096000 { |
@@ -301,10 +372,13 @@ | |||
301 | interrupt-names = "common", "tx", "rx"; | 372 | interrupt-names = "common", "tx", "rx"; |
302 | ti,buffer-size = <128>; | 373 | ti,buffer-size = <128>; |
303 | ti,hwmods = "mcbsp5"; | 374 | ti,hwmods = "mcbsp5"; |
375 | dmas = <&sdma 21>, | ||
376 | <&sdma 22>; | ||
377 | dma-names = "tx", "rx"; | ||
304 | }; | 378 | }; |
305 | 379 | ||
306 | timer1: timer@48318000 { | 380 | timer1: timer@48318000 { |
307 | compatible = "ti,omap2-timer"; | 381 | compatible = "ti,omap3430-timer"; |
308 | reg = <0x48318000 0x400>; | 382 | reg = <0x48318000 0x400>; |
309 | interrupts = <37>; | 383 | interrupts = <37>; |
310 | ti,hwmods = "timer1"; | 384 | ti,hwmods = "timer1"; |
@@ -312,28 +386,28 @@ | |||
312 | }; | 386 | }; |
313 | 387 | ||
314 | timer2: timer@49032000 { | 388 | timer2: timer@49032000 { |
315 | compatible = "ti,omap2-timer"; | 389 | compatible = "ti,omap3430-timer"; |
316 | reg = <0x49032000 0x400>; | 390 | reg = <0x49032000 0x400>; |
317 | interrupts = <38>; | 391 | interrupts = <38>; |
318 | ti,hwmods = "timer2"; | 392 | ti,hwmods = "timer2"; |
319 | }; | 393 | }; |
320 | 394 | ||
321 | timer3: timer@49034000 { | 395 | timer3: timer@49034000 { |
322 | compatible = "ti,omap2-timer"; | 396 | compatible = "ti,omap3430-timer"; |
323 | reg = <0x49034000 0x400>; | 397 | reg = <0x49034000 0x400>; |
324 | interrupts = <39>; | 398 | interrupts = <39>; |
325 | ti,hwmods = "timer3"; | 399 | ti,hwmods = "timer3"; |
326 | }; | 400 | }; |
327 | 401 | ||
328 | timer4: timer@49036000 { | 402 | timer4: timer@49036000 { |
329 | compatible = "ti,omap2-timer"; | 403 | compatible = "ti,omap3430-timer"; |
330 | reg = <0x49036000 0x400>; | 404 | reg = <0x49036000 0x400>; |
331 | interrupts = <40>; | 405 | interrupts = <40>; |
332 | ti,hwmods = "timer4"; | 406 | ti,hwmods = "timer4"; |
333 | }; | 407 | }; |
334 | 408 | ||
335 | timer5: timer@49038000 { | 409 | timer5: timer@49038000 { |
336 | compatible = "ti,omap2-timer"; | 410 | compatible = "ti,omap3430-timer"; |
337 | reg = <0x49038000 0x400>; | 411 | reg = <0x49038000 0x400>; |
338 | interrupts = <41>; | 412 | interrupts = <41>; |
339 | ti,hwmods = "timer5"; | 413 | ti,hwmods = "timer5"; |
@@ -341,7 +415,7 @@ | |||
341 | }; | 415 | }; |
342 | 416 | ||
343 | timer6: timer@4903a000 { | 417 | timer6: timer@4903a000 { |
344 | compatible = "ti,omap2-timer"; | 418 | compatible = "ti,omap3430-timer"; |
345 | reg = <0x4903a000 0x400>; | 419 | reg = <0x4903a000 0x400>; |
346 | interrupts = <42>; | 420 | interrupts = <42>; |
347 | ti,hwmods = "timer6"; | 421 | ti,hwmods = "timer6"; |
@@ -349,7 +423,7 @@ | |||
349 | }; | 423 | }; |
350 | 424 | ||
351 | timer7: timer@4903c000 { | 425 | timer7: timer@4903c000 { |
352 | compatible = "ti,omap2-timer"; | 426 | compatible = "ti,omap3430-timer"; |
353 | reg = <0x4903c000 0x400>; | 427 | reg = <0x4903c000 0x400>; |
354 | interrupts = <43>; | 428 | interrupts = <43>; |
355 | ti,hwmods = "timer7"; | 429 | ti,hwmods = "timer7"; |
@@ -357,7 +431,7 @@ | |||
357 | }; | 431 | }; |
358 | 432 | ||
359 | timer8: timer@4903e000 { | 433 | timer8: timer@4903e000 { |
360 | compatible = "ti,omap2-timer"; | 434 | compatible = "ti,omap3430-timer"; |
361 | reg = <0x4903e000 0x400>; | 435 | reg = <0x4903e000 0x400>; |
362 | interrupts = <44>; | 436 | interrupts = <44>; |
363 | ti,hwmods = "timer8"; | 437 | ti,hwmods = "timer8"; |
@@ -366,7 +440,7 @@ | |||
366 | }; | 440 | }; |
367 | 441 | ||
368 | timer9: timer@49040000 { | 442 | timer9: timer@49040000 { |
369 | compatible = "ti,omap2-timer"; | 443 | compatible = "ti,omap3430-timer"; |
370 | reg = <0x49040000 0x400>; | 444 | reg = <0x49040000 0x400>; |
371 | interrupts = <45>; | 445 | interrupts = <45>; |
372 | ti,hwmods = "timer9"; | 446 | ti,hwmods = "timer9"; |
@@ -374,7 +448,7 @@ | |||
374 | }; | 448 | }; |
375 | 449 | ||
376 | timer10: timer@48086000 { | 450 | timer10: timer@48086000 { |
377 | compatible = "ti,omap2-timer"; | 451 | compatible = "ti,omap3430-timer"; |
378 | reg = <0x48086000 0x400>; | 452 | reg = <0x48086000 0x400>; |
379 | interrupts = <46>; | 453 | interrupts = <46>; |
380 | ti,hwmods = "timer10"; | 454 | ti,hwmods = "timer10"; |
@@ -382,7 +456,7 @@ | |||
382 | }; | 456 | }; |
383 | 457 | ||
384 | timer11: timer@48088000 { | 458 | timer11: timer@48088000 { |
385 | compatible = "ti,omap2-timer"; | 459 | compatible = "ti,omap3430-timer"; |
386 | reg = <0x48088000 0x400>; | 460 | reg = <0x48088000 0x400>; |
387 | interrupts = <47>; | 461 | interrupts = <47>; |
388 | ti,hwmods = "timer11"; | 462 | ti,hwmods = "timer11"; |
@@ -390,7 +464,7 @@ | |||
390 | }; | 464 | }; |
391 | 465 | ||
392 | timer12: timer@48304000 { | 466 | timer12: timer@48304000 { |
393 | compatible = "ti,omap2-timer"; | 467 | compatible = "ti,omap3430-timer"; |
394 | reg = <0x48304000 0x400>; | 468 | reg = <0x48304000 0x400>; |
395 | interrupts = <95>; | 469 | interrupts = <95>; |
396 | ti,hwmods = "timer12"; | 470 | ti,hwmods = "timer12"; |
@@ -428,5 +502,27 @@ | |||
428 | }; | 502 | }; |
429 | }; | 503 | }; |
430 | 504 | ||
505 | gpmc: gpmc@6e000000 { | ||
506 | compatible = "ti,omap3430-gpmc"; | ||
507 | ti,hwmods = "gpmc"; | ||
508 | reg = <0x6e000000 0x02d0>; | ||
509 | interrupts = <20>; | ||
510 | gpmc,num-cs = <8>; | ||
511 | gpmc,num-waitpins = <4>; | ||
512 | #address-cells = <2>; | ||
513 | #size-cells = <1>; | ||
514 | }; | ||
515 | |||
516 | usb_otg_hs: usb_otg_hs@480ab000 { | ||
517 | compatible = "ti,omap3-musb"; | ||
518 | reg = <0x480ab000 0x1000>; | ||
519 | interrupts = <0 92 0x4>, <0 93 0x4>; | ||
520 | interrupt-names = "mc", "dma"; | ||
521 | ti,hwmods = "usb_otg_hs"; | ||
522 | usb-phy = <&usb2_phy>; | ||
523 | multipoint = <1>; | ||
524 | num-eps = <16>; | ||
525 | ram-bits = <12>; | ||
526 | }; | ||
431 | }; | 527 | }; |
432 | }; | 528 | }; |
diff --git a/arch/arm/boot/dts/omap3430-sdp.dts b/arch/arm/boot/dts/omap3430-sdp.dts new file mode 100644 index 000000000000..144ae43453c4 --- /dev/null +++ b/arch/arm/boot/dts/omap3430-sdp.dts | |||
@@ -0,0 +1,190 @@ | |||
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/ "omap34xx.dtsi" | ||
11 | |||
12 | / { | ||
13 | model = "TI OMAP3430 SDP"; | ||
14 | compatible = "ti,omap3430-sdp", "ti,omap3"; | ||
15 | |||
16 | memory { | ||
17 | device_type = "memory"; | ||
18 | reg = <0x80000000 0x10000000>; /* 256 MB */ | ||
19 | }; | ||
20 | }; | ||
21 | |||
22 | &i2c1 { | ||
23 | clock-frequency = <2600000>; | ||
24 | |||
25 | twl: twl@48 { | ||
26 | reg = <0x48>; | ||
27 | interrupts = <7>; /* SYS_NIRQ cascaded to intc */ | ||
28 | }; | ||
29 | }; | ||
30 | |||
31 | /include/ "twl4030.dtsi" | ||
32 | |||
33 | &mmc1 { | ||
34 | vmmc-supply = <&vmmc1>; | ||
35 | vmmc_aux-supply = <&vsim>; | ||
36 | bus-width = <8>; | ||
37 | }; | ||
38 | |||
39 | &mmc2 { | ||
40 | status = "disabled"; | ||
41 | }; | ||
42 | |||
43 | &mmc3 { | ||
44 | status = "disabled"; | ||
45 | }; | ||
46 | |||
47 | &gpmc { | ||
48 | ranges = <0 0 0x10000000 0x08000000>, | ||
49 | <1 0 0x28000000 0x08000000>, | ||
50 | <2 0 0x20000000 0x10000000>; | ||
51 | |||
52 | nor@0,0 { | ||
53 | compatible = "cfi-flash"; | ||
54 | linux,mtd-name= "intel,pf48f6000m0y1be"; | ||
55 | #address-cells = <1>; | ||
56 | #size-cells = <1>; | ||
57 | reg = <0 0 0x08000000>; | ||
58 | bank-width = <2>; | ||
59 | |||
60 | gpmc,mux-add-data = <2>; | ||
61 | gpmc,cs-on-ns = <0>; | ||
62 | gpmc,cs-rd-off-ns = <186>; | ||
63 | gpmc,cs-wr-off-ns = <186>; | ||
64 | gpmc,adv-on-ns = <12>; | ||
65 | gpmc,adv-rd-off-ns = <48>; | ||
66 | gpmc,adv-wr-off-ns = <48>; | ||
67 | gpmc,oe-on-ns = <54>; | ||
68 | gpmc,oe-off-ns = <168>; | ||
69 | gpmc,we-on-ns = <54>; | ||
70 | gpmc,we-off-ns = <168>; | ||
71 | gpmc,rd-cycle-ns = <186>; | ||
72 | gpmc,wr-cycle-ns = <186>; | ||
73 | gpmc,access-ns = <114>; | ||
74 | gpmc,page-burst-access-ns = <6>; | ||
75 | gpmc,bus-turnaround-ns = <12>; | ||
76 | gpmc,cycle2cycle-delay-ns = <18>; | ||
77 | gpmc,wr-data-mux-bus-ns = <90>; | ||
78 | gpmc,wr-access-ns = <186>; | ||
79 | gpmc,cycle2cycle-samecsen; | ||
80 | gpmc,cycle2cycle-diffcsen; | ||
81 | |||
82 | partition@0 { | ||
83 | label = "bootloader-nor"; | ||
84 | reg = <0 0x40000>; | ||
85 | }; | ||
86 | partition@0x40000 { | ||
87 | label = "params-nor"; | ||
88 | reg = <0x40000 0x40000>; | ||
89 | }; | ||
90 | partition@0x80000 { | ||
91 | label = "kernel-nor"; | ||
92 | reg = <0x80000 0x200000>; | ||
93 | }; | ||
94 | partition@0x280000 { | ||
95 | label = "filesystem-nor"; | ||
96 | reg = <0x240000 0x7d80000>; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | nand@1,0 { | ||
101 | linux,mtd-name= "micron,mt29f1g08abb"; | ||
102 | #address-cells = <1>; | ||
103 | #size-cells = <1>; | ||
104 | reg = <1 0 0x08000000>; | ||
105 | nand-bus-width = <8>; | ||
106 | |||
107 | ti,nand-ecc-opt = "sw"; | ||
108 | gpmc,device-nand; | ||
109 | gpmc,cs-on-ns = <0>; | ||
110 | gpmc,cs-rd-off-ns = <36>; | ||
111 | gpmc,cs-wr-off-ns = <36>; | ||
112 | gpmc,adv-on-ns = <6>; | ||
113 | gpmc,adv-rd-off-ns = <24>; | ||
114 | gpmc,adv-wr-off-ns = <36>; | ||
115 | gpmc,oe-on-ns = <6>; | ||
116 | gpmc,oe-off-ns = <48>; | ||
117 | gpmc,we-on-ns = <6>; | ||
118 | gpmc,we-off-ns = <30>; | ||
119 | gpmc,rd-cycle-ns = <72>; | ||
120 | gpmc,wr-cycle-ns = <72>; | ||
121 | gpmc,access-ns = <54>; | ||
122 | gpmc,wr-access-ns = <30>; | ||
123 | |||
124 | partition@0 { | ||
125 | label = "xloader-nand"; | ||
126 | reg = <0 0x80000>; | ||
127 | }; | ||
128 | partition@0x80000 { | ||
129 | label = "bootloader-nand"; | ||
130 | reg = <0x80000 0x140000>; | ||
131 | }; | ||
132 | partition@0x1c0000 { | ||
133 | label = "params-nand"; | ||
134 | reg = <0x1c0000 0xc0000>; | ||
135 | }; | ||
136 | partition@0x280000 { | ||
137 | label = "kernel-nand"; | ||
138 | reg = <0x280000 0x500000>; | ||
139 | }; | ||
140 | partition@0x780000 { | ||
141 | label = "filesystem-nand"; | ||
142 | reg = <0x780000 0x7880000>; | ||
143 | }; | ||
144 | }; | ||
145 | |||
146 | onenand@2,0 { | ||
147 | linux,mtd-name= "samsung,kfm2g16q2m-deb8"; | ||
148 | #address-cells = <1>; | ||
149 | #size-cells = <1>; | ||
150 | reg = <2 0 0x10000000>; | ||
151 | |||
152 | gpmc,device-width = <2>; | ||
153 | gpmc,mux-add-data = <2>; | ||
154 | gpmc,cs-on-ns = <0>; | ||
155 | gpmc,cs-rd-off-ns = <84>; | ||
156 | gpmc,cs-wr-off-ns = <72>; | ||
157 | gpmc,adv-on-ns = <0>; | ||
158 | gpmc,adv-rd-off-ns = <18>; | ||
159 | gpmc,adv-wr-off-ns = <18>; | ||
160 | gpmc,oe-on-ns = <30>; | ||
161 | gpmc,oe-off-ns = <84>; | ||
162 | gpmc,we-on-ns = <0>; | ||
163 | gpmc,we-off-ns = <42>; | ||
164 | gpmc,rd-cycle-ns = <108>; | ||
165 | gpmc,wr-cycle-ns = <96>; | ||
166 | gpmc,access-ns = <78>; | ||
167 | gpmc,wr-data-mux-bus-ns = <30>; | ||
168 | |||
169 | partition@0 { | ||
170 | label = "xloader-onenand"; | ||
171 | reg = <0 0x80000>; | ||
172 | }; | ||
173 | partition@0x80000 { | ||
174 | label = "bootloader-onenand"; | ||
175 | reg = <0x80000 0x40000>; | ||
176 | }; | ||
177 | partition@0xc0000 { | ||
178 | label = "params-onenand"; | ||
179 | reg = <0xc0000 0x20000>; | ||
180 | }; | ||
181 | partition@0xe0000 { | ||
182 | label = "kernel-onenand"; | ||
183 | reg = <0xe0000 0x200000>; | ||
184 | }; | ||
185 | partition@0x2e0000 { | ||
186 | label = "filesystem-onenand"; | ||
187 | reg = <0x2e0000 0xfd20000>; | ||
188 | }; | ||
189 | }; | ||
190 | }; | ||
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi new file mode 100644 index 000000000000..75ed4ae2e631 --- /dev/null +++ b/arch/arm/boot/dts/omap34xx.dtsi | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * Device Tree Source for OMAP34xx/OMAP35xx SoC | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /include/ "omap3.dtsi" | ||
12 | |||
13 | / { | ||
14 | cpus { | ||
15 | cpu@0 { | ||
16 | /* OMAP343x/OMAP35xx variants OPP1-5 */ | ||
17 | operating-points = < | ||
18 | /* kHz uV */ | ||
19 | 125000 975000 | ||
20 | 250000 1075000 | ||
21 | 500000 1200000 | ||
22 | 550000 1270000 | ||
23 | 600000 1350000 | ||
24 | >; | ||
25 | clock-latency = <300000>; /* From legacy driver */ | ||
26 | }; | ||
27 | }; | ||
28 | }; | ||
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi index 96bf0287cb9f..b89233e43b0f 100644 --- a/arch/arm/boot/dts/omap36xx.dtsi +++ b/arch/arm/boot/dts/omap36xx.dtsi | |||
@@ -15,6 +15,19 @@ | |||
15 | serial3 = &uart4; | 15 | serial3 = &uart4; |
16 | }; | 16 | }; |
17 | 17 | ||
18 | cpus { | ||
19 | /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */ | ||
20 | cpu@0 { | ||
21 | operating-points = < | ||
22 | /* kHz uV */ | ||
23 | 300000 975000 | ||
24 | 600000 1075000 | ||
25 | 800000 1200000 | ||
26 | >; | ||
27 | clock-latency = <300000>; /* From legacy driver */ | ||
28 | }; | ||
29 | }; | ||
30 | |||
18 | ocp { | 31 | ocp { |
19 | uart4: serial@49042000 { | 32 | uart4: serial@49042000 { |
20 | compatible = "ti,omap3-uart"; | 33 | compatible = "ti,omap3-uart"; |
diff --git a/arch/arm/boot/dts/omap4-panda-a4.dts b/arch/arm/boot/dts/omap4-panda-a4.dts index 75466d2abfb5..e30cdf0f5ac1 100644 --- a/arch/arm/boot/dts/omap4-panda-a4.dts +++ b/arch/arm/boot/dts/omap4-panda-a4.dts | |||
@@ -5,7 +5,10 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | /include/ "omap4-panda.dts" | 8 | /dts-v1/; |
9 | |||
10 | /include/ "omap443x.dtsi" | ||
11 | /include/ "omap4-panda-common.dtsi" | ||
9 | 12 | ||
10 | /* Pandaboard Rev A4+ have external pullups on SCL & SDA */ | 13 | /* Pandaboard Rev A4+ have external pullups on SCL & SDA */ |
11 | &dss_hdmi_pins { | 14 | &dss_hdmi_pins { |
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi new file mode 100644 index 000000000000..03bd60deb52b --- /dev/null +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi | |||
@@ -0,0 +1,251 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011-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 | /include/ "elpida_ecb240abacn.dtsi" | ||
9 | |||
10 | / { | ||
11 | model = "TI OMAP4 PandaBoard"; | ||
12 | compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"; | ||
13 | |||
14 | memory { | ||
15 | device_type = "memory"; | ||
16 | reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
17 | }; | ||
18 | |||
19 | leds { | ||
20 | compatible = "gpio-leds"; | ||
21 | heartbeat { | ||
22 | label = "pandaboard::status1"; | ||
23 | gpios = <&gpio1 7 0>; | ||
24 | linux,default-trigger = "heartbeat"; | ||
25 | }; | ||
26 | |||
27 | mmc { | ||
28 | label = "pandaboard::status2"; | ||
29 | gpios = <&gpio1 8 0>; | ||
30 | linux,default-trigger = "mmc0"; | ||
31 | }; | ||
32 | }; | ||
33 | |||
34 | sound: sound { | ||
35 | compatible = "ti,abe-twl6040"; | ||
36 | ti,model = "PandaBoard"; | ||
37 | |||
38 | ti,mclk-freq = <38400000>; | ||
39 | |||
40 | ti,mcpdm = <&mcpdm>; | ||
41 | |||
42 | ti,twl6040 = <&twl6040>; | ||
43 | |||
44 | /* Audio routing */ | ||
45 | ti,audio-routing = | ||
46 | "Headset Stereophone", "HSOL", | ||
47 | "Headset Stereophone", "HSOR", | ||
48 | "Ext Spk", "HFL", | ||
49 | "Ext Spk", "HFR", | ||
50 | "Line Out", "AUXL", | ||
51 | "Line Out", "AUXR", | ||
52 | "HSMIC", "Headset Mic", | ||
53 | "Headset Mic", "Headset Mic Bias", | ||
54 | "AFML", "Line In", | ||
55 | "AFMR", "Line In"; | ||
56 | }; | ||
57 | }; | ||
58 | |||
59 | &omap4_pmx_core { | ||
60 | pinctrl-names = "default"; | ||
61 | pinctrl-0 = < | ||
62 | &twl6040_pins | ||
63 | &mcpdm_pins | ||
64 | &mcbsp1_pins | ||
65 | &dss_hdmi_pins | ||
66 | &tpd12s015_pins | ||
67 | >; | ||
68 | |||
69 | twl6040_pins: pinmux_twl6040_pins { | ||
70 | pinctrl-single,pins = < | ||
71 | 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ | ||
72 | 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ | ||
73 | >; | ||
74 | }; | ||
75 | |||
76 | mcpdm_pins: pinmux_mcpdm_pins { | ||
77 | pinctrl-single,pins = < | ||
78 | 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
79 | 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
80 | 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ | ||
81 | 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
82 | 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
83 | >; | ||
84 | }; | ||
85 | |||
86 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
87 | pinctrl-single,pins = < | ||
88 | 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ | ||
89 | 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ | ||
90 | 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ | ||
91 | 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ | ||
92 | >; | ||
93 | }; | ||
94 | |||
95 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | ||
96 | pinctrl-single,pins = < | ||
97 | 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ | ||
98 | 0x5c 0x118 /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */ | ||
99 | 0x5e 0x118 /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */ | ||
100 | >; | ||
101 | }; | ||
102 | |||
103 | tpd12s015_pins: pinmux_tpd12s015_pins { | ||
104 | pinctrl-single,pins = < | ||
105 | 0x22 0x3 /* gpmc_a17.gpio_41 OUTPUT | MODE3 */ | ||
106 | 0x48 0x3 /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */ | ||
107 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ | ||
108 | >; | ||
109 | }; | ||
110 | |||
111 | i2c1_pins: pinmux_i2c1_pins { | ||
112 | pinctrl-single,pins = < | ||
113 | 0xe2 0x118 /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */ | ||
114 | 0xe4 0x118 /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */ | ||
115 | >; | ||
116 | }; | ||
117 | |||
118 | i2c2_pins: pinmux_i2c2_pins { | ||
119 | pinctrl-single,pins = < | ||
120 | 0xe6 0x118 /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */ | ||
121 | 0xe8 0x118 /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */ | ||
122 | >; | ||
123 | }; | ||
124 | |||
125 | i2c3_pins: pinmux_i2c3_pins { | ||
126 | pinctrl-single,pins = < | ||
127 | 0xea 0x118 /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */ | ||
128 | 0xec 0x118 /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */ | ||
129 | >; | ||
130 | }; | ||
131 | |||
132 | i2c4_pins: pinmux_i2c4_pins { | ||
133 | pinctrl-single,pins = < | ||
134 | 0xee 0x118 /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */ | ||
135 | 0xf0 0x118 /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */ | ||
136 | >; | ||
137 | }; | ||
138 | }; | ||
139 | |||
140 | &i2c1 { | ||
141 | pinctrl-names = "default"; | ||
142 | pinctrl-0 = <&i2c1_pins>; | ||
143 | |||
144 | clock-frequency = <400000>; | ||
145 | |||
146 | twl: twl@48 { | ||
147 | reg = <0x48>; | ||
148 | /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */ | ||
149 | interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */ | ||
150 | interrupt-parent = <&gic>; | ||
151 | }; | ||
152 | |||
153 | twl6040: twl@4b { | ||
154 | compatible = "ti,twl6040"; | ||
155 | reg = <0x4b>; | ||
156 | /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */ | ||
157 | interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */ | ||
158 | interrupt-parent = <&gic>; | ||
159 | ti,audpwron-gpio = <&gpio4 31 0>; /* gpio line 127 */ | ||
160 | |||
161 | vio-supply = <&v1v8>; | ||
162 | v2v1-supply = <&v2v1>; | ||
163 | enable-active-high; | ||
164 | }; | ||
165 | }; | ||
166 | |||
167 | /include/ "twl6030.dtsi" | ||
168 | |||
169 | &i2c2 { | ||
170 | pinctrl-names = "default"; | ||
171 | pinctrl-0 = <&i2c2_pins>; | ||
172 | |||
173 | clock-frequency = <400000>; | ||
174 | }; | ||
175 | |||
176 | &i2c3 { | ||
177 | pinctrl-names = "default"; | ||
178 | pinctrl-0 = <&i2c3_pins>; | ||
179 | |||
180 | clock-frequency = <100000>; | ||
181 | |||
182 | /* | ||
183 | * Display monitor features are burnt in their EEPROM as EDID data. | ||
184 | * The EEPROM is connected as I2C slave device. | ||
185 | */ | ||
186 | eeprom@50 { | ||
187 | compatible = "ti,eeprom"; | ||
188 | reg = <0x50>; | ||
189 | }; | ||
190 | }; | ||
191 | |||
192 | &i2c4 { | ||
193 | pinctrl-names = "default"; | ||
194 | pinctrl-0 = <&i2c4_pins>; | ||
195 | |||
196 | clock-frequency = <400000>; | ||
197 | }; | ||
198 | |||
199 | &mmc1 { | ||
200 | vmmc-supply = <&vmmc>; | ||
201 | bus-width = <8>; | ||
202 | }; | ||
203 | |||
204 | &mmc2 { | ||
205 | status = "disabled"; | ||
206 | }; | ||
207 | |||
208 | &mmc3 { | ||
209 | status = "disabled"; | ||
210 | }; | ||
211 | |||
212 | &mmc4 { | ||
213 | status = "disabled"; | ||
214 | }; | ||
215 | |||
216 | &mmc5 { | ||
217 | ti,non-removable; | ||
218 | bus-width = <4>; | ||
219 | }; | ||
220 | |||
221 | &emif1 { | ||
222 | cs1-used; | ||
223 | device-handle = <&elpida_ECB240ABACN>; | ||
224 | }; | ||
225 | |||
226 | &emif2 { | ||
227 | cs1-used; | ||
228 | device-handle = <&elpida_ECB240ABACN>; | ||
229 | }; | ||
230 | |||
231 | &mcbsp2 { | ||
232 | status = "disabled"; | ||
233 | }; | ||
234 | |||
235 | &mcbsp3 { | ||
236 | status = "disabled"; | ||
237 | }; | ||
238 | |||
239 | &dmic { | ||
240 | status = "disabled"; | ||
241 | }; | ||
242 | |||
243 | &twl_usb_comparator { | ||
244 | usb-supply = <&vusb>; | ||
245 | }; | ||
246 | |||
247 | &usb_otg_hs { | ||
248 | interface-type = <1>; | ||
249 | mode = <3>; | ||
250 | power = <50>; | ||
251 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts index 73bc1a67e444..f1d8c217ce12 100644 --- a/arch/arm/boot/dts/omap4-panda-es.dts +++ b/arch/arm/boot/dts/omap4-panda-es.dts | |||
@@ -5,7 +5,10 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | /include/ "omap4-panda.dts" | 8 | /dts-v1/; |
9 | |||
10 | /include/ "omap4460.dtsi" | ||
11 | /include/ "omap4-panda-common.dtsi" | ||
9 | 12 | ||
10 | /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */ | 13 | /* Audio routing is differnet between PandaBoard4430 and PandaBoardES */ |
11 | &sound { | 14 | &sound { |
diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts index 4122efe31cfd..f8b221f0168e 100644 --- a/arch/arm/boot/dts/omap4-panda.dts +++ b/arch/arm/boot/dts/omap4-panda.dts | |||
@@ -7,202 +7,5 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap4.dtsi" | 10 | /include/ "omap443x.dtsi" |
11 | /include/ "elpida_ecb240abacn.dtsi" | 11 | /include/ "omap4-panda-common.dtsi" |
12 | |||
13 | / { | ||
14 | model = "TI OMAP4 PandaBoard"; | ||
15 | compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"; | ||
16 | |||
17 | memory { | ||
18 | device_type = "memory"; | ||
19 | reg = <0x80000000 0x40000000>; /* 1 GB */ | ||
20 | }; | ||
21 | |||
22 | leds { | ||
23 | compatible = "gpio-leds"; | ||
24 | heartbeat { | ||
25 | label = "pandaboard::status1"; | ||
26 | gpios = <&gpio1 7 0>; | ||
27 | linux,default-trigger = "heartbeat"; | ||
28 | }; | ||
29 | |||
30 | mmc { | ||
31 | label = "pandaboard::status2"; | ||
32 | gpios = <&gpio1 8 0>; | ||
33 | linux,default-trigger = "mmc0"; | ||
34 | }; | ||
35 | }; | ||
36 | |||
37 | sound: sound { | ||
38 | compatible = "ti,abe-twl6040"; | ||
39 | ti,model = "PandaBoard"; | ||
40 | |||
41 | ti,mclk-freq = <38400000>; | ||
42 | |||
43 | ti,mcpdm = <&mcpdm>; | ||
44 | |||
45 | ti,twl6040 = <&twl6040>; | ||
46 | |||
47 | /* Audio routing */ | ||
48 | ti,audio-routing = | ||
49 | "Headset Stereophone", "HSOL", | ||
50 | "Headset Stereophone", "HSOR", | ||
51 | "Ext Spk", "HFL", | ||
52 | "Ext Spk", "HFR", | ||
53 | "Line Out", "AUXL", | ||
54 | "Line Out", "AUXR", | ||
55 | "HSMIC", "Headset Mic", | ||
56 | "Headset Mic", "Headset Mic Bias", | ||
57 | "AFML", "Line In", | ||
58 | "AFMR", "Line In"; | ||
59 | }; | ||
60 | }; | ||
61 | |||
62 | &omap4_pmx_core { | ||
63 | pinctrl-names = "default"; | ||
64 | pinctrl-0 = < | ||
65 | &twl6040_pins | ||
66 | &mcpdm_pins | ||
67 | &mcbsp1_pins | ||
68 | &dss_hdmi_pins | ||
69 | &tpd12s015_pins | ||
70 | >; | ||
71 | |||
72 | twl6040_pins: pinmux_twl6040_pins { | ||
73 | pinctrl-single,pins = < | ||
74 | 0xe0 0x3 /* hdq_sio.gpio_127 OUTPUT | MODE3 */ | ||
75 | 0x160 0x100 /* sys_nirq2.sys_nirq2 INPUT | MODE0 */ | ||
76 | >; | ||
77 | }; | ||
78 | |||
79 | mcpdm_pins: pinmux_mcpdm_pins { | ||
80 | pinctrl-single,pins = < | ||
81 | 0xc6 0x108 /* abe_pdm_ul_data.abe_pdm_ul_data INPUT PULLDOWN | MODE0 */ | ||
82 | 0xc8 0x108 /* abe_pdm_dl_data.abe_pdm_dl_data INPUT PULLDOWN | MODE0 */ | ||
83 | 0xca 0x118 /* abe_pdm_frame.abe_pdm_frame INPUT PULLUP | MODE0 */ | ||
84 | 0xcc 0x108 /* abe_pdm_lb_clk.abe_pdm_lb_clk INPUT PULLDOWN | MODE0 */ | ||
85 | 0xce 0x108 /* abe_clks.abe_clks INPUT PULLDOWN | MODE0 */ | ||
86 | >; | ||
87 | }; | ||
88 | |||
89 | mcbsp1_pins: pinmux_mcbsp1_pins { | ||
90 | pinctrl-single,pins = < | ||
91 | 0xbe 0x100 /* abe_mcbsp1_clkx.abe_mcbsp1_clkx INPUT | MODE0 */ | ||
92 | 0xc0 0x108 /* abe_mcbsp1_dr.abe_mcbsp1_dr INPUT PULLDOWN | MODE0 */ | ||
93 | 0xc2 0x8 /* abe_mcbsp1_dx.abe_mcbsp1_dx OUTPUT PULLDOWN | MODE0 */ | ||
94 | 0xc4 0x100 /* abe_mcbsp1_fsx.abe_mcbsp1_fsx INPUT | MODE0 */ | ||
95 | >; | ||
96 | }; | ||
97 | |||
98 | dss_hdmi_pins: pinmux_dss_hdmi_pins { | ||
99 | pinctrl-single,pins = < | ||
100 | 0x5a 0x118 /* hdmi_cec.hdmi_cec INPUT PULLUP | MODE 0 */ | ||
101 | 0x5c 0x118 /* hdmi_scl.hdmi_scl INPUT PULLUP | MODE 0 */ | ||
102 | 0x5e 0x118 /* hdmi_sda.hdmi_sda INPUT PULLUP | MODE 0 */ | ||
103 | >; | ||
104 | }; | ||
105 | |||
106 | tpd12s015_pins: pinmux_tpd12s015_pins { | ||
107 | pinctrl-single,pins = < | ||
108 | 0x22 0x3 /* gpmc_a17.gpio_41 OUTPUT | MODE3 */ | ||
109 | 0x48 0x3 /* gpmc_nbe1.gpio_60 OUTPUT | MODE3 */ | ||
110 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ | ||
111 | >; | ||
112 | }; | ||
113 | }; | ||
114 | |||
115 | &i2c1 { | ||
116 | clock-frequency = <400000>; | ||
117 | |||
118 | twl: twl@48 { | ||
119 | reg = <0x48>; | ||
120 | /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */ | ||
121 | interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */ | ||
122 | interrupt-parent = <&gic>; | ||
123 | }; | ||
124 | |||
125 | twl6040: twl@4b { | ||
126 | compatible = "ti,twl6040"; | ||
127 | reg = <0x4b>; | ||
128 | /* SPI = 0, IRQ# = 119, 4 = active high level-sensitive */ | ||
129 | interrupts = <0 119 4>; /* IRQ_SYS_2N cascaded to gic */ | ||
130 | interrupt-parent = <&gic>; | ||
131 | ti,audpwron-gpio = <&gpio4 31 0>; /* gpio line 127 */ | ||
132 | |||
133 | vio-supply = <&v1v8>; | ||
134 | v2v1-supply = <&v2v1>; | ||
135 | enable-active-high; | ||
136 | }; | ||
137 | }; | ||
138 | |||
139 | /include/ "twl6030.dtsi" | ||
140 | |||
141 | &i2c2 { | ||
142 | clock-frequency = <400000>; | ||
143 | }; | ||
144 | |||
145 | &i2c3 { | ||
146 | clock-frequency = <100000>; | ||
147 | |||
148 | /* | ||
149 | * Display monitor features are burnt in their EEPROM as EDID data. | ||
150 | * The EEPROM is connected as I2C slave device. | ||
151 | */ | ||
152 | eeprom@50 { | ||
153 | compatible = "ti,eeprom"; | ||
154 | reg = <0x50>; | ||
155 | }; | ||
156 | }; | ||
157 | |||
158 | &i2c4 { | ||
159 | clock-frequency = <400000>; | ||
160 | }; | ||
161 | |||
162 | &mmc1 { | ||
163 | vmmc-supply = <&vmmc>; | ||
164 | bus-width = <8>; | ||
165 | }; | ||
166 | |||
167 | &mmc2 { | ||
168 | status = "disabled"; | ||
169 | }; | ||
170 | |||
171 | &mmc3 { | ||
172 | status = "disabled"; | ||
173 | }; | ||
174 | |||
175 | &mmc4 { | ||
176 | status = "disabled"; | ||
177 | }; | ||
178 | |||
179 | &mmc5 { | ||
180 | ti,non-removable; | ||
181 | bus-width = <4>; | ||
182 | }; | ||
183 | |||
184 | &emif1 { | ||
185 | cs1-used; | ||
186 | device-handle = <&elpida_ECB240ABACN>; | ||
187 | }; | ||
188 | |||
189 | &emif2 { | ||
190 | cs1-used; | ||
191 | device-handle = <&elpida_ECB240ABACN>; | ||
192 | }; | ||
193 | |||
194 | &mcbsp2 { | ||
195 | status = "disabled"; | ||
196 | }; | ||
197 | |||
198 | &mcbsp3 { | ||
199 | status = "disabled"; | ||
200 | }; | ||
201 | |||
202 | &dmic { | ||
203 | status = "disabled"; | ||
204 | }; | ||
205 | |||
206 | &twl_usb_comparator { | ||
207 | usb-supply = <&vusb>; | ||
208 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts index 43e5258a9372..c387bdc1b1d1 100644 --- a/arch/arm/boot/dts/omap4-sdp.dts +++ b/arch/arm/boot/dts/omap4-sdp.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap4.dtsi" | 10 | /include/ "omap443x.dtsi" |
11 | /include/ "elpida_ecb240abacn.dtsi" | 11 | /include/ "elpida_ecb240abacn.dtsi" |
12 | 12 | ||
13 | / { | 13 | / { |
@@ -80,6 +80,32 @@ | |||
80 | }; | 80 | }; |
81 | }; | 81 | }; |
82 | 82 | ||
83 | pwmleds { | ||
84 | compatible = "pwm-leds"; | ||
85 | kpad { | ||
86 | label = "omap4::keypad"; | ||
87 | pwms = <&twl_pwm 0 7812500>; | ||
88 | max-brightness = <127>; | ||
89 | }; | ||
90 | |||
91 | charging { | ||
92 | label = "omap4:green:chrg"; | ||
93 | pwms = <&twl_pwmled 0 7812500>; | ||
94 | max-brightness = <255>; | ||
95 | }; | ||
96 | }; | ||
97 | |||
98 | backlight { | ||
99 | compatible = "pwm-backlight"; | ||
100 | pwms = <&twl_pwm 1 7812500>; | ||
101 | brightness-levels = < | ||
102 | 0 10 20 30 40 | ||
103 | 50 60 70 80 90 | ||
104 | 100 110 120 127 | ||
105 | >; | ||
106 | default-brightness-level = <13>; | ||
107 | }; | ||
108 | |||
83 | sound { | 109 | sound { |
84 | compatible = "ti,abe-twl6040"; | 110 | compatible = "ti,abe-twl6040"; |
85 | ti,model = "SDP4430"; | 111 | ti,model = "SDP4430"; |
@@ -212,9 +238,40 @@ | |||
212 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ | 238 | 0x58 0x10b /* hdmi_hpd.gpio_63 INPUT PULLDOWN | MODE3 */ |
213 | >; | 239 | >; |
214 | }; | 240 | }; |
241 | |||
242 | i2c1_pins: pinmux_i2c1_pins { | ||
243 | pinctrl-single,pins = < | ||
244 | 0xe2 0x118 /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */ | ||
245 | 0xe4 0x118 /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */ | ||
246 | >; | ||
247 | }; | ||
248 | |||
249 | i2c2_pins: pinmux_i2c2_pins { | ||
250 | pinctrl-single,pins = < | ||
251 | 0xe6 0x118 /* i2c2_scl PULLUP | INPUTENABLE | MODE0 */ | ||
252 | 0xe8 0x118 /* i2c2_sda PULLUP | INPUTENABLE | MODE0 */ | ||
253 | >; | ||
254 | }; | ||
255 | |||
256 | i2c3_pins: pinmux_i2c3_pins { | ||
257 | pinctrl-single,pins = < | ||
258 | 0xea 0x118 /* i2c3_scl PULLUP | INPUTENABLE | MODE0 */ | ||
259 | 0xec 0x118 /* i2c3_sda PULLUP | INPUTENABLE | MODE0 */ | ||
260 | >; | ||
261 | }; | ||
262 | |||
263 | i2c4_pins: pinmux_i2c4_pins { | ||
264 | pinctrl-single,pins = < | ||
265 | 0xee 0x118 /* i2c4_scl PULLUP | INPUTENABLE | MODE0 */ | ||
266 | 0xf0 0x118 /* i2c4_sda PULLUP | INPUTENABLE | MODE0 */ | ||
267 | >; | ||
268 | }; | ||
215 | }; | 269 | }; |
216 | 270 | ||
217 | &i2c1 { | 271 | &i2c1 { |
272 | pinctrl-names = "default"; | ||
273 | pinctrl-0 = <&i2c1_pins>; | ||
274 | |||
218 | clock-frequency = <400000>; | 275 | clock-frequency = <400000>; |
219 | 276 | ||
220 | twl: twl@48 { | 277 | twl: twl@48 { |
@@ -253,10 +310,16 @@ | |||
253 | /include/ "twl6030.dtsi" | 310 | /include/ "twl6030.dtsi" |
254 | 311 | ||
255 | &i2c2 { | 312 | &i2c2 { |
313 | pinctrl-names = "default"; | ||
314 | pinctrl-0 = <&i2c2_pins>; | ||
315 | |||
256 | clock-frequency = <400000>; | 316 | clock-frequency = <400000>; |
257 | }; | 317 | }; |
258 | 318 | ||
259 | &i2c3 { | 319 | &i2c3 { |
320 | pinctrl-names = "default"; | ||
321 | pinctrl-0 = <&i2c3_pins>; | ||
322 | |||
260 | clock-frequency = <400000>; | 323 | clock-frequency = <400000>; |
261 | 324 | ||
262 | /* | 325 | /* |
@@ -279,6 +342,9 @@ | |||
279 | }; | 342 | }; |
280 | 343 | ||
281 | &i2c4 { | 344 | &i2c4 { |
345 | pinctrl-names = "default"; | ||
346 | pinctrl-0 = <&i2c4_pins>; | ||
347 | |||
282 | clock-frequency = <400000>; | 348 | clock-frequency = <400000>; |
283 | 349 | ||
284 | /* | 350 | /* |
@@ -428,3 +494,9 @@ | |||
428 | &twl_usb_comparator { | 494 | &twl_usb_comparator { |
429 | usb-supply = <&vusb>; | 495 | usb-supply = <&vusb>; |
430 | }; | 496 | }; |
497 | |||
498 | &usb_otg_hs { | ||
499 | interface-type = <1>; | ||
500 | mode = <3>; | ||
501 | power = <50>; | ||
502 | }; | ||
diff --git a/arch/arm/boot/dts/omap4-var-som.dts b/arch/arm/boot/dts/omap4-var-som.dts index 6601e6af6092..222a413c2c51 100644 --- a/arch/arm/boot/dts/omap4-var-som.dts +++ b/arch/arm/boot/dts/omap4-var-som.dts | |||
@@ -7,7 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | /dts-v1/; | 8 | /dts-v1/; |
9 | 9 | ||
10 | /include/ "omap4.dtsi" | 10 | /include/ "omap443x.dtsi" |
11 | 11 | ||
12 | / { | 12 | / { |
13 | model = "Variscite OMAP4 SOM"; | 13 | model = "Variscite OMAP4 SOM"; |
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi index b7db1a2b6ca7..2a5642882c8a 100644 --- a/arch/arm/boot/dts/omap4.dtsi +++ b/arch/arm/boot/dts/omap4.dtsi | |||
@@ -94,6 +94,11 @@ | |||
94 | #size-cells = <1>; | 94 | #size-cells = <1>; |
95 | ranges; | 95 | ranges; |
96 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; | 96 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; |
97 | reg = <0x44000000 0x1000>, | ||
98 | <0x44800000 0x2000>, | ||
99 | <0x45000000 0x1000>; | ||
100 | interrupts = <0 9 0x4>, | ||
101 | <0 10 0x4>; | ||
97 | 102 | ||
98 | counter32k: counter@4a304000 { | 103 | counter32k: counter@4a304000 { |
99 | compatible = "ti,omap-counter32k"; | 104 | compatible = "ti,omap-counter32k"; |
@@ -118,15 +123,28 @@ | |||
118 | pinctrl-single,function-mask = <0x7fff>; | 123 | pinctrl-single,function-mask = <0x7fff>; |
119 | }; | 124 | }; |
120 | 125 | ||
126 | sdma: dma-controller@4a056000 { | ||
127 | compatible = "ti,omap4430-sdma"; | ||
128 | reg = <0x4a056000 0x1000>; | ||
129 | interrupts = <0 12 0x4>, | ||
130 | <0 13 0x4>, | ||
131 | <0 14 0x4>, | ||
132 | <0 15 0x4>; | ||
133 | #dma-cells = <1>; | ||
134 | #dma-channels = <32>; | ||
135 | #dma-requests = <127>; | ||
136 | }; | ||
137 | |||
121 | gpio1: gpio@4a310000 { | 138 | gpio1: gpio@4a310000 { |
122 | compatible = "ti,omap4-gpio"; | 139 | compatible = "ti,omap4-gpio"; |
123 | reg = <0x4a310000 0x200>; | 140 | reg = <0x4a310000 0x200>; |
124 | interrupts = <0 29 0x4>; | 141 | interrupts = <0 29 0x4>; |
125 | ti,hwmods = "gpio1"; | 142 | ti,hwmods = "gpio1"; |
143 | ti,gpio-always-on; | ||
126 | gpio-controller; | 144 | gpio-controller; |
127 | #gpio-cells = <2>; | 145 | #gpio-cells = <2>; |
128 | interrupt-controller; | 146 | interrupt-controller; |
129 | #interrupt-cells = <1>; | 147 | #interrupt-cells = <2>; |
130 | }; | 148 | }; |
131 | 149 | ||
132 | gpio2: gpio@48055000 { | 150 | gpio2: gpio@48055000 { |
@@ -137,7 +155,7 @@ | |||
137 | gpio-controller; | 155 | gpio-controller; |
138 | #gpio-cells = <2>; | 156 | #gpio-cells = <2>; |
139 | interrupt-controller; | 157 | interrupt-controller; |
140 | #interrupt-cells = <1>; | 158 | #interrupt-cells = <2>; |
141 | }; | 159 | }; |
142 | 160 | ||
143 | gpio3: gpio@48057000 { | 161 | gpio3: gpio@48057000 { |
@@ -148,7 +166,7 @@ | |||
148 | gpio-controller; | 166 | gpio-controller; |
149 | #gpio-cells = <2>; | 167 | #gpio-cells = <2>; |
150 | interrupt-controller; | 168 | interrupt-controller; |
151 | #interrupt-cells = <1>; | 169 | #interrupt-cells = <2>; |
152 | }; | 170 | }; |
153 | 171 | ||
154 | gpio4: gpio@48059000 { | 172 | gpio4: gpio@48059000 { |
@@ -159,7 +177,7 @@ | |||
159 | gpio-controller; | 177 | gpio-controller; |
160 | #gpio-cells = <2>; | 178 | #gpio-cells = <2>; |
161 | interrupt-controller; | 179 | interrupt-controller; |
162 | #interrupt-cells = <1>; | 180 | #interrupt-cells = <2>; |
163 | }; | 181 | }; |
164 | 182 | ||
165 | gpio5: gpio@4805b000 { | 183 | gpio5: gpio@4805b000 { |
@@ -170,7 +188,7 @@ | |||
170 | gpio-controller; | 188 | gpio-controller; |
171 | #gpio-cells = <2>; | 189 | #gpio-cells = <2>; |
172 | interrupt-controller; | 190 | interrupt-controller; |
173 | #interrupt-cells = <1>; | 191 | #interrupt-cells = <2>; |
174 | }; | 192 | }; |
175 | 193 | ||
176 | gpio6: gpio@4805d000 { | 194 | gpio6: gpio@4805d000 { |
@@ -181,7 +199,18 @@ | |||
181 | gpio-controller; | 199 | gpio-controller; |
182 | #gpio-cells = <2>; | 200 | #gpio-cells = <2>; |
183 | interrupt-controller; | 201 | interrupt-controller; |
184 | #interrupt-cells = <1>; | 202 | #interrupt-cells = <2>; |
203 | }; | ||
204 | |||
205 | gpmc: gpmc@50000000 { | ||
206 | compatible = "ti,omap4430-gpmc"; | ||
207 | reg = <0x50000000 0x1000>; | ||
208 | #address-cells = <2>; | ||
209 | #size-cells = <1>; | ||
210 | interrupts = <0 20 0x4>; | ||
211 | gpmc,num-cs = <8>; | ||
212 | gpmc,num-waitpins = <4>; | ||
213 | ti,hwmods = "gpmc"; | ||
185 | }; | 214 | }; |
186 | 215 | ||
187 | uart1: serial@4806a000 { | 216 | uart1: serial@4806a000 { |
@@ -260,6 +289,16 @@ | |||
260 | #size-cells = <0>; | 289 | #size-cells = <0>; |
261 | ti,hwmods = "mcspi1"; | 290 | ti,hwmods = "mcspi1"; |
262 | ti,spi-num-cs = <4>; | 291 | ti,spi-num-cs = <4>; |
292 | dmas = <&sdma 35>, | ||
293 | <&sdma 36>, | ||
294 | <&sdma 37>, | ||
295 | <&sdma 38>, | ||
296 | <&sdma 39>, | ||
297 | <&sdma 40>, | ||
298 | <&sdma 41>, | ||
299 | <&sdma 42>; | ||
300 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
301 | "tx2", "rx2", "tx3", "rx3"; | ||
263 | }; | 302 | }; |
264 | 303 | ||
265 | mcspi2: spi@4809a000 { | 304 | mcspi2: spi@4809a000 { |
@@ -270,6 +309,11 @@ | |||
270 | #size-cells = <0>; | 309 | #size-cells = <0>; |
271 | ti,hwmods = "mcspi2"; | 310 | ti,hwmods = "mcspi2"; |
272 | ti,spi-num-cs = <2>; | 311 | ti,spi-num-cs = <2>; |
312 | dmas = <&sdma 43>, | ||
313 | <&sdma 44>, | ||
314 | <&sdma 45>, | ||
315 | <&sdma 46>; | ||
316 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
273 | }; | 317 | }; |
274 | 318 | ||
275 | mcspi3: spi@480b8000 { | 319 | mcspi3: spi@480b8000 { |
@@ -280,6 +324,8 @@ | |||
280 | #size-cells = <0>; | 324 | #size-cells = <0>; |
281 | ti,hwmods = "mcspi3"; | 325 | ti,hwmods = "mcspi3"; |
282 | ti,spi-num-cs = <2>; | 326 | ti,spi-num-cs = <2>; |
327 | dmas = <&sdma 15>, <&sdma 16>; | ||
328 | dma-names = "tx0", "rx0"; | ||
283 | }; | 329 | }; |
284 | 330 | ||
285 | mcspi4: spi@480ba000 { | 331 | mcspi4: spi@480ba000 { |
@@ -290,6 +336,8 @@ | |||
290 | #size-cells = <0>; | 336 | #size-cells = <0>; |
291 | ti,hwmods = "mcspi4"; | 337 | ti,hwmods = "mcspi4"; |
292 | ti,spi-num-cs = <1>; | 338 | ti,spi-num-cs = <1>; |
339 | dmas = <&sdma 70>, <&sdma 71>; | ||
340 | dma-names = "tx0", "rx0"; | ||
293 | }; | 341 | }; |
294 | 342 | ||
295 | mmc1: mmc@4809c000 { | 343 | mmc1: mmc@4809c000 { |
@@ -299,6 +347,8 @@ | |||
299 | ti,hwmods = "mmc1"; | 347 | ti,hwmods = "mmc1"; |
300 | ti,dual-volt; | 348 | ti,dual-volt; |
301 | ti,needs-special-reset; | 349 | ti,needs-special-reset; |
350 | dmas = <&sdma 61>, <&sdma 62>; | ||
351 | dma-names = "tx", "rx"; | ||
302 | }; | 352 | }; |
303 | 353 | ||
304 | mmc2: mmc@480b4000 { | 354 | mmc2: mmc@480b4000 { |
@@ -307,6 +357,8 @@ | |||
307 | interrupts = <0 86 0x4>; | 357 | interrupts = <0 86 0x4>; |
308 | ti,hwmods = "mmc2"; | 358 | ti,hwmods = "mmc2"; |
309 | ti,needs-special-reset; | 359 | ti,needs-special-reset; |
360 | dmas = <&sdma 47>, <&sdma 48>; | ||
361 | dma-names = "tx", "rx"; | ||
310 | }; | 362 | }; |
311 | 363 | ||
312 | mmc3: mmc@480ad000 { | 364 | mmc3: mmc@480ad000 { |
@@ -315,6 +367,8 @@ | |||
315 | interrupts = <0 94 0x4>; | 367 | interrupts = <0 94 0x4>; |
316 | ti,hwmods = "mmc3"; | 368 | ti,hwmods = "mmc3"; |
317 | ti,needs-special-reset; | 369 | ti,needs-special-reset; |
370 | dmas = <&sdma 77>, <&sdma 78>; | ||
371 | dma-names = "tx", "rx"; | ||
318 | }; | 372 | }; |
319 | 373 | ||
320 | mmc4: mmc@480d1000 { | 374 | mmc4: mmc@480d1000 { |
@@ -323,6 +377,8 @@ | |||
323 | interrupts = <0 96 0x4>; | 377 | interrupts = <0 96 0x4>; |
324 | ti,hwmods = "mmc4"; | 378 | ti,hwmods = "mmc4"; |
325 | ti,needs-special-reset; | 379 | ti,needs-special-reset; |
380 | dmas = <&sdma 57>, <&sdma 58>; | ||
381 | dma-names = "tx", "rx"; | ||
326 | }; | 382 | }; |
327 | 383 | ||
328 | mmc5: mmc@480d5000 { | 384 | mmc5: mmc@480d5000 { |
@@ -331,6 +387,8 @@ | |||
331 | interrupts = <0 59 0x4>; | 387 | interrupts = <0 59 0x4>; |
332 | ti,hwmods = "mmc5"; | 388 | ti,hwmods = "mmc5"; |
333 | ti,needs-special-reset; | 389 | ti,needs-special-reset; |
390 | dmas = <&sdma 59>, <&sdma 60>; | ||
391 | dma-names = "tx", "rx"; | ||
334 | }; | 392 | }; |
335 | 393 | ||
336 | wdt2: wdt@4a314000 { | 394 | wdt2: wdt@4a314000 { |
@@ -347,6 +405,9 @@ | |||
347 | reg-names = "mpu", "dma"; | 405 | reg-names = "mpu", "dma"; |
348 | interrupts = <0 112 0x4>; | 406 | interrupts = <0 112 0x4>; |
349 | ti,hwmods = "mcpdm"; | 407 | ti,hwmods = "mcpdm"; |
408 | dmas = <&sdma 65>, | ||
409 | <&sdma 66>; | ||
410 | dma-names = "up_link", "dn_link"; | ||
350 | }; | 411 | }; |
351 | 412 | ||
352 | dmic: dmic@4012e000 { | 413 | dmic: dmic@4012e000 { |
@@ -356,6 +417,8 @@ | |||
356 | reg-names = "mpu", "dma"; | 417 | reg-names = "mpu", "dma"; |
357 | interrupts = <0 114 0x4>; | 418 | interrupts = <0 114 0x4>; |
358 | ti,hwmods = "dmic"; | 419 | ti,hwmods = "dmic"; |
420 | dmas = <&sdma 67>; | ||
421 | dma-names = "up_link"; | ||
359 | }; | 422 | }; |
360 | 423 | ||
361 | mcbsp1: mcbsp@40122000 { | 424 | mcbsp1: mcbsp@40122000 { |
@@ -367,6 +430,9 @@ | |||
367 | interrupt-names = "common"; | 430 | interrupt-names = "common"; |
368 | ti,buffer-size = <128>; | 431 | ti,buffer-size = <128>; |
369 | ti,hwmods = "mcbsp1"; | 432 | ti,hwmods = "mcbsp1"; |
433 | dmas = <&sdma 33>, | ||
434 | <&sdma 34>; | ||
435 | dma-names = "tx", "rx"; | ||
370 | }; | 436 | }; |
371 | 437 | ||
372 | mcbsp2: mcbsp@40124000 { | 438 | mcbsp2: mcbsp@40124000 { |
@@ -378,6 +444,9 @@ | |||
378 | interrupt-names = "common"; | 444 | interrupt-names = "common"; |
379 | ti,buffer-size = <128>; | 445 | ti,buffer-size = <128>; |
380 | ti,hwmods = "mcbsp2"; | 446 | ti,hwmods = "mcbsp2"; |
447 | dmas = <&sdma 17>, | ||
448 | <&sdma 18>; | ||
449 | dma-names = "tx", "rx"; | ||
381 | }; | 450 | }; |
382 | 451 | ||
383 | mcbsp3: mcbsp@40126000 { | 452 | mcbsp3: mcbsp@40126000 { |
@@ -389,6 +458,9 @@ | |||
389 | interrupt-names = "common"; | 458 | interrupt-names = "common"; |
390 | ti,buffer-size = <128>; | 459 | ti,buffer-size = <128>; |
391 | ti,hwmods = "mcbsp3"; | 460 | ti,hwmods = "mcbsp3"; |
461 | dmas = <&sdma 19>, | ||
462 | <&sdma 20>; | ||
463 | dma-names = "tx", "rx"; | ||
392 | }; | 464 | }; |
393 | 465 | ||
394 | mcbsp4: mcbsp@48096000 { | 466 | mcbsp4: mcbsp@48096000 { |
@@ -399,6 +471,9 @@ | |||
399 | interrupt-names = "common"; | 471 | interrupt-names = "common"; |
400 | ti,buffer-size = <128>; | 472 | ti,buffer-size = <128>; |
401 | ti,hwmods = "mcbsp4"; | 473 | ti,hwmods = "mcbsp4"; |
474 | dmas = <&sdma 31>, | ||
475 | <&sdma 32>; | ||
476 | dma-names = "tx", "rx"; | ||
402 | }; | 477 | }; |
403 | 478 | ||
404 | keypad: keypad@4a31c000 { | 479 | keypad: keypad@4a31c000 { |
@@ -438,10 +513,15 @@ | |||
438 | #size-cells = <1>; | 513 | #size-cells = <1>; |
439 | ranges; | 514 | ranges; |
440 | ti,hwmods = "ocp2scp_usb_phy"; | 515 | ti,hwmods = "ocp2scp_usb_phy"; |
516 | usb2_phy: usb2phy@4a0ad080 { | ||
517 | compatible = "ti,omap-usb2"; | ||
518 | reg = <0x4a0ad080 0x58>; | ||
519 | ctrl-module = <&omap_control_usb>; | ||
520 | }; | ||
441 | }; | 521 | }; |
442 | 522 | ||
443 | timer1: timer@4a318000 { | 523 | timer1: timer@4a318000 { |
444 | compatible = "ti,omap2-timer"; | 524 | compatible = "ti,omap3430-timer"; |
445 | reg = <0x4a318000 0x80>; | 525 | reg = <0x4a318000 0x80>; |
446 | interrupts = <0 37 0x4>; | 526 | interrupts = <0 37 0x4>; |
447 | ti,hwmods = "timer1"; | 527 | ti,hwmods = "timer1"; |
@@ -449,28 +529,28 @@ | |||
449 | }; | 529 | }; |
450 | 530 | ||
451 | timer2: timer@48032000 { | 531 | timer2: timer@48032000 { |
452 | compatible = "ti,omap2-timer"; | 532 | compatible = "ti,omap3430-timer"; |
453 | reg = <0x48032000 0x80>; | 533 | reg = <0x48032000 0x80>; |
454 | interrupts = <0 38 0x4>; | 534 | interrupts = <0 38 0x4>; |
455 | ti,hwmods = "timer2"; | 535 | ti,hwmods = "timer2"; |
456 | }; | 536 | }; |
457 | 537 | ||
458 | timer3: timer@48034000 { | 538 | timer3: timer@48034000 { |
459 | compatible = "ti,omap2-timer"; | 539 | compatible = "ti,omap4430-timer"; |
460 | reg = <0x48034000 0x80>; | 540 | reg = <0x48034000 0x80>; |
461 | interrupts = <0 39 0x4>; | 541 | interrupts = <0 39 0x4>; |
462 | ti,hwmods = "timer3"; | 542 | ti,hwmods = "timer3"; |
463 | }; | 543 | }; |
464 | 544 | ||
465 | timer4: timer@48036000 { | 545 | timer4: timer@48036000 { |
466 | compatible = "ti,omap2-timer"; | 546 | compatible = "ti,omap4430-timer"; |
467 | reg = <0x48036000 0x80>; | 547 | reg = <0x48036000 0x80>; |
468 | interrupts = <0 40 0x4>; | 548 | interrupts = <0 40 0x4>; |
469 | ti,hwmods = "timer4"; | 549 | ti,hwmods = "timer4"; |
470 | }; | 550 | }; |
471 | 551 | ||
472 | timer5: timer@40138000 { | 552 | timer5: timer@40138000 { |
473 | compatible = "ti,omap2-timer"; | 553 | compatible = "ti,omap4430-timer"; |
474 | reg = <0x40138000 0x80>, | 554 | reg = <0x40138000 0x80>, |
475 | <0x49038000 0x80>; | 555 | <0x49038000 0x80>; |
476 | interrupts = <0 41 0x4>; | 556 | interrupts = <0 41 0x4>; |
@@ -479,7 +559,7 @@ | |||
479 | }; | 559 | }; |
480 | 560 | ||
481 | timer6: timer@4013a000 { | 561 | timer6: timer@4013a000 { |
482 | compatible = "ti,omap2-timer"; | 562 | compatible = "ti,omap4430-timer"; |
483 | reg = <0x4013a000 0x80>, | 563 | reg = <0x4013a000 0x80>, |
484 | <0x4903a000 0x80>; | 564 | <0x4903a000 0x80>; |
485 | interrupts = <0 42 0x4>; | 565 | interrupts = <0 42 0x4>; |
@@ -488,7 +568,7 @@ | |||
488 | }; | 568 | }; |
489 | 569 | ||
490 | timer7: timer@4013c000 { | 570 | timer7: timer@4013c000 { |
491 | compatible = "ti,omap2-timer"; | 571 | compatible = "ti,omap4430-timer"; |
492 | reg = <0x4013c000 0x80>, | 572 | reg = <0x4013c000 0x80>, |
493 | <0x4903c000 0x80>; | 573 | <0x4903c000 0x80>; |
494 | interrupts = <0 43 0x4>; | 574 | interrupts = <0 43 0x4>; |
@@ -497,7 +577,7 @@ | |||
497 | }; | 577 | }; |
498 | 578 | ||
499 | timer8: timer@4013e000 { | 579 | timer8: timer@4013e000 { |
500 | compatible = "ti,omap2-timer"; | 580 | compatible = "ti,omap4430-timer"; |
501 | reg = <0x4013e000 0x80>, | 581 | reg = <0x4013e000 0x80>, |
502 | <0x4903e000 0x80>; | 582 | <0x4903e000 0x80>; |
503 | interrupts = <0 44 0x4>; | 583 | interrupts = <0 44 0x4>; |
@@ -507,7 +587,7 @@ | |||
507 | }; | 587 | }; |
508 | 588 | ||
509 | timer9: timer@4803e000 { | 589 | timer9: timer@4803e000 { |
510 | compatible = "ti,omap2-timer"; | 590 | compatible = "ti,omap4430-timer"; |
511 | reg = <0x4803e000 0x80>; | 591 | reg = <0x4803e000 0x80>; |
512 | interrupts = <0 45 0x4>; | 592 | interrupts = <0 45 0x4>; |
513 | ti,hwmods = "timer9"; | 593 | ti,hwmods = "timer9"; |
@@ -515,7 +595,7 @@ | |||
515 | }; | 595 | }; |
516 | 596 | ||
517 | timer10: timer@48086000 { | 597 | timer10: timer@48086000 { |
518 | compatible = "ti,omap2-timer"; | 598 | compatible = "ti,omap3430-timer"; |
519 | reg = <0x48086000 0x80>; | 599 | reg = <0x48086000 0x80>; |
520 | interrupts = <0 46 0x4>; | 600 | interrupts = <0 46 0x4>; |
521 | ti,hwmods = "timer10"; | 601 | ti,hwmods = "timer10"; |
@@ -523,7 +603,7 @@ | |||
523 | }; | 603 | }; |
524 | 604 | ||
525 | timer11: timer@48088000 { | 605 | timer11: timer@48088000 { |
526 | compatible = "ti,omap2-timer"; | 606 | compatible = "ti,omap4430-timer"; |
527 | reg = <0x48088000 0x80>; | 607 | reg = <0x48088000 0x80>; |
528 | interrupts = <0 47 0x4>; | 608 | interrupts = <0 47 0x4>; |
529 | ti,hwmods = "timer11"; | 609 | ti,hwmods = "timer11"; |
@@ -559,5 +639,26 @@ | |||
559 | interrupts = <0 77 0x4>; | 639 | interrupts = <0 77 0x4>; |
560 | }; | 640 | }; |
561 | }; | 641 | }; |
642 | |||
643 | omap_control_usb: omap-control-usb@4a002300 { | ||
644 | compatible = "ti,omap-control-usb"; | ||
645 | reg = <0x4a002300 0x4>, | ||
646 | <0x4a00233c 0x4>; | ||
647 | reg-names = "control_dev_conf", "otghs_control"; | ||
648 | ti,type = <1>; | ||
649 | }; | ||
650 | |||
651 | usb_otg_hs: usb_otg_hs@4a0ab000 { | ||
652 | compatible = "ti,omap4-musb"; | ||
653 | reg = <0x4a0ab000 0x7ff>; | ||
654 | interrupts = <0 92 0x4>, <0 93 0x4>; | ||
655 | interrupt-names = "mc", "dma"; | ||
656 | ti,hwmods = "usb_otg_hs"; | ||
657 | usb-phy = <&usb2_phy>; | ||
658 | multipoint = <1>; | ||
659 | num-eps = <16>; | ||
660 | ram-bits = <12>; | ||
661 | ti,has-mailbox; | ||
662 | }; | ||
562 | }; | 663 | }; |
563 | }; | 664 | }; |
diff --git a/arch/arm/boot/dts/omap443x.dtsi b/arch/arm/boot/dts/omap443x.dtsi new file mode 100644 index 000000000000..cccf39af4925 --- /dev/null +++ b/arch/arm/boot/dts/omap443x.dtsi | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | * Device Tree Source for OMAP443x SoC | ||
3 | * | ||
4 | * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | /include/ "omap4.dtsi" | ||
12 | |||
13 | / { | ||
14 | cpus { | ||
15 | cpu@0 { | ||
16 | /* OMAP443x variants OPP50-OPPNT */ | ||
17 | operating-points = < | ||
18 | /* kHz uV */ | ||
19 | 300000 1025000 | ||
20 | 600000 1200000 | ||
21 | 800000 1313000 | ||
22 | 1008000 1375000 | ||
23 | >; | ||
24 | clock-latency = <300000>; /* From legacy driver */ | ||
25 | }; | ||
26 | }; | ||
27 | }; | ||
diff --git a/arch/arm/boot/dts/omap4460.dtsi b/arch/arm/boot/dts/omap4460.dtsi new file mode 100644 index 000000000000..7c2c23cc17ef --- /dev/null +++ b/arch/arm/boot/dts/omap4460.dtsi | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * Device Tree Source for OMAP4460 SoC | ||
3 | * | ||
4 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | /include/ "omap4.dtsi" | ||
11 | |||
12 | / { | ||
13 | cpus { | ||
14 | /* OMAP446x 'standard device' variants OPP50 to OPPTurbo */ | ||
15 | cpu@0 { | ||
16 | operating-points = < | ||
17 | /* kHz uV */ | ||
18 | 350000 975000 | ||
19 | 700000 1075000 | ||
20 | 920000 1200000 | ||
21 | >; | ||
22 | clock-latency = <300000>; /* From legacy driver */ | ||
23 | }; | ||
24 | }; | ||
25 | |||
26 | pmu { | ||
27 | compatible = "arm,cortex-a9-pmu"; | ||
28 | interrupts = <0 54 0x4>, | ||
29 | <0 55 0x4>; | ||
30 | ti,hwmods = "debugss"; | ||
31 | }; | ||
32 | }; | ||
diff --git a/arch/arm/boot/dts/omap5-evm.dts b/arch/arm/boot/dts/omap5-evm.dts index 8722c15bbba2..982acd19477d 100644 --- a/arch/arm/boot/dts/omap5-evm.dts +++ b/arch/arm/boot/dts/omap5-evm.dts | |||
@@ -16,7 +16,7 @@ | |||
16 | 16 | ||
17 | memory { | 17 | memory { |
18 | device_type = "memory"; | 18 | device_type = "memory"; |
19 | reg = <0x80000000 0x80000000>; /* 2 GB */ | 19 | reg = <0x80000000 0x7F000000>; /* 2032 MB */ |
20 | }; | 20 | }; |
21 | 21 | ||
22 | vmmcsd_fixed: fixedregulator-mmcsd { | 22 | vmmcsd_fixed: fixedregulator-mmcsd { |
@@ -80,6 +80,68 @@ | |||
80 | 0x15a 0x100 /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */ | 80 | 0x15a 0x100 /* abemcbsp2_clkx.abemcbsp2_clkx INPUT | MODE0 */ |
81 | >; | 81 | >; |
82 | }; | 82 | }; |
83 | |||
84 | i2c1_pins: pinmux_i2c1_pins { | ||
85 | pinctrl-single,pins = < | ||
86 | 0x1b2 0x118 /* i2c1_scl PULLUP | INPUTENABLE | MODE0 */ | ||
87 | 0x1b4 0x118 /* i2c1_sda PULLUP | INPUTENABLE | MODE0 */ | ||
88 | >; | ||
89 | }; | ||
90 | |||
91 | i2c2_pins: pinmux_i2c2_pins { | ||
92 | pinctrl-single,pins = < | ||
93 | 0x178 0x100 /* i2c2_scl INPUTENABLE | MODE0 */ | ||
94 | 0x17a 0x100 /* i2c2_sda INPUTENABLE | MODE0 */ | ||
95 | >; | ||
96 | }; | ||
97 | |||
98 | i2c3_pins: pinmux_i2c3_pins { | ||
99 | pinctrl-single,pins = < | ||
100 | 0x13a 0x100 /* i2c3_scl INPUTENABLE | MODE0 */ | ||
101 | 0x13c 0x100 /* i2c3_sda INPUTENABLE | MODE0 */ | ||
102 | >; | ||
103 | }; | ||
104 | |||
105 | i2c4_pins: pinmux_i2c4_pins { | ||
106 | pinctrl-single,pins = < | ||
107 | 0xb8 0x100 /* i2c4_scl INPUTENABLE | MODE0 */ | ||
108 | 0xba 0x100 /* i2c4_sda INPUTENABLE | MODE0 */ | ||
109 | >; | ||
110 | }; | ||
111 | |||
112 | i2c5_pins: pinmux_i2c5_pins { | ||
113 | pinctrl-single,pins = < | ||
114 | 0x184 0x100 /* i2c5_scl INPUTENABLE | MODE0 */ | ||
115 | 0x186 0x100 /* i2c5_sda INPUTENABLE | MODE0 */ | ||
116 | >; | ||
117 | }; | ||
118 | |||
119 | mcspi2_pins: pinmux_mcspi2_pins { | ||
120 | pinctrl-single,pins = < | ||
121 | 0xbc 0x100 /* MCSPI2_CLK INPUTENABLE | MODE0 */ | ||
122 | 0xbe 0x100 /* MCSPI2_SIMO INPUTENABLE | MODE0 */ | ||
123 | 0xc0 0x118 /* MCSPI2_SOMI PULLUP | INPUTENABLE | MODE0*/ | ||
124 | 0xc2 0x0 /* MCSPI2_CS MODE0*/ | ||
125 | >; | ||
126 | }; | ||
127 | |||
128 | mcspi3_pins: pinmux_mcspi3_pins { | ||
129 | pinctrl-single,pins = < | ||
130 | 0x78 0x101 /* MCSPI2_SOMI INPUTENABLE | MODE1 */ | ||
131 | 0x7a 0x101 /* MCSPI2_CS INPUTENABLE | MODE1 */ | ||
132 | 0x7c 0x101 /* MCSPI2_SIMO INPUTENABLE | MODE1 */ | ||
133 | 0x7e 0x101 /* MCSPI2_CLK INPUTENABLE | MODE1 */ | ||
134 | >; | ||
135 | }; | ||
136 | |||
137 | mcspi4_pins: pinmux_mcspi4_pins { | ||
138 | pinctrl-single,pins = < | ||
139 | 0x164 0x101 /* MCSPI2_CLK INPUTENABLE | MODE1 */ | ||
140 | 0x168 0x101 /* MCSPI2_SIMO INPUTENABLE | MODE1 */ | ||
141 | 0x16a 0x101 /* MCSPI2_SOMI INPUTENABLE | MODE1 */ | ||
142 | 0x16c 0x101 /* MCSPI2_CS INPUTENABLE | MODE1 */ | ||
143 | >; | ||
144 | }; | ||
83 | }; | 145 | }; |
84 | 146 | ||
85 | &mmc1 { | 147 | &mmc1 { |
@@ -106,7 +168,17 @@ | |||
106 | status = "disabled"; | 168 | status = "disabled"; |
107 | }; | 169 | }; |
108 | 170 | ||
171 | &i2c1 { | ||
172 | pinctrl-names = "default"; | ||
173 | pinctrl-0 = <&i2c1_pins>; | ||
174 | |||
175 | clock-frequency = <400000>; | ||
176 | }; | ||
177 | |||
109 | &i2c2 { | 178 | &i2c2 { |
179 | pinctrl-names = "default"; | ||
180 | pinctrl-0 = <&i2c2_pins>; | ||
181 | |||
110 | clock-frequency = <400000>; | 182 | clock-frequency = <400000>; |
111 | 183 | ||
112 | /* Pressure Sensor */ | 184 | /* Pressure Sensor */ |
@@ -116,7 +188,17 @@ | |||
116 | }; | 188 | }; |
117 | }; | 189 | }; |
118 | 190 | ||
191 | &i2c3 { | ||
192 | pinctrl-names = "default"; | ||
193 | pinctrl-0 = <&i2c3_pins>; | ||
194 | |||
195 | clock-frequency = <400000>; | ||
196 | }; | ||
197 | |||
119 | &i2c4 { | 198 | &i2c4 { |
199 | pinctrl-names = "default"; | ||
200 | pinctrl-0 = <&i2c4_pins>; | ||
201 | |||
120 | clock-frequency = <400000>; | 202 | clock-frequency = <400000>; |
121 | 203 | ||
122 | /* Temperature Sensor */ | 204 | /* Temperature Sensor */ |
@@ -126,6 +208,13 @@ | |||
126 | }; | 208 | }; |
127 | }; | 209 | }; |
128 | 210 | ||
211 | &i2c5 { | ||
212 | pinctrl-names = "default"; | ||
213 | pinctrl-0 = <&i2c5_pins>; | ||
214 | |||
215 | clock-frequency = <400000>; | ||
216 | }; | ||
217 | |||
129 | &keypad { | 218 | &keypad { |
130 | keypad,num-rows = <8>; | 219 | keypad,num-rows = <8>; |
131 | keypad,num-columns = <8>; | 220 | keypad,num-columns = <8>; |
@@ -151,3 +240,22 @@ | |||
151 | cs1-used; | 240 | cs1-used; |
152 | device-handle = <&samsung_K3PE0E000B>; | 241 | device-handle = <&samsung_K3PE0E000B>; |
153 | }; | 242 | }; |
243 | |||
244 | &mcspi1 { | ||
245 | |||
246 | }; | ||
247 | |||
248 | &mcspi2 { | ||
249 | pinctrl-names = "default"; | ||
250 | pinctrl-0 = <&mcspi2_pins>; | ||
251 | }; | ||
252 | |||
253 | &mcspi3 { | ||
254 | pinctrl-names = "default"; | ||
255 | pinctrl-0 = <&mcspi3_pins>; | ||
256 | }; | ||
257 | |||
258 | &mcspi4 { | ||
259 | pinctrl-names = "default"; | ||
260 | pinctrl-0 = <&mcspi4_pins>; | ||
261 | }; | ||
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi index 790bb2a4b343..3dd7ff825828 100644 --- a/arch/arm/boot/dts/omap5.dtsi +++ b/arch/arm/boot/dts/omap5.dtsi | |||
@@ -18,6 +18,9 @@ | |||
18 | /include/ "skeleton.dtsi" | 18 | /include/ "skeleton.dtsi" |
19 | 19 | ||
20 | / { | 20 | / { |
21 | #address-cells = <1>; | ||
22 | #size-cells = <1>; | ||
23 | |||
21 | compatible = "ti,omap5"; | 24 | compatible = "ti,omap5"; |
22 | interrupt-parent = <&gic>; | 25 | interrupt-parent = <&gic>; |
23 | 26 | ||
@@ -33,24 +36,32 @@ | |||
33 | cpus { | 36 | cpus { |
34 | cpu@0 { | 37 | cpu@0 { |
35 | compatible = "arm,cortex-a15"; | 38 | compatible = "arm,cortex-a15"; |
36 | timer { | ||
37 | compatible = "arm,armv7-timer"; | ||
38 | /* 14th PPI IRQ, active low level-sensitive */ | ||
39 | interrupts = <1 14 0x308>; | ||
40 | clock-frequency = <6144000>; | ||
41 | }; | ||
42 | }; | 39 | }; |
43 | cpu@1 { | 40 | cpu@1 { |
44 | compatible = "arm,cortex-a15"; | 41 | compatible = "arm,cortex-a15"; |
45 | timer { | ||
46 | compatible = "arm,armv7-timer"; | ||
47 | /* 14th PPI IRQ, active low level-sensitive */ | ||
48 | interrupts = <1 14 0x308>; | ||
49 | clock-frequency = <6144000>; | ||
50 | }; | ||
51 | }; | 42 | }; |
52 | }; | 43 | }; |
53 | 44 | ||
45 | timer { | ||
46 | compatible = "arm,armv7-timer"; | ||
47 | /* PPI secure/nonsecure IRQ, active low level-sensitive */ | ||
48 | interrupts = <1 13 0x308>, | ||
49 | <1 14 0x308>, | ||
50 | <1 11 0x308>, | ||
51 | <1 10 0x308>; | ||
52 | clock-frequency = <6144000>; | ||
53 | }; | ||
54 | |||
55 | gic: interrupt-controller@48211000 { | ||
56 | compatible = "arm,cortex-a15-gic"; | ||
57 | interrupt-controller; | ||
58 | #interrupt-cells = <3>; | ||
59 | reg = <0x48211000 0x1000>, | ||
60 | <0x48212000 0x1000>, | ||
61 | <0x48214000 0x2000>, | ||
62 | <0x48216000 0x2000>; | ||
63 | }; | ||
64 | |||
54 | /* | 65 | /* |
55 | * The soc node represents the soc top level view. It is uses for IPs | 66 | * The soc node represents the soc top level view. It is uses for IPs |
56 | * that are not memory mapped in the MPU view or for the MPU itself. | 67 | * that are not memory mapped in the MPU view or for the MPU itself. |
@@ -76,6 +87,11 @@ | |||
76 | #size-cells = <1>; | 87 | #size-cells = <1>; |
77 | ranges; | 88 | ranges; |
78 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; | 89 | ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; |
90 | reg = <0x44000000 0x2000>, | ||
91 | <0x44800000 0x3000>, | ||
92 | <0x45000000 0x4000>; | ||
93 | interrupts = <0 9 0x4>, | ||
94 | <0 10 0x4>; | ||
79 | 95 | ||
80 | counter32k: counter@4ae04000 { | 96 | counter32k: counter@4ae04000 { |
81 | compatible = "ti,omap-counter32k"; | 97 | compatible = "ti,omap-counter32k"; |
@@ -100,12 +116,16 @@ | |||
100 | pinctrl-single,function-mask = <0x7fff>; | 116 | pinctrl-single,function-mask = <0x7fff>; |
101 | }; | 117 | }; |
102 | 118 | ||
103 | gic: interrupt-controller@48211000 { | 119 | sdma: dma-controller@4a056000 { |
104 | compatible = "arm,cortex-a15-gic"; | 120 | compatible = "ti,omap4430-sdma"; |
105 | interrupt-controller; | 121 | reg = <0x4a056000 0x1000>; |
106 | #interrupt-cells = <3>; | 122 | interrupts = <0 12 0x4>, |
107 | reg = <0x48211000 0x1000>, | 123 | <0 13 0x4>, |
108 | <0x48212000 0x1000>; | 124 | <0 14 0x4>, |
125 | <0 15 0x4>; | ||
126 | #dma-cells = <1>; | ||
127 | #dma-channels = <32>; | ||
128 | #dma-requests = <127>; | ||
109 | }; | 129 | }; |
110 | 130 | ||
111 | gpio1: gpio@4ae10000 { | 131 | gpio1: gpio@4ae10000 { |
@@ -113,10 +133,11 @@ | |||
113 | reg = <0x4ae10000 0x200>; | 133 | reg = <0x4ae10000 0x200>; |
114 | interrupts = <0 29 0x4>; | 134 | interrupts = <0 29 0x4>; |
115 | ti,hwmods = "gpio1"; | 135 | ti,hwmods = "gpio1"; |
136 | ti,gpio-always-on; | ||
116 | gpio-controller; | 137 | gpio-controller; |
117 | #gpio-cells = <2>; | 138 | #gpio-cells = <2>; |
118 | interrupt-controller; | 139 | interrupt-controller; |
119 | #interrupt-cells = <1>; | 140 | #interrupt-cells = <2>; |
120 | }; | 141 | }; |
121 | 142 | ||
122 | gpio2: gpio@48055000 { | 143 | gpio2: gpio@48055000 { |
@@ -127,7 +148,7 @@ | |||
127 | gpio-controller; | 148 | gpio-controller; |
128 | #gpio-cells = <2>; | 149 | #gpio-cells = <2>; |
129 | interrupt-controller; | 150 | interrupt-controller; |
130 | #interrupt-cells = <1>; | 151 | #interrupt-cells = <2>; |
131 | }; | 152 | }; |
132 | 153 | ||
133 | gpio3: gpio@48057000 { | 154 | gpio3: gpio@48057000 { |
@@ -138,7 +159,7 @@ | |||
138 | gpio-controller; | 159 | gpio-controller; |
139 | #gpio-cells = <2>; | 160 | #gpio-cells = <2>; |
140 | interrupt-controller; | 161 | interrupt-controller; |
141 | #interrupt-cells = <1>; | 162 | #interrupt-cells = <2>; |
142 | }; | 163 | }; |
143 | 164 | ||
144 | gpio4: gpio@48059000 { | 165 | gpio4: gpio@48059000 { |
@@ -149,7 +170,7 @@ | |||
149 | gpio-controller; | 170 | gpio-controller; |
150 | #gpio-cells = <2>; | 171 | #gpio-cells = <2>; |
151 | interrupt-controller; | 172 | interrupt-controller; |
152 | #interrupt-cells = <1>; | 173 | #interrupt-cells = <2>; |
153 | }; | 174 | }; |
154 | 175 | ||
155 | gpio5: gpio@4805b000 { | 176 | gpio5: gpio@4805b000 { |
@@ -160,7 +181,7 @@ | |||
160 | gpio-controller; | 181 | gpio-controller; |
161 | #gpio-cells = <2>; | 182 | #gpio-cells = <2>; |
162 | interrupt-controller; | 183 | interrupt-controller; |
163 | #interrupt-cells = <1>; | 184 | #interrupt-cells = <2>; |
164 | }; | 185 | }; |
165 | 186 | ||
166 | gpio6: gpio@4805d000 { | 187 | gpio6: gpio@4805d000 { |
@@ -171,7 +192,7 @@ | |||
171 | gpio-controller; | 192 | gpio-controller; |
172 | #gpio-cells = <2>; | 193 | #gpio-cells = <2>; |
173 | interrupt-controller; | 194 | interrupt-controller; |
174 | #interrupt-cells = <1>; | 195 | #interrupt-cells = <2>; |
175 | }; | 196 | }; |
176 | 197 | ||
177 | gpio7: gpio@48051000 { | 198 | gpio7: gpio@48051000 { |
@@ -182,7 +203,7 @@ | |||
182 | gpio-controller; | 203 | gpio-controller; |
183 | #gpio-cells = <2>; | 204 | #gpio-cells = <2>; |
184 | interrupt-controller; | 205 | interrupt-controller; |
185 | #interrupt-cells = <1>; | 206 | #interrupt-cells = <2>; |
186 | }; | 207 | }; |
187 | 208 | ||
188 | gpio8: gpio@48053000 { | 209 | gpio8: gpio@48053000 { |
@@ -193,7 +214,18 @@ | |||
193 | gpio-controller; | 214 | gpio-controller; |
194 | #gpio-cells = <2>; | 215 | #gpio-cells = <2>; |
195 | interrupt-controller; | 216 | interrupt-controller; |
196 | #interrupt-cells = <1>; | 217 | #interrupt-cells = <2>; |
218 | }; | ||
219 | |||
220 | gpmc: gpmc@50000000 { | ||
221 | compatible = "ti,omap4430-gpmc"; | ||
222 | reg = <0x50000000 0x1000>; | ||
223 | #address-cells = <2>; | ||
224 | #size-cells = <1>; | ||
225 | interrupts = <0 20 0x4>; | ||
226 | gpmc,num-cs = <8>; | ||
227 | gpmc,num-waitpins = <4>; | ||
228 | ti,hwmods = "gpmc"; | ||
197 | }; | 229 | }; |
198 | 230 | ||
199 | i2c1: i2c@48070000 { | 231 | i2c1: i2c@48070000 { |
@@ -241,6 +273,65 @@ | |||
241 | ti,hwmods = "i2c5"; | 273 | ti,hwmods = "i2c5"; |
242 | }; | 274 | }; |
243 | 275 | ||
276 | mcspi1: spi@48098000 { | ||
277 | compatible = "ti,omap4-mcspi"; | ||
278 | reg = <0x48098000 0x200>; | ||
279 | interrupts = <0 65 0x4>; | ||
280 | #address-cells = <1>; | ||
281 | #size-cells = <0>; | ||
282 | ti,hwmods = "mcspi1"; | ||
283 | ti,spi-num-cs = <4>; | ||
284 | dmas = <&sdma 35>, | ||
285 | <&sdma 36>, | ||
286 | <&sdma 37>, | ||
287 | <&sdma 38>, | ||
288 | <&sdma 39>, | ||
289 | <&sdma 40>, | ||
290 | <&sdma 41>, | ||
291 | <&sdma 42>; | ||
292 | dma-names = "tx0", "rx0", "tx1", "rx1", | ||
293 | "tx2", "rx2", "tx3", "rx3"; | ||
294 | }; | ||
295 | |||
296 | mcspi2: spi@4809a000 { | ||
297 | compatible = "ti,omap4-mcspi"; | ||
298 | reg = <0x4809a000 0x200>; | ||
299 | interrupts = <0 66 0x4>; | ||
300 | #address-cells = <1>; | ||
301 | #size-cells = <0>; | ||
302 | ti,hwmods = "mcspi2"; | ||
303 | ti,spi-num-cs = <2>; | ||
304 | dmas = <&sdma 43>, | ||
305 | <&sdma 44>, | ||
306 | <&sdma 45>, | ||
307 | <&sdma 46>; | ||
308 | dma-names = "tx0", "rx0", "tx1", "rx1"; | ||
309 | }; | ||
310 | |||
311 | mcspi3: spi@480b8000 { | ||
312 | compatible = "ti,omap4-mcspi"; | ||
313 | reg = <0x480b8000 0x200>; | ||
314 | interrupts = <0 91 0x4>; | ||
315 | #address-cells = <1>; | ||
316 | #size-cells = <0>; | ||
317 | ti,hwmods = "mcspi3"; | ||
318 | ti,spi-num-cs = <2>; | ||
319 | dmas = <&sdma 15>, <&sdma 16>; | ||
320 | dma-names = "tx0", "rx0"; | ||
321 | }; | ||
322 | |||
323 | mcspi4: spi@480ba000 { | ||
324 | compatible = "ti,omap4-mcspi"; | ||
325 | reg = <0x480ba000 0x200>; | ||
326 | interrupts = <0 48 0x4>; | ||
327 | #address-cells = <1>; | ||
328 | #size-cells = <0>; | ||
329 | ti,hwmods = "mcspi4"; | ||
330 | ti,spi-num-cs = <1>; | ||
331 | dmas = <&sdma 70>, <&sdma 71>; | ||
332 | dma-names = "tx0", "rx0"; | ||
333 | }; | ||
334 | |||
244 | uart1: serial@4806a000 { | 335 | uart1: serial@4806a000 { |
245 | compatible = "ti,omap4-uart"; | 336 | compatible = "ti,omap4-uart"; |
246 | reg = <0x4806a000 0x100>; | 337 | reg = <0x4806a000 0x100>; |
@@ -296,6 +387,8 @@ | |||
296 | ti,hwmods = "mmc1"; | 387 | ti,hwmods = "mmc1"; |
297 | ti,dual-volt; | 388 | ti,dual-volt; |
298 | ti,needs-special-reset; | 389 | ti,needs-special-reset; |
390 | dmas = <&sdma 61>, <&sdma 62>; | ||
391 | dma-names = "tx", "rx"; | ||
299 | }; | 392 | }; |
300 | 393 | ||
301 | mmc2: mmc@480b4000 { | 394 | mmc2: mmc@480b4000 { |
@@ -304,6 +397,8 @@ | |||
304 | interrupts = <0 86 0x4>; | 397 | interrupts = <0 86 0x4>; |
305 | ti,hwmods = "mmc2"; | 398 | ti,hwmods = "mmc2"; |
306 | ti,needs-special-reset; | 399 | ti,needs-special-reset; |
400 | dmas = <&sdma 47>, <&sdma 48>; | ||
401 | dma-names = "tx", "rx"; | ||
307 | }; | 402 | }; |
308 | 403 | ||
309 | mmc3: mmc@480ad000 { | 404 | mmc3: mmc@480ad000 { |
@@ -312,6 +407,8 @@ | |||
312 | interrupts = <0 94 0x4>; | 407 | interrupts = <0 94 0x4>; |
313 | ti,hwmods = "mmc3"; | 408 | ti,hwmods = "mmc3"; |
314 | ti,needs-special-reset; | 409 | ti,needs-special-reset; |
410 | dmas = <&sdma 77>, <&sdma 78>; | ||
411 | dma-names = "tx", "rx"; | ||
315 | }; | 412 | }; |
316 | 413 | ||
317 | mmc4: mmc@480d1000 { | 414 | mmc4: mmc@480d1000 { |
@@ -320,6 +417,8 @@ | |||
320 | interrupts = <0 96 0x4>; | 417 | interrupts = <0 96 0x4>; |
321 | ti,hwmods = "mmc4"; | 418 | ti,hwmods = "mmc4"; |
322 | ti,needs-special-reset; | 419 | ti,needs-special-reset; |
420 | dmas = <&sdma 57>, <&sdma 58>; | ||
421 | dma-names = "tx", "rx"; | ||
323 | }; | 422 | }; |
324 | 423 | ||
325 | mmc5: mmc@480d5000 { | 424 | mmc5: mmc@480d5000 { |
@@ -328,10 +427,13 @@ | |||
328 | interrupts = <0 59 0x4>; | 427 | interrupts = <0 59 0x4>; |
329 | ti,hwmods = "mmc5"; | 428 | ti,hwmods = "mmc5"; |
330 | ti,needs-special-reset; | 429 | ti,needs-special-reset; |
430 | dmas = <&sdma 59>, <&sdma 60>; | ||
431 | dma-names = "tx", "rx"; | ||
331 | }; | 432 | }; |
332 | 433 | ||
333 | keypad: keypad@4ae1c000 { | 434 | keypad: keypad@4ae1c000 { |
334 | compatible = "ti,omap4-keypad"; | 435 | compatible = "ti,omap4-keypad"; |
436 | reg = <0x4ae1c000 0x400>; | ||
335 | ti,hwmods = "kbd"; | 437 | ti,hwmods = "kbd"; |
336 | }; | 438 | }; |
337 | 439 | ||
@@ -342,6 +444,9 @@ | |||
342 | reg-names = "mpu", "dma"; | 444 | reg-names = "mpu", "dma"; |
343 | interrupts = <0 112 0x4>; | 445 | interrupts = <0 112 0x4>; |
344 | ti,hwmods = "mcpdm"; | 446 | ti,hwmods = "mcpdm"; |
447 | dmas = <&sdma 65>, | ||
448 | <&sdma 66>; | ||
449 | dma-names = "up_link", "dn_link"; | ||
345 | }; | 450 | }; |
346 | 451 | ||
347 | dmic: dmic@4012e000 { | 452 | dmic: dmic@4012e000 { |
@@ -351,6 +456,8 @@ | |||
351 | reg-names = "mpu", "dma"; | 456 | reg-names = "mpu", "dma"; |
352 | interrupts = <0 114 0x4>; | 457 | interrupts = <0 114 0x4>; |
353 | ti,hwmods = "dmic"; | 458 | ti,hwmods = "dmic"; |
459 | dmas = <&sdma 67>; | ||
460 | dma-names = "up_link"; | ||
354 | }; | 461 | }; |
355 | 462 | ||
356 | mcbsp1: mcbsp@40122000 { | 463 | mcbsp1: mcbsp@40122000 { |
@@ -362,6 +469,9 @@ | |||
362 | interrupt-names = "common"; | 469 | interrupt-names = "common"; |
363 | ti,buffer-size = <128>; | 470 | ti,buffer-size = <128>; |
364 | ti,hwmods = "mcbsp1"; | 471 | ti,hwmods = "mcbsp1"; |
472 | dmas = <&sdma 33>, | ||
473 | <&sdma 34>; | ||
474 | dma-names = "tx", "rx"; | ||
365 | }; | 475 | }; |
366 | 476 | ||
367 | mcbsp2: mcbsp@40124000 { | 477 | mcbsp2: mcbsp@40124000 { |
@@ -373,6 +483,9 @@ | |||
373 | interrupt-names = "common"; | 483 | interrupt-names = "common"; |
374 | ti,buffer-size = <128>; | 484 | ti,buffer-size = <128>; |
375 | ti,hwmods = "mcbsp2"; | 485 | ti,hwmods = "mcbsp2"; |
486 | dmas = <&sdma 17>, | ||
487 | <&sdma 18>; | ||
488 | dma-names = "tx", "rx"; | ||
376 | }; | 489 | }; |
377 | 490 | ||
378 | mcbsp3: mcbsp@40126000 { | 491 | mcbsp3: mcbsp@40126000 { |
@@ -384,10 +497,13 @@ | |||
384 | interrupt-names = "common"; | 497 | interrupt-names = "common"; |
385 | ti,buffer-size = <128>; | 498 | ti,buffer-size = <128>; |
386 | ti,hwmods = "mcbsp3"; | 499 | ti,hwmods = "mcbsp3"; |
500 | dmas = <&sdma 19>, | ||
501 | <&sdma 20>; | ||
502 | dma-names = "tx", "rx"; | ||
387 | }; | 503 | }; |
388 | 504 | ||
389 | timer1: timer@4ae18000 { | 505 | timer1: timer@4ae18000 { |
390 | compatible = "ti,omap2-timer"; | 506 | compatible = "ti,omap5430-timer"; |
391 | reg = <0x4ae18000 0x80>; | 507 | reg = <0x4ae18000 0x80>; |
392 | interrupts = <0 37 0x4>; | 508 | interrupts = <0 37 0x4>; |
393 | ti,hwmods = "timer1"; | 509 | ti,hwmods = "timer1"; |
@@ -395,28 +511,28 @@ | |||
395 | }; | 511 | }; |
396 | 512 | ||
397 | timer2: timer@48032000 { | 513 | timer2: timer@48032000 { |
398 | compatible = "ti,omap2-timer"; | 514 | compatible = "ti,omap5430-timer"; |
399 | reg = <0x48032000 0x80>; | 515 | reg = <0x48032000 0x80>; |
400 | interrupts = <0 38 0x4>; | 516 | interrupts = <0 38 0x4>; |
401 | ti,hwmods = "timer2"; | 517 | ti,hwmods = "timer2"; |
402 | }; | 518 | }; |
403 | 519 | ||
404 | timer3: timer@48034000 { | 520 | timer3: timer@48034000 { |
405 | compatible = "ti,omap2-timer"; | 521 | compatible = "ti,omap5430-timer"; |
406 | reg = <0x48034000 0x80>; | 522 | reg = <0x48034000 0x80>; |
407 | interrupts = <0 39 0x4>; | 523 | interrupts = <0 39 0x4>; |
408 | ti,hwmods = "timer3"; | 524 | ti,hwmods = "timer3"; |
409 | }; | 525 | }; |
410 | 526 | ||
411 | timer4: timer@48036000 { | 527 | timer4: timer@48036000 { |
412 | compatible = "ti,omap2-timer"; | 528 | compatible = "ti,omap5430-timer"; |
413 | reg = <0x48036000 0x80>; | 529 | reg = <0x48036000 0x80>; |
414 | interrupts = <0 40 0x4>; | 530 | interrupts = <0 40 0x4>; |
415 | ti,hwmods = "timer4"; | 531 | ti,hwmods = "timer4"; |
416 | }; | 532 | }; |
417 | 533 | ||
418 | timer5: timer@40138000 { | 534 | timer5: timer@40138000 { |
419 | compatible = "ti,omap2-timer"; | 535 | compatible = "ti,omap5430-timer"; |
420 | reg = <0x40138000 0x80>, | 536 | reg = <0x40138000 0x80>, |
421 | <0x49038000 0x80>; | 537 | <0x49038000 0x80>; |
422 | interrupts = <0 41 0x4>; | 538 | interrupts = <0 41 0x4>; |
@@ -425,7 +541,7 @@ | |||
425 | }; | 541 | }; |
426 | 542 | ||
427 | timer6: timer@4013a000 { | 543 | timer6: timer@4013a000 { |
428 | compatible = "ti,omap2-timer"; | 544 | compatible = "ti,omap5430-timer"; |
429 | reg = <0x4013a000 0x80>, | 545 | reg = <0x4013a000 0x80>, |
430 | <0x4903a000 0x80>; | 546 | <0x4903a000 0x80>; |
431 | interrupts = <0 42 0x4>; | 547 | interrupts = <0 42 0x4>; |
@@ -435,7 +551,7 @@ | |||
435 | }; | 551 | }; |
436 | 552 | ||
437 | timer7: timer@4013c000 { | 553 | timer7: timer@4013c000 { |
438 | compatible = "ti,omap2-timer"; | 554 | compatible = "ti,omap5430-timer"; |
439 | reg = <0x4013c000 0x80>, | 555 | reg = <0x4013c000 0x80>, |
440 | <0x4903c000 0x80>; | 556 | <0x4903c000 0x80>; |
441 | interrupts = <0 43 0x4>; | 557 | interrupts = <0 43 0x4>; |
@@ -444,7 +560,7 @@ | |||
444 | }; | 560 | }; |
445 | 561 | ||
446 | timer8: timer@4013e000 { | 562 | timer8: timer@4013e000 { |
447 | compatible = "ti,omap2-timer"; | 563 | compatible = "ti,omap5430-timer"; |
448 | reg = <0x4013e000 0x80>, | 564 | reg = <0x4013e000 0x80>, |
449 | <0x4903e000 0x80>; | 565 | <0x4903e000 0x80>; |
450 | interrupts = <0 44 0x4>; | 566 | interrupts = <0 44 0x4>; |
@@ -454,27 +570,34 @@ | |||
454 | }; | 570 | }; |
455 | 571 | ||
456 | timer9: timer@4803e000 { | 572 | timer9: timer@4803e000 { |
457 | compatible = "ti,omap2-timer"; | 573 | compatible = "ti,omap5430-timer"; |
458 | reg = <0x4803e000 0x80>; | 574 | reg = <0x4803e000 0x80>; |
459 | interrupts = <0 45 0x4>; | 575 | interrupts = <0 45 0x4>; |
460 | ti,hwmods = "timer9"; | 576 | ti,hwmods = "timer9"; |
461 | }; | 577 | }; |
462 | 578 | ||
463 | timer10: timer@48086000 { | 579 | timer10: timer@48086000 { |
464 | compatible = "ti,omap2-timer"; | 580 | compatible = "ti,omap5430-timer"; |
465 | reg = <0x48086000 0x80>; | 581 | reg = <0x48086000 0x80>; |
466 | interrupts = <0 46 0x4>; | 582 | interrupts = <0 46 0x4>; |
467 | ti,hwmods = "timer10"; | 583 | ti,hwmods = "timer10"; |
468 | }; | 584 | }; |
469 | 585 | ||
470 | timer11: timer@48088000 { | 586 | timer11: timer@48088000 { |
471 | compatible = "ti,omap2-timer"; | 587 | compatible = "ti,omap5430-timer"; |
472 | reg = <0x48088000 0x80>; | 588 | reg = <0x48088000 0x80>; |
473 | interrupts = <0 47 0x4>; | 589 | interrupts = <0 47 0x4>; |
474 | ti,hwmods = "timer11"; | 590 | ti,hwmods = "timer11"; |
475 | ti,timer-pwm; | 591 | ti,timer-pwm; |
476 | }; | 592 | }; |
477 | 593 | ||
594 | wdt2: wdt@4ae14000 { | ||
595 | compatible = "ti,omap5-wdt", "ti,omap3-wdt"; | ||
596 | reg = <0x4ae14000 0x80>; | ||
597 | interrupts = <0 80 0x4>; | ||
598 | ti,hwmods = "wd_timer2"; | ||
599 | }; | ||
600 | |||
478 | emif1: emif@0x4c000000 { | 601 | emif1: emif@0x4c000000 { |
479 | compatible = "ti,emif-4d5"; | 602 | compatible = "ti,emif-4d5"; |
480 | ti,hwmods = "emif1"; | 603 | ti,hwmods = "emif1"; |
@@ -496,5 +619,53 @@ | |||
496 | hw-caps-ll-interface; | 619 | hw-caps-ll-interface; |
497 | hw-caps-temp-alert; | 620 | hw-caps-temp-alert; |
498 | }; | 621 | }; |
622 | |||
623 | omap_control_usb: omap-control-usb@4a002300 { | ||
624 | compatible = "ti,omap-control-usb"; | ||
625 | reg = <0x4a002300 0x4>, | ||
626 | <0x4a002370 0x4>; | ||
627 | reg-names = "control_dev_conf", "phy_power_usb"; | ||
628 | ti,type = <2>; | ||
629 | }; | ||
630 | |||
631 | omap_dwc3@4a020000 { | ||
632 | compatible = "ti,dwc3"; | ||
633 | ti,hwmods = "usb_otg_ss"; | ||
634 | reg = <0x4a020000 0x1000>; | ||
635 | interrupts = <0 93 4>; | ||
636 | #address-cells = <1>; | ||
637 | #size-cells = <1>; | ||
638 | utmi-mode = <2>; | ||
639 | ranges; | ||
640 | dwc3@4a030000 { | ||
641 | compatible = "synopsys,dwc3"; | ||
642 | reg = <0x4a030000 0x1000>; | ||
643 | interrupts = <0 92 4>; | ||
644 | usb-phy = <&usb2_phy>, <&usb3_phy>; | ||
645 | tx-fifo-resize; | ||
646 | }; | ||
647 | }; | ||
648 | |||
649 | ocp2scp { | ||
650 | compatible = "ti,omap-ocp2scp"; | ||
651 | #address-cells = <1>; | ||
652 | #size-cells = <1>; | ||
653 | ranges; | ||
654 | ti,hwmods = "ocp2scp1"; | ||
655 | usb2_phy: usb2phy@4a084000 { | ||
656 | compatible = "ti,omap-usb2"; | ||
657 | reg = <0x4a084000 0x7c>; | ||
658 | ctrl-module = <&omap_control_usb>; | ||
659 | }; | ||
660 | |||
661 | usb3_phy: usb3phy@4a084400 { | ||
662 | compatible = "ti,omap-usb3"; | ||
663 | reg = <0x4a084400 0x80>, | ||
664 | <0x4a084800 0x64>, | ||
665 | <0x4a084c00 0x40>; | ||
666 | reg-names = "phy_rx", "phy_tx", "pll_ctrl"; | ||
667 | ctrl-module = <&omap_control_usb>; | ||
668 | }; | ||
669 | }; | ||
499 | }; | 670 | }; |
500 | }; | 671 | }; |
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts index 616990dc92db..72c1f27af7f3 100644 --- a/arch/arm/boot/dts/tegra114-dalmore.dts +++ b/arch/arm/boot/dts/tegra114-dalmore.dts | |||
@@ -10,14 +10,835 @@ | |||
10 | reg = <0x80000000 0x40000000>; | 10 | reg = <0x80000000 0x40000000>; |
11 | }; | 11 | }; |
12 | 12 | ||
13 | pinmux { | ||
14 | pinctrl-names = "default"; | ||
15 | pinctrl-0 = <&state_default>; | ||
16 | |||
17 | state_default: pinmux { | ||
18 | clk1_out_pw4 { | ||
19 | nvidia,pins = "clk1_out_pw4"; | ||
20 | nvidia,function = "extperiph1"; | ||
21 | nvidia,pull = <0>; | ||
22 | nvidia,tristate = <0>; | ||
23 | nvidia,enable-input = <0>; | ||
24 | }; | ||
25 | dap1_din_pn1 { | ||
26 | nvidia,pins = "dap1_din_pn1"; | ||
27 | nvidia,function = "i2s0"; | ||
28 | nvidia,pull = <0>; | ||
29 | nvidia,tristate = <1>; | ||
30 | nvidia,enable-input = <1>; | ||
31 | }; | ||
32 | dap1_dout_pn2 { | ||
33 | nvidia,pins = "dap1_dout_pn2", | ||
34 | "dap1_fs_pn0", | ||
35 | "dap1_sclk_pn3"; | ||
36 | nvidia,function = "i2s0"; | ||
37 | nvidia,pull = <0>; | ||
38 | nvidia,tristate = <0>; | ||
39 | nvidia,enable-input = <1>; | ||
40 | }; | ||
41 | dap2_din_pa4 { | ||
42 | nvidia,pins = "dap2_din_pa4"; | ||
43 | nvidia,function = "i2s1"; | ||
44 | nvidia,pull = <0>; | ||
45 | nvidia,tristate = <1>; | ||
46 | nvidia,enable-input = <1>; | ||
47 | }; | ||
48 | dap2_dout_pa5 { | ||
49 | nvidia,pins = "dap2_dout_pa5", | ||
50 | "dap2_fs_pa2", | ||
51 | "dap2_sclk_pa3"; | ||
52 | nvidia,function = "i2s1"; | ||
53 | nvidia,pull = <0>; | ||
54 | nvidia,tristate = <0>; | ||
55 | nvidia,enable-input = <1>; | ||
56 | }; | ||
57 | dap4_din_pp5 { | ||
58 | nvidia,pins = "dap4_din_pp5", | ||
59 | "dap4_dout_pp6", | ||
60 | "dap4_fs_pp4", | ||
61 | "dap4_sclk_pp7"; | ||
62 | nvidia,function = "i2s3"; | ||
63 | nvidia,pull = <0>; | ||
64 | nvidia,tristate = <0>; | ||
65 | nvidia,enable-input = <1>; | ||
66 | }; | ||
67 | dvfs_pwm_px0 { | ||
68 | nvidia,pins = "dvfs_pwm_px0", | ||
69 | "dvfs_clk_px2"; | ||
70 | nvidia,function = "cldvfs"; | ||
71 | nvidia,pull = <0>; | ||
72 | nvidia,tristate = <0>; | ||
73 | nvidia,enable-input = <0>; | ||
74 | }; | ||
75 | ulpi_clk_py0 { | ||
76 | nvidia,pins = "ulpi_clk_py0", | ||
77 | "ulpi_data0_po1", | ||
78 | "ulpi_data1_po2", | ||
79 | "ulpi_data2_po3", | ||
80 | "ulpi_data3_po4", | ||
81 | "ulpi_data4_po5", | ||
82 | "ulpi_data5_po6", | ||
83 | "ulpi_data6_po7", | ||
84 | "ulpi_data7_po0"; | ||
85 | nvidia,function = "ulpi"; | ||
86 | nvidia,pull = <0>; | ||
87 | nvidia,tristate = <0>; | ||
88 | nvidia,enable-input = <1>; | ||
89 | }; | ||
90 | ulpi_dir_py1 { | ||
91 | nvidia,pins = "ulpi_dir_py1", | ||
92 | "ulpi_nxt_py2"; | ||
93 | nvidia,function = "ulpi"; | ||
94 | nvidia,pull = <0>; | ||
95 | nvidia,tristate = <1>; | ||
96 | nvidia,enable-input = <1>; | ||
97 | }; | ||
98 | ulpi_stp_py3 { | ||
99 | nvidia,pins = "ulpi_stp_py3"; | ||
100 | nvidia,function = "ulpi"; | ||
101 | nvidia,pull = <0>; | ||
102 | nvidia,tristate = <0>; | ||
103 | nvidia,enable-input = <0>; | ||
104 | }; | ||
105 | cam_i2c_scl_pbb1 { | ||
106 | nvidia,pins = "cam_i2c_scl_pbb1", | ||
107 | "cam_i2c_sda_pbb2"; | ||
108 | nvidia,function = "i2c3"; | ||
109 | nvidia,pull = <0>; | ||
110 | nvidia,tristate = <0>; | ||
111 | nvidia,enable-input = <1>; | ||
112 | nvidia,lock = <0>; | ||
113 | nvidia,open-drain = <0>; | ||
114 | }; | ||
115 | cam_mclk_pcc0 { | ||
116 | nvidia,pins = "cam_mclk_pcc0", | ||
117 | "pbb0"; | ||
118 | nvidia,function = "vi_alt3"; | ||
119 | nvidia,pull = <0>; | ||
120 | nvidia,tristate = <0>; | ||
121 | nvidia,enable-input = <0>; | ||
122 | nvidia,lock = <0>; | ||
123 | }; | ||
124 | gen2_i2c_scl_pt5 { | ||
125 | nvidia,pins = "gen2_i2c_scl_pt5", | ||
126 | "gen2_i2c_sda_pt6"; | ||
127 | nvidia,function = "i2c2"; | ||
128 | nvidia,pull = <0>; | ||
129 | nvidia,tristate = <0>; | ||
130 | nvidia,enable-input = <1>; | ||
131 | nvidia,lock = <0>; | ||
132 | nvidia,open-drain = <0>; | ||
133 | }; | ||
134 | gmi_a16_pj7 { | ||
135 | nvidia,pins = "gmi_a16_pj7"; | ||
136 | nvidia,function = "uartd"; | ||
137 | nvidia,pull = <0>; | ||
138 | nvidia,tristate = <0>; | ||
139 | nvidia,enable-input = <0>; | ||
140 | }; | ||
141 | gmi_a17_pb0 { | ||
142 | nvidia,pins = "gmi_a17_pb0", | ||
143 | "gmi_a18_pb1"; | ||
144 | nvidia,function = "uartd"; | ||
145 | nvidia,pull = <0>; | ||
146 | nvidia,tristate = <1>; | ||
147 | nvidia,enable-input = <1>; | ||
148 | }; | ||
149 | gmi_a19_pk7 { | ||
150 | nvidia,pins = "gmi_a19_pk7"; | ||
151 | nvidia,function = "uartd"; | ||
152 | nvidia,pull = <0>; | ||
153 | nvidia,tristate = <0>; | ||
154 | nvidia,enable-input = <0>; | ||
155 | }; | ||
156 | gmi_ad5_pg5 { | ||
157 | nvidia,pins = "gmi_ad5_pg5", | ||
158 | "gmi_cs6_n_pi3", | ||
159 | "gmi_wr_n_pi0"; | ||
160 | nvidia,function = "spi4"; | ||
161 | nvidia,pull = <0>; | ||
162 | nvidia,tristate = <0>; | ||
163 | nvidia,enable-input = <1>; | ||
164 | }; | ||
165 | gmi_ad6_pg6 { | ||
166 | nvidia,pins = "gmi_ad6_pg6", | ||
167 | "gmi_ad7_pg7"; | ||
168 | nvidia,function = "spi4"; | ||
169 | nvidia,pull = <2>; | ||
170 | nvidia,tristate = <0>; | ||
171 | nvidia,enable-input = <1>; | ||
172 | }; | ||
173 | gmi_ad12_ph4 { | ||
174 | nvidia,pins = "gmi_ad12_ph4"; | ||
175 | nvidia,function = "rsvd4"; | ||
176 | nvidia,pull = <0>; | ||
177 | nvidia,tristate = <0>; | ||
178 | nvidia,enable-input = <0>; | ||
179 | }; | ||
180 | gmi_ad9_ph1 { | ||
181 | nvidia,pins = "gmi_ad9_ph1"; | ||
182 | nvidia,function = "pwm1"; | ||
183 | nvidia,pull = <0>; | ||
184 | nvidia,tristate = <0>; | ||
185 | nvidia,enable-input = <0>; | ||
186 | }; | ||
187 | gmi_cs1_n_pj2 { | ||
188 | nvidia,pins = "gmi_cs1_n_pj2", | ||
189 | "gmi_oe_n_pi1"; | ||
190 | nvidia,function = "soc"; | ||
191 | nvidia,pull = <0>; | ||
192 | nvidia,tristate = <1>; | ||
193 | nvidia,enable-input = <1>; | ||
194 | }; | ||
195 | clk2_out_pw5 { | ||
196 | nvidia,pins = "clk2_out_pw5"; | ||
197 | nvidia,function = "extperiph2"; | ||
198 | nvidia,pull = <0>; | ||
199 | nvidia,tristate = <0>; | ||
200 | nvidia,enable-input = <0>; | ||
201 | }; | ||
202 | sdmmc1_clk_pz0 { | ||
203 | nvidia,pins = "sdmmc1_clk_pz0"; | ||
204 | nvidia,function = "sdmmc1"; | ||
205 | nvidia,pull = <0>; | ||
206 | nvidia,tristate = <0>; | ||
207 | nvidia,enable-input = <1>; | ||
208 | }; | ||
209 | sdmmc1_cmd_pz1 { | ||
210 | nvidia,pins = "sdmmc1_cmd_pz1", | ||
211 | "sdmmc1_dat0_py7", | ||
212 | "sdmmc1_dat1_py6", | ||
213 | "sdmmc1_dat2_py5", | ||
214 | "sdmmc1_dat3_py4"; | ||
215 | nvidia,function = "sdmmc1"; | ||
216 | nvidia,pull = <2>; | ||
217 | nvidia,tristate = <0>; | ||
218 | nvidia,enable-input = <1>; | ||
219 | }; | ||
220 | sdmmc1_wp_n_pv3 { | ||
221 | nvidia,pins = "sdmmc1_wp_n_pv3"; | ||
222 | nvidia,function = "spi4"; | ||
223 | nvidia,pull = <2>; | ||
224 | nvidia,tristate = <0>; | ||
225 | nvidia,enable-input = <0>; | ||
226 | }; | ||
227 | sdmmc3_clk_pa6 { | ||
228 | nvidia,pins = "sdmmc3_clk_pa6"; | ||
229 | nvidia,function = "sdmmc3"; | ||
230 | nvidia,pull = <0>; | ||
231 | nvidia,tristate = <0>; | ||
232 | nvidia,enable-input = <1>; | ||
233 | }; | ||
234 | sdmmc3_cmd_pa7 { | ||
235 | nvidia,pins = "sdmmc3_cmd_pa7", | ||
236 | "sdmmc3_dat0_pb7", | ||
237 | "sdmmc3_dat1_pb6", | ||
238 | "sdmmc3_dat2_pb5", | ||
239 | "sdmmc3_dat3_pb4", | ||
240 | "kb_col4_pq4", | ||
241 | "sdmmc3_clk_lb_out_pee4", | ||
242 | "sdmmc3_clk_lb_in_pee5"; | ||
243 | nvidia,function = "sdmmc3"; | ||
244 | nvidia,pull = <2>; | ||
245 | nvidia,tristate = <0>; | ||
246 | nvidia,enable-input = <1>; | ||
247 | }; | ||
248 | sdmmc4_clk_pcc4 { | ||
249 | nvidia,pins = "sdmmc4_clk_pcc4"; | ||
250 | nvidia,function = "sdmmc4"; | ||
251 | nvidia,pull = <0>; | ||
252 | nvidia,tristate = <0>; | ||
253 | nvidia,enable-input = <1>; | ||
254 | }; | ||
255 | sdmmc4_cmd_pt7 { | ||
256 | nvidia,pins = "sdmmc4_cmd_pt7", | ||
257 | "sdmmc4_dat0_paa0", | ||
258 | "sdmmc4_dat1_paa1", | ||
259 | "sdmmc4_dat2_paa2", | ||
260 | "sdmmc4_dat3_paa3", | ||
261 | "sdmmc4_dat4_paa4", | ||
262 | "sdmmc4_dat5_paa5", | ||
263 | "sdmmc4_dat6_paa6", | ||
264 | "sdmmc4_dat7_paa7"; | ||
265 | nvidia,function = "sdmmc4"; | ||
266 | nvidia,pull = <2>; | ||
267 | nvidia,tristate = <0>; | ||
268 | nvidia,enable-input = <1>; | ||
269 | }; | ||
270 | clk_32k_out_pa0 { | ||
271 | nvidia,pins = "clk_32k_out_pa0"; | ||
272 | nvidia,function = "blink"; | ||
273 | nvidia,pull = <0>; | ||
274 | nvidia,tristate = <0>; | ||
275 | nvidia,enable-input = <0>; | ||
276 | }; | ||
277 | kb_col0_pq0 { | ||
278 | nvidia,pins = "kb_col0_pq0", | ||
279 | "kb_col1_pq1", | ||
280 | "kb_col2_pq2", | ||
281 | "kb_row0_pr0", | ||
282 | "kb_row1_pr1", | ||
283 | "kb_row2_pr2"; | ||
284 | nvidia,function = "kbc"; | ||
285 | nvidia,pull = <2>; | ||
286 | nvidia,tristate = <0>; | ||
287 | nvidia,enable-input = <1>; | ||
288 | }; | ||
289 | dap3_din_pp1 { | ||
290 | nvidia,pins = "dap3_din_pp1", | ||
291 | "dap3_sclk_pp3"; | ||
292 | nvidia,function = "displayb"; | ||
293 | nvidia,pull = <0>; | ||
294 | nvidia,tristate = <1>; | ||
295 | nvidia,enable-input = <0>; | ||
296 | }; | ||
297 | pv0 { | ||
298 | nvidia,pins = "pv0"; | ||
299 | nvidia,function = "rsvd4"; | ||
300 | nvidia,pull = <0>; | ||
301 | nvidia,tristate = <1>; | ||
302 | nvidia,enable-input = <0>; | ||
303 | }; | ||
304 | kb_row7_pr7 { | ||
305 | nvidia,pins = "kb_row7_pr7"; | ||
306 | nvidia,function = "rsvd2"; | ||
307 | nvidia,pull = <2>; | ||
308 | nvidia,tristate = <0>; | ||
309 | nvidia,enable-input = <1>; | ||
310 | }; | ||
311 | kb_row10_ps2 { | ||
312 | nvidia,pins = "kb_row10_ps2"; | ||
313 | nvidia,function = "uarta"; | ||
314 | nvidia,pull = <0>; | ||
315 | nvidia,tristate = <1>; | ||
316 | nvidia,enable-input = <1>; | ||
317 | }; | ||
318 | kb_row9_ps1 { | ||
319 | nvidia,pins = "kb_row9_ps1"; | ||
320 | nvidia,function = "uarta"; | ||
321 | nvidia,pull = <0>; | ||
322 | nvidia,tristate = <0>; | ||
323 | nvidia,enable-input = <0>; | ||
324 | }; | ||
325 | pwr_i2c_scl_pz6 { | ||
326 | nvidia,pins = "pwr_i2c_scl_pz6", | ||
327 | "pwr_i2c_sda_pz7"; | ||
328 | nvidia,function = "i2cpwr"; | ||
329 | nvidia,pull = <0>; | ||
330 | nvidia,tristate = <0>; | ||
331 | nvidia,enable-input = <1>; | ||
332 | nvidia,lock = <0>; | ||
333 | nvidia,open-drain = <0>; | ||
334 | }; | ||
335 | sys_clk_req_pz5 { | ||
336 | nvidia,pins = "sys_clk_req_pz5"; | ||
337 | nvidia,function = "sysclk"; | ||
338 | nvidia,pull = <0>; | ||
339 | nvidia,tristate = <0>; | ||
340 | nvidia,enable-input = <0>; | ||
341 | }; | ||
342 | core_pwr_req { | ||
343 | nvidia,pins = "core_pwr_req"; | ||
344 | nvidia,function = "pwron"; | ||
345 | nvidia,pull = <0>; | ||
346 | nvidia,tristate = <0>; | ||
347 | nvidia,enable-input = <0>; | ||
348 | }; | ||
349 | cpu_pwr_req { | ||
350 | nvidia,pins = "cpu_pwr_req"; | ||
351 | nvidia,function = "cpu"; | ||
352 | nvidia,pull = <0>; | ||
353 | nvidia,tristate = <0>; | ||
354 | nvidia,enable-input = <0>; | ||
355 | }; | ||
356 | pwr_int_n { | ||
357 | nvidia,pins = "pwr_int_n"; | ||
358 | nvidia,function = "pmi"; | ||
359 | nvidia,pull = <0>; | ||
360 | nvidia,tristate = <1>; | ||
361 | nvidia,enable-input = <1>; | ||
362 | }; | ||
363 | reset_out_n { | ||
364 | nvidia,pins = "reset_out_n"; | ||
365 | nvidia,function = "reset_out_n"; | ||
366 | nvidia,pull = <0>; | ||
367 | nvidia,tristate = <0>; | ||
368 | nvidia,enable-input = <0>; | ||
369 | }; | ||
370 | clk3_out_pee0 { | ||
371 | nvidia,pins = "clk3_out_pee0"; | ||
372 | nvidia,function = "extperiph3"; | ||
373 | nvidia,pull = <0>; | ||
374 | nvidia,tristate = <0>; | ||
375 | nvidia,enable-input = <0>; | ||
376 | }; | ||
377 | gen1_i2c_scl_pc4 { | ||
378 | nvidia,pins = "gen1_i2c_scl_pc4", | ||
379 | "gen1_i2c_sda_pc5"; | ||
380 | nvidia,function = "i2c1"; | ||
381 | nvidia,pull = <0>; | ||
382 | nvidia,tristate = <0>; | ||
383 | nvidia,enable-input = <1>; | ||
384 | nvidia,lock = <0>; | ||
385 | nvidia,open-drain = <0>; | ||
386 | }; | ||
387 | uart2_cts_n_pj5 { | ||
388 | nvidia,pins = "uart2_cts_n_pj5"; | ||
389 | nvidia,function = "uartb"; | ||
390 | nvidia,pull = <0>; | ||
391 | nvidia,tristate = <1>; | ||
392 | nvidia,enable-input = <1>; | ||
393 | }; | ||
394 | uart2_rts_n_pj6 { | ||
395 | nvidia,pins = "uart2_rts_n_pj6"; | ||
396 | nvidia,function = "uartb"; | ||
397 | nvidia,pull = <0>; | ||
398 | nvidia,tristate = <0>; | ||
399 | nvidia,enable-input = <0>; | ||
400 | }; | ||
401 | uart2_rxd_pc3 { | ||
402 | nvidia,pins = "uart2_rxd_pc3"; | ||
403 | nvidia,function = "irda"; | ||
404 | nvidia,pull = <0>; | ||
405 | nvidia,tristate = <1>; | ||
406 | nvidia,enable-input = <1>; | ||
407 | }; | ||
408 | uart2_txd_pc2 { | ||
409 | nvidia,pins = "uart2_txd_pc2"; | ||
410 | nvidia,function = "irda"; | ||
411 | nvidia,pull = <0>; | ||
412 | nvidia,tristate = <0>; | ||
413 | nvidia,enable-input = <0>; | ||
414 | }; | ||
415 | uart3_cts_n_pa1 { | ||
416 | nvidia,pins = "uart3_cts_n_pa1", | ||
417 | "uart3_rxd_pw7"; | ||
418 | nvidia,function = "uartc"; | ||
419 | nvidia,pull = <0>; | ||
420 | nvidia,tristate = <1>; | ||
421 | nvidia,enable-input = <1>; | ||
422 | }; | ||
423 | uart3_rts_n_pc0 { | ||
424 | nvidia,pins = "uart3_rts_n_pc0", | ||
425 | "uart3_txd_pw6"; | ||
426 | nvidia,function = "uartc"; | ||
427 | nvidia,pull = <0>; | ||
428 | nvidia,tristate = <0>; | ||
429 | nvidia,enable-input = <0>; | ||
430 | }; | ||
431 | owr { | ||
432 | nvidia,pins = "owr"; | ||
433 | nvidia,function = "owr"; | ||
434 | nvidia,pull = <0>; | ||
435 | nvidia,tristate = <0>; | ||
436 | nvidia,enable-input = <1>; | ||
437 | }; | ||
438 | hdmi_cec_pee3 { | ||
439 | nvidia,pins = "hdmi_cec_pee3"; | ||
440 | nvidia,function = "cec"; | ||
441 | nvidia,pull = <0>; | ||
442 | nvidia,tristate = <0>; | ||
443 | nvidia,enable-input = <1>; | ||
444 | nvidia,lock = <0>; | ||
445 | nvidia,open-drain = <0>; | ||
446 | }; | ||
447 | ddc_scl_pv4 { | ||
448 | nvidia,pins = "ddc_scl_pv4", | ||
449 | "ddc_sda_pv5"; | ||
450 | nvidia,function = "i2c4"; | ||
451 | nvidia,pull = <0>; | ||
452 | nvidia,tristate = <0>; | ||
453 | nvidia,enable-input = <1>; | ||
454 | nvidia,lock = <0>; | ||
455 | nvidia,rcv-sel = <1>; | ||
456 | }; | ||
457 | spdif_in_pk6 { | ||
458 | nvidia,pins = "spdif_in_pk6"; | ||
459 | nvidia,function = "usb"; | ||
460 | nvidia,pull = <2>; | ||
461 | nvidia,tristate = <0>; | ||
462 | nvidia,enable-input = <1>; | ||
463 | nvidia,lock = <0>; | ||
464 | }; | ||
465 | usb_vbus_en0_pn4 { | ||
466 | nvidia,pins = "usb_vbus_en0_pn4"; | ||
467 | nvidia,function = "usb"; | ||
468 | nvidia,pull = <2>; | ||
469 | nvidia,tristate = <0>; | ||
470 | nvidia,enable-input = <1>; | ||
471 | nvidia,lock = <0>; | ||
472 | nvidia,open-drain = <1>; | ||
473 | }; | ||
474 | gpio_x6_aud_px6 { | ||
475 | nvidia,pins = "gpio_x6_aud_px6"; | ||
476 | nvidia,function = "spi6"; | ||
477 | nvidia,pull = <2>; | ||
478 | nvidia,tristate = <1>; | ||
479 | nvidia,enable-input = <1>; | ||
480 | }; | ||
481 | gpio_x4_aud_px4 { | ||
482 | nvidia,pins = "gpio_x4_aud_px4", | ||
483 | "gpio_x7_aud_px7"; | ||
484 | nvidia,function = "rsvd1"; | ||
485 | nvidia,pull = <1>; | ||
486 | nvidia,tristate = <0>; | ||
487 | nvidia,enable-input = <0>; | ||
488 | }; | ||
489 | gpio_x5_aud_px5 { | ||
490 | nvidia,pins = "gpio_x5_aud_px5"; | ||
491 | nvidia,function = "rsvd1"; | ||
492 | nvidia,pull = <2>; | ||
493 | nvidia,tristate = <0>; | ||
494 | nvidia,enable-input = <1>; | ||
495 | }; | ||
496 | gpio_w2_aud_pw2 { | ||
497 | nvidia,pins = "gpio_w2_aud_pw2"; | ||
498 | nvidia,function = "rsvd2"; | ||
499 | nvidia,pull = <2>; | ||
500 | nvidia,tristate = <0>; | ||
501 | nvidia,enable-input = <1>; | ||
502 | }; | ||
503 | gpio_w3_aud_pw3 { | ||
504 | nvidia,pins = "gpio_w3_aud_pw3"; | ||
505 | nvidia,function = "spi6"; | ||
506 | nvidia,pull = <2>; | ||
507 | nvidia,tristate = <0>; | ||
508 | nvidia,enable-input = <1>; | ||
509 | }; | ||
510 | gpio_x1_aud_px1 { | ||
511 | nvidia,pins = "gpio_x1_aud_px1"; | ||
512 | nvidia,function = "rsvd4"; | ||
513 | nvidia,pull = <1>; | ||
514 | nvidia,tristate = <0>; | ||
515 | nvidia,enable-input = <1>; | ||
516 | }; | ||
517 | gpio_x3_aud_px3 { | ||
518 | nvidia,pins = "gpio_x3_aud_px3"; | ||
519 | nvidia,function = "rsvd4"; | ||
520 | nvidia,pull = <2>; | ||
521 | nvidia,tristate = <0>; | ||
522 | nvidia,enable-input = <1>; | ||
523 | }; | ||
524 | dap3_fs_pp0 { | ||
525 | nvidia,pins = "dap3_fs_pp0"; | ||
526 | nvidia,function = "i2s2"; | ||
527 | nvidia,pull = <1>; | ||
528 | nvidia,tristate = <0>; | ||
529 | nvidia,enable-input = <0>; | ||
530 | }; | ||
531 | dap3_dout_pp2 { | ||
532 | nvidia,pins = "dap3_dout_pp2"; | ||
533 | nvidia,function = "i2s2"; | ||
534 | nvidia,pull = <1>; | ||
535 | nvidia,tristate = <0>; | ||
536 | nvidia,enable-input = <0>; | ||
537 | }; | ||
538 | pv1 { | ||
539 | nvidia,pins = "pv1"; | ||
540 | nvidia,function = "rsvd1"; | ||
541 | nvidia,pull = <0>; | ||
542 | nvidia,tristate = <0>; | ||
543 | nvidia,enable-input = <1>; | ||
544 | }; | ||
545 | pbb3 { | ||
546 | nvidia,pins = "pbb3", | ||
547 | "pbb5", | ||
548 | "pbb6", | ||
549 | "pbb7"; | ||
550 | nvidia,function = "rsvd4"; | ||
551 | nvidia,pull = <1>; | ||
552 | nvidia,tristate = <0>; | ||
553 | nvidia,enable-input = <0>; | ||
554 | }; | ||
555 | pcc1 { | ||
556 | nvidia,pins = "pcc1", | ||
557 | "pcc2"; | ||
558 | nvidia,function = "rsvd4"; | ||
559 | nvidia,pull = <1>; | ||
560 | nvidia,tristate = <0>; | ||
561 | nvidia,enable-input = <1>; | ||
562 | }; | ||
563 | gmi_ad0_pg0 { | ||
564 | nvidia,pins = "gmi_ad0_pg0", | ||
565 | "gmi_ad1_pg1"; | ||
566 | nvidia,function = "gmi"; | ||
567 | nvidia,pull = <0>; | ||
568 | nvidia,tristate = <0>; | ||
569 | nvidia,enable-input = <0>; | ||
570 | }; | ||
571 | gmi_ad10_ph2 { | ||
572 | nvidia,pins = "gmi_ad10_ph2", | ||
573 | "gmi_ad11_ph3", | ||
574 | "gmi_ad13_ph5", | ||
575 | "gmi_ad8_ph0", | ||
576 | "gmi_clk_pk1"; | ||
577 | nvidia,function = "gmi"; | ||
578 | nvidia,pull = <1>; | ||
579 | nvidia,tristate = <0>; | ||
580 | nvidia,enable-input = <0>; | ||
581 | }; | ||
582 | gmi_ad2_pg2 { | ||
583 | nvidia,pins = "gmi_ad2_pg2", | ||
584 | "gmi_ad3_pg3"; | ||
585 | nvidia,function = "gmi"; | ||
586 | nvidia,pull = <0>; | ||
587 | nvidia,tristate = <0>; | ||
588 | nvidia,enable-input = <1>; | ||
589 | }; | ||
590 | gmi_adv_n_pk0 { | ||
591 | nvidia,pins = "gmi_adv_n_pk0", | ||
592 | "gmi_cs0_n_pj0", | ||
593 | "gmi_cs2_n_pk3", | ||
594 | "gmi_cs4_n_pk2", | ||
595 | "gmi_cs7_n_pi6", | ||
596 | "gmi_dqs_p_pj3", | ||
597 | "gmi_iordy_pi5", | ||
598 | "gmi_wp_n_pc7"; | ||
599 | nvidia,function = "gmi"; | ||
600 | nvidia,pull = <2>; | ||
601 | nvidia,tristate = <0>; | ||
602 | nvidia,enable-input = <1>; | ||
603 | }; | ||
604 | gmi_cs3_n_pk4 { | ||
605 | nvidia,pins = "gmi_cs3_n_pk4"; | ||
606 | nvidia,function = "gmi"; | ||
607 | nvidia,pull = <2>; | ||
608 | nvidia,tristate = <0>; | ||
609 | nvidia,enable-input = <0>; | ||
610 | }; | ||
611 | clk2_req_pcc5 { | ||
612 | nvidia,pins = "clk2_req_pcc5"; | ||
613 | nvidia,function = "rsvd4"; | ||
614 | nvidia,pull = <0>; | ||
615 | nvidia,tristate = <0>; | ||
616 | nvidia,enable-input = <0>; | ||
617 | }; | ||
618 | kb_col3_pq3 { | ||
619 | nvidia,pins = "kb_col3_pq3", | ||
620 | "kb_col6_pq6", | ||
621 | "kb_col7_pq7"; | ||
622 | nvidia,function = "kbc"; | ||
623 | nvidia,pull = <2>; | ||
624 | nvidia,tristate = <0>; | ||
625 | nvidia,enable-input = <0>; | ||
626 | }; | ||
627 | kb_col5_pq5 { | ||
628 | nvidia,pins = "kb_col5_pq5"; | ||
629 | nvidia,function = "kbc"; | ||
630 | nvidia,pull = <2>; | ||
631 | nvidia,tristate = <0>; | ||
632 | nvidia,enable-input = <1>; | ||
633 | }; | ||
634 | kb_row3_pr3 { | ||
635 | nvidia,pins = "kb_row3_pr3", | ||
636 | "kb_row4_pr4", | ||
637 | "kb_row6_pr6", | ||
638 | "kb_row8_ps0"; | ||
639 | nvidia,function = "kbc"; | ||
640 | nvidia,pull = <1>; | ||
641 | nvidia,tristate = <0>; | ||
642 | nvidia,enable-input = <1>; | ||
643 | }; | ||
644 | clk3_req_pee1 { | ||
645 | nvidia,pins = "clk3_req_pee1"; | ||
646 | nvidia,function = "rsvd4"; | ||
647 | nvidia,pull = <0>; | ||
648 | nvidia,tristate = <0>; | ||
649 | nvidia,enable-input = <0>; | ||
650 | }; | ||
651 | pu4 { | ||
652 | nvidia,pins = "pu4"; | ||
653 | nvidia,function = "displayb"; | ||
654 | nvidia,pull = <0>; | ||
655 | nvidia,tristate = <0>; | ||
656 | nvidia,enable-input = <0>; | ||
657 | }; | ||
658 | pu5 { | ||
659 | nvidia,pins = "pu5", | ||
660 | "pu6"; | ||
661 | nvidia,function = "displayb"; | ||
662 | nvidia,pull = <0>; | ||
663 | nvidia,tristate = <0>; | ||
664 | nvidia,enable-input = <1>; | ||
665 | }; | ||
666 | hdmi_int_pn7 { | ||
667 | nvidia,pins = "hdmi_int_pn7"; | ||
668 | nvidia,function = "rsvd1"; | ||
669 | nvidia,pull = <1>; | ||
670 | nvidia,tristate = <0>; | ||
671 | nvidia,enable-input = <1>; | ||
672 | }; | ||
673 | clk1_req_pee2 { | ||
674 | nvidia,pins = "clk1_req_pee2", | ||
675 | "usb_vbus_en1_pn5"; | ||
676 | nvidia,function = "rsvd4"; | ||
677 | nvidia,pull = <1>; | ||
678 | nvidia,tristate = <1>; | ||
679 | nvidia,enable-input = <0>; | ||
680 | }; | ||
681 | |||
682 | drive_sdio1 { | ||
683 | nvidia,pins = "drive_sdio1"; | ||
684 | nvidia,high-speed-mode = <1>; | ||
685 | nvidia,schmitt = <0>; | ||
686 | nvidia,low-power-mode = <3>; | ||
687 | nvidia,pull-down-strength = <36>; | ||
688 | nvidia,pull-up-strength = <20>; | ||
689 | nvidia,slew-rate-rising = <2>; | ||
690 | nvidia,slew-rate-falling = <2>; | ||
691 | }; | ||
692 | drive_sdio3 { | ||
693 | nvidia,pins = "drive_sdio3"; | ||
694 | nvidia,high-speed-mode = <1>; | ||
695 | nvidia,schmitt = <0>; | ||
696 | nvidia,low-power-mode = <3>; | ||
697 | nvidia,pull-down-strength = <22>; | ||
698 | nvidia,pull-up-strength = <36>; | ||
699 | nvidia,slew-rate-rising = <0>; | ||
700 | nvidia,slew-rate-falling = <0>; | ||
701 | }; | ||
702 | drive_gma { | ||
703 | nvidia,pins = "drive_gma"; | ||
704 | nvidia,high-speed-mode = <1>; | ||
705 | nvidia,schmitt = <0>; | ||
706 | nvidia,low-power-mode = <3>; | ||
707 | nvidia,pull-down-strength = <2>; | ||
708 | nvidia,pull-up-strength = <1>; | ||
709 | nvidia,slew-rate-rising = <0>; | ||
710 | nvidia,slew-rate-falling = <0>; | ||
711 | nvidia,drive-type = <1>; | ||
712 | }; | ||
713 | }; | ||
714 | }; | ||
715 | |||
13 | serial@70006300 { | 716 | serial@70006300 { |
14 | status = "okay"; | 717 | status = "okay"; |
15 | }; | 718 | }; |
16 | 719 | ||
720 | i2c@7000c000 { | ||
721 | status = "okay"; | ||
722 | clock-frequency = <100000>; | ||
723 | |||
724 | battery: smart-battery { | ||
725 | compatible = "ti,bq20z45", "sbs,sbs-battery"; | ||
726 | reg = <0xb>; | ||
727 | battery-name = "battery"; | ||
728 | sbs,i2c-retry-count = <2>; | ||
729 | sbs,poll-retry-count = <100>; | ||
730 | }; | ||
731 | }; | ||
732 | |||
733 | i2c@7000d000 { | ||
734 | status = "okay"; | ||
735 | clock-frequency = <400000>; | ||
736 | |||
737 | tps51632 { | ||
738 | compatible = "ti,tps51632"; | ||
739 | reg = <0x43>; | ||
740 | regulator-name = "vdd-cpu"; | ||
741 | regulator-min-microvolt = <500000>; | ||
742 | regulator-max-microvolt = <1520000>; | ||
743 | regulator-boot-on; | ||
744 | regulator-always-on; | ||
745 | }; | ||
746 | |||
747 | tps65090 { | ||
748 | compatible = "ti,tps65090"; | ||
749 | reg = <0x48>; | ||
750 | interrupt-parent = <&gpio>; | ||
751 | interrupts = <72 0x04>; /* gpio PJ0 */ | ||
752 | |||
753 | vsys1-supply = <&vdd_ac_bat_reg>; | ||
754 | vsys2-supply = <&vdd_ac_bat_reg>; | ||
755 | vsys3-supply = <&vdd_ac_bat_reg>; | ||
756 | infet1-supply = <&vdd_ac_bat_reg>; | ||
757 | infet2-supply = <&vdd_ac_bat_reg>; | ||
758 | infet3-supply = <&tps65090_dcdc2_reg>; | ||
759 | infet4-supply = <&tps65090_dcdc2_reg>; | ||
760 | infet5-supply = <&tps65090_dcdc2_reg>; | ||
761 | infet6-supply = <&tps65090_dcdc2_reg>; | ||
762 | infet7-supply = <&tps65090_dcdc2_reg>; | ||
763 | vsys-l1-supply = <&vdd_ac_bat_reg>; | ||
764 | vsys-l2-supply = <&vdd_ac_bat_reg>; | ||
765 | |||
766 | regulators { | ||
767 | tps65090_dcdc1_reg: dcdc1 { | ||
768 | regulator-name = "vdd-sys-5v0"; | ||
769 | regulator-always-on; | ||
770 | regulator-boot-on; | ||
771 | }; | ||
772 | |||
773 | tps65090_dcdc2_reg: dcdc2 { | ||
774 | regulator-name = "vdd-sys-3v3"; | ||
775 | regulator-always-on; | ||
776 | regulator-boot-on; | ||
777 | }; | ||
778 | |||
779 | dcdc3 { | ||
780 | regulator-name = "vdd-ao"; | ||
781 | regulator-always-on; | ||
782 | regulator-boot-on; | ||
783 | }; | ||
784 | |||
785 | fet1 { | ||
786 | regulator-name = "vdd-lcd-bl"; | ||
787 | }; | ||
788 | |||
789 | fet3 { | ||
790 | regulator-name = "vdd-modem-3v3"; | ||
791 | }; | ||
792 | |||
793 | fet4 { | ||
794 | regulator-name = "avdd-lcd"; | ||
795 | }; | ||
796 | |||
797 | fet5 { | ||
798 | regulator-name = "vdd-lvds"; | ||
799 | }; | ||
800 | |||
801 | fet6 { | ||
802 | regulator-name = "vdd-sd-slot"; | ||
803 | regulator-always-on; | ||
804 | regulator-boot-on; | ||
805 | }; | ||
806 | |||
807 | fet7 { | ||
808 | regulator-name = "vdd-com-3v3"; | ||
809 | }; | ||
810 | |||
811 | ldo1 { | ||
812 | regulator-name = "vdd-sby-5v0"; | ||
813 | regulator-always-on; | ||
814 | regulator-boot-on; | ||
815 | }; | ||
816 | |||
817 | ldo2 { | ||
818 | regulator-name = "vdd-sby-3v3"; | ||
819 | regulator-always-on; | ||
820 | regulator-boot-on; | ||
821 | }; | ||
822 | }; | ||
823 | }; | ||
824 | }; | ||
825 | |||
17 | pmc { | 826 | pmc { |
18 | nvidia,invert-interrupt; | 827 | nvidia,invert-interrupt; |
19 | }; | 828 | }; |
20 | 829 | ||
830 | sdhci@78000400 { | ||
831 | cd-gpios = <&gpio 170 1>; /* gpio PV2 */ | ||
832 | bus-width = <4>; | ||
833 | status = "okay"; | ||
834 | }; | ||
835 | |||
836 | sdhci@78000600 { | ||
837 | bus-width = <8>; | ||
838 | status = "okay"; | ||
839 | non-removable; | ||
840 | }; | ||
841 | |||
21 | clocks { | 842 | clocks { |
22 | compatible = "simple-bus"; | 843 | compatible = "simple-bus"; |
23 | #address-cells = <1>; | 844 | #address-cells = <1>; |
@@ -30,4 +851,74 @@ | |||
30 | clock-frequency = <32768>; | 851 | clock-frequency = <32768>; |
31 | }; | 852 | }; |
32 | }; | 853 | }; |
854 | |||
855 | regulators { | ||
856 | compatible = "simple-bus"; | ||
857 | #address-cells = <1>; | ||
858 | #size-cells = <0>; | ||
859 | |||
860 | vdd_ac_bat_reg: regulator@0 { | ||
861 | compatible = "regulator-fixed"; | ||
862 | reg = <0>; | ||
863 | regulator-name = "vdd_ac_bat"; | ||
864 | regulator-min-microvolt = <5000000>; | ||
865 | regulator-max-microvolt = <5000000>; | ||
866 | regulator-always-on; | ||
867 | }; | ||
868 | |||
869 | dvdd_ts_reg: regulator@1 { | ||
870 | compatible = "regulator-fixed"; | ||
871 | reg = <1>; | ||
872 | regulator-name = "dvdd_ts"; | ||
873 | regulator-min-microvolt = <1800000>; | ||
874 | regulator-max-microvolt = <1800000>; | ||
875 | enable-active-high; | ||
876 | gpio = <&gpio 61 0>; /* GPIO PH5 */ | ||
877 | }; | ||
878 | |||
879 | lcd_bl_en_reg: regulator@2 { | ||
880 | compatible = "regulator-fixed"; | ||
881 | reg = <2>; | ||
882 | regulator-name = "lcd_bl_en"; | ||
883 | regulator-min-microvolt = <5000000>; | ||
884 | regulator-max-microvolt = <5000000>; | ||
885 | enable-active-high; | ||
886 | gpio = <&gpio 58 0>; /* GPIO PH2 */ | ||
887 | }; | ||
888 | |||
889 | usb1_vbus_reg: regulator@3 { | ||
890 | compatible = "regulator-fixed"; | ||
891 | reg = <3>; | ||
892 | regulator-name = "usb1_vbus"; | ||
893 | regulator-min-microvolt = <5000000>; | ||
894 | regulator-max-microvolt = <5000000>; | ||
895 | enable-active-high; | ||
896 | gpio = <&gpio 108 0>; /* GPIO PN4 */ | ||
897 | gpio-open-drain; | ||
898 | vin-supply = <&tps65090_dcdc1_reg>; | ||
899 | }; | ||
900 | |||
901 | usb3_vbus_reg: regulator@4 { | ||
902 | compatible = "regulator-fixed"; | ||
903 | reg = <4>; | ||
904 | regulator-name = "usb2_vbus"; | ||
905 | regulator-min-microvolt = <5000000>; | ||
906 | regulator-max-microvolt = <5000000>; | ||
907 | enable-active-high; | ||
908 | gpio = <&gpio 86 0>; /* GPIO PK6 */ | ||
909 | gpio-open-drain; | ||
910 | vin-supply = <&tps65090_dcdc1_reg>; | ||
911 | }; | ||
912 | |||
913 | vdd_hdmi_reg: regulator@5 { | ||
914 | compatible = "regulator-fixed"; | ||
915 | reg = <5>; | ||
916 | regulator-name = "vdd_hdmi_5v0"; | ||
917 | regulator-min-microvolt = <5000000>; | ||
918 | regulator-max-microvolt = <5000000>; | ||
919 | enable-active-high; | ||
920 | gpio = <&gpio 81 0>; /* GPIO PK1 */ | ||
921 | vin-supply = <&tps65090_dcdc1_reg>; | ||
922 | }; | ||
923 | }; | ||
33 | }; | 924 | }; |
diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi index c1110a9b2a91..629415ffd8dc 100644 --- a/arch/arm/boot/dts/tegra114.dtsi +++ b/arch/arm/boot/dts/tegra114.dtsi | |||
@@ -4,6 +4,13 @@ | |||
4 | compatible = "nvidia,tegra114"; | 4 | compatible = "nvidia,tegra114"; |
5 | interrupt-parent = <&gic>; | 5 | interrupt-parent = <&gic>; |
6 | 6 | ||
7 | aliases { | ||
8 | serial0 = &uarta; | ||
9 | serial1 = &uartb; | ||
10 | serial2 = &uartc; | ||
11 | serial3 = &uartd; | ||
12 | }; | ||
13 | |||
7 | gic: interrupt-controller { | 14 | gic: interrupt-controller { |
8 | compatible = "arm,cortex-a15-gic"; | 15 | compatible = "arm,cortex-a15-gic"; |
9 | #interrupt-cells = <3>; | 16 | #interrupt-cells = <3>; |
@@ -33,6 +40,44 @@ | |||
33 | #clock-cells = <1>; | 40 | #clock-cells = <1>; |
34 | }; | 41 | }; |
35 | 42 | ||
43 | apbdma: dma { | ||
44 | compatible = "nvidia,tegra114-apbdma"; | ||
45 | reg = <0x6000a000 0x1400>; | ||
46 | interrupts = <0 104 0x04 | ||
47 | 0 105 0x04 | ||
48 | 0 106 0x04 | ||
49 | 0 107 0x04 | ||
50 | 0 108 0x04 | ||
51 | 0 109 0x04 | ||
52 | 0 110 0x04 | ||
53 | 0 111 0x04 | ||
54 | 0 112 0x04 | ||
55 | 0 113 0x04 | ||
56 | 0 114 0x04 | ||
57 | 0 115 0x04 | ||
58 | 0 116 0x04 | ||
59 | 0 117 0x04 | ||
60 | 0 118 0x04 | ||
61 | 0 119 0x04 | ||
62 | 0 128 0x04 | ||
63 | 0 129 0x04 | ||
64 | 0 130 0x04 | ||
65 | 0 131 0x04 | ||
66 | 0 132 0x04 | ||
67 | 0 133 0x04 | ||
68 | 0 134 0x04 | ||
69 | 0 135 0x04 | ||
70 | 0 136 0x04 | ||
71 | 0 137 0x04 | ||
72 | 0 138 0x04 | ||
73 | 0 139 0x04 | ||
74 | 0 140 0x04 | ||
75 | 0 141 0x04 | ||
76 | 0 142 0x04 | ||
77 | 0 143 0x04>; | ||
78 | clocks = <&tegra_car 34>; | ||
79 | }; | ||
80 | |||
36 | ahb: ahb { | 81 | ahb: ahb { |
37 | compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb"; | 82 | compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb"; |
38 | reg = <0x6000c004 0x14c>; | 83 | reg = <0x6000c004 0x14c>; |
@@ -61,42 +106,189 @@ | |||
61 | 0x70003000 0x40c>; /* Mux registers */ | 106 | 0x70003000 0x40c>; /* Mux registers */ |
62 | }; | 107 | }; |
63 | 108 | ||
64 | serial@70006000 { | 109 | /* |
110 | * There are two serial driver i.e. 8250 based simple serial | ||
111 | * driver and APB DMA based serial driver for higher baudrate | ||
112 | * and performace. To enable the 8250 based driver, the compatible | ||
113 | * is "nvidia,tegra114-uart", "nvidia,tegra20-uart" and to enable | ||
114 | * the APB DMA based serial driver, the comptible is | ||
115 | * "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart". | ||
116 | */ | ||
117 | uarta: serial@70006000 { | ||
65 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; | 118 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; |
66 | reg = <0x70006000 0x40>; | 119 | reg = <0x70006000 0x40>; |
67 | reg-shift = <2>; | 120 | reg-shift = <2>; |
68 | interrupts = <0 36 0x04>; | 121 | interrupts = <0 36 0x04>; |
122 | nvidia,dma-request-selector = <&apbdma 8>; | ||
69 | status = "disabled"; | 123 | status = "disabled"; |
70 | clocks = <&tegra_car 6>; | 124 | clocks = <&tegra_car 6>; |
71 | }; | 125 | }; |
72 | 126 | ||
73 | serial@70006040 { | 127 | uartb: serial@70006040 { |
74 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; | 128 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; |
75 | reg = <0x70006040 0x40>; | 129 | reg = <0x70006040 0x40>; |
76 | reg-shift = <2>; | 130 | reg-shift = <2>; |
77 | interrupts = <0 37 0x04>; | 131 | interrupts = <0 37 0x04>; |
132 | nvidia,dma-request-selector = <&apbdma 9>; | ||
78 | status = "disabled"; | 133 | status = "disabled"; |
79 | clocks = <&tegra_car 192>; | 134 | clocks = <&tegra_car 192>; |
80 | }; | 135 | }; |
81 | 136 | ||
82 | serial@70006200 { | 137 | uartc: serial@70006200 { |
83 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; | 138 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; |
84 | reg = <0x70006200 0x100>; | 139 | reg = <0x70006200 0x100>; |
85 | reg-shift = <2>; | 140 | reg-shift = <2>; |
86 | interrupts = <0 46 0x04>; | 141 | interrupts = <0 46 0x04>; |
142 | nvidia,dma-request-selector = <&apbdma 10>; | ||
87 | status = "disabled"; | 143 | status = "disabled"; |
88 | clocks = <&tegra_car 55>; | 144 | clocks = <&tegra_car 55>; |
89 | }; | 145 | }; |
90 | 146 | ||
91 | serial@70006300 { | 147 | uartd: serial@70006300 { |
92 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; | 148 | compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart"; |
93 | reg = <0x70006300 0x100>; | 149 | reg = <0x70006300 0x100>; |
94 | reg-shift = <2>; | 150 | reg-shift = <2>; |
95 | interrupts = <0 90 0x04>; | 151 | interrupts = <0 90 0x04>; |
152 | nvidia,dma-request-selector = <&apbdma 19>; | ||
96 | status = "disabled"; | 153 | status = "disabled"; |
97 | clocks = <&tegra_car 65>; | 154 | clocks = <&tegra_car 65>; |
98 | }; | 155 | }; |
99 | 156 | ||
157 | pwm: pwm { | ||
158 | compatible = "nvidia,tegra114-pwm", "nvidia,tegra20-pwm"; | ||
159 | reg = <0x7000a000 0x100>; | ||
160 | #pwm-cells = <2>; | ||
161 | clocks = <&tegra_car 17>; | ||
162 | status = "disabled"; | ||
163 | }; | ||
164 | |||
165 | i2c@7000c000 { | ||
166 | compatible = "nvidia,tegra114-i2c"; | ||
167 | reg = <0x7000c000 0x100>; | ||
168 | interrupts = <0 38 0x04>; | ||
169 | #address-cells = <1>; | ||
170 | #size-cells = <0>; | ||
171 | clocks = <&tegra_car 12>; | ||
172 | clock-names = "div-clk"; | ||
173 | status = "disabled"; | ||
174 | }; | ||
175 | |||
176 | i2c@7000c400 { | ||
177 | compatible = "nvidia,tegra114-i2c"; | ||
178 | reg = <0x7000c400 0x100>; | ||
179 | interrupts = <0 84 0x04>; | ||
180 | #address-cells = <1>; | ||
181 | #size-cells = <0>; | ||
182 | clocks = <&tegra_car 54>; | ||
183 | clock-names = "div-clk"; | ||
184 | status = "disabled"; | ||
185 | }; | ||
186 | |||
187 | i2c@7000c500 { | ||
188 | compatible = "nvidia,tegra114-i2c"; | ||
189 | reg = <0x7000c500 0x100>; | ||
190 | interrupts = <0 92 0x04>; | ||
191 | #address-cells = <1>; | ||
192 | #size-cells = <0>; | ||
193 | clocks = <&tegra_car 67>; | ||
194 | clock-names = "div-clk"; | ||
195 | status = "disabled"; | ||
196 | }; | ||
197 | |||
198 | i2c@7000c700 { | ||
199 | compatible = "nvidia,tegra114-i2c"; | ||
200 | reg = <0x7000c700 0x100>; | ||
201 | interrupts = <0 120 0x04>; | ||
202 | #address-cells = <1>; | ||
203 | #size-cells = <0>; | ||
204 | clocks = <&tegra_car 103>; | ||
205 | clock-names = "div-clk"; | ||
206 | status = "disabled"; | ||
207 | }; | ||
208 | |||
209 | i2c@7000d000 { | ||
210 | compatible = "nvidia,tegra114-i2c"; | ||
211 | reg = <0x7000d000 0x100>; | ||
212 | interrupts = <0 53 0x04>; | ||
213 | #address-cells = <1>; | ||
214 | #size-cells = <0>; | ||
215 | clocks = <&tegra_car 47>; | ||
216 | clock-names = "div-clk"; | ||
217 | status = "disabled"; | ||
218 | }; | ||
219 | |||
220 | spi@7000d400 { | ||
221 | compatible = "nvidia,tegra114-spi"; | ||
222 | reg = <0x7000d400 0x200>; | ||
223 | interrupts = <0 59 0x04>; | ||
224 | nvidia,dma-request-selector = <&apbdma 15>; | ||
225 | #address-cells = <1>; | ||
226 | #size-cells = <0>; | ||
227 | clocks = <&tegra_car 41>; | ||
228 | clock-names = "spi"; | ||
229 | status = "disabled"; | ||
230 | }; | ||
231 | |||
232 | spi@7000d600 { | ||
233 | compatible = "nvidia,tegra114-spi"; | ||
234 | reg = <0x7000d600 0x200>; | ||
235 | interrupts = <0 82 0x04>; | ||
236 | nvidia,dma-request-selector = <&apbdma 16>; | ||
237 | #address-cells = <1>; | ||
238 | #size-cells = <0>; | ||
239 | clocks = <&tegra_car 44>; | ||
240 | clock-names = "spi"; | ||
241 | status = "disabled"; | ||
242 | }; | ||
243 | |||
244 | spi@7000d800 { | ||
245 | compatible = "nvidia,tegra114-spi"; | ||
246 | reg = <0x7000d800 0x200>; | ||
247 | interrupts = <0 83 0x04>; | ||
248 | nvidia,dma-request-selector = <&apbdma 17>; | ||
249 | #address-cells = <1>; | ||
250 | #size-cells = <0>; | ||
251 | clocks = <&tegra_car 46>; | ||
252 | clock-names = "spi"; | ||
253 | status = "disabled"; | ||
254 | }; | ||
255 | |||
256 | spi@7000da00 { | ||
257 | compatible = "nvidia,tegra114-spi"; | ||
258 | reg = <0x7000da00 0x200>; | ||
259 | interrupts = <0 93 0x04>; | ||
260 | nvidia,dma-request-selector = <&apbdma 18>; | ||
261 | #address-cells = <1>; | ||
262 | #size-cells = <0>; | ||
263 | clocks = <&tegra_car 68>; | ||
264 | clock-names = "spi"; | ||
265 | status = "disabled"; | ||
266 | }; | ||
267 | |||
268 | spi@7000dc00 { | ||
269 | compatible = "nvidia,tegra114-spi"; | ||
270 | reg = <0x7000dc00 0x200>; | ||
271 | interrupts = <0 94 0x04>; | ||
272 | nvidia,dma-request-selector = <&apbdma 27>; | ||
273 | #address-cells = <1>; | ||
274 | #size-cells = <0>; | ||
275 | clocks = <&tegra_car 104>; | ||
276 | clock-names = "spi"; | ||
277 | status = "disabled"; | ||
278 | }; | ||
279 | |||
280 | spi@7000de00 { | ||
281 | compatible = "nvidia,tegra114-spi"; | ||
282 | reg = <0x7000de00 0x200>; | ||
283 | interrupts = <0 79 0x04>; | ||
284 | nvidia,dma-request-selector = <&apbdma 28>; | ||
285 | #address-cells = <1>; | ||
286 | #size-cells = <0>; | ||
287 | clocks = <&tegra_car 105>; | ||
288 | clock-names = "spi"; | ||
289 | status = "disabled"; | ||
290 | }; | ||
291 | |||
100 | rtc { | 292 | rtc { |
101 | compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc"; | 293 | compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc"; |
102 | reg = <0x7000e000 0x100>; | 294 | reg = <0x7000e000 0x100>; |
@@ -104,6 +296,14 @@ | |||
104 | clocks = <&tegra_car 4>; | 296 | clocks = <&tegra_car 4>; |
105 | }; | 297 | }; |
106 | 298 | ||
299 | kbc { | ||
300 | compatible = "nvidia,tegra114-kbc"; | ||
301 | reg = <0x7000e200 0x100>; | ||
302 | interrupts = <0 85 0x04>; | ||
303 | clocks = <&tegra_car 36>; | ||
304 | status = "disabled"; | ||
305 | }; | ||
306 | |||
107 | pmc { | 307 | pmc { |
108 | compatible = "nvidia,tegra114-pmc"; | 308 | compatible = "nvidia,tegra114-pmc"; |
109 | reg = <0x7000e400 0x400>; | 309 | reg = <0x7000e400 0x400>; |
@@ -122,6 +322,38 @@ | |||
122 | nvidia,ahb = <&ahb>; | 322 | nvidia,ahb = <&ahb>; |
123 | }; | 323 | }; |
124 | 324 | ||
325 | sdhci@78000000 { | ||
326 | compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci"; | ||
327 | reg = <0x78000000 0x200>; | ||
328 | interrupts = <0 14 0x04>; | ||
329 | clocks = <&tegra_car 14>; | ||
330 | status = "disable"; | ||
331 | }; | ||
332 | |||
333 | sdhci@78000200 { | ||
334 | compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci"; | ||
335 | reg = <0x78000200 0x200>; | ||
336 | interrupts = <0 15 0x04>; | ||
337 | clocks = <&tegra_car 9>; | ||
338 | status = "disable"; | ||
339 | }; | ||
340 | |||
341 | sdhci@78000400 { | ||
342 | compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci"; | ||
343 | reg = <0x78000400 0x200>; | ||
344 | interrupts = <0 19 0x04>; | ||
345 | clocks = <&tegra_car 69>; | ||
346 | status = "disable"; | ||
347 | }; | ||
348 | |||
349 | sdhci@78000600 { | ||
350 | compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci"; | ||
351 | reg = <0x78000600 0x200>; | ||
352 | interrupts = <0 31 0x04>; | ||
353 | clocks = <&tegra_car 15>; | ||
354 | status = "disable"; | ||
355 | }; | ||
356 | |||
125 | cpus { | 357 | cpus { |
126 | #address-cells = <1>; | 358 | #address-cells = <1>; |
127 | #size-cells = <0>; | 359 | #size-cells = <0>; |
diff --git a/arch/arm/boot/dts/tegra20-colibri-512.dtsi b/arch/arm/boot/dts/tegra20-colibri-512.dtsi index 4e3afdef28a8..a573b94b7c93 100644 --- a/arch/arm/boot/dts/tegra20-colibri-512.dtsi +++ b/arch/arm/boot/dts/tegra20-colibri-512.dtsi | |||
@@ -361,6 +361,15 @@ | |||
361 | }; | 361 | }; |
362 | }; | 362 | }; |
363 | 363 | ||
364 | pmc { | ||
365 | nvidia,suspend-mode = <2>; | ||
366 | nvidia,cpu-pwr-good-time = <5000>; | ||
367 | nvidia,cpu-pwr-off-time = <5000>; | ||
368 | nvidia,core-pwr-good-time = <3845 3845>; | ||
369 | nvidia,core-pwr-off-time = <3875>; | ||
370 | nvidia,sys-clock-req-active-high; | ||
371 | }; | ||
372 | |||
364 | memory-controller@7000f400 { | 373 | memory-controller@7000f400 { |
365 | emc-table@83250 { | 374 | emc-table@83250 { |
366 | reg = <83250>; | 375 | reg = <83250>; |
@@ -473,6 +482,9 @@ | |||
473 | "Mic", "MIC1"; | 482 | "Mic", "MIC1"; |
474 | 483 | ||
475 | nvidia,ac97-controller = <&ac97>; | 484 | nvidia,ac97-controller = <&ac97>; |
485 | |||
486 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
487 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
476 | }; | 488 | }; |
477 | 489 | ||
478 | regulators { | 490 | regulators { |
diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index ae9d5a20834e..e7d5de4e00b9 100644 --- a/arch/arm/boot/dts/tegra20-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts | |||
@@ -416,6 +416,12 @@ | |||
416 | 416 | ||
417 | pmc { | 417 | pmc { |
418 | nvidia,invert-interrupt; | 418 | nvidia,invert-interrupt; |
419 | nvidia,suspend-mode = <2>; | ||
420 | nvidia,cpu-pwr-good-time = <5000>; | ||
421 | nvidia,cpu-pwr-off-time = <5000>; | ||
422 | nvidia,core-pwr-good-time = <3845 3845>; | ||
423 | nvidia,core-pwr-off-time = <3875>; | ||
424 | nvidia,sys-clock-req-active-high; | ||
419 | }; | 425 | }; |
420 | 426 | ||
421 | usb@c5000000 { | 427 | usb@c5000000 { |
@@ -464,6 +470,17 @@ | |||
464 | }; | 470 | }; |
465 | }; | 471 | }; |
466 | 472 | ||
473 | gpio-keys { | ||
474 | compatible = "gpio-keys"; | ||
475 | |||
476 | power { | ||
477 | label = "Power"; | ||
478 | gpios = <&gpio 170 1>; /* gpio PV2, active low */ | ||
479 | linux,code = <116>; /* KEY_POWER */ | ||
480 | gpio-key,wakeup; | ||
481 | }; | ||
482 | }; | ||
483 | |||
467 | kbc { | 484 | kbc { |
468 | status = "okay"; | 485 | status = "okay"; |
469 | nvidia,debounce-delay-ms = <2>; | 486 | nvidia,debounce-delay-ms = <2>; |
@@ -669,5 +686,8 @@ | |||
669 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 686 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
670 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ | 687 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /*gpio PX0 */ |
671 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ | 688 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ |
689 | |||
690 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
691 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
672 | }; | 692 | }; |
673 | }; | 693 | }; |
diff --git a/arch/arm/boot/dts/tegra20-medcom-wide.dts b/arch/arm/boot/dts/tegra20-medcom-wide.dts index a2d6d6541f83..ace23437da89 100644 --- a/arch/arm/boot/dts/tegra20-medcom-wide.dts +++ b/arch/arm/boot/dts/tegra20-medcom-wide.dts | |||
@@ -6,6 +6,10 @@ | |||
6 | model = "Avionic Design Medcom-Wide board"; | 6 | model = "Avionic Design Medcom-Wide board"; |
7 | compatible = "ad,medcom-wide", "ad,tamonten", "nvidia,tegra20"; | 7 | compatible = "ad,medcom-wide", "ad,tamonten", "nvidia,tegra20"; |
8 | 8 | ||
9 | pwm { | ||
10 | status = "okay"; | ||
11 | }; | ||
12 | |||
9 | i2c@7000c000 { | 13 | i2c@7000c000 { |
10 | wm8903: wm8903@1a { | 14 | wm8903: wm8903@1a { |
11 | compatible = "wlf,wm8903"; | 15 | compatible = "wlf,wm8903"; |
@@ -54,5 +58,8 @@ | |||
54 | 58 | ||
55 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | 59 | nvidia,spkr-en-gpios = <&wm8903 2 0>; |
56 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 60 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
61 | |||
62 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
63 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
57 | }; | 64 | }; |
58 | }; | 65 | }; |
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts index fd60940e4063..e3e0c9977df4 100644 --- a/arch/arm/boot/dts/tegra20-paz00.dts +++ b/arch/arm/boot/dts/tegra20-paz00.dts | |||
@@ -415,6 +415,12 @@ | |||
415 | 415 | ||
416 | pmc { | 416 | pmc { |
417 | nvidia,invert-interrupt; | 417 | nvidia,invert-interrupt; |
418 | nvidia,suspend-mode = <2>; | ||
419 | nvidia,cpu-pwr-good-time = <2000>; | ||
420 | nvidia,cpu-pwr-off-time = <0>; | ||
421 | nvidia,core-pwr-good-time = <3845 3845>; | ||
422 | nvidia,core-pwr-off-time = <0>; | ||
423 | nvidia,sys-clock-req-active-high; | ||
418 | }; | 424 | }; |
419 | 425 | ||
420 | usb@c5000000 { | 426 | usb@c5000000 { |
@@ -445,6 +451,7 @@ | |||
445 | sdhci@c8000600 { | 451 | sdhci@c8000600 { |
446 | status = "okay"; | 452 | status = "okay"; |
447 | bus-width = <8>; | 453 | bus-width = <8>; |
454 | non-removable; | ||
448 | }; | 455 | }; |
449 | 456 | ||
450 | clocks { | 457 | clocks { |
@@ -514,5 +521,8 @@ | |||
514 | nvidia,audio-codec = <&alc5632>; | 521 | nvidia,audio-codec = <&alc5632>; |
515 | nvidia,i2s-controller = <&tegra_i2s1>; | 522 | nvidia,i2s-controller = <&tegra_i2s1>; |
516 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 523 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
524 | |||
525 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
526 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
517 | }; | 527 | }; |
518 | }; | 528 | }; |
diff --git a/arch/arm/boot/dts/tegra20-plutux.dts b/arch/arm/boot/dts/tegra20-plutux.dts index 289480026fbf..1a17cc30bb9d 100644 --- a/arch/arm/boot/dts/tegra20-plutux.dts +++ b/arch/arm/boot/dts/tegra20-plutux.dts | |||
@@ -52,5 +52,8 @@ | |||
52 | 52 | ||
53 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | 53 | nvidia,spkr-en-gpios = <&wm8903 2 0>; |
54 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 54 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
55 | |||
56 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
57 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
55 | }; | 58 | }; |
56 | }; | 59 | }; |
diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts index 4ee700a33ca5..cee4c34010fe 100644 --- a/arch/arm/boot/dts/tegra20-seaboard.dts +++ b/arch/arm/boot/dts/tegra20-seaboard.dts | |||
@@ -517,6 +517,12 @@ | |||
517 | 517 | ||
518 | pmc { | 518 | pmc { |
519 | nvidia,invert-interrupt; | 519 | nvidia,invert-interrupt; |
520 | nvidia,suspend-mode = <2>; | ||
521 | nvidia,cpu-pwr-good-time = <5000>; | ||
522 | nvidia,cpu-pwr-off-time = <5000>; | ||
523 | nvidia,core-pwr-good-time = <3845 3845>; | ||
524 | nvidia,core-pwr-off-time = <3875>; | ||
525 | nvidia,sys-clock-req-active-high; | ||
520 | }; | 526 | }; |
521 | 527 | ||
522 | memory-controller@7000f400 { | 528 | memory-controller@7000f400 { |
@@ -580,6 +586,7 @@ | |||
580 | status = "okay"; | 586 | status = "okay"; |
581 | power-gpios = <&gpio 86 0>; /* gpio PK6 */ | 587 | power-gpios = <&gpio 86 0>; /* gpio PK6 */ |
582 | bus-width = <4>; | 588 | bus-width = <4>; |
589 | keep-power-in-suspend; | ||
583 | }; | 590 | }; |
584 | 591 | ||
585 | sdhci@c8000400 { | 592 | sdhci@c8000400 { |
@@ -593,6 +600,7 @@ | |||
593 | sdhci@c8000600 { | 600 | sdhci@c8000600 { |
594 | status = "okay"; | 601 | status = "okay"; |
595 | bus-width = <8>; | 602 | bus-width = <8>; |
603 | non-removable; | ||
596 | }; | 604 | }; |
597 | 605 | ||
598 | clocks { | 606 | clocks { |
@@ -821,5 +829,8 @@ | |||
821 | 829 | ||
822 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | 830 | nvidia,spkr-en-gpios = <&wm8903 2 0>; |
823 | nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */ | 831 | nvidia,hp-det-gpios = <&gpio 185 0>; /* gpio PX1 */ |
832 | |||
833 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
834 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
824 | }; | 835 | }; |
825 | }; | 836 | }; |
diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi index c19025725918..50b3ec16b93a 100644 --- a/arch/arm/boot/dts/tegra20-tamonten.dtsi +++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi | |||
@@ -458,6 +458,12 @@ | |||
458 | 458 | ||
459 | pmc { | 459 | pmc { |
460 | nvidia,invert-interrupt; | 460 | nvidia,invert-interrupt; |
461 | nvidia,suspend-mode = <2>; | ||
462 | nvidia,cpu-pwr-good-time = <5000>; | ||
463 | nvidia,cpu-pwr-off-time = <5000>; | ||
464 | nvidia,core-pwr-good-time = <3845 3845>; | ||
465 | nvidia,core-pwr-off-time = <3875>; | ||
466 | nvidia,sys-clock-req-active-high; | ||
461 | }; | 467 | }; |
462 | 468 | ||
463 | usb@c5008000 { | 469 | usb@c5008000 { |
diff --git a/arch/arm/boot/dts/tegra20-tec.dts b/arch/arm/boot/dts/tegra20-tec.dts index 402b21004bef..742f0b38d21d 100644 --- a/arch/arm/boot/dts/tegra20-tec.dts +++ b/arch/arm/boot/dts/tegra20-tec.dts | |||
@@ -52,5 +52,8 @@ | |||
52 | 52 | ||
53 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | 53 | nvidia,spkr-en-gpios = <&wm8903 2 0>; |
54 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 54 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
55 | |||
56 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
57 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
55 | }; | 58 | }; |
56 | }; | 59 | }; |
diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts index a9f3f06580f5..9cc78a15d739 100644 --- a/arch/arm/boot/dts/tegra20-trimslice.dts +++ b/arch/arm/boot/dts/tegra20-trimslice.dts | |||
@@ -300,6 +300,15 @@ | |||
300 | }; | 300 | }; |
301 | }; | 301 | }; |
302 | 302 | ||
303 | pmc { | ||
304 | nvidia,suspend-mode = <2>; | ||
305 | nvidia,cpu-pwr-good-time = <5000>; | ||
306 | nvidia,cpu-pwr-off-time = <5000>; | ||
307 | nvidia,core-pwr-good-time = <3845 3845>; | ||
308 | nvidia,core-pwr-off-time = <3875>; | ||
309 | nvidia,sys-clock-req-active-high; | ||
310 | }; | ||
311 | |||
303 | usb@c5000000 { | 312 | usb@c5000000 { |
304 | status = "okay"; | 313 | status = "okay"; |
305 | nvidia,vbus-gpio = <&gpio 170 0>; /* gpio PV2 */ | 314 | nvidia,vbus-gpio = <&gpio 170 0>; /* gpio PV2 */ |
@@ -343,6 +352,17 @@ | |||
343 | }; | 352 | }; |
344 | }; | 353 | }; |
345 | 354 | ||
355 | gpio-keys { | ||
356 | compatible = "gpio-keys"; | ||
357 | |||
358 | power { | ||
359 | label = "Power"; | ||
360 | gpios = <&gpio 190 1>; /* gpio PX6, active low */ | ||
361 | linux,code = <116>; /* KEY_POWER */ | ||
362 | gpio-key,wakeup; | ||
363 | }; | ||
364 | }; | ||
365 | |||
346 | poweroff { | 366 | poweroff { |
347 | compatible = "gpio-poweroff"; | 367 | compatible = "gpio-poweroff"; |
348 | gpios = <&gpio 191 1>; /* gpio PX7, active low */ | 368 | gpios = <&gpio 191 1>; /* gpio PX7, active low */ |
@@ -376,5 +396,8 @@ | |||
376 | compatible = "nvidia,tegra-audio-trimslice"; | 396 | compatible = "nvidia,tegra-audio-trimslice"; |
377 | nvidia,i2s-controller = <&tegra_i2s1>; | 397 | nvidia,i2s-controller = <&tegra_i2s1>; |
378 | nvidia,audio-codec = <&codec>; | 398 | nvidia,audio-codec = <&codec>; |
399 | |||
400 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
401 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
379 | }; | 402 | }; |
380 | }; | 403 | }; |
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts index f544806e9618..dd38f1f03834 100644 --- a/arch/arm/boot/dts/tegra20-ventana.dts +++ b/arch/arm/boot/dts/tegra20-ventana.dts | |||
@@ -493,6 +493,12 @@ | |||
493 | 493 | ||
494 | pmc { | 494 | pmc { |
495 | nvidia,invert-interrupt; | 495 | nvidia,invert-interrupt; |
496 | nvidia,suspend-mode = <2>; | ||
497 | nvidia,cpu-pwr-good-time = <2000>; | ||
498 | nvidia,cpu-pwr-off-time = <100>; | ||
499 | nvidia,core-pwr-good-time = <3845 3845>; | ||
500 | nvidia,core-pwr-off-time = <458>; | ||
501 | nvidia,sys-clock-req-active-high; | ||
496 | }; | 502 | }; |
497 | 503 | ||
498 | usb@c5000000 { | 504 | usb@c5000000 { |
@@ -516,6 +522,7 @@ | |||
516 | status = "okay"; | 522 | status = "okay"; |
517 | power-gpios = <&gpio 86 0>; /* gpio PK6 */ | 523 | power-gpios = <&gpio 86 0>; /* gpio PK6 */ |
518 | bus-width = <4>; | 524 | bus-width = <4>; |
525 | keep-power-in-suspend; | ||
519 | }; | 526 | }; |
520 | 527 | ||
521 | sdhci@c8000400 { | 528 | sdhci@c8000400 { |
@@ -529,6 +536,7 @@ | |||
529 | sdhci@c8000600 { | 536 | sdhci@c8000600 { |
530 | status = "okay"; | 537 | status = "okay"; |
531 | bus-width = <8>; | 538 | bus-width = <8>; |
539 | non-removable; | ||
532 | }; | 540 | }; |
533 | 541 | ||
534 | clocks { | 542 | clocks { |
@@ -544,6 +552,17 @@ | |||
544 | }; | 552 | }; |
545 | }; | 553 | }; |
546 | 554 | ||
555 | gpio-keys { | ||
556 | compatible = "gpio-keys"; | ||
557 | |||
558 | power { | ||
559 | label = "Power"; | ||
560 | gpios = <&gpio 170 1>; /* gpio PV2, active low */ | ||
561 | linux,code = <116>; /* KEY_POWER */ | ||
562 | gpio-key,wakeup; | ||
563 | }; | ||
564 | }; | ||
565 | |||
547 | regulators { | 566 | regulators { |
548 | compatible = "simple-bus"; | 567 | compatible = "simple-bus"; |
549 | #address-cells = <1>; | 568 | #address-cells = <1>; |
@@ -620,5 +639,8 @@ | |||
620 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 639 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
621 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /* gpio PX0 */ | 640 | nvidia,int-mic-en-gpios = <&gpio 184 0>; /* gpio PX0 */ |
622 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ | 641 | nvidia,ext-mic-en-gpios = <&gpio 185 0>; /* gpio PX1 */ |
642 | |||
643 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
644 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
623 | }; | 645 | }; |
624 | }; | 646 | }; |
diff --git a/arch/arm/boot/dts/tegra20-whistler.dts b/arch/arm/boot/dts/tegra20-whistler.dts index 258cf945f515..d2567f83aaff 100644 --- a/arch/arm/boot/dts/tegra20-whistler.dts +++ b/arch/arm/boot/dts/tegra20-whistler.dts | |||
@@ -496,6 +496,14 @@ | |||
496 | 496 | ||
497 | pmc { | 497 | pmc { |
498 | nvidia,invert-interrupt; | 498 | nvidia,invert-interrupt; |
499 | nvidia,suspend-mode = <2>; | ||
500 | nvidia,cpu-pwr-good-time = <2000>; | ||
501 | nvidia,cpu-pwr-off-time = <1000>; | ||
502 | nvidia,core-pwr-good-time = <0 3845>; | ||
503 | nvidia,core-pwr-off-time = <93727>; | ||
504 | nvidia,core-power-req-active-high; | ||
505 | nvidia,sys-clock-req-active-high; | ||
506 | nvidia,combined-power-req; | ||
499 | }; | 507 | }; |
500 | 508 | ||
501 | usb@c5000000 { | 509 | usb@c5000000 { |
@@ -518,6 +526,7 @@ | |||
518 | sdhci@c8000600 { | 526 | sdhci@c8000600 { |
519 | status = "okay"; | 527 | status = "okay"; |
520 | bus-width = <8>; | 528 | bus-width = <8>; |
529 | non-removable; | ||
521 | }; | 530 | }; |
522 | 531 | ||
523 | clocks { | 532 | clocks { |
@@ -539,6 +548,7 @@ | |||
539 | nvidia,repeat-delay-ms = <160>; | 548 | nvidia,repeat-delay-ms = <160>; |
540 | nvidia,kbc-row-pins = <0 1 2>; | 549 | nvidia,kbc-row-pins = <0 1 2>; |
541 | nvidia,kbc-col-pins = <16 17>; | 550 | nvidia,kbc-col-pins = <16 17>; |
551 | nvidia,wakeup-source; | ||
542 | linux,keymap = <0x00000074 /* KEY_POWER */ | 552 | linux,keymap = <0x00000074 /* KEY_POWER */ |
543 | 0x01000066 /* KEY_HOME */ | 553 | 0x01000066 /* KEY_HOME */ |
544 | 0x0101009E /* KEY_BACK */ | 554 | 0x0101009E /* KEY_BACK */ |
@@ -573,5 +583,8 @@ | |||
573 | 583 | ||
574 | nvidia,i2s-controller = <&tegra_i2s1>; | 584 | nvidia,i2s-controller = <&tegra_i2s1>; |
575 | nvidia,audio-codec = <&codec>; | 585 | nvidia,audio-codec = <&codec>; |
586 | |||
587 | clocks = <&tegra_car 112>, <&tegra_car 113>, <&tegra_car 94>; | ||
588 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
576 | }; | 589 | }; |
577 | }; | 590 | }; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index fc7febc2b386..56a91106041b 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
@@ -209,7 +209,7 @@ | |||
209 | compatible = "nvidia,tegra20-das"; | 209 | compatible = "nvidia,tegra20-das"; |
210 | reg = <0x70000c00 0x80>; | 210 | reg = <0x70000c00 0x80>; |
211 | }; | 211 | }; |
212 | 212 | ||
213 | tegra_ac97: ac97 { | 213 | tegra_ac97: ac97 { |
214 | compatible = "nvidia,tegra20-ac97"; | 214 | compatible = "nvidia,tegra20-ac97"; |
215 | reg = <0x70002000 0x200>; | 215 | reg = <0x70002000 0x200>; |
@@ -299,6 +299,7 @@ | |||
299 | reg = <0x7000a000 0x100>; | 299 | reg = <0x7000a000 0x100>; |
300 | #pwm-cells = <2>; | 300 | #pwm-cells = <2>; |
301 | clocks = <&tegra_car 17>; | 301 | clocks = <&tegra_car 17>; |
302 | status = "disabled"; | ||
302 | }; | 303 | }; |
303 | 304 | ||
304 | rtc { | 305 | rtc { |
@@ -442,31 +443,6 @@ | |||
442 | #size-cells = <0>; | 443 | #size-cells = <0>; |
443 | }; | 444 | }; |
444 | 445 | ||
445 | phy1: usb-phy@c5000400 { | ||
446 | compatible = "nvidia,tegra20-usb-phy"; | ||
447 | reg = <0xc5000400 0x3c00>; | ||
448 | phy_type = "utmi"; | ||
449 | nvidia,has-legacy-mode; | ||
450 | clocks = <&tegra_car 22>, <&tegra_car 127>; | ||
451 | clock-names = "phy", "pll_u"; | ||
452 | }; | ||
453 | |||
454 | phy2: usb-phy@c5004400 { | ||
455 | compatible = "nvidia,tegra20-usb-phy"; | ||
456 | reg = <0xc5004400 0x3c00>; | ||
457 | phy_type = "ulpi"; | ||
458 | clocks = <&tegra_car 94>, <&tegra_car 127>; | ||
459 | clock-names = "phy", "pll_u"; | ||
460 | }; | ||
461 | |||
462 | phy3: usb-phy@c5008400 { | ||
463 | compatible = "nvidia,tegra20-usb-phy"; | ||
464 | reg = <0xc5008400 0x3C00>; | ||
465 | phy_type = "utmi"; | ||
466 | clocks = <&tegra_car 22>, <&tegra_car 127>; | ||
467 | clock-names = "phy", "pll_u"; | ||
468 | }; | ||
469 | |||
470 | usb@c5000000 { | 446 | usb@c5000000 { |
471 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; | 447 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; |
472 | reg = <0xc5000000 0x4000>; | 448 | reg = <0xc5000000 0x4000>; |
@@ -479,6 +455,15 @@ | |||
479 | status = "disabled"; | 455 | status = "disabled"; |
480 | }; | 456 | }; |
481 | 457 | ||
458 | phy1: usb-phy@c5000400 { | ||
459 | compatible = "nvidia,tegra20-usb-phy"; | ||
460 | reg = <0xc5000400 0x3c00>; | ||
461 | phy_type = "utmi"; | ||
462 | nvidia,has-legacy-mode; | ||
463 | clocks = <&tegra_car 22>, <&tegra_car 127>; | ||
464 | clock-names = "phy", "pll_u"; | ||
465 | }; | ||
466 | |||
482 | usb@c5004000 { | 467 | usb@c5004000 { |
483 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; | 468 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; |
484 | reg = <0xc5004000 0x4000>; | 469 | reg = <0xc5004000 0x4000>; |
@@ -489,6 +474,14 @@ | |||
489 | status = "disabled"; | 474 | status = "disabled"; |
490 | }; | 475 | }; |
491 | 476 | ||
477 | phy2: usb-phy@c5004400 { | ||
478 | compatible = "nvidia,tegra20-usb-phy"; | ||
479 | reg = <0xc5004400 0x3c00>; | ||
480 | phy_type = "ulpi"; | ||
481 | clocks = <&tegra_car 93>, <&tegra_car 127>; | ||
482 | clock-names = "phy", "pll_u"; | ||
483 | }; | ||
484 | |||
492 | usb@c5008000 { | 485 | usb@c5008000 { |
493 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; | 486 | compatible = "nvidia,tegra20-ehci", "usb-ehci"; |
494 | reg = <0xc5008000 0x4000>; | 487 | reg = <0xc5008000 0x4000>; |
@@ -499,6 +492,14 @@ | |||
499 | status = "disabled"; | 492 | status = "disabled"; |
500 | }; | 493 | }; |
501 | 494 | ||
495 | phy3: usb-phy@c5008400 { | ||
496 | compatible = "nvidia,tegra20-usb-phy"; | ||
497 | reg = <0xc5008400 0x3c00>; | ||
498 | phy_type = "utmi"; | ||
499 | clocks = <&tegra_car 22>, <&tegra_car 127>; | ||
500 | clock-names = "phy", "pll_u"; | ||
501 | }; | ||
502 | |||
502 | sdhci@c8000000 { | 503 | sdhci@c8000000 { |
503 | compatible = "nvidia,tegra20-sdhci"; | 504 | compatible = "nvidia,tegra20-sdhci"; |
504 | reg = <0xc8000000 0x200>; | 505 | reg = <0xc8000000 0x200>; |
diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts index 6248b2445b32..b732f7c13a66 100644 --- a/arch/arm/boot/dts/tegra30-beaver.dts +++ b/arch/arm/boot/dts/tegra30-beaver.dts | |||
@@ -253,6 +253,13 @@ | |||
253 | pmc { | 253 | pmc { |
254 | status = "okay"; | 254 | status = "okay"; |
255 | nvidia,invert-interrupt; | 255 | nvidia,invert-interrupt; |
256 | nvidia,suspend-mode = <2>; | ||
257 | nvidia,cpu-pwr-good-time = <2000>; | ||
258 | nvidia,cpu-pwr-off-time = <200>; | ||
259 | nvidia,core-pwr-good-time = <3845 3845>; | ||
260 | nvidia,core-pwr-off-time = <0>; | ||
261 | nvidia,core-power-req-active-high; | ||
262 | nvidia,sys-clock-req-active-high; | ||
256 | }; | 263 | }; |
257 | 264 | ||
258 | sdhci@78000000 { | 265 | sdhci@78000000 { |
@@ -266,6 +273,7 @@ | |||
266 | sdhci@78000600 { | 273 | sdhci@78000600 { |
267 | status = "okay"; | 274 | status = "okay"; |
268 | bus-width = <8>; | 275 | bus-width = <8>; |
276 | non-removable; | ||
269 | }; | 277 | }; |
270 | 278 | ||
271 | clocks { | 279 | clocks { |
diff --git a/arch/arm/boot/dts/tegra30-cardhu-a02.dts b/arch/arm/boot/dts/tegra30-cardhu-a02.dts index adc88aa50eb6..e392bd2dab9b 100644 --- a/arch/arm/boot/dts/tegra30-cardhu-a02.dts +++ b/arch/arm/boot/dts/tegra30-cardhu-a02.dts | |||
@@ -88,6 +88,7 @@ | |||
88 | status = "okay"; | 88 | status = "okay"; |
89 | power-gpios = <&gpio 28 0>; /* gpio PD4 */ | 89 | power-gpios = <&gpio 28 0>; /* gpio PD4 */ |
90 | bus-width = <4>; | 90 | bus-width = <4>; |
91 | keep-power-in-suspend; | ||
91 | }; | 92 | }; |
92 | }; | 93 | }; |
93 | 94 | ||
diff --git a/arch/arm/boot/dts/tegra30-cardhu-a04.dts b/arch/arm/boot/dts/tegra30-cardhu-a04.dts index 08163e145d57..d0db6c7e774f 100644 --- a/arch/arm/boot/dts/tegra30-cardhu-a04.dts +++ b/arch/arm/boot/dts/tegra30-cardhu-a04.dts | |||
@@ -100,5 +100,6 @@ | |||
100 | status = "okay"; | 100 | status = "okay"; |
101 | power-gpios = <&gpio 27 0>; /* gpio PD3 */ | 101 | power-gpios = <&gpio 27 0>; /* gpio PD3 */ |
102 | bus-width = <4>; | 102 | bus-width = <4>; |
103 | keep-power-in-suspend; | ||
103 | }; | 104 | }; |
104 | }; | 105 | }; |
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index 65bf2b63174e..01b4c26fad96 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi | |||
@@ -307,6 +307,13 @@ | |||
307 | pmc { | 307 | pmc { |
308 | status = "okay"; | 308 | status = "okay"; |
309 | nvidia,invert-interrupt; | 309 | nvidia,invert-interrupt; |
310 | nvidia,suspend-mode = <2>; | ||
311 | nvidia,cpu-pwr-good-time = <2000>; | ||
312 | nvidia,cpu-pwr-off-time = <200>; | ||
313 | nvidia,core-pwr-good-time = <3845 3845>; | ||
314 | nvidia,core-pwr-off-time = <0>; | ||
315 | nvidia,core-power-req-active-high; | ||
316 | nvidia,sys-clock-req-active-high; | ||
310 | }; | 317 | }; |
311 | 318 | ||
312 | sdhci@78000000 { | 319 | sdhci@78000000 { |
@@ -320,6 +327,7 @@ | |||
320 | sdhci@78000600 { | 327 | sdhci@78000600 { |
321 | status = "okay"; | 328 | status = "okay"; |
322 | bus-width = <8>; | 329 | bus-width = <8>; |
330 | non-removable; | ||
323 | }; | 331 | }; |
324 | 332 | ||
325 | clocks { | 333 | clocks { |
@@ -509,5 +517,8 @@ | |||
509 | 517 | ||
510 | nvidia,spkr-en-gpios = <&wm8903 2 0>; | 518 | nvidia,spkr-en-gpios = <&wm8903 2 0>; |
511 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ | 519 | nvidia,hp-det-gpios = <&gpio 178 0>; /* gpio PW2 */ |
520 | |||
521 | clocks = <&tegra_car 184>, <&tegra_car 185>, <&tegra_car 120>; | ||
522 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
512 | }; | 523 | }; |
513 | }; | 524 | }; |
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index 9fe7a92b4c85..15ded605142a 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
@@ -286,6 +286,7 @@ | |||
286 | reg = <0x7000a000 0x100>; | 286 | reg = <0x7000a000 0x100>; |
287 | #pwm-cells = <2>; | 287 | #pwm-cells = <2>; |
288 | clocks = <&tegra_car 17>; | 288 | clocks = <&tegra_car 17>; |
289 | status = "disabled"; | ||
289 | }; | 290 | }; |
290 | 291 | ||
291 | rtc { | 292 | rtc { |
diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index ed0bc9546837..b3034da00a37 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi | |||
@@ -23,6 +23,12 @@ | |||
23 | compatible = "ti,twl4030-wdt"; | 23 | compatible = "ti,twl4030-wdt"; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | vcc: regulator-vdd1 { | ||
27 | compatible = "ti,twl4030-vdd1"; | ||
28 | regulator-min-microvolt = <600000>; | ||
29 | regulator-max-microvolt = <1450000>; | ||
30 | }; | ||
31 | |||
26 | vdac: regulator-vdac { | 32 | vdac: regulator-vdac { |
27 | compatible = "ti,twl4030-vdac"; | 33 | compatible = "ti,twl4030-vdac"; |
28 | regulator-min-microvolt = <1800000>; | 34 | regulator-min-microvolt = <1800000>; |
@@ -67,7 +73,7 @@ | |||
67 | #interrupt-cells = <1>; | 73 | #interrupt-cells = <1>; |
68 | }; | 74 | }; |
69 | 75 | ||
70 | twl4030-usb { | 76 | usb2_phy: twl4030-usb { |
71 | compatible = "ti,twl4030-usb"; | 77 | compatible = "ti,twl4030-usb"; |
72 | interrupts = <10>, <4>; | 78 | interrupts = <10>, <4>; |
73 | usb1v5-supply = <&vusb1v5>; | 79 | usb1v5-supply = <&vusb1v5>; |
@@ -75,4 +81,14 @@ | |||
75 | usb3v1-supply = <&vusb3v1>; | 81 | usb3v1-supply = <&vusb3v1>; |
76 | usb_mode = <1>; | 82 | usb_mode = <1>; |
77 | }; | 83 | }; |
84 | |||
85 | twl_pwm: pwm { | ||
86 | compatible = "ti,twl4030-pwm"; | ||
87 | #pwm-cells = <2>; | ||
88 | }; | ||
89 | |||
90 | twl_pwmled: pwmled { | ||
91 | compatible = "ti,twl4030-pwmled"; | ||
92 | #pwm-cells = <2>; | ||
93 | }; | ||
78 | }; | 94 | }; |
diff --git a/arch/arm/boot/dts/twl6030.dtsi b/arch/arm/boot/dts/twl6030.dtsi index 9996cfc5ee80..2e3bd3172b23 100644 --- a/arch/arm/boot/dts/twl6030.dtsi +++ b/arch/arm/boot/dts/twl6030.dtsi | |||
@@ -91,4 +91,16 @@ | |||
91 | compatible = "ti,twl6030-usb"; | 91 | compatible = "ti,twl6030-usb"; |
92 | interrupts = <4>, <10>; | 92 | interrupts = <4>, <10>; |
93 | }; | 93 | }; |
94 | |||
95 | twl_pwm: pwm { | ||
96 | /* provides two PWMs (id 0, 1 for PWM1 and PWM2) */ | ||
97 | compatible = "ti,twl6030-pwm"; | ||
98 | #pwm-cells = <2>; | ||
99 | }; | ||
100 | |||
101 | twl_pwmled: pwmled { | ||
102 | /* provides one PWM (id 0 for Charging indicator LED) */ | ||
103 | compatible = "ti,twl6030-pwmled"; | ||
104 | #pwm-cells = <2>; | ||
105 | }; | ||
94 | }; | 106 | }; |
diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c index b1c0a5958275..961aea8bbad5 100644 --- a/arch/arm/mach-davinci/da8xx-dt.c +++ b/arch/arm/mach-davinci/da8xx-dt.c | |||
@@ -41,6 +41,12 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = { | |||
41 | OF_DEV_AUXDATA("ti,davinci-i2c", 0x01c22000, "i2c_davinci.1", NULL), | 41 | OF_DEV_AUXDATA("ti,davinci-i2c", 0x01c22000, "i2c_davinci.1", NULL), |
42 | OF_DEV_AUXDATA("ti,davinci-wdt", 0x01c21000, "watchdog", NULL), | 42 | OF_DEV_AUXDATA("ti,davinci-wdt", 0x01c21000, "watchdog", NULL), |
43 | OF_DEV_AUXDATA("ti,da830-mmc", 0x01c40000, "da830-mmc.0", NULL), | 43 | OF_DEV_AUXDATA("ti,da830-mmc", 0x01c40000, "da830-mmc.0", NULL), |
44 | OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f00000, "ehrpwm", NULL), | ||
45 | OF_DEV_AUXDATA("ti,da850-ehrpwm", 0x01f02000, "ehrpwm", NULL), | ||
46 | OF_DEV_AUXDATA("ti,da850-ecap", 0x01f06000, "ecap", NULL), | ||
47 | OF_DEV_AUXDATA("ti,da850-ecap", 0x01f07000, "ecap", NULL), | ||
48 | OF_DEV_AUXDATA("ti,da850-ecap", 0x01f08000, "ecap", NULL), | ||
49 | OF_DEV_AUXDATA("ti,da830-spi", 0x01f0e000, "spi_davinci.1", NULL), | ||
44 | {} | 50 | {} |
45 | }; | 51 | }; |
46 | 52 | ||
diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index 46089fe24705..d126f26dbbf1 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c | |||
@@ -120,17 +120,6 @@ static struct map_desc exynos_iodesc[] __initdata = { | |||
120 | }, | 120 | }, |
121 | }; | 121 | }; |
122 | 122 | ||
123 | #ifdef CONFIG_ARCH_EXYNOS5 | ||
124 | static struct map_desc exynos5440_iodesc[] __initdata = { | ||
125 | { | ||
126 | .virtual = (unsigned long)S5P_VA_CHIPID, | ||
127 | .pfn = __phys_to_pfn(EXYNOS5440_PA_CHIPID), | ||
128 | .length = SZ_4K, | ||
129 | .type = MT_DEVICE, | ||
130 | }, | ||
131 | }; | ||
132 | #endif | ||
133 | |||
134 | static struct map_desc exynos4_iodesc[] __initdata = { | 123 | static struct map_desc exynos4_iodesc[] __initdata = { |
135 | { | 124 | { |
136 | .virtual = (unsigned long)S3C_VA_SYS, | 125 | .virtual = (unsigned long)S3C_VA_SYS, |
@@ -348,6 +337,31 @@ void __init exynos_init_late(void) | |||
348 | exynos_pm_late_initcall(); | 337 | exynos_pm_late_initcall(); |
349 | } | 338 | } |
350 | 339 | ||
340 | #ifdef CONFIG_OF | ||
341 | int __init exynos_fdt_map_chipid(unsigned long node, const char *uname, | ||
342 | int depth, void *data) | ||
343 | { | ||
344 | struct map_desc iodesc; | ||
345 | __be32 *reg; | ||
346 | unsigned long len; | ||
347 | |||
348 | if (!of_flat_dt_is_compatible(node, "samsung,exynos4210-chipid") && | ||
349 | !of_flat_dt_is_compatible(node, "samsung,exynos5440-clock")) | ||
350 | return 0; | ||
351 | |||
352 | reg = of_get_flat_dt_prop(node, "reg", &len); | ||
353 | if (reg == NULL || len != (sizeof(unsigned long) * 2)) | ||
354 | return 0; | ||
355 | |||
356 | iodesc.pfn = __phys_to_pfn(be32_to_cpu(reg[0])); | ||
357 | iodesc.length = be32_to_cpu(reg[1]) - 1; | ||
358 | iodesc.virtual = (unsigned long)S5P_VA_CHIPID; | ||
359 | iodesc.type = MT_DEVICE; | ||
360 | iotable_init(&iodesc, 1); | ||
361 | return 1; | ||
362 | } | ||
363 | #endif | ||
364 | |||
351 | /* | 365 | /* |
352 | * exynos_map_io | 366 | * exynos_map_io |
353 | * | 367 | * |
@@ -356,19 +370,12 @@ void __init exynos_init_late(void) | |||
356 | 370 | ||
357 | void __init exynos_init_io(struct map_desc *mach_desc, int size) | 371 | void __init exynos_init_io(struct map_desc *mach_desc, int size) |
358 | { | 372 | { |
359 | struct map_desc *iodesc = exynos_iodesc; | 373 | #ifdef CONFIG_OF |
360 | int iodesc_sz = ARRAY_SIZE(exynos_iodesc); | 374 | if (initial_boot_params) |
361 | #if defined(CONFIG_OF) && defined(CONFIG_ARCH_EXYNOS5) | 375 | of_scan_flat_dt(exynos_fdt_map_chipid, NULL); |
362 | unsigned long root = of_get_flat_dt_root(); | 376 | else |
363 | |||
364 | /* initialize the io descriptors we need for initialization */ | ||
365 | if (of_flat_dt_is_compatible(root, "samsung,exynos5440")) { | ||
366 | iodesc = exynos5440_iodesc; | ||
367 | iodesc_sz = ARRAY_SIZE(exynos5440_iodesc); | ||
368 | } | ||
369 | #endif | 377 | #endif |
370 | 378 | iotable_init(exynos_iodesc, ARRAY_SIZE(exynos_iodesc)); | |
371 | iotable_init(iodesc, iodesc_sz); | ||
372 | 379 | ||
373 | if (mach_desc) | 380 | if (mach_desc) |
374 | iotable_init(mach_desc, size); | 381 | iotable_init(mach_desc, size); |
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h index 99e0a79f3b1f..92b29bb583cb 100644 --- a/arch/arm/mach-exynos/include/mach/map.h +++ b/arch/arm/mach-exynos/include/mach/map.h | |||
@@ -56,7 +56,6 @@ | |||
56 | #define EXYNOS4_PA_ONENAND_DMA 0x0C600000 | 56 | #define EXYNOS4_PA_ONENAND_DMA 0x0C600000 |
57 | 57 | ||
58 | #define EXYNOS_PA_CHIPID 0x10000000 | 58 | #define EXYNOS_PA_CHIPID 0x10000000 |
59 | #define EXYNOS5440_PA_CHIPID 0x00160000 | ||
60 | 59 | ||
61 | #define EXYNOS4_PA_SYSCON 0x10010000 | 60 | #define EXYNOS4_PA_SYSCON 0x10010000 |
62 | #define EXYNOS5_PA_SYSCON 0x10050100 | 61 | #define EXYNOS5_PA_SYSCON 0x10050100 |
diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index b5c1bdd3dcdf..5b62b6489d4b 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/irqchip.h> | 22 | #include <linux/irqchip.h> |
23 | #include <linux/irqchip/mxs.h> | 23 | #include <linux/irqchip/mxs.h> |
24 | #include <linux/micrel_phy.h> | 24 | #include <linux/micrel_phy.h> |
25 | #include <linux/mxsfb.h> | ||
26 | #include <linux/of_address.h> | 25 | #include <linux/of_address.h> |
27 | #include <linux/of_platform.h> | 26 | #include <linux/of_platform.h> |
28 | #include <linux/phy.h> | 27 | #include <linux/phy.h> |
@@ -61,106 +60,6 @@ static inline void __mxs_togl(u32 mask, void __iomem *reg) | |||
61 | __raw_writel(mask, reg + MXS_TOG_ADDR); | 60 | __raw_writel(mask, reg + MXS_TOG_ADDR); |
62 | } | 61 | } |
63 | 62 | ||
64 | static struct fb_videomode mx23evk_video_modes[] = { | ||
65 | { | ||
66 | .name = "Samsung-LMS430HF02", | ||
67 | .refresh = 60, | ||
68 | .xres = 480, | ||
69 | .yres = 272, | ||
70 | .pixclock = 108096, /* picosecond (9.2 MHz) */ | ||
71 | .left_margin = 15, | ||
72 | .right_margin = 8, | ||
73 | .upper_margin = 12, | ||
74 | .lower_margin = 4, | ||
75 | .hsync_len = 1, | ||
76 | .vsync_len = 1, | ||
77 | }, | ||
78 | }; | ||
79 | |||
80 | static struct fb_videomode mx28evk_video_modes[] = { | ||
81 | { | ||
82 | .name = "Seiko-43WVF1G", | ||
83 | .refresh = 60, | ||
84 | .xres = 800, | ||
85 | .yres = 480, | ||
86 | .pixclock = 29851, /* picosecond (33.5 MHz) */ | ||
87 | .left_margin = 89, | ||
88 | .right_margin = 164, | ||
89 | .upper_margin = 23, | ||
90 | .lower_margin = 10, | ||
91 | .hsync_len = 10, | ||
92 | .vsync_len = 10, | ||
93 | }, | ||
94 | }; | ||
95 | |||
96 | static struct fb_videomode m28evk_video_modes[] = { | ||
97 | { | ||
98 | .name = "Ampire AM-800480R2TMQW-T01H", | ||
99 | .refresh = 60, | ||
100 | .xres = 800, | ||
101 | .yres = 480, | ||
102 | .pixclock = 30066, /* picosecond (33.26 MHz) */ | ||
103 | .left_margin = 0, | ||
104 | .right_margin = 256, | ||
105 | .upper_margin = 0, | ||
106 | .lower_margin = 45, | ||
107 | .hsync_len = 1, | ||
108 | .vsync_len = 1, | ||
109 | }, | ||
110 | }; | ||
111 | |||
112 | static struct fb_videomode apx4devkit_video_modes[] = { | ||
113 | { | ||
114 | .name = "HannStar PJ70112A", | ||
115 | .refresh = 60, | ||
116 | .xres = 800, | ||
117 | .yres = 480, | ||
118 | .pixclock = 33333, /* picosecond (30.00 MHz) */ | ||
119 | .left_margin = 88, | ||
120 | .right_margin = 40, | ||
121 | .upper_margin = 32, | ||
122 | .lower_margin = 13, | ||
123 | .hsync_len = 48, | ||
124 | .vsync_len = 3, | ||
125 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, | ||
126 | }, | ||
127 | }; | ||
128 | |||
129 | static struct fb_videomode apf28dev_video_modes[] = { | ||
130 | { | ||
131 | .name = "LW700", | ||
132 | .refresh = 60, | ||
133 | .xres = 800, | ||
134 | .yres = 480, | ||
135 | .pixclock = 30303, /* picosecond */ | ||
136 | .left_margin = 96, | ||
137 | .right_margin = 96, /* at least 3 & 1 */ | ||
138 | .upper_margin = 0x14, | ||
139 | .lower_margin = 0x15, | ||
140 | .hsync_len = 64, | ||
141 | .vsync_len = 4, | ||
142 | .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, | ||
143 | }, | ||
144 | }; | ||
145 | |||
146 | static struct fb_videomode cfa10049_video_modes[] = { | ||
147 | { | ||
148 | .name = "Himax HX8357-B", | ||
149 | .refresh = 60, | ||
150 | .xres = 320, | ||
151 | .yres = 480, | ||
152 | .pixclock = 108506, /* picosecond (9.216 MHz) */ | ||
153 | .left_margin = 2, | ||
154 | .right_margin = 2, | ||
155 | .upper_margin = 2, | ||
156 | .lower_margin = 2, | ||
157 | .hsync_len = 15, | ||
158 | .vsync_len = 15, | ||
159 | }, | ||
160 | }; | ||
161 | |||
162 | static struct mxsfb_platform_data mxsfb_pdata __initdata; | ||
163 | |||
164 | /* | 63 | /* |
165 | * MX28EVK_FLEXCAN_SWITCH is shared between both flexcan controllers | 64 | * MX28EVK_FLEXCAN_SWITCH is shared between both flexcan controllers |
166 | */ | 65 | */ |
@@ -191,8 +90,6 @@ static void mx28evk_flexcan1_switch(int enable) | |||
191 | static struct flexcan_platform_data flexcan_pdata[2]; | 90 | static struct flexcan_platform_data flexcan_pdata[2]; |
192 | 91 | ||
193 | static struct of_dev_auxdata mxs_auxdata_lookup[] __initdata = { | 92 | static struct of_dev_auxdata mxs_auxdata_lookup[] __initdata = { |
194 | OF_DEV_AUXDATA("fsl,imx23-lcdif", 0x80030000, NULL, &mxsfb_pdata), | ||
195 | OF_DEV_AUXDATA("fsl,imx28-lcdif", 0x80030000, NULL, &mxsfb_pdata), | ||
196 | OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80032000, NULL, &flexcan_pdata[0]), | 93 | OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80032000, NULL, &flexcan_pdata[0]), |
197 | OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80034000, NULL, &flexcan_pdata[1]), | 94 | OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80034000, NULL, &flexcan_pdata[1]), |
198 | { /* sentinel */ } | 95 | { /* sentinel */ } |
@@ -342,16 +239,6 @@ static void __init update_fec_mac_prop(enum mac_oui oui) | |||
342 | } | 239 | } |
343 | } | 240 | } |
344 | 241 | ||
345 | static void __init imx23_evk_init(void) | ||
346 | { | ||
347 | mxsfb_pdata.mode_list = mx23evk_video_modes; | ||
348 | mxsfb_pdata.mode_count = ARRAY_SIZE(mx23evk_video_modes); | ||
349 | mxsfb_pdata.default_bpp = 32; | ||
350 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; | ||
351 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
352 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
353 | } | ||
354 | |||
355 | static inline void enable_clk_enet_out(void) | 242 | static inline void enable_clk_enet_out(void) |
356 | { | 243 | { |
357 | struct clk *clk = clk_get_sys("enet_out", NULL); | 244 | struct clk *clk = clk_get_sys("enet_out", NULL); |
@@ -362,16 +249,8 @@ static inline void enable_clk_enet_out(void) | |||
362 | 249 | ||
363 | static void __init imx28_evk_init(void) | 250 | static void __init imx28_evk_init(void) |
364 | { | 251 | { |
365 | enable_clk_enet_out(); | ||
366 | update_fec_mac_prop(OUI_FSL); | 252 | update_fec_mac_prop(OUI_FSL); |
367 | 253 | ||
368 | mxsfb_pdata.mode_list = mx28evk_video_modes; | ||
369 | mxsfb_pdata.mode_count = ARRAY_SIZE(mx28evk_video_modes); | ||
370 | mxsfb_pdata.default_bpp = 32; | ||
371 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; | ||
372 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
373 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
374 | |||
375 | mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); | 254 | mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); |
376 | } | 255 | } |
377 | 256 | ||
@@ -384,20 +263,6 @@ static void __init imx28_evk_post_init(void) | |||
384 | } | 263 | } |
385 | } | 264 | } |
386 | 265 | ||
387 | static void __init m28evk_init(void) | ||
388 | { | ||
389 | mxsfb_pdata.mode_list = m28evk_video_modes; | ||
390 | mxsfb_pdata.mode_count = ARRAY_SIZE(m28evk_video_modes); | ||
391 | mxsfb_pdata.default_bpp = 16; | ||
392 | mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; | ||
393 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; | ||
394 | } | ||
395 | |||
396 | static void __init sc_sps1_init(void) | ||
397 | { | ||
398 | enable_clk_enet_out(); | ||
399 | } | ||
400 | |||
401 | static int apx4devkit_phy_fixup(struct phy_device *phy) | 266 | static int apx4devkit_phy_fixup(struct phy_device *phy) |
402 | { | 267 | { |
403 | phy->dev_flags |= MICREL_PHY_50MHZ_CLK; | 268 | phy->dev_flags |= MICREL_PHY_50MHZ_CLK; |
@@ -411,13 +276,6 @@ static void __init apx4devkit_init(void) | |||
411 | if (IS_BUILTIN(CONFIG_PHYLIB)) | 276 | if (IS_BUILTIN(CONFIG_PHYLIB)) |
412 | phy_register_fixup_for_uid(PHY_ID_KSZ8051, MICREL_PHY_ID_MASK, | 277 | phy_register_fixup_for_uid(PHY_ID_KSZ8051, MICREL_PHY_ID_MASK, |
413 | apx4devkit_phy_fixup); | 278 | apx4devkit_phy_fixup); |
414 | |||
415 | mxsfb_pdata.mode_list = apx4devkit_video_modes; | ||
416 | mxsfb_pdata.mode_count = ARRAY_SIZE(apx4devkit_video_modes); | ||
417 | mxsfb_pdata.default_bpp = 32; | ||
418 | mxsfb_pdata.ld_intf_width = STMLCDIF_24BIT; | ||
419 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
420 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
421 | } | 279 | } |
422 | 280 | ||
423 | #define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) | 281 | #define ENET0_MDC__GPIO_4_0 MXS_GPIO_NR(4, 0) |
@@ -496,52 +354,24 @@ static void __init tx28_post_init(void) | |||
496 | 354 | ||
497 | static void __init cfa10049_init(void) | 355 | static void __init cfa10049_init(void) |
498 | { | 356 | { |
499 | enable_clk_enet_out(); | ||
500 | update_fec_mac_prop(OUI_CRYSTALFONTZ); | 357 | update_fec_mac_prop(OUI_CRYSTALFONTZ); |
501 | |||
502 | mxsfb_pdata.mode_list = cfa10049_video_modes; | ||
503 | mxsfb_pdata.mode_count = ARRAY_SIZE(cfa10049_video_modes); | ||
504 | mxsfb_pdata.default_bpp = 32; | ||
505 | mxsfb_pdata.ld_intf_width = STMLCDIF_18BIT; | ||
506 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; | ||
507 | } | 358 | } |
508 | 359 | ||
509 | static void __init cfa10037_init(void) | 360 | static void __init cfa10037_init(void) |
510 | { | 361 | { |
511 | enable_clk_enet_out(); | ||
512 | update_fec_mac_prop(OUI_CRYSTALFONTZ); | 362 | update_fec_mac_prop(OUI_CRYSTALFONTZ); |
513 | } | 363 | } |
514 | 364 | ||
515 | static void __init apf28_init(void) | ||
516 | { | ||
517 | enable_clk_enet_out(); | ||
518 | |||
519 | mxsfb_pdata.mode_list = apf28dev_video_modes; | ||
520 | mxsfb_pdata.mode_count = ARRAY_SIZE(apf28dev_video_modes); | ||
521 | mxsfb_pdata.default_bpp = 16; | ||
522 | mxsfb_pdata.ld_intf_width = STMLCDIF_16BIT; | ||
523 | mxsfb_pdata.sync = MXSFB_SYNC_DATA_ENABLE_HIGH_ACT | | ||
524 | MXSFB_SYNC_DOTCLK_FAILING_ACT; | ||
525 | } | ||
526 | |||
527 | static void __init mxs_machine_init(void) | 365 | static void __init mxs_machine_init(void) |
528 | { | 366 | { |
529 | if (of_machine_is_compatible("fsl,imx28-evk")) | 367 | if (of_machine_is_compatible("fsl,imx28-evk")) |
530 | imx28_evk_init(); | 368 | imx28_evk_init(); |
531 | else if (of_machine_is_compatible("fsl,imx23-evk")) | ||
532 | imx23_evk_init(); | ||
533 | else if (of_machine_is_compatible("denx,m28evk")) | ||
534 | m28evk_init(); | ||
535 | else if (of_machine_is_compatible("bluegiga,apx4devkit")) | 369 | else if (of_machine_is_compatible("bluegiga,apx4devkit")) |
536 | apx4devkit_init(); | 370 | apx4devkit_init(); |
537 | else if (of_machine_is_compatible("crystalfontz,cfa10037")) | 371 | else if (of_machine_is_compatible("crystalfontz,cfa10037")) |
538 | cfa10037_init(); | 372 | cfa10037_init(); |
539 | else if (of_machine_is_compatible("crystalfontz,cfa10049")) | 373 | else if (of_machine_is_compatible("crystalfontz,cfa10049")) |
540 | cfa10049_init(); | 374 | cfa10049_init(); |
541 | else if (of_machine_is_compatible("armadeus,imx28-apf28")) | ||
542 | apf28_init(); | ||
543 | else if (of_machine_is_compatible("schulercontrol,imx28-sps1")) | ||
544 | sc_sps1_init(); | ||
545 | 375 | ||
546 | of_platform_populate(NULL, of_default_bus_match_table, | 376 | of_platform_populate(NULL, of_default_bus_match_table, |
547 | mxs_auxdata_lookup, NULL); | 377 | mxs_auxdata_lookup, NULL); |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 78813b397209..88aa6b1835c3 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -110,6 +110,7 @@ MACHINE_END | |||
110 | 110 | ||
111 | static const char *omap3_gp_boards_compat[] __initdata = { | 111 | static const char *omap3_gp_boards_compat[] __initdata = { |
112 | "ti,omap3-beagle", | 112 | "ti,omap3-beagle", |
113 | "timll,omap3-devkit8000", | ||
113 | NULL, | 114 | NULL, |
114 | }; | 115 | }; |
115 | 116 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 93f213b6a784..d25a95fe9921 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -139,6 +139,8 @@ | |||
139 | #include <linux/slab.h> | 139 | #include <linux/slab.h> |
140 | #include <linux/bootmem.h> | 140 | #include <linux/bootmem.h> |
141 | #include <linux/cpu.h> | 141 | #include <linux/cpu.h> |
142 | #include <linux/of.h> | ||
143 | #include <linux/of_address.h> | ||
142 | 144 | ||
143 | #include <asm/system_misc.h> | 145 | #include <asm/system_misc.h> |
144 | 146 | ||
@@ -2350,6 +2352,34 @@ static int _shutdown(struct omap_hwmod *oh) | |||
2350 | } | 2352 | } |
2351 | 2353 | ||
2352 | /** | 2354 | /** |
2355 | * of_dev_hwmod_lookup - look up needed hwmod from dt blob | ||
2356 | * @np: struct device_node * | ||
2357 | * @oh: struct omap_hwmod * | ||
2358 | * | ||
2359 | * Parse the dt blob and find out needed hwmod. Recursive function is | ||
2360 | * implemented to take care hierarchical dt blob parsing. | ||
2361 | * Return: The device node on success or NULL on failure. | ||
2362 | */ | ||
2363 | static struct device_node *of_dev_hwmod_lookup(struct device_node *np, | ||
2364 | struct omap_hwmod *oh) | ||
2365 | { | ||
2366 | struct device_node *np0 = NULL, *np1 = NULL; | ||
2367 | const char *p; | ||
2368 | |||
2369 | for_each_child_of_node(np, np0) { | ||
2370 | if (of_find_property(np0, "ti,hwmods", NULL)) { | ||
2371 | p = of_get_property(np0, "ti,hwmods", NULL); | ||
2372 | if (!strcmp(p, oh->name)) | ||
2373 | return np0; | ||
2374 | np1 = of_dev_hwmod_lookup(np0, oh); | ||
2375 | if (np1) | ||
2376 | return np1; | ||
2377 | } | ||
2378 | } | ||
2379 | return NULL; | ||
2380 | } | ||
2381 | |||
2382 | /** | ||
2353 | * _init_mpu_rt_base - populate the virtual address for a hwmod | 2383 | * _init_mpu_rt_base - populate the virtual address for a hwmod |
2354 | * @oh: struct omap_hwmod * to locate the virtual address | 2384 | * @oh: struct omap_hwmod * to locate the virtual address |
2355 | * | 2385 | * |
@@ -2361,7 +2391,8 @@ static int _shutdown(struct omap_hwmod *oh) | |||
2361 | static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data) | 2391 | static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data) |
2362 | { | 2392 | { |
2363 | struct omap_hwmod_addr_space *mem; | 2393 | struct omap_hwmod_addr_space *mem; |
2364 | void __iomem *va_start; | 2394 | void __iomem *va_start = NULL; |
2395 | struct device_node *np; | ||
2365 | 2396 | ||
2366 | if (!oh) | 2397 | if (!oh) |
2367 | return; | 2398 | return; |
@@ -2375,10 +2406,18 @@ static void __init _init_mpu_rt_base(struct omap_hwmod *oh, void *data) | |||
2375 | if (!mem) { | 2406 | if (!mem) { |
2376 | pr_debug("omap_hwmod: %s: no MPU register target found\n", | 2407 | pr_debug("omap_hwmod: %s: no MPU register target found\n", |
2377 | oh->name); | 2408 | oh->name); |
2378 | return; | 2409 | |
2410 | /* Extract the IO space from device tree blob */ | ||
2411 | if (!of_have_populated_dt()) | ||
2412 | return; | ||
2413 | |||
2414 | np = of_dev_hwmod_lookup(of_find_node_by_name(NULL, "ocp"), oh); | ||
2415 | if (np) | ||
2416 | va_start = of_iomap(np, 0); | ||
2417 | } else { | ||
2418 | va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start); | ||
2379 | } | 2419 | } |
2380 | 2420 | ||
2381 | va_start = ioremap(mem->pa_start, mem->pa_end - mem->pa_start); | ||
2382 | if (!va_start) { | 2421 | if (!va_start) { |
2383 | pr_err("omap_hwmod: %s: Could not ioremap\n", oh->name); | 2422 | pr_err("omap_hwmod: %s: Could not ioremap\n", oh->name); |
2384 | return; | 2423 | return; |
@@ -2410,7 +2449,8 @@ static int __init _init(struct omap_hwmod *oh, void *data) | |||
2410 | if (oh->_state != _HWMOD_STATE_REGISTERED) | 2449 | if (oh->_state != _HWMOD_STATE_REGISTERED) |
2411 | return 0; | 2450 | return 0; |
2412 | 2451 | ||
2413 | _init_mpu_rt_base(oh, NULL); | 2452 | if (oh->class->sysc) |
2453 | _init_mpu_rt_base(oh, NULL); | ||
2414 | 2454 | ||
2415 | r = _init_clocks(oh, NULL); | 2455 | r = _init_clocks(oh, NULL); |
2416 | if (r < 0) { | 2456 | if (r < 0) { |
diff --git a/arch/arm/mach-omap2/pmu.c b/arch/arm/mach-omap2/pmu.c index 9debf822687c..9ace8eae7ee8 100644 --- a/arch/arm/mach-omap2/pmu.c +++ b/arch/arm/mach-omap2/pmu.c | |||
@@ -11,6 +11,8 @@ | |||
11 | * the Free Software Foundation; either version 2 of the License, or | 11 | * the Free Software Foundation; either version 2 of the License, or |
12 | * (at your option) any later version. | 12 | * (at your option) any later version. |
13 | */ | 13 | */ |
14 | #include <linux/of.h> | ||
15 | |||
14 | #include <asm/pmu.h> | 16 | #include <asm/pmu.h> |
15 | 17 | ||
16 | #include "soc.h" | 18 | #include "soc.h" |
@@ -63,6 +65,15 @@ static int __init omap_init_pmu(void) | |||
63 | unsigned oh_num; | 65 | unsigned oh_num; |
64 | char **oh_names; | 66 | char **oh_names; |
65 | 67 | ||
68 | /* XXX Remove this check when the CTI driver is available */ | ||
69 | if (cpu_is_omap443x()) { | ||
70 | pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n"); | ||
71 | return 0; | ||
72 | } | ||
73 | |||
74 | if (of_have_populated_dt()) | ||
75 | return 0; | ||
76 | |||
66 | /* | 77 | /* |
67 | * To create an ARM-PMU device the following HWMODs | 78 | * To create an ARM-PMU device the following HWMODs |
68 | * are required for the various OMAP2+ devices. | 79 | * are required for the various OMAP2+ devices. |
@@ -75,9 +86,6 @@ static int __init omap_init_pmu(void) | |||
75 | if (cpu_is_omap443x()) { | 86 | if (cpu_is_omap443x()) { |
76 | oh_num = ARRAY_SIZE(omap4430_pmu_oh_names); | 87 | oh_num = ARRAY_SIZE(omap4430_pmu_oh_names); |
77 | oh_names = omap4430_pmu_oh_names; | 88 | oh_names = omap4430_pmu_oh_names; |
78 | /* XXX Remove the next two lines when CTI driver available */ | ||
79 | pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n"); | ||
80 | return 0; | ||
81 | } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) { | 89 | } else if (cpu_is_omap34xx() || cpu_is_omap44xx()) { |
82 | oh_num = ARRAY_SIZE(omap3_pmu_oh_names); | 90 | oh_num = ARRAY_SIZE(omap3_pmu_oh_names); |
83 | oh_names = omap3_pmu_oh_names; | 91 | oh_names = omap3_pmu_oh_names; |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index f12aa6c15da4..02e1d56a3fe5 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -133,7 +133,12 @@ static struct property device_disabled = { | |||
133 | }; | 133 | }; |
134 | 134 | ||
135 | static struct of_device_id omap_timer_match[] __initdata = { | 135 | static struct of_device_id omap_timer_match[] __initdata = { |
136 | { .compatible = "ti,omap2-timer", }, | 136 | { .compatible = "ti,omap2420-timer", }, |
137 | { .compatible = "ti,omap3430-timer", }, | ||
138 | { .compatible = "ti,omap4430-timer", }, | ||
139 | { .compatible = "ti,omap5430-timer", }, | ||
140 | { .compatible = "ti,am335x-timer", }, | ||
141 | { .compatible = "ti,am335x-timer-1ms", }, | ||
137 | { } | 142 | { } |
138 | }; | 143 | }; |
139 | 144 | ||
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index e6dbc8dbe6a6..869254cebf84 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -52,6 +52,13 @@ static u32 omap_reserved_systimers; | |||
52 | static LIST_HEAD(omap_timer_list); | 52 | static LIST_HEAD(omap_timer_list); |
53 | static DEFINE_SPINLOCK(dm_timer_lock); | 53 | static DEFINE_SPINLOCK(dm_timer_lock); |
54 | 54 | ||
55 | enum { | ||
56 | REQUEST_ANY = 0, | ||
57 | REQUEST_BY_ID, | ||
58 | REQUEST_BY_CAP, | ||
59 | REQUEST_BY_NODE, | ||
60 | }; | ||
61 | |||
55 | /** | 62 | /** |
56 | * omap_dm_timer_read_reg - read timer registers in posted and non-posted mode | 63 | * omap_dm_timer_read_reg - read timer registers in posted and non-posted mode |
57 | * @timer: timer pointer over which read operation to perform | 64 | * @timer: timer pointer over which read operation to perform |
@@ -177,29 +184,82 @@ int omap_dm_timer_reserve_systimer(int id) | |||
177 | return 0; | 184 | return 0; |
178 | } | 185 | } |
179 | 186 | ||
180 | struct omap_dm_timer *omap_dm_timer_request(void) | 187 | static struct omap_dm_timer *_omap_dm_timer_request(int req_type, void *data) |
181 | { | 188 | { |
182 | struct omap_dm_timer *timer = NULL, *t; | 189 | struct omap_dm_timer *timer = NULL, *t; |
190 | struct device_node *np = NULL; | ||
183 | unsigned long flags; | 191 | unsigned long flags; |
184 | int ret = 0; | 192 | u32 cap = 0; |
193 | int id = 0; | ||
194 | |||
195 | switch (req_type) { | ||
196 | case REQUEST_BY_ID: | ||
197 | id = *(int *)data; | ||
198 | break; | ||
199 | case REQUEST_BY_CAP: | ||
200 | cap = *(u32 *)data; | ||
201 | break; | ||
202 | case REQUEST_BY_NODE: | ||
203 | np = (struct device_node *)data; | ||
204 | break; | ||
205 | default: | ||
206 | /* REQUEST_ANY */ | ||
207 | break; | ||
208 | } | ||
185 | 209 | ||
186 | spin_lock_irqsave(&dm_timer_lock, flags); | 210 | spin_lock_irqsave(&dm_timer_lock, flags); |
187 | list_for_each_entry(t, &omap_timer_list, node) { | 211 | list_for_each_entry(t, &omap_timer_list, node) { |
188 | if (t->reserved) | 212 | if (t->reserved) |
189 | continue; | 213 | continue; |
190 | 214 | ||
191 | timer = t; | 215 | switch (req_type) { |
192 | timer->reserved = 1; | 216 | case REQUEST_BY_ID: |
193 | break; | 217 | if (id == t->pdev->id) { |
218 | timer = t; | ||
219 | timer->reserved = 1; | ||
220 | goto found; | ||
221 | } | ||
222 | break; | ||
223 | case REQUEST_BY_CAP: | ||
224 | if (cap == (t->capability & cap)) { | ||
225 | /* | ||
226 | * If timer is not NULL, we have already found | ||
227 | * one timer but it was not an exact match | ||
228 | * because it had more capabilites that what | ||
229 | * was required. Therefore, unreserve the last | ||
230 | * timer found and see if this one is a better | ||
231 | * match. | ||
232 | */ | ||
233 | if (timer) | ||
234 | timer->reserved = 0; | ||
235 | timer = t; | ||
236 | timer->reserved = 1; | ||
237 | |||
238 | /* Exit loop early if we find an exact match */ | ||
239 | if (t->capability == cap) | ||
240 | goto found; | ||
241 | } | ||
242 | break; | ||
243 | case REQUEST_BY_NODE: | ||
244 | if (np == t->pdev->dev.of_node) { | ||
245 | timer = t; | ||
246 | timer->reserved = 1; | ||
247 | goto found; | ||
248 | } | ||
249 | break; | ||
250 | default: | ||
251 | /* REQUEST_ANY */ | ||
252 | timer = t; | ||
253 | timer->reserved = 1; | ||
254 | goto found; | ||
255 | } | ||
194 | } | 256 | } |
257 | found: | ||
195 | spin_unlock_irqrestore(&dm_timer_lock, flags); | 258 | spin_unlock_irqrestore(&dm_timer_lock, flags); |
196 | 259 | ||
197 | if (timer) { | 260 | if (timer && omap_dm_timer_prepare(timer)) { |
198 | ret = omap_dm_timer_prepare(timer); | 261 | timer->reserved = 0; |
199 | if (ret) { | 262 | timer = NULL; |
200 | timer->reserved = 0; | ||
201 | timer = NULL; | ||
202 | } | ||
203 | } | 263 | } |
204 | 264 | ||
205 | if (!timer) | 265 | if (!timer) |
@@ -207,43 +267,23 @@ struct omap_dm_timer *omap_dm_timer_request(void) | |||
207 | 267 | ||
208 | return timer; | 268 | return timer; |
209 | } | 269 | } |
270 | |||
271 | struct omap_dm_timer *omap_dm_timer_request(void) | ||
272 | { | ||
273 | return _omap_dm_timer_request(REQUEST_ANY, NULL); | ||
274 | } | ||
210 | EXPORT_SYMBOL_GPL(omap_dm_timer_request); | 275 | EXPORT_SYMBOL_GPL(omap_dm_timer_request); |
211 | 276 | ||
212 | struct omap_dm_timer *omap_dm_timer_request_specific(int id) | 277 | struct omap_dm_timer *omap_dm_timer_request_specific(int id) |
213 | { | 278 | { |
214 | struct omap_dm_timer *timer = NULL, *t; | ||
215 | unsigned long flags; | ||
216 | int ret = 0; | ||
217 | |||
218 | /* Requesting timer by ID is not supported when device tree is used */ | 279 | /* Requesting timer by ID is not supported when device tree is used */ |
219 | if (of_have_populated_dt()) { | 280 | if (of_have_populated_dt()) { |
220 | pr_warn("%s: Please use omap_dm_timer_request_by_cap()\n", | 281 | pr_warn("%s: Please use omap_dm_timer_request_by_cap/node()\n", |
221 | __func__); | 282 | __func__); |
222 | return NULL; | 283 | return NULL; |
223 | } | 284 | } |
224 | 285 | ||
225 | spin_lock_irqsave(&dm_timer_lock, flags); | 286 | return _omap_dm_timer_request(REQUEST_BY_ID, &id); |
226 | list_for_each_entry(t, &omap_timer_list, node) { | ||
227 | if (t->pdev->id == id && !t->reserved) { | ||
228 | timer = t; | ||
229 | timer->reserved = 1; | ||
230 | break; | ||
231 | } | ||
232 | } | ||
233 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
234 | |||
235 | if (timer) { | ||
236 | ret = omap_dm_timer_prepare(timer); | ||
237 | if (ret) { | ||
238 | timer->reserved = 0; | ||
239 | timer = NULL; | ||
240 | } | ||
241 | } | ||
242 | |||
243 | if (!timer) | ||
244 | pr_debug("%s: timer%d request failed!\n", __func__, id); | ||
245 | |||
246 | return timer; | ||
247 | } | 287 | } |
248 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific); | 288 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific); |
249 | 289 | ||
@@ -258,46 +298,25 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_request_specific); | |||
258 | */ | 298 | */ |
259 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap) | 299 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap) |
260 | { | 300 | { |
261 | struct omap_dm_timer *timer = NULL, *t; | 301 | return _omap_dm_timer_request(REQUEST_BY_CAP, &cap); |
262 | unsigned long flags; | 302 | } |
303 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap); | ||
263 | 304 | ||
264 | if (!cap) | 305 | /** |
306 | * omap_dm_timer_request_by_node - Request a timer by device-tree node | ||
307 | * @np: Pointer to device-tree timer node | ||
308 | * | ||
309 | * Request a timer based upon a device node pointer. Returns pointer to | ||
310 | * timer handle on success and a NULL pointer on failure. | ||
311 | */ | ||
312 | struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np) | ||
313 | { | ||
314 | if (!np) | ||
265 | return NULL; | 315 | return NULL; |
266 | 316 | ||
267 | spin_lock_irqsave(&dm_timer_lock, flags); | 317 | return _omap_dm_timer_request(REQUEST_BY_NODE, np); |
268 | list_for_each_entry(t, &omap_timer_list, node) { | ||
269 | if ((!t->reserved) && ((t->capability & cap) == cap)) { | ||
270 | /* | ||
271 | * If timer is not NULL, we have already found one timer | ||
272 | * but it was not an exact match because it had more | ||
273 | * capabilites that what was required. Therefore, | ||
274 | * unreserve the last timer found and see if this one | ||
275 | * is a better match. | ||
276 | */ | ||
277 | if (timer) | ||
278 | timer->reserved = 0; | ||
279 | |||
280 | timer = t; | ||
281 | timer->reserved = 1; | ||
282 | |||
283 | /* Exit loop early if we find an exact match */ | ||
284 | if (t->capability == cap) | ||
285 | break; | ||
286 | } | ||
287 | } | ||
288 | spin_unlock_irqrestore(&dm_timer_lock, flags); | ||
289 | |||
290 | if (timer && omap_dm_timer_prepare(timer)) { | ||
291 | timer->reserved = 0; | ||
292 | timer = NULL; | ||
293 | } | ||
294 | |||
295 | if (!timer) | ||
296 | pr_debug("%s: timer request failed!\n", __func__); | ||
297 | |||
298 | return timer; | ||
299 | } | 318 | } |
300 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_cap); | 319 | EXPORT_SYMBOL_GPL(omap_dm_timer_request_by_node); |
301 | 320 | ||
302 | int omap_dm_timer_free(struct omap_dm_timer *timer) | 321 | int omap_dm_timer_free(struct omap_dm_timer *timer) |
303 | { | 322 | { |
@@ -314,7 +333,21 @@ EXPORT_SYMBOL_GPL(omap_dm_timer_free); | |||
314 | 333 | ||
315 | void omap_dm_timer_enable(struct omap_dm_timer *timer) | 334 | void omap_dm_timer_enable(struct omap_dm_timer *timer) |
316 | { | 335 | { |
336 | int c; | ||
337 | |||
317 | pm_runtime_get_sync(&timer->pdev->dev); | 338 | pm_runtime_get_sync(&timer->pdev->dev); |
339 | |||
340 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
341 | if (timer->get_context_loss_count) { | ||
342 | c = timer->get_context_loss_count(&timer->pdev->dev); | ||
343 | if (c != timer->ctx_loss_count) { | ||
344 | omap_timer_restore_context(timer); | ||
345 | timer->ctx_loss_count = c; | ||
346 | } | ||
347 | } else { | ||
348 | omap_timer_restore_context(timer); | ||
349 | } | ||
350 | } | ||
318 | } | 351 | } |
319 | EXPORT_SYMBOL_GPL(omap_dm_timer_enable); | 352 | EXPORT_SYMBOL_GPL(omap_dm_timer_enable); |
320 | 353 | ||
@@ -409,13 +442,6 @@ int omap_dm_timer_start(struct omap_dm_timer *timer) | |||
409 | 442 | ||
410 | omap_dm_timer_enable(timer); | 443 | omap_dm_timer_enable(timer); |
411 | 444 | ||
412 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
413 | if (timer->get_context_loss_count && | ||
414 | timer->get_context_loss_count(&timer->pdev->dev) != | ||
415 | timer->ctx_loss_count) | ||
416 | omap_timer_restore_context(timer); | ||
417 | } | ||
418 | |||
419 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); | 445 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); |
420 | if (!(l & OMAP_TIMER_CTRL_ST)) { | 446 | if (!(l & OMAP_TIMER_CTRL_ST)) { |
421 | l |= OMAP_TIMER_CTRL_ST; | 447 | l |= OMAP_TIMER_CTRL_ST; |
@@ -440,12 +466,6 @@ int omap_dm_timer_stop(struct omap_dm_timer *timer) | |||
440 | 466 | ||
441 | __omap_dm_timer_stop(timer, timer->posted, rate); | 467 | __omap_dm_timer_stop(timer, timer->posted, rate); |
442 | 468 | ||
443 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
444 | if (timer->get_context_loss_count) | ||
445 | timer->ctx_loss_count = | ||
446 | timer->get_context_loss_count(&timer->pdev->dev); | ||
447 | } | ||
448 | |||
449 | /* | 469 | /* |
450 | * Since the register values are computed and written within | 470 | * Since the register values are computed and written within |
451 | * __omap_dm_timer_stop, we need to use read to retrieve the | 471 | * __omap_dm_timer_stop, we need to use read to retrieve the |
@@ -552,13 +572,6 @@ int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, | |||
552 | 572 | ||
553 | omap_dm_timer_enable(timer); | 573 | omap_dm_timer_enable(timer); |
554 | 574 | ||
555 | if (!(timer->capability & OMAP_TIMER_ALWON)) { | ||
556 | if (timer->get_context_loss_count && | ||
557 | timer->get_context_loss_count(&timer->pdev->dev) != | ||
558 | timer->ctx_loss_count) | ||
559 | omap_timer_restore_context(timer); | ||
560 | } | ||
561 | |||
562 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); | 575 | l = omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); |
563 | if (autoreload) { | 576 | if (autoreload) { |
564 | l |= OMAP_TIMER_CTRL_AR; | 577 | l |= OMAP_TIMER_CTRL_AR; |
@@ -769,6 +782,8 @@ int omap_dm_timers_active(void) | |||
769 | } | 782 | } |
770 | EXPORT_SYMBOL_GPL(omap_dm_timers_active); | 783 | EXPORT_SYMBOL_GPL(omap_dm_timers_active); |
771 | 784 | ||
785 | static const struct of_device_id omap_timer_match[]; | ||
786 | |||
772 | /** | 787 | /** |
773 | * omap_dm_timer_probe - probe function called for every registered device | 788 | * omap_dm_timer_probe - probe function called for every registered device |
774 | * @pdev: pointer to current timer platform device | 789 | * @pdev: pointer to current timer platform device |
@@ -782,7 +797,11 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
782 | struct omap_dm_timer *timer; | 797 | struct omap_dm_timer *timer; |
783 | struct resource *mem, *irq; | 798 | struct resource *mem, *irq; |
784 | struct device *dev = &pdev->dev; | 799 | struct device *dev = &pdev->dev; |
785 | struct dmtimer_platform_data *pdata = pdev->dev.platform_data; | 800 | const struct of_device_id *match; |
801 | const struct dmtimer_platform_data *pdata; | ||
802 | |||
803 | match = of_match_device(of_match_ptr(omap_timer_match), dev); | ||
804 | pdata = match ? match->data : dev->platform_data; | ||
786 | 805 | ||
787 | if (!pdata && !dev->of_node) { | 806 | if (!pdata && !dev->of_node) { |
788 | dev_err(dev, "%s: no platform data.\n", __func__); | 807 | dev_err(dev, "%s: no platform data.\n", __func__); |
@@ -823,12 +842,14 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
823 | timer->capability |= OMAP_TIMER_SECURE; | 842 | timer->capability |= OMAP_TIMER_SECURE; |
824 | } else { | 843 | } else { |
825 | timer->id = pdev->id; | 844 | timer->id = pdev->id; |
826 | timer->errata = pdata->timer_errata; | ||
827 | timer->capability = pdata->timer_capability; | 845 | timer->capability = pdata->timer_capability; |
828 | timer->reserved = omap_dm_timer_reserved_systimer(timer->id); | 846 | timer->reserved = omap_dm_timer_reserved_systimer(timer->id); |
829 | timer->get_context_loss_count = pdata->get_context_loss_count; | 847 | timer->get_context_loss_count = pdata->get_context_loss_count; |
830 | } | 848 | } |
831 | 849 | ||
850 | if (pdata) | ||
851 | timer->errata = pdata->timer_errata; | ||
852 | |||
832 | timer->irq = irq->start; | 853 | timer->irq = irq->start; |
833 | timer->pdev = pdev; | 854 | timer->pdev = pdev; |
834 | 855 | ||
@@ -881,8 +902,34 @@ static int omap_dm_timer_remove(struct platform_device *pdev) | |||
881 | return ret; | 902 | return ret; |
882 | } | 903 | } |
883 | 904 | ||
905 | static const struct dmtimer_platform_data omap3plus_pdata = { | ||
906 | .timer_errata = OMAP_TIMER_ERRATA_I103_I767, | ||
907 | }; | ||
908 | |||
884 | static const struct of_device_id omap_timer_match[] = { | 909 | static const struct of_device_id omap_timer_match[] = { |
885 | { .compatible = "ti,omap2-timer", }, | 910 | { |
911 | .compatible = "ti,omap2420-timer", | ||
912 | }, | ||
913 | { | ||
914 | .compatible = "ti,omap3430-timer", | ||
915 | .data = &omap3plus_pdata, | ||
916 | }, | ||
917 | { | ||
918 | .compatible = "ti,omap4430-timer", | ||
919 | .data = &omap3plus_pdata, | ||
920 | }, | ||
921 | { | ||
922 | .compatible = "ti,omap5430-timer", | ||
923 | .data = &omap3plus_pdata, | ||
924 | }, | ||
925 | { | ||
926 | .compatible = "ti,am335x-timer", | ||
927 | .data = &omap3plus_pdata, | ||
928 | }, | ||
929 | { | ||
930 | .compatible = "ti,am335x-timer-1ms", | ||
931 | .data = &omap3plus_pdata, | ||
932 | }, | ||
886 | {}, | 933 | {}, |
887 | }; | 934 | }; |
888 | MODULE_DEVICE_TABLE(of, omap_timer_match); | 935 | MODULE_DEVICE_TABLE(of, omap_timer_match); |
diff --git a/arch/arm/plat-omap/include/plat/dmtimer.h b/arch/arm/plat-omap/include/plat/dmtimer.h index a3fbc48c332e..fb92abb91628 100644 --- a/arch/arm/plat-omap/include/plat/dmtimer.h +++ b/arch/arm/plat-omap/include/plat/dmtimer.h | |||
@@ -128,6 +128,7 @@ int omap_dm_timer_reserve_systimer(int id); | |||
128 | struct omap_dm_timer *omap_dm_timer_request(void); | 128 | struct omap_dm_timer *omap_dm_timer_request(void); |
129 | struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id); | 129 | struct omap_dm_timer *omap_dm_timer_request_specific(int timer_id); |
130 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap); | 130 | struct omap_dm_timer *omap_dm_timer_request_by_cap(u32 cap); |
131 | struct omap_dm_timer *omap_dm_timer_request_by_node(struct device_node *np); | ||
131 | int omap_dm_timer_free(struct omap_dm_timer *timer); | 132 | int omap_dm_timer_free(struct omap_dm_timer *timer); |
132 | void omap_dm_timer_enable(struct omap_dm_timer *timer); | 133 | void omap_dm_timer_enable(struct omap_dm_timer *timer); |
133 | void omap_dm_timer_disable(struct omap_dm_timer *timer); | 134 | void omap_dm_timer_disable(struct omap_dm_timer *timer); |
diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index 8f6d30d37c45..b48a79c28845 100644 --- a/drivers/dma/mxs-dma.c +++ b/drivers/dma/mxs-dma.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/stmp_device.h> | 27 | #include <linux/stmp_device.h> |
28 | #include <linux/of.h> | 28 | #include <linux/of.h> |
29 | #include <linux/of_device.h> | 29 | #include <linux/of_device.h> |
30 | #include <linux/of_dma.h> | ||
30 | 31 | ||
31 | #include <asm/irq.h> | 32 | #include <asm/irq.h> |
32 | 33 | ||
@@ -139,6 +140,8 @@ struct mxs_dma_engine { | |||
139 | struct dma_device dma_device; | 140 | struct dma_device dma_device; |
140 | struct device_dma_parameters dma_parms; | 141 | struct device_dma_parameters dma_parms; |
141 | struct mxs_dma_chan mxs_chans[MXS_DMA_CHANNELS]; | 142 | struct mxs_dma_chan mxs_chans[MXS_DMA_CHANNELS]; |
143 | struct platform_device *pdev; | ||
144 | unsigned int nr_channels; | ||
142 | }; | 145 | }; |
143 | 146 | ||
144 | struct mxs_dma_type { | 147 | struct mxs_dma_type { |
@@ -350,10 +353,8 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan) | |||
350 | struct mxs_dma_engine *mxs_dma = mxs_chan->mxs_dma; | 353 | struct mxs_dma_engine *mxs_dma = mxs_chan->mxs_dma; |
351 | int ret; | 354 | int ret; |
352 | 355 | ||
353 | if (!data) | 356 | if (data) |
354 | return -EINVAL; | 357 | mxs_chan->chan_irq = data->chan_irq; |
355 | |||
356 | mxs_chan->chan_irq = data->chan_irq; | ||
357 | 358 | ||
358 | mxs_chan->ccw = dma_alloc_coherent(mxs_dma->dma_device.dev, | 359 | mxs_chan->ccw = dma_alloc_coherent(mxs_dma->dma_device.dev, |
359 | CCW_BLOCK_SIZE, &mxs_chan->ccw_phys, | 360 | CCW_BLOCK_SIZE, &mxs_chan->ccw_phys, |
@@ -665,8 +666,55 @@ err_out: | |||
665 | return ret; | 666 | return ret; |
666 | } | 667 | } |
667 | 668 | ||
669 | struct mxs_dma_filter_param { | ||
670 | struct device_node *of_node; | ||
671 | unsigned int chan_id; | ||
672 | }; | ||
673 | |||
674 | static bool mxs_dma_filter_fn(struct dma_chan *chan, void *fn_param) | ||
675 | { | ||
676 | struct mxs_dma_filter_param *param = fn_param; | ||
677 | struct mxs_dma_chan *mxs_chan = to_mxs_dma_chan(chan); | ||
678 | struct mxs_dma_engine *mxs_dma = mxs_chan->mxs_dma; | ||
679 | int chan_irq; | ||
680 | |||
681 | if (mxs_dma->dma_device.dev->of_node != param->of_node) | ||
682 | return false; | ||
683 | |||
684 | if (chan->chan_id != param->chan_id) | ||
685 | return false; | ||
686 | |||
687 | chan_irq = platform_get_irq(mxs_dma->pdev, param->chan_id); | ||
688 | if (chan_irq < 0) | ||
689 | return false; | ||
690 | |||
691 | mxs_chan->chan_irq = chan_irq; | ||
692 | |||
693 | return true; | ||
694 | } | ||
695 | |||
696 | struct dma_chan *mxs_dma_xlate(struct of_phandle_args *dma_spec, | ||
697 | struct of_dma *ofdma) | ||
698 | { | ||
699 | struct mxs_dma_engine *mxs_dma = ofdma->of_dma_data; | ||
700 | dma_cap_mask_t mask = mxs_dma->dma_device.cap_mask; | ||
701 | struct mxs_dma_filter_param param; | ||
702 | |||
703 | if (dma_spec->args_count != 1) | ||
704 | return NULL; | ||
705 | |||
706 | param.of_node = ofdma->of_node; | ||
707 | param.chan_id = dma_spec->args[0]; | ||
708 | |||
709 | if (param.chan_id >= mxs_dma->nr_channels) | ||
710 | return NULL; | ||
711 | |||
712 | return dma_request_channel(mask, mxs_dma_filter_fn, ¶m); | ||
713 | } | ||
714 | |||
668 | static int __init mxs_dma_probe(struct platform_device *pdev) | 715 | static int __init mxs_dma_probe(struct platform_device *pdev) |
669 | { | 716 | { |
717 | struct device_node *np = pdev->dev.of_node; | ||
670 | const struct platform_device_id *id_entry; | 718 | const struct platform_device_id *id_entry; |
671 | const struct of_device_id *of_id; | 719 | const struct of_device_id *of_id; |
672 | const struct mxs_dma_type *dma_type; | 720 | const struct mxs_dma_type *dma_type; |
@@ -674,10 +722,16 @@ static int __init mxs_dma_probe(struct platform_device *pdev) | |||
674 | struct resource *iores; | 722 | struct resource *iores; |
675 | int ret, i; | 723 | int ret, i; |
676 | 724 | ||
677 | mxs_dma = kzalloc(sizeof(*mxs_dma), GFP_KERNEL); | 725 | mxs_dma = devm_kzalloc(&pdev->dev, sizeof(*mxs_dma), GFP_KERNEL); |
678 | if (!mxs_dma) | 726 | if (!mxs_dma) |
679 | return -ENOMEM; | 727 | return -ENOMEM; |
680 | 728 | ||
729 | ret = of_property_read_u32(np, "dma-channels", &mxs_dma->nr_channels); | ||
730 | if (ret) { | ||
731 | dev_err(&pdev->dev, "failed to read dma-channels\n"); | ||
732 | return ret; | ||
733 | } | ||
734 | |||
681 | of_id = of_match_device(mxs_dma_dt_ids, &pdev->dev); | 735 | of_id = of_match_device(mxs_dma_dt_ids, &pdev->dev); |
682 | if (of_id) | 736 | if (of_id) |
683 | id_entry = of_id->data; | 737 | id_entry = of_id->data; |
@@ -689,24 +743,13 @@ static int __init mxs_dma_probe(struct platform_device *pdev) | |||
689 | mxs_dma->dev_id = dma_type->id; | 743 | mxs_dma->dev_id = dma_type->id; |
690 | 744 | ||
691 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 745 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
746 | mxs_dma->base = devm_ioremap_resource(&pdev->dev, iores); | ||
747 | if (IS_ERR(mxs_dma->base)) | ||
748 | return PTR_ERR(mxs_dma->base); | ||
692 | 749 | ||
693 | if (!request_mem_region(iores->start, resource_size(iores), | 750 | mxs_dma->clk = devm_clk_get(&pdev->dev, NULL); |
694 | pdev->name)) { | 751 | if (IS_ERR(mxs_dma->clk)) |
695 | ret = -EBUSY; | 752 | return PTR_ERR(mxs_dma->clk); |
696 | goto err_request_region; | ||
697 | } | ||
698 | |||
699 | mxs_dma->base = ioremap(iores->start, resource_size(iores)); | ||
700 | if (!mxs_dma->base) { | ||
701 | ret = -ENOMEM; | ||
702 | goto err_ioremap; | ||
703 | } | ||
704 | |||
705 | mxs_dma->clk = clk_get(&pdev->dev, NULL); | ||
706 | if (IS_ERR(mxs_dma->clk)) { | ||
707 | ret = PTR_ERR(mxs_dma->clk); | ||
708 | goto err_clk; | ||
709 | } | ||
710 | 753 | ||
711 | dma_cap_set(DMA_SLAVE, mxs_dma->dma_device.cap_mask); | 754 | dma_cap_set(DMA_SLAVE, mxs_dma->dma_device.cap_mask); |
712 | dma_cap_set(DMA_CYCLIC, mxs_dma->dma_device.cap_mask); | 755 | dma_cap_set(DMA_CYCLIC, mxs_dma->dma_device.cap_mask); |
@@ -732,8 +775,9 @@ static int __init mxs_dma_probe(struct platform_device *pdev) | |||
732 | 775 | ||
733 | ret = mxs_dma_init(mxs_dma); | 776 | ret = mxs_dma_init(mxs_dma); |
734 | if (ret) | 777 | if (ret) |
735 | goto err_init; | 778 | return ret; |
736 | 779 | ||
780 | mxs_dma->pdev = pdev; | ||
737 | mxs_dma->dma_device.dev = &pdev->dev; | 781 | mxs_dma->dma_device.dev = &pdev->dev; |
738 | 782 | ||
739 | /* mxs_dma gets 65535 bytes maximum sg size */ | 783 | /* mxs_dma gets 65535 bytes maximum sg size */ |
@@ -751,22 +795,19 @@ static int __init mxs_dma_probe(struct platform_device *pdev) | |||
751 | ret = dma_async_device_register(&mxs_dma->dma_device); | 795 | ret = dma_async_device_register(&mxs_dma->dma_device); |
752 | if (ret) { | 796 | if (ret) { |
753 | dev_err(mxs_dma->dma_device.dev, "unable to register\n"); | 797 | dev_err(mxs_dma->dma_device.dev, "unable to register\n"); |
754 | goto err_init; | 798 | return ret; |
799 | } | ||
800 | |||
801 | ret = of_dma_controller_register(np, mxs_dma_xlate, mxs_dma); | ||
802 | if (ret) { | ||
803 | dev_err(mxs_dma->dma_device.dev, | ||
804 | "failed to register controller\n"); | ||
805 | dma_async_device_unregister(&mxs_dma->dma_device); | ||
755 | } | 806 | } |
756 | 807 | ||
757 | dev_info(mxs_dma->dma_device.dev, "initialized\n"); | 808 | dev_info(mxs_dma->dma_device.dev, "initialized\n"); |
758 | 809 | ||
759 | return 0; | 810 | return 0; |
760 | |||
761 | err_init: | ||
762 | clk_put(mxs_dma->clk); | ||
763 | err_clk: | ||
764 | iounmap(mxs_dma->base); | ||
765 | err_ioremap: | ||
766 | release_mem_region(iores->start, resource_size(iores)); | ||
767 | err_request_region: | ||
768 | kfree(mxs_dma); | ||
769 | return ret; | ||
770 | } | 811 | } |
771 | 812 | ||
772 | static struct platform_driver mxs_dma_driver = { | 813 | static struct platform_driver mxs_dma_driver = { |
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c index c67d89fc6254..2039f230482d 100644 --- a/drivers/i2c/busses/i2c-mxs.c +++ b/drivers/i2c/busses/i2c-mxs.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <linux/of_i2c.h> | 31 | #include <linux/of_i2c.h> |
32 | #include <linux/dma-mapping.h> | 32 | #include <linux/dma-mapping.h> |
33 | #include <linux/dmaengine.h> | 33 | #include <linux/dmaengine.h> |
34 | #include <linux/fsl/mxs-dma.h> | ||
35 | 34 | ||
36 | #define DRIVER_NAME "mxs-i2c" | 35 | #define DRIVER_NAME "mxs-i2c" |
37 | 36 | ||
@@ -118,9 +117,7 @@ struct mxs_i2c_dev { | |||
118 | uint32_t timing1; | 117 | uint32_t timing1; |
119 | 118 | ||
120 | /* DMA support components */ | 119 | /* DMA support components */ |
121 | int dma_channel; | ||
122 | struct dma_chan *dmach; | 120 | struct dma_chan *dmach; |
123 | struct mxs_dma_data dma_data; | ||
124 | uint32_t pio_data[2]; | 121 | uint32_t pio_data[2]; |
125 | uint32_t addr_data; | 122 | uint32_t addr_data; |
126 | struct scatterlist sg_io[2]; | 123 | struct scatterlist sg_io[2]; |
@@ -581,21 +578,6 @@ static const struct i2c_algorithm mxs_i2c_algo = { | |||
581 | .functionality = mxs_i2c_func, | 578 | .functionality = mxs_i2c_func, |
582 | }; | 579 | }; |
583 | 580 | ||
584 | static bool mxs_i2c_dma_filter(struct dma_chan *chan, void *param) | ||
585 | { | ||
586 | struct mxs_i2c_dev *i2c = param; | ||
587 | |||
588 | if (!mxs_dma_is_apbx(chan)) | ||
589 | return false; | ||
590 | |||
591 | if (chan->chan_id != i2c->dma_channel) | ||
592 | return false; | ||
593 | |||
594 | chan->private = &i2c->dma_data; | ||
595 | |||
596 | return true; | ||
597 | } | ||
598 | |||
599 | static void mxs_i2c_derive_timing(struct mxs_i2c_dev *i2c, int speed) | 581 | static void mxs_i2c_derive_timing(struct mxs_i2c_dev *i2c, int speed) |
600 | { | 582 | { |
601 | /* The I2C block clock run at 24MHz */ | 583 | /* The I2C block clock run at 24MHz */ |
@@ -640,17 +622,6 @@ static int mxs_i2c_get_ofdata(struct mxs_i2c_dev *i2c) | |||
640 | struct device_node *node = dev->of_node; | 622 | struct device_node *node = dev->of_node; |
641 | int ret; | 623 | int ret; |
642 | 624 | ||
643 | /* | ||
644 | * TODO: This is a temporary solution and should be changed | ||
645 | * to use generic DMA binding later when the helpers get in. | ||
646 | */ | ||
647 | ret = of_property_read_u32(node, "fsl,i2c-dma-channel", | ||
648 | &i2c->dma_channel); | ||
649 | if (ret) { | ||
650 | dev_err(dev, "Failed to get DMA channel!\n"); | ||
651 | return -ENODEV; | ||
652 | } | ||
653 | |||
654 | ret = of_property_read_u32(node, "clock-frequency", &speed); | 625 | ret = of_property_read_u32(node, "clock-frequency", &speed); |
655 | if (ret) { | 626 | if (ret) { |
656 | dev_warn(dev, "No I2C speed selected, using 100kHz\n"); | 627 | dev_warn(dev, "No I2C speed selected, using 100kHz\n"); |
@@ -670,8 +641,7 @@ static int mxs_i2c_probe(struct platform_device *pdev) | |||
670 | struct pinctrl *pinctrl; | 641 | struct pinctrl *pinctrl; |
671 | struct resource *res; | 642 | struct resource *res; |
672 | resource_size_t res_size; | 643 | resource_size_t res_size; |
673 | int err, irq, dmairq; | 644 | int err, irq; |
674 | dma_cap_mask_t mask; | ||
675 | 645 | ||
676 | pinctrl = devm_pinctrl_get_select_default(dev); | 646 | pinctrl = devm_pinctrl_get_select_default(dev); |
677 | if (IS_ERR(pinctrl)) | 647 | if (IS_ERR(pinctrl)) |
@@ -683,9 +653,8 @@ static int mxs_i2c_probe(struct platform_device *pdev) | |||
683 | 653 | ||
684 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 654 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
685 | irq = platform_get_irq(pdev, 0); | 655 | irq = platform_get_irq(pdev, 0); |
686 | dmairq = platform_get_irq(pdev, 1); | ||
687 | 656 | ||
688 | if (!res || irq < 0 || dmairq < 0) | 657 | if (!res || irq < 0) |
689 | return -ENOENT; | 658 | return -ENOENT; |
690 | 659 | ||
691 | res_size = resource_size(res); | 660 | res_size = resource_size(res); |
@@ -711,10 +680,7 @@ static int mxs_i2c_probe(struct platform_device *pdev) | |||
711 | } | 680 | } |
712 | 681 | ||
713 | /* Setup the DMA */ | 682 | /* Setup the DMA */ |
714 | dma_cap_zero(mask); | 683 | i2c->dmach = dma_request_slave_channel(dev, "rx-tx"); |
715 | dma_cap_set(DMA_SLAVE, mask); | ||
716 | i2c->dma_data.chan_irq = dmairq; | ||
717 | i2c->dmach = dma_request_channel(mask, mxs_i2c_dma_filter, i2c); | ||
718 | if (!i2c->dmach) { | 684 | if (!i2c->dmach) { |
719 | dev_err(dev, "Failed to request dma\n"); | 685 | dev_err(dev, "Failed to request dma\n"); |
720 | return -ENODEV; | 686 | return -ENODEV; |
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c index 146a53bfab71..4278a1787d08 100644 --- a/drivers/mmc/host/mxs-mmc.c +++ b/drivers/mmc/host/mxs-mmc.c | |||
@@ -552,22 +552,6 @@ static const struct mmc_host_ops mxs_mmc_ops = { | |||
552 | .enable_sdio_irq = mxs_mmc_enable_sdio_irq, | 552 | .enable_sdio_irq = mxs_mmc_enable_sdio_irq, |
553 | }; | 553 | }; |
554 | 554 | ||
555 | static bool mxs_mmc_dma_filter(struct dma_chan *chan, void *param) | ||
556 | { | ||
557 | struct mxs_mmc_host *host = param; | ||
558 | struct mxs_ssp *ssp = &host->ssp; | ||
559 | |||
560 | if (!mxs_dma_is_apbh(chan)) | ||
561 | return false; | ||
562 | |||
563 | if (chan->chan_id != ssp->dma_channel) | ||
564 | return false; | ||
565 | |||
566 | chan->private = &ssp->dma_data; | ||
567 | |||
568 | return true; | ||
569 | } | ||
570 | |||
571 | static struct platform_device_id mxs_ssp_ids[] = { | 555 | static struct platform_device_id mxs_ssp_ids[] = { |
572 | { | 556 | { |
573 | .name = "imx23-mmc", | 557 | .name = "imx23-mmc", |
@@ -595,20 +579,17 @@ static int mxs_mmc_probe(struct platform_device *pdev) | |||
595 | struct device_node *np = pdev->dev.of_node; | 579 | struct device_node *np = pdev->dev.of_node; |
596 | struct mxs_mmc_host *host; | 580 | struct mxs_mmc_host *host; |
597 | struct mmc_host *mmc; | 581 | struct mmc_host *mmc; |
598 | struct resource *iores, *dmares; | 582 | struct resource *iores; |
599 | struct pinctrl *pinctrl; | 583 | struct pinctrl *pinctrl; |
600 | int ret = 0, irq_err, irq_dma; | 584 | int ret = 0, irq_err; |
601 | dma_cap_mask_t mask; | ||
602 | struct regulator *reg_vmmc; | 585 | struct regulator *reg_vmmc; |
603 | enum of_gpio_flags flags; | 586 | enum of_gpio_flags flags; |
604 | struct mxs_ssp *ssp; | 587 | struct mxs_ssp *ssp; |
605 | u32 bus_width = 0; | 588 | u32 bus_width = 0; |
606 | 589 | ||
607 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 590 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
608 | dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0); | ||
609 | irq_err = platform_get_irq(pdev, 0); | 591 | irq_err = platform_get_irq(pdev, 0); |
610 | irq_dma = platform_get_irq(pdev, 1); | 592 | if (!iores || irq_err < 0) |
611 | if (!iores || irq_err < 0 || irq_dma < 0) | ||
612 | return -EINVAL; | 593 | return -EINVAL; |
613 | 594 | ||
614 | mmc = mmc_alloc_host(sizeof(struct mxs_mmc_host), &pdev->dev); | 595 | mmc = mmc_alloc_host(sizeof(struct mxs_mmc_host), &pdev->dev); |
@@ -624,23 +605,7 @@ static int mxs_mmc_probe(struct platform_device *pdev) | |||
624 | goto out_mmc_free; | 605 | goto out_mmc_free; |
625 | } | 606 | } |
626 | 607 | ||
627 | if (np) { | 608 | ssp->devid = (enum mxs_ssp_id) of_id->data; |
628 | ssp->devid = (enum mxs_ssp_id) of_id->data; | ||
629 | /* | ||
630 | * TODO: This is a temporary solution and should be changed | ||
631 | * to use generic DMA binding later when the helpers get in. | ||
632 | */ | ||
633 | ret = of_property_read_u32(np, "fsl,ssp-dma-channel", | ||
634 | &ssp->dma_channel); | ||
635 | if (ret) { | ||
636 | dev_err(mmc_dev(host->mmc), | ||
637 | "failed to get dma channel\n"); | ||
638 | goto out_mmc_free; | ||
639 | } | ||
640 | } else { | ||
641 | ssp->devid = pdev->id_entry->driver_data; | ||
642 | ssp->dma_channel = dmares->start; | ||
643 | } | ||
644 | 609 | ||
645 | host->mmc = mmc; | 610 | host->mmc = mmc; |
646 | host->sdio_irq_en = 0; | 611 | host->sdio_irq_en = 0; |
@@ -670,10 +635,7 @@ static int mxs_mmc_probe(struct platform_device *pdev) | |||
670 | 635 | ||
671 | mxs_mmc_reset(host); | 636 | mxs_mmc_reset(host); |
672 | 637 | ||
673 | dma_cap_zero(mask); | 638 | ssp->dmach = dma_request_slave_channel(&pdev->dev, "rx-tx"); |
674 | dma_cap_set(DMA_SLAVE, mask); | ||
675 | ssp->dma_data.chan_irq = irq_dma; | ||
676 | ssp->dmach = dma_request_channel(mask, mxs_mmc_dma_filter, host); | ||
677 | if (!ssp->dmach) { | 639 | if (!ssp->dmach) { |
678 | dev_err(mmc_dev(host->mmc), | 640 | dev_err(mmc_dev(host->mmc), |
679 | "%s: failed to request dma\n", __func__); | 641 | "%s: failed to request dma\n", __func__); |
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c index 717881a3d1b8..25ecfa1822a8 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME "gpmi-nand" | 36 | #define GPMI_NAND_GPMI_REGS_ADDR_RES_NAME "gpmi-nand" |
37 | #define GPMI_NAND_BCH_REGS_ADDR_RES_NAME "bch" | 37 | #define GPMI_NAND_BCH_REGS_ADDR_RES_NAME "bch" |
38 | #define GPMI_NAND_BCH_INTERRUPT_RES_NAME "bch" | 38 | #define GPMI_NAND_BCH_INTERRUPT_RES_NAME "bch" |
39 | #define GPMI_NAND_DMA_INTERRUPT_RES_NAME "gpmi-dma" | ||
40 | 39 | ||
41 | /* add our owner bbt descriptor */ | 40 | /* add our owner bbt descriptor */ |
42 | static uint8_t scan_ff_pattern[] = { 0xff }; | 41 | static uint8_t scan_ff_pattern[] = { 0xff }; |
@@ -420,28 +419,6 @@ static void release_bch_irq(struct gpmi_nand_data *this) | |||
420 | free_irq(i, this); | 419 | free_irq(i, this); |
421 | } | 420 | } |
422 | 421 | ||
423 | static bool gpmi_dma_filter(struct dma_chan *chan, void *param) | ||
424 | { | ||
425 | struct gpmi_nand_data *this = param; | ||
426 | int dma_channel = (int)this->private; | ||
427 | |||
428 | if (!mxs_dma_is_apbh(chan)) | ||
429 | return false; | ||
430 | /* | ||
431 | * only catch the GPMI dma channels : | ||
432 | * for mx23 : MX23_DMA_GPMI0 ~ MX23_DMA_GPMI3 | ||
433 | * (These four channels share the same IRQ!) | ||
434 | * | ||
435 | * for mx28 : MX28_DMA_GPMI0 ~ MX28_DMA_GPMI7 | ||
436 | * (These eight channels share the same IRQ!) | ||
437 | */ | ||
438 | if (dma_channel == chan->chan_id) { | ||
439 | chan->private = &this->dma_data; | ||
440 | return true; | ||
441 | } | ||
442 | return false; | ||
443 | } | ||
444 | |||
445 | static void release_dma_channels(struct gpmi_nand_data *this) | 422 | static void release_dma_channels(struct gpmi_nand_data *this) |
446 | { | 423 | { |
447 | unsigned int i; | 424 | unsigned int i; |
@@ -455,36 +432,10 @@ static void release_dma_channels(struct gpmi_nand_data *this) | |||
455 | static int acquire_dma_channels(struct gpmi_nand_data *this) | 432 | static int acquire_dma_channels(struct gpmi_nand_data *this) |
456 | { | 433 | { |
457 | struct platform_device *pdev = this->pdev; | 434 | struct platform_device *pdev = this->pdev; |
458 | struct resource *r_dma; | ||
459 | struct device_node *dn; | ||
460 | u32 dma_channel; | ||
461 | int ret; | ||
462 | struct dma_chan *dma_chan; | 435 | struct dma_chan *dma_chan; |
463 | dma_cap_mask_t mask; | ||
464 | |||
465 | /* dma channel, we only use the first one. */ | ||
466 | dn = pdev->dev.of_node; | ||
467 | ret = of_property_read_u32(dn, "fsl,gpmi-dma-channel", &dma_channel); | ||
468 | if (ret) { | ||
469 | pr_err("unable to get DMA channel from dt.\n"); | ||
470 | goto acquire_err; | ||
471 | } | ||
472 | this->private = (void *)dma_channel; | ||
473 | |||
474 | /* gpmi dma interrupt */ | ||
475 | r_dma = platform_get_resource_byname(pdev, IORESOURCE_IRQ, | ||
476 | GPMI_NAND_DMA_INTERRUPT_RES_NAME); | ||
477 | if (!r_dma) { | ||
478 | pr_err("Can't get resource for DMA\n"); | ||
479 | goto acquire_err; | ||
480 | } | ||
481 | this->dma_data.chan_irq = r_dma->start; | ||
482 | 436 | ||
483 | /* request dma channel */ | 437 | /* request dma channel */ |
484 | dma_cap_zero(mask); | 438 | dma_chan = dma_request_slave_channel(&pdev->dev, "rx-tx"); |
485 | dma_cap_set(DMA_SLAVE, mask); | ||
486 | |||
487 | dma_chan = dma_request_channel(mask, gpmi_dma_filter, this); | ||
488 | if (!dma_chan) { | 439 | if (!dma_chan) { |
489 | pr_err("Failed to request DMA channel.\n"); | 440 | pr_err("Failed to request DMA channel.\n"); |
490 | goto acquire_err; | 441 | goto acquire_err; |
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h index 072947731277..a7685e3a8748 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <linux/mtd/nand.h> | 20 | #include <linux/mtd/nand.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/dma-mapping.h> | 22 | #include <linux/dma-mapping.h> |
23 | #include <linux/fsl/mxs-dma.h> | 23 | #include <linux/dmaengine.h> |
24 | 24 | ||
25 | #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */ | 25 | #define GPMI_CLK_MAX 5 /* MX6Q needs five clocks */ |
26 | struct resources { | 26 | struct resources { |
@@ -180,7 +180,6 @@ struct gpmi_nand_data { | |||
180 | /* DMA channels */ | 180 | /* DMA channels */ |
181 | #define DMA_CHANS 8 | 181 | #define DMA_CHANS 8 |
182 | struct dma_chan *dma_chans[DMA_CHANS]; | 182 | struct dma_chan *dma_chans[DMA_CHANS]; |
183 | struct mxs_dma_data dma_data; | ||
184 | enum dma_ops_type last_dma_type; | 183 | enum dma_ops_type last_dma_type; |
185 | enum dma_ops_type dma_type; | 184 | enum dma_ops_type dma_type; |
186 | struct completion dma_done; | 185 | struct completion dma_done; |
diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h index d44f65bac1d4..ceb4d43c132d 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h | |||
@@ -214,6 +214,7 @@ struct fec_enet_private { | |||
214 | 214 | ||
215 | struct clk *clk_ipg; | 215 | struct clk *clk_ipg; |
216 | struct clk *clk_ahb; | 216 | struct clk *clk_ahb; |
217 | struct clk *clk_enet_out; | ||
217 | struct clk *clk_ptp; | 218 | struct clk *clk_ptp; |
218 | 219 | ||
219 | /* The saved address of a sent-in-place packet/buffer, for skfree(). */ | 220 | /* The saved address of a sent-in-place packet/buffer, for skfree(). */ |
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index b9748f14ea78..e25bf832e6b3 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c | |||
@@ -1883,18 +1883,23 @@ fec_probe(struct platform_device *pdev) | |||
1883 | goto failed_clk; | 1883 | goto failed_clk; |
1884 | } | 1884 | } |
1885 | 1885 | ||
1886 | /* enet_out is optional, depends on board */ | ||
1887 | fep->clk_enet_out = devm_clk_get(&pdev->dev, "enet_out"); | ||
1888 | if (IS_ERR(fep->clk_enet_out)) | ||
1889 | fep->clk_enet_out = NULL; | ||
1890 | |||
1886 | fep->clk_ptp = devm_clk_get(&pdev->dev, "ptp"); | 1891 | fep->clk_ptp = devm_clk_get(&pdev->dev, "ptp"); |
1887 | fep->bufdesc_ex = | 1892 | fep->bufdesc_ex = |
1888 | pdev->id_entry->driver_data & FEC_QUIRK_HAS_BUFDESC_EX; | 1893 | pdev->id_entry->driver_data & FEC_QUIRK_HAS_BUFDESC_EX; |
1889 | if (IS_ERR(fep->clk_ptp)) { | 1894 | if (IS_ERR(fep->clk_ptp)) { |
1890 | ret = PTR_ERR(fep->clk_ptp); | 1895 | fep->clk_ptp = NULL; |
1891 | fep->bufdesc_ex = 0; | 1896 | fep->bufdesc_ex = 0; |
1892 | } | 1897 | } |
1893 | 1898 | ||
1894 | clk_prepare_enable(fep->clk_ahb); | 1899 | clk_prepare_enable(fep->clk_ahb); |
1895 | clk_prepare_enable(fep->clk_ipg); | 1900 | clk_prepare_enable(fep->clk_ipg); |
1896 | if (!IS_ERR(fep->clk_ptp)) | 1901 | clk_prepare_enable(fep->clk_enet_out); |
1897 | clk_prepare_enable(fep->clk_ptp); | 1902 | clk_prepare_enable(fep->clk_ptp); |
1898 | 1903 | ||
1899 | reg_phy = devm_regulator_get(&pdev->dev, "phy"); | 1904 | reg_phy = devm_regulator_get(&pdev->dev, "phy"); |
1900 | if (!IS_ERR(reg_phy)) { | 1905 | if (!IS_ERR(reg_phy)) { |
@@ -1962,8 +1967,8 @@ failed_irq: | |||
1962 | failed_regulator: | 1967 | failed_regulator: |
1963 | clk_disable_unprepare(fep->clk_ahb); | 1968 | clk_disable_unprepare(fep->clk_ahb); |
1964 | clk_disable_unprepare(fep->clk_ipg); | 1969 | clk_disable_unprepare(fep->clk_ipg); |
1965 | if (!IS_ERR(fep->clk_ptp)) | 1970 | clk_disable_unprepare(fep->clk_enet_out); |
1966 | clk_disable_unprepare(fep->clk_ptp); | 1971 | clk_disable_unprepare(fep->clk_ptp); |
1967 | failed_pin: | 1972 | failed_pin: |
1968 | failed_clk: | 1973 | failed_clk: |
1969 | failed_ioremap: | 1974 | failed_ioremap: |
@@ -1985,6 +1990,7 @@ fec_drv_remove(struct platform_device *pdev) | |||
1985 | clk_disable_unprepare(fep->clk_ptp); | 1990 | clk_disable_unprepare(fep->clk_ptp); |
1986 | if (fep->ptp_clock) | 1991 | if (fep->ptp_clock) |
1987 | ptp_clock_unregister(fep->ptp_clock); | 1992 | ptp_clock_unregister(fep->ptp_clock); |
1993 | clk_disable_unprepare(fep->clk_enet_out); | ||
1988 | clk_disable_unprepare(fep->clk_ahb); | 1994 | clk_disable_unprepare(fep->clk_ahb); |
1989 | clk_disable_unprepare(fep->clk_ipg); | 1995 | clk_disable_unprepare(fep->clk_ipg); |
1990 | for (i = 0; i < FEC_IRQ_NUM; i++) { | 1996 | for (i = 0; i < FEC_IRQ_NUM; i++) { |
@@ -2010,6 +2016,7 @@ fec_suspend(struct device *dev) | |||
2010 | fec_stop(ndev); | 2016 | fec_stop(ndev); |
2011 | netif_device_detach(ndev); | 2017 | netif_device_detach(ndev); |
2012 | } | 2018 | } |
2019 | clk_disable_unprepare(fep->clk_enet_out); | ||
2013 | clk_disable_unprepare(fep->clk_ahb); | 2020 | clk_disable_unprepare(fep->clk_ahb); |
2014 | clk_disable_unprepare(fep->clk_ipg); | 2021 | clk_disable_unprepare(fep->clk_ipg); |
2015 | 2022 | ||
@@ -2022,6 +2029,7 @@ fec_resume(struct device *dev) | |||
2022 | struct net_device *ndev = dev_get_drvdata(dev); | 2029 | struct net_device *ndev = dev_get_drvdata(dev); |
2023 | struct fec_enet_private *fep = netdev_priv(ndev); | 2030 | struct fec_enet_private *fep = netdev_priv(ndev); |
2024 | 2031 | ||
2032 | clk_prepare_enable(fep->clk_enet_out); | ||
2025 | clk_prepare_enable(fep->clk_ahb); | 2033 | clk_prepare_enable(fep->clk_ahb); |
2026 | clk_prepare_enable(fep->clk_ipg); | 2034 | clk_prepare_enable(fep->clk_ipg); |
2027 | if (netif_running(ndev)) { | 2035 | if (netif_running(ndev)) { |
diff --git a/drivers/spi/spi-davinci.c b/drivers/spi/spi-davinci.c index 8234d2259722..2e8f24a1fb95 100644 --- a/drivers/spi/spi-davinci.c +++ b/drivers/spi/spi-davinci.c | |||
@@ -776,10 +776,10 @@ rx_dma_failed: | |||
776 | #if defined(CONFIG_OF) | 776 | #if defined(CONFIG_OF) |
777 | static const struct of_device_id davinci_spi_of_match[] = { | 777 | static const struct of_device_id davinci_spi_of_match[] = { |
778 | { | 778 | { |
779 | .compatible = "ti,dm644x-spi", | 779 | .compatible = "ti,dm6441-spi", |
780 | }, | 780 | }, |
781 | { | 781 | { |
782 | .compatible = "ti,da8xx-spi", | 782 | .compatible = "ti,da830-spi", |
783 | .data = (void *)SPI_VERSION_2, | 783 | .data = (void *)SPI_VERSION_2, |
784 | }, | 784 | }, |
785 | { }, | 785 | { }, |
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c index a1d5778e2bbb..84982768cd10 100644 --- a/drivers/spi/spi-mxs.c +++ b/drivers/spi/spi-mxs.c | |||
@@ -490,21 +490,6 @@ static int mxs_spi_transfer_one(struct spi_master *master, | |||
490 | return status; | 490 | return status; |
491 | } | 491 | } |
492 | 492 | ||
493 | static bool mxs_ssp_dma_filter(struct dma_chan *chan, void *param) | ||
494 | { | ||
495 | struct mxs_ssp *ssp = param; | ||
496 | |||
497 | if (!mxs_dma_is_apbh(chan)) | ||
498 | return false; | ||
499 | |||
500 | if (chan->chan_id != ssp->dma_channel) | ||
501 | return false; | ||
502 | |||
503 | chan->private = &ssp->dma_data; | ||
504 | |||
505 | return true; | ||
506 | } | ||
507 | |||
508 | static const struct of_device_id mxs_spi_dt_ids[] = { | 493 | static const struct of_device_id mxs_spi_dt_ids[] = { |
509 | { .compatible = "fsl,imx23-spi", .data = (void *) IMX23_SSP, }, | 494 | { .compatible = "fsl,imx23-spi", .data = (void *) IMX23_SSP, }, |
510 | { .compatible = "fsl,imx28-spi", .data = (void *) IMX28_SSP, }, | 495 | { .compatible = "fsl,imx28-spi", .data = (void *) IMX28_SSP, }, |
@@ -520,13 +505,12 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
520 | struct spi_master *master; | 505 | struct spi_master *master; |
521 | struct mxs_spi *spi; | 506 | struct mxs_spi *spi; |
522 | struct mxs_ssp *ssp; | 507 | struct mxs_ssp *ssp; |
523 | struct resource *iores, *dmares; | 508 | struct resource *iores; |
524 | struct pinctrl *pinctrl; | 509 | struct pinctrl *pinctrl; |
525 | struct clk *clk; | 510 | struct clk *clk; |
526 | void __iomem *base; | 511 | void __iomem *base; |
527 | int devid, dma_channel, clk_freq; | 512 | int devid, clk_freq; |
528 | int ret = 0, irq_err, irq_dma; | 513 | int ret = 0, irq_err; |
529 | dma_cap_mask_t mask; | ||
530 | 514 | ||
531 | /* | 515 | /* |
532 | * Default clock speed for the SPI core. 160MHz seems to | 516 | * Default clock speed for the SPI core. 160MHz seems to |
@@ -537,8 +521,7 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
537 | 521 | ||
538 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 522 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
539 | irq_err = platform_get_irq(pdev, 0); | 523 | irq_err = platform_get_irq(pdev, 0); |
540 | irq_dma = platform_get_irq(pdev, 1); | 524 | if (!iores || irq_err < 0) |
541 | if (!iores || irq_err < 0 || irq_dma < 0) | ||
542 | return -EINVAL; | 525 | return -EINVAL; |
543 | 526 | ||
544 | base = devm_ioremap_resource(&pdev->dev, iores); | 527 | base = devm_ioremap_resource(&pdev->dev, iores); |
@@ -553,32 +536,11 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
553 | if (IS_ERR(clk)) | 536 | if (IS_ERR(clk)) |
554 | return PTR_ERR(clk); | 537 | return PTR_ERR(clk); |
555 | 538 | ||
556 | if (np) { | 539 | devid = (enum mxs_ssp_id) of_id->data; |
557 | devid = (enum mxs_ssp_id) of_id->data; | 540 | ret = of_property_read_u32(np, "clock-frequency", |
558 | /* | 541 | &clk_freq); |
559 | * TODO: This is a temporary solution and should be changed | 542 | if (ret) |
560 | * to use generic DMA binding later when the helpers get in. | ||
561 | */ | ||
562 | ret = of_property_read_u32(np, "fsl,ssp-dma-channel", | ||
563 | &dma_channel); | ||
564 | if (ret) { | ||
565 | dev_err(&pdev->dev, | ||
566 | "Failed to get DMA channel\n"); | ||
567 | return -EINVAL; | ||
568 | } | ||
569 | |||
570 | ret = of_property_read_u32(np, "clock-frequency", | ||
571 | &clk_freq); | ||
572 | if (ret) | ||
573 | clk_freq = clk_freq_default; | ||
574 | } else { | ||
575 | dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0); | ||
576 | if (!dmares) | ||
577 | return -EINVAL; | ||
578 | devid = pdev->id_entry->driver_data; | ||
579 | dma_channel = dmares->start; | ||
580 | clk_freq = clk_freq_default; | 543 | clk_freq = clk_freq_default; |
581 | } | ||
582 | 544 | ||
583 | master = spi_alloc_master(&pdev->dev, sizeof(*spi)); | 545 | master = spi_alloc_master(&pdev->dev, sizeof(*spi)); |
584 | if (!master) | 546 | if (!master) |
@@ -597,7 +559,6 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
597 | ssp->clk = clk; | 559 | ssp->clk = clk; |
598 | ssp->base = base; | 560 | ssp->base = base; |
599 | ssp->devid = devid; | 561 | ssp->devid = devid; |
600 | ssp->dma_channel = dma_channel; | ||
601 | 562 | ||
602 | init_completion(&spi->c); | 563 | init_completion(&spi->c); |
603 | 564 | ||
@@ -606,10 +567,7 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
606 | if (ret) | 567 | if (ret) |
607 | goto out_master_free; | 568 | goto out_master_free; |
608 | 569 | ||
609 | dma_cap_zero(mask); | 570 | ssp->dmach = dma_request_slave_channel(&pdev->dev, "rx-tx"); |
610 | dma_cap_set(DMA_SLAVE, mask); | ||
611 | ssp->dma_data.chan_irq = irq_dma; | ||
612 | ssp->dmach = dma_request_channel(mask, mxs_ssp_dma_filter, ssp); | ||
613 | if (!ssp->dmach) { | 571 | if (!ssp->dmach) { |
614 | dev_err(ssp->dev, "Failed to request DMA\n"); | 572 | dev_err(ssp->dev, "Failed to request DMA\n"); |
615 | ret = -ENODEV; | 573 | ret = -ENODEV; |
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c index 62e7d3b015a1..4f5f161896a1 100644 --- a/drivers/tty/serial/mxs-auart.c +++ b/drivers/tty/serial/mxs-auart.c | |||
@@ -35,7 +35,7 @@ | |||
35 | #include <linux/pinctrl/consumer.h> | 35 | #include <linux/pinctrl/consumer.h> |
36 | #include <linux/of_device.h> | 36 | #include <linux/of_device.h> |
37 | #include <linux/dma-mapping.h> | 37 | #include <linux/dma-mapping.h> |
38 | #include <linux/fsl/mxs-dma.h> | 38 | #include <linux/dmaengine.h> |
39 | 39 | ||
40 | #include <asm/cacheflush.h> | 40 | #include <asm/cacheflush.h> |
41 | 41 | ||
@@ -148,11 +148,6 @@ struct mxs_auart_port { | |||
148 | struct device *dev; | 148 | struct device *dev; |
149 | 149 | ||
150 | /* for DMA */ | 150 | /* for DMA */ |
151 | struct mxs_dma_data dma_data; | ||
152 | int dma_channel_rx, dma_channel_tx; | ||
153 | int dma_irq_rx, dma_irq_tx; | ||
154 | int dma_channel; | ||
155 | |||
156 | struct scatterlist tx_sgl; | 151 | struct scatterlist tx_sgl; |
157 | struct dma_chan *tx_dma_chan; | 152 | struct dma_chan *tx_dma_chan; |
158 | void *tx_dma_buf; | 153 | void *tx_dma_buf; |
@@ -440,20 +435,6 @@ static u32 mxs_auart_get_mctrl(struct uart_port *u) | |||
440 | return mctrl; | 435 | return mctrl; |
441 | } | 436 | } |
442 | 437 | ||
443 | static bool mxs_auart_dma_filter(struct dma_chan *chan, void *param) | ||
444 | { | ||
445 | struct mxs_auart_port *s = param; | ||
446 | |||
447 | if (!mxs_dma_is_apbx(chan)) | ||
448 | return false; | ||
449 | |||
450 | if (s->dma_channel == chan->chan_id) { | ||
451 | chan->private = &s->dma_data; | ||
452 | return true; | ||
453 | } | ||
454 | return false; | ||
455 | } | ||
456 | |||
457 | static int mxs_auart_dma_prep_rx(struct mxs_auart_port *s); | 438 | static int mxs_auart_dma_prep_rx(struct mxs_auart_port *s); |
458 | static void dma_rx_callback(void *arg) | 439 | static void dma_rx_callback(void *arg) |
459 | { | 440 | { |
@@ -545,21 +526,11 @@ static void mxs_auart_dma_exit(struct mxs_auart_port *s) | |||
545 | 526 | ||
546 | static int mxs_auart_dma_init(struct mxs_auart_port *s) | 527 | static int mxs_auart_dma_init(struct mxs_auart_port *s) |
547 | { | 528 | { |
548 | dma_cap_mask_t mask; | ||
549 | |||
550 | if (auart_dma_enabled(s)) | 529 | if (auart_dma_enabled(s)) |
551 | return 0; | 530 | return 0; |
552 | 531 | ||
553 | /* We do not get the right DMA channels. */ | ||
554 | if (s->dma_channel_rx == -1 || s->dma_channel_tx == -1) | ||
555 | return -EINVAL; | ||
556 | |||
557 | /* init for RX */ | 532 | /* init for RX */ |
558 | dma_cap_zero(mask); | 533 | s->rx_dma_chan = dma_request_slave_channel(s->dev, "rx"); |
559 | dma_cap_set(DMA_SLAVE, mask); | ||
560 | s->dma_channel = s->dma_channel_rx; | ||
561 | s->dma_data.chan_irq = s->dma_irq_rx; | ||
562 | s->rx_dma_chan = dma_request_channel(mask, mxs_auart_dma_filter, s); | ||
563 | if (!s->rx_dma_chan) | 534 | if (!s->rx_dma_chan) |
564 | goto err_out; | 535 | goto err_out; |
565 | s->rx_dma_buf = kzalloc(UART_XMIT_SIZE, GFP_KERNEL | GFP_DMA); | 536 | s->rx_dma_buf = kzalloc(UART_XMIT_SIZE, GFP_KERNEL | GFP_DMA); |
@@ -567,9 +538,7 @@ static int mxs_auart_dma_init(struct mxs_auart_port *s) | |||
567 | goto err_out; | 538 | goto err_out; |
568 | 539 | ||
569 | /* init for TX */ | 540 | /* init for TX */ |
570 | s->dma_channel = s->dma_channel_tx; | 541 | s->tx_dma_chan = dma_request_slave_channel(s->dev, "tx"); |
571 | s->dma_data.chan_irq = s->dma_irq_tx; | ||
572 | s->tx_dma_chan = dma_request_channel(mask, mxs_auart_dma_filter, s); | ||
573 | if (!s->tx_dma_chan) | 542 | if (!s->tx_dma_chan) |
574 | goto err_out; | 543 | goto err_out; |
575 | s->tx_dma_buf = kzalloc(UART_XMIT_SIZE, GFP_KERNEL | GFP_DMA); | 544 | s->tx_dma_buf = kzalloc(UART_XMIT_SIZE, GFP_KERNEL | GFP_DMA); |
@@ -1020,7 +989,6 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s, | |||
1020 | struct platform_device *pdev) | 989 | struct platform_device *pdev) |
1021 | { | 990 | { |
1022 | struct device_node *np = pdev->dev.of_node; | 991 | struct device_node *np = pdev->dev.of_node; |
1023 | u32 dma_channel[2]; | ||
1024 | int ret; | 992 | int ret; |
1025 | 993 | ||
1026 | if (!np) | 994 | if (!np) |
@@ -1034,20 +1002,8 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s, | |||
1034 | } | 1002 | } |
1035 | s->port.line = ret; | 1003 | s->port.line = ret; |
1036 | 1004 | ||
1037 | s->dma_irq_rx = platform_get_irq(pdev, 1); | 1005 | s->flags |= MXS_AUART_DMA_CONFIG; |
1038 | s->dma_irq_tx = platform_get_irq(pdev, 2); | ||
1039 | 1006 | ||
1040 | ret = of_property_read_u32_array(np, "fsl,auart-dma-channel", | ||
1041 | dma_channel, 2); | ||
1042 | if (ret == 0) { | ||
1043 | s->dma_channel_rx = dma_channel[0]; | ||
1044 | s->dma_channel_tx = dma_channel[1]; | ||
1045 | |||
1046 | s->flags |= MXS_AUART_DMA_CONFIG; | ||
1047 | } else { | ||
1048 | s->dma_channel_rx = -1; | ||
1049 | s->dma_channel_tx = -1; | ||
1050 | } | ||
1051 | return 0; | 1007 | return 0; |
1052 | } | 1008 | } |
1053 | 1009 | ||
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index ab5ba3d49e14..c04ccdf60eaa 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -2428,6 +2428,8 @@ config FB_MXS | |||
2428 | select FB_CFB_FILLRECT | 2428 | select FB_CFB_FILLRECT |
2429 | select FB_CFB_COPYAREA | 2429 | select FB_CFB_COPYAREA |
2430 | select FB_CFB_IMAGEBLIT | 2430 | select FB_CFB_IMAGEBLIT |
2431 | select FB_MODE_HELPERS | ||
2432 | select OF_VIDEOMODE | ||
2431 | help | 2433 | help |
2432 | Framebuffer support for the MXS SoC. | 2434 | Framebuffer support for the MXS SoC. |
2433 | 2435 | ||
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 45169cbaba6e..1b2c26d1658c 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c | |||
@@ -42,13 +42,15 @@ | |||
42 | #include <linux/module.h> | 42 | #include <linux/module.h> |
43 | #include <linux/kernel.h> | 43 | #include <linux/kernel.h> |
44 | #include <linux/of_device.h> | 44 | #include <linux/of_device.h> |
45 | #include <linux/of_gpio.h> | 45 | #include <video/of_display_timing.h> |
46 | #include <linux/platform_device.h> | 46 | #include <linux/platform_device.h> |
47 | #include <linux/clk.h> | 47 | #include <linux/clk.h> |
48 | #include <linux/dma-mapping.h> | 48 | #include <linux/dma-mapping.h> |
49 | #include <linux/io.h> | 49 | #include <linux/io.h> |
50 | #include <linux/pinctrl/consumer.h> | 50 | #include <linux/pinctrl/consumer.h> |
51 | #include <linux/mxsfb.h> | 51 | #include <linux/fb.h> |
52 | #include <linux/regulator/consumer.h> | ||
53 | #include <video/videomode.h> | ||
52 | 54 | ||
53 | #define REG_SET 4 | 55 | #define REG_SET 4 |
54 | #define REG_CLR 8 | 56 | #define REG_CLR 8 |
@@ -107,7 +109,7 @@ | |||
107 | #define VDCTRL0_ENABLE_PRESENT (1 << 28) | 109 | #define VDCTRL0_ENABLE_PRESENT (1 << 28) |
108 | #define VDCTRL0_VSYNC_ACT_HIGH (1 << 27) | 110 | #define VDCTRL0_VSYNC_ACT_HIGH (1 << 27) |
109 | #define VDCTRL0_HSYNC_ACT_HIGH (1 << 26) | 111 | #define VDCTRL0_HSYNC_ACT_HIGH (1 << 26) |
110 | #define VDCTRL0_DOTCLK_ACT_FAILING (1 << 25) | 112 | #define VDCTRL0_DOTCLK_ACT_FALLING (1 << 25) |
111 | #define VDCTRL0_ENABLE_ACT_HIGH (1 << 24) | 113 | #define VDCTRL0_ENABLE_ACT_HIGH (1 << 24) |
112 | #define VDCTRL0_VSYNC_PERIOD_UNIT (1 << 21) | 114 | #define VDCTRL0_VSYNC_PERIOD_UNIT (1 << 21) |
113 | #define VDCTRL0_VSYNC_PULSE_WIDTH_UNIT (1 << 20) | 115 | #define VDCTRL0_VSYNC_PULSE_WIDTH_UNIT (1 << 20) |
@@ -142,6 +144,14 @@ | |||
142 | #define BLUE 2 | 144 | #define BLUE 2 |
143 | #define TRANSP 3 | 145 | #define TRANSP 3 |
144 | 146 | ||
147 | #define STMLCDIF_8BIT 1 /** pixel data bus to the display is of 8 bit width */ | ||
148 | #define STMLCDIF_16BIT 0 /** pixel data bus to the display is of 16 bit width */ | ||
149 | #define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */ | ||
150 | #define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */ | ||
151 | |||
152 | #define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6) | ||
153 | #define MXSFB_SYNC_DOTCLK_FALLING_ACT (1 << 7) /* negtive edge sampling */ | ||
154 | |||
145 | enum mxsfb_devtype { | 155 | enum mxsfb_devtype { |
146 | MXSFB_V3, | 156 | MXSFB_V3, |
147 | MXSFB_V4, | 157 | MXSFB_V4, |
@@ -168,8 +178,8 @@ struct mxsfb_info { | |||
168 | unsigned ld_intf_width; | 178 | unsigned ld_intf_width; |
169 | unsigned dotclk_delay; | 179 | unsigned dotclk_delay; |
170 | const struct mxsfb_devdata *devdata; | 180 | const struct mxsfb_devdata *devdata; |
171 | int mapped; | ||
172 | u32 sync; | 181 | u32 sync; |
182 | struct regulator *reg_lcd; | ||
173 | }; | 183 | }; |
174 | 184 | ||
175 | #define mxsfb_is_v3(host) (host->devdata->ipversion == 3) | 185 | #define mxsfb_is_v3(host) (host->devdata->ipversion == 3) |
@@ -329,9 +339,19 @@ static void mxsfb_enable_controller(struct fb_info *fb_info) | |||
329 | { | 339 | { |
330 | struct mxsfb_info *host = to_imxfb_host(fb_info); | 340 | struct mxsfb_info *host = to_imxfb_host(fb_info); |
331 | u32 reg; | 341 | u32 reg; |
342 | int ret; | ||
332 | 343 | ||
333 | dev_dbg(&host->pdev->dev, "%s\n", __func__); | 344 | dev_dbg(&host->pdev->dev, "%s\n", __func__); |
334 | 345 | ||
346 | if (host->reg_lcd) { | ||
347 | ret = regulator_enable(host->reg_lcd); | ||
348 | if (ret) { | ||
349 | dev_err(&host->pdev->dev, | ||
350 | "lcd regulator enable failed: %d\n", ret); | ||
351 | return; | ||
352 | } | ||
353 | } | ||
354 | |||
335 | clk_prepare_enable(host->clk); | 355 | clk_prepare_enable(host->clk); |
336 | clk_set_rate(host->clk, PICOS2KHZ(fb_info->var.pixclock) * 1000U); | 356 | clk_set_rate(host->clk, PICOS2KHZ(fb_info->var.pixclock) * 1000U); |
337 | 357 | ||
@@ -353,6 +373,7 @@ static void mxsfb_disable_controller(struct fb_info *fb_info) | |||
353 | struct mxsfb_info *host = to_imxfb_host(fb_info); | 373 | struct mxsfb_info *host = to_imxfb_host(fb_info); |
354 | unsigned loop; | 374 | unsigned loop; |
355 | u32 reg; | 375 | u32 reg; |
376 | int ret; | ||
356 | 377 | ||
357 | dev_dbg(&host->pdev->dev, "%s\n", __func__); | 378 | dev_dbg(&host->pdev->dev, "%s\n", __func__); |
358 | 379 | ||
@@ -376,6 +397,13 @@ static void mxsfb_disable_controller(struct fb_info *fb_info) | |||
376 | clk_disable_unprepare(host->clk); | 397 | clk_disable_unprepare(host->clk); |
377 | 398 | ||
378 | host->enabled = 0; | 399 | host->enabled = 0; |
400 | |||
401 | if (host->reg_lcd) { | ||
402 | ret = regulator_disable(host->reg_lcd); | ||
403 | if (ret) | ||
404 | dev_err(&host->pdev->dev, | ||
405 | "lcd regulator disable failed: %d\n", ret); | ||
406 | } | ||
379 | } | 407 | } |
380 | 408 | ||
381 | static int mxsfb_set_par(struct fb_info *fb_info) | 409 | static int mxsfb_set_par(struct fb_info *fb_info) |
@@ -459,8 +487,8 @@ static int mxsfb_set_par(struct fb_info *fb_info) | |||
459 | vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH; | 487 | vdctrl0 |= VDCTRL0_VSYNC_ACT_HIGH; |
460 | if (host->sync & MXSFB_SYNC_DATA_ENABLE_HIGH_ACT) | 488 | if (host->sync & MXSFB_SYNC_DATA_ENABLE_HIGH_ACT) |
461 | vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH; | 489 | vdctrl0 |= VDCTRL0_ENABLE_ACT_HIGH; |
462 | if (host->sync & MXSFB_SYNC_DOTCLK_FAILING_ACT) | 490 | if (host->sync & MXSFB_SYNC_DOTCLK_FALLING_ACT) |
463 | vdctrl0 |= VDCTRL0_DOTCLK_ACT_FAILING; | 491 | vdctrl0 |= VDCTRL0_DOTCLK_ACT_FALLING; |
464 | 492 | ||
465 | writel(vdctrl0, host->base + LCDC_VDCTRL0); | 493 | writel(vdctrl0, host->base + LCDC_VDCTRL0); |
466 | 494 | ||
@@ -679,14 +707,105 @@ static int mxsfb_restore_mode(struct mxsfb_info *host) | |||
679 | return 0; | 707 | return 0; |
680 | } | 708 | } |
681 | 709 | ||
710 | static int mxsfb_init_fbinfo_dt(struct mxsfb_info *host) | ||
711 | { | ||
712 | struct fb_info *fb_info = &host->fb_info; | ||
713 | struct fb_var_screeninfo *var = &fb_info->var; | ||
714 | struct device *dev = &host->pdev->dev; | ||
715 | struct device_node *np = host->pdev->dev.of_node; | ||
716 | struct device_node *display_np; | ||
717 | struct device_node *timings_np; | ||
718 | struct display_timings *timings; | ||
719 | u32 width; | ||
720 | int i; | ||
721 | int ret = 0; | ||
722 | |||
723 | display_np = of_parse_phandle(np, "display", 0); | ||
724 | if (!display_np) { | ||
725 | dev_err(dev, "failed to find display phandle\n"); | ||
726 | return -ENOENT; | ||
727 | } | ||
728 | |||
729 | ret = of_property_read_u32(display_np, "bus-width", &width); | ||
730 | if (ret < 0) { | ||
731 | dev_err(dev, "failed to get property bus-width\n"); | ||
732 | goto put_display_node; | ||
733 | } | ||
734 | |||
735 | switch (width) { | ||
736 | case 8: | ||
737 | host->ld_intf_width = STMLCDIF_8BIT; | ||
738 | break; | ||
739 | case 16: | ||
740 | host->ld_intf_width = STMLCDIF_16BIT; | ||
741 | break; | ||
742 | case 18: | ||
743 | host->ld_intf_width = STMLCDIF_18BIT; | ||
744 | break; | ||
745 | case 24: | ||
746 | host->ld_intf_width = STMLCDIF_24BIT; | ||
747 | break; | ||
748 | default: | ||
749 | dev_err(dev, "invalid bus-width value\n"); | ||
750 | ret = -EINVAL; | ||
751 | goto put_display_node; | ||
752 | } | ||
753 | |||
754 | ret = of_property_read_u32(display_np, "bits-per-pixel", | ||
755 | &var->bits_per_pixel); | ||
756 | if (ret < 0) { | ||
757 | dev_err(dev, "failed to get property bits-per-pixel\n"); | ||
758 | goto put_display_node; | ||
759 | } | ||
760 | |||
761 | timings = of_get_display_timings(display_np); | ||
762 | if (!timings) { | ||
763 | dev_err(dev, "failed to get display timings\n"); | ||
764 | ret = -ENOENT; | ||
765 | goto put_display_node; | ||
766 | } | ||
767 | |||
768 | timings_np = of_find_node_by_name(display_np, | ||
769 | "display-timings"); | ||
770 | if (!timings_np) { | ||
771 | dev_err(dev, "failed to find display-timings node\n"); | ||
772 | ret = -ENOENT; | ||
773 | goto put_display_node; | ||
774 | } | ||
775 | |||
776 | for (i = 0; i < of_get_child_count(timings_np); i++) { | ||
777 | struct videomode vm; | ||
778 | struct fb_videomode fb_vm; | ||
779 | |||
780 | ret = videomode_from_timing(timings, &vm, i); | ||
781 | if (ret < 0) | ||
782 | goto put_timings_node; | ||
783 | ret = fb_videomode_from_videomode(&vm, &fb_vm); | ||
784 | if (ret < 0) | ||
785 | goto put_timings_node; | ||
786 | |||
787 | if (vm.data_flags & DISPLAY_FLAGS_DE_HIGH) | ||
788 | host->sync |= MXSFB_SYNC_DATA_ENABLE_HIGH_ACT; | ||
789 | if (vm.data_flags & DISPLAY_FLAGS_PIXDATA_NEGEDGE) | ||
790 | host->sync |= MXSFB_SYNC_DOTCLK_FALLING_ACT; | ||
791 | fb_add_videomode(&fb_vm, &fb_info->modelist); | ||
792 | } | ||
793 | |||
794 | put_timings_node: | ||
795 | of_node_put(timings_np); | ||
796 | put_display_node: | ||
797 | of_node_put(display_np); | ||
798 | return ret; | ||
799 | } | ||
800 | |||
682 | static int mxsfb_init_fbinfo(struct mxsfb_info *host) | 801 | static int mxsfb_init_fbinfo(struct mxsfb_info *host) |
683 | { | 802 | { |
684 | struct fb_info *fb_info = &host->fb_info; | 803 | struct fb_info *fb_info = &host->fb_info; |
685 | struct fb_var_screeninfo *var = &fb_info->var; | 804 | struct fb_var_screeninfo *var = &fb_info->var; |
686 | struct mxsfb_platform_data *pdata = host->pdev->dev.platform_data; | ||
687 | dma_addr_t fb_phys; | 805 | dma_addr_t fb_phys; |
688 | void *fb_virt; | 806 | void *fb_virt; |
689 | unsigned fb_size = pdata->fb_size; | 807 | unsigned fb_size; |
808 | int ret; | ||
690 | 809 | ||
691 | fb_info->fbops = &mxsfb_ops; | 810 | fb_info->fbops = &mxsfb_ops; |
692 | fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_READS_FAST; | 811 | fb_info->flags = FBINFO_FLAG_DEFAULT | FBINFO_READS_FAST; |
@@ -696,40 +815,22 @@ static int mxsfb_init_fbinfo(struct mxsfb_info *host) | |||
696 | fb_info->fix.visual = FB_VISUAL_TRUECOLOR, | 815 | fb_info->fix.visual = FB_VISUAL_TRUECOLOR, |
697 | fb_info->fix.accel = FB_ACCEL_NONE; | 816 | fb_info->fix.accel = FB_ACCEL_NONE; |
698 | 817 | ||
699 | var->bits_per_pixel = pdata->default_bpp ? pdata->default_bpp : 16; | 818 | ret = mxsfb_init_fbinfo_dt(host); |
819 | if (ret) | ||
820 | return ret; | ||
821 | |||
700 | var->nonstd = 0; | 822 | var->nonstd = 0; |
701 | var->activate = FB_ACTIVATE_NOW; | 823 | var->activate = FB_ACTIVATE_NOW; |
702 | var->accel_flags = 0; | 824 | var->accel_flags = 0; |
703 | var->vmode = FB_VMODE_NONINTERLACED; | 825 | var->vmode = FB_VMODE_NONINTERLACED; |
704 | 826 | ||
705 | host->dotclk_delay = pdata->dotclk_delay; | ||
706 | host->ld_intf_width = pdata->ld_intf_width; | ||
707 | |||
708 | /* Memory allocation for framebuffer */ | 827 | /* Memory allocation for framebuffer */ |
709 | if (pdata->fb_phys) { | 828 | fb_size = SZ_2M; |
710 | if (!fb_size) | 829 | fb_virt = alloc_pages_exact(fb_size, GFP_DMA); |
711 | return -EINVAL; | 830 | if (!fb_virt) |
712 | 831 | return -ENOMEM; | |
713 | fb_phys = pdata->fb_phys; | ||
714 | |||
715 | if (!request_mem_region(fb_phys, fb_size, host->pdev->name)) | ||
716 | return -ENOMEM; | ||
717 | 832 | ||
718 | fb_virt = ioremap(fb_phys, fb_size); | 833 | fb_phys = virt_to_phys(fb_virt); |
719 | if (!fb_virt) { | ||
720 | release_mem_region(fb_phys, fb_size); | ||
721 | return -ENOMEM; | ||
722 | } | ||
723 | host->mapped = 1; | ||
724 | } else { | ||
725 | if (!fb_size) | ||
726 | fb_size = SZ_2M; /* default */ | ||
727 | fb_virt = alloc_pages_exact(fb_size, GFP_DMA); | ||
728 | if (!fb_virt) | ||
729 | return -ENOMEM; | ||
730 | |||
731 | fb_phys = virt_to_phys(fb_virt); | ||
732 | } | ||
733 | 834 | ||
734 | fb_info->fix.smem_start = fb_phys; | 835 | fb_info->fix.smem_start = fb_phys; |
735 | fb_info->screen_base = fb_virt; | 836 | fb_info->screen_base = fb_virt; |
@@ -745,13 +846,7 @@ static void mxsfb_free_videomem(struct mxsfb_info *host) | |||
745 | { | 846 | { |
746 | struct fb_info *fb_info = &host->fb_info; | 847 | struct fb_info *fb_info = &host->fb_info; |
747 | 848 | ||
748 | if (host->mapped) { | 849 | free_pages_exact(fb_info->screen_base, fb_info->fix.smem_len); |
749 | iounmap(fb_info->screen_base); | ||
750 | release_mem_region(fb_info->fix.smem_start, | ||
751 | fb_info->screen_size); | ||
752 | } else { | ||
753 | free_pages_exact(fb_info->screen_base, fb_info->fix.smem_len); | ||
754 | } | ||
755 | } | 850 | } |
756 | 851 | ||
757 | static struct platform_device_id mxsfb_devtype[] = { | 852 | static struct platform_device_id mxsfb_devtype[] = { |
@@ -778,47 +873,35 @@ static int mxsfb_probe(struct platform_device *pdev) | |||
778 | { | 873 | { |
779 | const struct of_device_id *of_id = | 874 | const struct of_device_id *of_id = |
780 | of_match_device(mxsfb_dt_ids, &pdev->dev); | 875 | of_match_device(mxsfb_dt_ids, &pdev->dev); |
781 | struct mxsfb_platform_data *pdata = pdev->dev.platform_data; | ||
782 | struct resource *res; | 876 | struct resource *res; |
783 | struct mxsfb_info *host; | 877 | struct mxsfb_info *host; |
784 | struct fb_info *fb_info; | 878 | struct fb_info *fb_info; |
785 | struct fb_modelist *modelist; | 879 | struct fb_modelist *modelist; |
786 | struct pinctrl *pinctrl; | 880 | struct pinctrl *pinctrl; |
787 | int panel_enable; | 881 | int ret; |
788 | enum of_gpio_flags flags; | ||
789 | int i, ret; | ||
790 | 882 | ||
791 | if (of_id) | 883 | if (of_id) |
792 | pdev->id_entry = of_id->data; | 884 | pdev->id_entry = of_id->data; |
793 | 885 | ||
794 | if (!pdata) { | ||
795 | dev_err(&pdev->dev, "No platformdata. Giving up\n"); | ||
796 | return -ENODEV; | ||
797 | } | ||
798 | |||
799 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 886 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
800 | if (!res) { | 887 | if (!res) { |
801 | dev_err(&pdev->dev, "Cannot get memory IO resource\n"); | 888 | dev_err(&pdev->dev, "Cannot get memory IO resource\n"); |
802 | return -ENODEV; | 889 | return -ENODEV; |
803 | } | 890 | } |
804 | 891 | ||
805 | if (!request_mem_region(res->start, resource_size(res), pdev->name)) | ||
806 | return -EBUSY; | ||
807 | |||
808 | fb_info = framebuffer_alloc(sizeof(struct mxsfb_info), &pdev->dev); | 892 | fb_info = framebuffer_alloc(sizeof(struct mxsfb_info), &pdev->dev); |
809 | if (!fb_info) { | 893 | if (!fb_info) { |
810 | dev_err(&pdev->dev, "Failed to allocate fbdev\n"); | 894 | dev_err(&pdev->dev, "Failed to allocate fbdev\n"); |
811 | ret = -ENOMEM; | 895 | return -ENOMEM; |
812 | goto error_alloc_info; | ||
813 | } | 896 | } |
814 | 897 | ||
815 | host = to_imxfb_host(fb_info); | 898 | host = to_imxfb_host(fb_info); |
816 | 899 | ||
817 | host->base = ioremap(res->start, resource_size(res)); | 900 | host->base = devm_ioremap_resource(&pdev->dev, res); |
818 | if (!host->base) { | 901 | if (IS_ERR(host->base)) { |
819 | dev_err(&pdev->dev, "ioremap failed\n"); | 902 | dev_err(&pdev->dev, "ioremap failed\n"); |
820 | ret = -ENOMEM; | 903 | ret = PTR_ERR(host->base); |
821 | goto error_ioremap; | 904 | goto fb_release; |
822 | } | 905 | } |
823 | 906 | ||
824 | host->pdev = pdev; | 907 | host->pdev = pdev; |
@@ -829,47 +912,31 @@ static int mxsfb_probe(struct platform_device *pdev) | |||
829 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); | 912 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); |
830 | if (IS_ERR(pinctrl)) { | 913 | if (IS_ERR(pinctrl)) { |
831 | ret = PTR_ERR(pinctrl); | 914 | ret = PTR_ERR(pinctrl); |
832 | goto error_getpin; | 915 | goto fb_release; |
833 | } | 916 | } |
834 | 917 | ||
835 | host->clk = clk_get(&host->pdev->dev, NULL); | 918 | host->clk = devm_clk_get(&host->pdev->dev, NULL); |
836 | if (IS_ERR(host->clk)) { | 919 | if (IS_ERR(host->clk)) { |
837 | ret = PTR_ERR(host->clk); | 920 | ret = PTR_ERR(host->clk); |
838 | goto error_getclock; | 921 | goto fb_release; |
839 | } | 922 | } |
840 | 923 | ||
841 | panel_enable = of_get_named_gpio_flags(pdev->dev.of_node, | 924 | host->reg_lcd = devm_regulator_get(&pdev->dev, "lcd"); |
842 | "panel-enable-gpios", 0, &flags); | 925 | if (IS_ERR(host->reg_lcd)) |
843 | if (gpio_is_valid(panel_enable)) { | 926 | host->reg_lcd = NULL; |
844 | unsigned long f = GPIOF_OUT_INIT_HIGH; | ||
845 | if (flags == OF_GPIO_ACTIVE_LOW) | ||
846 | f = GPIOF_OUT_INIT_LOW; | ||
847 | ret = devm_gpio_request_one(&pdev->dev, panel_enable, | ||
848 | f, "panel-enable"); | ||
849 | if (ret) { | ||
850 | dev_err(&pdev->dev, | ||
851 | "failed to request gpio %d: %d\n", | ||
852 | panel_enable, ret); | ||
853 | goto error_panel_enable; | ||
854 | } | ||
855 | } | ||
856 | 927 | ||
857 | fb_info->pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); | 928 | fb_info->pseudo_palette = devm_kzalloc(&pdev->dev, sizeof(u32) * 16, |
929 | GFP_KERNEL); | ||
858 | if (!fb_info->pseudo_palette) { | 930 | if (!fb_info->pseudo_palette) { |
859 | ret = -ENOMEM; | 931 | ret = -ENOMEM; |
860 | goto error_pseudo_pallette; | 932 | goto fb_release; |
861 | } | 933 | } |
862 | 934 | ||
863 | INIT_LIST_HEAD(&fb_info->modelist); | 935 | INIT_LIST_HEAD(&fb_info->modelist); |
864 | 936 | ||
865 | host->sync = pdata->sync; | ||
866 | |||
867 | ret = mxsfb_init_fbinfo(host); | 937 | ret = mxsfb_init_fbinfo(host); |
868 | if (ret != 0) | 938 | if (ret != 0) |
869 | goto error_init_fb; | 939 | goto fb_release; |
870 | |||
871 | for (i = 0; i < pdata->mode_count; i++) | ||
872 | fb_add_videomode(&pdata->mode_list[i], &fb_info->modelist); | ||
873 | 940 | ||
874 | modelist = list_first_entry(&fb_info->modelist, | 941 | modelist = list_first_entry(&fb_info->modelist, |
875 | struct fb_modelist, list); | 942 | struct fb_modelist, list); |
@@ -883,7 +950,7 @@ static int mxsfb_probe(struct platform_device *pdev) | |||
883 | ret = register_framebuffer(fb_info); | 950 | ret = register_framebuffer(fb_info); |
884 | if (ret != 0) { | 951 | if (ret != 0) { |
885 | dev_err(&pdev->dev,"Failed to register framebuffer\n"); | 952 | dev_err(&pdev->dev,"Failed to register framebuffer\n"); |
886 | goto error_register; | 953 | goto fb_destroy; |
887 | } | 954 | } |
888 | 955 | ||
889 | if (!host->enabled) { | 956 | if (!host->enabled) { |
@@ -896,22 +963,12 @@ static int mxsfb_probe(struct platform_device *pdev) | |||
896 | 963 | ||
897 | return 0; | 964 | return 0; |
898 | 965 | ||
899 | error_register: | 966 | fb_destroy: |
900 | if (host->enabled) | 967 | if (host->enabled) |
901 | clk_disable_unprepare(host->clk); | 968 | clk_disable_unprepare(host->clk); |
902 | fb_destroy_modelist(&fb_info->modelist); | 969 | fb_destroy_modelist(&fb_info->modelist); |
903 | error_init_fb: | 970 | fb_release: |
904 | kfree(fb_info->pseudo_palette); | ||
905 | error_pseudo_pallette: | ||
906 | error_panel_enable: | ||
907 | clk_put(host->clk); | ||
908 | error_getclock: | ||
909 | error_getpin: | ||
910 | iounmap(host->base); | ||
911 | error_ioremap: | ||
912 | framebuffer_release(fb_info); | 971 | framebuffer_release(fb_info); |
913 | error_alloc_info: | ||
914 | release_mem_region(res->start, resource_size(res)); | ||
915 | 972 | ||
916 | return ret; | 973 | return ret; |
917 | } | 974 | } |
@@ -920,19 +977,14 @@ static int mxsfb_remove(struct platform_device *pdev) | |||
920 | { | 977 | { |
921 | struct fb_info *fb_info = platform_get_drvdata(pdev); | 978 | struct fb_info *fb_info = platform_get_drvdata(pdev); |
922 | struct mxsfb_info *host = to_imxfb_host(fb_info); | 979 | struct mxsfb_info *host = to_imxfb_host(fb_info); |
923 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
924 | 980 | ||
925 | if (host->enabled) | 981 | if (host->enabled) |
926 | mxsfb_disable_controller(fb_info); | 982 | mxsfb_disable_controller(fb_info); |
927 | 983 | ||
928 | unregister_framebuffer(fb_info); | 984 | unregister_framebuffer(fb_info); |
929 | kfree(fb_info->pseudo_palette); | ||
930 | mxsfb_free_videomem(host); | 985 | mxsfb_free_videomem(host); |
931 | iounmap(host->base); | ||
932 | clk_put(host->clk); | ||
933 | 986 | ||
934 | framebuffer_release(fb_info); | 987 | framebuffer_release(fb_info); |
935 | release_mem_region(res->start, resource_size(res)); | ||
936 | 988 | ||
937 | platform_set_drvdata(pdev, NULL); | 989 | platform_set_drvdata(pdev, NULL); |
938 | 990 | ||
diff --git a/include/linux/mxsfb.h b/include/linux/mxsfb.h deleted file mode 100644 index f80af8674342..000000000000 --- a/include/linux/mxsfb.h +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or | ||
3 | * modify it under the terms of the GNU General Public License | ||
4 | * as published by the Free Software Foundation; either version 2 | ||
5 | * of the License, or (at your option) any later version. | ||
6 | * This program is distributed in the hope that it will be useful, | ||
7 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
8 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
9 | * GNU General Public License for more details. | ||
10 | * | ||
11 | * You should have received a copy of the GNU General Public License | ||
12 | * along with this program; if not, write to the Free Software | ||
13 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
14 | * MA 02110-1301, USA. | ||
15 | */ | ||
16 | |||
17 | #ifndef __LINUX_MXSFB_H | ||
18 | #define __LINUX_MXSFB_H | ||
19 | |||
20 | #include <linux/fb.h> | ||
21 | |||
22 | #define STMLCDIF_8BIT 1 /** pixel data bus to the display is of 8 bit width */ | ||
23 | #define STMLCDIF_16BIT 0 /** pixel data bus to the display is of 16 bit width */ | ||
24 | #define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */ | ||
25 | #define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */ | ||
26 | |||
27 | #define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6) | ||
28 | #define MXSFB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */ | ||
29 | |||
30 | struct mxsfb_platform_data { | ||
31 | struct fb_videomode *mode_list; | ||
32 | unsigned mode_count; | ||
33 | |||
34 | unsigned default_bpp; | ||
35 | |||
36 | unsigned dotclk_delay; /* refer manual HW_LCDIF_VDCTRL4 register */ | ||
37 | unsigned ld_intf_width; /* refer STMLCDIF_* macros */ | ||
38 | |||
39 | unsigned fb_size; /* Size of the video memory. If zero a | ||
40 | * default will be used | ||
41 | */ | ||
42 | unsigned long fb_phys; /* physical address for the video memory. If | ||
43 | * zero the framebuffer memory will be dynamically | ||
44 | * allocated. If specified,fb_size must also be specified. | ||
45 | * fb_phys must be unused by Linux. | ||
46 | */ | ||
47 | u32 sync; /* sync mask, contains MXSFB specifics not | ||
48 | * carried in fb_info->var.sync | ||
49 | */ | ||
50 | }; | ||
51 | |||
52 | #endif /* __LINUX_MXSFB_H */ | ||
diff --git a/include/linux/spi/mxs-spi.h b/include/linux/spi/mxs-spi.h index 61ae1306db23..4835486f58e5 100644 --- a/include/linux/spi/mxs-spi.h +++ b/include/linux/spi/mxs-spi.h | |||
@@ -24,7 +24,7 @@ | |||
24 | #ifndef __LINUX_SPI_MXS_SPI_H__ | 24 | #ifndef __LINUX_SPI_MXS_SPI_H__ |
25 | #define __LINUX_SPI_MXS_SPI_H__ | 25 | #define __LINUX_SPI_MXS_SPI_H__ |
26 | 26 | ||
27 | #include <linux/fsl/mxs-dma.h> | 27 | #include <linux/dmaengine.h> |
28 | 28 | ||
29 | #define ssp_is_old(host) ((host)->devid == IMX23_SSP) | 29 | #define ssp_is_old(host) ((host)->devid == IMX23_SSP) |
30 | 30 | ||
@@ -137,9 +137,7 @@ struct mxs_ssp { | |||
137 | unsigned int clk_rate; | 137 | unsigned int clk_rate; |
138 | enum mxs_ssp_id devid; | 138 | enum mxs_ssp_id devid; |
139 | 139 | ||
140 | int dma_channel; | ||
141 | struct dma_chan *dmach; | 140 | struct dma_chan *dmach; |
142 | struct mxs_dma_data dma_data; | ||
143 | unsigned int dma_dir; | 141 | unsigned int dma_dir; |
144 | enum dma_transfer_direction slave_dirn; | 142 | enum dma_transfer_direction slave_dirn; |
145 | u32 ssp_pio_words[SSP_PIO_NUM]; | 143 | u32 ssp_pio_words[SSP_PIO_NUM]; |