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]; |
