diff options
238 files changed, 12679 insertions, 4211 deletions
diff --git a/Documentation/devicetree/bindings/arm/arm-boards b/Documentation/devicetree/bindings/arm/arm-boards index 5fac246a9530..3509707f9320 100644 --- a/Documentation/devicetree/bindings/arm/arm-boards +++ b/Documentation/devicetree/bindings/arm/arm-boards | |||
| @@ -14,6 +14,9 @@ Required nodes: | |||
| 14 | - core-module: the root node to the Integrator platforms must have | 14 | - core-module: the root node to the Integrator platforms must have |
| 15 | a core-module with regs and the compatible string | 15 | a core-module with regs and the compatible string |
| 16 | "arm,core-module-integrator" | 16 | "arm,core-module-integrator" |
| 17 | - external-bus-interface: the root node to the Integrator platforms | ||
| 18 | must have an external bus interface with regs and the | ||
| 19 | compatible-string "arm,external-bus-interface" | ||
| 17 | 20 | ||
| 18 | Required properties for the core module: | 21 | Required properties for the core module: |
| 19 | - regs: the location and size of the core module registers, one | 22 | - regs: the location and size of the core module registers, one |
| @@ -48,6 +51,11 @@ Required nodes: | |||
| 48 | reg = <0x10000000 0x200>; | 51 | reg = <0x10000000 0x200>; |
| 49 | }; | 52 | }; |
| 50 | 53 | ||
| 54 | ebi@12000000 { | ||
| 55 | compatible = "arm,external-bus-interface"; | ||
| 56 | reg = <0x12000000 0x100>; | ||
| 57 | }; | ||
| 58 | |||
| 51 | syscon { | 59 | syscon { |
| 52 | compatible = "arm,integrator-ap-syscon"; | 60 | compatible = "arm,integrator-ap-syscon"; |
| 53 | reg = <0x11000000 0x100>; | 61 | reg = <0x11000000 0x100>; |
diff --git a/Documentation/devicetree/bindings/arm/atmel-aic.txt b/Documentation/devicetree/bindings/arm/atmel-aic.txt index ad031211b5b8..2742e9cfd6b1 100644 --- a/Documentation/devicetree/bindings/arm/atmel-aic.txt +++ b/Documentation/devicetree/bindings/arm/atmel-aic.txt | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | Required properties: | 3 | Required properties: |
| 4 | - compatible: Should be "atmel,<chip>-aic" | 4 | - compatible: Should be "atmel,<chip>-aic" |
| 5 | <chip> can be "at91rm9200" or "sama5d3" | ||
| 5 | - interrupt-controller: Identifies the node as an interrupt controller. | 6 | - interrupt-controller: Identifies the node as an interrupt controller. |
| 6 | - interrupt-parent: For single AIC system, it is an empty property. | 7 | - interrupt-parent: For single AIC system, it is an empty property. |
| 7 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. | 8 | - #interrupt-cells: The number of cells to define the interrupts. It should be 3. |
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt index 78530e621a1e..16f60b41c147 100644 --- a/Documentation/devicetree/bindings/arm/atmel-at91.txt +++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt | |||
| @@ -58,7 +58,8 @@ Example: | |||
| 58 | }; | 58 | }; |
| 59 | 59 | ||
| 60 | RAMC SDRAM/DDR Controller required properties: | 60 | RAMC SDRAM/DDR Controller required properties: |
| 61 | - compatible: Should be "atmel,at91sam9260-sdramc", | 61 | - compatible: Should be "atmel,at91rm9200-sdramc", |
| 62 | "atmel,at91sam9260-sdramc", | ||
| 62 | "atmel,at91sam9g45-ddramc", | 63 | "atmel,at91sam9g45-ddramc", |
| 63 | - reg: Should contain registers location and length | 64 | - reg: Should contain registers location and length |
| 64 | For at91sam9263 and at91sam9g45 you must specify 2 entries. | 65 | For at91sam9263 and at91sam9g45 you must specify 2 entries. |
diff --git a/Documentation/devicetree/bindings/arm/moxart.txt b/Documentation/devicetree/bindings/arm/moxart.txt new file mode 100644 index 000000000000..11087edb0658 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/moxart.txt | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | MOXA ART device tree bindings | ||
| 2 | |||
| 3 | Boards with the MOXA ART SoC shall have the following properties: | ||
| 4 | |||
| 5 | Required root node property: | ||
| 6 | |||
| 7 | compatible = "moxa,moxart"; | ||
| 8 | |||
| 9 | Boards: | ||
| 10 | |||
| 11 | - UC-7112-LX: embedded computer | ||
| 12 | compatible = "moxa,moxart-uc-7112-lx", "moxa,moxart" | ||
diff --git a/Documentation/devicetree/bindings/arm/samsung/sysreg.txt b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt index 5039c0a12f55..0ab3251a6ec2 100644 --- a/Documentation/devicetree/bindings/arm/samsung/sysreg.txt +++ b/Documentation/devicetree/bindings/arm/samsung/sysreg.txt | |||
| @@ -1,7 +1,12 @@ | |||
| 1 | SAMSUNG S5P/Exynos SoC series System Registers (SYSREG) | 1 | SAMSUNG S5P/Exynos SoC series System Registers (SYSREG) |
| 2 | 2 | ||
| 3 | Properties: | 3 | Properties: |
| 4 | - name : should be 'sysreg'; | ||
| 5 | - compatible : should contain "samsung,<chip name>-sysreg", "syscon"; | 4 | - compatible : should contain "samsung,<chip name>-sysreg", "syscon"; |
| 6 | For Exynos4 SoC series it should be "samsung,exynos4-sysreg", "syscon"; | 5 | For Exynos4 SoC series it should be "samsung,exynos4-sysreg", "syscon"; |
| 7 | - reg : offset and length of the register set. | 6 | - reg : offset and length of the register set. |
| 7 | |||
| 8 | Example: | ||
| 9 | syscon@10010000 { | ||
| 10 | compatible = "samsung,exynos4-sysreg", "syscon"; | ||
| 11 | reg = <0x10010000 0x400>; | ||
| 12 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt new file mode 100644 index 000000000000..952e373178d2 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-div6-clocks.txt | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | * Renesas CPG DIV6 Clock | ||
| 2 | |||
| 3 | The CPG DIV6 clocks are variable factor clocks provided by the Clock Pulse | ||
| 4 | Generator (CPG). They clock input is divided by a configurable factor from 1 | ||
| 5 | to 64. | ||
| 6 | |||
| 7 | Required Properties: | ||
| 8 | |||
| 9 | - compatible: Must be one of the following | ||
| 10 | - "renesas,r8a7790-div6-clock" for R8A7790 (R-Car H2) DIV6 clocks | ||
| 11 | - "renesas,r8a7791-div6-clock" for R8A7791 (R-Car M2) DIV6 clocks | ||
| 12 | - "renesas,cpg-div6-clock" for generic DIV6 clocks | ||
| 13 | - reg: Base address and length of the memory resource used by the DIV6 clock | ||
| 14 | - clocks: Reference to the parent clock | ||
| 15 | - #clock-cells: Must be 0 | ||
| 16 | - clock-output-names: The name of the clock as a free-form string | ||
| 17 | |||
| 18 | |||
| 19 | Example | ||
| 20 | ------- | ||
| 21 | |||
| 22 | sd2_clk: sd2_clk@e6150078 { | ||
| 23 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 24 | reg = <0 0xe6150078 0 4>; | ||
| 25 | clocks = <&pll1_div2_clk>; | ||
| 26 | #clock-cells = <0>; | ||
| 27 | clock-output-names = "sd2"; | ||
| 28 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt new file mode 100644 index 000000000000..a6a352c2771e --- /dev/null +++ b/Documentation/devicetree/bindings/clock/renesas,cpg-mstp-clocks.txt | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | * Renesas CPG Module Stop (MSTP) Clocks | ||
| 2 | |||
| 3 | The CPG can gate SoC device clocks. The gates are organized in groups of up to | ||
| 4 | 32 gates. | ||
| 5 | |||
| 6 | This device tree binding describes a single 32 gate clocks group per node. | ||
| 7 | Clocks are referenced by user nodes by the MSTP node phandle and the clock | ||
| 8 | index in the group, from 0 to 31. | ||
| 9 | |||
| 10 | Required Properties: | ||
| 11 | |||
| 12 | - compatible: Must be one of the following | ||
| 13 | - "renesas,r8a7790-mstp-clocks" for R8A7790 (R-Car H2) MSTP gate clocks | ||
| 14 | - "renesas,r8a7791-mstp-clocks" for R8A7791 (R-Car M2) MSTP gate clocks | ||
| 15 | - "renesas,cpg-mstp-clock" for generic MSTP gate clocks | ||
| 16 | - reg: Base address and length of the I/O mapped registers used by the MSTP | ||
| 17 | clocks. The first register is the clock control register and is mandatory. | ||
| 18 | The second register is the clock status register and is optional when not | ||
| 19 | implemented in hardware. | ||
| 20 | - clocks: Reference to the parent clocks, one per output clock. The parents | ||
| 21 | must appear in the same order as the output clocks. | ||
| 22 | - #clock-cells: Must be 1 | ||
| 23 | - clock-output-names: The name of the clocks as free-form strings | ||
| 24 | - renesas,indices: Indices of the gate clocks into the group (0 to 31) | ||
| 25 | |||
| 26 | The clocks, clock-output-names and renesas,indices properties contain one | ||
| 27 | entry per gate clock. The MSTP groups are sparsely populated. Unimplemented | ||
| 28 | gate clocks must not be declared. | ||
| 29 | |||
| 30 | |||
| 31 | Example | ||
| 32 | ------- | ||
| 33 | |||
| 34 | #include <dt-bindings/clock/r8a7790-clock.h> | ||
| 35 | |||
| 36 | mstp3_clks: mstp3_clks@e615013c { | ||
| 37 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 38 | reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; | ||
| 39 | clocks = <&cp_clk>, <&mmc1_clk>, <&sd3_clk>, <&sd2_clk>, | ||
| 40 | <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, | ||
| 41 | <&mmc0_clk>; | ||
| 42 | #clock-cells = <1>; | ||
| 43 | clock-output-names = | ||
| 44 | "tpu0", "mmcif1", "sdhi3", "sdhi2", | ||
| 45 | "sdhi1", "sdhi0", "mmcif0"; | ||
| 46 | renesas,clock-indices = < | ||
| 47 | R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3 | ||
| 48 | R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 | ||
| 49 | R8A7790_CLK_MMCIF0 | ||
| 50 | >; | ||
| 51 | }; | ||
diff --git a/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt new file mode 100644 index 000000000000..7b41c2fe54db --- /dev/null +++ b/Documentation/devicetree/bindings/clock/renesas,rcar-gen2-cpg-clocks.txt | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | * Renesas R-Car Gen2 Clock Pulse Generator (CPG) | ||
| 2 | |||
| 3 | The CPG generates core clocks for the R-Car Gen2 SoCs. It includes three PLLs | ||
| 4 | and several fixed ratio dividers. | ||
| 5 | |||
| 6 | Required Properties: | ||
| 7 | |||
| 8 | - compatible: Must be one of | ||
| 9 | - "renesas,r8a7790-cpg-clocks" for the r8a7790 CPG | ||
| 10 | - "renesas,r8a7791-cpg-clocks" for the r8a7791 CPG | ||
| 11 | - "renesas,rcar-gen2-cpg-clocks" for the generic R-Car Gen2 CPG | ||
| 12 | |||
| 13 | - reg: Base address and length of the memory resource used by the CPG | ||
| 14 | |||
| 15 | - clocks: Reference to the parent clock | ||
| 16 | - #clock-cells: Must be 1 | ||
| 17 | - clock-output-names: The names of the clocks. Supported clocks are "main", | ||
| 18 | "pll0", "pll1", "pll3", "lb", "qspi", "sdh", "sd0", "sd1" and "z" | ||
| 19 | |||
| 20 | |||
| 21 | Example | ||
| 22 | ------- | ||
| 23 | |||
| 24 | cpg_clocks: cpg_clocks@e6150000 { | ||
| 25 | compatible = "renesas,r8a7790-cpg-clocks", | ||
| 26 | "renesas,rcar-gen2-cpg-clocks"; | ||
| 27 | reg = <0 0xe6150000 0 0x1000>; | ||
| 28 | clocks = <&extal_clk>; | ||
| 29 | #clock-cells = <1>; | ||
| 30 | clock-output-names = "main", "pll0, "pll1", "pll3", | ||
| 31 | "lb", "qspi", "sdh", "sd0", "sd1", "z"; | ||
| 32 | }; | ||
diff --git a/Documentation/devicetree/bindings/dma/ste-dma40.txt b/Documentation/devicetree/bindings/dma/ste-dma40.txt index a8c21c256baa..1f5729f10621 100644 --- a/Documentation/devicetree/bindings/dma/ste-dma40.txt +++ b/Documentation/devicetree/bindings/dma/ste-dma40.txt | |||
| @@ -50,6 +50,9 @@ Each dmas request consists of 4 cells: | |||
| 50 | 0x00000008: Use fixed channel: | 50 | 0x00000008: Use fixed channel: |
| 51 | Use automatic channel selection when unset | 51 | Use automatic channel selection when unset |
| 52 | Use DMA request line number when set | 52 | Use DMA request line number when set |
| 53 | 0x00000010: Set channel as high priority: | ||
| 54 | Normal priority when unset | ||
| 55 | High priority when set | ||
| 53 | 56 | ||
| 54 | Example: | 57 | Example: |
| 55 | 58 | ||
diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt index c67b975c8906..532b1d440abc 100644 --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt | |||
| @@ -16,6 +16,8 @@ Required Properties: | |||
| 16 | specific extensions. | 16 | specific extensions. |
| 17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 | 17 | - "samsung,exynos5250-dw-mshc": for controllers with Samsung Exynos5250 |
| 18 | specific extensions. | 18 | specific extensions. |
| 19 | - "samsung,exynos5420-dw-mshc": for controllers with Samsung Exynos5420 | ||
| 20 | specific extensions. | ||
| 19 | 21 | ||
| 20 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface | 22 | * samsung,dw-mshc-ciu-div: Specifies the divider value for the card interface |
| 21 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and | 23 | unit (ciu) clock. This property is applicable only for Exynos5 SoC's and |
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt index b5a86d20ee36..167d5dab9f64 100644 --- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt +++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.txt | |||
| @@ -31,38 +31,58 @@ Required properties: | |||
| 31 | 7: .. | 31 | 7: .. |
| 32 | i: Local Timer Interrupt n | 32 | i: Local Timer Interrupt n |
| 33 | 33 | ||
| 34 | Example 1: In this example, the system uses only the first global timer | 34 | For MCT block that uses a per-processor interrupt for local timers, such |
| 35 | interrupt generated by MCT and the remaining three global timer | 35 | as ones compatible with "samsung,exynos4412-mct", only one local timer |
| 36 | interrupts are unused. Two local timer interrupts have been | 36 | interrupt might be specified, meaning that all local timers use the same |
| 37 | specified. | 37 | per processor interrupt. |
| 38 | |||
| 39 | Example 1: In this example, the IP contains two local timers, using separate | ||
| 40 | interrupts, so two local timer interrupts have been specified, | ||
| 41 | in addition to four global timer interrupts. | ||
| 38 | 42 | ||
| 39 | mct@10050000 { | 43 | mct@10050000 { |
| 40 | compatible = "samsung,exynos4210-mct"; | 44 | compatible = "samsung,exynos4210-mct"; |
| 41 | reg = <0x10050000 0x800>; | 45 | reg = <0x10050000 0x800>; |
| 42 | interrupts = <0 57 0>, <0 0 0>, <0 0 0>, <0 0 0>, | 46 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, |
| 43 | <0 42 0>, <0 48 0>; | 47 | <0 42 0>, <0 48 0>; |
| 44 | }; | 48 | }; |
| 45 | 49 | ||
| 46 | Example 2: In this example, the MCT global and local timer interrupts are | 50 | Example 2: In this example, the timer interrupts are connected to two separate |
| 47 | connected to two separate interrupt controllers. Hence, an | 51 | interrupt controllers. Hence, an interrupt-map is created to map |
| 48 | interrupt-map is created to map the interrupts to the respective | 52 | the interrupts to the respective interrupt controllers. |
| 49 | interrupt controllers. | ||
| 50 | 53 | ||
| 51 | mct@101C0000 { | 54 | mct@101C0000 { |
| 52 | compatible = "samsung,exynos4210-mct"; | 55 | compatible = "samsung,exynos4210-mct"; |
| 53 | reg = <0x101C0000 0x800>; | 56 | reg = <0x101C0000 0x800>; |
| 54 | interrupt-controller; | ||
| 55 | #interrups-cells = <2>; | ||
| 56 | interrupt-parent = <&mct_map>; | 57 | interrupt-parent = <&mct_map>; |
| 57 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | 58 | interrupts = <0>, <1>, <2>, <3>, <4>, <5>; |
| 58 | <4 0>, <5 0>; | ||
| 59 | 59 | ||
| 60 | mct_map: mct-map { | 60 | mct_map: mct-map { |
| 61 | #interrupt-cells = <2>; | 61 | #interrupt-cells = <1>; |
| 62 | #address-cells = <0>; | 62 | #address-cells = <0>; |
| 63 | #size-cells = <0>; | 63 | #size-cells = <0>; |
| 64 | interrupt-map = <0x0 0 &combiner 23 3>, | 64 | interrupt-map = <0 &gic 0 57 0>, |
| 65 | <0x4 0 &gic 0 120 0>, | 65 | <1 &gic 0 69 0>, |
| 66 | <0x5 0 &gic 0 121 0>; | 66 | <2 &combiner 12 6>, |
| 67 | <3 &combiner 12 7>, | ||
| 68 | <4 &gic 0 42 0>, | ||
| 69 | <5 &gic 0 48 0>; | ||
| 67 | }; | 70 | }; |
| 68 | }; | 71 | }; |
| 72 | |||
| 73 | Example 3: In this example, the IP contains four local timers, but using | ||
| 74 | a per-processor interrupt to handle them. Either all the local | ||
| 75 | timer interrupts can be specified, with the same interrupt specifier | ||
| 76 | value or just the first one. | ||
| 77 | |||
| 78 | mct@10050000 { | ||
| 79 | compatible = "samsung,exynos4412-mct"; | ||
| 80 | reg = <0x10050000 0x800>; | ||
| 81 | |||
| 82 | /* Both ways are possible in this case. Either: */ | ||
| 83 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
| 84 | <0 42 0>; | ||
| 85 | /* or: */ | ||
| 86 | interrupts = <0 57 0>, <0 69 0>, <0 70 0>, <0 71 0>, | ||
| 87 | <0 42 0>, <0 42 0>, <0 42 0>, <0 42 0>; | ||
| 88 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/keystone-phy.txt b/Documentation/devicetree/bindings/usb/keystone-phy.txt new file mode 100644 index 000000000000..f37b3a86341d --- /dev/null +++ b/Documentation/devicetree/bindings/usb/keystone-phy.txt | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | TI Keystone USB PHY | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | - compatible: should be "ti,keystone-usbphy". | ||
| 5 | - #address-cells, #size-cells : should be '1' if the device has sub-nodes | ||
| 6 | with 'reg' property. | ||
| 7 | - reg : Address and length of the usb phy control register set. | ||
| 8 | |||
| 9 | The main purpose of this PHY driver is to enable the USB PHY reference clock | ||
| 10 | gate on the Keystone SOC for both the USB2 and USB3 PHY. Otherwise it is just | ||
| 11 | an NOP PHY driver. Hence this node is referenced as both the usb2 and usb3 | ||
| 12 | phy node in the USB Glue layer driver node. | ||
| 13 | |||
| 14 | usb_phy: usb_phy@2620738 { | ||
| 15 | compatible = "ti,keystone-usbphy"; | ||
| 16 | #address-cells = <1>; | ||
| 17 | #size-cells = <1>; | ||
| 18 | reg = <0x2620738 32>; | ||
| 19 | status = "disabled"; | ||
| 20 | }; | ||
diff --git a/Documentation/devicetree/bindings/usb/keystone-usb.txt b/Documentation/devicetree/bindings/usb/keystone-usb.txt new file mode 100644 index 000000000000..60527d335b58 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/keystone-usb.txt | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | TI Keystone Soc USB Controller | ||
| 2 | |||
| 3 | DWC3 GLUE | ||
| 4 | |||
| 5 | Required properties: | ||
| 6 | - compatible: should be "ti,keystone-dwc3". | ||
| 7 | - #address-cells, #size-cells : should be '1' if the device has sub-nodes | ||
| 8 | with 'reg' property. | ||
| 9 | - reg : Address and length of the register set for the USB subsystem on | ||
| 10 | the SOC. | ||
| 11 | - interrupts : The irq number of this device that is used to interrupt the | ||
| 12 | MPU. | ||
| 13 | - ranges: allows valid 1:1 translation between child's address space and | ||
| 14 | parent's address space. | ||
| 15 | - clocks: Clock IDs array as required by the controller. | ||
| 16 | - clock-names: names of clocks correseponding to IDs in the clock property. | ||
| 17 | |||
| 18 | Sub-nodes: | ||
| 19 | The dwc3 core should be added as subnode to Keystone DWC3 glue. | ||
| 20 | - dwc3 : | ||
| 21 | The binding details of dwc3 can be found in: | ||
| 22 | Documentation/devicetree/bindings/usb/dwc3.txt | ||
| 23 | |||
| 24 | Example: | ||
| 25 | usb: usb@2680000 { | ||
| 26 | compatible = "ti,keystone-dwc3"; | ||
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <1>; | ||
| 29 | reg = <0x2680000 0x10000>; | ||
| 30 | clocks = <&clkusb>; | ||
| 31 | clock-names = "usb"; | ||
| 32 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | ||
| 33 | ranges; | ||
| 34 | status = "disabled"; | ||
| 35 | |||
| 36 | dwc3@2690000 { | ||
| 37 | compatible = "synopsys,dwc3"; | ||
| 38 | reg = <0x2690000 0x70000>; | ||
| 39 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | ||
| 40 | usb-phy = <&usb_phy>, <&usb_phy>; | ||
| 41 | }; | ||
| 42 | }; | ||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 91896a3f703a..faa38bcc7001 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
| @@ -31,6 +31,7 @@ dtb-$(CONFIG_ARCH_AT91) += pm9g45.dtb | |||
| 31 | dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb | 31 | dtb-$(CONFIG_ARCH_AT91) += at91sam9n12ek.dtb |
| 32 | # sam9x5 | 32 | # sam9x5 |
| 33 | dtb-$(CONFIG_ARCH_AT91) += at91-ariag25.dtb | 33 | dtb-$(CONFIG_ARCH_AT91) += at91-ariag25.dtb |
| 34 | dtb-$(CONFIG_ARCH_AT91) += at91-cosino_mega2560.dtb | ||
| 34 | dtb-$(CONFIG_ARCH_AT91) += at91sam9g15ek.dtb | 35 | dtb-$(CONFIG_ARCH_AT91) += at91sam9g15ek.dtb |
| 35 | dtb-$(CONFIG_ARCH_AT91) += at91sam9g25ek.dtb | 36 | dtb-$(CONFIG_ARCH_AT91) += at91sam9g25ek.dtb |
| 36 | dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb | 37 | dtb-$(CONFIG_ARCH_AT91) += at91sam9g35ek.dtb |
| @@ -41,6 +42,8 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d31ek.dtb | |||
| 41 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb | 42 | dtb-$(CONFIG_ARCH_AT91) += sama5d33ek.dtb |
| 42 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb | 43 | dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb |
| 43 | dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb | 44 | dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb |
| 45 | dtb-$(CONFIG_ARCH_AT91) += sama5d36ek.dtb | ||
| 46 | |||
| 44 | dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb | 47 | dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb |
| 45 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb | 48 | dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb |
| 46 | dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm11351-brt.dtb \ | 49 | dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm11351-brt.dtb \ |
| @@ -64,10 +67,12 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ | |||
| 64 | exynos4412-odroidx.dtb \ | 67 | exynos4412-odroidx.dtb \ |
| 65 | exynos4412-origen.dtb \ | 68 | exynos4412-origen.dtb \ |
| 66 | exynos4412-smdk4412.dtb \ | 69 | exynos4412-smdk4412.dtb \ |
| 70 | exynos4412-tiny4412.dtb \ | ||
| 67 | exynos4412-trats2.dtb \ | 71 | exynos4412-trats2.dtb \ |
| 68 | exynos5250-arndale.dtb \ | 72 | exynos5250-arndale.dtb \ |
| 69 | exynos5250-smdk5250.dtb \ | 73 | exynos5250-smdk5250.dtb \ |
| 70 | exynos5250-snow.dtb \ | 74 | exynos5250-snow.dtb \ |
| 75 | exynos5420-arndale-octa.dtb \ | ||
| 71 | exynos5420-smdk5420.dtb \ | 76 | exynos5420-smdk5420.dtb \ |
| 72 | exynos5440-sd5v1.dtb \ | 77 | exynos5440-sd5v1.dtb \ |
| 73 | exynos5440-ssdk5440.dtb | 78 | exynos5440-ssdk5440.dtb |
| @@ -91,11 +96,13 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \ | |||
| 91 | kirkwood-iomega_ix2_200.dtb \ | 96 | kirkwood-iomega_ix2_200.dtb \ |
| 92 | kirkwood-is2.dtb \ | 97 | kirkwood-is2.dtb \ |
| 93 | kirkwood-km_kirkwood.dtb \ | 98 | kirkwood-km_kirkwood.dtb \ |
| 99 | kirkwood-laplug.dtb \ | ||
| 94 | kirkwood-lschlv2.dtb \ | 100 | kirkwood-lschlv2.dtb \ |
| 95 | kirkwood-lsxhl.dtb \ | 101 | kirkwood-lsxhl.dtb \ |
| 96 | kirkwood-mplcec4.dtb \ | 102 | kirkwood-mplcec4.dtb \ |
| 97 | kirkwood-mv88f6281gtw-ge.dtb \ | 103 | kirkwood-mv88f6281gtw-ge.dtb \ |
| 98 | kirkwood-netgear_readynas_duo_v2.dtb \ | 104 | kirkwood-netgear_readynas_duo_v2.dtb \ |
| 105 | kirkwood-netgear_readynas_nv+_v2.dtb \ | ||
| 99 | kirkwood-ns2.dtb \ | 106 | kirkwood-ns2.dtb \ |
| 100 | kirkwood-ns2lite.dtb \ | 107 | kirkwood-ns2lite.dtb \ |
| 101 | kirkwood-ns2max.dtb \ | 108 | kirkwood-ns2max.dtb \ |
| @@ -110,6 +117,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \ | |||
| 110 | kirkwood-ts219-6281.dtb \ | 117 | kirkwood-ts219-6281.dtb \ |
| 111 | kirkwood-ts219-6282.dtb | 118 | kirkwood-ts219-6282.dtb |
| 112 | dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb | 119 | dtb-$(CONFIG_ARCH_MARCO) += marco-evb.dtb |
| 120 | dtb-$(CONFIG_ARCH_MOXART) += moxart-uc7112lx.dtb | ||
| 113 | dtb-$(CONFIG_ARCH_MSM) += qcom-msm8660-surf.dtb \ | 121 | dtb-$(CONFIG_ARCH_MSM) += qcom-msm8660-surf.dtb \ |
| 114 | qcom-msm8960-cdp.dtb | 122 | qcom-msm8960-cdp.dtb |
| 115 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ | 123 | dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ |
| @@ -120,6 +128,7 @@ dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ | |||
| 120 | armada-xp-axpwifiap.dtb \ | 128 | armada-xp-axpwifiap.dtb \ |
| 121 | armada-xp-db.dtb \ | 129 | armada-xp-db.dtb \ |
| 122 | armada-xp-gp.dtb \ | 130 | armada-xp-gp.dtb \ |
| 131 | armada-xp-netgear-rn2120.dtb \ | ||
| 123 | armada-xp-matrix.dtb \ | 132 | armada-xp-matrix.dtb \ |
| 124 | armada-xp-openblocks-ax3-4.dtb | 133 | armada-xp-openblocks-ax3-4.dtb |
| 125 | dtb-$(CONFIG_ARCH_MXC) += \ | 134 | dtb-$(CONFIG_ARCH_MXC) += \ |
| @@ -261,6 +270,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ | |||
| 261 | sun4i-a10-hackberry.dtb \ | 270 | sun4i-a10-hackberry.dtb \ |
| 262 | sun5i-a10s-olinuxino-micro.dtb \ | 271 | sun5i-a10s-olinuxino-micro.dtb \ |
| 263 | sun5i-a13-olinuxino.dtb \ | 272 | sun5i-a13-olinuxino.dtb \ |
| 273 | sun5i-a13-olinuxino-micro.dtb \ | ||
| 264 | sun6i-a31-colombus.dtb \ | 274 | sun6i-a31-colombus.dtb \ |
| 265 | sun7i-a20-cubieboard2.dtb \ | 275 | sun7i-a20-cubieboard2.dtb \ |
| 266 | sun7i-a20-cubietruck.dtb \ | 276 | sun7i-a20-cubietruck.dtb \ |
diff --git a/arch/arm/boot/dts/animeo_ip.dts b/arch/arm/boot/dts/animeo_ip.dts index 3a1de9eb5111..3c4f6d983cbd 100644 --- a/arch/arm/boot/dts/animeo_ip.dts +++ b/arch/arm/boot/dts/animeo_ip.dts | |||
| @@ -90,34 +90,19 @@ | |||
| 90 | nand-on-flash-bbt; | 90 | nand-on-flash-bbt; |
| 91 | status = "okay"; | 91 | status = "okay"; |
| 92 | 92 | ||
| 93 | at91bootstrap@0 { | 93 | barebox@0 { |
| 94 | label = "at91bootstrap"; | ||
| 95 | reg = <0x0 0x8000>; | ||
| 96 | }; | ||
| 97 | |||
| 98 | barebox@8000 { | ||
| 99 | label = "barebox"; | 94 | label = "barebox"; |
| 100 | reg = <0x8000 0x40000>; | 95 | reg = <0x0 0x58000>; |
| 101 | }; | ||
| 102 | |||
| 103 | bareboxenv@48000 { | ||
| 104 | label = "bareboxenv"; | ||
| 105 | reg = <0x48000 0x8000>; | ||
| 106 | }; | ||
| 107 | |||
| 108 | user_block@0x50000 { | ||
| 109 | label = "user_block"; | ||
| 110 | reg = <0x50000 0xb0000>; | ||
| 111 | }; | 96 | }; |
| 112 | 97 | ||
| 113 | kernel@100000 { | 98 | u_boot_env@58000 { |
| 114 | label = "kernel"; | 99 | label = "u_boot_env"; |
| 115 | reg = <0x100000 0x1b0000>; | 100 | reg = <0x58000 0x8000>; |
| 116 | }; | 101 | }; |
| 117 | 102 | ||
| 118 | root@2b0000 { | 103 | ubi@60000 { |
| 119 | label = "root"; | 104 | label = "ubi"; |
| 120 | reg = <0x2b0000 0x1D50000>; | 105 | reg = <0x60000 0x1FA0000>; |
| 121 | }; | 106 | }; |
| 122 | }; | 107 | }; |
| 123 | 108 | ||
diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts b/arch/arm/boot/dts/armada-370-mirabox.dts index 2471d9da767b..944e8785b308 100644 --- a/arch/arm/boot/dts/armada-370-mirabox.dts +++ b/arch/arm/boot/dts/armada-370-mirabox.dts | |||
| @@ -74,13 +74,13 @@ | |||
| 74 | green_pwr_led { | 74 | green_pwr_led { |
| 75 | label = "mirabox:green:pwr"; | 75 | label = "mirabox:green:pwr"; |
| 76 | gpios = <&gpio1 31 1>; | 76 | gpios = <&gpio1 31 1>; |
| 77 | linux,default-trigger = "heartbeat"; | 77 | default-state = "keep"; |
| 78 | }; | 78 | }; |
| 79 | 79 | ||
| 80 | blue_stat_led { | 80 | blue_stat_led { |
| 81 | label = "mirabox:blue:stat"; | 81 | label = "mirabox:blue:stat"; |
| 82 | gpios = <&gpio2 0 1>; | 82 | gpios = <&gpio2 0 1>; |
| 83 | linux,default-trigger = "cpu0"; | 83 | default-state = "off"; |
| 84 | }; | 84 | }; |
| 85 | 85 | ||
| 86 | green_stat_led { | 86 | green_stat_led { |
| @@ -139,6 +139,27 @@ | |||
| 139 | reg = <0x25>; | 139 | reg = <0x25>; |
| 140 | }; | 140 | }; |
| 141 | }; | 141 | }; |
| 142 | |||
| 143 | nand@d0000 { | ||
| 144 | status = "okay"; | ||
| 145 | num-cs = <1>; | ||
| 146 | marvell,nand-keep-config; | ||
| 147 | marvell,nand-enable-arbiter; | ||
| 148 | nand-on-flash-bbt; | ||
| 149 | |||
| 150 | partition@0 { | ||
| 151 | label = "U-Boot"; | ||
| 152 | reg = <0 0x400000>; | ||
| 153 | }; | ||
| 154 | partition@400000 { | ||
| 155 | label = "Linux"; | ||
| 156 | reg = <0x400000 0x400000>; | ||
| 157 | }; | ||
| 158 | partition@800000 { | ||
| 159 | label = "Filesystem"; | ||
| 160 | reg = <0x800000 0x3f800000>; | ||
| 161 | }; | ||
| 162 | }; | ||
| 142 | }; | 163 | }; |
| 143 | }; | 164 | }; |
| 144 | }; | 165 | }; |
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn102.dts b/arch/arm/boot/dts/armada-370-netgear-rn102.dts index 8ac2ac1f69cc..651aeb5ef439 100644 --- a/arch/arm/boot/dts/armada-370-netgear-rn102.dts +++ b/arch/arm/boot/dts/armada-370-netgear-rn102.dts | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | 13 | ||
| 14 | #include <dt-bindings/input/input.h> | ||
| 15 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | #include "armada-370.dtsi" | 16 | #include "armada-370.dtsi" |
| 15 | 17 | ||
| 16 | / { | 18 | / { |
| @@ -62,6 +64,7 @@ | |||
| 62 | marvell,pins = "mpp57"; | 64 | marvell,pins = "mpp57"; |
| 63 | marvell,function = "gpio"; | 65 | marvell,function = "gpio"; |
| 64 | }; | 66 | }; |
| 67 | |||
| 65 | sata1_led_pin: sata1-led-pin { | 68 | sata1_led_pin: sata1-led-pin { |
| 66 | marvell,pins = "mpp15"; | 69 | marvell,pins = "mpp15"; |
| 67 | marvell,function = "gpio"; | 70 | marvell,function = "gpio"; |
| @@ -77,6 +80,21 @@ | |||
| 77 | marvell,function = "gpio"; | 80 | marvell,function = "gpio"; |
| 78 | }; | 81 | }; |
| 79 | 82 | ||
| 83 | backup_button_pin: backup-button-pin { | ||
| 84 | marvell,pins = "mpp58"; | ||
| 85 | marvell,function = "gpio"; | ||
| 86 | }; | ||
| 87 | |||
| 88 | power_button_pin: power-button-pin { | ||
| 89 | marvell,pins = "mpp62"; | ||
| 90 | marvell,function = "gpio"; | ||
| 91 | }; | ||
| 92 | |||
| 93 | reset_button_pin: reset-button-pin { | ||
| 94 | marvell,pins = "mpp6"; | ||
| 95 | marvell,function = "gpio"; | ||
| 96 | }; | ||
| 97 | |||
| 80 | poweroff: poweroff { | 98 | poweroff: poweroff { |
| 81 | marvell,pins = "mpp8"; | 99 | marvell,pins = "mpp8"; |
| 82 | marvell,function = "gpio"; | 100 | marvell,function = "gpio"; |
| @@ -84,7 +102,7 @@ | |||
| 84 | }; | 102 | }; |
| 85 | 103 | ||
| 86 | mdio { | 104 | mdio { |
| 87 | phy0: ethernet-phy@0 { | 105 | phy0: ethernet-phy@0 { /* Marvell 88E1318 */ |
| 88 | reg = <0>; | 106 | reg = <0>; |
| 89 | }; | 107 | }; |
| 90 | }; | 108 | }; |
| @@ -104,6 +122,11 @@ | |||
| 104 | clock-frequency = <100000>; | 122 | clock-frequency = <100000>; |
| 105 | status = "okay"; | 123 | status = "okay"; |
| 106 | 124 | ||
| 125 | isl12057: isl12057@68 { | ||
| 126 | compatible = "isl,isl12057"; | ||
| 127 | reg = <0x68>; | ||
| 128 | }; | ||
| 129 | |||
| 107 | g762: g762@3e { | 130 | g762: g762@3e { |
| 108 | compatible = "gmt,g762"; | 131 | compatible = "gmt,g762"; |
| 109 | reg = <0x3e>; | 132 | reg = <0x3e>; |
| @@ -113,82 +136,116 @@ | |||
| 113 | pwm_polarity = <0>; | 136 | pwm_polarity = <0>; |
| 114 | }; | 137 | }; |
| 115 | }; | 138 | }; |
| 139 | |||
| 140 | nand@d0000 { | ||
| 141 | status = "okay"; | ||
| 142 | num-cs = <1>; | ||
| 143 | marvell,nand-keep-config; | ||
| 144 | marvell,nand-enable-arbiter; | ||
| 145 | nand-on-flash-bbt; | ||
| 146 | |||
| 147 | partition@0 { | ||
| 148 | label = "u-boot"; | ||
| 149 | reg = <0x0000000 0x180000>; /* 1.5MB */ | ||
| 150 | read-only; | ||
| 151 | }; | ||
| 152 | |||
| 153 | partition@180000 { | ||
| 154 | label = "u-boot-env"; | ||
| 155 | reg = <0x180000 0x20000>; /* 128KB */ | ||
| 156 | read-only; | ||
| 157 | }; | ||
| 158 | |||
| 159 | partition@200000 { | ||
| 160 | label = "uImage"; | ||
| 161 | reg = <0x0200000 0x600000>; /* 6MB */ | ||
| 162 | }; | ||
| 163 | |||
| 164 | partition@800000 { | ||
| 165 | label = "minirootfs"; | ||
| 166 | reg = <0x0800000 0x400000>; /* 4MB */ | ||
| 167 | }; | ||
| 168 | |||
| 169 | /* Last MB is for the BBT, i.e. not writable */ | ||
| 170 | partition@c00000 { | ||
| 171 | label = "ubifs"; | ||
| 172 | reg = <0x0c00000 0x7400000>; /* 116MB */ | ||
| 173 | }; | ||
| 174 | }; | ||
| 116 | }; | 175 | }; |
| 117 | }; | 176 | }; |
| 118 | 177 | ||
| 119 | clocks { | 178 | clocks { |
| 120 | #address-cells = <1>; | 179 | g762_clk: g762-oscillator { |
| 121 | #size-cells = <0>; | ||
| 122 | |||
| 123 | g762_clk: fixedclk { | ||
| 124 | compatible = "fixed-clock"; | 180 | compatible = "fixed-clock"; |
| 125 | #clock-cells = <0>; | 181 | #clock-cells = <0>; |
| 126 | clock-frequency = <8192>; | 182 | clock-frequency = <8192>; |
| 127 | }; | 183 | }; |
| 128 | }; | 184 | }; |
| 129 | 185 | ||
| 130 | gpio_leds { | 186 | gpio-leds { |
| 131 | compatible = "gpio-leds"; | 187 | compatible = "gpio-leds"; |
| 132 | pinctrl-0 = < &power_led_pin | 188 | pinctrl-0 = <&power_led_pin |
| 133 | &sata1_led_pin | 189 | &sata1_led_pin |
| 134 | &sata2_led_pin | 190 | &sata2_led_pin |
| 135 | &backup_led_pin >; | 191 | &backup_led_pin>; |
| 136 | pinctrl-names = "default"; | 192 | pinctrl-names = "default"; |
| 137 | 193 | ||
| 138 | blue_power_led { | 194 | blue-power-led { |
| 139 | label = "rn102:blue:pwr"; | 195 | label = "rn102:blue:pwr"; |
| 140 | gpios = <&gpio1 25 1>; /* GPIO 57 Active Low */ | 196 | gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; |
| 141 | linux,default-trigger = "heartbeat"; | 197 | default-state = "keep"; |
| 142 | }; | 198 | }; |
| 143 | 199 | ||
| 144 | green_sata1_led { | 200 | green-sata1-led { |
| 145 | label = "rn102:green:sata1"; | 201 | label = "rn102:green:sata1"; |
| 146 | gpios = <&gpio0 15 1>; /* GPIO 15 Active Low */ | 202 | gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; |
| 147 | default-state = "on"; | 203 | default-state = "on"; |
| 148 | }; | 204 | }; |
| 149 | 205 | ||
| 150 | green_sata2_led { | 206 | green-sata2-led { |
| 151 | label = "rn102:green:sata2"; | 207 | label = "rn102:green:sata2"; |
| 152 | gpios = <&gpio0 14 1>; /* GPIO 14 Active Low */ | 208 | gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; |
| 153 | default-state = "on"; | 209 | default-state = "on"; |
| 154 | }; | 210 | }; |
| 155 | 211 | ||
| 156 | green_backup_led { | 212 | green-backup-led { |
| 157 | label = "rn102:green:backup"; | 213 | label = "rn102:green:backup"; |
| 158 | gpios = <&gpio1 24 1>; /* GPIO 56 Active Low */ | 214 | gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; |
| 159 | default-state = "on"; | 215 | default-state = "on"; |
| 160 | }; | 216 | }; |
| 161 | }; | 217 | }; |
| 162 | 218 | ||
| 163 | gpio_keys { | 219 | gpio-keys { |
| 164 | compatible = "gpio-keys"; | 220 | compatible = "gpio-keys"; |
| 165 | #address-cells = <1>; | 221 | pinctrl-0 = <&power_button_pin |
| 166 | #size-cells = <0>; | 222 | &reset_button_pin |
| 223 | &backup_button_pin>; | ||
| 224 | pinctrl-names = "default"; | ||
| 167 | 225 | ||
| 168 | button@1 { | 226 | power-button { |
| 169 | label = "Power Button"; | 227 | label = "Power Button"; |
| 170 | linux,code = <116>; /* KEY_POWER */ | 228 | linux,code = <KEY_POWER>; |
| 171 | gpios = <&gpio1 30 0>; | 229 | gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; |
| 172 | }; | 230 | }; |
| 173 | 231 | ||
| 174 | button@2 { | 232 | reset-button { |
| 175 | label = "Reset Button"; | 233 | label = "Reset Button"; |
| 176 | linux,code = <0x198>; /* KEY_RESTART */ | 234 | linux,code = <KEY_RESTART>; |
| 177 | gpios = <&gpio0 6 1>; | 235 | gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; |
| 178 | }; | 236 | }; |
| 179 | 237 | ||
| 180 | button@3 { | 238 | backup-button { |
| 181 | label = "Backup Button"; | 239 | label = "Backup Button"; |
| 182 | linux,code = <133>; /* KEY_COPY */ | 240 | linux,code = <KEY_COPY>; |
| 183 | gpios = <&gpio1 26 1>; | 241 | gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; |
| 184 | }; | 242 | }; |
| 185 | }; | 243 | }; |
| 186 | 244 | ||
| 187 | gpio_poweroff { | 245 | gpio-poweroff { |
| 188 | compatible = "gpio-poweroff"; | 246 | compatible = "gpio-poweroff"; |
| 189 | pinctrl-0 = <&poweroff>; | 247 | pinctrl-0 = <&poweroff>; |
| 190 | pinctrl-names = "default"; | 248 | pinctrl-names = "default"; |
| 191 | gpios = <&gpio0 8 1>; | 249 | gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; |
| 192 | }; | 250 | }; |
| 193 | |||
| 194 | }; | 251 | }; |
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts index b0b32f5fbeb4..4e27587667bf 100644 --- a/arch/arm/boot/dts/armada-370-netgear-rn104.dts +++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | 13 | ||
| 14 | #include <dt-bindings/input/input.h> | ||
| 15 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | #include "armada-370.dtsi" | 16 | #include "armada-370.dtsi" |
| 15 | 17 | ||
| 16 | / { | 18 | / { |
| @@ -58,12 +60,12 @@ | |||
| 58 | marvell,function = "gpio"; | 60 | marvell,function = "gpio"; |
| 59 | }; | 61 | }; |
| 60 | 62 | ||
| 61 | backup_key_pin: backup-key-pin { | 63 | backup_button_pin: backup-button-pin { |
| 62 | marvell,pins = "mpp52"; | 64 | marvell,pins = "mpp52"; |
| 63 | marvell,function = "gpio"; | 65 | marvell,function = "gpio"; |
| 64 | }; | 66 | }; |
| 65 | 67 | ||
| 66 | power_key_pin: power-key-pin { | 68 | power_button_pin: power-button-pin { |
| 67 | marvell,pins = "mpp62"; | 69 | marvell,pins = "mpp62"; |
| 68 | marvell,function = "gpio"; | 70 | marvell,function = "gpio"; |
| 69 | }; | 71 | }; |
| @@ -78,18 +80,18 @@ | |||
| 78 | marvell,function = "gpio"; | 80 | marvell,function = "gpio"; |
| 79 | }; | 81 | }; |
| 80 | 82 | ||
| 81 | reset_key_pin: reset-key-pin { | 83 | reset_button_pin: reset-button-pin { |
| 82 | marvell,pins = "mpp65"; | 84 | marvell,pins = "mpp65"; |
| 83 | marvell,function = "gpio"; | 85 | marvell,function = "gpio"; |
| 84 | }; | 86 | }; |
| 85 | }; | 87 | }; |
| 86 | 88 | ||
| 87 | mdio { | 89 | mdio { |
| 88 | phy0: ethernet-phy@0 { | 90 | phy0: ethernet-phy@0 { /* Marvell 88E1318 */ |
| 89 | reg = <0>; | 91 | reg = <0>; |
| 90 | }; | 92 | }; |
| 91 | 93 | ||
| 92 | phy1: ethernet-phy@1 { | 94 | phy1: ethernet-phy@1 { /* Marvell 88E1318 */ |
| 93 | reg = <1>; | 95 | reg = <1>; |
| 94 | }; | 96 | }; |
| 95 | }; | 97 | }; |
| @@ -115,6 +117,11 @@ | |||
| 115 | clock-frequency = <100000>; | 117 | clock-frequency = <100000>; |
| 116 | status = "okay"; | 118 | status = "okay"; |
| 117 | 119 | ||
| 120 | isl12057: isl12057@68 { | ||
| 121 | compatible = "isl,isl12057"; | ||
| 122 | reg = <0x68>; | ||
| 123 | }; | ||
| 124 | |||
| 118 | g762: g762@3e { | 125 | g762: g762@3e { |
| 119 | compatible = "gmt,g762"; | 126 | compatible = "gmt,g762"; |
| 120 | reg = <0x3e>; | 127 | reg = <0x3e>; |
| @@ -123,71 +130,133 @@ | |||
| 123 | fan_startv = <1>; | 130 | fan_startv = <1>; |
| 124 | pwm_polarity = <0>; | 131 | pwm_polarity = <0>; |
| 125 | }; | 132 | }; |
| 133 | |||
| 134 | pca9554: pca9554@23 { | ||
| 135 | compatible = "nxp,pca9554"; | ||
| 136 | gpio-controller; | ||
| 137 | #gpio-cells = <2>; | ||
| 138 | reg = <0x23>; | ||
| 139 | }; | ||
| 140 | }; | ||
| 141 | |||
| 142 | nand@d0000 { | ||
| 143 | status = "okay"; | ||
| 144 | num-cs = <1>; | ||
| 145 | marvell,nand-keep-config; | ||
| 146 | marvell,nand-enable-arbiter; | ||
| 147 | nand-on-flash-bbt; | ||
| 148 | |||
| 149 | partition@0 { | ||
| 150 | label = "u-boot"; | ||
| 151 | reg = <0x0000000 0x180000>; /* 1.5MB */ | ||
| 152 | read-only; | ||
| 153 | }; | ||
| 154 | |||
| 155 | partition@180000 { | ||
| 156 | label = "u-boot-env"; | ||
| 157 | reg = <0x180000 0x20000>; /* 128KB */ | ||
| 158 | read-only; | ||
| 159 | }; | ||
| 160 | |||
| 161 | partition@200000 { | ||
| 162 | label = "uImage"; | ||
| 163 | reg = <0x0200000 0x600000>; /* 6MB */ | ||
| 164 | }; | ||
| 165 | |||
| 166 | partition@800000 { | ||
| 167 | label = "minirootfs"; | ||
| 168 | reg = <0x0800000 0x400000>; /* 4MB */ | ||
| 169 | }; | ||
| 170 | |||
| 171 | /* Last MB is for the BBT, i.e. not writable */ | ||
| 172 | partition@c00000 { | ||
| 173 | label = "ubifs"; | ||
| 174 | reg = <0x0c00000 0x7400000>; /* 116MB */ | ||
| 175 | }; | ||
| 126 | }; | 176 | }; |
| 127 | }; | 177 | }; |
| 128 | }; | 178 | }; |
| 129 | 179 | ||
| 130 | clocks { | 180 | clocks { |
| 131 | #address-cells = <1>; | 181 | g762_clk: g762-oscillator { |
| 132 | #size-cells = <0>; | ||
| 133 | |||
| 134 | g762_clk: fixedclk { | ||
| 135 | compatible = "fixed-clock"; | 182 | compatible = "fixed-clock"; |
| 136 | #clock-cells = <0>; | 183 | #clock-cells = <0>; |
| 137 | clock-frequency = <8192>; | 184 | clock-frequency = <8192>; |
| 138 | }; | 185 | }; |
| 139 | }; | 186 | }; |
| 140 | 187 | ||
| 141 | gpio_leds { | 188 | gpio-leds { |
| 142 | compatible = "gpio-leds"; | 189 | compatible = "gpio-leds"; |
| 143 | pinctrl-0 = <&backup_led_pin &power_led_pin>; | 190 | pinctrl-0 = <&backup_led_pin &power_led_pin>; |
| 144 | pinctrl-names = "default"; | 191 | pinctrl-names = "default"; |
| 145 | 192 | ||
| 146 | blue_backup_led { | 193 | blue-backup-led { |
| 147 | label = "rn104:blue:backup"; | 194 | label = "rn104:blue:backup"; |
| 148 | gpios = <&gpio1 31 0>; /* GPIO 63 Active High */ | 195 | gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>; |
| 149 | default-state = "off"; | 196 | default-state = "off"; |
| 150 | }; | 197 | }; |
| 151 | 198 | ||
| 152 | blue_power_led { | 199 | blue-power-led { |
| 153 | label = "rn104:blue:pwr"; | 200 | label = "rn104:blue:pwr"; |
| 154 | gpios = <&gpio2 0 1>; /* GPIO 64 Active Low */ | 201 | gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; |
| 155 | linux,default-trigger = "keep"; | 202 | linux,default-trigger = "keep"; |
| 156 | }; | 203 | }; |
| 204 | |||
| 205 | blue-sata1-led { | ||
| 206 | label = "rn104:blue:sata1"; | ||
| 207 | gpios = <&pca9554 0 GPIO_ACTIVE_LOW>; | ||
| 208 | default-state = "off"; | ||
| 209 | }; | ||
| 210 | |||
| 211 | blue-sata2-led { | ||
| 212 | label = "rn104:blue:sata2"; | ||
| 213 | gpios = <&pca9554 1 GPIO_ACTIVE_LOW>; | ||
| 214 | default-state = "off"; | ||
| 215 | }; | ||
| 216 | |||
| 217 | blue-sata3-led { | ||
| 218 | label = "rn104:blue:sata3"; | ||
| 219 | gpios = <&pca9554 2 GPIO_ACTIVE_LOW>; | ||
| 220 | default-state = "off"; | ||
| 221 | }; | ||
| 222 | |||
| 223 | blue-sata4-led { | ||
| 224 | label = "rn104:blue:sata4"; | ||
| 225 | gpios = <&pca9554 3 GPIO_ACTIVE_LOW>; | ||
| 226 | default-state = "off"; | ||
| 227 | }; | ||
| 157 | }; | 228 | }; |
| 158 | 229 | ||
| 159 | gpio_keys { | 230 | gpio-keys { |
| 160 | compatible = "gpio-keys"; | 231 | compatible = "gpio-keys"; |
| 161 | #address-cells = <1>; | 232 | pinctrl-0 = <&backup_button_pin |
| 162 | #size-cells = <0>; | 233 | &power_button_pin |
| 163 | pinctrl-0 = <&backup_key_pin | 234 | &reset_button_pin>; |
| 164 | &power_key_pin | ||
| 165 | &reset_key_pin>; | ||
| 166 | pinctrl-names = "default"; | 235 | pinctrl-names = "default"; |
| 167 | 236 | ||
| 168 | button@1 { | 237 | backup-button { |
| 169 | label = "Backup Button"; | 238 | label = "Backup Button"; |
| 170 | linux,code = <133>; /* KEY_COPY */ | 239 | linux,code = <KEY_COPY>; |
| 171 | gpios = <&gpio1 20 1>; | 240 | gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; |
| 172 | }; | 241 | }; |
| 173 | 242 | ||
| 174 | button@2 { | 243 | power-button { |
| 175 | label = "Power Button"; | 244 | label = "Power Button"; |
| 176 | linux,code = <116>; /* KEY_POWER */ | 245 | linux,code = <KEY_POWER>; |
| 177 | gpios = <&gpio1 30 0>; | 246 | gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; |
| 178 | }; | 247 | }; |
| 179 | 248 | ||
| 180 | button@3 { | 249 | reset-button { |
| 181 | label = "Reset Button"; | 250 | label = "Reset Button"; |
| 182 | linux,code = <0x198>; /* KEY_RESTART */ | 251 | linux,code = <KEY_RESTART>; |
| 183 | gpios = <&gpio2 1 1>; | 252 | gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; |
| 184 | }; | 253 | }; |
| 185 | }; | 254 | }; |
| 186 | 255 | ||
| 187 | gpio_poweroff { | 256 | gpio-poweroff { |
| 188 | compatible = "gpio-poweroff"; | 257 | compatible = "gpio-poweroff"; |
| 189 | pinctrl-0 = <&poweroff>; | 258 | pinctrl-0 = <&poweroff>; |
| 190 | pinctrl-names = "default"; | 259 | pinctrl-names = "default"; |
| 191 | gpios = <&gpio1 28 1>; | 260 | gpios = <&gpio1 28 GPIO_ACTIVE_LOW>; |
| 192 | }; | 261 | }; |
| 193 | }; | 262 | }; |
diff --git a/arch/arm/boot/dts/armada-370-rd.dts b/arch/arm/boot/dts/armada-370-rd.dts index f81810a59629..abbb807459d2 100644 --- a/arch/arm/boot/dts/armada-370-rd.dts +++ b/arch/arm/boot/dts/armada-370-rd.dts | |||
| @@ -104,6 +104,27 @@ | |||
| 104 | gpios = <&gpio0 6 1>; | 104 | gpios = <&gpio0 6 1>; |
| 105 | }; | 105 | }; |
| 106 | }; | 106 | }; |
| 107 | |||
| 108 | nand@d0000 { | ||
| 109 | status = "okay"; | ||
| 110 | num-cs = <1>; | ||
| 111 | marvell,nand-keep-config; | ||
| 112 | marvell,nand-enable-arbiter; | ||
| 113 | nand-on-flash-bbt; | ||
| 114 | |||
| 115 | partition@0 { | ||
| 116 | label = "U-Boot"; | ||
| 117 | reg = <0 0x800000>; | ||
| 118 | }; | ||
| 119 | partition@800000 { | ||
| 120 | label = "Linux"; | ||
| 121 | reg = <0x800000 0x800000>; | ||
| 122 | }; | ||
| 123 | partition@1000000 { | ||
| 124 | label = "Filesystem"; | ||
| 125 | reg = <0x1000000 0x3f000000>; | ||
| 126 | }; | ||
| 127 | }; | ||
| 107 | }; | 128 | }; |
| 108 | }; | 129 | }; |
| 109 | }; | 130 | }; |
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi index 80ffacd128f8..74b5964430ac 100644 --- a/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/arch/arm/boot/dts/armada-370-xp.dtsi | |||
| @@ -103,22 +103,52 @@ | |||
| 103 | #size-cells = <1>; | 103 | #size-cells = <1>; |
| 104 | ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; | 104 | ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>; |
| 105 | 105 | ||
| 106 | mbusc: mbus-controller@20000 { | 106 | rtc@10300 { |
| 107 | compatible = "marvell,mbus-controller"; | 107 | compatible = "marvell,orion-rtc"; |
| 108 | reg = <0x20000 0x100>, <0x20180 0x20>; | 108 | reg = <0x10300 0x20>; |
| 109 | interrupts = <50>; | ||
| 109 | }; | 110 | }; |
| 110 | 111 | ||
| 111 | mpic: interrupt-controller@20000 { | 112 | spi0: spi@10600 { |
| 112 | compatible = "marvell,mpic"; | 113 | compatible = "marvell,orion-spi"; |
| 113 | #interrupt-cells = <1>; | 114 | reg = <0x10600 0x28>; |
| 114 | #size-cells = <1>; | 115 | #address-cells = <1>; |
| 115 | interrupt-controller; | 116 | #size-cells = <0>; |
| 116 | msi-controller; | 117 | cell-index = <0>; |
| 118 | interrupts = <30>; | ||
| 119 | clocks = <&coreclk 0>; | ||
| 120 | status = "disabled"; | ||
| 117 | }; | 121 | }; |
| 118 | 122 | ||
| 119 | coherency-fabric@20200 { | 123 | spi1: spi@10680 { |
| 120 | compatible = "marvell,coherency-fabric"; | 124 | compatible = "marvell,orion-spi"; |
| 121 | reg = <0x20200 0xb0>, <0x21010 0x1c>; | 125 | reg = <0x10680 0x28>; |
| 126 | #address-cells = <1>; | ||
| 127 | #size-cells = <0>; | ||
| 128 | cell-index = <1>; | ||
| 129 | interrupts = <92>; | ||
| 130 | clocks = <&coreclk 0>; | ||
| 131 | status = "disabled"; | ||
| 132 | }; | ||
| 133 | |||
| 134 | i2c0: i2c@11000 { | ||
| 135 | compatible = "marvell,mv64xxx-i2c"; | ||
| 136 | #address-cells = <1>; | ||
| 137 | #size-cells = <0>; | ||
| 138 | interrupts = <31>; | ||
| 139 | timeout-ms = <1000>; | ||
| 140 | clocks = <&coreclk 0>; | ||
| 141 | status = "disabled"; | ||
| 142 | }; | ||
| 143 | |||
| 144 | i2c1: i2c@11100 { | ||
| 145 | compatible = "marvell,mv64xxx-i2c"; | ||
| 146 | #address-cells = <1>; | ||
| 147 | #size-cells = <0>; | ||
| 148 | interrupts = <32>; | ||
| 149 | timeout-ms = <1000>; | ||
| 150 | clocks = <&coreclk 0>; | ||
| 151 | status = "disabled"; | ||
| 122 | }; | 152 | }; |
| 123 | 153 | ||
| 124 | serial@12000 { | 154 | serial@12000 { |
| @@ -146,25 +176,41 @@ | |||
| 146 | clock-output-names = "nand"; | 176 | clock-output-names = "nand"; |
| 147 | }; | 177 | }; |
| 148 | 178 | ||
| 179 | mbusc: mbus-controller@20000 { | ||
| 180 | compatible = "marvell,mbus-controller"; | ||
| 181 | reg = <0x20000 0x100>, <0x20180 0x20>; | ||
| 182 | }; | ||
| 183 | |||
| 184 | mpic: interrupt-controller@20000 { | ||
| 185 | compatible = "marvell,mpic"; | ||
| 186 | #interrupt-cells = <1>; | ||
| 187 | #size-cells = <1>; | ||
| 188 | interrupt-controller; | ||
| 189 | msi-controller; | ||
| 190 | }; | ||
| 191 | |||
| 192 | coherency-fabric@20200 { | ||
| 193 | compatible = "marvell,coherency-fabric"; | ||
| 194 | reg = <0x20200 0xb0>, <0x21010 0x1c>; | ||
| 195 | }; | ||
| 196 | |||
| 149 | timer@20300 { | 197 | timer@20300 { |
| 150 | reg = <0x20300 0x30>, <0x21040 0x30>; | 198 | reg = <0x20300 0x30>, <0x21040 0x30>; |
| 151 | interrupts = <37>, <38>, <39>, <40>, <5>, <6>; | 199 | interrupts = <37>, <38>, <39>, <40>, <5>, <6>; |
| 152 | }; | 200 | }; |
| 153 | 201 | ||
| 154 | sata@a0000 { | 202 | usb@50000 { |
| 155 | compatible = "marvell,armada-370-sata"; | 203 | compatible = "marvell,orion-ehci"; |
| 156 | reg = <0xa0000 0x5000>; | 204 | reg = <0x50000 0x500>; |
| 157 | interrupts = <55>; | 205 | interrupts = <45>; |
| 158 | clocks = <&gateclk 15>, <&gateclk 30>; | ||
| 159 | clock-names = "0", "1"; | ||
| 160 | status = "disabled"; | 206 | status = "disabled"; |
| 161 | }; | 207 | }; |
| 162 | 208 | ||
| 163 | mdio { | 209 | usb@51000 { |
| 164 | #address-cells = <1>; | 210 | compatible = "marvell,orion-ehci"; |
| 165 | #size-cells = <0>; | 211 | reg = <0x51000 0x500>; |
| 166 | compatible = "marvell,orion-mdio"; | 212 | interrupts = <46>; |
| 167 | reg = <0x72004 0x4>; | 213 | status = "disabled"; |
| 168 | }; | 214 | }; |
| 169 | 215 | ||
| 170 | eth0: ethernet@70000 { | 216 | eth0: ethernet@70000 { |
| @@ -175,6 +221,13 @@ | |||
| 175 | status = "disabled"; | 221 | status = "disabled"; |
| 176 | }; | 222 | }; |
| 177 | 223 | ||
| 224 | mdio { | ||
| 225 | #address-cells = <1>; | ||
| 226 | #size-cells = <0>; | ||
| 227 | compatible = "marvell,orion-mdio"; | ||
| 228 | reg = <0x72004 0x4>; | ||
| 229 | }; | ||
| 230 | |||
| 178 | eth1: ethernet@74000 { | 231 | eth1: ethernet@74000 { |
| 179 | compatible = "marvell,armada-370-neta"; | 232 | compatible = "marvell,armada-370-neta"; |
| 180 | reg = <0x74000 0x4000>; | 233 | reg = <0x74000 0x4000>; |
| @@ -183,32 +236,25 @@ | |||
| 183 | status = "disabled"; | 236 | status = "disabled"; |
| 184 | }; | 237 | }; |
| 185 | 238 | ||
| 186 | i2c0: i2c@11000 { | 239 | sata@a0000 { |
| 187 | compatible = "marvell,mv64xxx-i2c"; | 240 | compatible = "marvell,armada-370-sata"; |
| 188 | #address-cells = <1>; | 241 | reg = <0xa0000 0x5000>; |
| 189 | #size-cells = <0>; | 242 | interrupts = <55>; |
| 190 | interrupts = <31>; | 243 | clocks = <&gateclk 15>, <&gateclk 30>; |
| 191 | timeout-ms = <1000>; | 244 | clock-names = "0", "1"; |
| 192 | clocks = <&coreclk 0>; | ||
| 193 | status = "disabled"; | 245 | status = "disabled"; |
| 194 | }; | 246 | }; |
| 195 | 247 | ||
| 196 | i2c1: i2c@11100 { | 248 | nand@d0000 { |
| 197 | compatible = "marvell,mv64xxx-i2c"; | 249 | compatible = "marvell,armada370-nand"; |
| 250 | reg = <0xd0000 0x54>; | ||
| 198 | #address-cells = <1>; | 251 | #address-cells = <1>; |
| 199 | #size-cells = <0>; | 252 | #size-cells = <1>; |
| 200 | interrupts = <32>; | 253 | interrupts = <113>; |
| 201 | timeout-ms = <1000>; | 254 | clocks = <&coredivclk 0>; |
| 202 | clocks = <&coreclk 0>; | ||
| 203 | status = "disabled"; | 255 | status = "disabled"; |
| 204 | }; | 256 | }; |
| 205 | 257 | ||
| 206 | rtc@10300 { | ||
| 207 | compatible = "marvell,orion-rtc"; | ||
| 208 | reg = <0x10300 0x20>; | ||
| 209 | interrupts = <50>; | ||
| 210 | }; | ||
| 211 | |||
| 212 | mvsdio@d4000 { | 258 | mvsdio@d4000 { |
| 213 | compatible = "marvell,orion-sdio"; | 259 | compatible = "marvell,orion-sdio"; |
| 214 | reg = <0xd4000 0x200>; | 260 | reg = <0xd4000 0x200>; |
| @@ -220,43 +266,6 @@ | |||
| 220 | cap-mmc-highspeed; | 266 | cap-mmc-highspeed; |
| 221 | status = "disabled"; | 267 | status = "disabled"; |
| 222 | }; | 268 | }; |
| 223 | |||
| 224 | usb@50000 { | ||
| 225 | compatible = "marvell,orion-ehci"; | ||
| 226 | reg = <0x50000 0x500>; | ||
| 227 | interrupts = <45>; | ||
| 228 | status = "disabled"; | ||
| 229 | }; | ||
| 230 | |||
| 231 | usb@51000 { | ||
| 232 | compatible = "marvell,orion-ehci"; | ||
| 233 | reg = <0x51000 0x500>; | ||
| 234 | interrupts = <46>; | ||
| 235 | status = "disabled"; | ||
| 236 | }; | ||
| 237 | |||
| 238 | spi0: spi@10600 { | ||
| 239 | compatible = "marvell,orion-spi"; | ||
| 240 | reg = <0x10600 0x28>; | ||
| 241 | #address-cells = <1>; | ||
| 242 | #size-cells = <0>; | ||
| 243 | cell-index = <0>; | ||
| 244 | interrupts = <30>; | ||
| 245 | clocks = <&coreclk 0>; | ||
| 246 | status = "disabled"; | ||
| 247 | }; | ||
| 248 | |||
| 249 | spi1: spi@10680 { | ||
| 250 | compatible = "marvell,orion-spi"; | ||
| 251 | reg = <0x10680 0x28>; | ||
| 252 | #address-cells = <1>; | ||
| 253 | #size-cells = <0>; | ||
| 254 | cell-index = <1>; | ||
| 255 | interrupts = <92>; | ||
| 256 | clocks = <&coreclk 0>; | ||
| 257 | status = "disabled"; | ||
| 258 | }; | ||
| 259 | |||
| 260 | }; | 269 | }; |
| 261 | }; | 270 | }; |
| 262 | 271 | ||
diff --git a/arch/arm/boot/dts/armada-370.dtsi b/arch/arm/boot/dts/armada-370.dtsi index 7a4b82e71aaf..0d8530c98cf5 100644 --- a/arch/arm/boot/dts/armada-370.dtsi +++ b/arch/arm/boot/dts/armada-370.dtsi | |||
| @@ -91,11 +91,6 @@ | |||
| 91 | }; | 91 | }; |
| 92 | 92 | ||
| 93 | internal-regs { | 93 | internal-regs { |
| 94 | system-controller@18200 { | ||
| 95 | compatible = "marvell,armada-370-xp-system-controller"; | ||
| 96 | reg = <0x18200 0x100>; | ||
| 97 | }; | ||
| 98 | |||
| 99 | L2: l2-cache { | 94 | L2: l2-cache { |
| 100 | compatible = "marvell,aurora-outer-cache"; | 95 | compatible = "marvell,aurora-outer-cache"; |
| 101 | reg = <0x08000 0x1000>; | 96 | reg = <0x08000 0x1000>; |
| @@ -103,8 +98,17 @@ | |||
| 103 | wt-override; | 98 | wt-override; |
| 104 | }; | 99 | }; |
| 105 | 100 | ||
| 106 | interrupt-controller@20000 { | 101 | i2c0: i2c@11000 { |
| 107 | reg = <0x20a00 0x1d0>, <0x21870 0x58>; | 102 | reg = <0x11000 0x20>; |
| 103 | }; | ||
| 104 | |||
| 105 | i2c1: i2c@11100 { | ||
| 106 | reg = <0x11100 0x20>; | ||
| 107 | }; | ||
| 108 | |||
| 109 | system-controller@18200 { | ||
| 110 | compatible = "marvell,armada-370-xp-system-controller"; | ||
| 111 | reg = <0x18200 0x100>; | ||
| 108 | }; | 112 | }; |
| 109 | 113 | ||
| 110 | pinctrl { | 114 | pinctrl { |
| @@ -163,9 +167,11 @@ | |||
| 163 | interrupts = <91>; | 167 | interrupts = <91>; |
| 164 | }; | 168 | }; |
| 165 | 169 | ||
| 166 | timer@20300 { | 170 | gateclk: clock-gating-control@18220 { |
| 167 | compatible = "marvell,armada-370-timer"; | 171 | compatible = "marvell,armada-370-gating-clock"; |
| 168 | clocks = <&coreclk 2>; | 172 | reg = <0x18220 0x4>; |
| 173 | clocks = <&coreclk 0>; | ||
| 174 | #clock-cells = <1>; | ||
| 169 | }; | 175 | }; |
| 170 | 176 | ||
| 171 | coreclk: mvebu-sar@18230 { | 177 | coreclk: mvebu-sar@18230 { |
| @@ -174,11 +180,28 @@ | |||
| 174 | #clock-cells = <1>; | 180 | #clock-cells = <1>; |
| 175 | }; | 181 | }; |
| 176 | 182 | ||
| 177 | gateclk: clock-gating-control@18220 { | 183 | thermal@18300 { |
| 178 | compatible = "marvell,armada-370-gating-clock"; | 184 | compatible = "marvell,armada370-thermal"; |
| 179 | reg = <0x18220 0x4>; | 185 | reg = <0x18300 0x4 |
| 186 | 0x18304 0x4>; | ||
| 187 | status = "okay"; | ||
| 188 | }; | ||
| 189 | |||
| 190 | interrupt-controller@20000 { | ||
| 191 | reg = <0x20a00 0x1d0>, <0x21870 0x58>; | ||
| 192 | }; | ||
| 193 | |||
| 194 | timer@20300 { | ||
| 195 | compatible = "marvell,armada-370-timer"; | ||
| 196 | clocks = <&coreclk 2>; | ||
| 197 | }; | ||
| 198 | |||
| 199 | usb@50000 { | ||
| 200 | clocks = <&coreclk 0>; | ||
| 201 | }; | ||
| 202 | |||
| 203 | usb@51000 { | ||
| 180 | clocks = <&coreclk 0>; | 204 | clocks = <&coreclk 0>; |
| 181 | #clock-cells = <1>; | ||
| 182 | }; | 205 | }; |
| 183 | 206 | ||
| 184 | xor@60800 { | 207 | xor@60800 { |
| @@ -218,29 +241,6 @@ | |||
| 218 | dmacap,memset; | 241 | dmacap,memset; |
| 219 | }; | 242 | }; |
| 220 | }; | 243 | }; |
| 221 | |||
| 222 | i2c0: i2c@11000 { | ||
| 223 | reg = <0x11000 0x20>; | ||
| 224 | }; | ||
| 225 | |||
| 226 | i2c1: i2c@11100 { | ||
| 227 | reg = <0x11100 0x20>; | ||
| 228 | }; | ||
| 229 | |||
| 230 | usb@50000 { | ||
| 231 | clocks = <&coreclk 0>; | ||
| 232 | }; | ||
| 233 | |||
| 234 | usb@51000 { | ||
| 235 | clocks = <&coreclk 0>; | ||
| 236 | }; | ||
| 237 | |||
| 238 | thermal@18300 { | ||
| 239 | compatible = "marvell,armada370-thermal"; | ||
| 240 | reg = <0x18300 0x4 | ||
| 241 | 0x18304 0x4>; | ||
| 242 | status = "okay"; | ||
| 243 | }; | ||
| 244 | }; | 244 | }; |
| 245 | }; | 245 | }; |
| 246 | }; | 246 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts index 2298e4a910e2..274e2ad5f51c 100644 --- a/arch/arm/boot/dts/armada-xp-gp.dts +++ b/arch/arm/boot/dts/armada-xp-gp.dts | |||
| @@ -175,6 +175,14 @@ | |||
| 175 | spi-max-frequency = <108000000>; | 175 | spi-max-frequency = <108000000>; |
| 176 | }; | 176 | }; |
| 177 | }; | 177 | }; |
| 178 | |||
| 179 | nand@d0000 { | ||
| 180 | status = "okay"; | ||
| 181 | num-cs = <1>; | ||
| 182 | marvell,nand-keep-config; | ||
| 183 | marvell,nand-enable-arbiter; | ||
| 184 | nand-on-flash-bbt; | ||
| 185 | }; | ||
| 178 | }; | 186 | }; |
| 179 | }; | 187 | }; |
| 180 | }; | 188 | }; |
diff --git a/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts new file mode 100644 index 000000000000..ff049ee862eb --- /dev/null +++ b/arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | |||
| @@ -0,0 +1,327 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree file for NETGEAR ReadyNAS 2120 | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public License | ||
| 8 | * as published by the Free Software Foundation; either version | ||
| 9 | * 2 of the License, or (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | /dts-v1/; | ||
| 13 | |||
| 14 | #include <dt-bindings/input/input.h> | ||
| 15 | #include <dt-bindings/gpio/gpio.h> | ||
| 16 | #include "armada-xp-mv78230.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "NETGEAR ReadyNAS 2120"; | ||
| 20 | compatible = "netgear,readynas-2120", "marvell,armadaxp-mv78230", "marvell,armadaxp", "marvell,armada-370-xp"; | ||
| 21 | |||
| 22 | chosen { | ||
| 23 | bootargs = "console=ttyS0,115200 earlyprintk"; | ||
| 24 | }; | ||
| 25 | |||
| 26 | memory { | ||
| 27 | device_type = "memory"; | ||
| 28 | reg = <0 0x00000000 0 0x80000000>; /* 2GB */ | ||
| 29 | }; | ||
| 30 | |||
| 31 | soc { | ||
| 32 | ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000 | ||
| 33 | MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000>; | ||
| 34 | |||
| 35 | pcie-controller { | ||
| 36 | status = "okay"; | ||
| 37 | |||
| 38 | /* Connected to first Marvell 88SE9170 SATA controller */ | ||
| 39 | pcie@1,0 { | ||
| 40 | /* Port 0, Lane 0 */ | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | /* Connected to second Marvell 88SE9170 SATA controller */ | ||
| 45 | pcie@2,0 { | ||
| 46 | /* Port 0, Lane 1 */ | ||
| 47 | status = "okay"; | ||
| 48 | }; | ||
| 49 | |||
| 50 | /* Connected to Fresco Logic FL1009 USB 3.0 controller */ | ||
| 51 | pcie@5,0 { | ||
| 52 | /* Port 1, Lane 0 */ | ||
| 53 | status = "okay"; | ||
| 54 | }; | ||
| 55 | }; | ||
| 56 | |||
| 57 | internal-regs { | ||
| 58 | pinctrl { | ||
| 59 | poweroff: poweroff { | ||
| 60 | marvell,pins = "mpp42"; | ||
| 61 | marvell,function = "gpio"; | ||
| 62 | }; | ||
| 63 | |||
| 64 | power_button_pin: power-button-pin { | ||
| 65 | marvell,pins = "mpp27"; | ||
| 66 | marvell,function = "gpio"; | ||
| 67 | }; | ||
| 68 | |||
| 69 | reset_button_pin: reset-button-pin { | ||
| 70 | marvell,pins = "mpp41"; | ||
| 71 | marvell,function = "gpio"; | ||
| 72 | }; | ||
| 73 | |||
| 74 | sata1_led_pin: sata1-led-pin { | ||
| 75 | marvell,pins = "mpp31"; | ||
| 76 | marvell,function = "gpio"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | sata2_led_pin: sata2-led-pin { | ||
| 80 | marvell,pins = "mpp40"; | ||
| 81 | marvell,function = "gpio"; | ||
| 82 | }; | ||
| 83 | |||
| 84 | sata3_led_pin: sata3-led-pin { | ||
| 85 | marvell,pins = "mpp44"; | ||
| 86 | marvell,function = "gpio"; | ||
| 87 | }; | ||
| 88 | |||
| 89 | sata4_led_pin: sata4-led-pin { | ||
| 90 | marvell,pins = "mpp47"; | ||
| 91 | marvell,function = "gpio"; | ||
| 92 | }; | ||
| 93 | |||
| 94 | sata1_power_pin: sata1-power-pin { | ||
| 95 | marvell,pins = "mpp24"; | ||
| 96 | marvell,function = "gpio"; | ||
| 97 | }; | ||
| 98 | |||
| 99 | sata2_power_pin: sata2-power-pin { | ||
| 100 | marvell,pins = "mpp25"; | ||
| 101 | marvell,function = "gpio"; | ||
| 102 | }; | ||
| 103 | |||
| 104 | sata3_power_pin: sata3-power-pin { | ||
| 105 | marvell,pins = "mpp26"; | ||
| 106 | marvell,function = "gpio"; | ||
| 107 | }; | ||
| 108 | |||
| 109 | sata4_power_pin: sata4-power-pin { | ||
| 110 | marvell,pins = "mpp28"; | ||
| 111 | marvell,function = "gpio"; | ||
| 112 | }; | ||
| 113 | |||
| 114 | sata1_pres_pin: sata1-pres-pin { | ||
| 115 | marvell,pins = "mpp32"; | ||
| 116 | marvell,function = "gpio"; | ||
| 117 | }; | ||
| 118 | |||
| 119 | sata2_pres_pin: sata2-pres-pin { | ||
| 120 | marvell,pins = "mpp33"; | ||
| 121 | marvell,function = "gpio"; | ||
| 122 | }; | ||
| 123 | |||
| 124 | sata3_pres_pin: sata3-pres-pin { | ||
| 125 | marvell,pins = "mpp34"; | ||
| 126 | marvell,function = "gpio"; | ||
| 127 | }; | ||
| 128 | |||
| 129 | sata4_pres_pin: sata4-pres-pin { | ||
| 130 | marvell,pins = "mpp35"; | ||
| 131 | marvell,function = "gpio"; | ||
| 132 | }; | ||
| 133 | |||
| 134 | err_led_pin: err-led-pin { | ||
| 135 | marvell,pins = "mpp45"; | ||
| 136 | marvell,function = "gpio"; | ||
| 137 | }; | ||
| 138 | }; | ||
| 139 | |||
| 140 | serial@12000 { | ||
| 141 | clocks = <&coreclk 0>; | ||
| 142 | status = "okay"; | ||
| 143 | }; | ||
| 144 | |||
| 145 | mdio { | ||
| 146 | phy0: ethernet-phy@0 { /* Marvell 88E1318 */ | ||
| 147 | reg = <0>; | ||
| 148 | }; | ||
| 149 | |||
| 150 | phy1: ethernet-phy@1 { /* Marvell 88E1318 */ | ||
| 151 | reg = <1>; | ||
| 152 | }; | ||
| 153 | }; | ||
| 154 | |||
| 155 | ethernet@70000 { | ||
| 156 | status = "okay"; | ||
| 157 | phy = <&phy0>; | ||
| 158 | phy-mode = "rgmii-id"; | ||
| 159 | }; | ||
| 160 | |||
| 161 | ethernet@74000 { | ||
| 162 | status = "okay"; | ||
| 163 | phy = <&phy1>; | ||
| 164 | phy-mode = "rgmii-id"; | ||
| 165 | }; | ||
| 166 | |||
| 167 | /* Front USB 2.0 port */ | ||
| 168 | usb@50000 { | ||
| 169 | status = "okay"; | ||
| 170 | }; | ||
| 171 | |||
| 172 | i2c@11000 { | ||
| 173 | compatible = "marvell,mv64xxx-i2c"; | ||
| 174 | clock-frequency = <400000>; | ||
| 175 | status = "okay"; | ||
| 176 | |||
| 177 | isl12057: isl12057@68 { | ||
| 178 | compatible = "isl,isl12057"; | ||
| 179 | reg = <0x68>; | ||
| 180 | }; | ||
| 181 | |||
| 182 | /* Controller for rear fan #1 of 3 (Protechnic | ||
| 183 | * MGT4012XB-O20, 8000RPM) near eSATA port */ | ||
| 184 | g762_fan1: g762@3e { | ||
| 185 | compatible = "gmt,g762"; | ||
| 186 | reg = <0x3e>; | ||
| 187 | clocks = <&g762_clk>; /* input clock */ | ||
| 188 | fan_gear_mode = <0>; | ||
| 189 | fan_startv = <1>; | ||
| 190 | pwm_polarity = <0>; | ||
| 191 | }; | ||
| 192 | |||
| 193 | /* Controller for rear (center) fan #2 of 3 */ | ||
| 194 | g762_fan2: g762@48 { | ||
| 195 | compatible = "gmt,g762"; | ||
| 196 | reg = <0x48>; | ||
| 197 | clocks = <&g762_clk>; /* input clock */ | ||
| 198 | fan_gear_mode = <0>; | ||
| 199 | fan_startv = <1>; | ||
| 200 | pwm_polarity = <0>; | ||
| 201 | }; | ||
| 202 | |||
| 203 | /* Controller for rear fan #3 of 3 */ | ||
| 204 | g762_fan3: g762@49 { | ||
| 205 | compatible = "gmt,g762"; | ||
| 206 | reg = <0x49>; | ||
| 207 | clocks = <&g762_clk>; /* input clock */ | ||
| 208 | fan_gear_mode = <0>; | ||
| 209 | fan_startv = <1>; | ||
| 210 | pwm_polarity = <0>; | ||
| 211 | }; | ||
| 212 | |||
| 213 | /* Temperature sensor */ | ||
| 214 | g751: g751@4c { | ||
| 215 | compatible = "gmt,g751"; | ||
| 216 | reg = <0x4c>; | ||
| 217 | }; | ||
| 218 | }; | ||
| 219 | |||
| 220 | nand@d0000 { | ||
| 221 | status = "okay"; | ||
| 222 | num-cs = <1>; | ||
| 223 | marvell,nand-keep-config; | ||
| 224 | marvell,nand-enable-arbiter; | ||
| 225 | nand-on-flash-bbt; | ||
| 226 | |||
| 227 | partition@0 { | ||
| 228 | label = "u-boot"; | ||
| 229 | reg = <0x0000000 0x180000>; /* 1.5MB */ | ||
| 230 | read-only; | ||
| 231 | }; | ||
| 232 | |||
| 233 | partition@180000 { | ||
| 234 | label = "u-boot-env"; | ||
| 235 | reg = <0x180000 0x20000>; /* 128KB */ | ||
| 236 | read-only; | ||
| 237 | }; | ||
| 238 | |||
| 239 | partition@200000 { | ||
| 240 | label = "uImage"; | ||
| 241 | reg = <0x0200000 0x600000>; /* 6MB */ | ||
| 242 | }; | ||
| 243 | |||
| 244 | partition@800000 { | ||
| 245 | label = "minirootfs"; | ||
| 246 | reg = <0x0800000 0x400000>; /* 4MB */ | ||
| 247 | }; | ||
| 248 | |||
| 249 | /* Last MB is for the BBT, i.e. not writable */ | ||
| 250 | partition@c00000 { | ||
| 251 | label = "ubifs"; | ||
| 252 | reg = <0x0c00000 0x7400000>; /* 116MB */ | ||
| 253 | }; | ||
| 254 | }; | ||
| 255 | }; | ||
| 256 | }; | ||
| 257 | |||
| 258 | clocks { | ||
| 259 | g762_clk: g762-oscillator { | ||
| 260 | compatible = "fixed-clock"; | ||
| 261 | #clock-cells = <0>; | ||
| 262 | clock-frequency = <32768>; | ||
| 263 | }; | ||
| 264 | }; | ||
| 265 | |||
| 266 | gpio-leds { | ||
| 267 | compatible = "gpio-leds"; | ||
| 268 | pinctrl-0 = <&sata1_led_pin &sata2_led_pin &err_led_pin | ||
| 269 | &sata3_led_pin &sata4_led_pin>; | ||
| 270 | pinctrl-names = "default"; | ||
| 271 | |||
| 272 | red-sata1-led { | ||
| 273 | label = "rn2120:red:sata1"; | ||
| 274 | gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; | ||
| 275 | default-state = "off"; | ||
| 276 | }; | ||
| 277 | |||
| 278 | red-sata2-led { | ||
| 279 | label = "rn2120:red:sata2"; | ||
| 280 | gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; | ||
| 281 | default-state = "off"; | ||
| 282 | }; | ||
| 283 | |||
| 284 | red-sata3-led { | ||
| 285 | label = "rn2120:red:sata3"; | ||
| 286 | gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; | ||
| 287 | default-state = "off"; | ||
| 288 | }; | ||
| 289 | |||
| 290 | red-sata4-led { | ||
| 291 | label = "rn2120:red:sata4"; | ||
| 292 | gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>; | ||
| 293 | default-state = "off"; | ||
| 294 | }; | ||
| 295 | |||
| 296 | red-err-led { | ||
| 297 | label = "rn2120:red:err"; | ||
| 298 | gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; | ||
| 299 | default-state = "off"; | ||
| 300 | }; | ||
| 301 | }; | ||
| 302 | |||
| 303 | gpio-keys { | ||
| 304 | compatible = "gpio-keys"; | ||
| 305 | pinctrl-0 = <&power_button_pin &reset_button_pin>; | ||
| 306 | pinctrl-names = "default"; | ||
| 307 | |||
| 308 | power-button { | ||
| 309 | label = "Power Button"; | ||
| 310 | linux,code = <KEY_POWER>; | ||
| 311 | gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; | ||
| 312 | }; | ||
| 313 | |||
| 314 | reset-button { | ||
| 315 | label = "Reset Button"; | ||
| 316 | linux,code = <KEY_RESTART>; | ||
| 317 | gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; | ||
| 318 | }; | ||
| 319 | }; | ||
| 320 | |||
| 321 | gpio-poweroff { | ||
| 322 | compatible = "gpio-poweroff"; | ||
| 323 | pinctrl-0 = <&poweroff>; | ||
| 324 | pinctrl-names = "default"; | ||
| 325 | gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; | ||
| 326 | }; | ||
| 327 | }; | ||
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 5695afcc04bf..99bcf76e6953 100644 --- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts +++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts | |||
| @@ -103,8 +103,7 @@ | |||
| 103 | green_led { | 103 | green_led { |
| 104 | label = "green_led"; | 104 | label = "green_led"; |
| 105 | gpios = <&gpio1 21 1>; | 105 | gpios = <&gpio1 21 1>; |
| 106 | default-state = "off"; | 106 | default-state = "keep"; |
| 107 | linux,default-trigger = "heartbeat"; | ||
| 108 | }; | 107 | }; |
| 109 | }; | 108 | }; |
| 110 | 109 | ||
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi index 281c6447e872..b8b84a22f0f3 100644 --- a/arch/arm/boot/dts/armada-xp.dtsi +++ b/arch/arm/boot/dts/armada-xp.dtsi | |||
| @@ -42,13 +42,14 @@ | |||
| 42 | wt-override; | 42 | wt-override; |
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | interrupt-controller@20000 { | 45 | i2c0: i2c@11000 { |
| 46 | reg = <0x20a00 0x2d0>, <0x21070 0x58>; | 46 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; |
| 47 | reg = <0x11000 0x100>; | ||
| 47 | }; | 48 | }; |
| 48 | 49 | ||
| 49 | armada-370-xp-pmsu@22000 { | 50 | i2c1: i2c@11100 { |
| 50 | compatible = "marvell,armada-370-xp-pmsu"; | 51 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; |
| 51 | reg = <0x22100 0x430>, <0x20800 0x20>; | 52 | reg = <0x11100 0x100>; |
| 52 | }; | 53 | }; |
| 53 | 54 | ||
| 54 | serial@12200 { | 55 | serial@12200 { |
| @@ -68,10 +69,16 @@ | |||
| 68 | status = "disabled"; | 69 | status = "disabled"; |
| 69 | }; | 70 | }; |
| 70 | 71 | ||
| 71 | timer@20300 { | 72 | system-controller@18200 { |
| 72 | compatible = "marvell,armada-xp-timer"; | 73 | compatible = "marvell,armada-370-xp-system-controller"; |
| 73 | clocks = <&coreclk 2>, <&refclk>; | 74 | reg = <0x18200 0x500>; |
| 74 | clock-names = "nbclk", "fixed"; | 75 | }; |
| 76 | |||
| 77 | gateclk: clock-gating-control@18220 { | ||
| 78 | compatible = "marvell,armada-xp-gating-clock"; | ||
| 79 | reg = <0x18220 0x4>; | ||
| 80 | clocks = <&coreclk 0>; | ||
| 81 | #clock-cells = <1>; | ||
| 75 | }; | 82 | }; |
| 76 | 83 | ||
| 77 | coreclk: mvebu-sar@18230 { | 84 | coreclk: mvebu-sar@18230 { |
| @@ -80,6 +87,13 @@ | |||
| 80 | #clock-cells = <1>; | 87 | #clock-cells = <1>; |
| 81 | }; | 88 | }; |
| 82 | 89 | ||
| 90 | thermal@182b0 { | ||
| 91 | compatible = "marvell,armadaxp-thermal"; | ||
| 92 | reg = <0x182b0 0x4 | ||
| 93 | 0x184d0 0x4>; | ||
| 94 | status = "okay"; | ||
| 95 | }; | ||
| 96 | |||
| 83 | cpuclk: clock-complex@18700 { | 97 | cpuclk: clock-complex@18700 { |
| 84 | #clock-cells = <1>; | 98 | #clock-cells = <1>; |
| 85 | compatible = "marvell,armada-xp-cpu-clock"; | 99 | compatible = "marvell,armada-xp-cpu-clock"; |
| @@ -87,16 +101,19 @@ | |||
| 87 | clocks = <&coreclk 1>; | 101 | clocks = <&coreclk 1>; |
| 88 | }; | 102 | }; |
| 89 | 103 | ||
| 90 | gateclk: clock-gating-control@18220 { | 104 | interrupt-controller@20000 { |
| 91 | compatible = "marvell,armada-xp-gating-clock"; | 105 | reg = <0x20a00 0x2d0>, <0x21070 0x58>; |
| 92 | reg = <0x18220 0x4>; | ||
| 93 | clocks = <&coreclk 0>; | ||
| 94 | #clock-cells = <1>; | ||
| 95 | }; | 106 | }; |
| 96 | 107 | ||
| 97 | system-controller@18200 { | 108 | timer@20300 { |
| 98 | compatible = "marvell,armada-370-xp-system-controller"; | 109 | compatible = "marvell,armada-xp-timer"; |
| 99 | reg = <0x18200 0x500>; | 110 | clocks = <&coreclk 2>, <&refclk>; |
| 111 | clock-names = "nbclk", "fixed"; | ||
| 112 | }; | ||
| 113 | |||
| 114 | armada-370-xp-pmsu@22000 { | ||
| 115 | compatible = "marvell,armada-370-xp-pmsu"; | ||
| 116 | reg = <0x22100 0x400>, <0x20800 0x20>; | ||
| 100 | }; | 117 | }; |
| 101 | 118 | ||
| 102 | eth2: ethernet@30000 { | 119 | eth2: ethernet@30000 { |
| @@ -107,6 +124,22 @@ | |||
| 107 | status = "disabled"; | 124 | status = "disabled"; |
| 108 | }; | 125 | }; |
| 109 | 126 | ||
| 127 | usb@50000 { | ||
| 128 | clocks = <&gateclk 18>; | ||
| 129 | }; | ||
| 130 | |||
| 131 | usb@51000 { | ||
| 132 | clocks = <&gateclk 19>; | ||
| 133 | }; | ||
| 134 | |||
| 135 | usb@52000 { | ||
| 136 | compatible = "marvell,orion-ehci"; | ||
| 137 | reg = <0x52000 0x500>; | ||
| 138 | interrupts = <47>; | ||
| 139 | clocks = <&gateclk 20>; | ||
| 140 | status = "disabled"; | ||
| 141 | }; | ||
| 142 | |||
| 110 | xor@60900 { | 143 | xor@60900 { |
| 111 | compatible = "marvell,orion-xor"; | 144 | compatible = "marvell,orion-xor"; |
| 112 | reg = <0x60900 0x100 | 145 | reg = <0x60900 0x100 |
| @@ -146,39 +179,6 @@ | |||
| 146 | dmacap,memset; | 179 | dmacap,memset; |
| 147 | }; | 180 | }; |
| 148 | }; | 181 | }; |
| 149 | |||
| 150 | i2c0: i2c@11000 { | ||
| 151 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; | ||
| 152 | reg = <0x11000 0x100>; | ||
| 153 | }; | ||
| 154 | |||
| 155 | i2c1: i2c@11100 { | ||
| 156 | compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; | ||
| 157 | reg = <0x11100 0x100>; | ||
| 158 | }; | ||
| 159 | |||
| 160 | usb@50000 { | ||
| 161 | clocks = <&gateclk 18>; | ||
| 162 | }; | ||
| 163 | |||
| 164 | usb@51000 { | ||
| 165 | clocks = <&gateclk 19>; | ||
| 166 | }; | ||
| 167 | |||
| 168 | usb@52000 { | ||
| 169 | compatible = "marvell,orion-ehci"; | ||
| 170 | reg = <0x52000 0x500>; | ||
| 171 | interrupts = <47>; | ||
| 172 | clocks = <&gateclk 20>; | ||
| 173 | status = "disabled"; | ||
| 174 | }; | ||
| 175 | |||
| 176 | thermal@182b0 { | ||
| 177 | compatible = "marvell,armadaxp-thermal"; | ||
| 178 | reg = <0x182b0 0x4 | ||
| 179 | 0x184d0 0x4>; | ||
| 180 | status = "okay"; | ||
| 181 | }; | ||
| 182 | }; | 182 | }; |
| 183 | }; | 183 | }; |
| 184 | 184 | ||
diff --git a/arch/arm/boot/dts/at91-cosino.dtsi b/arch/arm/boot/dts/at91-cosino.dtsi new file mode 100644 index 000000000000..2093c4d7cd6a --- /dev/null +++ b/arch/arm/boot/dts/at91-cosino.dtsi | |||
| @@ -0,0 +1,122 @@ | |||
| 1 | /* | ||
| 2 | * at91-cosino.dtsi - Device Tree file for Cosino core module | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 - Rodolfo Giometti <giometti@linux.it> | ||
| 5 | * HCE Engineering | ||
| 6 | * | ||
| 7 | * Derived from at91sam9x5ek.dtsi by: | ||
| 8 | * Copyright (C) 2012 Atmel, | ||
| 9 | * 2012 Nicolas Ferre <nicolas.ferre@atmel.com> | ||
| 10 | * | ||
| 11 | * Licensed under GPLv2 or later. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #include "at91sam9g35.dtsi" | ||
| 15 | |||
| 16 | / { | ||
| 17 | model = "HCE Cosino core module"; | ||
| 18 | compatible = "hce,cosino", "atmel,at91sam9x5", "atmel,at91sam9"; | ||
| 19 | |||
| 20 | chosen { | ||
| 21 | bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | memory { | ||
| 25 | reg = <0x20000000 0x8000000>; | ||
| 26 | }; | ||
| 27 | |||
| 28 | clocks { | ||
| 29 | #address-cells = <1>; | ||
| 30 | #size-cells = <1>; | ||
| 31 | ranges; | ||
| 32 | |||
| 33 | main_clock: clock@0 { | ||
| 34 | compatible = "atmel,osc", "fixed-clock"; | ||
| 35 | clock-frequency = <12000000>; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | |||
| 39 | ahb { | ||
| 40 | apb { | ||
| 41 | mmc0: mmc@f0008000 { | ||
| 42 | pinctrl-0 = < | ||
| 43 | &pinctrl_board_mmc0 | ||
| 44 | &pinctrl_mmc0_slot0_clk_cmd_dat0 | ||
| 45 | &pinctrl_mmc0_slot0_dat1_3>; | ||
| 46 | status = "okay"; | ||
| 47 | slot@0 { | ||
| 48 | reg = <0>; | ||
| 49 | bus-width = <4>; | ||
| 50 | cd-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>; | ||
| 51 | }; | ||
| 52 | }; | ||
| 53 | |||
| 54 | dbgu: serial@fffff200 { | ||
| 55 | status = "okay"; | ||
| 56 | }; | ||
| 57 | |||
| 58 | usart0: serial@f801c000 { | ||
| 59 | status = "okay"; | ||
| 60 | }; | ||
| 61 | |||
| 62 | i2c0: i2c@f8010000 { | ||
| 63 | status = "okay"; | ||
| 64 | }; | ||
| 65 | |||
| 66 | adc0: adc@f804c000 { | ||
| 67 | atmel,adc-clock-rate = <1000000>; | ||
| 68 | atmel,adc-ts-wires = <4>; | ||
| 69 | atmel,adc-ts-pressure-threshold = <10000>; | ||
| 70 | status = "okay"; | ||
| 71 | }; | ||
| 72 | |||
| 73 | pinctrl@fffff400 { | ||
| 74 | mmc0 { | ||
| 75 | pinctrl_board_mmc0: mmc0-board { | ||
| 76 | atmel,pins = | ||
| 77 | <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PD15 gpio CD pin pull up and deglitch */ | ||
| 78 | }; | ||
| 79 | }; | ||
| 80 | }; | ||
| 81 | |||
| 82 | watchdog@fffffe40 { | ||
| 83 | status = "okay"; | ||
| 84 | }; | ||
| 85 | }; | ||
| 86 | |||
| 87 | nand0: nand@40000000 { | ||
| 88 | nand-bus-width = <8>; | ||
| 89 | nand-ecc-mode = "hw"; | ||
| 90 | atmel,has-pmecc; /* Enable PMECC */ | ||
| 91 | atmel,pmecc-cap = <4>; | ||
| 92 | atmel,pmecc-sector-size = <512>; | ||
| 93 | nand-on-flash-bbt; | ||
| 94 | status = "okay"; | ||
| 95 | |||
| 96 | at91bootstrap@0 { | ||
| 97 | label = "at91bootstrap"; | ||
| 98 | reg = <0x0 0x40000>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | uboot@40000 { | ||
| 102 | label = "u-boot"; | ||
| 103 | reg = <0x40000 0x80000>; | ||
| 104 | }; | ||
| 105 | |||
| 106 | ubootenv@c0000 { | ||
| 107 | label = "U-Boot Env"; | ||
| 108 | reg = <0xc0000 0x140000>; | ||
| 109 | }; | ||
| 110 | |||
| 111 | kernel@200000 { | ||
| 112 | label = "kernel"; | ||
| 113 | reg = <0x200000 0x600000>; | ||
| 114 | }; | ||
| 115 | |||
| 116 | rootfs@800000 { | ||
| 117 | label = "rootfs"; | ||
| 118 | reg = <0x800000 0x0f800000>; | ||
| 119 | }; | ||
| 120 | }; | ||
| 121 | }; | ||
| 122 | }; | ||
diff --git a/arch/arm/boot/dts/at91-cosino_mega2560.dts b/arch/arm/boot/dts/at91-cosino_mega2560.dts new file mode 100644 index 000000000000..f9415dd11f17 --- /dev/null +++ b/arch/arm/boot/dts/at91-cosino_mega2560.dts | |||
| @@ -0,0 +1,84 @@ | |||
| 1 | /* | ||
| 2 | * at91-cosino_mega2560.dts - Device Tree file for Cosino board with | ||
| 3 | * Mega 2560 extension | ||
| 4 | * | ||
| 5 | * Copyright (C) 2013 - Rodolfo Giometti <giometti@linux.it> | ||
| 6 | * HCE Engineering | ||
| 7 | * | ||
| 8 | * Derived from at91sam9g35ek.dts by: | ||
| 9 | * Copyright (C) 2012 Atmel, | ||
| 10 | * 2012 Nicolas Ferre <nicolas.ferre@atmel.com> | ||
| 11 | * | ||
| 12 | * Licensed under GPLv2 or later. | ||
| 13 | */ | ||
| 14 | |||
| 15 | /dts-v1/; | ||
| 16 | #include "at91-cosino.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "HCE Cosino Mega 2560"; | ||
| 20 | compatible = "hce,cosino_mega2560", "atmel,at91sam9x5", "atmel,at91sam9"; | ||
| 21 | |||
| 22 | ahb { | ||
| 23 | apb { | ||
| 24 | macb0: ethernet@f802c000 { | ||
| 25 | phy-mode = "rmii"; | ||
| 26 | status = "okay"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | adc0: adc@f804c000 { | ||
| 30 | atmel,adc-clock-rate = <1000000>; | ||
| 31 | atmel,adc-ts-wires = <4>; | ||
| 32 | atmel,adc-ts-pressure-threshold = <10000>; | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | |||
| 36 | |||
| 37 | tsadcc: tsadcc@f804c000 { | ||
| 38 | status = "okay"; | ||
| 39 | }; | ||
| 40 | |||
| 41 | rtc@fffffeb0 { | ||
| 42 | status = "okay"; | ||
| 43 | }; | ||
| 44 | |||
| 45 | usart1: serial@f8020000 { | ||
| 46 | status = "okay"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | usart2: serial@f8024000 { | ||
| 50 | status = "okay"; | ||
| 51 | }; | ||
| 52 | |||
| 53 | usb2: gadget@f803c000 { | ||
| 54 | atmel,vbus-gpio = <&pioB 16 GPIO_ACTIVE_HIGH>; | ||
| 55 | status = "okay"; | ||
| 56 | }; | ||
| 57 | |||
| 58 | mmc1: mmc@f000c000 { | ||
| 59 | pinctrl-0 = < | ||
| 60 | &pinctrl_mmc1_slot0_clk_cmd_dat0 | ||
| 61 | &pinctrl_mmc1_slot0_dat1_3>; | ||
| 62 | status = "okay"; | ||
| 63 | slot@0 { | ||
| 64 | reg = <0>; | ||
| 65 | bus-width = <4>; | ||
| 66 | non-removable; | ||
| 67 | }; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | |||
| 71 | usb0: ohci@00600000 { | ||
| 72 | status = "okay"; | ||
| 73 | num-ports = <3>; | ||
| 74 | atmel,vbus-gpio = <0 /* &pioD 18 GPIO_ACTIVE_LOW */ | ||
| 75 | &pioD 19 GPIO_ACTIVE_LOW | ||
| 76 | &pioD 20 GPIO_ACTIVE_LOW | ||
| 77 | >; | ||
| 78 | }; | ||
| 79 | |||
| 80 | usb1: ehci@00700000 { | ||
| 81 | status = "okay"; | ||
| 82 | }; | ||
| 83 | }; | ||
| 84 | }; | ||
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi index f77065506f1e..c61b16fba79b 100644 --- a/arch/arm/boot/dts/at91rm9200.dtsi +++ b/arch/arm/boot/dts/at91rm9200.dtsi | |||
| @@ -191,12 +191,12 @@ | |||
| 191 | AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA18 periph A */ | 191 | AT91_PIOA 18 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA18 periph A */ |
| 192 | }; | 192 | }; |
| 193 | 193 | ||
| 194 | pinctrl_uart0_rts: uart0_rts-0 { | 194 | pinctrl_uart0_cts: uart0_cts-0 { |
| 195 | atmel,pins = | 195 | atmel,pins = |
| 196 | <AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA20 periph A */ | 196 | <AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA20 periph A */ |
| 197 | }; | 197 | }; |
| 198 | 198 | ||
| 199 | pinctrl_uart0_cts: uart0_cts-0 { | 199 | pinctrl_uart0_rts: uart0_rts-0 { |
| 200 | atmel,pins = | 200 | atmel,pins = |
| 201 | <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA21 periph A */ | 201 | <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA21 periph A */ |
| 202 | }; | 202 | }; |
diff --git a/arch/arm/boot/dts/at91rm9200ek.dts b/arch/arm/boot/dts/at91rm9200ek.dts index d2d72c3b44c4..df6b0aa0e4dd 100644 --- a/arch/arm/boot/dts/at91rm9200ek.dts +++ b/arch/arm/boot/dts/at91rm9200ek.dts | |||
| @@ -29,10 +29,22 @@ | |||
| 29 | 29 | ||
| 30 | ahb { | 30 | ahb { |
| 31 | apb { | 31 | apb { |
| 32 | dbgu: serial@fffff200 { | 32 | usb1: gadget@fffb0000 { |
| 33 | atmel,vbus-gpio = <&pioD 4 GPIO_ACTIVE_HIGH>; | ||
| 34 | atmel,pullup-gpio = <&pioD 5 GPIO_ACTIVE_HIGH>; | ||
| 33 | status = "okay"; | 35 | status = "okay"; |
| 34 | }; | 36 | }; |
| 35 | 37 | ||
| 38 | macb0: ethernet@fffbc000 { | ||
| 39 | phy-mode = "rmii"; | ||
| 40 | status = "okay"; | ||
| 41 | |||
| 42 | phy0: ethernet-phy { | ||
| 43 | interrupt-parent = <&pioC>; | ||
| 44 | interrupts = <4 IRQ_TYPE_EDGE_BOTH>; | ||
| 45 | }; | ||
| 46 | }; | ||
| 47 | |||
| 36 | usart1: serial@fffc4000 { | 48 | usart1: serial@fffc4000 { |
| 37 | pinctrl-0 = | 49 | pinctrl-0 = |
| 38 | <&pinctrl_uart1 | 50 | <&pinctrl_uart1 |
| @@ -44,16 +56,6 @@ | |||
| 44 | status = "okay"; | 56 | status = "okay"; |
| 45 | }; | 57 | }; |
| 46 | 58 | ||
| 47 | macb0: ethernet@fffbc000 { | ||
| 48 | phy-mode = "rmii"; | ||
| 49 | status = "okay"; | ||
| 50 | }; | ||
| 51 | |||
| 52 | usb1: gadget@fffb0000 { | ||
| 53 | atmel,vbus-gpio = <&pioD 4 GPIO_ACTIVE_HIGH>; | ||
| 54 | status = "okay"; | ||
| 55 | }; | ||
| 56 | |||
| 57 | spi0: spi@fffe0000 { | 59 | spi0: spi@fffe0000 { |
| 58 | status = "okay"; | 60 | status = "okay"; |
| 59 | cs-gpios = <&pioA 3 0>, <0>, <0>, <0>; | 61 | cs-gpios = <&pioA 3 0>, <0>, <0>, <0>; |
| @@ -63,12 +65,45 @@ | |||
| 63 | reg = <0>; | 65 | reg = <0>; |
| 64 | }; | 66 | }; |
| 65 | }; | 67 | }; |
| 68 | |||
| 69 | dbgu: serial@fffff200 { | ||
| 70 | status = "okay"; | ||
| 71 | }; | ||
| 66 | }; | 72 | }; |
| 67 | 73 | ||
| 68 | usb0: ohci@00300000 { | 74 | usb0: ohci@00300000 { |
| 69 | num-ports = <2>; | 75 | num-ports = <2>; |
| 70 | status = "okay"; | 76 | status = "okay"; |
| 71 | }; | 77 | }; |
| 78 | |||
| 79 | nor_flash@10000000 { | ||
| 80 | compatible = "cfi-flash"; | ||
| 81 | reg = <0x10000000 0x800000>; | ||
| 82 | linux,mtd-name = "physmap-flash.0"; | ||
| 83 | bank-width = <2>; | ||
| 84 | #address-cells = <1>; | ||
| 85 | #size-cells = <1>; | ||
| 86 | |||
| 87 | barebox@0 { | ||
| 88 | label = "barebox"; | ||
| 89 | reg = <0x00000 0x40000>; | ||
| 90 | }; | ||
| 91 | |||
| 92 | bareboxenv@40000 { | ||
| 93 | label = "bareboxenv"; | ||
| 94 | reg = <0x40000 0x10000>; | ||
| 95 | }; | ||
| 96 | |||
| 97 | kernel@50000 { | ||
| 98 | label = "kernel"; | ||
| 99 | reg = <0x50000 0x300000>; | ||
| 100 | }; | ||
| 101 | |||
| 102 | root@350000 { | ||
| 103 | label = "root"; | ||
| 104 | reg = <0x350000 0x4B0000>; | ||
| 105 | }; | ||
| 106 | }; | ||
| 72 | }; | 107 | }; |
| 73 | 108 | ||
| 74 | leds { | 109 | leds { |
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index d5bd65f74602..c8fa9b9f07e3 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | i2c0 = &i2c0; | 30 | i2c0 = &i2c0; |
| 31 | ssc0 = &ssc0; | 31 | ssc0 = &ssc0; |
| 32 | ssc1 = &ssc1; | 32 | ssc1 = &ssc1; |
| 33 | pwm0 = &pwm0; | ||
| 33 | }; | 34 | }; |
| 34 | cpus { | 35 | cpus { |
| 35 | #address-cells = <0>; | 36 | #address-cells = <0>; |
| @@ -366,6 +367,34 @@ | |||
| 366 | }; | 367 | }; |
| 367 | }; | 368 | }; |
| 368 | 369 | ||
| 370 | fb { | ||
| 371 | pinctrl_fb: fb-0 { | ||
| 372 | atmel,pins = | ||
| 373 | <AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC1 periph A */ | ||
| 374 | AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC2 periph A */ | ||
| 375 | AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC3 periph A */ | ||
| 376 | AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB9 periph B */ | ||
| 377 | AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC6 periph A */ | ||
| 378 | AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC7 periph A */ | ||
| 379 | AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC8 periph A */ | ||
| 380 | AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC9 periph A */ | ||
| 381 | AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC10 periph A */ | ||
| 382 | AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC11 periph A */ | ||
| 383 | AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC14 periph A */ | ||
| 384 | AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC15 periph A */ | ||
| 385 | AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC16 periph A */ | ||
| 386 | AT91_PIOC 12 AT91_PERIPH_B AT91_PINCTRL_NONE /* PC12 periph B */ | ||
| 387 | AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC18 periph A */ | ||
| 388 | AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC19 periph A */ | ||
| 389 | AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC22 periph A */ | ||
| 390 | AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC23 periph A */ | ||
| 391 | AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC24 periph A */ | ||
| 392 | AT91_PIOC 17 AT91_PERIPH_B AT91_PINCTRL_NONE /* PC17 periph B */ | ||
| 393 | AT91_PIOC 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* PC26 periph A */ | ||
| 394 | AT91_PIOC 27 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PC27 periph A */ | ||
| 395 | }; | ||
| 396 | }; | ||
| 397 | |||
| 369 | pioA: gpio@fffff200 { | 398 | pioA: gpio@fffff200 { |
| 370 | compatible = "atmel,at91rm9200-gpio"; | 399 | compatible = "atmel,at91rm9200-gpio"; |
| 371 | reg = <0xfffff200 0x200>; | 400 | reg = <0xfffff200 0x200>; |
| @@ -547,6 +576,23 @@ | |||
| 547 | pinctrl-0 = <&pinctrl_spi1>; | 576 | pinctrl-0 = <&pinctrl_spi1>; |
| 548 | status = "disabled"; | 577 | status = "disabled"; |
| 549 | }; | 578 | }; |
| 579 | |||
| 580 | pwm0: pwm@fffb8000 { | ||
| 581 | compatible = "atmel,at91sam9rl-pwm"; | ||
| 582 | reg = <0xfffb8000 0x300>; | ||
| 583 | interrupts = <20 IRQ_TYPE_LEVEL_HIGH 4>; | ||
| 584 | #pwm-cells = <3>; | ||
| 585 | status = "disabled"; | ||
| 586 | }; | ||
| 587 | }; | ||
| 588 | |||
| 589 | fb0: fb@0x00700000 { | ||
| 590 | compatible = "atmel,at91sam9263-lcdc"; | ||
| 591 | reg = <0x00700000 0x1000>; | ||
| 592 | interrupts = <26 IRQ_TYPE_LEVEL_HIGH 3>; | ||
| 593 | pinctrl-names = "default"; | ||
| 594 | pinctrl-0 = <&pinctrl_fb>; | ||
| 595 | status = "disabled"; | ||
| 550 | }; | 596 | }; |
| 551 | 597 | ||
| 552 | nand0: nand@40000000 { | 598 | nand0: nand@40000000 { |
diff --git a/arch/arm/boot/dts/at91sam9263ek.dts b/arch/arm/boot/dts/at91sam9263ek.dts index 70f835b55c0b..15009c9f2293 100644 --- a/arch/arm/boot/dts/at91sam9263ek.dts +++ b/arch/arm/boot/dts/at91sam9263ek.dts | |||
| @@ -95,6 +95,36 @@ | |||
| 95 | }; | 95 | }; |
| 96 | }; | 96 | }; |
| 97 | 97 | ||
| 98 | fb0: fb@0x00700000 { | ||
| 99 | display = <&display0>; | ||
| 100 | status = "okay"; | ||
| 101 | |||
| 102 | display0: display { | ||
| 103 | bits-per-pixel = <16>; | ||
| 104 | atmel,lcdcon-backlight; | ||
| 105 | atmel,dmacon = <0x1>; | ||
| 106 | atmel,lcdcon2 = <0x80008002>; | ||
| 107 | atmel,guard-time = <1>; | ||
| 108 | |||
| 109 | display-timings { | ||
| 110 | native-mode = <&timing0>; | ||
| 111 | timing0: timing0 { | ||
| 112 | clock-frequency = <4965000>; | ||
| 113 | hactive = <240>; | ||
| 114 | vactive = <320>; | ||
| 115 | hback-porch = <1>; | ||
| 116 | hfront-porch = <33>; | ||
| 117 | vback-porch = <1>; | ||
| 118 | vfront-porch = <0>; | ||
| 119 | hsync-len = <5>; | ||
| 120 | vsync-len = <1>; | ||
| 121 | hsync-active = <1>; | ||
| 122 | vsync-active = <1>; | ||
| 123 | }; | ||
| 124 | }; | ||
| 125 | }; | ||
| 126 | }; | ||
| 127 | |||
| 98 | nand0: nand@40000000 { | 128 | nand0: nand@40000000 { |
| 99 | nand-bus-width = <8>; | 129 | nand-bus-width = <8>; |
| 100 | nand-ecc-mode = "soft"; | 130 | nand-ecc-mode = "soft"; |
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi index c3e514837074..ef0857cb171c 100644 --- a/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/arch/arm/boot/dts/at91sam9g45.dtsi | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | i2c1 = &i2c1; | 37 | i2c1 = &i2c1; |
| 38 | ssc0 = &ssc0; | 38 | ssc0 = &ssc0; |
| 39 | ssc1 = &ssc1; | 39 | ssc1 = &ssc1; |
| 40 | pwm0 = &pwm0; | ||
| 40 | }; | 41 | }; |
| 41 | cpus { | 42 | cpus { |
| 42 | #address-cells = <0>; | 43 | #address-cells = <0>; |
| @@ -143,6 +144,22 @@ | |||
| 143 | }; | 144 | }; |
| 144 | }; | 145 | }; |
| 145 | 146 | ||
| 147 | i2c0 { | ||
| 148 | pinctrl_i2c0: i2c0-0 { | ||
| 149 | atmel,pins = | ||
| 150 | <AT91_PIOA 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA21 periph A TWCK0 */ | ||
| 151 | AT91_PIOA 20 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA20 periph A TWD0 */ | ||
| 152 | }; | ||
| 153 | }; | ||
| 154 | |||
| 155 | i2c1 { | ||
| 156 | pinctrl_i2c1: i2c1-0 { | ||
| 157 | atmel,pins = | ||
| 158 | <AT91_PIOB 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB11 periph A TWCK1 */ | ||
| 159 | AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A TWD1 */ | ||
| 160 | }; | ||
| 161 | }; | ||
| 162 | |||
| 146 | usart0 { | 163 | usart0 { |
| 147 | pinctrl_usart0: usart0-0 { | 164 | pinctrl_usart0: usart0-0 { |
| 148 | atmel,pins = | 165 | atmel,pins = |
| @@ -425,6 +442,42 @@ | |||
| 425 | }; | 442 | }; |
| 426 | }; | 443 | }; |
| 427 | 444 | ||
| 445 | fb { | ||
| 446 | pinctrl_fb: fb-0 { | ||
| 447 | atmel,pins = | ||
| 448 | <AT91_PIOE 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE0 periph A */ | ||
| 449 | AT91_PIOE 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE2 periph A */ | ||
| 450 | AT91_PIOE 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE3 periph A */ | ||
| 451 | AT91_PIOE 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE4 periph A */ | ||
| 452 | AT91_PIOE 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE5 periph A */ | ||
| 453 | AT91_PIOE 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE6 periph A */ | ||
| 454 | AT91_PIOE 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE7 periph A */ | ||
| 455 | AT91_PIOE 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE8 periph A */ | ||
| 456 | AT91_PIOE 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE9 periph A */ | ||
| 457 | AT91_PIOE 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE10 periph A */ | ||
| 458 | AT91_PIOE 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE11 periph A */ | ||
| 459 | AT91_PIOE 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE12 periph A */ | ||
| 460 | AT91_PIOE 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE13 periph A */ | ||
| 461 | AT91_PIOE 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE14 periph A */ | ||
| 462 | AT91_PIOE 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE15 periph A */ | ||
| 463 | AT91_PIOE 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE16 periph A */ | ||
| 464 | AT91_PIOE 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE17 periph A */ | ||
| 465 | AT91_PIOE 18 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE18 periph A */ | ||
| 466 | AT91_PIOE 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE19 periph A */ | ||
| 467 | AT91_PIOE 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE20 periph A */ | ||
| 468 | AT91_PIOE 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE21 periph A */ | ||
| 469 | AT91_PIOE 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE22 periph A */ | ||
| 470 | AT91_PIOE 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE23 periph A */ | ||
| 471 | AT91_PIOE 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE24 periph A */ | ||
| 472 | AT91_PIOE 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE25 periph A */ | ||
| 473 | AT91_PIOE 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE26 periph A */ | ||
| 474 | AT91_PIOE 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE27 periph A */ | ||
| 475 | AT91_PIOE 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE28 periph A */ | ||
| 476 | AT91_PIOE 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* PE29 periph A */ | ||
| 477 | AT91_PIOE 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PE30 periph A */ | ||
| 478 | }; | ||
| 479 | }; | ||
| 480 | |||
| 428 | pioA: gpio@fffff200 { | 481 | pioA: gpio@fffff200 { |
| 429 | compatible = "atmel,at91rm9200-gpio"; | 482 | compatible = "atmel,at91rm9200-gpio"; |
| 430 | reg = <0xfffff200 0x200>; | 483 | reg = <0xfffff200 0x200>; |
| @@ -542,6 +595,8 @@ | |||
| 542 | compatible = "atmel,at91sam9g10-i2c"; | 595 | compatible = "atmel,at91sam9g10-i2c"; |
| 543 | reg = <0xfff84000 0x100>; | 596 | reg = <0xfff84000 0x100>; |
| 544 | interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>; | 597 | interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>; |
| 598 | pinctrl-names = "default"; | ||
| 599 | pinctrl-0 = <&pinctrl_i2c0>; | ||
| 545 | #address-cells = <1>; | 600 | #address-cells = <1>; |
| 546 | #size-cells = <0>; | 601 | #size-cells = <0>; |
| 547 | status = "disabled"; | 602 | status = "disabled"; |
| @@ -551,6 +606,8 @@ | |||
| 551 | compatible = "atmel,at91sam9g10-i2c"; | 606 | compatible = "atmel,at91sam9g10-i2c"; |
| 552 | reg = <0xfff88000 0x100>; | 607 | reg = <0xfff88000 0x100>; |
| 553 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>; | 608 | interrupts = <13 IRQ_TYPE_LEVEL_HIGH 6>; |
| 609 | pinctrl-names = "default"; | ||
| 610 | pinctrl-0 = <&pinctrl_i2c1>; | ||
| 554 | #address-cells = <1>; | 611 | #address-cells = <1>; |
| 555 | #size-cells = <0>; | 612 | #size-cells = <0>; |
| 556 | status = "disabled"; | 613 | status = "disabled"; |
| @@ -614,10 +671,19 @@ | |||
| 614 | }; | 671 | }; |
| 615 | }; | 672 | }; |
| 616 | 673 | ||
| 674 | pwm0: pwm@fffb8000 { | ||
| 675 | compatible = "atmel,at91sam9rl-pwm"; | ||
| 676 | reg = <0xfffb8000 0x300>; | ||
| 677 | interrupts = <19 IRQ_TYPE_LEVEL_HIGH 4>; | ||
| 678 | #pwm-cells = <3>; | ||
| 679 | status = "disabled"; | ||
| 680 | }; | ||
| 681 | |||
| 617 | mmc0: mmc@fff80000 { | 682 | mmc0: mmc@fff80000 { |
| 618 | compatible = "atmel,hsmci"; | 683 | compatible = "atmel,hsmci"; |
| 619 | reg = <0xfff80000 0x600>; | 684 | reg = <0xfff80000 0x600>; |
| 620 | interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>; | 685 | interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>; |
| 686 | pinctrl-names = "default"; | ||
| 621 | dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>; | 687 | dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>; |
| 622 | dma-names = "rxtx"; | 688 | dma-names = "rxtx"; |
| 623 | #address-cells = <1>; | 689 | #address-cells = <1>; |
| @@ -629,6 +695,7 @@ | |||
| 629 | compatible = "atmel,hsmci"; | 695 | compatible = "atmel,hsmci"; |
| 630 | reg = <0xfffd0000 0x600>; | 696 | reg = <0xfffd0000 0x600>; |
| 631 | interrupts = <29 IRQ_TYPE_LEVEL_HIGH 0>; | 697 | interrupts = <29 IRQ_TYPE_LEVEL_HIGH 0>; |
| 698 | pinctrl-names = "default"; | ||
| 632 | dmas = <&dma 1 AT91_DMA_CFG_PER_ID(13)>; | 699 | dmas = <&dma 1 AT91_DMA_CFG_PER_ID(13)>; |
| 633 | dma-names = "rxtx"; | 700 | dma-names = "rxtx"; |
| 634 | #address-cells = <1>; | 701 | #address-cells = <1>; |
| @@ -727,6 +794,15 @@ | |||
| 727 | }; | 794 | }; |
| 728 | }; | 795 | }; |
| 729 | 796 | ||
| 797 | fb0: fb@0x00500000 { | ||
| 798 | compatible = "atmel,at91sam9g45-lcdc"; | ||
| 799 | reg = <0x00500000 0x1000>; | ||
| 800 | interrupts = <23 IRQ_TYPE_LEVEL_HIGH 3>; | ||
| 801 | pinctrl-names = "default"; | ||
| 802 | pinctrl-0 = <&pinctrl_fb>; | ||
| 803 | status = "disabled"; | ||
| 804 | }; | ||
| 805 | |||
| 730 | nand0: nand@40000000 { | 806 | nand0: nand@40000000 { |
| 731 | compatible = "atmel,at91rm9200-nand"; | 807 | compatible = "atmel,at91rm9200-nand"; |
| 732 | #address-cells = <1>; | 808 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/at91sam9m10g45ek.dts b/arch/arm/boot/dts/at91sam9m10g45ek.dts index a4b00e5c61c0..7ff665a8c708 100644 --- a/arch/arm/boot/dts/at91sam9m10g45ek.dts +++ b/arch/arm/boot/dts/at91sam9m10g45ek.dts | |||
| @@ -105,6 +105,14 @@ | |||
| 105 | AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD29 gpio WP pin pull up */ | 105 | AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PD29 gpio WP pin pull up */ |
| 106 | }; | 106 | }; |
| 107 | }; | 107 | }; |
| 108 | |||
| 109 | pwm0 { | ||
| 110 | pinctrl_pwm_leds: pwm-led { | ||
| 111 | atmel,pins = | ||
| 112 | <AT91_PIOD 0 AT91_PERIPH_B AT91_PINCTRL_PULL_UP /* PD0 periph B */ | ||
| 113 | AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>; /* PD31 periph B */ | ||
| 114 | }; | ||
| 115 | }; | ||
| 108 | }; | 116 | }; |
| 109 | 117 | ||
| 110 | spi0: spi@fffa4000{ | 118 | spi0: spi@fffa4000{ |
| @@ -121,6 +129,42 @@ | |||
| 121 | atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>; | 129 | atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>; |
| 122 | status = "okay"; | 130 | status = "okay"; |
| 123 | }; | 131 | }; |
| 132 | |||
| 133 | pwm0: pwm@fffb8000 { | ||
| 134 | status = "okay"; | ||
| 135 | |||
| 136 | pinctrl-names = "default"; | ||
| 137 | pinctrl-0 = <&pinctrl_pwm_leds>; | ||
| 138 | }; | ||
| 139 | }; | ||
| 140 | |||
| 141 | fb0: fb@0x00500000 { | ||
| 142 | display = <&display0>; | ||
| 143 | status = "okay"; | ||
| 144 | |||
| 145 | display0: display { | ||
| 146 | bits-per-pixel = <32>; | ||
| 147 | atmel,lcdcon-backlight; | ||
| 148 | atmel,dmacon = <0x1>; | ||
| 149 | atmel,lcdcon2 = <0x80008002>; | ||
| 150 | atmel,guard-time = <9>; | ||
| 151 | atmel,lcd-wiring-mode = "RGB"; | ||
| 152 | |||
| 153 | display-timings { | ||
| 154 | native-mode = <&timing0>; | ||
| 155 | timing0: timing0 { | ||
| 156 | clock-frequency = <9000000>; | ||
| 157 | hactive = <480>; | ||
| 158 | vactive = <272>; | ||
| 159 | hback-porch = <1>; | ||
| 160 | hfront-porch = <1>; | ||
| 161 | vback-porch = <40>; | ||
| 162 | vfront-porch = <1>; | ||
| 163 | hsync-len = <45>; | ||
| 164 | vsync-len = <1>; | ||
| 165 | }; | ||
| 166 | }; | ||
| 167 | }; | ||
| 124 | }; | 168 | }; |
| 125 | 169 | ||
| 126 | nand0: nand@40000000 { | 170 | nand0: nand@40000000 { |
| @@ -165,16 +209,22 @@ | |||
| 165 | gpios = <&pioD 30 GPIO_ACTIVE_HIGH>; | 209 | gpios = <&pioD 30 GPIO_ACTIVE_HIGH>; |
| 166 | linux,default-trigger = "heartbeat"; | 210 | linux,default-trigger = "heartbeat"; |
| 167 | }; | 211 | }; |
| 212 | }; | ||
| 213 | |||
| 214 | pwmleds { | ||
| 215 | compatible = "pwm-leds"; | ||
| 168 | 216 | ||
| 169 | d6 { | 217 | d6 { |
| 170 | label = "d6"; | 218 | label = "d6"; |
| 171 | gpios = <&pioD 0 GPIO_ACTIVE_LOW>; | 219 | pwms = <&pwm0 3 5000 0>; |
| 220 | max-brightness = <255>; | ||
| 172 | linux,default-trigger = "nand-disk"; | 221 | linux,default-trigger = "nand-disk"; |
| 173 | }; | 222 | }; |
| 174 | 223 | ||
| 175 | d7 { | 224 | d7 { |
| 176 | label = "d7"; | 225 | label = "d7"; |
| 177 | gpios = <&pioD 31 GPIO_ACTIVE_LOW>; | 226 | pwms = <&pwm0 1 5000 0>; |
| 227 | max-brightness = <255>; | ||
| 178 | linux,default-trigger = "mmc0"; | 228 | linux,default-trigger = "mmc0"; |
| 179 | }; | 229 | }; |
| 180 | }; | 230 | }; |
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi index 6224f9fe2f2b..7248270a3ea6 100644 --- a/arch/arm/boot/dts/at91sam9n12.dtsi +++ b/arch/arm/boot/dts/at91sam9n12.dtsi | |||
| @@ -33,6 +33,7 @@ | |||
| 33 | i2c0 = &i2c0; | 33 | i2c0 = &i2c0; |
| 34 | i2c1 = &i2c1; | 34 | i2c1 = &i2c1; |
| 35 | ssc0 = &ssc0; | 35 | ssc0 = &ssc0; |
| 36 | pwm0 = &pwm0; | ||
| 36 | }; | 37 | }; |
| 37 | cpus { | 38 | cpus { |
| 38 | #address-cells = <0>; | 39 | #address-cells = <0>; |
| @@ -542,6 +543,14 @@ | |||
| 542 | reg = <0xfffffe40 0x10>; | 543 | reg = <0xfffffe40 0x10>; |
| 543 | status = "disabled"; | 544 | status = "disabled"; |
| 544 | }; | 545 | }; |
| 546 | |||
| 547 | pwm0: pwm@f8034000 { | ||
| 548 | compatible = "atmel,at91sam9rl-pwm"; | ||
| 549 | reg = <0xf8034000 0x300>; | ||
| 550 | interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>; | ||
| 551 | #pwm-cells = <3>; | ||
| 552 | status = "disabled"; | ||
| 553 | }; | ||
| 545 | }; | 554 | }; |
| 546 | 555 | ||
| 547 | nand0: nand@40000000 { | 556 | nand0: nand@40000000 { |
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 40267a116c3c..6e5e9cfc3c49 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
| @@ -35,6 +35,7 @@ | |||
| 35 | i2c1 = &i2c1; | 35 | i2c1 = &i2c1; |
| 36 | i2c2 = &i2c2; | 36 | i2c2 = &i2c2; |
| 37 | ssc0 = &ssc0; | 37 | ssc0 = &ssc0; |
| 38 | pwm0 = &pwm0; | ||
| 38 | }; | 39 | }; |
| 39 | cpus { | 40 | cpus { |
| 40 | #address-cells = <0>; | 41 | #address-cells = <0>; |
| @@ -762,6 +763,14 @@ | |||
| 762 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; | 763 | interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; |
| 763 | status = "disabled"; | 764 | status = "disabled"; |
| 764 | }; | 765 | }; |
| 766 | |||
| 767 | pwm0: pwm@f8034000 { | ||
| 768 | compatible = "atmel,at91sam9rl-pwm"; | ||
| 769 | reg = <0xf8034000 0x300>; | ||
| 770 | interrupts = <18 IRQ_TYPE_LEVEL_HIGH 4>; | ||
| 771 | #pwm-cells = <3>; | ||
| 772 | status = "disabled"; | ||
| 773 | }; | ||
| 765 | }; | 774 | }; |
| 766 | 775 | ||
| 767 | nand0: nand@40000000 { | 776 | nand0: nand@40000000 { |
diff --git a/arch/arm/boot/dts/atlas6.dtsi b/arch/arm/boot/dts/atlas6.dtsi index 978bab4991df..f8674bcc4489 100644 --- a/arch/arm/boot/dts/atlas6.dtsi +++ b/arch/arm/boot/dts/atlas6.dtsi | |||
| @@ -27,6 +27,15 @@ | |||
| 27 | timebase-frequency = <0>; | 27 | timebase-frequency = <0>; |
| 28 | bus-frequency = <0>; | 28 | bus-frequency = <0>; |
| 29 | clock-frequency = <0>; | 29 | clock-frequency = <0>; |
| 30 | clocks = <&clks 12>; | ||
| 31 | operating-points = < | ||
| 32 | /* kHz uV */ | ||
| 33 | 200000 1025000 | ||
| 34 | 400000 1025000 | ||
| 35 | 600000 1050000 | ||
| 36 | 800000 1100000 | ||
| 37 | >; | ||
| 38 | clock-latency = <150000>; | ||
| 30 | }; | 39 | }; |
| 31 | }; | 40 | }; |
| 32 | 41 | ||
| @@ -69,6 +78,7 @@ | |||
| 69 | cphifbg@88030000 { | 78 | cphifbg@88030000 { |
| 70 | compatible = "sirf,prima2-cphifbg"; | 79 | compatible = "sirf,prima2-cphifbg"; |
| 71 | reg = <0x88030000 0x1000>; | 80 | reg = <0x88030000 0x1000>; |
| 81 | clocks = <&clks 42>; | ||
| 72 | }; | 82 | }; |
| 73 | }; | 83 | }; |
| 74 | 84 | ||
| @@ -546,6 +556,12 @@ | |||
| 546 | sirf,function = "usp1"; | 556 | sirf,function = "usp1"; |
| 547 | }; | 557 | }; |
| 548 | }; | 558 | }; |
| 559 | usp1_uart_nostreamctrl_pins_a: usp1@1 { | ||
| 560 | usp1 { | ||
| 561 | sirf,pins = "usp1_uart_nostreamctrl_grp"; | ||
| 562 | sirf,function = "usp1_uart_nostreamctrl"; | ||
| 563 | }; | ||
| 564 | }; | ||
| 549 | usb0_upli_drvbus_pins_a: usb0_upli_drvbus@0 { | 565 | usb0_upli_drvbus_pins_a: usb0_upli_drvbus@0 { |
| 550 | usb0_upli_drvbus { | 566 | usb0_upli_drvbus { |
| 551 | sirf,pins = "usb0_upli_drvbusgrp"; | 567 | sirf,pins = "usb0_upli_drvbusgrp"; |
| @@ -636,6 +652,7 @@ | |||
| 636 | reg = <0x56100000 0x100000>; | 652 | reg = <0x56100000 0x100000>; |
| 637 | interrupts = <38>; | 653 | interrupts = <38>; |
| 638 | status = "disabled"; | 654 | status = "disabled"; |
| 655 | bus-width = <4>; | ||
| 639 | clocks = <&clks 36>; | 656 | clocks = <&clks 36>; |
| 640 | }; | 657 | }; |
| 641 | 658 | ||
| @@ -645,6 +662,7 @@ | |||
| 645 | reg = <0x56200000 0x100000>; | 662 | reg = <0x56200000 0x100000>; |
| 646 | interrupts = <23>; | 663 | interrupts = <23>; |
| 647 | status = "disabled"; | 664 | status = "disabled"; |
| 665 | bus-width = <4>; | ||
| 648 | clocks = <&clks 37>; | 666 | clocks = <&clks 37>; |
| 649 | }; | 667 | }; |
| 650 | 668 | ||
| @@ -654,6 +672,7 @@ | |||
| 654 | reg = <0x56300000 0x100000>; | 672 | reg = <0x56300000 0x100000>; |
| 655 | interrupts = <23>; | 673 | interrupts = <23>; |
| 656 | status = "disabled"; | 674 | status = "disabled"; |
| 675 | bus-width = <4>; | ||
| 657 | clocks = <&clks 37>; | 676 | clocks = <&clks 37>; |
| 658 | }; | 677 | }; |
| 659 | 678 | ||
| @@ -663,6 +682,7 @@ | |||
| 663 | reg = <0x56500000 0x100000>; | 682 | reg = <0x56500000 0x100000>; |
| 664 | interrupts = <39>; | 683 | interrupts = <39>; |
| 665 | status = "disabled"; | 684 | status = "disabled"; |
| 685 | bus-width = <4>; | ||
| 666 | clocks = <&clks 38>; | 686 | clocks = <&clks 38>; |
| 667 | }; | 687 | }; |
| 668 | 688 | ||
| @@ -697,6 +717,12 @@ | |||
| 697 | interrupts = <52 53 54>; | 717 | interrupts = <52 53 54>; |
| 698 | }; | 718 | }; |
| 699 | 719 | ||
| 720 | minigpsrtc@2000 { | ||
| 721 | compatible = "sirf,prima2-minigpsrtc"; | ||
| 722 | reg = <0x2000 0x1000>; | ||
| 723 | interrupts = <54>; | ||
| 724 | }; | ||
| 725 | |||
| 700 | pwrc@3000 { | 726 | pwrc@3000 { |
| 701 | compatible = "sirf,prima2-pwrc"; | 727 | compatible = "sirf,prima2-pwrc"; |
| 702 | reg = <0x3000 0x1000>; | 728 | reg = <0x3000 0x1000>; |
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts index 6e9deb786a7d..2a3b1c1313a0 100644 --- a/arch/arm/boot/dts/bcm2835-rpi-b.dts +++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts | |||
| @@ -23,10 +23,15 @@ | |||
| 23 | 23 | ||
| 24 | &gpio { | 24 | &gpio { |
| 25 | pinctrl-names = "default"; | 25 | pinctrl-names = "default"; |
| 26 | pinctrl-0 = <&alt0 &alt3>; | 26 | pinctrl-0 = <&gpioout &alt0 &alt3>; |
| 27 | |||
| 28 | gpioout: gpioout { | ||
| 29 | brcm,pins = <6>; | ||
| 30 | brcm,function = <1>; /* GPIO out */ | ||
| 31 | }; | ||
| 27 | 32 | ||
| 28 | alt0: alt0 { | 33 | alt0: alt0 { |
| 29 | brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11 14 15 40 45>; | 34 | brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>; |
| 30 | brcm,function = <4>; /* alt0 */ | 35 | brcm,function = <4>; /* alt0 */ |
| 31 | }; | 36 | }; |
| 32 | 37 | ||
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi index aa537ed13f0a..b021c96d3ba1 100644 --- a/arch/arm/boot/dts/bcm2835.dtsi +++ b/arch/arm/boot/dts/bcm2835.dtsi | |||
| @@ -107,6 +107,12 @@ | |||
| 107 | clocks = <&clk_mmc>; | 107 | clocks = <&clk_mmc>; |
| 108 | status = "disabled"; | 108 | status = "disabled"; |
| 109 | }; | 109 | }; |
| 110 | |||
| 111 | usb { | ||
| 112 | compatible = "brcm,bcm2835-usb"; | ||
| 113 | reg = <0x7e980000 0x10000>; | ||
| 114 | interrupts = <1 9>; | ||
| 115 | }; | ||
| 110 | }; | 116 | }; |
| 111 | 117 | ||
| 112 | clocks { | 118 | clocks { |
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts index 588ce58a2959..1e11e5a5f723 100644 --- a/arch/arm/boot/dts/da850-evm.dts +++ b/arch/arm/boot/dts/da850-evm.dts | |||
| @@ -101,6 +101,9 @@ | |||
| 101 | pinctrl-names = "default"; | 101 | pinctrl-names = "default"; |
| 102 | pinctrl-0 = <&mii_pins>; | 102 | pinctrl-0 = <&mii_pins>; |
| 103 | }; | 103 | }; |
| 104 | gpio: gpio@1e26000 { | ||
| 105 | status = "okay"; | ||
| 106 | }; | ||
| 104 | }; | 107 | }; |
| 105 | nand_cs3@62000000 { | 108 | nand_cs3@62000000 { |
| 106 | status = "okay"; | 109 | status = "okay"; |
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi index 8d17346f9702..b695548dbb4e 100644 --- a/arch/arm/boot/dts/da850.dtsi +++ b/arch/arm/boot/dts/da850.dtsi | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | * option) any later version. | 8 | * option) any later version. |
| 9 | */ | 9 | */ |
| 10 | #include "skeleton.dtsi" | 10 | #include "skeleton.dtsi" |
| 11 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 11 | 12 | ||
| 12 | / { | 13 | / { |
| 13 | arm { | 14 | arm { |
| @@ -256,6 +257,19 @@ | |||
| 256 | 36 | 257 | 36 |
| 257 | >; | 258 | >; |
| 258 | }; | 259 | }; |
| 260 | gpio: gpio@1e26000 { | ||
| 261 | compatible = "ti,dm6441-gpio"; | ||
| 262 | gpio-controller; | ||
| 263 | reg = <0x226000 0x1000>; | ||
| 264 | interrupts = <42 IRQ_TYPE_EDGE_BOTH | ||
| 265 | 43 IRQ_TYPE_EDGE_BOTH 44 IRQ_TYPE_EDGE_BOTH | ||
| 266 | 45 IRQ_TYPE_EDGE_BOTH 46 IRQ_TYPE_EDGE_BOTH | ||
| 267 | 47 IRQ_TYPE_EDGE_BOTH 48 IRQ_TYPE_EDGE_BOTH | ||
| 268 | 49 IRQ_TYPE_EDGE_BOTH 50 IRQ_TYPE_EDGE_BOTH>; | ||
| 269 | ti,ngpio = <144>; | ||
| 270 | ti,davinci-gpio-unbanked = <0>; | ||
| 271 | status = "disabled"; | ||
| 272 | }; | ||
| 259 | }; | 273 | }; |
| 260 | nand_cs3@62000000 { | 274 | nand_cs3@62000000 { |
| 261 | compatible = "ti,davinci-nand"; | 275 | compatible = "ti,davinci-nand"; |
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dts index 8349a248ecea..7a70f4ca502a 100644 --- a/arch/arm/boot/dts/dove-cubox.dts +++ b/arch/arm/boot/dts/dove-cubox.dts | |||
| @@ -23,7 +23,7 @@ | |||
| 23 | power { | 23 | power { |
| 24 | label = "Power"; | 24 | label = "Power"; |
| 25 | gpios = <&gpio0 18 1>; | 25 | gpios = <&gpio0 18 1>; |
| 26 | linux,default-trigger = "default-on"; | 26 | default-state = "keep"; |
| 27 | }; | 27 | }; |
| 28 | }; | 28 | }; |
| 29 | 29 | ||
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi index 113a8bc7bee7..8de1031233ae 100644 --- a/arch/arm/boot/dts/dove.dtsi +++ b/arch/arm/boot/dts/dove.dtsi | |||
| @@ -107,51 +107,29 @@ | |||
| 107 | 0xffffe000 MBUS_ID(0x03, 0x01) 0 0x0000800 /* CESA SRAM 2k */ | 107 | 0xffffe000 MBUS_ID(0x03, 0x01) 0 0x0000800 /* CESA SRAM 2k */ |
| 108 | 0xfffff000 MBUS_ID(0x0d, 0x00) 0 0x0000800>; /* PMU SRAM 2k */ | 108 | 0xfffff000 MBUS_ID(0x0d, 0x00) 0 0x0000800>; /* PMU SRAM 2k */ |
| 109 | 109 | ||
| 110 | mbusc: mbus-ctrl@20000 { | 110 | spi0: spi-ctrl@10600 { |
| 111 | compatible = "marvell,mbus-controller"; | 111 | compatible = "marvell,orion-spi"; |
| 112 | reg = <0x20000 0x80>, <0x800100 0x8>; | 112 | #address-cells = <1>; |
| 113 | }; | 113 | #size-cells = <0>; |
| 114 | 114 | cell-index = <0>; | |
| 115 | timer: timer@20300 { | 115 | interrupts = <6>; |
| 116 | compatible = "marvell,orion-timer"; | 116 | reg = <0x10600 0x28>; |
| 117 | reg = <0x20300 0x20>; | ||
| 118 | interrupt-parent = <&bridge_intc>; | ||
| 119 | interrupts = <1>, <2>; | ||
| 120 | clocks = <&core_clk 0>; | 117 | clocks = <&core_clk 0>; |
| 118 | pinctrl-0 = <&pmx_spi0>; | ||
| 119 | pinctrl-names = "default"; | ||
| 120 | status = "disabled"; | ||
| 121 | }; | 121 | }; |
| 122 | 122 | ||
| 123 | intc: main-interrupt-ctrl@20200 { | 123 | i2c0: i2c-ctrl@11000 { |
| 124 | compatible = "marvell,orion-intc"; | 124 | compatible = "marvell,mv64xxx-i2c"; |
| 125 | interrupt-controller; | 125 | reg = <0x11000 0x20>; |
| 126 | #interrupt-cells = <1>; | 126 | #address-cells = <1>; |
| 127 | reg = <0x20200 0x10>, <0x20210 0x10>; | 127 | #size-cells = <0>; |
| 128 | }; | 128 | interrupts = <11>; |
| 129 | 129 | clock-frequency = <400000>; | |
| 130 | bridge_intc: bridge-interrupt-ctrl@20110 { | 130 | timeout-ms = <1000>; |
| 131 | compatible = "marvell,orion-bridge-intc"; | ||
| 132 | interrupt-controller; | ||
| 133 | #interrupt-cells = <1>; | ||
| 134 | reg = <0x20110 0x8>; | ||
| 135 | interrupts = <0>; | ||
| 136 | marvell,#interrupts = <5>; | ||
| 137 | }; | ||
| 138 | |||
| 139 | core_clk: core-clocks@d0214 { | ||
| 140 | compatible = "marvell,dove-core-clock"; | ||
| 141 | reg = <0xd0214 0x4>; | ||
| 142 | #clock-cells = <1>; | ||
| 143 | }; | ||
| 144 | |||
| 145 | gate_clk: clock-gating-ctrl@d0038 { | ||
| 146 | compatible = "marvell,dove-gating-clock"; | ||
| 147 | reg = <0xd0038 0x4>; | ||
| 148 | clocks = <&core_clk 0>; | 131 | clocks = <&core_clk 0>; |
| 149 | #clock-cells = <1>; | 132 | status = "disabled"; |
| 150 | }; | ||
| 151 | |||
| 152 | thermal: thermal-diode@d001c { | ||
| 153 | compatible = "marvell,dove-thermal"; | ||
| 154 | reg = <0xd001c 0x0c>, <0xd005c 0x08>; | ||
| 155 | }; | 133 | }; |
| 156 | 134 | ||
| 157 | uart0: serial@12000 { | 135 | uart0: serial@12000 { |
| @@ -192,34 +170,224 @@ | |||
| 192 | status = "disabled"; | 170 | status = "disabled"; |
| 193 | }; | 171 | }; |
| 194 | 172 | ||
| 195 | gpio0: gpio-ctrl@d0400 { | 173 | spi1: spi-ctrl@14600 { |
| 196 | compatible = "marvell,orion-gpio"; | 174 | compatible = "marvell,orion-spi"; |
| 197 | #gpio-cells = <2>; | 175 | #address-cells = <1>; |
| 198 | gpio-controller; | 176 | #size-cells = <0>; |
| 199 | reg = <0xd0400 0x20>; | 177 | cell-index = <1>; |
| 200 | ngpios = <32>; | 178 | interrupts = <5>; |
| 179 | reg = <0x14600 0x28>; | ||
| 180 | clocks = <&core_clk 0>; | ||
| 181 | status = "disabled"; | ||
| 182 | }; | ||
| 183 | |||
| 184 | mbusc: mbus-ctrl@20000 { | ||
| 185 | compatible = "marvell,mbus-controller"; | ||
| 186 | reg = <0x20000 0x80>, <0x800100 0x8>; | ||
| 187 | }; | ||
| 188 | |||
| 189 | bridge_intc: bridge-interrupt-ctrl@20110 { | ||
| 190 | compatible = "marvell,orion-bridge-intc"; | ||
| 201 | interrupt-controller; | 191 | interrupt-controller; |
| 202 | #interrupt-cells = <2>; | 192 | #interrupt-cells = <1>; |
| 203 | interrupts = <12>, <13>, <14>, <60>; | 193 | reg = <0x20110 0x8>; |
| 194 | interrupts = <0>; | ||
| 195 | marvell,#interrupts = <5>; | ||
| 204 | }; | 196 | }; |
| 205 | 197 | ||
| 206 | gpio1: gpio-ctrl@d0420 { | 198 | intc: main-interrupt-ctrl@20200 { |
| 207 | compatible = "marvell,orion-gpio"; | 199 | compatible = "marvell,orion-intc"; |
| 208 | #gpio-cells = <2>; | ||
| 209 | gpio-controller; | ||
| 210 | reg = <0xd0420 0x20>; | ||
| 211 | ngpios = <32>; | ||
| 212 | interrupt-controller; | 200 | interrupt-controller; |
| 213 | #interrupt-cells = <2>; | 201 | #interrupt-cells = <1>; |
| 214 | interrupts = <61>; | 202 | reg = <0x20200 0x10>, <0x20210 0x10>; |
| 215 | }; | 203 | }; |
| 216 | 204 | ||
| 217 | gpio2: gpio-ctrl@e8400 { | 205 | timer: timer@20300 { |
| 218 | compatible = "marvell,orion-gpio"; | 206 | compatible = "marvell,orion-timer"; |
| 219 | #gpio-cells = <2>; | 207 | reg = <0x20300 0x20>; |
| 220 | gpio-controller; | 208 | interrupt-parent = <&bridge_intc>; |
| 221 | reg = <0xe8400 0x0c>; | 209 | interrupts = <1>, <2>; |
| 222 | ngpios = <8>; | 210 | clocks = <&core_clk 0>; |
| 211 | }; | ||
| 212 | |||
| 213 | crypto: crypto-engine@30000 { | ||
| 214 | compatible = "marvell,orion-crypto"; | ||
| 215 | reg = <0x30000 0x10000>, | ||
| 216 | <0xffffe000 0x800>; | ||
| 217 | reg-names = "regs", "sram"; | ||
| 218 | interrupts = <31>; | ||
| 219 | clocks = <&gate_clk 15>; | ||
| 220 | status = "okay"; | ||
| 221 | }; | ||
| 222 | |||
| 223 | ehci0: usb-host@50000 { | ||
| 224 | compatible = "marvell,orion-ehci"; | ||
| 225 | reg = <0x50000 0x1000>; | ||
| 226 | interrupts = <24>; | ||
| 227 | clocks = <&gate_clk 0>; | ||
| 228 | status = "okay"; | ||
| 229 | }; | ||
| 230 | |||
| 231 | ehci1: usb-host@51000 { | ||
| 232 | compatible = "marvell,orion-ehci"; | ||
| 233 | reg = <0x51000 0x1000>; | ||
| 234 | interrupts = <25>; | ||
| 235 | clocks = <&gate_clk 1>; | ||
| 236 | status = "okay"; | ||
| 237 | }; | ||
| 238 | |||
| 239 | xor0: dma-engine@60800 { | ||
| 240 | compatible = "marvell,orion-xor"; | ||
| 241 | reg = <0x60800 0x100 | ||
| 242 | 0x60a00 0x100>; | ||
| 243 | clocks = <&gate_clk 23>; | ||
| 244 | status = "okay"; | ||
| 245 | |||
| 246 | channel0 { | ||
| 247 | interrupts = <39>; | ||
| 248 | dmacap,memcpy; | ||
| 249 | dmacap,xor; | ||
| 250 | }; | ||
| 251 | |||
| 252 | channel1 { | ||
| 253 | interrupts = <40>; | ||
| 254 | dmacap,memcpy; | ||
| 255 | dmacap,xor; | ||
| 256 | }; | ||
| 257 | }; | ||
| 258 | |||
| 259 | xor1: dma-engine@60900 { | ||
| 260 | compatible = "marvell,orion-xor"; | ||
| 261 | reg = <0x60900 0x100 | ||
| 262 | 0x60b00 0x100>; | ||
| 263 | clocks = <&gate_clk 24>; | ||
| 264 | status = "okay"; | ||
| 265 | |||
| 266 | channel0 { | ||
| 267 | interrupts = <42>; | ||
| 268 | dmacap,memcpy; | ||
| 269 | dmacap,xor; | ||
| 270 | }; | ||
| 271 | |||
| 272 | channel1 { | ||
| 273 | interrupts = <43>; | ||
| 274 | dmacap,memcpy; | ||
| 275 | dmacap,xor; | ||
| 276 | }; | ||
| 277 | }; | ||
| 278 | |||
| 279 | sdio1: sdio-host@90000 { | ||
| 280 | compatible = "marvell,dove-sdhci"; | ||
| 281 | reg = <0x90000 0x100>; | ||
| 282 | interrupts = <36>, <38>; | ||
| 283 | clocks = <&gate_clk 9>; | ||
| 284 | pinctrl-0 = <&pmx_sdio1>; | ||
| 285 | pinctrl-names = "default"; | ||
| 286 | status = "disabled"; | ||
| 287 | }; | ||
| 288 | |||
| 289 | eth: ethernet-ctrl@72000 { | ||
| 290 | compatible = "marvell,orion-eth"; | ||
| 291 | #address-cells = <1>; | ||
| 292 | #size-cells = <0>; | ||
| 293 | reg = <0x72000 0x4000>; | ||
| 294 | clocks = <&gate_clk 2>; | ||
| 295 | marvell,tx-checksum-limit = <1600>; | ||
| 296 | status = "disabled"; | ||
| 297 | |||
| 298 | ethernet-port@0 { | ||
| 299 | device_type = "network"; | ||
| 300 | compatible = "marvell,orion-eth-port"; | ||
| 301 | reg = <0>; | ||
| 302 | interrupts = <29>; | ||
| 303 | /* overwrite MAC address in bootloader */ | ||
| 304 | local-mac-address = [00 00 00 00 00 00]; | ||
| 305 | phy-handle = <ðphy>; | ||
| 306 | }; | ||
| 307 | }; | ||
| 308 | |||
| 309 | mdio: mdio-bus@72004 { | ||
| 310 | compatible = "marvell,orion-mdio"; | ||
| 311 | #address-cells = <1>; | ||
| 312 | #size-cells = <0>; | ||
| 313 | reg = <0x72004 0x84>; | ||
| 314 | interrupts = <30>; | ||
| 315 | clocks = <&gate_clk 2>; | ||
| 316 | status = "disabled"; | ||
| 317 | |||
| 318 | ethphy: ethernet-phy { | ||
| 319 | device_type = "ethernet-phy"; | ||
| 320 | /* set phy address in board file */ | ||
| 321 | }; | ||
| 322 | }; | ||
| 323 | |||
| 324 | sdio0: sdio-host@92000 { | ||
| 325 | compatible = "marvell,dove-sdhci"; | ||
| 326 | reg = <0x92000 0x100>; | ||
| 327 | interrupts = <35>, <37>; | ||
| 328 | clocks = <&gate_clk 8>; | ||
| 329 | pinctrl-0 = <&pmx_sdio0>; | ||
| 330 | pinctrl-names = "default"; | ||
| 331 | status = "disabled"; | ||
| 332 | }; | ||
| 333 | |||
| 334 | sata0: sata-host@a0000 { | ||
| 335 | compatible = "marvell,orion-sata"; | ||
| 336 | reg = <0xa0000 0x2400>; | ||
| 337 | interrupts = <62>; | ||
| 338 | clocks = <&gate_clk 3>; | ||
| 339 | phys = <&sata_phy0>; | ||
| 340 | phy-names = "port0"; | ||
| 341 | nr-ports = <1>; | ||
| 342 | status = "disabled"; | ||
| 343 | }; | ||
| 344 | |||
| 345 | sata_phy0: sata-phy@a2000 { | ||
| 346 | compatible = "marvell,mvebu-sata-phy"; | ||
| 347 | reg = <0xa2000 0x0334>; | ||
| 348 | clocks = <&gate_clk 3>; | ||
| 349 | clock-names = "sata"; | ||
| 350 | #phy-cells = <0>; | ||
| 351 | status = "ok"; | ||
| 352 | }; | ||
| 353 | |||
| 354 | audio0: audio-controller@b0000 { | ||
| 355 | compatible = "marvell,dove-audio"; | ||
| 356 | reg = <0xb0000 0x2210>; | ||
| 357 | interrupts = <19>, <20>; | ||
| 358 | clocks = <&gate_clk 12>; | ||
| 359 | clock-names = "internal"; | ||
| 360 | status = "disabled"; | ||
| 361 | }; | ||
| 362 | |||
| 363 | audio1: audio-controller@b4000 { | ||
| 364 | compatible = "marvell,dove-audio"; | ||
| 365 | reg = <0xb4000 0x2210>; | ||
| 366 | interrupts = <21>, <22>; | ||
| 367 | clocks = <&gate_clk 13>; | ||
| 368 | clock-names = "internal"; | ||
| 369 | status = "disabled"; | ||
| 370 | }; | ||
| 371 | |||
| 372 | thermal: thermal-diode@d001c { | ||
| 373 | compatible = "marvell,dove-thermal"; | ||
| 374 | reg = <0xd001c 0x0c>, <0xd005c 0x08>; | ||
| 375 | }; | ||
| 376 | |||
| 377 | gate_clk: clock-gating-ctrl@d0038 { | ||
| 378 | compatible = "marvell,dove-gating-clock"; | ||
| 379 | reg = <0xd0038 0x4>; | ||
| 380 | clocks = <&core_clk 0>; | ||
| 381 | #clock-cells = <1>; | ||
| 382 | }; | ||
| 383 | |||
| 384 | pmu_intc: pmu-interrupt-ctrl@d0050 { | ||
| 385 | compatible = "marvell,dove-pmu-intc"; | ||
| 386 | interrupt-controller; | ||
| 387 | #interrupt-cells = <1>; | ||
| 388 | reg = <0xd0050 0x8>; | ||
| 389 | interrupts = <33>; | ||
| 390 | marvell,#interrupts = <7>; | ||
| 223 | }; | 391 | }; |
| 224 | 392 | ||
| 225 | pinctrl: pin-ctrl@d0200 { | 393 | pinctrl: pin-ctrl@d0200 { |
| @@ -413,193 +581,47 @@ | |||
| 413 | }; | 581 | }; |
| 414 | }; | 582 | }; |
| 415 | 583 | ||
| 416 | spi0: spi-ctrl@10600 { | 584 | core_clk: core-clocks@d0214 { |
| 417 | compatible = "marvell,orion-spi"; | 585 | compatible = "marvell,dove-core-clock"; |
| 418 | #address-cells = <1>; | 586 | reg = <0xd0214 0x4>; |
| 419 | #size-cells = <0>; | 587 | #clock-cells = <1>; |
| 420 | cell-index = <0>; | ||
| 421 | interrupts = <6>; | ||
| 422 | reg = <0x10600 0x28>; | ||
| 423 | clocks = <&core_clk 0>; | ||
| 424 | pinctrl-0 = <&pmx_spi0>; | ||
| 425 | pinctrl-names = "default"; | ||
| 426 | status = "disabled"; | ||
| 427 | }; | ||
| 428 | |||
| 429 | spi1: spi-ctrl@14600 { | ||
| 430 | compatible = "marvell,orion-spi"; | ||
| 431 | #address-cells = <1>; | ||
| 432 | #size-cells = <0>; | ||
| 433 | cell-index = <1>; | ||
| 434 | interrupts = <5>; | ||
| 435 | reg = <0x14600 0x28>; | ||
| 436 | clocks = <&core_clk 0>; | ||
| 437 | status = "disabled"; | ||
| 438 | }; | ||
| 439 | |||
| 440 | i2c0: i2c-ctrl@11000 { | ||
| 441 | compatible = "marvell,mv64xxx-i2c"; | ||
| 442 | reg = <0x11000 0x20>; | ||
| 443 | #address-cells = <1>; | ||
| 444 | #size-cells = <0>; | ||
| 445 | interrupts = <11>; | ||
| 446 | clock-frequency = <400000>; | ||
| 447 | timeout-ms = <1000>; | ||
| 448 | clocks = <&core_clk 0>; | ||
| 449 | status = "disabled"; | ||
| 450 | }; | ||
| 451 | |||
| 452 | ehci0: usb-host@50000 { | ||
| 453 | compatible = "marvell,orion-ehci"; | ||
| 454 | reg = <0x50000 0x1000>; | ||
| 455 | interrupts = <24>; | ||
| 456 | clocks = <&gate_clk 0>; | ||
| 457 | status = "okay"; | ||
| 458 | }; | ||
| 459 | |||
| 460 | ehci1: usb-host@51000 { | ||
| 461 | compatible = "marvell,orion-ehci"; | ||
| 462 | reg = <0x51000 0x1000>; | ||
| 463 | interrupts = <25>; | ||
| 464 | clocks = <&gate_clk 1>; | ||
| 465 | status = "okay"; | ||
| 466 | }; | ||
| 467 | |||
| 468 | sdio0: sdio-host@92000 { | ||
| 469 | compatible = "marvell,dove-sdhci"; | ||
| 470 | reg = <0x92000 0x100>; | ||
| 471 | interrupts = <35>, <37>; | ||
| 472 | clocks = <&gate_clk 8>; | ||
| 473 | pinctrl-0 = <&pmx_sdio0>; | ||
| 474 | pinctrl-names = "default"; | ||
| 475 | status = "disabled"; | ||
| 476 | }; | 588 | }; |
| 477 | 589 | ||
| 478 | sdio1: sdio-host@90000 { | 590 | gpio0: gpio-ctrl@d0400 { |
| 479 | compatible = "marvell,dove-sdhci"; | 591 | compatible = "marvell,orion-gpio"; |
| 480 | reg = <0x90000 0x100>; | 592 | #gpio-cells = <2>; |
| 481 | interrupts = <36>, <38>; | 593 | gpio-controller; |
| 482 | clocks = <&gate_clk 9>; | 594 | reg = <0xd0400 0x20>; |
| 483 | pinctrl-0 = <&pmx_sdio1>; | 595 | ngpios = <32>; |
| 484 | pinctrl-names = "default"; | 596 | interrupt-controller; |
| 485 | status = "disabled"; | 597 | #interrupt-cells = <2>; |
| 598 | interrupts = <12>, <13>, <14>, <60>; | ||
| 486 | }; | 599 | }; |
| 487 | 600 | ||
| 488 | sata0: sata-host@a0000 { | 601 | gpio1: gpio-ctrl@d0420 { |
| 489 | compatible = "marvell,orion-sata"; | 602 | compatible = "marvell,orion-gpio"; |
| 490 | reg = <0xa0000 0x2400>; | 603 | #gpio-cells = <2>; |
| 491 | interrupts = <62>; | 604 | gpio-controller; |
| 492 | clocks = <&gate_clk 3>; | 605 | reg = <0xd0420 0x20>; |
| 493 | nr-ports = <1>; | 606 | ngpios = <32>; |
| 494 | status = "disabled"; | 607 | interrupt-controller; |
| 608 | #interrupt-cells = <2>; | ||
| 609 | interrupts = <61>; | ||
| 495 | }; | 610 | }; |
| 496 | 611 | ||
| 497 | rtc: real-time-clock@d8500 { | 612 | rtc: real-time-clock@d8500 { |
| 498 | compatible = "marvell,orion-rtc"; | 613 | compatible = "marvell,orion-rtc"; |
| 499 | reg = <0xd8500 0x20>; | 614 | reg = <0xd8500 0x20>; |
| 615 | interrupt-parent = <&pmu_intc>; | ||
| 616 | interrupts = <5>; | ||
| 500 | }; | 617 | }; |
| 501 | 618 | ||
| 502 | crypto: crypto-engine@30000 { | 619 | gpio2: gpio-ctrl@e8400 { |
| 503 | compatible = "marvell,orion-crypto"; | 620 | compatible = "marvell,orion-gpio"; |
| 504 | reg = <0x30000 0x10000>, | 621 | #gpio-cells = <2>; |
| 505 | <0xffffe000 0x800>; | 622 | gpio-controller; |
| 506 | reg-names = "regs", "sram"; | 623 | reg = <0xe8400 0x0c>; |
| 507 | interrupts = <31>; | 624 | ngpios = <8>; |
| 508 | clocks = <&gate_clk 15>; | ||
| 509 | status = "okay"; | ||
| 510 | }; | ||
| 511 | |||
| 512 | xor0: dma-engine@60800 { | ||
| 513 | compatible = "marvell,orion-xor"; | ||
| 514 | reg = <0x60800 0x100 | ||
| 515 | 0x60a00 0x100>; | ||
| 516 | clocks = <&gate_clk 23>; | ||
| 517 | status = "okay"; | ||
| 518 | |||
| 519 | channel0 { | ||
| 520 | interrupts = <39>; | ||
| 521 | dmacap,memcpy; | ||
| 522 | dmacap,xor; | ||
| 523 | }; | ||
| 524 | |||
| 525 | channel1 { | ||
| 526 | interrupts = <40>; | ||
| 527 | dmacap,memcpy; | ||
| 528 | dmacap,xor; | ||
| 529 | }; | ||
| 530 | }; | ||
| 531 | |||
| 532 | xor1: dma-engine@60900 { | ||
| 533 | compatible = "marvell,orion-xor"; | ||
| 534 | reg = <0x60900 0x100 | ||
| 535 | 0x60b00 0x100>; | ||
| 536 | clocks = <&gate_clk 24>; | ||
| 537 | status = "okay"; | ||
| 538 | |||
| 539 | channel0 { | ||
| 540 | interrupts = <42>; | ||
| 541 | dmacap,memcpy; | ||
| 542 | dmacap,xor; | ||
| 543 | }; | ||
| 544 | |||
| 545 | channel1 { | ||
| 546 | interrupts = <43>; | ||
| 547 | dmacap,memcpy; | ||
| 548 | dmacap,xor; | ||
| 549 | }; | ||
| 550 | }; | ||
| 551 | |||
| 552 | mdio: mdio-bus@72004 { | ||
| 553 | compatible = "marvell,orion-mdio"; | ||
| 554 | #address-cells = <1>; | ||
| 555 | #size-cells = <0>; | ||
| 556 | reg = <0x72004 0x84>; | ||
| 557 | interrupts = <30>; | ||
| 558 | clocks = <&gate_clk 2>; | ||
| 559 | status = "disabled"; | ||
| 560 | |||
| 561 | ethphy: ethernet-phy { | ||
| 562 | device-type = "ethernet-phy"; | ||
| 563 | /* set phy address in board file */ | ||
| 564 | }; | ||
| 565 | }; | ||
| 566 | |||
| 567 | eth: ethernet-ctrl@72000 { | ||
| 568 | compatible = "marvell,orion-eth"; | ||
| 569 | #address-cells = <1>; | ||
| 570 | #size-cells = <0>; | ||
| 571 | reg = <0x72000 0x4000>; | ||
| 572 | clocks = <&gate_clk 2>; | ||
| 573 | marvell,tx-checksum-limit = <1600>; | ||
| 574 | status = "disabled"; | ||
| 575 | |||
| 576 | ethernet-port@0 { | ||
| 577 | device_type = "network"; | ||
| 578 | compatible = "marvell,orion-eth-port"; | ||
| 579 | reg = <0>; | ||
| 580 | interrupts = <29>; | ||
| 581 | /* overwrite MAC address in bootloader */ | ||
| 582 | local-mac-address = [00 00 00 00 00 00]; | ||
| 583 | phy-handle = <ðphy>; | ||
| 584 | }; | ||
| 585 | }; | ||
| 586 | |||
| 587 | audio0: audio-controller@b0000 { | ||
| 588 | compatible = "marvell,dove-audio"; | ||
| 589 | reg = <0xb0000 0x2210>; | ||
| 590 | interrupts = <19>, <20>; | ||
| 591 | clocks = <&gate_clk 12>; | ||
| 592 | clock-names = "internal"; | ||
| 593 | status = "disabled"; | ||
| 594 | }; | ||
| 595 | |||
| 596 | audio1: audio-controller@b4000 { | ||
| 597 | compatible = "marvell,dove-audio"; | ||
| 598 | reg = <0xb4000 0x2210>; | ||
| 599 | interrupts = <21>, <22>; | ||
| 600 | clocks = <&gate_clk 13>; | ||
| 601 | clock-names = "internal"; | ||
| 602 | status = "disabled"; | ||
| 603 | }; | 625 | }; |
| 604 | }; | 626 | }; |
| 605 | }; | 627 | }; |
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts index 861aa7d6fc7d..50ccd151091e 100644 --- a/arch/arm/boot/dts/emev2-kzm9d.dts +++ b/arch/arm/boot/dts/emev2-kzm9d.dts | |||
| @@ -9,7 +9,10 @@ | |||
| 9 | */ | 9 | */ |
| 10 | /dts-v1/; | 10 | /dts-v1/; |
| 11 | 11 | ||
| 12 | /include/ "emev2.dtsi" | 12 | #include "emev2.dtsi" |
| 13 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | #include <dt-bindings/input/input.h> | ||
| 15 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 13 | 16 | ||
| 14 | / { | 17 | / { |
| 15 | model = "EMEV2 KZM9D Board"; | 18 | model = "EMEV2 KZM9D Board"; |
| @@ -47,11 +50,46 @@ | |||
| 47 | reg = <0x20000000 0x10000>; | 50 | reg = <0x20000000 0x10000>; |
| 48 | phy-mode = "mii"; | 51 | phy-mode = "mii"; |
| 49 | interrupt-parent = <&gpio0>; | 52 | interrupt-parent = <&gpio0>; |
| 50 | interrupts = <1 1>; /* active high */ | 53 | interrupts = <1 IRQ_TYPE_EDGE_RISING>; |
| 51 | reg-io-width = <4>; | 54 | reg-io-width = <4>; |
| 52 | smsc,irq-active-high; | 55 | smsc,irq-active-high; |
| 53 | smsc,irq-push-pull; | 56 | smsc,irq-push-pull; |
| 54 | vddvario-supply = <®_1p8v>; | 57 | vddvario-supply = <®_1p8v>; |
| 55 | vdd33a-supply = <®_3p3v>; | 58 | vdd33a-supply = <®_3p3v>; |
| 56 | }; | 59 | }; |
| 60 | |||
| 61 | gpio_keys { | ||
| 62 | compatible = "gpio-keys"; | ||
| 63 | #address-cells = <1>; | ||
| 64 | #size-cells = <0>; | ||
| 65 | |||
| 66 | button@1 { | ||
| 67 | debounce_interval = <50>; | ||
| 68 | wakeup = <1>; | ||
| 69 | label = "DSW2-1"; | ||
| 70 | linux,code = <KEY_1>; | ||
| 71 | gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; | ||
| 72 | }; | ||
| 73 | button@2 { | ||
| 74 | debounce_interval = <50>; | ||
| 75 | wakeup = <1>; | ||
| 76 | label = "DSW2-2"; | ||
| 77 | linux,code = <KEY_2>; | ||
| 78 | gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; | ||
| 79 | }; | ||
| 80 | button@3 { | ||
| 81 | debounce_interval = <50>; | ||
| 82 | wakeup = <1>; | ||
| 83 | label = "DSW2-3"; | ||
| 84 | linux,code = <KEY_3>; | ||
| 85 | gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; | ||
| 86 | }; | ||
| 87 | button@4 { | ||
| 88 | debounce_interval = <50>; | ||
| 89 | wakeup = <1>; | ||
| 90 | label = "DSW2-4"; | ||
| 91 | linux,code = <KEY_4>; | ||
| 92 | gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>; | ||
| 93 | }; | ||
| 94 | }; | ||
| 57 | }; | 95 | }; |
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi index 9063a4434d6a..e37985fa10e2 100644 --- a/arch/arm/boot/dts/emev2.dtsi +++ b/arch/arm/boot/dts/emev2.dtsi | |||
| @@ -8,7 +8,8 @@ | |||
| 8 | * kind, whether express or implied. | 8 | * kind, whether express or implied. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /include/ "skeleton.dtsi" | 11 | #include "skeleton.dtsi" |
| 12 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 12 | 13 | ||
| 13 | / { | 14 | / { |
| 14 | compatible = "renesas,emev2"; | 15 | compatible = "renesas,emev2"; |
| @@ -48,44 +49,129 @@ | |||
| 48 | 49 | ||
| 49 | pmu { | 50 | pmu { |
| 50 | compatible = "arm,cortex-a9-pmu"; | 51 | compatible = "arm,cortex-a9-pmu"; |
| 51 | interrupts = <0 120 4>, | 52 | interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>, |
| 52 | <0 121 4>; | 53 | <0 121 IRQ_TYPE_LEVEL_HIGH>; |
| 54 | }; | ||
| 55 | |||
| 56 | smu@e0110000 { | ||
| 57 | compatible = "renesas,emev2-smu"; | ||
| 58 | reg = <0xe0110000 0x10000>; | ||
| 59 | #address-cells = <2>; | ||
| 60 | #size-cells = <0>; | ||
| 61 | |||
| 62 | c32ki: c32ki { | ||
| 63 | compatible = "fixed-clock"; | ||
| 64 | clock-frequency = <32768>; | ||
| 65 | #clock-cells = <0>; | ||
| 66 | }; | ||
| 67 | pll3_fo: pll3_fo { | ||
| 68 | compatible = "fixed-factor-clock"; | ||
| 69 | clocks = <&c32ki>; | ||
| 70 | clock-div = <1>; | ||
| 71 | clock-mult = <7000>; | ||
| 72 | #clock-cells = <0>; | ||
| 73 | }; | ||
| 74 | usia_u0_sclkdiv: usia_u0_sclkdiv { | ||
| 75 | compatible = "renesas,emev2-smu-clkdiv"; | ||
| 76 | reg = <0x610 0>; | ||
| 77 | clocks = <&pll3_fo>; | ||
| 78 | #clock-cells = <0>; | ||
| 79 | }; | ||
| 80 | usib_u1_sclkdiv: usib_u1_sclkdiv { | ||
| 81 | compatible = "renesas,emev2-smu-clkdiv"; | ||
| 82 | reg = <0x65c 0>; | ||
| 83 | clocks = <&pll3_fo>; | ||
| 84 | #clock-cells = <0>; | ||
| 85 | }; | ||
| 86 | usib_u2_sclkdiv: usib_u2_sclkdiv { | ||
| 87 | compatible = "renesas,emev2-smu-clkdiv"; | ||
| 88 | reg = <0x65c 16>; | ||
| 89 | clocks = <&pll3_fo>; | ||
| 90 | #clock-cells = <0>; | ||
| 91 | }; | ||
| 92 | usib_u3_sclkdiv: usib_u3_sclkdiv { | ||
| 93 | compatible = "renesas,emev2-smu-clkdiv"; | ||
| 94 | reg = <0x660 0>; | ||
| 95 | clocks = <&pll3_fo>; | ||
| 96 | #clock-cells = <0>; | ||
| 97 | }; | ||
| 98 | usia_u0_sclk: usia_u0_sclk { | ||
| 99 | compatible = "renesas,emev2-smu-gclk"; | ||
| 100 | reg = <0x4a0 1>; | ||
| 101 | clocks = <&usia_u0_sclkdiv>; | ||
| 102 | #clock-cells = <0>; | ||
| 103 | }; | ||
| 104 | usib_u1_sclk: usib_u1_sclk { | ||
| 105 | compatible = "renesas,emev2-smu-gclk"; | ||
| 106 | reg = <0x4b8 1>; | ||
| 107 | clocks = <&usib_u1_sclkdiv>; | ||
| 108 | #clock-cells = <0>; | ||
| 109 | }; | ||
| 110 | usib_u2_sclk: usib_u2_sclk { | ||
| 111 | compatible = "renesas,emev2-smu-gclk"; | ||
| 112 | reg = <0x4bc 1>; | ||
| 113 | clocks = <&usib_u2_sclkdiv>; | ||
| 114 | #clock-cells = <0>; | ||
| 115 | }; | ||
| 116 | usib_u3_sclk: usib_u3_sclk { | ||
| 117 | compatible = "renesas,emev2-smu-gclk"; | ||
| 118 | reg = <0x4c0 1>; | ||
| 119 | clocks = <&usib_u3_sclkdiv>; | ||
| 120 | #clock-cells = <0>; | ||
| 121 | }; | ||
| 122 | sti_sclk: sti_sclk { | ||
| 123 | compatible = "renesas,emev2-smu-gclk"; | ||
| 124 | reg = <0x528 1>; | ||
| 125 | clocks = <&c32ki>; | ||
| 126 | #clock-cells = <0>; | ||
| 127 | }; | ||
| 53 | }; | 128 | }; |
| 54 | 129 | ||
| 55 | sti@e0180000 { | 130 | sti@e0180000 { |
| 56 | compatible = "renesas,em-sti"; | 131 | compatible = "renesas,em-sti"; |
| 57 | reg = <0xe0180000 0x54>; | 132 | reg = <0xe0180000 0x54>; |
| 58 | interrupts = <0 125 0>; | 133 | interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>; |
| 134 | clocks = <&sti_sclk>; | ||
| 135 | clock-names = "sclk"; | ||
| 59 | }; | 136 | }; |
| 60 | 137 | ||
| 61 | uart@e1020000 { | 138 | uart@e1020000 { |
| 62 | compatible = "renesas,em-uart"; | 139 | compatible = "renesas,em-uart"; |
| 63 | reg = <0xe1020000 0x38>; | 140 | reg = <0xe1020000 0x38>; |
| 64 | interrupts = <0 8 0>; | 141 | interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>; |
| 142 | clocks = <&usia_u0_sclk>; | ||
| 143 | clock-names = "sclk"; | ||
| 65 | }; | 144 | }; |
| 66 | 145 | ||
| 67 | uart@e1030000 { | 146 | uart@e1030000 { |
| 68 | compatible = "renesas,em-uart"; | 147 | compatible = "renesas,em-uart"; |
| 69 | reg = <0xe1030000 0x38>; | 148 | reg = <0xe1030000 0x38>; |
| 70 | interrupts = <0 9 0>; | 149 | interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; |
| 150 | clocks = <&usib_u1_sclk>; | ||
| 151 | clock-names = "sclk"; | ||
| 71 | }; | 152 | }; |
| 72 | 153 | ||
| 73 | uart@e1040000 { | 154 | uart@e1040000 { |
| 74 | compatible = "renesas,em-uart"; | 155 | compatible = "renesas,em-uart"; |
| 75 | reg = <0xe1040000 0x38>; | 156 | reg = <0xe1040000 0x38>; |
| 76 | interrupts = <0 10 0>; | 157 | interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>; |
| 158 | clocks = <&usib_u2_sclk>; | ||
| 159 | clock-names = "sclk"; | ||
| 77 | }; | 160 | }; |
| 78 | 161 | ||
| 79 | uart@e1050000 { | 162 | uart@e1050000 { |
| 80 | compatible = "renesas,em-uart"; | 163 | compatible = "renesas,em-uart"; |
| 81 | reg = <0xe1050000 0x38>; | 164 | reg = <0xe1050000 0x38>; |
| 82 | interrupts = <0 11 0>; | 165 | interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>; |
| 166 | clocks = <&usib_u3_sclk>; | ||
| 167 | clock-names = "sclk"; | ||
| 83 | }; | 168 | }; |
| 84 | 169 | ||
| 85 | gpio0: gpio@e0050000 { | 170 | gpio0: gpio@e0050000 { |
| 86 | compatible = "renesas,em-gio"; | 171 | compatible = "renesas,em-gio"; |
| 87 | reg = <0xe0050000 0x2c>, <0xe0050040 0x20>; | 172 | reg = <0xe0050000 0x2c>, <0xe0050040 0x20>; |
| 88 | interrupts = <0 67 0>, <0 68 0>; | 173 | interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>, |
| 174 | <0 68 IRQ_TYPE_LEVEL_HIGH>; | ||
| 89 | gpio-controller; | 175 | gpio-controller; |
| 90 | #gpio-cells = <2>; | 176 | #gpio-cells = <2>; |
| 91 | ngpios = <32>; | 177 | ngpios = <32>; |
| @@ -95,7 +181,8 @@ | |||
| 95 | gpio1: gpio@e0050080 { | 181 | gpio1: gpio@e0050080 { |
| 96 | compatible = "renesas,em-gio"; | 182 | compatible = "renesas,em-gio"; |
| 97 | reg = <0xe0050080 0x2c>, <0xe00500c0 0x20>; | 183 | reg = <0xe0050080 0x2c>, <0xe00500c0 0x20>; |
| 98 | interrupts = <0 69 0>, <0 70 0>; | 184 | interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>, |
| 185 | <0 70 IRQ_TYPE_LEVEL_HIGH>; | ||
| 99 | gpio-controller; | 186 | gpio-controller; |
| 100 | #gpio-cells = <2>; | 187 | #gpio-cells = <2>; |
| 101 | ngpios = <32>; | 188 | ngpios = <32>; |
| @@ -105,7 +192,8 @@ | |||
| 105 | gpio2: gpio@e0050100 { | 192 | gpio2: gpio@e0050100 { |
| 106 | compatible = "renesas,em-gio"; | 193 | compatible = "renesas,em-gio"; |
| 107 | reg = <0xe0050100 0x2c>, <0xe0050140 0x20>; | 194 | reg = <0xe0050100 0x2c>, <0xe0050140 0x20>; |
| 108 | interrupts = <0 71 0>, <0 72 0>; | 195 | interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>, |
| 196 | <0 72 IRQ_TYPE_LEVEL_HIGH>; | ||
| 109 | gpio-controller; | 197 | gpio-controller; |
| 110 | #gpio-cells = <2>; | 198 | #gpio-cells = <2>; |
| 111 | ngpios = <32>; | 199 | ngpios = <32>; |
| @@ -115,7 +203,8 @@ | |||
| 115 | gpio3: gpio@e0050180 { | 203 | gpio3: gpio@e0050180 { |
| 116 | compatible = "renesas,em-gio"; | 204 | compatible = "renesas,em-gio"; |
| 117 | reg = <0xe0050180 0x2c>, <0xe00501c0 0x20>; | 205 | reg = <0xe0050180 0x2c>, <0xe00501c0 0x20>; |
| 118 | interrupts = <0 73 0>, <0 74 0>; | 206 | interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>, |
| 207 | <0 74 IRQ_TYPE_LEVEL_HIGH>; | ||
| 119 | gpio-controller; | 208 | gpio-controller; |
| 120 | #gpio-cells = <2>; | 209 | #gpio-cells = <2>; |
| 121 | ngpios = <32>; | 210 | ngpios = <32>; |
| @@ -125,7 +214,8 @@ | |||
| 125 | gpio4: gpio@e0050200 { | 214 | gpio4: gpio@e0050200 { |
| 126 | compatible = "renesas,em-gio"; | 215 | compatible = "renesas,em-gio"; |
| 127 | reg = <0xe0050200 0x2c>, <0xe0050240 0x20>; | 216 | reg = <0xe0050200 0x2c>, <0xe0050240 0x20>; |
| 128 | interrupts = <0 75 0>, <0 76 0>; | 217 | interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>, |
| 218 | <0 76 IRQ_TYPE_LEVEL_HIGH>; | ||
| 129 | gpio-controller; | 219 | gpio-controller; |
| 130 | #gpio-cells = <2>; | 220 | #gpio-cells = <2>; |
| 131 | ngpios = <31>; | 221 | ngpios = <31>; |
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi index a73eeb5f258f..08452e183b57 100644 --- a/arch/arm/boot/dts/exynos4.dtsi +++ b/arch/arm/boot/dts/exynos4.dtsi | |||
| @@ -85,21 +85,21 @@ | |||
| 85 | reg = <0x10023CE0 0x20>; | 85 | reg = <0x10023CE0 0x20>; |
| 86 | }; | 86 | }; |
| 87 | 87 | ||
| 88 | gic:interrupt-controller@10490000 { | 88 | gic: interrupt-controller@10490000 { |
| 89 | compatible = "arm,cortex-a9-gic"; | 89 | compatible = "arm,cortex-a9-gic"; |
| 90 | #interrupt-cells = <3>; | 90 | #interrupt-cells = <3>; |
| 91 | interrupt-controller; | 91 | interrupt-controller; |
| 92 | reg = <0x10490000 0x1000>, <0x10480000 0x100>; | 92 | reg = <0x10490000 0x1000>, <0x10480000 0x100>; |
| 93 | }; | 93 | }; |
| 94 | 94 | ||
| 95 | combiner:interrupt-controller@10440000 { | 95 | combiner: interrupt-controller@10440000 { |
| 96 | compatible = "samsung,exynos4210-combiner"; | 96 | compatible = "samsung,exynos4210-combiner"; |
| 97 | #interrupt-cells = <2>; | 97 | #interrupt-cells = <2>; |
| 98 | interrupt-controller; | 98 | interrupt-controller; |
| 99 | reg = <0x10440000 0x1000>; | 99 | reg = <0x10440000 0x1000>; |
| 100 | }; | 100 | }; |
| 101 | 101 | ||
| 102 | sys_reg: sysreg { | 102 | sys_reg: syscon@10010000 { |
| 103 | compatible = "samsung,exynos4-sysreg", "syscon"; | 103 | compatible = "samsung,exynos4-sysreg", "syscon"; |
| 104 | reg = <0x10010000 0x400>; | 104 | reg = <0x10010000 0x400>; |
| 105 | }; | 105 | }; |
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi index 057d6829d319..48ecd7a755ab 100644 --- a/arch/arm/boot/dts/exynos4210.dtsi +++ b/arch/arm/boot/dts/exynos4210.dtsi | |||
| @@ -36,11 +36,11 @@ | |||
| 36 | reg = <0x10023CA0 0x20>; | 36 | reg = <0x10023CA0 0x20>; |
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | gic:interrupt-controller@10490000 { | 39 | gic: interrupt-controller@10490000 { |
| 40 | cpu-offset = <0x8000>; | 40 | cpu-offset = <0x8000>; |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| 43 | combiner:interrupt-controller@10440000 { | 43 | combiner: interrupt-controller@10440000 { |
| 44 | samsung,combiner-nr = <16>; | 44 | samsung,combiner-nr = <16>; |
| 45 | interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, | 45 | interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, |
| 46 | <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, | 46 | <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>, |
| @@ -51,24 +51,21 @@ | |||
| 51 | mct@10050000 { | 51 | mct@10050000 { |
| 52 | compatible = "samsung,exynos4210-mct"; | 52 | compatible = "samsung,exynos4210-mct"; |
| 53 | reg = <0x10050000 0x800>; | 53 | reg = <0x10050000 0x800>; |
| 54 | interrupt-controller; | ||
| 55 | #interrups-cells = <2>; | ||
| 56 | interrupt-parent = <&mct_map>; | 54 | interrupt-parent = <&mct_map>; |
| 57 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | 55 | interrupts = <0>, <1>, <2>, <3>, <4>, <5>; |
| 58 | <4 0>, <5 0>; | ||
| 59 | clocks = <&clock 3>, <&clock 344>; | 56 | clocks = <&clock 3>, <&clock 344>; |
| 60 | clock-names = "fin_pll", "mct"; | 57 | clock-names = "fin_pll", "mct"; |
| 61 | 58 | ||
| 62 | mct_map: mct-map { | 59 | mct_map: mct-map { |
| 63 | #interrupt-cells = <2>; | 60 | #interrupt-cells = <1>; |
| 64 | #address-cells = <0>; | 61 | #address-cells = <0>; |
| 65 | #size-cells = <0>; | 62 | #size-cells = <0>; |
| 66 | interrupt-map = <0x0 0 &gic 0 57 0>, | 63 | interrupt-map = <0 &gic 0 57 0>, |
| 67 | <0x1 0 &gic 0 69 0>, | 64 | <1 &gic 0 69 0>, |
| 68 | <0x2 0 &combiner 12 6>, | 65 | <2 &combiner 12 6>, |
| 69 | <0x3 0 &combiner 12 7>, | 66 | <3 &combiner 12 7>, |
| 70 | <0x4 0 &gic 0 42 0>, | 67 | <4 &gic 0 42 0>, |
| 71 | <0x5 0 &gic 0 48 0>; | 68 | <5 &gic 0 48 0>; |
| 72 | }; | 69 | }; |
| 73 | }; | 70 | }; |
| 74 | 71 | ||
diff --git a/arch/arm/boot/dts/exynos4212.dtsi b/arch/arm/boot/dts/exynos4212.dtsi index 6f34d7f6ba7e..94a43f9a05e2 100644 --- a/arch/arm/boot/dts/exynos4212.dtsi +++ b/arch/arm/boot/dts/exynos4212.dtsi | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | / { | 22 | / { |
| 23 | compatible = "samsung,exynos4212"; | 23 | compatible = "samsung,exynos4212"; |
| 24 | 24 | ||
| 25 | gic:interrupt-controller@10490000 { | 25 | gic: interrupt-controller@10490000 { |
| 26 | cpu-offset = <0x8000>; | 26 | cpu-offset = <0x8000>; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| @@ -34,26 +34,4 @@ | |||
| 34 | <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, | 34 | <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>, |
| 35 | <0 107 0>, <0 108 0>; | 35 | <0 107 0>, <0 108 0>; |
| 36 | }; | 36 | }; |
| 37 | |||
| 38 | mct@10050000 { | ||
| 39 | compatible = "samsung,exynos4412-mct"; | ||
| 40 | reg = <0x10050000 0x800>; | ||
| 41 | interrupt-controller; | ||
| 42 | #interrups-cells = <2>; | ||
| 43 | interrupt-parent = <&mct_map>; | ||
| 44 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | ||
| 45 | <4 0>, <5 0>; | ||
| 46 | |||
| 47 | mct_map: mct-map { | ||
| 48 | #interrupt-cells = <2>; | ||
| 49 | #address-cells = <0>; | ||
| 50 | #size-cells = <0>; | ||
| 51 | interrupt-map = <0x0 0 &gic 0 57 0>, | ||
| 52 | <0x1 0 &combiner 12 5>, | ||
| 53 | <0x2 0 &combiner 12 6>, | ||
| 54 | <0x3 0 &combiner 12 7>, | ||
| 55 | <0x4 0 &gic 1 12 0>, | ||
| 56 | <0x5 0 &gic 1 12 0>; | ||
| 57 | }; | ||
| 58 | }; | ||
| 59 | }; | 37 | }; |
diff --git a/arch/arm/boot/dts/exynos4412-tiny4412.dts b/arch/arm/boot/dts/exynos4412-tiny4412.dts new file mode 100644 index 000000000000..0a9831256b33 --- /dev/null +++ b/arch/arm/boot/dts/exynos4412-tiny4412.dts | |||
| @@ -0,0 +1,93 @@ | |||
| 1 | /* | ||
| 2 | * FriendlyARM's Exynos4412 based TINY4412 board device tree source | ||
| 3 | * | ||
| 4 | * Copyright (c) 2013 Alex Ling <kasimling@gmail.com> | ||
| 5 | * | ||
| 6 | * Device tree source file for FriendlyARM's TINY4412 board which is based on | ||
| 7 | * Samsung's Exynos4412 SoC. | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | |||
| 14 | /dts-v1/; | ||
| 15 | #include "exynos4412.dtsi" | ||
| 16 | |||
| 17 | / { | ||
| 18 | model = "FriendlyARM TINY4412 board based on Exynos4412"; | ||
| 19 | compatible = "friendlyarm,tiny4412", "samsung,exynos4412"; | ||
| 20 | |||
| 21 | memory { | ||
| 22 | reg = <0x40000000 0x40000000>; | ||
| 23 | }; | ||
| 24 | |||
| 25 | leds { | ||
| 26 | compatible = "gpio-leds"; | ||
| 27 | |||
| 28 | led1 { | ||
| 29 | label = "led1"; | ||
| 30 | gpios = <&gpm4 0 1>; | ||
| 31 | default-state = "off"; | ||
| 32 | linux,default-trigger = "heartbeat"; | ||
| 33 | }; | ||
| 34 | |||
| 35 | led2 { | ||
| 36 | label = "led2"; | ||
| 37 | gpios = <&gpm4 1 1>; | ||
| 38 | default-state = "off"; | ||
| 39 | }; | ||
| 40 | |||
| 41 | led3 { | ||
| 42 | label = "led3"; | ||
| 43 | gpios = <&gpm4 2 1>; | ||
| 44 | default-state = "off"; | ||
| 45 | }; | ||
| 46 | |||
| 47 | led4 { | ||
| 48 | label = "led4"; | ||
| 49 | gpios = <&gpm4 3 1>; | ||
| 50 | default-state = "off"; | ||
| 51 | linux,default-trigger = "mmc0"; | ||
| 52 | }; | ||
| 53 | }; | ||
| 54 | |||
| 55 | rtc@10070000 { | ||
| 56 | status = "okay"; | ||
| 57 | }; | ||
| 58 | |||
| 59 | sdhci@12530000 { | ||
| 60 | bus-width = <4>; | ||
| 61 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | ||
| 62 | pinctrl-names = "default"; | ||
| 63 | status = "okay"; | ||
| 64 | }; | ||
| 65 | |||
| 66 | serial@13800000 { | ||
| 67 | status = "okay"; | ||
| 68 | }; | ||
| 69 | |||
| 70 | serial@13810000 { | ||
| 71 | status = "okay"; | ||
| 72 | }; | ||
| 73 | |||
| 74 | serial@13820000 { | ||
| 75 | status = "okay"; | ||
| 76 | }; | ||
| 77 | |||
| 78 | serial@13830000 { | ||
| 79 | status = "okay"; | ||
| 80 | }; | ||
| 81 | |||
| 82 | fixed-rate-clocks { | ||
| 83 | xxti { | ||
| 84 | compatible = "samsung,clock-xxti"; | ||
| 85 | clock-frequency = <0>; | ||
| 86 | }; | ||
| 87 | |||
| 88 | xusbxti { | ||
| 89 | compatible = "samsung,clock-xusbxti"; | ||
| 90 | clock-frequency = <24000000>; | ||
| 91 | }; | ||
| 92 | }; | ||
| 93 | }; | ||
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi index 85812bd95a86..87b339c739de 100644 --- a/arch/arm/boot/dts/exynos4412.dtsi +++ b/arch/arm/boot/dts/exynos4412.dtsi | |||
| @@ -22,7 +22,7 @@ | |||
| 22 | / { | 22 | / { |
| 23 | compatible = "samsung,exynos4412"; | 23 | compatible = "samsung,exynos4412"; |
| 24 | 24 | ||
| 25 | gic:interrupt-controller@10490000 { | 25 | gic: interrupt-controller@10490000 { |
| 26 | cpu-offset = <0x4000>; | 26 | cpu-offset = <0x4000>; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| @@ -35,30 +35,4 @@ | |||
| 35 | <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>; | 35 | <0 107 0>, <0 108 0>, <0 48 0>, <0 42 0>; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | mct@10050000 { | ||
| 39 | compatible = "samsung,exynos4412-mct"; | ||
| 40 | reg = <0x10050000 0x800>; | ||
| 41 | interrupt-controller; | ||
| 42 | #interrups-cells = <2>; | ||
| 43 | interrupt-parent = <&mct_map>; | ||
| 44 | interrupts = <0 0>, <1 0>, <2 0>, <3 0>, | ||
| 45 | <4 0>, <5 0>, <6 0>, <7 0>; | ||
| 46 | clocks = <&clock 3>, <&clock 344>; | ||
| 47 | clock-names = "fin_pll", "mct"; | ||
| 48 | |||
| 49 | mct_map: mct-map { | ||
| 50 | #interrupt-cells = <2>; | ||
| 51 | #address-cells = <0>; | ||
| 52 | #size-cells = <0>; | ||
| 53 | interrupt-map = <0x0 0 &gic 0 57 0>, | ||
| 54 | <0x1 0 &combiner 12 5>, | ||
| 55 | <0x2 0 &combiner 12 6>, | ||
| 56 | <0x3 0 &combiner 12 7>, | ||
| 57 | <0x4 0 &gic 1 12 0>, | ||
| 58 | <0x5 0 &gic 1 12 0>, | ||
| 59 | <0x6 0 &gic 1 12 0>, | ||
| 60 | <0x7 0 &gic 1 12 0>; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | |||
| 64 | }; | 38 | }; |
diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi index 1917c829e64e..5c412aa14738 100644 --- a/arch/arm/boot/dts/exynos4x12.dtsi +++ b/arch/arm/boot/dts/exynos4x12.dtsi | |||
| @@ -42,6 +42,26 @@ | |||
| 42 | #clock-cells = <1>; | 42 | #clock-cells = <1>; |
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | mct@10050000 { | ||
| 46 | compatible = "samsung,exynos4412-mct"; | ||
| 47 | reg = <0x10050000 0x800>; | ||
| 48 | interrupt-parent = <&mct_map>; | ||
| 49 | interrupts = <0>, <1>, <2>, <3>, <4>; | ||
| 50 | clocks = <&clock 3>, <&clock 344>; | ||
| 51 | clock-names = "fin_pll", "mct"; | ||
| 52 | |||
| 53 | mct_map: mct-map { | ||
| 54 | #interrupt-cells = <1>; | ||
| 55 | #address-cells = <0>; | ||
| 56 | #size-cells = <0>; | ||
| 57 | interrupt-map = <0 &gic 0 57 0>, | ||
| 58 | <1 &combiner 12 5>, | ||
| 59 | <2 &combiner 12 6>, | ||
| 60 | <3 &combiner 12 7>, | ||
| 61 | <4 &gic 1 12 0>; | ||
| 62 | }; | ||
| 63 | }; | ||
| 64 | |||
| 45 | pinctrl_0: pinctrl@11400000 { | 65 | pinctrl_0: pinctrl@11400000 { |
| 46 | compatible = "samsung,exynos4x12-pinctrl"; | 66 | compatible = "samsung,exynos4x12-pinctrl"; |
| 47 | reg = <0x11400000 0x1000>; | 67 | reg = <0x11400000 0x1000>; |
diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi index 074739d39e2d..258dca441f36 100644 --- a/arch/arm/boot/dts/exynos5.dtsi +++ b/arch/arm/boot/dts/exynos5.dtsi | |||
| @@ -23,7 +23,7 @@ | |||
| 23 | reg = <0x10000000 0x100>; | 23 | reg = <0x10000000 0x100>; |
| 24 | }; | 24 | }; |
| 25 | 25 | ||
| 26 | combiner:interrupt-controller@10440000 { | 26 | combiner: interrupt-controller@10440000 { |
| 27 | compatible = "samsung,exynos4210-combiner"; | 27 | compatible = "samsung,exynos4210-combiner"; |
| 28 | #interrupt-cells = <2>; | 28 | #interrupt-cells = <2>; |
| 29 | interrupt-controller; | 29 | interrupt-controller; |
| @@ -39,7 +39,7 @@ | |||
| 39 | <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; | 39 | <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | gic:interrupt-controller@10481000 { | 42 | gic: interrupt-controller@10481000 { |
| 43 | compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; | 43 | compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; |
| 44 | #interrupt-cells = <3>; | 44 | #interrupt-cells = <3>; |
| 45 | interrupt-controller; | 45 | interrupt-controller; |
| @@ -50,27 +50,6 @@ | |||
| 50 | interrupts = <1 9 0xf04>; | 50 | interrupts = <1 9 0xf04>; |
| 51 | }; | 51 | }; |
| 52 | 52 | ||
| 53 | dwmmc_0: dwmmc0@12200000 { | ||
| 54 | compatible = "samsung,exynos5250-dw-mshc"; | ||
| 55 | interrupts = <0 75 0>; | ||
| 56 | #address-cells = <1>; | ||
| 57 | #size-cells = <0>; | ||
| 58 | }; | ||
| 59 | |||
| 60 | dwmmc_1: dwmmc1@12210000 { | ||
| 61 | compatible = "samsung,exynos5250-dw-mshc"; | ||
| 62 | interrupts = <0 76 0>; | ||
| 63 | #address-cells = <1>; | ||
| 64 | #size-cells = <0>; | ||
| 65 | }; | ||
| 66 | |||
| 67 | dwmmc_2: dwmmc2@12220000 { | ||
| 68 | compatible = "samsung,exynos5250-dw-mshc"; | ||
| 69 | interrupts = <0 77 0>; | ||
| 70 | #address-cells = <1>; | ||
| 71 | #size-cells = <0>; | ||
| 72 | }; | ||
| 73 | |||
| 74 | serial@12C00000 { | 53 | serial@12C00000 { |
| 75 | compatible = "samsung,exynos4210-uart"; | 54 | compatible = "samsung,exynos4210-uart"; |
| 76 | reg = <0x12C00000 0x100>; | 55 | reg = <0x12C00000 0x100>; |
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index bbfb23f942e1..b42e658876e5 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts | |||
| @@ -34,6 +34,7 @@ | |||
| 34 | samsung,i2c-sda-delay = <100>; | 34 | samsung,i2c-sda-delay = <100>; |
| 35 | samsung,i2c-max-bus-freq = <20000>; | 35 | samsung,i2c-max-bus-freq = <20000>; |
| 36 | samsung,i2c-slave-addr = <0x66>; | 36 | samsung,i2c-slave-addr = <0x66>; |
| 37 | status = "okay"; | ||
| 37 | 38 | ||
| 38 | s5m8767_pmic@66 { | 39 | s5m8767_pmic@66 { |
| 39 | compatible = "samsung,s5m8767-pmic"; | 40 | compatible = "samsung,s5m8767-pmic"; |
| @@ -266,7 +267,7 @@ | |||
| 266 | 267 | ||
| 267 | buck2_reg: BUCK2 { | 268 | buck2_reg: BUCK2 { |
| 268 | regulator-name = "vdd_arm"; | 269 | regulator-name = "vdd_arm"; |
| 269 | regulator-min-microvolt = <925000>; | 270 | regulator-min-microvolt = <912500>; |
| 270 | regulator-max-microvolt = <1300000>; | 271 | regulator-max-microvolt = <1300000>; |
| 271 | regulator-always-on; | 272 | regulator-always-on; |
| 272 | regulator-boot-on; | 273 | regulator-boot-on; |
| @@ -321,11 +322,9 @@ | |||
| 321 | }; | 322 | }; |
| 322 | }; | 323 | }; |
| 323 | 324 | ||
| 324 | i2c@12C70000 { | ||
| 325 | status = "disabled"; | ||
| 326 | }; | ||
| 327 | |||
| 328 | i2c@12C80000 { | 325 | i2c@12C80000 { |
| 326 | status = "okay"; | ||
| 327 | |||
| 329 | samsung,i2c-sda-delay = <100>; | 328 | samsung,i2c-sda-delay = <100>; |
| 330 | samsung,i2c-max-bus-freq = <66000>; | 329 | samsung,i2c-max-bus-freq = <66000>; |
| 331 | samsung,i2c-slave-addr = <0x50>; | 330 | samsung,i2c-slave-addr = <0x50>; |
| @@ -337,7 +336,10 @@ | |||
| 337 | }; | 336 | }; |
| 338 | 337 | ||
| 339 | i2c@12C90000 { | 338 | i2c@12C90000 { |
| 339 | status = "okay"; | ||
| 340 | |||
| 340 | wm1811a@1a { | 341 | wm1811a@1a { |
| 342 | |||
| 341 | compatible = "wlf,wm1811"; | 343 | compatible = "wlf,wm1811"; |
| 342 | reg = <0x1a>; | 344 | reg = <0x1a>; |
| 343 | 345 | ||
| @@ -355,23 +357,9 @@ | |||
| 355 | }; | 357 | }; |
| 356 | }; | 358 | }; |
| 357 | 359 | ||
| 358 | i2c@12CA0000 { | ||
| 359 | status = "disabled"; | ||
| 360 | }; | ||
| 361 | |||
| 362 | i2c@12CB0000 { | ||
| 363 | status = "disabled"; | ||
| 364 | }; | ||
| 365 | |||
| 366 | i2c@12CC0000 { | ||
| 367 | status = "disabled"; | ||
| 368 | }; | ||
| 369 | |||
| 370 | i2c@12CD0000 { | ||
| 371 | status = "disabled"; | ||
| 372 | }; | ||
| 373 | |||
| 374 | i2c@12CE0000 { | 360 | i2c@12CE0000 { |
| 361 | status = "okay"; | ||
| 362 | |||
| 375 | samsung,i2c-sda-delay = <100>; | 363 | samsung,i2c-sda-delay = <100>; |
| 376 | samsung,i2c-max-bus-freq = <66000>; | 364 | samsung,i2c-max-bus-freq = <66000>; |
| 377 | samsung,i2c-slave-addr = <0x38>; | 365 | samsung,i2c-slave-addr = <0x38>; |
| @@ -382,15 +370,11 @@ | |||
| 382 | }; | 370 | }; |
| 383 | }; | 371 | }; |
| 384 | 372 | ||
| 385 | i2c@121D0000 { | 373 | mmc_0: mmc@12200000 { |
| 386 | status = "disabled"; | 374 | status = "okay"; |
| 387 | }; | ||
| 388 | |||
| 389 | dwmmc_0: dwmmc0@12200000 { | ||
| 390 | num-slots = <1>; | 375 | num-slots = <1>; |
| 391 | supports-highspeed; | 376 | supports-highspeed; |
| 392 | broken-cd; | 377 | broken-cd; |
| 393 | fifo-depth = <0x80>; | ||
| 394 | card-detect-delay = <200>; | 378 | card-detect-delay = <200>; |
| 395 | samsung,dw-mshc-ciu-div = <3>; | 379 | samsung,dw-mshc-ciu-div = <3>; |
| 396 | samsung,dw-mshc-sdr-timing = <2 3>; | 380 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -405,14 +389,10 @@ | |||
| 405 | }; | 389 | }; |
| 406 | }; | 390 | }; |
| 407 | 391 | ||
| 408 | dwmmc_1: dwmmc1@12210000 { | 392 | mmc_2: mmc@12220000 { |
| 409 | status = "disabled"; | 393 | status = "okay"; |
| 410 | }; | ||
| 411 | |||
| 412 | dwmmc_2: dwmmc2@12220000 { | ||
| 413 | num-slots = <1>; | 394 | num-slots = <1>; |
| 414 | supports-highspeed; | 395 | supports-highspeed; |
| 415 | fifo-depth = <0x80>; | ||
| 416 | card-detect-delay = <200>; | 396 | card-detect-delay = <200>; |
| 417 | samsung,dw-mshc-ciu-div = <3>; | 397 | samsung,dw-mshc-ciu-div = <3>; |
| 418 | samsung,dw-mshc-sdr-timing = <2 3>; | 398 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -428,26 +408,10 @@ | |||
| 428 | }; | 408 | }; |
| 429 | }; | 409 | }; |
| 430 | 410 | ||
| 431 | dwmmc_3: dwmmc3@12230000 { | ||
| 432 | status = "disabled"; | ||
| 433 | }; | ||
| 434 | |||
| 435 | i2s0: i2s@03830000 { | 411 | i2s0: i2s@03830000 { |
| 436 | status = "okay"; | 412 | status = "okay"; |
| 437 | }; | 413 | }; |
| 438 | 414 | ||
| 439 | spi_0: spi@12d20000 { | ||
| 440 | status = "disabled"; | ||
| 441 | }; | ||
| 442 | |||
| 443 | spi_1: spi@12d30000 { | ||
| 444 | status = "disabled"; | ||
| 445 | }; | ||
| 446 | |||
| 447 | spi_2: spi@12d40000 { | ||
| 448 | status = "disabled"; | ||
| 449 | }; | ||
| 450 | |||
| 451 | gpio_keys { | 415 | gpio_keys { |
| 452 | compatible = "gpio-keys"; | 416 | compatible = "gpio-keys"; |
| 453 | 417 | ||
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/exynos5250-cros-common.dtsi index 9b186ac06c8b..9a61494f45f5 100644 --- a/arch/arm/boot/dts/cros5250-common.dtsi +++ b/arch/arm/boot/dts/exynos5250-cros-common.dtsi | |||
| @@ -37,6 +37,7 @@ | |||
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | i2c@12C60000 { | 39 | i2c@12C60000 { |
| 40 | status = "okay"; | ||
| 40 | samsung,i2c-sda-delay = <100>; | 41 | samsung,i2c-sda-delay = <100>; |
| 41 | samsung,i2c-max-bus-freq = <378000>; | 42 | samsung,i2c-max-bus-freq = <378000>; |
| 42 | 43 | ||
| @@ -185,6 +186,7 @@ | |||
| 185 | }; | 186 | }; |
| 186 | 187 | ||
| 187 | i2c@12C70000 { | 188 | i2c@12C70000 { |
| 189 | status = "okay"; | ||
| 188 | samsung,i2c-sda-delay = <100>; | 190 | samsung,i2c-sda-delay = <100>; |
| 189 | samsung,i2c-max-bus-freq = <378000>; | 191 | samsung,i2c-max-bus-freq = <378000>; |
| 190 | 192 | ||
| @@ -198,6 +200,7 @@ | |||
| 198 | }; | 200 | }; |
| 199 | 201 | ||
| 200 | i2c@12C80000 { | 202 | i2c@12C80000 { |
| 203 | status = "okay"; | ||
| 201 | samsung,i2c-sda-delay = <100>; | 204 | samsung,i2c-sda-delay = <100>; |
| 202 | samsung,i2c-max-bus-freq = <66000>; | 205 | samsung,i2c-max-bus-freq = <66000>; |
| 203 | 206 | ||
| @@ -208,30 +211,31 @@ | |||
| 208 | }; | 211 | }; |
| 209 | 212 | ||
| 210 | i2c@12C90000 { | 213 | i2c@12C90000 { |
| 214 | status = "okay"; | ||
| 211 | samsung,i2c-sda-delay = <100>; | 215 | samsung,i2c-sda-delay = <100>; |
| 212 | samsung,i2c-max-bus-freq = <66000>; | 216 | samsung,i2c-max-bus-freq = <66000>; |
| 213 | }; | 217 | }; |
| 214 | 218 | ||
| 215 | i2c@12CA0000 { | 219 | i2c@12CA0000 { |
| 220 | status = "okay"; | ||
| 216 | samsung,i2c-sda-delay = <100>; | 221 | samsung,i2c-sda-delay = <100>; |
| 217 | samsung,i2c-max-bus-freq = <66000>; | 222 | samsung,i2c-max-bus-freq = <66000>; |
| 218 | }; | 223 | }; |
| 219 | 224 | ||
| 220 | i2c@12CB0000 { | 225 | i2c@12CB0000 { |
| 226 | status = "okay"; | ||
| 221 | samsung,i2c-sda-delay = <100>; | 227 | samsung,i2c-sda-delay = <100>; |
| 222 | samsung,i2c-max-bus-freq = <66000>; | 228 | samsung,i2c-max-bus-freq = <66000>; |
| 223 | }; | 229 | }; |
| 224 | 230 | ||
| 225 | i2c@12CC0000 { | ||
| 226 | status = "disabled"; | ||
| 227 | }; | ||
| 228 | |||
| 229 | i2c@12CD0000 { | 231 | i2c@12CD0000 { |
| 232 | status = "okay"; | ||
| 230 | samsung,i2c-sda-delay = <100>; | 233 | samsung,i2c-sda-delay = <100>; |
| 231 | samsung,i2c-max-bus-freq = <66000>; | 234 | samsung,i2c-max-bus-freq = <66000>; |
| 232 | }; | 235 | }; |
| 233 | 236 | ||
| 234 | i2c@12CE0000 { | 237 | i2c@12CE0000 { |
| 238 | status = "okay"; | ||
| 235 | samsung,i2c-sda-delay = <100>; | 239 | samsung,i2c-sda-delay = <100>; |
| 236 | samsung,i2c-max-bus-freq = <378000>; | 240 | samsung,i2c-max-bus-freq = <378000>; |
| 237 | 241 | ||
| @@ -241,11 +245,10 @@ | |||
| 241 | }; | 245 | }; |
| 242 | }; | 246 | }; |
| 243 | 247 | ||
| 244 | dwmmc0@12200000 { | 248 | mmc@12200000 { |
| 245 | num-slots = <1>; | 249 | num-slots = <1>; |
| 246 | supports-highspeed; | 250 | supports-highspeed; |
| 247 | broken-cd; | 251 | broken-cd; |
| 248 | fifo-depth = <0x80>; | ||
| 249 | card-detect-delay = <200>; | 252 | card-detect-delay = <200>; |
| 250 | samsung,dw-mshc-ciu-div = <3>; | 253 | samsung,dw-mshc-ciu-div = <3>; |
| 251 | samsung,dw-mshc-sdr-timing = <2 3>; | 254 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -259,14 +262,9 @@ | |||
| 259 | }; | 262 | }; |
| 260 | }; | 263 | }; |
| 261 | 264 | ||
| 262 | dwmmc1@12210000 { | 265 | mmc@12220000 { |
| 263 | status = "disabled"; | ||
| 264 | }; | ||
| 265 | |||
| 266 | dwmmc2@12220000 { | ||
| 267 | num-slots = <1>; | 266 | num-slots = <1>; |
| 268 | supports-highspeed; | 267 | supports-highspeed; |
| 269 | fifo-depth = <0x80>; | ||
| 270 | card-detect-delay = <200>; | 268 | card-detect-delay = <200>; |
| 271 | samsung,dw-mshc-ciu-div = <3>; | 269 | samsung,dw-mshc-ciu-div = <3>; |
| 272 | samsung,dw-mshc-sdr-timing = <2 3>; | 270 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -281,11 +279,10 @@ | |||
| 281 | }; | 279 | }; |
| 282 | }; | 280 | }; |
| 283 | 281 | ||
| 284 | dwmmc3@12230000 { | 282 | mmc@12230000 { |
| 285 | num-slots = <1>; | 283 | num-slots = <1>; |
| 286 | supports-highspeed; | 284 | supports-highspeed; |
| 287 | broken-cd; | 285 | broken-cd; |
| 288 | fifo-depth = <0x80>; | ||
| 289 | card-detect-delay = <200>; | 286 | card-detect-delay = <200>; |
| 290 | samsung,dw-mshc-ciu-div = <3>; | 287 | samsung,dw-mshc-ciu-div = <3>; |
| 291 | samsung,dw-mshc-sdr-timing = <2 3>; | 288 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -298,19 +295,12 @@ | |||
| 298 | }; | 295 | }; |
| 299 | }; | 296 | }; |
| 300 | 297 | ||
| 301 | spi_0: spi@12d20000 { | ||
| 302 | status = "disabled"; | ||
| 303 | }; | ||
| 304 | |||
| 305 | spi_1: spi@12d30000 { | 298 | spi_1: spi@12d30000 { |
| 299 | status = "okay"; | ||
| 306 | samsung,spi-src-clk = <0>; | 300 | samsung,spi-src-clk = <0>; |
| 307 | num-cs = <1>; | 301 | num-cs = <1>; |
| 308 | }; | 302 | }; |
| 309 | 303 | ||
| 310 | spi_2: spi@12d40000 { | ||
| 311 | status = "disabled"; | ||
| 312 | }; | ||
| 313 | |||
| 314 | hdmi { | 304 | hdmi { |
| 315 | hpd-gpio = <&gpx3 7 0>; | 305 | hpd-gpio = <&gpx3 7 0>; |
| 316 | }; | 306 | }; |
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index f86d56760a45..3e69837c435c 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts | |||
| @@ -30,6 +30,7 @@ | |||
| 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 | status = "okay"; | ||
| 33 | 34 | ||
| 34 | eeprom@50 { | 35 | eeprom@50 { |
| 35 | compatible = "samsung,s524ad0xd1"; | 36 | compatible = "samsung,s524ad0xd1"; |
| @@ -37,7 +38,7 @@ | |||
| 37 | }; | 38 | }; |
| 38 | }; | 39 | }; |
| 39 | 40 | ||
| 40 | vdd:fixed-regulator@0 { | 41 | vdd: fixed-regulator@0 { |
| 41 | compatible = "regulator-fixed"; | 42 | compatible = "regulator-fixed"; |
| 42 | regulator-name = "vdd-supply"; | 43 | regulator-name = "vdd-supply"; |
| 43 | regulator-min-microvolt = <1800000>; | 44 | regulator-min-microvolt = <1800000>; |
| @@ -45,7 +46,7 @@ | |||
| 45 | regulator-always-on; | 46 | regulator-always-on; |
| 46 | }; | 47 | }; |
| 47 | 48 | ||
| 48 | dbvdd:fixed-regulator@1 { | 49 | dbvdd: fixed-regulator@1 { |
| 49 | compatible = "regulator-fixed"; | 50 | compatible = "regulator-fixed"; |
| 50 | regulator-name = "dbvdd-supply"; | 51 | regulator-name = "dbvdd-supply"; |
| 51 | regulator-min-microvolt = <3300000>; | 52 | regulator-min-microvolt = <3300000>; |
| @@ -53,7 +54,7 @@ | |||
| 53 | regulator-always-on; | 54 | regulator-always-on; |
| 54 | }; | 55 | }; |
| 55 | 56 | ||
| 56 | spkvdd:fixed-regulator@2 { | 57 | spkvdd: fixed-regulator@2 { |
| 57 | compatible = "regulator-fixed"; | 58 | compatible = "regulator-fixed"; |
| 58 | regulator-name = "spkvdd-supply"; | 59 | regulator-name = "spkvdd-supply"; |
| 59 | regulator-min-microvolt = <5000000>; | 60 | regulator-min-microvolt = <5000000>; |
| @@ -64,6 +65,7 @@ | |||
| 64 | i2c@12C70000 { | 65 | i2c@12C70000 { |
| 65 | samsung,i2c-sda-delay = <100>; | 66 | samsung,i2c-sda-delay = <100>; |
| 66 | samsung,i2c-max-bus-freq = <20000>; | 67 | samsung,i2c-max-bus-freq = <20000>; |
| 68 | status = "okay"; | ||
| 67 | 69 | ||
| 68 | eeprom@51 { | 70 | eeprom@51 { |
| 69 | compatible = "samsung,s524ad0xd1"; | 71 | compatible = "samsung,s524ad0xd1"; |
| @@ -77,6 +79,9 @@ | |||
| 77 | gpio-controller; | 79 | gpio-controller; |
| 78 | #gpio-cells = <2>; | 80 | #gpio-cells = <2>; |
| 79 | 81 | ||
| 82 | clocks = <&codec_mclk>; | ||
| 83 | clock-names = "MCLK1"; | ||
| 84 | |||
| 80 | AVDD2-supply = <&vdd>; | 85 | AVDD2-supply = <&vdd>; |
| 81 | CPVDD-supply = <&vdd>; | 86 | CPVDD-supply = <&vdd>; |
| 82 | DBVDD-supply = <&dbvdd>; | 87 | DBVDD-supply = <&dbvdd>; |
| @@ -89,6 +94,7 @@ | |||
| 89 | samsung,i2c-sda-delay = <100>; | 94 | samsung,i2c-sda-delay = <100>; |
| 90 | samsung,i2c-max-bus-freq = <40000>; | 95 | samsung,i2c-max-bus-freq = <40000>; |
| 91 | samsung,i2c-slave-addr = <0x38>; | 96 | samsung,i2c-slave-addr = <0x38>; |
| 97 | status = "okay"; | ||
| 92 | 98 | ||
| 93 | sata-phy { | 99 | sata-phy { |
| 94 | compatible = "samsung,sata-phy"; | 100 | compatible = "samsung,sata-phy"; |
| @@ -103,6 +109,7 @@ | |||
| 103 | i2c@12C80000 { | 109 | i2c@12C80000 { |
| 104 | samsung,i2c-sda-delay = <100>; | 110 | samsung,i2c-sda-delay = <100>; |
| 105 | samsung,i2c-max-bus-freq = <66000>; | 111 | samsung,i2c-max-bus-freq = <66000>; |
| 112 | status = "okay"; | ||
| 106 | 113 | ||
| 107 | hdmiddc@50 { | 114 | hdmiddc@50 { |
| 108 | compatible = "samsung,exynos4210-hdmiddc"; | 115 | compatible = "samsung,exynos4210-hdmiddc"; |
| @@ -110,29 +117,10 @@ | |||
| 110 | }; | 117 | }; |
| 111 | }; | 118 | }; |
| 112 | 119 | ||
| 113 | i2c@12C90000 { | ||
| 114 | status = "disabled"; | ||
| 115 | }; | ||
| 116 | |||
| 117 | i2c@12CA0000 { | ||
| 118 | status = "disabled"; | ||
| 119 | }; | ||
| 120 | |||
| 121 | i2c@12CB0000 { | ||
| 122 | status = "disabled"; | ||
| 123 | }; | ||
| 124 | |||
| 125 | i2c@12CC0000 { | ||
| 126 | status = "disabled"; | ||
| 127 | }; | ||
| 128 | |||
| 129 | i2c@12CD0000 { | ||
| 130 | status = "disabled"; | ||
| 131 | }; | ||
| 132 | |||
| 133 | i2c@12CE0000 { | 120 | i2c@12CE0000 { |
| 134 | samsung,i2c-sda-delay = <100>; | 121 | samsung,i2c-sda-delay = <100>; |
| 135 | samsung,i2c-max-bus-freq = <66000>; | 122 | samsung,i2c-max-bus-freq = <66000>; |
| 123 | status = "okay"; | ||
| 136 | 124 | ||
| 137 | hdmiphy@38 { | 125 | hdmiphy@38 { |
| 138 | compatible = "samsung,exynos4212-hdmiphy"; | 126 | compatible = "samsung,exynos4212-hdmiphy"; |
| @@ -140,11 +128,11 @@ | |||
| 140 | }; | 128 | }; |
| 141 | }; | 129 | }; |
| 142 | 130 | ||
| 143 | dwmmc0@12200000 { | 131 | mmc@12200000 { |
| 132 | status = "okay"; | ||
| 144 | num-slots = <1>; | 133 | num-slots = <1>; |
| 145 | supports-highspeed; | 134 | supports-highspeed; |
| 146 | broken-cd; | 135 | broken-cd; |
| 147 | fifo-depth = <0x80>; | ||
| 148 | card-detect-delay = <200>; | 136 | card-detect-delay = <200>; |
| 149 | samsung,dw-mshc-ciu-div = <3>; | 137 | samsung,dw-mshc-ciu-div = <3>; |
| 150 | samsung,dw-mshc-sdr-timing = <2 3>; | 138 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -158,14 +146,10 @@ | |||
| 158 | }; | 146 | }; |
| 159 | }; | 147 | }; |
| 160 | 148 | ||
| 161 | dwmmc1@12210000 { | 149 | mmc@12220000 { |
| 162 | status = "disabled"; | 150 | status = "okay"; |
| 163 | }; | ||
| 164 | |||
| 165 | dwmmc2@12220000 { | ||
| 166 | num-slots = <1>; | 151 | num-slots = <1>; |
| 167 | supports-highspeed; | 152 | supports-highspeed; |
| 168 | fifo-depth = <0x80>; | ||
| 169 | card-detect-delay = <200>; | 153 | card-detect-delay = <200>; |
| 170 | samsung,dw-mshc-ciu-div = <3>; | 154 | samsung,dw-mshc-ciu-div = <3>; |
| 171 | samsung,dw-mshc-sdr-timing = <2 3>; | 155 | samsung,dw-mshc-sdr-timing = <2 3>; |
| @@ -180,15 +164,13 @@ | |||
| 180 | }; | 164 | }; |
| 181 | }; | 165 | }; |
| 182 | 166 | ||
| 183 | dwmmc3@12230000 { | ||
| 184 | status = "disabled"; | ||
| 185 | }; | ||
| 186 | |||
| 187 | spi_0: spi@12d20000 { | 167 | spi_0: spi@12d20000 { |
| 188 | status = "disabled"; | 168 | status = "disabled"; |
| 189 | }; | 169 | }; |
| 190 | 170 | ||
| 191 | spi_1: spi@12d30000 { | 171 | spi_1: spi@12d30000 { |
| 172 | status = "okay"; | ||
| 173 | |||
| 192 | w25q80bw@0 { | 174 | w25q80bw@0 { |
| 193 | #address-cells = <1>; | 175 | #address-cells = <1>; |
| 194 | #size-cells = <1>; | 176 | #size-cells = <1>; |
| @@ -214,10 +196,6 @@ | |||
| 214 | }; | 196 | }; |
| 215 | }; | 197 | }; |
| 216 | 198 | ||
| 217 | spi_2: spi@12d40000 { | ||
| 218 | status = "disabled"; | ||
| 219 | }; | ||
| 220 | |||
| 221 | hdmi { | 199 | hdmi { |
| 222 | hpd-gpio = <&gpx3 7 0>; | 200 | hpd-gpio = <&gpx3 7 0>; |
| 223 | }; | 201 | }; |
| @@ -279,5 +257,11 @@ | |||
| 279 | compatible = "samsung,clock-xxti"; | 257 | compatible = "samsung,clock-xxti"; |
| 280 | clock-frequency = <24000000>; | 258 | clock-frequency = <24000000>; |
| 281 | }; | 259 | }; |
| 260 | |||
| 261 | codec_mclk: codec-mclk { | ||
| 262 | compatible = "fixed-clock"; | ||
| 263 | #clock-cells = <0>; | ||
| 264 | clock-frequency = <16934000>; | ||
| 265 | }; | ||
| 282 | }; | 266 | }; |
| 283 | }; | 267 | }; |
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts index c65f52a6dcea..7e45eea2d78f 100644 --- a/arch/arm/boot/dts/exynos5250-snow.dts +++ b/arch/arm/boot/dts/exynos5250-snow.dts | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | #include "exynos5250.dtsi" | 12 | #include "exynos5250.dtsi" |
| 13 | #include "cros5250-common.dtsi" | 13 | #include "exynos5250-cros-common.dtsi" |
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| 16 | model = "Google Snow"; | 16 | model = "Google Snow"; |
| @@ -172,11 +172,20 @@ | |||
| 172 | }; | 172 | }; |
| 173 | }; | 173 | }; |
| 174 | 174 | ||
| 175 | mmc@12200000 { | ||
| 176 | status = "okay"; | ||
| 177 | }; | ||
| 178 | |||
| 179 | mmc@12220000 { | ||
| 180 | status = "okay"; | ||
| 181 | }; | ||
| 182 | |||
| 175 | /* | 183 | /* |
| 176 | * On Snow we've got SIP WiFi and so can keep drive strengths low to | 184 | * On Snow we've got SIP WiFi and so can keep drive strengths low to |
| 177 | * reduce EMI. | 185 | * reduce EMI. |
| 178 | */ | 186 | */ |
| 179 | dwmmc3@12230000 { | 187 | mmc@12230000 { |
| 188 | status = "okay"; | ||
| 180 | slot@0 { | 189 | slot@0 { |
| 181 | pinctrl-names = "default"; | 190 | pinctrl-names = "default"; |
| 182 | pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>; | 191 | pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>; |
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 6feaa1c454fa..587dd3e36f6c 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi | |||
| @@ -33,10 +33,10 @@ | |||
| 33 | gsc1 = &gsc_1; | 33 | gsc1 = &gsc_1; |
| 34 | gsc2 = &gsc_2; | 34 | gsc2 = &gsc_2; |
| 35 | gsc3 = &gsc_3; | 35 | gsc3 = &gsc_3; |
| 36 | mshc0 = &dwmmc_0; | 36 | mshc0 = &mmc_0; |
| 37 | mshc1 = &dwmmc_1; | 37 | mshc1 = &mmc_1; |
| 38 | mshc2 = &dwmmc_2; | 38 | mshc2 = &mmc_2; |
| 39 | mshc3 = &dwmmc_3; | 39 | mshc3 = &mmc_3; |
| 40 | i2c0 = &i2c_0; | 40 | i2c0 = &i2c_0; |
| 41 | i2c1 = &i2c_1; | 41 | i2c1 = &i2c_1; |
| 42 | i2c2 = &i2c_2; | 42 | i2c2 = &i2c_2; |
| @@ -244,6 +244,7 @@ | |||
| 244 | clock-names = "i2c"; | 244 | clock-names = "i2c"; |
| 245 | pinctrl-names = "default"; | 245 | pinctrl-names = "default"; |
| 246 | pinctrl-0 = <&i2c0_bus>; | 246 | pinctrl-0 = <&i2c0_bus>; |
| 247 | status = "disabled"; | ||
| 247 | }; | 248 | }; |
| 248 | 249 | ||
| 249 | i2c_1: i2c@12C70000 { | 250 | i2c_1: i2c@12C70000 { |
| @@ -256,6 +257,7 @@ | |||
| 256 | clock-names = "i2c"; | 257 | clock-names = "i2c"; |
| 257 | pinctrl-names = "default"; | 258 | pinctrl-names = "default"; |
| 258 | pinctrl-0 = <&i2c1_bus>; | 259 | pinctrl-0 = <&i2c1_bus>; |
| 260 | status = "disabled"; | ||
| 259 | }; | 261 | }; |
| 260 | 262 | ||
| 261 | i2c_2: i2c@12C80000 { | 263 | i2c_2: i2c@12C80000 { |
| @@ -268,6 +270,7 @@ | |||
| 268 | clock-names = "i2c"; | 270 | clock-names = "i2c"; |
| 269 | pinctrl-names = "default"; | 271 | pinctrl-names = "default"; |
| 270 | pinctrl-0 = <&i2c2_bus>; | 272 | pinctrl-0 = <&i2c2_bus>; |
| 273 | status = "disabled"; | ||
| 271 | }; | 274 | }; |
| 272 | 275 | ||
| 273 | i2c_3: i2c@12C90000 { | 276 | i2c_3: i2c@12C90000 { |
| @@ -280,6 +283,7 @@ | |||
| 280 | clock-names = "i2c"; | 283 | clock-names = "i2c"; |
| 281 | pinctrl-names = "default"; | 284 | pinctrl-names = "default"; |
| 282 | pinctrl-0 = <&i2c3_bus>; | 285 | pinctrl-0 = <&i2c3_bus>; |
| 286 | status = "disabled"; | ||
| 283 | }; | 287 | }; |
| 284 | 288 | ||
| 285 | i2c_4: i2c@12CA0000 { | 289 | i2c_4: i2c@12CA0000 { |
| @@ -292,6 +296,7 @@ | |||
| 292 | clock-names = "i2c"; | 296 | clock-names = "i2c"; |
| 293 | pinctrl-names = "default"; | 297 | pinctrl-names = "default"; |
| 294 | pinctrl-0 = <&i2c4_bus>; | 298 | pinctrl-0 = <&i2c4_bus>; |
| 299 | status = "disabled"; | ||
| 295 | }; | 300 | }; |
| 296 | 301 | ||
| 297 | i2c_5: i2c@12CB0000 { | 302 | i2c_5: i2c@12CB0000 { |
| @@ -304,6 +309,7 @@ | |||
| 304 | clock-names = "i2c"; | 309 | clock-names = "i2c"; |
| 305 | pinctrl-names = "default"; | 310 | pinctrl-names = "default"; |
| 306 | pinctrl-0 = <&i2c5_bus>; | 311 | pinctrl-0 = <&i2c5_bus>; |
| 312 | status = "disabled"; | ||
| 307 | }; | 313 | }; |
| 308 | 314 | ||
| 309 | i2c_6: i2c@12CC0000 { | 315 | i2c_6: i2c@12CC0000 { |
| @@ -316,6 +322,7 @@ | |||
| 316 | clock-names = "i2c"; | 322 | clock-names = "i2c"; |
| 317 | pinctrl-names = "default"; | 323 | pinctrl-names = "default"; |
| 318 | pinctrl-0 = <&i2c6_bus>; | 324 | pinctrl-0 = <&i2c6_bus>; |
| 325 | status = "disabled"; | ||
| 319 | }; | 326 | }; |
| 320 | 327 | ||
| 321 | i2c_7: i2c@12CD0000 { | 328 | i2c_7: i2c@12CD0000 { |
| @@ -328,6 +335,7 @@ | |||
| 328 | clock-names = "i2c"; | 335 | clock-names = "i2c"; |
| 329 | pinctrl-names = "default"; | 336 | pinctrl-names = "default"; |
| 330 | pinctrl-0 = <&i2c7_bus>; | 337 | pinctrl-0 = <&i2c7_bus>; |
| 338 | status = "disabled"; | ||
| 331 | }; | 339 | }; |
| 332 | 340 | ||
| 333 | i2c_8: i2c@12CE0000 { | 341 | i2c_8: i2c@12CE0000 { |
| @@ -338,6 +346,7 @@ | |||
| 338 | #size-cells = <0>; | 346 | #size-cells = <0>; |
| 339 | clocks = <&clock 302>; | 347 | clocks = <&clock 302>; |
| 340 | clock-names = "i2c"; | 348 | clock-names = "i2c"; |
| 349 | status = "disabled"; | ||
| 341 | }; | 350 | }; |
| 342 | 351 | ||
| 343 | i2c@121D0000 { | 352 | i2c@121D0000 { |
| @@ -347,10 +356,12 @@ | |||
| 347 | #size-cells = <0>; | 356 | #size-cells = <0>; |
| 348 | clocks = <&clock 288>; | 357 | clocks = <&clock 288>; |
| 349 | clock-names = "i2c"; | 358 | clock-names = "i2c"; |
| 359 | status = "disabled"; | ||
| 350 | }; | 360 | }; |
| 351 | 361 | ||
| 352 | spi_0: spi@12d20000 { | 362 | spi_0: spi@12d20000 { |
| 353 | compatible = "samsung,exynos4210-spi"; | 363 | compatible = "samsung,exynos4210-spi"; |
| 364 | status = "disabled"; | ||
| 354 | reg = <0x12d20000 0x100>; | 365 | reg = <0x12d20000 0x100>; |
| 355 | interrupts = <0 66 0>; | 366 | interrupts = <0 66 0>; |
| 356 | dmas = <&pdma0 5 | 367 | dmas = <&pdma0 5 |
| @@ -366,6 +377,7 @@ | |||
| 366 | 377 | ||
| 367 | spi_1: spi@12d30000 { | 378 | spi_1: spi@12d30000 { |
| 368 | compatible = "samsung,exynos4210-spi"; | 379 | compatible = "samsung,exynos4210-spi"; |
| 380 | status = "disabled"; | ||
| 369 | reg = <0x12d30000 0x100>; | 381 | reg = <0x12d30000 0x100>; |
| 370 | interrupts = <0 67 0>; | 382 | interrupts = <0 67 0>; |
| 371 | dmas = <&pdma1 5 | 383 | dmas = <&pdma1 5 |
| @@ -381,6 +393,7 @@ | |||
| 381 | 393 | ||
| 382 | spi_2: spi@12d40000 { | 394 | spi_2: spi@12d40000 { |
| 383 | compatible = "samsung,exynos4210-spi"; | 395 | compatible = "samsung,exynos4210-spi"; |
| 396 | status = "disabled"; | ||
| 384 | reg = <0x12d40000 0x100>; | 397 | reg = <0x12d40000 0x100>; |
| 385 | interrupts = <0 68 0>; | 398 | interrupts = <0 68 0>; |
| 386 | dmas = <&pdma0 7 | 399 | dmas = <&pdma0 7 |
| @@ -394,25 +407,43 @@ | |||
| 394 | pinctrl-0 = <&spi2_bus>; | 407 | pinctrl-0 = <&spi2_bus>; |
| 395 | }; | 408 | }; |
| 396 | 409 | ||
| 397 | dwmmc_0: dwmmc0@12200000 { | 410 | mmc_0: mmc@12200000 { |
| 411 | compatible = "samsung,exynos5250-dw-mshc"; | ||
| 412 | interrupts = <0 75 0>; | ||
| 413 | #address-cells = <1>; | ||
| 414 | #size-cells = <0>; | ||
| 398 | reg = <0x12200000 0x1000>; | 415 | reg = <0x12200000 0x1000>; |
| 399 | clocks = <&clock 280>, <&clock 139>; | 416 | clocks = <&clock 280>, <&clock 139>; |
| 400 | clock-names = "biu", "ciu"; | 417 | clock-names = "biu", "ciu"; |
| 418 | fifo-depth = <0x80>; | ||
| 419 | status = "disabled"; | ||
| 401 | }; | 420 | }; |
| 402 | 421 | ||
| 403 | dwmmc_1: dwmmc1@12210000 { | 422 | mmc_1: mmc@12210000 { |
| 423 | compatible = "samsung,exynos5250-dw-mshc"; | ||
| 424 | interrupts = <0 76 0>; | ||
| 425 | #address-cells = <1>; | ||
| 426 | #size-cells = <0>; | ||
| 404 | reg = <0x12210000 0x1000>; | 427 | reg = <0x12210000 0x1000>; |
| 405 | clocks = <&clock 281>, <&clock 140>; | 428 | clocks = <&clock 281>, <&clock 140>; |
| 406 | clock-names = "biu", "ciu"; | 429 | clock-names = "biu", "ciu"; |
| 430 | fifo-depth = <0x80>; | ||
| 431 | status = "disabled"; | ||
| 407 | }; | 432 | }; |
| 408 | 433 | ||
| 409 | dwmmc_2: dwmmc2@12220000 { | 434 | mmc_2: mmc@12220000 { |
| 435 | compatible = "samsung,exynos5250-dw-mshc"; | ||
| 436 | interrupts = <0 77 0>; | ||
| 437 | #address-cells = <1>; | ||
| 438 | #size-cells = <0>; | ||
| 410 | reg = <0x12220000 0x1000>; | 439 | reg = <0x12220000 0x1000>; |
| 411 | clocks = <&clock 282>, <&clock 141>; | 440 | clocks = <&clock 282>, <&clock 141>; |
| 412 | clock-names = "biu", "ciu"; | 441 | clock-names = "biu", "ciu"; |
| 442 | fifo-depth = <0x80>; | ||
| 443 | status = "disabled"; | ||
| 413 | }; | 444 | }; |
| 414 | 445 | ||
| 415 | dwmmc_3: dwmmc3@12230000 { | 446 | mmc_3: mmc@12230000 { |
| 416 | compatible = "samsung,exynos5250-dw-mshc"; | 447 | compatible = "samsung,exynos5250-dw-mshc"; |
| 417 | reg = <0x12230000 0x1000>; | 448 | reg = <0x12230000 0x1000>; |
| 418 | interrupts = <0 78 0>; | 449 | interrupts = <0 78 0>; |
| @@ -420,6 +451,8 @@ | |||
| 420 | #size-cells = <0>; | 451 | #size-cells = <0>; |
| 421 | clocks = <&clock 283>, <&clock 142>; | 452 | clocks = <&clock 283>, <&clock 142>; |
| 422 | clock-names = "biu", "ciu"; | 453 | clock-names = "biu", "ciu"; |
| 454 | fifo-depth = <0x80>; | ||
| 455 | status = "disabled"; | ||
| 423 | }; | 456 | }; |
| 424 | 457 | ||
| 425 | i2s0: i2s@03830000 { | 458 | i2s0: i2s@03830000 { |
| @@ -528,6 +561,15 @@ | |||
| 528 | }; | 561 | }; |
| 529 | }; | 562 | }; |
| 530 | 563 | ||
| 564 | pwm: pwm@12dd0000 { | ||
| 565 | compatible = "samsung,exynos4210-pwm"; | ||
| 566 | reg = <0x12dd0000 0x100>; | ||
| 567 | samsung,pwm-outputs = <0>, <1>, <2>, <3>; | ||
| 568 | #pwm-cells = <3>; | ||
| 569 | clocks = <&clock 311>; | ||
| 570 | clock-names = "timers"; | ||
| 571 | }; | ||
| 572 | |||
| 531 | amba { | 573 | amba { |
| 532 | #address-cells = <1>; | 574 | #address-cells = <1>; |
| 533 | #size-cells = <1>; | 575 | #size-cells = <1>; |
diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts new file mode 100644 index 000000000000..7340745ff979 --- /dev/null +++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | /* | ||
| 2 | * Samsung's Exynos5420 based Arndale Octa 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 "exynos5420.dtsi" | ||
| 14 | |||
| 15 | / { | ||
| 16 | model = "Insignal Arndale Octa evaluation board based on EXYNOS5420"; | ||
| 17 | compatible = "insignal,arndale-octa", "samsung,exynos5420"; | ||
| 18 | |||
| 19 | memory { | ||
| 20 | reg = <0x20000000 0x80000000>; | ||
| 21 | }; | ||
| 22 | |||
| 23 | chosen { | ||
| 24 | bootargs = "console=ttySAC3,115200"; | ||
| 25 | }; | ||
| 26 | |||
| 27 | fixed-rate-clocks { | ||
| 28 | oscclk { | ||
| 29 | compatible = "samsung,exynos5420-oscclk"; | ||
| 30 | clock-frequency = <24000000>; | ||
| 31 | }; | ||
| 32 | }; | ||
| 33 | |||
| 34 | mmc@12200000 { | ||
| 35 | status = "okay"; | ||
| 36 | broken-cd; | ||
| 37 | supports-highspeed; | ||
| 38 | card-detect-delay = <200>; | ||
| 39 | samsung,dw-mshc-ciu-div = <3>; | ||
| 40 | samsung,dw-mshc-sdr-timing = <0 4>; | ||
| 41 | samsung,dw-mshc-ddr-timing = <0 2>; | ||
| 42 | pinctrl-names = "default"; | ||
| 43 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; | ||
| 44 | |||
| 45 | slot@0 { | ||
| 46 | reg = <0>; | ||
| 47 | bus-width = <8>; | ||
| 48 | }; | ||
| 49 | }; | ||
| 50 | |||
| 51 | mmc@12220000 { | ||
| 52 | status = "okay"; | ||
| 53 | supports-highspeed; | ||
| 54 | card-detect-delay = <200>; | ||
| 55 | samsung,dw-mshc-ciu-div = <3>; | ||
| 56 | samsung,dw-mshc-sdr-timing = <2 3>; | ||
| 57 | samsung,dw-mshc-ddr-timing = <1 2>; | ||
| 58 | pinctrl-names = "default"; | ||
| 59 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | ||
| 60 | |||
| 61 | slot@0 { | ||
| 62 | reg = <0>; | ||
| 63 | bus-width = <4>; | ||
| 64 | }; | ||
| 65 | }; | ||
| 66 | }; | ||
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts index 79524c74c603..fb5a1e25c632 100644 --- a/arch/arm/boot/dts/exynos5420-smdk5420.dts +++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts | |||
| @@ -31,6 +31,39 @@ | |||
| 31 | }; | 31 | }; |
| 32 | }; | 32 | }; |
| 33 | 33 | ||
| 34 | mmc@12200000 { | ||
| 35 | status = "okay"; | ||
| 36 | broken-cd; | ||
| 37 | supports-highspeed; | ||
| 38 | card-detect-delay = <200>; | ||
| 39 | samsung,dw-mshc-ciu-div = <3>; | ||
| 40 | samsung,dw-mshc-sdr-timing = <0 4>; | ||
| 41 | samsung,dw-mshc-ddr-timing = <0 2>; | ||
| 42 | pinctrl-names = "default"; | ||
| 43 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; | ||
| 44 | |||
| 45 | slot@0 { | ||
| 46 | reg = <0>; | ||
| 47 | bus-width = <8>; | ||
| 48 | }; | ||
| 49 | }; | ||
| 50 | |||
| 51 | mmc@12220000 { | ||
| 52 | status = "okay"; | ||
| 53 | supports-highspeed; | ||
| 54 | card-detect-delay = <200>; | ||
| 55 | samsung,dw-mshc-ciu-div = <3>; | ||
| 56 | samsung,dw-mshc-sdr-timing = <2 3>; | ||
| 57 | samsung,dw-mshc-ddr-timing = <1 2>; | ||
| 58 | pinctrl-names = "default"; | ||
| 59 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; | ||
| 60 | |||
| 61 | slot@0 { | ||
| 62 | reg = <0>; | ||
| 63 | bus-width = <4>; | ||
| 64 | }; | ||
| 65 | }; | ||
| 66 | |||
| 34 | dp-controller@145B0000 { | 67 | dp-controller@145B0000 { |
| 35 | pinctrl-names = "default"; | 68 | pinctrl-names = "default"; |
| 36 | pinctrl-0 = <&dp_hpd>; | 69 | pinctrl-0 = <&dp_hpd>; |
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi index 09aa06cb3d3a..11dd202c54bb 100644 --- a/arch/arm/boot/dts/exynos5420.dtsi +++ b/arch/arm/boot/dts/exynos5420.dtsi | |||
| @@ -22,6 +22,9 @@ | |||
| 22 | compatible = "samsung,exynos5420"; | 22 | compatible = "samsung,exynos5420"; |
| 23 | 23 | ||
| 24 | aliases { | 24 | aliases { |
| 25 | mshc0 = &mmc_0; | ||
| 26 | mshc1 = &mmc_1; | ||
| 27 | mshc2 = &mmc_2; | ||
| 25 | pinctrl0 = &pinctrl_0; | 28 | pinctrl0 = &pinctrl_0; |
| 26 | pinctrl1 = &pinctrl_1; | 29 | pinctrl1 = &pinctrl_1; |
| 27 | pinctrl2 = &pinctrl_2; | 30 | pinctrl2 = &pinctrl_2; |
| @@ -31,6 +34,18 @@ | |||
| 31 | i2c1 = &i2c_1; | 34 | i2c1 = &i2c_1; |
| 32 | i2c2 = &i2c_2; | 35 | i2c2 = &i2c_2; |
| 33 | i2c3 = &i2c_3; | 36 | i2c3 = &i2c_3; |
| 37 | i2c4 = &hsi2c_4; | ||
| 38 | i2c5 = &hsi2c_5; | ||
| 39 | i2c6 = &hsi2c_6; | ||
| 40 | i2c7 = &hsi2c_7; | ||
| 41 | i2c8 = &hsi2c_8; | ||
| 42 | i2c9 = &hsi2c_9; | ||
| 43 | i2c10 = &hsi2c_10; | ||
| 44 | gsc0 = &gsc_0; | ||
| 45 | gsc1 = &gsc_1; | ||
| 46 | spi0 = &spi_0; | ||
| 47 | spi1 = &spi_1; | ||
| 48 | spi2 = &spi_2; | ||
| 34 | }; | 49 | }; |
| 35 | 50 | ||
| 36 | cpus { | 51 | cpus { |
| @@ -64,6 +79,34 @@ | |||
| 64 | reg = <0x3>; | 79 | reg = <0x3>; |
| 65 | clock-frequency = <1800000000>; | 80 | clock-frequency = <1800000000>; |
| 66 | }; | 81 | }; |
| 82 | |||
| 83 | cpu4: cpu@100 { | ||
| 84 | device_type = "cpu"; | ||
| 85 | compatible = "arm,cortex-a7"; | ||
| 86 | reg = <0x100>; | ||
| 87 | clock-frequency = <1000000000>; | ||
| 88 | }; | ||
| 89 | |||
| 90 | cpu5: cpu@101 { | ||
| 91 | device_type = "cpu"; | ||
| 92 | compatible = "arm,cortex-a7"; | ||
| 93 | reg = <0x101>; | ||
| 94 | clock-frequency = <1000000000>; | ||
| 95 | }; | ||
| 96 | |||
| 97 | cpu6: cpu@102 { | ||
| 98 | device_type = "cpu"; | ||
| 99 | compatible = "arm,cortex-a7"; | ||
| 100 | reg = <0x102>; | ||
| 101 | clock-frequency = <1000000000>; | ||
| 102 | }; | ||
| 103 | |||
| 104 | cpu7: cpu@103 { | ||
| 105 | device_type = "cpu"; | ||
| 106 | compatible = "arm,cortex-a7"; | ||
| 107 | reg = <0x103>; | ||
| 108 | clock-frequency = <1000000000>; | ||
| 109 | }; | ||
| 67 | }; | 110 | }; |
| 68 | 111 | ||
| 69 | clock: clock-controller@10010000 { | 112 | clock: clock-controller@10010000 { |
| @@ -88,13 +131,50 @@ | |||
| 88 | clock-names = "mfc"; | 131 | clock-names = "mfc"; |
| 89 | }; | 132 | }; |
| 90 | 133 | ||
| 134 | mmc_0: mmc@12200000 { | ||
| 135 | compatible = "samsung,exynos5420-dw-mshc-smu"; | ||
| 136 | interrupts = <0 75 0>; | ||
| 137 | #address-cells = <1>; | ||
| 138 | #size-cells = <0>; | ||
| 139 | reg = <0x12200000 0x2000>; | ||
| 140 | clocks = <&clock 351>, <&clock 132>; | ||
| 141 | clock-names = "biu", "ciu"; | ||
| 142 | fifo-depth = <0x40>; | ||
| 143 | status = "disabled"; | ||
| 144 | }; | ||
| 145 | |||
| 146 | mmc_1: mmc@12210000 { | ||
| 147 | compatible = "samsung,exynos5420-dw-mshc-smu"; | ||
| 148 | interrupts = <0 76 0>; | ||
| 149 | #address-cells = <1>; | ||
| 150 | #size-cells = <0>; | ||
| 151 | reg = <0x12210000 0x2000>; | ||
| 152 | clocks = <&clock 352>, <&clock 133>; | ||
| 153 | clock-names = "biu", "ciu"; | ||
| 154 | fifo-depth = <0x40>; | ||
| 155 | status = "disabled"; | ||
| 156 | }; | ||
| 157 | |||
| 158 | mmc_2: mmc@12220000 { | ||
| 159 | compatible = "samsung,exynos5420-dw-mshc"; | ||
| 160 | interrupts = <0 77 0>; | ||
| 161 | #address-cells = <1>; | ||
| 162 | #size-cells = <0>; | ||
| 163 | reg = <0x12220000 0x1000>; | ||
| 164 | clocks = <&clock 353>, <&clock 134>; | ||
| 165 | clock-names = "biu", "ciu"; | ||
| 166 | fifo-depth = <0x40>; | ||
| 167 | status = "disabled"; | ||
| 168 | }; | ||
| 169 | |||
| 91 | mct@101C0000 { | 170 | mct@101C0000 { |
| 92 | compatible = "samsung,exynos4210-mct"; | 171 | compatible = "samsung,exynos4210-mct"; |
| 93 | reg = <0x101C0000 0x800>; | 172 | reg = <0x101C0000 0x800>; |
| 94 | interrupt-controller; | 173 | interrupt-controller; |
| 95 | #interrups-cells = <1>; | 174 | #interrups-cells = <1>; |
| 96 | interrupt-parent = <&mct_map>; | 175 | interrupt-parent = <&mct_map>; |
| 97 | interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>; | 176 | interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, |
| 177 | <8>, <9>, <10>, <11>; | ||
| 98 | clocks = <&clock 1>, <&clock 315>; | 178 | clocks = <&clock 1>, <&clock 315>; |
| 99 | clock-names = "fin_pll", "mct"; | 179 | clock-names = "fin_pll", "mct"; |
| 100 | 180 | ||
| @@ -109,7 +189,11 @@ | |||
| 109 | <4 &gic 0 120 0>, | 189 | <4 &gic 0 120 0>, |
| 110 | <5 &gic 0 121 0>, | 190 | <5 &gic 0 121 0>, |
| 111 | <6 &gic 0 122 0>, | 191 | <6 &gic 0 122 0>, |
| 112 | <7 &gic 0 123 0>; | 192 | <7 &gic 0 123 0>, |
| 193 | <8 &gic 0 128 0>, | ||
| 194 | <9 &gic 0 129 0>, | ||
| 195 | <10 &gic 0 130 0>, | ||
| 196 | <11 &gic 0 131 0>; | ||
| 113 | }; | 197 | }; |
| 114 | }; | 198 | }; |
| 115 | 199 | ||
| @@ -190,6 +274,106 @@ | |||
| 190 | status = "okay"; | 274 | status = "okay"; |
| 191 | }; | 275 | }; |
| 192 | 276 | ||
| 277 | amba { | ||
| 278 | #address-cells = <1>; | ||
| 279 | #size-cells = <1>; | ||
| 280 | compatible = "arm,amba-bus"; | ||
| 281 | interrupt-parent = <&gic>; | ||
| 282 | ranges; | ||
| 283 | |||
| 284 | pdma0: pdma@121A0000 { | ||
| 285 | compatible = "arm,pl330", "arm,primecell"; | ||
| 286 | reg = <0x121A0000 0x1000>; | ||
| 287 | interrupts = <0 34 0>; | ||
| 288 | clocks = <&clock 362>; | ||
| 289 | clock-names = "apb_pclk"; | ||
| 290 | #dma-cells = <1>; | ||
| 291 | #dma-channels = <8>; | ||
| 292 | #dma-requests = <32>; | ||
| 293 | }; | ||
| 294 | |||
| 295 | pdma1: pdma@121B0000 { | ||
| 296 | compatible = "arm,pl330", "arm,primecell"; | ||
| 297 | reg = <0x121B0000 0x1000>; | ||
| 298 | interrupts = <0 35 0>; | ||
| 299 | clocks = <&clock 363>; | ||
| 300 | clock-names = "apb_pclk"; | ||
| 301 | #dma-cells = <1>; | ||
| 302 | #dma-channels = <8>; | ||
| 303 | #dma-requests = <32>; | ||
| 304 | }; | ||
| 305 | |||
| 306 | mdma0: mdma@10800000 { | ||
| 307 | compatible = "arm,pl330", "arm,primecell"; | ||
| 308 | reg = <0x10800000 0x1000>; | ||
| 309 | interrupts = <0 33 0>; | ||
| 310 | clocks = <&clock 473>; | ||
| 311 | clock-names = "apb_pclk"; | ||
| 312 | #dma-cells = <1>; | ||
| 313 | #dma-channels = <8>; | ||
| 314 | #dma-requests = <1>; | ||
| 315 | }; | ||
| 316 | |||
| 317 | mdma1: mdma@11C10000 { | ||
| 318 | compatible = "arm,pl330", "arm,primecell"; | ||
| 319 | reg = <0x11C10000 0x1000>; | ||
| 320 | interrupts = <0 124 0>; | ||
| 321 | clocks = <&clock 442>; | ||
| 322 | clock-names = "apb_pclk"; | ||
| 323 | #dma-cells = <1>; | ||
| 324 | #dma-channels = <8>; | ||
| 325 | #dma-requests = <1>; | ||
| 326 | }; | ||
| 327 | }; | ||
| 328 | |||
| 329 | spi_0: spi@12d20000 { | ||
| 330 | compatible = "samsung,exynos4210-spi"; | ||
| 331 | reg = <0x12d20000 0x100>; | ||
| 332 | interrupts = <0 66 0>; | ||
| 333 | dmas = <&pdma0 5 | ||
| 334 | &pdma0 4>; | ||
| 335 | dma-names = "tx", "rx"; | ||
| 336 | #address-cells = <1>; | ||
| 337 | #size-cells = <0>; | ||
| 338 | pinctrl-names = "default"; | ||
| 339 | pinctrl-0 = <&spi0_bus>; | ||
| 340 | clocks = <&clock 271>, <&clock 135>; | ||
| 341 | clock-names = "spi", "spi_busclk0"; | ||
| 342 | status = "disabled"; | ||
| 343 | }; | ||
| 344 | |||
| 345 | spi_1: spi@12d30000 { | ||
| 346 | compatible = "samsung,exynos4210-spi"; | ||
| 347 | reg = <0x12d30000 0x100>; | ||
| 348 | interrupts = <0 67 0>; | ||
| 349 | dmas = <&pdma1 5 | ||
| 350 | &pdma1 4>; | ||
| 351 | dma-names = "tx", "rx"; | ||
| 352 | #address-cells = <1>; | ||
| 353 | #size-cells = <0>; | ||
| 354 | pinctrl-names = "default"; | ||
| 355 | pinctrl-0 = <&spi1_bus>; | ||
| 356 | clocks = <&clock 272>, <&clock 136>; | ||
| 357 | clock-names = "spi", "spi_busclk0"; | ||
| 358 | status = "disabled"; | ||
| 359 | }; | ||
| 360 | |||
| 361 | spi_2: spi@12d40000 { | ||
| 362 | compatible = "samsung,exynos4210-spi"; | ||
| 363 | reg = <0x12d40000 0x100>; | ||
| 364 | interrupts = <0 68 0>; | ||
| 365 | dmas = <&pdma0 7 | ||
| 366 | &pdma0 6>; | ||
| 367 | dma-names = "tx", "rx"; | ||
| 368 | #address-cells = <1>; | ||
| 369 | #size-cells = <0>; | ||
| 370 | pinctrl-names = "default"; | ||
| 371 | pinctrl-0 = <&spi2_bus>; | ||
| 372 | clocks = <&clock 273>, <&clock 137>; | ||
| 373 | clock-names = "spi", "spi_busclk0"; | ||
| 374 | status = "disabled"; | ||
| 375 | }; | ||
| 376 | |||
| 193 | serial@12C00000 { | 377 | serial@12C00000 { |
| 194 | clocks = <&clock 257>, <&clock 128>; | 378 | clocks = <&clock 257>, <&clock 128>; |
| 195 | clock-names = "uart", "clk_uart_baud0"; | 379 | clock-names = "uart", "clk_uart_baud0"; |
| @@ -210,6 +394,15 @@ | |||
| 210 | clock-names = "uart", "clk_uart_baud0"; | 394 | clock-names = "uart", "clk_uart_baud0"; |
| 211 | }; | 395 | }; |
| 212 | 396 | ||
| 397 | pwm: pwm@12dd0000 { | ||
| 398 | compatible = "samsung,exynos4210-pwm"; | ||
| 399 | reg = <0x12dd0000 0x100>; | ||
| 400 | samsung,pwm-outputs = <0>, <1>, <2>, <3>; | ||
| 401 | #pwm-cells = <3>; | ||
| 402 | clocks = <&clock 279>; | ||
| 403 | clock-names = "timers"; | ||
| 404 | }; | ||
| 405 | |||
| 213 | dp_phy: video-phy@10040728 { | 406 | dp_phy: video-phy@10040728 { |
| 214 | compatible = "samsung,exynos5250-dp-video-phy"; | 407 | compatible = "samsung,exynos5250-dp-video-phy"; |
| 215 | reg = <0x10040728 4>; | 408 | reg = <0x10040728 4>; |
| @@ -292,6 +485,97 @@ | |||
| 292 | status = "disabled"; | 485 | status = "disabled"; |
| 293 | }; | 486 | }; |
| 294 | 487 | ||
| 488 | hsi2c_4: i2c@12CA0000 { | ||
| 489 | compatible = "samsung,exynos5-hsi2c"; | ||
| 490 | reg = <0x12CA0000 0x1000>; | ||
| 491 | interrupts = <0 60 0>; | ||
| 492 | #address-cells = <1>; | ||
| 493 | #size-cells = <0>; | ||
| 494 | pinctrl-names = "default"; | ||
| 495 | pinctrl-0 = <&i2c4_hs_bus>; | ||
| 496 | clocks = <&clock 265>; | ||
| 497 | clock-names = "hsi2c"; | ||
| 498 | status = "disabled"; | ||
| 499 | }; | ||
| 500 | |||
| 501 | hsi2c_5: i2c@12CB0000 { | ||
| 502 | compatible = "samsung,exynos5-hsi2c"; | ||
| 503 | reg = <0x12CB0000 0x1000>; | ||
| 504 | interrupts = <0 61 0>; | ||
| 505 | #address-cells = <1>; | ||
| 506 | #size-cells = <0>; | ||
| 507 | pinctrl-names = "default"; | ||
| 508 | pinctrl-0 = <&i2c5_hs_bus>; | ||
| 509 | clocks = <&clock 266>; | ||
| 510 | clock-names = "hsi2c"; | ||
| 511 | status = "disabled"; | ||
| 512 | }; | ||
| 513 | |||
| 514 | hsi2c_6: i2c@12CC0000 { | ||
| 515 | compatible = "samsung,exynos5-hsi2c"; | ||
| 516 | reg = <0x12CC0000 0x1000>; | ||
| 517 | interrupts = <0 62 0>; | ||
| 518 | #address-cells = <1>; | ||
| 519 | #size-cells = <0>; | ||
| 520 | pinctrl-names = "default"; | ||
| 521 | pinctrl-0 = <&i2c6_hs_bus>; | ||
| 522 | clocks = <&clock 267>; | ||
| 523 | clock-names = "hsi2c"; | ||
| 524 | status = "disabled"; | ||
| 525 | }; | ||
| 526 | |||
| 527 | hsi2c_7: i2c@12CD0000 { | ||
| 528 | compatible = "samsung,exynos5-hsi2c"; | ||
| 529 | reg = <0x12CD0000 0x1000>; | ||
| 530 | interrupts = <0 63 0>; | ||
| 531 | #address-cells = <1>; | ||
| 532 | #size-cells = <0>; | ||
| 533 | pinctrl-names = "default"; | ||
| 534 | pinctrl-0 = <&i2c7_hs_bus>; | ||
| 535 | clocks = <&clock 268>; | ||
| 536 | clock-names = "hsi2c"; | ||
| 537 | status = "disabled"; | ||
| 538 | }; | ||
| 539 | |||
| 540 | hsi2c_8: i2c@12E00000 { | ||
| 541 | compatible = "samsung,exynos5-hsi2c"; | ||
| 542 | reg = <0x12E00000 0x1000>; | ||
| 543 | interrupts = <0 87 0>; | ||
| 544 | #address-cells = <1>; | ||
| 545 | #size-cells = <0>; | ||
| 546 | pinctrl-names = "default"; | ||
| 547 | pinctrl-0 = <&i2c8_hs_bus>; | ||
| 548 | clocks = <&clock 281>; | ||
| 549 | clock-names = "hsi2c"; | ||
| 550 | status = "disabled"; | ||
| 551 | }; | ||
| 552 | |||
| 553 | hsi2c_9: i2c@12E10000 { | ||
| 554 | compatible = "samsung,exynos5-hsi2c"; | ||
| 555 | reg = <0x12E10000 0x1000>; | ||
| 556 | interrupts = <0 88 0>; | ||
| 557 | #address-cells = <1>; | ||
| 558 | #size-cells = <0>; | ||
| 559 | pinctrl-names = "default"; | ||
| 560 | pinctrl-0 = <&i2c9_hs_bus>; | ||
| 561 | clocks = <&clock 282>; | ||
| 562 | clock-names = "hsi2c"; | ||
| 563 | status = "disabled"; | ||
| 564 | }; | ||
| 565 | |||
| 566 | hsi2c_10: i2c@12E20000 { | ||
| 567 | compatible = "samsung,exynos5-hsi2c"; | ||
| 568 | reg = <0x12E20000 0x1000>; | ||
| 569 | interrupts = <0 203 0>; | ||
| 570 | #address-cells = <1>; | ||
| 571 | #size-cells = <0>; | ||
| 572 | pinctrl-names = "default"; | ||
| 573 | pinctrl-0 = <&i2c10_hs_bus>; | ||
| 574 | clocks = <&clock 283>; | ||
| 575 | clock-names = "hsi2c"; | ||
| 576 | status = "disabled"; | ||
| 577 | }; | ||
| 578 | |||
| 295 | hdmi@14530000 { | 579 | hdmi@14530000 { |
| 296 | compatible = "samsung,exynos4212-hdmi"; | 580 | compatible = "samsung,exynos4212-hdmi"; |
| 297 | reg = <0x14530000 0x70000>; | 581 | reg = <0x14530000 0x70000>; |
| @@ -310,4 +594,62 @@ | |||
| 310 | clocks = <&clock 431>, <&clock 143>; | 594 | clocks = <&clock 431>, <&clock 143>; |
| 311 | clock-names = "mixer", "sclk_hdmi"; | 595 | clock-names = "mixer", "sclk_hdmi"; |
| 312 | }; | 596 | }; |
| 597 | |||
| 598 | gsc_0: video-scaler@13e00000 { | ||
| 599 | compatible = "samsung,exynos5-gsc"; | ||
| 600 | reg = <0x13e00000 0x1000>; | ||
| 601 | interrupts = <0 85 0>; | ||
| 602 | clocks = <&clock 465>; | ||
| 603 | clock-names = "gscl"; | ||
| 604 | samsung,power-domain = <&gsc_pd>; | ||
| 605 | }; | ||
| 606 | |||
| 607 | gsc_1: video-scaler@13e10000 { | ||
| 608 | compatible = "samsung,exynos5-gsc"; | ||
| 609 | reg = <0x13e10000 0x1000>; | ||
| 610 | interrupts = <0 86 0>; | ||
| 611 | clocks = <&clock 466>; | ||
| 612 | clock-names = "gscl"; | ||
| 613 | samsung,power-domain = <&gsc_pd>; | ||
| 614 | }; | ||
| 615 | |||
| 616 | tmu_cpu0: tmu@10060000 { | ||
| 617 | compatible = "samsung,exynos5420-tmu"; | ||
| 618 | reg = <0x10060000 0x100>; | ||
| 619 | interrupts = <0 65 0>; | ||
| 620 | clocks = <&clock 318>; | ||
| 621 | clock-names = "tmu_apbif"; | ||
| 622 | }; | ||
| 623 | |||
| 624 | tmu_cpu1: tmu@10064000 { | ||
| 625 | compatible = "samsung,exynos5420-tmu"; | ||
| 626 | reg = <0x10064000 0x100>; | ||
| 627 | interrupts = <0 183 0>; | ||
| 628 | clocks = <&clock 318>; | ||
| 629 | clock-names = "tmu_apbif"; | ||
| 630 | }; | ||
| 631 | |||
| 632 | tmu_cpu2: tmu@10068000 { | ||
| 633 | compatible = "samsung,exynos5420-tmu-ext-triminfo"; | ||
| 634 | reg = <0x10068000 0x100>, <0x1006c000 0x4>; | ||
| 635 | interrupts = <0 184 0>; | ||
| 636 | clocks = <&clock 318>, <&clock 318>; | ||
| 637 | clock-names = "tmu_apbif", "tmu_triminfo_apbif"; | ||
| 638 | }; | ||
| 639 | |||
| 640 | tmu_cpu3: tmu@1006c000 { | ||
| 641 | compatible = "samsung,exynos5420-tmu-ext-triminfo"; | ||
| 642 | reg = <0x1006c000 0x100>, <0x100a0000 0x4>; | ||
| 643 | interrupts = <0 185 0>; | ||
| 644 | clocks = <&clock 318>, <&clock 319>; | ||
| 645 | clock-names = "tmu_apbif", "tmu_triminfo_apbif"; | ||
| 646 | }; | ||
| 647 | |||
| 648 | tmu_gpu: tmu@100a0000 { | ||
| 649 | compatible = "samsung,exynos5420-tmu-ext-triminfo"; | ||
| 650 | reg = <0x100a0000 0x100>, <0x10068000 0x4>; | ||
| 651 | interrupts = <0 215 0>; | ||
| 652 | clocks = <&clock 319>, <&clock 318>; | ||
| 653 | clock-names = "tmu_apbif", "tmu_triminfo_apbif"; | ||
| 654 | }; | ||
| 313 | }; | 655 | }; |
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi index 8da107088ce4..02a0a1226cef 100644 --- a/arch/arm/boot/dts/exynos5440.dtsi +++ b/arch/arm/boot/dts/exynos5440.dtsi | |||
| @@ -29,7 +29,7 @@ | |||
| 29 | #clock-cells = <1>; | 29 | #clock-cells = <1>; |
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | gic:interrupt-controller@2E0000 { | 32 | gic: interrupt-controller@2E0000 { |
| 33 | compatible = "arm,cortex-a15-gic"; | 33 | compatible = "arm,cortex-a15-gic"; |
| 34 | #interrupt-cells = <3>; | 34 | #interrupt-cells = <3>; |
| 35 | interrupt-controller; | 35 | interrupt-controller; |
diff --git a/arch/arm/boot/dts/integrator.dtsi b/arch/arm/boot/dts/integrator.dtsi index 0f06f8687b0b..88e3d477bf16 100644 --- a/arch/arm/boot/dts/integrator.dtsi +++ b/arch/arm/boot/dts/integrator.dtsi | |||
| @@ -10,6 +10,11 @@ | |||
| 10 | reg = <0x10000000 0x200>; | 10 | reg = <0x10000000 0x200>; |
| 11 | }; | 11 | }; |
| 12 | 12 | ||
| 13 | ebi@12000000 { | ||
| 14 | compatible = "arm,external-bus-interface"; | ||
| 15 | reg = <0x12000000 0x100>; | ||
| 16 | }; | ||
| 17 | |||
| 13 | timer@13000000 { | 18 | timer@13000000 { |
| 14 | reg = <0x13000000 0x100>; | 19 | reg = <0x13000000 0x100>; |
| 15 | interrupt-parent = <&pic>; | 20 | interrupt-parent = <&pic>; |
diff --git a/arch/arm/boot/dts/k2hk-evm.dts b/arch/arm/boot/dts/k2hk-evm.dts new file mode 100644 index 000000000000..eaefdfef65c3 --- /dev/null +++ b/arch/arm/boot/dts/k2hk-evm.dts | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2013 Texas Instruments, Inc. | ||
| 3 | * | ||
| 4 | * Keystone 2 Kepler/Hawking EVM device tree | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | /dts-v1/; | ||
| 11 | |||
| 12 | #include "keystone.dtsi" | ||
| 13 | |||
| 14 | / { | ||
| 15 | compatible = "ti,keystone-evm"; | ||
| 16 | |||
| 17 | soc { | ||
| 18 | clock { | ||
| 19 | refclksys: refclksys { | ||
| 20 | #clock-cells = <0>; | ||
| 21 | compatible = "fixed-clock"; | ||
| 22 | clock-frequency = <122880000>; | ||
| 23 | clock-output-names = "refclk-sys"; | ||
| 24 | }; | ||
| 25 | |||
| 26 | refclkpass: refclkpass { | ||
| 27 | #clock-cells = <0>; | ||
| 28 | compatible = "fixed-clock"; | ||
| 29 | clock-frequency = <122880000>; | ||
| 30 | clock-output-names = "refclk-pass"; | ||
| 31 | }; | ||
| 32 | |||
| 33 | refclkarm: refclkarm { | ||
| 34 | #clock-cells = <0>; | ||
| 35 | compatible = "fixed-clock"; | ||
| 36 | clock-frequency = <125000000>; | ||
| 37 | clock-output-names = "refclk-arm"; | ||
| 38 | }; | ||
| 39 | |||
| 40 | refclkddr3a: refclkddr3a { | ||
| 41 | #clock-cells = <0>; | ||
| 42 | compatible = "fixed-clock"; | ||
| 43 | clock-frequency = <100000000>; | ||
| 44 | clock-output-names = "refclk-ddr3a"; | ||
| 45 | }; | ||
| 46 | |||
| 47 | refclkddr3b: refclkddr3b { | ||
| 48 | #clock-cells = <0>; | ||
| 49 | compatible = "fixed-clock"; | ||
| 50 | clock-frequency = <100000000>; | ||
| 51 | clock-output-names = "refclk-ddr3b"; | ||
| 52 | }; | ||
| 53 | }; | ||
| 54 | }; | ||
| 55 | }; | ||
| 56 | |||
| 57 | &usb_phy { | ||
| 58 | status = "okay"; | ||
| 59 | }; | ||
| 60 | |||
| 61 | &usb { | ||
| 62 | status = "okay"; | ||
| 63 | }; | ||
diff --git a/arch/arm/boot/dts/keystone-clocks.dtsi b/arch/arm/boot/dts/keystone-clocks.dtsi index d6713b113258..2363593e1050 100644 --- a/arch/arm/boot/dts/keystone-clocks.dtsi +++ b/arch/arm/boot/dts/keystone-clocks.dtsi | |||
| @@ -13,17 +13,10 @@ clocks { | |||
| 13 | #size-cells = <1>; | 13 | #size-cells = <1>; |
| 14 | ranges; | 14 | ranges; |
| 15 | 15 | ||
| 16 | refclkmain: refclkmain { | ||
| 17 | #clock-cells = <0>; | ||
| 18 | compatible = "fixed-clock"; | ||
| 19 | clock-frequency = <122880000>; | ||
| 20 | clock-output-names = "refclk-main"; | ||
| 21 | }; | ||
| 22 | |||
| 23 | mainpllclk: mainpllclk@2310110 { | 16 | mainpllclk: mainpllclk@2310110 { |
| 24 | #clock-cells = <0>; | 17 | #clock-cells = <0>; |
| 25 | compatible = "ti,keystone,main-pll-clock"; | 18 | compatible = "ti,keystone,main-pll-clock"; |
| 26 | clocks = <&refclkmain>; | 19 | clocks = <&refclksys>; |
| 27 | reg = <0x02620350 4>, <0x02310110 4>; | 20 | reg = <0x02620350 4>, <0x02310110 4>; |
| 28 | reg-names = "control", "multiplier"; | 21 | reg-names = "control", "multiplier"; |
| 29 | fixed-postdiv = <2>; | 22 | fixed-postdiv = <2>; |
| @@ -32,47 +25,43 @@ clocks { | |||
| 32 | papllclk: papllclk@2620358 { | 25 | papllclk: papllclk@2620358 { |
| 33 | #clock-cells = <0>; | 26 | #clock-cells = <0>; |
| 34 | compatible = "ti,keystone,pll-clock"; | 27 | compatible = "ti,keystone,pll-clock"; |
| 35 | clocks = <&refclkmain>; | 28 | clocks = <&refclkpass>; |
| 36 | clock-output-names = "pa-pll-clk"; | 29 | clock-output-names = "pa-pll-clk"; |
| 37 | reg = <0x02620358 4>; | 30 | reg = <0x02620358 4>; |
| 38 | reg-names = "control"; | 31 | reg-names = "control"; |
| 39 | fixed-postdiv = <6>; | ||
| 40 | }; | 32 | }; |
| 41 | 33 | ||
| 42 | ddr3allclk: ddr3apllclk@2620360 { | 34 | ddr3apllclk: ddr3apllclk@2620360 { |
| 43 | #clock-cells = <0>; | 35 | #clock-cells = <0>; |
| 44 | compatible = "ti,keystone,pll-clock"; | 36 | compatible = "ti,keystone,pll-clock"; |
| 45 | clocks = <&refclkmain>; | 37 | clocks = <&refclkddr3a>; |
| 46 | clock-output-names = "ddr-3a-pll-clk"; | 38 | clock-output-names = "ddr-3a-pll-clk"; |
| 47 | reg = <0x02620360 4>; | 39 | reg = <0x02620360 4>; |
| 48 | reg-names = "control"; | 40 | reg-names = "control"; |
| 49 | fixed-postdiv = <6>; | ||
| 50 | }; | 41 | }; |
| 51 | 42 | ||
| 52 | ddr3bllclk: ddr3bpllclk@2620368 { | 43 | ddr3bpllclk: ddr3bpllclk@2620368 { |
| 53 | #clock-cells = <0>; | 44 | #clock-cells = <0>; |
| 54 | compatible = "ti,keystone,pll-clock"; | 45 | compatible = "ti,keystone,pll-clock"; |
| 55 | clocks = <&refclkmain>; | 46 | clocks = <&refclkddr3b>; |
| 56 | clock-output-names = "ddr-3b-pll-clk"; | 47 | clock-output-names = "ddr-3b-pll-clk"; |
| 57 | reg = <0x02620368 4>; | 48 | reg = <0x02620368 4>; |
| 58 | reg-names = "control"; | 49 | reg-names = "control"; |
| 59 | fixed-postdiv = <6>; | ||
| 60 | }; | 50 | }; |
| 61 | 51 | ||
| 62 | armpllclk: armpllclk@2620370 { | 52 | armpllclk: armpllclk@2620370 { |
| 63 | #clock-cells = <0>; | 53 | #clock-cells = <0>; |
| 64 | compatible = "ti,keystone,pll-clock"; | 54 | compatible = "ti,keystone,pll-clock"; |
| 65 | clocks = <&refclkmain>; | 55 | clocks = <&refclkarm>; |
| 66 | clock-output-names = "arm-pll-clk"; | 56 | clock-output-names = "arm-pll-clk"; |
| 67 | reg = <0x02620370 4>; | 57 | reg = <0x02620370 4>; |
| 68 | reg-names = "control"; | 58 | reg-names = "control"; |
| 69 | fixed-postdiv = <6>; | ||
| 70 | }; | 59 | }; |
| 71 | 60 | ||
| 72 | mainmuxclk: mainmuxclk@2310108 { | 61 | mainmuxclk: mainmuxclk@2310108 { |
| 73 | #clock-cells = <0>; | 62 | #clock-cells = <0>; |
| 74 | compatible = "ti,keystone,pll-mux-clock"; | 63 | compatible = "ti,keystone,pll-mux-clock"; |
| 75 | clocks = <&mainpllclk>, <&refclkmain>; | 64 | clocks = <&mainpllclk>, <&refclksys>; |
| 76 | reg = <0x02310108 4>; | 65 | reg = <0x02310108 4>; |
| 77 | bit-shift = <23>; | 66 | bit-shift = <23>; |
| 78 | bit-mask = <1>; | 67 | bit-mask = <1>; |
| @@ -135,6 +124,15 @@ clocks { | |||
| 135 | clock-output-names = "chipclk13"; | 124 | clock-output-names = "chipclk13"; |
| 136 | }; | 125 | }; |
| 137 | 126 | ||
| 127 | paclk13: paclk13 { | ||
| 128 | #clock-cells = <0>; | ||
| 129 | compatible = "fixed-factor-clock"; | ||
| 130 | clocks = <&papllclk>; | ||
| 131 | clock-div = <3>; | ||
| 132 | clock-mult = <1>; | ||
| 133 | clock-output-names = "paclk13"; | ||
| 134 | }; | ||
| 135 | |||
| 138 | chipclk14: chipclk14 { | 136 | chipclk14: chipclk14 { |
| 139 | #clock-cells = <0>; | 137 | #clock-cells = <0>; |
| 140 | compatible = "fixed-factor-clock"; | 138 | compatible = "fixed-factor-clock"; |
diff --git a/arch/arm/boot/dts/keystone.dts b/arch/arm/boot/dts/keystone.dtsi index 100bdf52b847..b4202907a27b 100644 --- a/arch/arm/boot/dts/keystone.dts +++ b/arch/arm/boot/dts/keystone.dtsi | |||
| @@ -6,14 +6,12 @@ | |||
| 6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | /dts-v1/; | ||
| 10 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 9 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 11 | 10 | ||
| 12 | #include "skeleton.dtsi" | 11 | #include "skeleton.dtsi" |
| 13 | 12 | ||
| 14 | / { | 13 | / { |
| 15 | model = "Texas Instruments Keystone 2 SoC"; | 14 | model = "Texas Instruments Keystone 2 SoC"; |
| 16 | compatible = "ti,keystone-evm"; | ||
| 17 | #address-cells = <2>; | 15 | #address-cells = <2>; |
| 18 | #size-cells = <2>; | 16 | #size-cells = <2>; |
| 19 | interrupt-parent = <&gic>; | 17 | interrupt-parent = <&gic>; |
| @@ -64,7 +62,11 @@ | |||
| 64 | #address-cells = <1>; | 62 | #address-cells = <1>; |
| 65 | interrupt-controller; | 63 | interrupt-controller; |
| 66 | reg = <0x0 0x02561000 0x0 0x1000>, | 64 | reg = <0x0 0x02561000 0x0 0x1000>, |
| 67 | <0x0 0x02562000 0x0 0x2000>; | 65 | <0x0 0x02562000 0x0 0x2000>, |
| 66 | <0x0 0x02564000 0x0 0x1000>, | ||
| 67 | <0x0 0x02566000 0x0 0x2000>; | ||
| 68 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | | ||
| 69 | IRQ_TYPE_LEVEL_HIGH)>; | ||
| 68 | }; | 70 | }; |
| 69 | 71 | ||
| 70 | timer { | 72 | timer { |
| @@ -179,5 +181,32 @@ | |||
| 179 | interrupts = <GIC_SPI 300 IRQ_TYPE_EDGE_RISING>; | 181 | interrupts = <GIC_SPI 300 IRQ_TYPE_EDGE_RISING>; |
| 180 | clocks = <&clkspi>; | 182 | clocks = <&clkspi>; |
| 181 | }; | 183 | }; |
| 184 | |||
| 185 | usb_phy: usb_phy@2620738 { | ||
| 186 | compatible = "ti,keystone-usbphy"; | ||
| 187 | #address-cells = <1>; | ||
| 188 | #size-cells = <1>; | ||
| 189 | reg = <0x2620738 32>; | ||
| 190 | status = "disabled"; | ||
| 191 | }; | ||
| 192 | |||
| 193 | usb: usb@2680000 { | ||
| 194 | compatible = "ti,keystone-dwc3"; | ||
| 195 | #address-cells = <1>; | ||
| 196 | #size-cells = <1>; | ||
| 197 | reg = <0x2680000 0x10000>; | ||
| 198 | clocks = <&clkusb>; | ||
| 199 | clock-names = "usb"; | ||
| 200 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | ||
| 201 | ranges; | ||
| 202 | status = "disabled"; | ||
| 203 | |||
| 204 | dwc3@2690000 { | ||
| 205 | compatible = "synopsys,dwc3"; | ||
| 206 | reg = <0x2690000 0x70000>; | ||
| 207 | interrupts = <GIC_SPI 393 IRQ_TYPE_EDGE_RISING>; | ||
| 208 | usb-phy = <&usb_phy>, <&usb_phy>; | ||
| 209 | }; | ||
| 210 | }; | ||
| 182 | }; | 211 | }; |
| 183 | }; | 212 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-6192.dtsi b/arch/arm/boot/dts/kirkwood-6192.dtsi new file mode 100644 index 000000000000..3916937d6818 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-6192.dtsi | |||
| @@ -0,0 +1,107 @@ | |||
| 1 | / { | ||
| 2 | mbus { | ||
| 3 | pcie-controller { | ||
| 4 | compatible = "marvell,kirkwood-pcie"; | ||
| 5 | status = "disabled"; | ||
| 6 | device_type = "pci"; | ||
| 7 | |||
| 8 | #address-cells = <3>; | ||
| 9 | #size-cells = <2>; | ||
| 10 | |||
| 11 | bus-range = <0x00 0xff>; | ||
| 12 | |||
| 13 | ranges = | ||
| 14 | <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 | ||
| 15 | 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ | ||
| 16 | 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */>; | ||
| 17 | |||
| 18 | pcie@1,0 { | ||
| 19 | device_type = "pci"; | ||
| 20 | assigned-addresses = <0x82000800 0 0x00040000 0 0x2000>; | ||
| 21 | reg = <0x0800 0 0 0 0>; | ||
| 22 | #address-cells = <3>; | ||
| 23 | #size-cells = <2>; | ||
| 24 | #interrupt-cells = <1>; | ||
| 25 | ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 | ||
| 26 | 0x81000000 0 0 0x81000000 0x1 0 1 0>; | ||
| 27 | interrupt-map-mask = <0 0 0 0>; | ||
| 28 | interrupt-map = <0 0 0 0 &intc 9>; | ||
| 29 | marvell,pcie-port = <0>; | ||
| 30 | marvell,pcie-lane = <0>; | ||
| 31 | clocks = <&gate_clk 2>; | ||
| 32 | status = "disabled"; | ||
| 33 | }; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 37 | ocp@f1000000 { | ||
| 38 | pinctrl: pinctrl@10000 { | ||
| 39 | compatible = "marvell,88f6192-pinctrl"; | ||
| 40 | reg = <0x10000 0x20>; | ||
| 41 | |||
| 42 | pmx_nand: pmx-nand { | ||
| 43 | marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3", | ||
| 44 | "mpp4", "mpp5", "mpp18", | ||
| 45 | "mpp19"; | ||
| 46 | marvell,function = "nand"; | ||
| 47 | }; | ||
| 48 | pmx_sata0: pmx-sata0 { | ||
| 49 | marvell,pins = "mpp5", "mpp21", "mpp23"; | ||
| 50 | marvell,function = "sata0"; | ||
| 51 | }; | ||
| 52 | pmx_sata1: pmx-sata1 { | ||
| 53 | marvell,pins = "mpp4", "mpp20", "mpp22"; | ||
| 54 | marvell,function = "sata1"; | ||
| 55 | }; | ||
| 56 | pmx_spi: pmx-spi { | ||
| 57 | marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3"; | ||
| 58 | marvell,function = "spi"; | ||
| 59 | }; | ||
| 60 | pmx_twsi0: pmx-twsi0 { | ||
| 61 | marvell,pins = "mpp8", "mpp9"; | ||
| 62 | marvell,function = "twsi0"; | ||
| 63 | }; | ||
| 64 | pmx_uart0: pmx-uart0 { | ||
| 65 | marvell,pins = "mpp10", "mpp11"; | ||
| 66 | marvell,function = "uart0"; | ||
| 67 | }; | ||
| 68 | pmx_uart1: pmx-uart1 { | ||
| 69 | marvell,pins = "mpp13", "mpp14"; | ||
| 70 | marvell,function = "uart1"; | ||
| 71 | }; | ||
| 72 | pmx_sdio: pmx-sdio { | ||
| 73 | marvell,pins = "mpp12", "mpp13", "mpp14", | ||
| 74 | "mpp15", "mpp16", "mpp17"; | ||
| 75 | marvell,function = "sdio"; | ||
| 76 | }; | ||
| 77 | }; | ||
| 78 | |||
| 79 | rtc@10300 { | ||
| 80 | compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc"; | ||
| 81 | reg = <0x10300 0x20>; | ||
| 82 | interrupts = <53>; | ||
| 83 | clocks = <&gate_clk 7>; | ||
| 84 | }; | ||
| 85 | |||
| 86 | sata@80000 { | ||
| 87 | compatible = "marvell,orion-sata"; | ||
| 88 | reg = <0x80000 0x5000>; | ||
| 89 | interrupts = <21>; | ||
| 90 | clocks = <&gate_clk 14>, <&gate_clk 15>; | ||
| 91 | clock-names = "0", "1"; | ||
| 92 | status = "disabled"; | ||
| 93 | }; | ||
| 94 | |||
| 95 | mvsdio@90000 { | ||
| 96 | compatible = "marvell,orion-sdio"; | ||
| 97 | reg = <0x90000 0x200>; | ||
| 98 | interrupts = <28>; | ||
| 99 | clocks = <&gate_clk 4>; | ||
| 100 | bus-width = <4>; | ||
| 101 | cap-sdio-irq; | ||
| 102 | cap-sd-highspeed; | ||
| 103 | cap-mmc-highspeed; | ||
| 104 | status = "disabled"; | ||
| 105 | }; | ||
| 106 | }; | ||
| 107 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-6281.dtsi b/arch/arm/boot/dts/kirkwood-6281.dtsi index 650ef30e1856..416d96e1302f 100644 --- a/arch/arm/boot/dts/kirkwood-6281.dtsi +++ b/arch/arm/boot/dts/kirkwood-6281.dtsi | |||
| @@ -89,6 +89,8 @@ | |||
| 89 | interrupts = <21>; | 89 | interrupts = <21>; |
| 90 | clocks = <&gate_clk 14>, <&gate_clk 15>; | 90 | clocks = <&gate_clk 14>, <&gate_clk 15>; |
| 91 | clock-names = "0", "1"; | 91 | clock-names = "0", "1"; |
| 92 | phys = <&sata_phy0>, <&sata_phy1>; | ||
| 93 | phy-names = "port0", "port1"; | ||
| 92 | status = "disabled"; | 94 | status = "disabled"; |
| 93 | }; | 95 | }; |
| 94 | 96 | ||
| @@ -97,6 +99,8 @@ | |||
| 97 | reg = <0x90000 0x200>; | 99 | reg = <0x90000 0x200>; |
| 98 | interrupts = <28>; | 100 | interrupts = <28>; |
| 99 | clocks = <&gate_clk 4>; | 101 | clocks = <&gate_clk 4>; |
| 102 | pinctrl-0 = <&pmx_sdio>; | ||
| 103 | pinctrl-names = "default"; | ||
| 100 | bus-width = <4>; | 104 | bus-width = <4>; |
| 101 | cap-sdio-irq; | 105 | cap-sdio-irq; |
| 102 | cap-sd-highspeed; | 106 | cap-sd-highspeed; |
diff --git a/arch/arm/boot/dts/kirkwood-6282.dtsi b/arch/arm/boot/dts/kirkwood-6282.dtsi index 3933a331ddc2..2902e0d7971d 100644 --- a/arch/arm/boot/dts/kirkwood-6282.dtsi +++ b/arch/arm/boot/dts/kirkwood-6282.dtsi | |||
| @@ -104,6 +104,12 @@ | |||
| 104 | }; | 104 | }; |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| 107 | thermal@10078 { | ||
| 108 | compatible = "marvell,kirkwood-thermal"; | ||
| 109 | reg = <0x10078 0x4>; | ||
| 110 | status = "okay"; | ||
| 111 | }; | ||
| 112 | |||
| 107 | rtc@10300 { | 113 | rtc@10300 { |
| 108 | compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc"; | 114 | compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc"; |
| 109 | reg = <0x10300 0x20>; | 115 | reg = <0x10300 0x20>; |
| @@ -111,12 +117,25 @@ | |||
| 111 | clocks = <&gate_clk 7>; | 117 | clocks = <&gate_clk 7>; |
| 112 | }; | 118 | }; |
| 113 | 119 | ||
| 120 | i2c@11100 { | ||
| 121 | compatible = "marvell,mv64xxx-i2c"; | ||
| 122 | reg = <0x11100 0x20>; | ||
| 123 | #address-cells = <1>; | ||
| 124 | #size-cells = <0>; | ||
| 125 | interrupts = <32>; | ||
| 126 | clock-frequency = <100000>; | ||
| 127 | clocks = <&gate_clk 7>; | ||
| 128 | status = "disabled"; | ||
| 129 | }; | ||
| 130 | |||
| 114 | sata@80000 { | 131 | sata@80000 { |
| 115 | compatible = "marvell,orion-sata"; | 132 | compatible = "marvell,orion-sata"; |
| 116 | reg = <0x80000 0x5000>; | 133 | reg = <0x80000 0x5000>; |
| 117 | interrupts = <21>; | 134 | interrupts = <21>; |
| 118 | clocks = <&gate_clk 14>, <&gate_clk 15>; | 135 | clocks = <&gate_clk 14>, <&gate_clk 15>; |
| 119 | clock-names = "0", "1"; | 136 | clock-names = "0", "1"; |
| 137 | phys = <&sata_phy0>, <&sata_phy1>; | ||
| 138 | phy-names = "port0", "port1"; | ||
| 120 | status = "disabled"; | 139 | status = "disabled"; |
| 121 | }; | 140 | }; |
| 122 | 141 | ||
| @@ -125,29 +144,13 @@ | |||
| 125 | reg = <0x90000 0x200>; | 144 | reg = <0x90000 0x200>; |
| 126 | interrupts = <28>; | 145 | interrupts = <28>; |
| 127 | clocks = <&gate_clk 4>; | 146 | clocks = <&gate_clk 4>; |
| 147 | pinctrl-0 = <&pmx_sdio>; | ||
| 148 | pinctrl-names = "default"; | ||
| 128 | bus-width = <4>; | 149 | bus-width = <4>; |
| 129 | cap-sdio-irq; | 150 | cap-sdio-irq; |
| 130 | cap-sd-highspeed; | 151 | cap-sd-highspeed; |
| 131 | cap-mmc-highspeed; | 152 | cap-mmc-highspeed; |
| 132 | status = "disabled"; | 153 | status = "disabled"; |
| 133 | }; | 154 | }; |
| 134 | |||
| 135 | thermal@10078 { | ||
| 136 | compatible = "marvell,kirkwood-thermal"; | ||
| 137 | reg = <0x10078 0x4>; | ||
| 138 | status = "okay"; | ||
| 139 | }; | ||
| 140 | |||
| 141 | i2c@11100 { | ||
| 142 | compatible = "marvell,mv64xxx-i2c"; | ||
| 143 | reg = <0x11100 0x20>; | ||
| 144 | #address-cells = <1>; | ||
| 145 | #size-cells = <0>; | ||
| 146 | interrupts = <32>; | ||
| 147 | clock-frequency = <100000>; | ||
| 148 | clocks = <&gate_clk 7>; | ||
| 149 | status = "disabled"; | ||
| 150 | }; | ||
| 151 | |||
| 152 | }; | 155 | }; |
| 153 | }; | 156 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-cloudbox.dts b/arch/arm/boot/dts/kirkwood-cloudbox.dts index 142b9cd3b454..bb4df405527c 100644 --- a/arch/arm/boot/dts/kirkwood-cloudbox.dts +++ b/arch/arm/boot/dts/kirkwood-cloudbox.dts | |||
| @@ -66,8 +66,8 @@ | |||
| 66 | 66 | ||
| 67 | button@1 { | 67 | button@1 { |
| 68 | label = "Power push button"; | 68 | label = "Power push button"; |
| 69 | linux,code = <116>; | 69 | linux,code = <KEY_POWER>; |
| 70 | gpios = <&gpio0 16 1>; | 70 | gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; |
| 71 | }; | 71 | }; |
| 72 | }; | 72 | }; |
| 73 | 73 | ||
| @@ -76,17 +76,17 @@ | |||
| 76 | 76 | ||
| 77 | red-fail { | 77 | red-fail { |
| 78 | label = "cloudbox:red:fail"; | 78 | label = "cloudbox:red:fail"; |
| 79 | gpios = <&gpio0 14 0>; | 79 | gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; |
| 80 | }; | 80 | }; |
| 81 | blue-sata { | 81 | blue-sata { |
| 82 | label = "cloudbox:blue:sata"; | 82 | label = "cloudbox:blue:sata"; |
| 83 | gpios = <&gpio0 15 0>; | 83 | gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; |
| 84 | }; | 84 | }; |
| 85 | }; | 85 | }; |
| 86 | 86 | ||
| 87 | gpio_poweroff { | 87 | gpio_poweroff { |
| 88 | compatible = "gpio-poweroff"; | 88 | compatible = "gpio-poweroff"; |
| 89 | gpios = <&gpio0 17 0>; | 89 | gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>; |
| 90 | }; | 90 | }; |
| 91 | }; | 91 | }; |
| 92 | 92 | ||
diff --git a/arch/arm/boot/dts/kirkwood-db.dtsi b/arch/arm/boot/dts/kirkwood-db.dtsi index 053aa20fb30f..afebc1570318 100644 --- a/arch/arm/boot/dts/kirkwood-db.dtsi +++ b/arch/arm/boot/dts/kirkwood-db.dtsi | |||
| @@ -51,8 +51,8 @@ | |||
| 51 | mvsdio@90000 { | 51 | mvsdio@90000 { |
| 52 | pinctrl-0 = <&pmx_sdio_gpios>; | 52 | pinctrl-0 = <&pmx_sdio_gpios>; |
| 53 | pinctrl-names = "default"; | 53 | pinctrl-names = "default"; |
| 54 | wp-gpios = <&gpio1 5 0>; | 54 | wp-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; |
| 55 | cd-gpios = <&gpio1 6 0>; | 55 | cd-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; |
| 56 | status = "okay"; | 56 | status = "okay"; |
| 57 | }; | 57 | }; |
| 58 | }; | 58 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-dns320.dts b/arch/arm/boot/dts/kirkwood-dns320.dts index e112ca62d978..bf7fe8ab88f4 100644 --- a/arch/arm/boot/dts/kirkwood-dns320.dts +++ b/arch/arm/boot/dts/kirkwood-dns320.dts | |||
| @@ -24,24 +24,24 @@ | |||
| 24 | 24 | ||
| 25 | blue-power { | 25 | blue-power { |
| 26 | label = "dns320:blue:power"; | 26 | label = "dns320:blue:power"; |
| 27 | gpios = <&gpio0 26 1>; /* GPIO 26 Active Low */ | 27 | gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; |
| 28 | linux,default-trigger = "default-on"; | 28 | default-state = "keep"; |
| 29 | }; | 29 | }; |
| 30 | blue-usb { | 30 | blue-usb { |
| 31 | label = "dns320:blue:usb"; | 31 | label = "dns320:blue:usb"; |
| 32 | gpios = <&gpio1 11 1>; /* GPIO 43 Active Low */ | 32 | gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; |
| 33 | }; | 33 | }; |
| 34 | orange-l_hdd { | 34 | orange-l_hdd { |
| 35 | label = "dns320:orange:l_hdd"; | 35 | label = "dns320:orange:l_hdd"; |
| 36 | gpios = <&gpio0 28 1>; /* GPIO 28 Active Low */ | 36 | gpios = <&gpio0 28 GPIO_ACTIVE_LOW>; |
| 37 | }; | 37 | }; |
| 38 | orange-r_hdd { | 38 | orange-r_hdd { |
| 39 | label = "dns320:orange:r_hdd"; | 39 | label = "dns320:orange:r_hdd"; |
| 40 | gpios = <&gpio0 27 1>; /* GPIO 27 Active Low */ | 40 | gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; |
| 41 | }; | 41 | }; |
| 42 | orange-usb { | 42 | orange-usb { |
| 43 | label = "dns320:orange:usb"; | 43 | label = "dns320:orange:usb"; |
| 44 | gpios = <&gpio1 3 1>; /* GPIO 35 Active Low */ | 44 | gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; /* GPIO 35 */ |
| 45 | }; | 45 | }; |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
diff --git a/arch/arm/boot/dts/kirkwood-dns325.dts b/arch/arm/boot/dts/kirkwood-dns325.dts index 5119fb8a8eb6..cb9978c652f2 100644 --- a/arch/arm/boot/dts/kirkwood-dns325.dts +++ b/arch/arm/boot/dts/kirkwood-dns325.dts | |||
| @@ -24,24 +24,24 @@ | |||
| 24 | 24 | ||
| 25 | white-power { | 25 | white-power { |
| 26 | label = "dns325:white:power"; | 26 | label = "dns325:white:power"; |
| 27 | gpios = <&gpio0 26 1>; /* GPIO 26 Active Low */ | 27 | gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; |
| 28 | linux,default-trigger = "default-on"; | 28 | default-state = "keep"; |
| 29 | }; | 29 | }; |
| 30 | white-usb { | 30 | white-usb { |
| 31 | label = "dns325:white:usb"; | 31 | label = "dns325:white:usb"; |
| 32 | gpios = <&gpio1 11 1>; /* GPIO 43 Active Low */ | 32 | gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; /* GPIO 43 */ |
| 33 | }; | 33 | }; |
| 34 | red-l_hdd { | 34 | red-l_hdd { |
| 35 | label = "dns325:red:l_hdd"; | 35 | label = "dns325:red:l_hdd"; |
| 36 | gpios = <&gpio0 28 1>; /* GPIO 28 Active Low */ | 36 | gpios = <&gpio0 28 GPIO_ACTIVE_LOW>; |
| 37 | }; | 37 | }; |
| 38 | red-r_hdd { | 38 | red-r_hdd { |
| 39 | label = "dns325:red:r_hdd"; | 39 | label = "dns325:red:r_hdd"; |
| 40 | gpios = <&gpio0 27 1>; /* GPIO 27 Active Low */ | 40 | gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; |
| 41 | }; | 41 | }; |
| 42 | red-usb { | 42 | red-usb { |
| 43 | label = "dns325:red:usb"; | 43 | label = "dns325:red:usb"; |
| 44 | gpios = <&gpio0 29 1>; /* GPIO 29 Active Low */ | 44 | gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; |
| 45 | }; | 45 | }; |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
diff --git a/arch/arm/boot/dts/kirkwood-dnskw.dtsi b/arch/arm/boot/dts/kirkwood-dnskw.dtsi index aefa375a550d..12087566ac6d 100644 --- a/arch/arm/boot/dts/kirkwood-dnskw.dtsi +++ b/arch/arm/boot/dts/kirkwood-dnskw.dtsi | |||
| @@ -15,18 +15,18 @@ | |||
| 15 | 15 | ||
| 16 | button@1 { | 16 | button@1 { |
| 17 | label = "Power button"; | 17 | label = "Power button"; |
| 18 | linux,code = <116>; | 18 | linux,code = <KEY_POWER>; |
| 19 | gpios = <&gpio1 2 1>; | 19 | gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; |
| 20 | }; | 20 | }; |
| 21 | button@2 { | 21 | button@2 { |
| 22 | label = "USB unmount button"; | 22 | label = "USB unmount button"; |
| 23 | linux,code = <161>; | 23 | linux,code = <KEY_EJECTCD>; |
| 24 | gpios = <&gpio1 15 1>; | 24 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 25 | }; | 25 | }; |
| 26 | button@3 { | 26 | button@3 { |
| 27 | label = "Reset button"; | 27 | label = "Reset button"; |
| 28 | linux,code = <0x198>; | 28 | linux,code = <KEY_RESTART>; |
| 29 | gpios = <&gpio1 16 1>; | 29 | gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; |
| 30 | }; | 30 | }; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| @@ -35,8 +35,8 @@ | |||
| 35 | compatible = "gpio-fan"; | 35 | compatible = "gpio-fan"; |
| 36 | pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>; | 36 | pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>; |
| 37 | pinctrl-names = "default"; | 37 | pinctrl-names = "default"; |
| 38 | gpios = <&gpio1 14 1 | 38 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW |
| 39 | &gpio1 13 1>; | 39 | &gpio1 13 GPIO_ACTIVE_LOW>; |
| 40 | gpio-fan,speed-map = <0 0 | 40 | gpio-fan,speed-map = <0 0 |
| 41 | 3000 1 | 41 | 3000 1 |
| 42 | 6000 2>; | 42 | 6000 2>; |
| @@ -46,7 +46,7 @@ | |||
| 46 | compatible = "gpio-poweroff"; | 46 | compatible = "gpio-poweroff"; |
| 47 | pinctrl-0 = <&pmx_power_off>; | 47 | pinctrl-0 = <&pmx_power_off>; |
| 48 | pinctrl-names = "default"; | 48 | pinctrl-names = "default"; |
| 49 | gpios = <&gpio1 4 0>; | 49 | gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | ocp@f1000000 { | 52 | ocp@f1000000 { |
diff --git a/arch/arm/boot/dts/kirkwood-dockstar.dts b/arch/arm/boot/dts/kirkwood-dockstar.dts index 33ff368fbfa5..2a41c75c5c21 100644 --- a/arch/arm/boot/dts/kirkwood-dockstar.dts +++ b/arch/arm/boot/dts/kirkwood-dockstar.dts | |||
| @@ -42,12 +42,12 @@ | |||
| 42 | 42 | ||
| 43 | health { | 43 | health { |
| 44 | label = "status:green:health"; | 44 | label = "status:green:health"; |
| 45 | gpios = <&gpio1 14 1>; | 45 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 46 | linux,default-trigger = "default-on"; | 46 | default-state = "keep"; |
| 47 | }; | 47 | }; |
| 48 | fault { | 48 | fault { |
| 49 | label = "status:orange:fault"; | 49 | label = "status:orange:fault"; |
| 50 | gpios = <&gpio1 15 1>; | 50 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 51 | }; | 51 | }; |
| 52 | }; | 52 | }; |
| 53 | regulators { | 53 | regulators { |
diff --git a/arch/arm/boot/dts/kirkwood-dreamplug.dts b/arch/arm/boot/dts/kirkwood-dreamplug.dts index 6f62af99c9cb..a7558375e06f 100644 --- a/arch/arm/boot/dts/kirkwood-dreamplug.dts +++ b/arch/arm/boot/dts/kirkwood-dreamplug.dts | |||
| @@ -87,15 +87,15 @@ | |||
| 87 | 87 | ||
| 88 | bluetooth { | 88 | bluetooth { |
| 89 | label = "dreamplug:blue:bluetooth"; | 89 | label = "dreamplug:blue:bluetooth"; |
| 90 | gpios = <&gpio1 15 1>; | 90 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 91 | }; | 91 | }; |
| 92 | wifi { | 92 | wifi { |
| 93 | label = "dreamplug:green:wifi"; | 93 | label = "dreamplug:green:wifi"; |
| 94 | gpios = <&gpio1 16 1>; | 94 | gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; |
| 95 | }; | 95 | }; |
| 96 | wifi-ap { | 96 | wifi-ap { |
| 97 | label = "dreamplug:green:wifi_ap"; | 97 | label = "dreamplug:green:wifi_ap"; |
| 98 | gpios = <&gpio1 17 1>; | 98 | gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; |
| 99 | }; | 99 | }; |
| 100 | }; | 100 | }; |
| 101 | }; | 101 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-goflexnet.dts b/arch/arm/boot/dts/kirkwood-goflexnet.dts index a43bebb25110..c2e512953570 100644 --- a/arch/arm/boot/dts/kirkwood-goflexnet.dts +++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts | |||
| @@ -85,44 +85,44 @@ | |||
| 85 | 85 | ||
| 86 | health { | 86 | health { |
| 87 | label = "status:green:health"; | 87 | label = "status:green:health"; |
| 88 | gpios = <&gpio1 14 1>; | 88 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 89 | linux,default-trigger = "default-on"; | 89 | default-state = "keep"; |
| 90 | }; | 90 | }; |
| 91 | fault { | 91 | fault { |
| 92 | label = "status:orange:fault"; | 92 | label = "status:orange:fault"; |
| 93 | gpios = <&gpio1 15 1>; | 93 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 94 | }; | 94 | }; |
| 95 | left0 { | 95 | left0 { |
| 96 | label = "status:white:left0"; | 96 | label = "status:white:left0"; |
| 97 | gpios = <&gpio1 10 0>; | 97 | gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; |
| 98 | }; | 98 | }; |
| 99 | left1 { | 99 | left1 { |
| 100 | label = "status:white:left1"; | 100 | label = "status:white:left1"; |
| 101 | gpios = <&gpio1 11 0>; | 101 | gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; |
| 102 | }; | 102 | }; |
| 103 | left2 { | 103 | left2 { |
| 104 | label = "status:white:left2"; | 104 | label = "status:white:left2"; |
| 105 | gpios = <&gpio1 12 0>; | 105 | gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; |
| 106 | }; | 106 | }; |
| 107 | left3 { | 107 | left3 { |
| 108 | label = "status:white:left3"; | 108 | label = "status:white:left3"; |
| 109 | gpios = <&gpio1 13 0>; | 109 | gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; |
| 110 | }; | 110 | }; |
| 111 | right0 { | 111 | right0 { |
| 112 | label = "status:white:right0"; | 112 | label = "status:white:right0"; |
| 113 | gpios = <&gpio1 6 0>; | 113 | gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; |
| 114 | }; | 114 | }; |
| 115 | right1 { | 115 | right1 { |
| 116 | label = "status:white:right1"; | 116 | label = "status:white:right1"; |
| 117 | gpios = <&gpio1 7 0>; | 117 | gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; |
| 118 | }; | 118 | }; |
| 119 | right2 { | 119 | right2 { |
| 120 | label = "status:white:right2"; | 120 | label = "status:white:right2"; |
| 121 | gpios = <&gpio1 8 0>; | 121 | gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; |
| 122 | }; | 122 | }; |
| 123 | right3 { | 123 | right3 { |
| 124 | label = "status:white:right3"; | 124 | label = "status:white:right3"; |
| 125 | gpios = <&gpio1 9 0>; | 125 | gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; |
| 126 | }; | 126 | }; |
| 127 | }; | 127 | }; |
| 128 | regulators { | 128 | regulators { |
| @@ -141,7 +141,7 @@ | |||
| 141 | enable-active-high; | 141 | enable-active-high; |
| 142 | regulator-always-on; | 142 | regulator-always-on; |
| 143 | regulator-boot-on; | 143 | regulator-boot-on; |
| 144 | gpio = <&gpio0 29 0>; | 144 | gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>; |
| 145 | }; | 145 | }; |
| 146 | }; | 146 | }; |
| 147 | }; | 147 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts b/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts index d30a91a5047d..0b557d5cb723 100644 --- a/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts +++ b/arch/arm/boot/dts/kirkwood-guruplug-server-plus.dts | |||
| @@ -45,10 +45,10 @@ | |||
| 45 | nr-ports = <1>; | 45 | nr-ports = <1>; |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | /* AzureWave AW-GH381 WiFi/BT */ | ||
| 48 | mvsdio@90000 { | 49 | mvsdio@90000 { |
| 49 | status = "okay"; | 50 | status = "okay"; |
| 50 | /* No CD or WP GPIOs */ | 51 | non-removable; |
| 51 | broken-cd; | ||
| 52 | }; | 52 | }; |
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| @@ -60,19 +60,19 @@ | |||
| 60 | 60 | ||
| 61 | health-r { | 61 | health-r { |
| 62 | label = "guruplug:red:health"; | 62 | label = "guruplug:red:health"; |
| 63 | gpios = <&gpio1 14 1>; | 63 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 64 | }; | 64 | }; |
| 65 | health-g { | 65 | health-g { |
| 66 | label = "guruplug:green:health"; | 66 | label = "guruplug:green:health"; |
| 67 | gpios = <&gpio1 15 1>; | 67 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 68 | }; | 68 | }; |
| 69 | wmode-r { | 69 | wmode-r { |
| 70 | label = "guruplug:red:wmode"; | 70 | label = "guruplug:red:wmode"; |
| 71 | gpios = <&gpio1 16 1>; | 71 | gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; |
| 72 | }; | 72 | }; |
| 73 | wmode-g { | 73 | wmode-g { |
| 74 | label = "guruplug:green:wmode"; | 74 | label = "guruplug:green:wmode"; |
| 75 | gpios = <&gpio1 17 1>; | 75 | gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; |
| 76 | }; | 76 | }; |
| 77 | }; | 77 | }; |
| 78 | }; | 78 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-ib62x0.dts b/arch/arm/boot/dts/kirkwood-ib62x0.dts index c5fb02f7ebc3..6ccc78866e6d 100644 --- a/arch/arm/boot/dts/kirkwood-ib62x0.dts +++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts | |||
| @@ -63,13 +63,13 @@ | |||
| 63 | 63 | ||
| 64 | button@1 { | 64 | button@1 { |
| 65 | label = "USB Copy"; | 65 | label = "USB Copy"; |
| 66 | linux,code = <133>; | 66 | linux,code = <KEY_COPY>; |
| 67 | gpios = <&gpio0 29 1>; | 67 | gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; |
| 68 | }; | 68 | }; |
| 69 | button@2 { | 69 | button@2 { |
| 70 | label = "Reset"; | 70 | label = "Reset"; |
| 71 | linux,code = <0x198>; | 71 | linux,code = <KEY_RESTART>; |
| 72 | gpios = <&gpio0 28 1>; | 72 | gpios = <&gpio0 28 GPIO_ACTIVE_LOW>; |
| 73 | }; | 73 | }; |
| 74 | }; | 74 | }; |
| 75 | 75 | ||
| @@ -81,16 +81,16 @@ | |||
| 81 | 81 | ||
| 82 | green-os { | 82 | green-os { |
| 83 | label = "ib62x0:green:os"; | 83 | label = "ib62x0:green:os"; |
| 84 | gpios = <&gpio0 25 0>; | 84 | gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>; |
| 85 | linux,default-trigger = "default-on"; | 85 | default-state = "keep"; |
| 86 | }; | 86 | }; |
| 87 | red-os { | 87 | red-os { |
| 88 | label = "ib62x0:red:os"; | 88 | label = "ib62x0:red:os"; |
| 89 | gpios = <&gpio0 22 0>; | 89 | gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; |
| 90 | }; | 90 | }; |
| 91 | usb-copy { | 91 | usb-copy { |
| 92 | label = "ib62x0:red:usb_copy"; | 92 | label = "ib62x0:red:usb_copy"; |
| 93 | gpios = <&gpio0 27 0>; | 93 | gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; |
| 94 | }; | 94 | }; |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| @@ -98,7 +98,7 @@ | |||
| 98 | compatible = "gpio-poweroff"; | 98 | compatible = "gpio-poweroff"; |
| 99 | pinctrl-0 = <&pmx_power_off>; | 99 | pinctrl-0 = <&pmx_power_off>; |
| 100 | pinctrl-names = "default"; | 100 | pinctrl-names = "default"; |
| 101 | gpios = <&gpio0 24 0>; | 101 | gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; |
| 102 | }; | 102 | }; |
| 103 | }; | 103 | }; |
| 104 | 104 | ||
diff --git a/arch/arm/boot/dts/kirkwood-iconnect.dts b/arch/arm/boot/dts/kirkwood-iconnect.dts index 4a62b206f680..f7636291de77 100644 --- a/arch/arm/boot/dts/kirkwood-iconnect.dts +++ b/arch/arm/boot/dts/kirkwood-iconnect.dts | |||
| @@ -94,37 +94,37 @@ | |||
| 94 | 94 | ||
| 95 | led-level { | 95 | led-level { |
| 96 | label = "led_level"; | 96 | label = "led_level"; |
| 97 | gpios = <&gpio1 9 0>; | 97 | gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; |
| 98 | linux,default-trigger = "default-on"; | 98 | default-state = "on"; |
| 99 | }; | 99 | }; |
| 100 | power-blue { | 100 | power-blue { |
| 101 | label = "power:blue"; | 101 | label = "power:blue"; |
| 102 | gpios = <&gpio1 10 0>; | 102 | gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; |
| 103 | linux,default-trigger = "timer"; | 103 | default-state = "keep"; |
| 104 | }; | 104 | }; |
| 105 | power-red { | 105 | power-red { |
| 106 | label = "power:red"; | 106 | label = "power:red"; |
| 107 | gpios = <&gpio1 11 0>; | 107 | gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; |
| 108 | }; | 108 | }; |
| 109 | usb1 { | 109 | usb1 { |
| 110 | label = "usb1:blue"; | 110 | label = "usb1:blue"; |
| 111 | gpios = <&gpio1 12 0>; | 111 | gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; |
| 112 | }; | 112 | }; |
| 113 | usb2 { | 113 | usb2 { |
| 114 | label = "usb2:blue"; | 114 | label = "usb2:blue"; |
| 115 | gpios = <&gpio1 13 0>; | 115 | gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; |
| 116 | }; | 116 | }; |
| 117 | usb3 { | 117 | usb3 { |
| 118 | label = "usb3:blue"; | 118 | label = "usb3:blue"; |
| 119 | gpios = <&gpio1 14 0>; | 119 | gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; |
| 120 | }; | 120 | }; |
| 121 | usb4 { | 121 | usb4 { |
| 122 | label = "usb4:blue"; | 122 | label = "usb4:blue"; |
| 123 | gpios = <&gpio1 15 0>; | 123 | gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>; |
| 124 | }; | 124 | }; |
| 125 | otb { | 125 | otb { |
| 126 | label = "otb:blue"; | 126 | label = "otb:blue"; |
| 127 | gpios = <&gpio1 16 0>; | 127 | gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; |
| 128 | }; | 128 | }; |
| 129 | }; | 129 | }; |
| 130 | 130 | ||
| @@ -137,14 +137,14 @@ | |||
| 137 | 137 | ||
| 138 | button@1 { | 138 | button@1 { |
| 139 | label = "OTB Button"; | 139 | label = "OTB Button"; |
| 140 | linux,code = <133>; | 140 | linux,code = <KEY_COPY>; |
| 141 | gpios = <&gpio1 3 1>; | 141 | gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; |
| 142 | debounce-interval = <100>; | 142 | debounce-interval = <100>; |
| 143 | }; | 143 | }; |
| 144 | button@2 { | 144 | button@2 { |
| 145 | label = "Reset"; | 145 | label = "Reset"; |
| 146 | linux,code = <0x198>; | 146 | linux,code = <KEY_RESTART>; |
| 147 | gpios = <&gpio0 12 1>; | 147 | gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; |
| 148 | debounce-interval = <100>; | 148 | debounce-interval = <100>; |
| 149 | }; | 149 | }; |
| 150 | }; | 150 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts index d15395d671ed..589000631b5a 100644 --- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts +++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts | |||
| @@ -127,20 +127,20 @@ | |||
| 127 | 127 | ||
| 128 | power_led { | 128 | power_led { |
| 129 | label = "status:white:power_led"; | 129 | label = "status:white:power_led"; |
| 130 | gpios = <&gpio0 16 0>; | 130 | gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; |
| 131 | linux,default-trigger = "default-on"; | 131 | default-state = "keep"; |
| 132 | }; | 132 | }; |
| 133 | rebuild_led { | 133 | rebuild_led { |
| 134 | label = "status:white:rebuild_led"; | 134 | label = "status:white:rebuild_led"; |
| 135 | gpios = <&gpio1 4 0>; | 135 | gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; |
| 136 | }; | 136 | }; |
| 137 | health_led { | 137 | health_led { |
| 138 | label = "status:red:health_led"; | 138 | label = "status:red:health_led"; |
| 139 | gpios = <&gpio1 5 0>; | 139 | gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; |
| 140 | }; | 140 | }; |
| 141 | backup_led { | 141 | backup_led { |
| 142 | label = "status:blue:backup_led"; | 142 | label = "status:blue:backup_led"; |
| 143 | gpios = <&gpio0 15 0>; | 143 | gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; |
| 144 | }; | 144 | }; |
| 145 | }; | 145 | }; |
| 146 | gpio-keys { | 146 | gpio-keys { |
| @@ -154,18 +154,18 @@ | |||
| 154 | 154 | ||
| 155 | Power { | 155 | Power { |
| 156 | label = "Power Button"; | 156 | label = "Power Button"; |
| 157 | linux,code = <116>; | 157 | linux,code = <KEY_POWER>; |
| 158 | gpios = <&gpio0 14 1>; | 158 | gpios = <&gpio0 14 GPIO_ACTIVE_LOW>; |
| 159 | }; | 159 | }; |
| 160 | Reset { | 160 | Reset { |
| 161 | label = "Reset Button"; | 161 | label = "Reset Button"; |
| 162 | linux,code = <0x198>; | 162 | linux,code = <KEY_RESTART>; |
| 163 | gpios = <&gpio0 12 1>; | 163 | gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; |
| 164 | }; | 164 | }; |
| 165 | OTB { | 165 | OTB { |
| 166 | label = "OTB Button"; | 166 | label = "OTB Button"; |
| 167 | linux,code = <133>; | 167 | linux,code = <KEY_COPY>; |
| 168 | gpios = <&gpio1 3 1>; | 168 | gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; |
| 169 | }; | 169 | }; |
| 170 | }; | 170 | }; |
| 171 | }; | 171 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts index cd44f37e54b5..5b5808ebc6e0 100644 --- a/arch/arm/boot/dts/kirkwood-km_kirkwood.dts +++ b/arch/arm/boot/dts/kirkwood-km_kirkwood.dts | |||
| @@ -38,8 +38,8 @@ | |||
| 38 | 38 | ||
| 39 | i2c@0 { | 39 | i2c@0 { |
| 40 | compatible = "i2c-gpio"; | 40 | compatible = "i2c-gpio"; |
| 41 | gpios = < &gpio0 8 0 /* sda */ | 41 | gpios = < &gpio0 8 GPIO_ACTIVE_HIGH /* sda */ |
| 42 | &gpio0 9 0 >; /* scl */ | 42 | &gpio0 9 GPIO_ACTIVE_HIGH>; /* scl */ |
| 43 | i2c-gpio,delay-us = <2>; /* ~100 kHz */ | 43 | i2c-gpio,delay-us = <2>; /* ~100 kHz */ |
| 44 | }; | 44 | }; |
| 45 | }; | 45 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-laplug.dts b/arch/arm/boot/dts/kirkwood-laplug.dts new file mode 100644 index 000000000000..c9e82eff9bf2 --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-laplug.dts | |||
| @@ -0,0 +1,175 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2013 Maxime Hadjinlian <maxime.hadjinlian@gmail.com> | ||
| 3 | * | ||
| 4 | * This file is licensed under the terms of the GNU General Public | ||
| 5 | * License version 2. This program is licensed "as is" without any | ||
| 6 | * warranty of any kind, whether express or implied. | ||
| 7 | */ | ||
| 8 | |||
| 9 | /dts-v1/; | ||
| 10 | |||
| 11 | #include <dt-bindings/gpio/gpio.h> | ||
| 12 | #include <dt-bindings/input/input.h> | ||
| 13 | #include "kirkwood.dtsi" | ||
| 14 | #include "kirkwood-6192.dtsi" | ||
| 15 | |||
| 16 | / { | ||
| 17 | model = "LaCie LaPlug"; | ||
| 18 | compatible = "lacie,laplug", "marvell,kirkwood-88f6192", "marvell,kirkwood"; | ||
| 19 | |||
| 20 | memory { | ||
| 21 | device_type = "memory"; | ||
| 22 | reg = <0x00000000 0x8000000>; /* 128 MB */ | ||
| 23 | }; | ||
| 24 | |||
| 25 | chosen { | ||
| 26 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | mbus { | ||
| 30 | pcie-controller { | ||
| 31 | status = "okay"; | ||
| 32 | pcie@1,0 { | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | }; | ||
| 37 | |||
| 38 | ocp@f1000000 { | ||
| 39 | serial@12000 { | ||
| 40 | pinctrl-0 = <&pmx_uart0>; | ||
| 41 | pinctrl-names = "default"; | ||
| 42 | status = "okay"; | ||
| 43 | }; | ||
| 44 | |||
| 45 | i2c@11000 { | ||
| 46 | pinctrl-0 = <&pmx_twsi0>; | ||
| 47 | pinctrl-names = "default"; | ||
| 48 | status = "okay"; | ||
| 49 | |||
| 50 | eeprom@50 { | ||
| 51 | compatible = "at,24c04"; | ||
| 52 | pagesize = <16>; | ||
| 53 | reg = <0x50>; | ||
| 54 | }; | ||
| 55 | }; | ||
| 56 | |||
| 57 | pinctrl: pinctrl@10000 { | ||
| 58 | pmx_usb_power_enable: pmx-usb-power-enable { | ||
| 59 | marvell,pins = "mpp14"; | ||
| 60 | marvell,function = "gpio"; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | }; | ||
| 64 | |||
| 65 | gpio_keys { | ||
| 66 | compatible = "gpio-keys"; | ||
| 67 | |||
| 68 | button@1{ | ||
| 69 | label = "Power push button"; | ||
| 70 | linux,code = <KEY_POWER>; | ||
| 71 | gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; | ||
| 72 | }; | ||
| 73 | }; | ||
| 74 | |||
| 75 | gpio-leds { | ||
| 76 | compatible = "gpio-leds"; | ||
| 77 | |||
| 78 | red-fail { | ||
| 79 | label = "laplug_v2:red:power"; | ||
| 80 | gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; | ||
| 81 | }; | ||
| 82 | blue-power { | ||
| 83 | label = "laplug_v2:blue:power"; | ||
| 84 | gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; | ||
| 85 | linux,default-trigger = "default-on"; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | gpio_poweroff { | ||
| 90 | compatible = "gpio-poweroff"; | ||
| 91 | gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; | ||
| 92 | }; | ||
| 93 | |||
| 94 | regulators { | ||
| 95 | compatible = "simple-bus"; | ||
| 96 | #address-cells = <1>; | ||
| 97 | #size-cells = <0>; | ||
| 98 | pinctrl-0 = <&pmx_usb_power_enable>; | ||
| 99 | pinctrl-names = "default"; | ||
| 100 | |||
| 101 | usb_power_back1: regulator@1 { | ||
| 102 | compatible = "regulator-fixed"; | ||
| 103 | reg = <1>; | ||
| 104 | regulator-name = "USB Power Back 1"; | ||
| 105 | regulator-min-microvolt = <5000000>; | ||
| 106 | regulator-max-microvolt = <5000000>; | ||
| 107 | enable-active-high; | ||
| 108 | regulator-always-on; | ||
| 109 | regulator-boot-on; | ||
| 110 | gpio = <&gpio0 15 GPIO_ACTIVE_HIGH>; | ||
| 111 | }; | ||
| 112 | |||
| 113 | usb_power_back2: regulator@2 { | ||
| 114 | compatible = "regulator-fixed"; | ||
| 115 | reg = <2>; | ||
| 116 | regulator-name = "USB Power Back 2"; | ||
| 117 | regulator-min-microvolt = <5000000>; | ||
| 118 | regulator-max-microvolt = <5000000>; | ||
| 119 | enable-active-high; | ||
| 120 | regulator-always-on; | ||
| 121 | regulator-boot-on; | ||
| 122 | gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>; | ||
| 123 | }; | ||
| 124 | |||
| 125 | usb_power_front: regulator@3 { | ||
| 126 | compatible = "regulator-fixed"; | ||
| 127 | reg = <3>; | ||
| 128 | regulator-name = "USB Power Front"; | ||
| 129 | regulator-min-microvolt = <5000000>; | ||
| 130 | regulator-max-microvolt = <5000000>; | ||
| 131 | enable-active-high; | ||
| 132 | regulator-always-on; | ||
| 133 | regulator-boot-on; | ||
| 134 | gpio = <&gpio1 3 GPIO_ACTIVE_HIGH>; | ||
| 135 | }; | ||
| 136 | }; | ||
| 137 | }; | ||
| 138 | |||
| 139 | &nand { | ||
| 140 | /* Total size : 512MB */ | ||
| 141 | status = "okay"; | ||
| 142 | pinctrl-0 = <&pmx_nand>; | ||
| 143 | |||
| 144 | partition@0 { | ||
| 145 | label = "u-boot"; | ||
| 146 | reg = <0x0 0x100000>; /* 1MB */ | ||
| 147 | read-only; | ||
| 148 | }; | ||
| 149 | |||
| 150 | partition@100000 { | ||
| 151 | label = "uImage"; | ||
| 152 | reg = <0x100000 0x1000000>; /* 16MB */ | ||
| 153 | }; | ||
| 154 | |||
| 155 | partition@1100000 { | ||
| 156 | label = "rootfs"; | ||
| 157 | reg = <0x1100000 0x1EF00000>; /* 495MB */ | ||
| 158 | }; | ||
| 159 | }; | ||
| 160 | |||
| 161 | &mdio { | ||
| 162 | status = "okay"; | ||
| 163 | |||
| 164 | ethphy0: ethernet-phy@0 { | ||
| 165 | device_type = "ethernet-phy"; | ||
| 166 | reg = <0>; | ||
| 167 | }; | ||
| 168 | }; | ||
| 169 | |||
| 170 | ð0 { | ||
| 171 | status = "okay"; | ||
| 172 | ethernet0-port@0 { | ||
| 173 | phy-handle = <ðphy0>; | ||
| 174 | }; | ||
| 175 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-lsxl.dtsi b/arch/arm/boot/dts/kirkwood-lsxl.dtsi index 4e8f9e42c592..fc1cd3b7b968 100644 --- a/arch/arm/boot/dts/kirkwood-lsxl.dtsi +++ b/arch/arm/boot/dts/kirkwood-lsxl.dtsi | |||
| @@ -108,20 +108,20 @@ | |||
| 108 | 108 | ||
| 109 | button@1 { | 109 | button@1 { |
| 110 | label = "Function Button"; | 110 | label = "Function Button"; |
| 111 | linux,code = <357>; | 111 | linux,code = <KEY_OPTION>; |
| 112 | gpios = <&gpio1 9 1>; | 112 | gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; |
| 113 | }; | 113 | }; |
| 114 | button@2 { | 114 | button@2 { |
| 115 | label = "Power-on Switch"; | 115 | label = "Power-on Switch"; |
| 116 | linux,code = <0>; | 116 | linux,code = <KEY_RESERVED>; |
| 117 | linux,input-type = <5>; | 117 | linux,input-type = <5>; |
| 118 | gpios = <&gpio1 10 1>; | 118 | gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; |
| 119 | }; | 119 | }; |
| 120 | button@3 { | 120 | button@3 { |
| 121 | label = "Power-auto Switch"; | 121 | label = "Power-auto Switch"; |
| 122 | linux,code = <1>; | 122 | linux,code = <KEY_ESC>; |
| 123 | linux,input-type = <5>; | 123 | linux,input-type = <5>; |
| 124 | gpios = <&gpio1 11 1>; | 124 | gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; |
| 125 | }; | 125 | }; |
| 126 | }; | 126 | }; |
| 127 | 127 | ||
| @@ -134,28 +134,28 @@ | |||
| 134 | 134 | ||
| 135 | led@1 { | 135 | led@1 { |
| 136 | label = "lsxl:blue:func"; | 136 | label = "lsxl:blue:func"; |
| 137 | gpios = <&gpio1 4 1>; | 137 | gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; |
| 138 | }; | 138 | }; |
| 139 | 139 | ||
| 140 | led@2 { | 140 | led@2 { |
| 141 | label = "lsxl:red:alarm"; | 141 | label = "lsxl:red:alarm"; |
| 142 | gpios = <&gpio1 5 1>; | 142 | gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; |
| 143 | }; | 143 | }; |
| 144 | 144 | ||
| 145 | led@3 { | 145 | led@3 { |
| 146 | label = "lsxl:amber:info"; | 146 | label = "lsxl:amber:info"; |
| 147 | gpios = <&gpio1 6 1>; | 147 | gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; |
| 148 | }; | 148 | }; |
| 149 | 149 | ||
| 150 | led@4 { | 150 | led@4 { |
| 151 | label = "lsxl:blue:power"; | 151 | label = "lsxl:blue:power"; |
| 152 | gpios = <&gpio1 7 1>; | 152 | gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; |
| 153 | linux,default-trigger = "default-on"; | 153 | default-state = "keep"; |
| 154 | }; | 154 | }; |
| 155 | 155 | ||
| 156 | led@5 { | 156 | led@5 { |
| 157 | label = "lsxl:red:func"; | 157 | label = "lsxl:red:func"; |
| 158 | gpios = <&gpio1 16 1>; | 158 | gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; |
| 159 | }; | 159 | }; |
| 160 | }; | 160 | }; |
| 161 | 161 | ||
| @@ -163,13 +163,13 @@ | |||
| 163 | compatible = "gpio-fan"; | 163 | compatible = "gpio-fan"; |
| 164 | pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>; | 164 | pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>; |
| 165 | pinctrl-names = "default"; | 165 | pinctrl-names = "default"; |
| 166 | gpios = <&gpio0 19 1 | 166 | gpios = <&gpio0 19 GPIO_ACTIVE_LOW |
| 167 | &gpio0 18 1>; | 167 | &gpio0 18 GPIO_ACTIVE_LOW>; |
| 168 | gpio-fan,speed-map = <0 3 | 168 | gpio-fan,speed-map = <0 3 |
| 169 | 1500 2 | 169 | 1500 2 |
| 170 | 3250 1 | 170 | 3250 1 |
| 171 | 5000 0>; | 171 | 5000 0>; |
| 172 | alarm-gpios = <&gpio1 8 0>; | 172 | alarm-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; |
| 173 | }; | 173 | }; |
| 174 | 174 | ||
| 175 | restart_poweroff { | 175 | restart_poweroff { |
diff --git a/arch/arm/boot/dts/kirkwood-mplcec4.dts b/arch/arm/boot/dts/kirkwood-mplcec4.dts index 6c1ec2786e6e..c20607cd7d7c 100644 --- a/arch/arm/boot/dts/kirkwood-mplcec4.dts +++ b/arch/arm/boot/dts/kirkwood-mplcec4.dts | |||
| @@ -110,7 +110,7 @@ | |||
| 110 | pinctrl-0 = <&pmx_sdio &pmx_sdio_cd>; | 110 | pinctrl-0 = <&pmx_sdio &pmx_sdio_cd>; |
| 111 | pinctrl-names = "default"; | 111 | pinctrl-names = "default"; |
| 112 | status = "okay"; | 112 | status = "okay"; |
| 113 | cd-gpios = <&gpio1 15 1>; | 113 | cd-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 114 | /* No WP GPIO */ | 114 | /* No WP GPIO */ |
| 115 | }; | 115 | }; |
| 116 | }; | 116 | }; |
| @@ -126,36 +126,36 @@ | |||
| 126 | 126 | ||
| 127 | health { | 127 | health { |
| 128 | label = "status:green:health"; | 128 | label = "status:green:health"; |
| 129 | gpios = <&gpio0 7 1>; | 129 | gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; |
| 130 | }; | 130 | }; |
| 131 | 131 | ||
| 132 | user1o { | 132 | user1o { |
| 133 | label = "user1:orange"; | 133 | label = "user1:orange"; |
| 134 | gpios = <&gpio1 8 1>; | 134 | gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; |
| 135 | default-state = "on"; | 135 | default-state = "on"; |
| 136 | }; | 136 | }; |
| 137 | 137 | ||
| 138 | user1g { | 138 | user1g { |
| 139 | label = "user1:green"; | 139 | label = "user1:green"; |
| 140 | gpios = <&gpio1 9 1>; | 140 | gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; |
| 141 | default-state = "on"; | 141 | default-state = "on"; |
| 142 | }; | 142 | }; |
| 143 | 143 | ||
| 144 | user0o { | 144 | user0o { |
| 145 | label = "user0:orange"; | 145 | label = "user0:orange"; |
| 146 | gpios = <&gpio1 12 1>; | 146 | gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; |
| 147 | default-state = "on"; | 147 | default-state = "on"; |
| 148 | }; | 148 | }; |
| 149 | 149 | ||
| 150 | user0g { | 150 | user0g { |
| 151 | label = "user0:green"; | 151 | label = "user0:green"; |
| 152 | gpios = <&gpio1 13 1>; | 152 | gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; |
| 153 | default-state = "on"; | 153 | default-state = "on"; |
| 154 | }; | 154 | }; |
| 155 | 155 | ||
| 156 | misc { | 156 | misc { |
| 157 | label = "status:orange:misc"; | 157 | label = "status:orange:misc"; |
| 158 | gpios = <&gpio1 14 1>; | 158 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 159 | default-state = "on"; | 159 | default-state = "on"; |
| 160 | }; | 160 | }; |
| 161 | 161 | ||
diff --git a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts index 6317e1d088b3..dc86429756d7 100644 --- a/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts +++ b/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts | |||
| @@ -90,17 +90,17 @@ | |||
| 90 | 90 | ||
| 91 | green-status { | 91 | green-status { |
| 92 | label = "gtw:green:Status"; | 92 | label = "gtw:green:Status"; |
| 93 | gpios = <&gpio0 20 0>; | 93 | gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; |
| 94 | }; | 94 | }; |
| 95 | 95 | ||
| 96 | red-status { | 96 | red-status { |
| 97 | label = "gtw:red:Status"; | 97 | label = "gtw:red:Status"; |
| 98 | gpios = <&gpio0 21 0>; | 98 | gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>; |
| 99 | }; | 99 | }; |
| 100 | 100 | ||
| 101 | green-usb { | 101 | green-usb { |
| 102 | label = "gtw:green:USB"; | 102 | label = "gtw:green:USB"; |
| 103 | gpios = <&gpio0 12 0>; | 103 | gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; |
| 104 | }; | 104 | }; |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| @@ -113,13 +113,13 @@ | |||
| 113 | 113 | ||
| 114 | button@1 { | 114 | button@1 { |
| 115 | label = "SWR Button"; | 115 | label = "SWR Button"; |
| 116 | linux,code = <0x198>; /* KEY_RESTART */ | 116 | linux,code = <KEY_RESTART>; |
| 117 | gpios = <&gpio1 15 1>; | 117 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 118 | }; | 118 | }; |
| 119 | button@2 { | 119 | button@2 { |
| 120 | label = "WPS Button"; | 120 | label = "WPS Button"; |
| 121 | linux,code = <0x211>; /* KEY_WPS_BUTTON */ | 121 | linux,code = <KEY_WPS_BUTTON>; |
| 122 | gpios = <&gpio1 14 1>; | 122 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 123 | }; | 123 | }; |
| 124 | }; | 124 | }; |
| 125 | }; | 125 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts index e6a102cf424c..4d2a8db9ab77 100644 --- a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts +++ b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree file for NETGEAR ReadyNAS Duo v2 | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public License | ||
| 8 | * as published by the Free Software Foundation; either version | ||
| 9 | * 2 of the License, or (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 1 | /dts-v1/; | 12 | /dts-v1/; |
| 2 | 13 | ||
| 3 | #include "kirkwood.dtsi" | 14 | #include "kirkwood.dtsi" |
| @@ -32,41 +43,50 @@ | |||
| 32 | marvell,pins = "mpp47"; | 43 | marvell,pins = "mpp47"; |
| 33 | marvell,function = "gpio"; | 44 | marvell,function = "gpio"; |
| 34 | }; | 45 | }; |
| 46 | |||
| 35 | pmx_button_backup: pmx-button-backup { | 47 | pmx_button_backup: pmx-button-backup { |
| 36 | marvell,pins = "mpp45"; | 48 | marvell,pins = "mpp45"; |
| 37 | marvell,function = "gpio"; | 49 | marvell,function = "gpio"; |
| 38 | }; | 50 | }; |
| 51 | |||
| 39 | pmx_button_reset: pmx-button-reset { | 52 | pmx_button_reset: pmx-button-reset { |
| 40 | marvell,pins = "mpp13"; | 53 | marvell,pins = "mpp13"; |
| 41 | marvell,function = "gpio"; | 54 | marvell,function = "gpio"; |
| 42 | }; | 55 | }; |
| 56 | |||
| 43 | pmx_led_blue_power: pmx-led-blue-power { | 57 | pmx_led_blue_power: pmx-led-blue-power { |
| 44 | marvell,pins = "mpp31"; | 58 | marvell,pins = "mpp31"; |
| 45 | marvell,function = "gpio"; | 59 | marvell,function = "gpio"; |
| 46 | }; | 60 | }; |
| 61 | |||
| 47 | pmx_led_blue_activity: pmx-led-blue-activity { | 62 | pmx_led_blue_activity: pmx-led-blue-activity { |
| 48 | marvell,pins = "mpp38"; | 63 | marvell,pins = "mpp38"; |
| 49 | marvell,function = "gpio"; | 64 | marvell,function = "gpio"; |
| 50 | }; | 65 | }; |
| 66 | |||
| 51 | pmx_led_blue_disk1: pmx-led-blue-disk1 { | 67 | pmx_led_blue_disk1: pmx-led-blue-disk1 { |
| 52 | marvell,pins = "mpp23"; | 68 | marvell,pins = "mpp23"; |
| 53 | marvell,function = "gpio"; | 69 | marvell,function = "gpio"; |
| 54 | }; | 70 | }; |
| 71 | |||
| 55 | pmx_led_blue_disk2: pmx-led-blue-disk2 { | 72 | pmx_led_blue_disk2: pmx-led-blue-disk2 { |
| 56 | marvell,pins = "mpp22"; | 73 | marvell,pins = "mpp22"; |
| 57 | marvell,function = "gpio"; | 74 | marvell,function = "gpio"; |
| 58 | }; | 75 | }; |
| 76 | |||
| 59 | pmx_led_blue_backup: pmx-led-blue-backup { | 77 | pmx_led_blue_backup: pmx-led-blue-backup { |
| 60 | marvell,pins = "mpp29"; | 78 | marvell,pins = "mpp29"; |
| 61 | marvell,function = "gpio"; | 79 | marvell,function = "gpio"; |
| 62 | }; | 80 | }; |
| 81 | |||
| 82 | pmx_poweroff: pmx-poweroff { | ||
| 83 | marvell,pins = "mpp30"; | ||
| 84 | marvell,function = "gpio"; | ||
| 85 | }; | ||
| 63 | }; | 86 | }; |
| 64 | 87 | ||
| 65 | clocks { | 88 | clocks { |
| 66 | #address-cells = <1>; | 89 | g762_clk: g762-oscillator { |
| 67 | #size-cells = <0>; | ||
| 68 | |||
| 69 | g762_clk: fixedclk { | ||
| 70 | compatible = "fixed-clock"; | 90 | compatible = "fixed-clock"; |
| 71 | #clock-cells = <0>; | 91 | #clock-cells = <0>; |
| 72 | clock-frequency = <8192>; | 92 | clock-frequency = <8192>; |
| @@ -112,69 +132,80 @@ | |||
| 112 | 132 | ||
| 113 | power_led { | 133 | power_led { |
| 114 | label = "status:blue:power_led"; | 134 | label = "status:blue:power_led"; |
| 115 | gpios = <&gpio0 31 1>; /* GPIO 31 Active Low */ | 135 | gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; |
| 116 | linux,default-trigger = "default-on"; | 136 | default-state = "keep"; |
| 117 | }; | 137 | }; |
| 138 | |||
| 118 | activity_led { | 139 | activity_led { |
| 119 | label = "status:blue:activity_led"; | 140 | label = "status:blue:activity_led"; |
| 120 | gpios = <&gpio1 6 1>; /* GPIO 38 Active Low */ | 141 | gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; |
| 121 | }; | 142 | }; |
| 143 | |||
| 122 | disk1_led { | 144 | disk1_led { |
| 123 | label = "status:blue:disk1_led"; | 145 | label = "status:blue:disk1_led"; |
| 124 | gpios = <&gpio0 23 1>; /* GPIO 23 Active Low */ | 146 | gpios = <&gpio0 23 GPIO_ACTIVE_LOW>; |
| 125 | }; | 147 | }; |
| 148 | |||
| 126 | disk2_led { | 149 | disk2_led { |
| 127 | label = "status:blue:disk2_led"; | 150 | label = "status:blue:disk2_led"; |
| 128 | gpios = <&gpio0 22 1>; /* GPIO 22 Active Low */ | 151 | gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; |
| 129 | }; | 152 | }; |
| 153 | |||
| 130 | backup_led { | 154 | backup_led { |
| 131 | label = "status:blue:backup_led"; | 155 | label = "status:blue:backup_led"; |
| 132 | gpios = <&gpio0 29 1>; /* GPIO 29 Active Low*/ | 156 | gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; |
| 133 | }; | 157 | }; |
| 134 | }; | 158 | }; |
| 135 | 159 | ||
| 136 | gpio_keys { | 160 | gpio-keys { |
| 137 | compatible = "gpio-keys"; | 161 | compatible = "gpio-keys"; |
| 138 | #address-cells = <1>; | ||
| 139 | #size-cells = <0>; | ||
| 140 | pinctrl-0 = <&pmx_button_power &pmx_button_backup | 162 | pinctrl-0 = <&pmx_button_power &pmx_button_backup |
| 141 | &pmx_button_reset>; | 163 | &pmx_button_reset>; |
| 142 | pinctrl-names = "default"; | 164 | pinctrl-names = "default"; |
| 143 | 165 | ||
| 144 | button@1 { | 166 | power-button { |
| 145 | label = "Power Button"; | 167 | label = "Power Button"; |
| 146 | linux,code = <116>; /* KEY_POWER */ | 168 | linux,code = <KEY_POWER>; |
| 147 | gpios = <&gpio1 15 1>; | 169 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; |
| 148 | }; | 170 | }; |
| 149 | button@2 { | 171 | |
| 172 | reset-button { | ||
| 150 | label = "Reset Button"; | 173 | label = "Reset Button"; |
| 151 | linux,code = <0x198>; /* KEY_RESTART */ | 174 | linux,code = <KEY_RESTART>; |
| 152 | gpios = <&gpio0 13 1>; | 175 | gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; |
| 153 | }; | 176 | }; |
| 154 | button@3 { | 177 | |
| 178 | backup-button { | ||
| 155 | label = "Backup Button"; | 179 | label = "Backup Button"; |
| 156 | linux,code = <133>; /* KEY_COPY */ | 180 | linux,code = <KEY_COPY>; |
| 157 | gpios = <&gpio1 13 1>; | 181 | gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; |
| 158 | }; | 182 | }; |
| 159 | }; | 183 | }; |
| 160 | 184 | ||
| 161 | regulators { | 185 | gpio-poweroff { |
| 162 | compatible = "simple-bus"; | 186 | compatible = "gpio-poweroff"; |
| 163 | #address-cells = <1>; | 187 | pinctrl-0 = <&pmx_poweroff>; |
| 164 | #size-cells = <0>; | 188 | pinctrl-names = "default"; |
| 165 | 189 | gpios = <&gpio0 30 GPIO_ACTIVE_LOW>; | |
| 166 | usb_power: regulator@1 { | 190 | }; |
| 167 | compatible = "regulator-fixed"; | 191 | |
| 168 | reg = <1>; | 192 | regulators { |
| 169 | regulator-name = "USB 3.0 Power"; | 193 | compatible = "simple-bus"; |
| 170 | regulator-min-microvolt = <5000000>; | 194 | #address-cells = <1>; |
| 171 | regulator-max-microvolt = <5000000>; | 195 | #size-cells = <0>; |
| 172 | enable-active-high; | 196 | |
| 173 | regulator-always-on; | 197 | usb3_regulator: usb3-regulator { |
| 174 | regulator-boot-on; | 198 | compatible = "regulator-fixed"; |
| 175 | gpio = <&gpio1 14 0>; | 199 | reg = <1>; |
| 176 | }; | 200 | regulator-name = "USB 3.0 Power"; |
| 177 | }; | 201 | regulator-min-microvolt = <5000000>; |
| 202 | regulator-max-microvolt = <5000000>; | ||
| 203 | enable-active-high; | ||
| 204 | regulator-always-on; | ||
| 205 | regulator-boot-on; | ||
| 206 | gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; | ||
| 207 | }; | ||
| 208 | }; | ||
| 178 | }; | 209 | }; |
| 179 | 210 | ||
| 180 | &nand { | 211 | &nand { |
| @@ -210,7 +241,7 @@ | |||
| 210 | &mdio { | 241 | &mdio { |
| 211 | status = "okay"; | 242 | status = "okay"; |
| 212 | 243 | ||
| 213 | ethphy0: ethernet-phy@0 { | 244 | ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */ |
| 214 | device_type = "ethernet-phy"; | 245 | device_type = "ethernet-phy"; |
| 215 | reg = <0>; | 246 | reg = <0>; |
| 216 | }; | 247 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-netgear_readynas_nv+_v2.dts b/arch/arm/boot/dts/kirkwood-netgear_readynas_nv+_v2.dts new file mode 100644 index 000000000000..7c8a0d9d8d1f --- /dev/null +++ b/arch/arm/boot/dts/kirkwood-netgear_readynas_nv+_v2.dts | |||
| @@ -0,0 +1,268 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree file for NETGEAR ReadyNAS NV+ v2 | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or | ||
| 7 | * modify it under the terms of the GNU General Public License | ||
| 8 | * as published by the Free Software Foundation; either version | ||
| 9 | * 2 of the License, or (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | /dts-v1/; | ||
| 13 | |||
| 14 | #include "kirkwood.dtsi" | ||
| 15 | #include "kirkwood-6282.dtsi" | ||
| 16 | |||
| 17 | / { | ||
| 18 | model = "NETGEAR ReadyNAS NV+ v2"; | ||
| 19 | compatible = "netgear,readynas-nv+-v2", "netgear,readynas", "marvell,kirkwood-88f6282", "marvell,kirkwood"; | ||
| 20 | |||
| 21 | memory { /* 256 MB */ | ||
| 22 | device_type = "memory"; | ||
| 23 | reg = <0x00000000 0x10000000>; | ||
| 24 | }; | ||
| 25 | |||
| 26 | chosen { | ||
| 27 | bootargs = "console=ttyS0,115200n8 earlyprintk"; | ||
| 28 | }; | ||
| 29 | |||
| 30 | mbus { | ||
| 31 | pcie-controller { | ||
| 32 | status = "okay"; | ||
| 33 | |||
| 34 | /* Connected to NEC uPD720200 USB 3.0 controller */ | ||
| 35 | pcie@1,0 { | ||
| 36 | /* Port 0, Lane 0 */ | ||
| 37 | status = "okay"; | ||
| 38 | }; | ||
| 39 | }; | ||
| 40 | }; | ||
| 41 | |||
| 42 | ocp@f1000000 { | ||
| 43 | pinctrl: pinctrl@10000 { | ||
| 44 | pmx_button_power: pmx-button-power { | ||
| 45 | marvell,pins = "mpp47"; | ||
| 46 | marvell,function = "gpio"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | pmx_button_backup: pmx-button-backup { | ||
| 50 | marvell,pins = "mpp45"; | ||
| 51 | marvell,function = "gpio"; | ||
| 52 | }; | ||
| 53 | |||
| 54 | pmx_button_reset: pmx-button-reset { | ||
| 55 | marvell,pins = "mpp13"; | ||
| 56 | marvell,function = "gpio"; | ||
| 57 | }; | ||
| 58 | |||
| 59 | pmx_led_blue_power: pmx-led-blue-power { | ||
| 60 | marvell,pins = "mpp31"; | ||
| 61 | marvell,function = "gpio"; | ||
| 62 | }; | ||
| 63 | |||
| 64 | pmx_led_blue_backup: pmx-led-blue-backup { | ||
| 65 | marvell,pins = "mpp22"; | ||
| 66 | marvell,function = "gpio"; | ||
| 67 | }; | ||
| 68 | |||
| 69 | pmx_led_blue_disk1: pmx-led-blue-disk1 { | ||
| 70 | marvell,pins = "mpp20"; | ||
| 71 | marvell,function = "gpio"; | ||
| 72 | }; | ||
| 73 | |||
| 74 | pmx_led_blue_disk2: pmx-led-blue-disk2 { | ||
| 75 | marvell,pins = "mpp23"; | ||
| 76 | marvell,function = "gpio"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | pmx_led_blue_disk3: pmx-led-blue-disk3 { | ||
| 80 | marvell,pins = "mpp24"; | ||
| 81 | marvell,function = "gpio"; | ||
| 82 | }; | ||
| 83 | |||
| 84 | pmx_led_blue_disk4: pmx-led-blue-disk4 { | ||
| 85 | marvell,pins = "mpp29"; | ||
| 86 | marvell,function = "gpio"; | ||
| 87 | }; | ||
| 88 | |||
| 89 | pmx_poweroff: pmx-poweroff { | ||
| 90 | marvell,pins = "mpp30"; | ||
| 91 | marvell,function = "gpio"; | ||
| 92 | }; | ||
| 93 | }; | ||
| 94 | |||
| 95 | clocks { | ||
| 96 | g762_clk: g762-oscillator { | ||
| 97 | compatible = "fixed-clock"; | ||
| 98 | #clock-cells = <0>; | ||
| 99 | clock-frequency = <8192>; | ||
| 100 | }; | ||
| 101 | }; | ||
| 102 | |||
| 103 | i2c@11000 { | ||
| 104 | status = "okay"; | ||
| 105 | |||
| 106 | rs5c372a: rs5c372a@32 { | ||
| 107 | compatible = "ricoh,rs5c372a"; | ||
| 108 | reg = <0x32>; | ||
| 109 | }; | ||
| 110 | |||
| 111 | g762: g762@3e { | ||
| 112 | compatible = "gmt,g762"; | ||
| 113 | reg = <0x3e>; | ||
| 114 | clocks = <&g762_clk>; /* input clock */ | ||
| 115 | fan_gear_mode = <0>; | ||
| 116 | fan_startv = <1>; | ||
| 117 | pwm_polarity = <0>; | ||
| 118 | }; | ||
| 119 | }; | ||
| 120 | |||
| 121 | serial@12000 { | ||
| 122 | pinctrl-0 = <&pmx_uart0>; | ||
| 123 | pinctrl-names = "default"; | ||
| 124 | status = "okay"; | ||
| 125 | }; | ||
| 126 | |||
| 127 | sata@80000 { /* Connected to Marvell 88SM4140 SATA port multiplier */ | ||
| 128 | status = "okay"; | ||
| 129 | nr-ports = <1>; | ||
| 130 | }; | ||
| 131 | }; | ||
| 132 | |||
| 133 | gpio-leds { | ||
| 134 | compatible = "gpio-leds"; | ||
| 135 | pinctrl-0 = < &pmx_led_blue_power &pmx_led_blue_backup | ||
| 136 | &pmx_led_blue_disk1 &pmx_led_blue_disk2 | ||
| 137 | &pmx_led_blue_disk3 &pmx_led_blue_disk3 >; | ||
| 138 | pinctrl-names = "default"; | ||
| 139 | |||
| 140 | power_led { | ||
| 141 | label = "status:blue:power_led"; | ||
| 142 | gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; | ||
| 143 | linux,default-trigger = "default-on"; | ||
| 144 | }; | ||
| 145 | |||
| 146 | backup_led { | ||
| 147 | label = "status:blue:backup_led"; | ||
| 148 | gpios = <&gpio0 22 GPIO_ACTIVE_LOW>; | ||
| 149 | }; | ||
| 150 | |||
| 151 | disk1_led { | ||
| 152 | label = "status:blue:disk1_led"; | ||
| 153 | gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; | ||
| 154 | }; | ||
| 155 | |||
| 156 | disk2_led { | ||
| 157 | label = "status:blue:disk2_led"; | ||
| 158 | gpios = <&gpio0 23 GPIO_ACTIVE_LOW>; | ||
| 159 | }; | ||
| 160 | |||
| 161 | disk3_led { | ||
| 162 | label = "status:blue:disk3_led"; | ||
| 163 | gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; | ||
| 164 | }; | ||
| 165 | |||
| 166 | disk4_led { | ||
| 167 | label = "status:blue:disk4_led"; | ||
| 168 | gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; | ||
| 169 | }; | ||
| 170 | }; | ||
| 171 | |||
| 172 | gpio-keys { | ||
| 173 | compatible = "gpio-keys"; | ||
| 174 | pinctrl-0 = <&pmx_button_power &pmx_button_backup | ||
| 175 | &pmx_button_reset>; | ||
| 176 | pinctrl-names = "default"; | ||
| 177 | |||
| 178 | power-button { | ||
| 179 | label = "Power Button"; | ||
| 180 | linux,code = <KEY_POWER>; | ||
| 181 | gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; | ||
| 182 | }; | ||
| 183 | |||
| 184 | reset-button { | ||
| 185 | label = "Reset Button"; | ||
| 186 | linux,code = <KEY_RESTART>; | ||
| 187 | gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; | ||
| 188 | }; | ||
| 189 | |||
| 190 | backup-button { | ||
| 191 | label = "Backup Button"; | ||
| 192 | linux,code = <KEY_COPY>; | ||
| 193 | gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; | ||
| 194 | }; | ||
| 195 | }; | ||
| 196 | |||
| 197 | gpio-poweroff { | ||
| 198 | compatible = "gpio-poweroff"; | ||
| 199 | pinctrl-0 = <&pmx_poweroff>; | ||
| 200 | pinctrl-names = "default"; | ||
| 201 | gpios = <&gpio0 30 GPIO_ACTIVE_LOW>; | ||
| 202 | }; | ||
| 203 | |||
| 204 | regulators { | ||
| 205 | compatible = "simple-bus"; | ||
| 206 | #address-cells = <1>; | ||
| 207 | #size-cells = <0>; | ||
| 208 | |||
| 209 | usb3_regulator: usb3-regulator { | ||
| 210 | compatible = "regulator-fixed"; | ||
| 211 | reg = <1>; | ||
| 212 | regulator-name = "USB 3.0 Power"; | ||
| 213 | regulator-min-microvolt = <5000000>; | ||
| 214 | regulator-max-microvolt = <5000000>; | ||
| 215 | enable-active-high; | ||
| 216 | regulator-always-on; | ||
| 217 | regulator-boot-on; | ||
| 218 | gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>; | ||
| 219 | }; | ||
| 220 | }; | ||
| 221 | }; | ||
| 222 | |||
| 223 | &nand { | ||
| 224 | status = "okay"; | ||
| 225 | |||
| 226 | partition@0 { | ||
| 227 | label = "u-boot"; | ||
| 228 | reg = <0x0000000 0x180000>; | ||
| 229 | read-only; | ||
| 230 | }; | ||
| 231 | |||
| 232 | partition@180000 { | ||
| 233 | label = "u-boot-env"; | ||
| 234 | reg = <0x180000 0x20000>; | ||
| 235 | }; | ||
| 236 | |||
| 237 | partition@200000 { | ||
| 238 | label = "uImage"; | ||
| 239 | reg = <0x0200000 0x600000>; | ||
| 240 | }; | ||
| 241 | |||
| 242 | partition@800000 { | ||
| 243 | label = "minirootfs"; | ||
| 244 | reg = <0x0800000 0x1000000>; | ||
| 245 | }; | ||
| 246 | |||
| 247 | partition@1800000 { | ||
| 248 | label = "jffs2"; | ||
| 249 | reg = <0x1800000 0x6800000>; | ||
| 250 | }; | ||
| 251 | }; | ||
| 252 | |||
| 253 | &mdio { | ||
| 254 | status = "okay"; | ||
| 255 | |||
| 256 | ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */ | ||
| 257 | device_type = "ethernet-phy"; | ||
| 258 | reg = <0>; | ||
| 259 | }; | ||
| 260 | }; | ||
| 261 | |||
| 262 | ð0 { | ||
| 263 | status = "okay"; | ||
| 264 | |||
| 265 | ethernet0-port@0 { | ||
| 266 | phy-handle = <ðphy0>; | ||
| 267 | }; | ||
| 268 | }; | ||
diff --git a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi index 2fcb82e20828..ae1ccbe41029 100644 --- a/arch/arm/boot/dts/kirkwood-ns2-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-ns2-common.dtsi | |||
| @@ -64,8 +64,8 @@ | |||
| 64 | 64 | ||
| 65 | button@1 { | 65 | button@1 { |
| 66 | label = "Power push button"; | 66 | label = "Power push button"; |
| 67 | linux,code = <116>; | 67 | linux,code = <KEY_POWER>; |
| 68 | gpios = <&gpio1 0 0>; | 68 | gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; |
| 69 | }; | 69 | }; |
| 70 | }; | 70 | }; |
| 71 | 71 | ||
| @@ -74,13 +74,13 @@ | |||
| 74 | 74 | ||
| 75 | red-fail { | 75 | red-fail { |
| 76 | label = "ns2:red:fail"; | 76 | label = "ns2:red:fail"; |
| 77 | gpios = <&gpio0 12 0>; | 77 | gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; |
| 78 | }; | 78 | }; |
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| 81 | gpio_poweroff { | 81 | gpio_poweroff { |
| 82 | compatible = "gpio-poweroff"; | 82 | compatible = "gpio-poweroff"; |
| 83 | gpios = <&gpio0 31 0>; | 83 | gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>; |
| 84 | }; | 84 | }; |
| 85 | 85 | ||
| 86 | }; | 86 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-ns2lite.dts b/arch/arm/boot/dts/kirkwood-ns2lite.dts index 279607093cdb..1f2ca60d8b3d 100644 --- a/arch/arm/boot/dts/kirkwood-ns2lite.dts +++ b/arch/arm/boot/dts/kirkwood-ns2lite.dts | |||
| @@ -25,8 +25,8 @@ | |||
| 25 | 25 | ||
| 26 | blue-sata { | 26 | blue-sata { |
| 27 | label = "ns2:blue:sata"; | 27 | label = "ns2:blue:sata"; |
| 28 | gpios = <&gpio0 30 1>; | 28 | gpios = <&gpio0 30 GPIO_ACTIVE_LOW>; |
| 29 | linux,default-trigger = "default-on"; | 29 | linux,default-trigger = "ide-disk"; |
| 30 | }; | 30 | }; |
| 31 | }; | 31 | }; |
| 32 | }; | 32 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-ns2max.dts b/arch/arm/boot/dts/kirkwood-ns2max.dts index defdc77fb550..72c78d0b1116 100644 --- a/arch/arm/boot/dts/kirkwood-ns2max.dts +++ b/arch/arm/boot/dts/kirkwood-ns2max.dts | |||
| @@ -22,10 +22,10 @@ | |||
| 22 | 22 | ||
| 23 | gpio_fan { | 23 | gpio_fan { |
| 24 | compatible = "gpio-fan"; | 24 | compatible = "gpio-fan"; |
| 25 | gpios = <&gpio0 22 1 | 25 | gpios = <&gpio0 22 GPIO_ACTIVE_LOW |
| 26 | &gpio0 7 1 | 26 | &gpio0 7 GPIO_ACTIVE_LOW |
| 27 | &gpio1 1 1 | 27 | &gpio1 1 GPIO_ACTIVE_LOW |
| 28 | &gpio0 23 1>; | 28 | &gpio0 23 GPIO_ACTIVE_LOW>; |
| 29 | gpio-fan,speed-map = | 29 | gpio-fan,speed-map = |
| 30 | < 0 0 | 30 | < 0 0 |
| 31 | 1500 15 | 31 | 1500 15 |
| @@ -36,7 +36,7 @@ | |||
| 36 | 3300 10 | 36 | 3300 10 |
| 37 | 4300 9 | 37 | 4300 9 |
| 38 | 5500 8>; | 38 | 5500 8>; |
| 39 | alarm-gpios = <&gpio0 25 1>; | 39 | alarm-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | ns2-leds { | 42 | ns2-leds { |
diff --git a/arch/arm/boot/dts/kirkwood-ns2mini.dts b/arch/arm/boot/dts/kirkwood-ns2mini.dts index adbafdd90991..c441bf62c09f 100644 --- a/arch/arm/boot/dts/kirkwood-ns2mini.dts +++ b/arch/arm/boot/dts/kirkwood-ns2mini.dts | |||
| @@ -23,10 +23,10 @@ | |||
| 23 | 23 | ||
| 24 | gpio_fan { | 24 | gpio_fan { |
| 25 | compatible = "gpio-fan"; | 25 | compatible = "gpio-fan"; |
| 26 | gpios = <&gpio0 22 1 | 26 | gpios = <&gpio0 22 GPIO_ACTIVE_LOW |
| 27 | &gpio0 7 1 | 27 | &gpio0 7 GPIO_ACTIVE_LOW |
| 28 | &gpio1 1 1 | 28 | &gpio1 1 GPIO_ACTIVE_LOW |
| 29 | &gpio0 23 1>; | 29 | &gpio0 23 GPIO_ACTIVE_LOW>; |
| 30 | gpio-fan,speed-map = | 30 | gpio-fan,speed-map = |
| 31 | < 0 0 | 31 | < 0 0 |
| 32 | 3000 15 | 32 | 3000 15 |
| @@ -37,7 +37,7 @@ | |||
| 37 | 7140 10 | 37 | 7140 10 |
| 38 | 7980 9 | 38 | 7980 9 |
| 39 | 9200 8>; | 39 | 9200 8>; |
| 40 | alarm-gpios = <&gpio0 25 1>; | 40 | alarm-gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| 43 | ns2-leds { | 43 | ns2-leds { |
diff --git a/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi b/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi index e3f915defd3d..aa78c2d11fe7 100644 --- a/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | compatible = "gpio-poweroff"; | 40 | compatible = "gpio-poweroff"; |
| 41 | pinctrl-0 = <&pmx_pwr_off>; | 41 | pinctrl-0 = <&pmx_pwr_off>; |
| 42 | pinctrl-names = "default"; | 42 | pinctrl-names = "default"; |
| 43 | gpios = <&gpio1 16 0>; | 43 | gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; |
| 44 | }; | 44 | }; |
| 45 | 45 | ||
| 46 | regulators { | 46 | regulators { |
| @@ -58,7 +58,7 @@ | |||
| 58 | regulator-max-microvolt = <5000000>; | 58 | regulator-max-microvolt = <5000000>; |
| 59 | regulator-always-on; | 59 | regulator-always-on; |
| 60 | regulator-boot-on; | 60 | regulator-boot-on; |
| 61 | gpio = <&gpio0 21 0>; | 61 | gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>; |
| 62 | }; | 62 | }; |
| 63 | }; | 63 | }; |
| 64 | }; | 64 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-nsa310.dts b/arch/arm/boot/dts/kirkwood-nsa310.dts index b5418bcaecce..03fa24cf3344 100644 --- a/arch/arm/boot/dts/kirkwood-nsa310.dts +++ b/arch/arm/boot/dts/kirkwood-nsa310.dts | |||
| @@ -119,18 +119,18 @@ | |||
| 119 | 119 | ||
| 120 | button@1 { | 120 | button@1 { |
| 121 | label = "Power Button"; | 121 | label = "Power Button"; |
| 122 | linux,code = <116>; | 122 | linux,code = <KEY_POWER>; |
| 123 | gpios = <&gpio1 14 0>; | 123 | gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; |
| 124 | }; | 124 | }; |
| 125 | button@2 { | 125 | button@2 { |
| 126 | label = "Copy Button"; | 126 | label = "Copy Button"; |
| 127 | linux,code = <133>; | 127 | linux,code = <KEY_COPY>; |
| 128 | gpios = <&gpio1 5 1>; | 128 | gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; |
| 129 | }; | 129 | }; |
| 130 | button@3 { | 130 | button@3 { |
| 131 | label = "Reset Button"; | 131 | label = "Reset Button"; |
| 132 | linux,code = <0x198>; | 132 | linux,code = <KEY_RESTART>; |
| 133 | gpios = <&gpio1 4 1>; | 133 | gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; |
| 134 | }; | 134 | }; |
| 135 | }; | 135 | }; |
| 136 | 136 | ||
| @@ -145,43 +145,43 @@ | |||
| 145 | 145 | ||
| 146 | green-sys { | 146 | green-sys { |
| 147 | label = "nsa310:green:sys"; | 147 | label = "nsa310:green:sys"; |
| 148 | gpios = <&gpio0 28 0>; | 148 | gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; |
| 149 | }; | 149 | }; |
| 150 | red-sys { | 150 | red-sys { |
| 151 | label = "nsa310:red:sys"; | 151 | label = "nsa310:red:sys"; |
| 152 | gpios = <&gpio0 29 0>; | 152 | gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; |
| 153 | }; | 153 | }; |
| 154 | green-hdd { | 154 | green-hdd { |
| 155 | label = "nsa310:green:hdd"; | 155 | label = "nsa310:green:hdd"; |
| 156 | gpios = <&gpio1 9 0>; | 156 | gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; |
| 157 | }; | 157 | }; |
| 158 | red-hdd { | 158 | red-hdd { |
| 159 | label = "nsa310:red:hdd"; | 159 | label = "nsa310:red:hdd"; |
| 160 | gpios = <&gpio1 10 0>; | 160 | gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; |
| 161 | }; | 161 | }; |
| 162 | green-esata { | 162 | green-esata { |
| 163 | label = "nsa310:green:esata"; | 163 | label = "nsa310:green:esata"; |
| 164 | gpios = <&gpio0 12 0>; | 164 | gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; |
| 165 | }; | 165 | }; |
| 166 | red-esata { | 166 | red-esata { |
| 167 | label = "nsa310:red:esata"; | 167 | label = "nsa310:red:esata"; |
| 168 | gpios = <&gpio0 13 0>; | 168 | gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; |
| 169 | }; | 169 | }; |
| 170 | green-usb { | 170 | green-usb { |
| 171 | label = "nsa310:green:usb"; | 171 | label = "nsa310:green:usb"; |
| 172 | gpios = <&gpio0 15 0>; | 172 | gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; |
| 173 | }; | 173 | }; |
| 174 | red-usb { | 174 | red-usb { |
| 175 | label = "nsa310:red:usb"; | 175 | label = "nsa310:red:usb"; |
| 176 | gpios = <&gpio0 16 0>; | 176 | gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; |
| 177 | }; | 177 | }; |
| 178 | green-copy { | 178 | green-copy { |
| 179 | label = "nsa310:green:copy"; | 179 | label = "nsa310:green:copy"; |
| 180 | gpios = <&gpio1 7 0>; | 180 | gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; |
| 181 | }; | 181 | }; |
| 182 | red-copy { | 182 | red-copy { |
| 183 | label = "nsa310:red:copy"; | 183 | label = "nsa310:red:copy"; |
| 184 | gpios = <&gpio1 8 0>; | 184 | gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; |
| 185 | }; | 185 | }; |
| 186 | }; | 186 | }; |
| 187 | }; | 187 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-nsa310a.dts b/arch/arm/boot/dts/kirkwood-nsa310a.dts index ab0212b0e6f5..a5e779452867 100644 --- a/arch/arm/boot/dts/kirkwood-nsa310a.dts +++ b/arch/arm/boot/dts/kirkwood-nsa310a.dts | |||
| @@ -107,18 +107,18 @@ | |||
| 107 | 107 | ||
| 108 | button@1 { | 108 | button@1 { |
| 109 | label = "Power Button"; | 109 | label = "Power Button"; |
| 110 | linux,code = <116>; | 110 | linux,code = <KEY_POWER>; |
| 111 | gpios = <&gpio1 14 0>; | 111 | gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>; |
| 112 | }; | 112 | }; |
| 113 | button@2 { | 113 | button@2 { |
| 114 | label = "Copy Button"; | 114 | label = "Copy Button"; |
| 115 | linux,code = <133>; | 115 | linux,code = <KEY_COPY>; |
| 116 | gpios = <&gpio1 5 1>; | 116 | gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; |
| 117 | }; | 117 | }; |
| 118 | button@3 { | 118 | button@3 { |
| 119 | label = "Reset Button"; | 119 | label = "Reset Button"; |
| 120 | linux,code = <0x198>; | 120 | linux,code = <KEY_RESTART>; |
| 121 | gpios = <&gpio1 4 1>; | 121 | gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; |
| 122 | }; | 122 | }; |
| 123 | }; | 123 | }; |
| 124 | 124 | ||
| @@ -127,39 +127,39 @@ | |||
| 127 | 127 | ||
| 128 | green-sys { | 128 | green-sys { |
| 129 | label = "nsa310:green:sys"; | 129 | label = "nsa310:green:sys"; |
| 130 | gpios = <&gpio0 28 0>; | 130 | gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; |
| 131 | }; | 131 | }; |
| 132 | red-sys { | 132 | red-sys { |
| 133 | label = "nsa310:red:sys"; | 133 | label = "nsa310:red:sys"; |
| 134 | gpios = <&gpio0 29 0>; | 134 | gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; |
| 135 | }; | 135 | }; |
| 136 | green-hdd { | 136 | green-hdd { |
| 137 | label = "nsa310:green:hdd"; | 137 | label = "nsa310:green:hdd"; |
| 138 | gpios = <&gpio1 9 0>; | 138 | gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; |
| 139 | }; | 139 | }; |
| 140 | red-hdd { | 140 | red-hdd { |
| 141 | label = "nsa310:red:hdd"; | 141 | label = "nsa310:red:hdd"; |
| 142 | gpios = <&gpio1 10 0>; | 142 | gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; |
| 143 | }; | 143 | }; |
| 144 | green-esata { | 144 | green-esata { |
| 145 | label = "nsa310:green:esata"; | 145 | label = "nsa310:green:esata"; |
| 146 | gpios = <&gpio0 12 0>; | 146 | gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; |
| 147 | }; | 147 | }; |
| 148 | red-esata { | 148 | red-esata { |
| 149 | label = "nsa310:red:esata"; | 149 | label = "nsa310:red:esata"; |
| 150 | gpios = <&gpio0 13 0>; | 150 | gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; |
| 151 | }; | 151 | }; |
| 152 | green-usb { | 152 | green-usb { |
| 153 | label = "nsa310:green:usb"; | 153 | label = "nsa310:green:usb"; |
| 154 | gpios = <&gpio0 15 0>; | 154 | gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; |
| 155 | }; | 155 | }; |
| 156 | green-copy { | 156 | green-copy { |
| 157 | label = "nsa310:green:copy"; | 157 | label = "nsa310:green:copy"; |
| 158 | gpios = <&gpio1 7 0>; | 158 | gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; |
| 159 | }; | 159 | }; |
| 160 | red-copy { | 160 | red-copy { |
| 161 | label = "nsa310:red:copy"; | 161 | label = "nsa310:red:copy"; |
| 162 | gpios = <&gpio1 8 0>; | 162 | gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; |
| 163 | }; | 163 | }; |
| 164 | }; | 164 | }; |
| 165 | }; | 165 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts index f0e3d213604c..5c6a4f1b4e93 100644 --- a/arch/arm/boot/dts/kirkwood-openblocks_a6.dts +++ b/arch/arm/boot/dts/kirkwood-openblocks_a6.dts | |||
| @@ -101,17 +101,17 @@ | |||
| 101 | 101 | ||
| 102 | led-red { | 102 | led-red { |
| 103 | label = "obsa6:red:stat"; | 103 | label = "obsa6:red:stat"; |
| 104 | gpios = <&gpio1 9 1>; | 104 | gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| 107 | led-green { | 107 | led-green { |
| 108 | label = "obsa6:green:stat"; | 108 | label = "obsa6:green:stat"; |
| 109 | gpios = <&gpio1 10 1>; | 109 | gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; |
| 110 | }; | 110 | }; |
| 111 | 111 | ||
| 112 | led-yellow { | 112 | led-yellow { |
| 113 | label = "obsa6:yellow:stat"; | 113 | label = "obsa6:yellow:stat"; |
| 114 | gpios = <&gpio1 11 1>; | 114 | gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; |
| 115 | }; | 115 | }; |
| 116 | }; | 116 | }; |
| 117 | 117 | ||
| @@ -124,8 +124,8 @@ | |||
| 124 | 124 | ||
| 125 | button@1 { | 125 | button@1 { |
| 126 | label = "Init Button"; | 126 | label = "Init Button"; |
| 127 | linux,code = <116>; | 127 | linux,code = <KEY_POWER>; |
| 128 | gpios = <&gpio1 6 0>; | 128 | gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; |
| 129 | }; | 129 | }; |
| 130 | }; | 130 | }; |
| 131 | }; | 131 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts index 851fb2a60f20..c054ef61cff5 100644 --- a/arch/arm/boot/dts/kirkwood-openblocks_a7.dts +++ b/arch/arm/boot/dts/kirkwood-openblocks_a7.dts | |||
| @@ -126,17 +126,17 @@ | |||
| 126 | 126 | ||
| 127 | led-red { | 127 | led-red { |
| 128 | label = "obsa7:red:stat"; | 128 | label = "obsa7:red:stat"; |
| 129 | gpios = <&gpio1 9 1>; | 129 | gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; |
| 130 | }; | 130 | }; |
| 131 | 131 | ||
| 132 | led-green { | 132 | led-green { |
| 133 | label = "obsa7:green:stat"; | 133 | label = "obsa7:green:stat"; |
| 134 | gpios = <&gpio1 10 1>; | 134 | gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; |
| 135 | }; | 135 | }; |
| 136 | 136 | ||
| 137 | led-yellow { | 137 | led-yellow { |
| 138 | label = "obsa7:yellow:stat"; | 138 | label = "obsa7:yellow:stat"; |
| 139 | gpios = <&gpio1 11 1>; | 139 | gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; |
| 140 | }; | 140 | }; |
| 141 | }; | 141 | }; |
| 142 | 142 | ||
| @@ -149,8 +149,8 @@ | |||
| 149 | 149 | ||
| 150 | button@1 { | 150 | button@1 { |
| 151 | label = "Init Button"; | 151 | label = "Init Button"; |
| 152 | linux,code = <116>; | 152 | linux,code = <KEY_POWER>; |
| 153 | gpios = <&gpio1 6 0>; | 153 | gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>; |
| 154 | }; | 154 | }; |
| 155 | }; | 155 | }; |
| 156 | }; | 156 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi b/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi index 1173d7fb31b2..7b1cd993e891 100644 --- a/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi +++ b/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * kirkwood-sheevaplug-common.dts - Common parts for Sheevaplugs | 2 | * kirkwood-sheevaplug-common.dtsi - Common parts for Sheevaplugs |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com> | 4 | * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com> |
| 5 | * | 5 | * |
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts b/arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts index eac6a21f3b1f..e2b4ea4f9e10 100644 --- a/arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts +++ b/arch/arm/boot/dts/kirkwood-sheevaplug-esata.dts | |||
| @@ -24,8 +24,8 @@ | |||
| 24 | pinctrl-0 = <&pmx_sdio &pmx_sdio_cd &pmx_sdio_wp>; | 24 | pinctrl-0 = <&pmx_sdio &pmx_sdio_cd &pmx_sdio_wp>; |
| 25 | pinctrl-names = "default"; | 25 | pinctrl-names = "default"; |
| 26 | status = "okay"; | 26 | status = "okay"; |
| 27 | cd-gpios = <&gpio1 12 1>; | 27 | cd-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; |
| 28 | wp-gpios = <&gpio1 15 0>; | 28 | wp-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>; |
| 29 | }; | 29 | }; |
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| @@ -36,8 +36,8 @@ | |||
| 36 | 36 | ||
| 37 | health { | 37 | health { |
| 38 | label = "sheevaplug:blue:health"; | 38 | label = "sheevaplug:blue:health"; |
| 39 | gpios = <&gpio1 17 1>; | 39 | gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; |
| 40 | linux,default-trigger = "default-on"; | 40 | default-state = "keep"; |
| 41 | }; | 41 | }; |
| 42 | }; | 42 | }; |
| 43 | }; | 43 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-sheevaplug.dts b/arch/arm/boot/dts/kirkwood-sheevaplug.dts index bb61918313db..82f6abf120fd 100644 --- a/arch/arm/boot/dts/kirkwood-sheevaplug.dts +++ b/arch/arm/boot/dts/kirkwood-sheevaplug.dts | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * kirkwood-sheevaplug-esata.dts - Device tree file for Sheevaplug | 2 | * kirkwood-sheevaplug.dts - Device tree file for Sheevaplug |
| 3 | * | 3 | * |
| 4 | * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com> | 4 | * Copyright (C) 2013 Simon Baatz <gmbnomis@gmail.com> |
| 5 | * | 5 | * |
| @@ -31,13 +31,13 @@ | |||
| 31 | 31 | ||
| 32 | health { | 32 | health { |
| 33 | label = "sheevaplug:blue:health"; | 33 | label = "sheevaplug:blue:health"; |
| 34 | gpios = <&gpio1 17 1>; | 34 | gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; |
| 35 | linux,default-trigger = "default-on"; | 35 | default-state = "keep"; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | misc { | 38 | misc { |
| 39 | label = "sheevaplug:red:misc"; | 39 | label = "sheevaplug:red:misc"; |
| 40 | gpios = <&gpio1 14 1>; | 40 | gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; |
| 41 | }; | 41 | }; |
| 42 | }; | 42 | }; |
| 43 | }; | 43 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-topkick.dts b/arch/arm/boot/dts/kirkwood-topkick.dts index 320da677b984..40d6adf678ca 100644 --- a/arch/arm/boot/dts/kirkwood-topkick.dts +++ b/arch/arm/boot/dts/kirkwood-topkick.dts | |||
| @@ -131,25 +131,25 @@ | |||
| 131 | 131 | ||
| 132 | disk { | 132 | disk { |
| 133 | label = "topkick:yellow:disk"; | 133 | label = "topkick:yellow:disk"; |
| 134 | gpios = <&gpio0 21 1>; | 134 | gpios = <&gpio0 21 GPIO_ACTIVE_LOW>; |
| 135 | linux,default-trigger = "ide-disk"; | 135 | linux,default-trigger = "ide-disk"; |
| 136 | }; | 136 | }; |
| 137 | system2 { | 137 | system2 { |
| 138 | label = "topkick:red:system"; | 138 | label = "topkick:red:system"; |
| 139 | gpios = <&gpio1 5 1>; | 139 | gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; |
| 140 | }; | 140 | }; |
| 141 | system { | 141 | system { |
| 142 | label = "topkick:blue:system"; | 142 | label = "topkick:blue:system"; |
| 143 | gpios = <&gpio1 6 1>; | 143 | gpios = <&gpio1 6 GPIO_ACTIVE_LOW>; |
| 144 | default-state = "on"; | 144 | default-state = "on"; |
| 145 | }; | 145 | }; |
| 146 | wifi { | 146 | wifi { |
| 147 | label = "topkick:green:wifi"; | 147 | label = "topkick:green:wifi"; |
| 148 | gpios = <&gpio1 7 1>; | 148 | gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; |
| 149 | }; | 149 | }; |
| 150 | wifi2 { | 150 | wifi2 { |
| 151 | label = "topkick:yellow:wifi"; | 151 | label = "topkick:yellow:wifi"; |
| 152 | gpios = <&gpio1 16 1>; | 152 | gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; |
| 153 | }; | 153 | }; |
| 154 | }; | 154 | }; |
| 155 | regulators { | 155 | regulators { |
diff --git a/arch/arm/boot/dts/kirkwood-ts219-6281.dts b/arch/arm/boot/dts/kirkwood-ts219-6281.dts index f755bc1dc604..c17ae45e19be 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6281.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6281.dts | |||
| @@ -41,13 +41,13 @@ | |||
| 41 | 41 | ||
| 42 | button@1 { | 42 | button@1 { |
| 43 | label = "USB Copy"; | 43 | label = "USB Copy"; |
| 44 | linux,code = <133>; | 44 | linux,code = <KEY_COPY>; |
| 45 | gpios = <&gpio0 15 1>; | 45 | gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; |
| 46 | }; | 46 | }; |
| 47 | button@2 { | 47 | button@2 { |
| 48 | label = "Reset"; | 48 | label = "Reset"; |
| 49 | linux,code = <0x198>; | 49 | linux,code = <KEY_RESTART>; |
| 50 | gpios = <&gpio0 16 1>; | 50 | gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; |
| 51 | }; | 51 | }; |
| 52 | }; | 52 | }; |
| 53 | }; | 53 | }; |
diff --git a/arch/arm/boot/dts/kirkwood-ts219-6282.dts b/arch/arm/boot/dts/kirkwood-ts219-6282.dts index 345562f75891..0713d072758a 100644 --- a/arch/arm/boot/dts/kirkwood-ts219-6282.dts +++ b/arch/arm/boot/dts/kirkwood-ts219-6282.dts | |||
| @@ -51,13 +51,13 @@ | |||
| 51 | 51 | ||
| 52 | button@1 { | 52 | button@1 { |
| 53 | label = "USB Copy"; | 53 | label = "USB Copy"; |
| 54 | linux,code = <133>; | 54 | linux,code = <KEY_COPY>; |
| 55 | gpios = <&gpio1 11 1>; | 55 | gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; |
| 56 | }; | 56 | }; |
| 57 | button@2 { | 57 | button@2 { |
| 58 | label = "Reset"; | 58 | label = "Reset"; |
| 59 | linux,code = <0x198>; | 59 | linux,code = <KEY_RESTART>; |
| 60 | gpios = <&gpio1 5 1>; | 60 | gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; |
| 61 | }; | 61 | }; |
| 62 | }; | 62 | }; |
| 63 | }; | 63 | }; |
diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi index 8b73c80f1dad..81e6c409284e 100644 --- a/arch/arm/boot/dts/kirkwood.dtsi +++ b/arch/arm/boot/dts/kirkwood.dtsi | |||
| @@ -1,4 +1,6 @@ | |||
| 1 | /include/ "skeleton.dtsi" | 1 | /include/ "skeleton.dtsi" |
| 2 | #include <dt-bindings/input/input.h> | ||
| 3 | #include <dt-bindings/gpio/gpio.h> | ||
| 2 | 4 | ||
| 3 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) | 5 | #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16)) |
| 4 | 6 | ||
| @@ -68,39 +70,21 @@ | |||
| 68 | #address-cells = <1>; | 70 | #address-cells = <1>; |
| 69 | #size-cells = <1>; | 71 | #size-cells = <1>; |
| 70 | 72 | ||
| 71 | mbusc: mbus-controller@20000 { | ||
| 72 | compatible = "marvell,mbus-controller"; | ||
| 73 | reg = <0x20000 0x80>, <0x1500 0x20>; | ||
| 74 | }; | ||
| 75 | |||
| 76 | timer: timer@20300 { | ||
| 77 | compatible = "marvell,orion-timer"; | ||
| 78 | reg = <0x20300 0x20>; | ||
| 79 | interrupt-parent = <&bridge_intc>; | ||
| 80 | interrupts = <1>, <2>; | ||
| 81 | clocks = <&core_clk 0>; | ||
| 82 | }; | ||
| 83 | |||
| 84 | intc: main-interrupt-ctrl@20200 { | ||
| 85 | compatible = "marvell,orion-intc"; | ||
| 86 | interrupt-controller; | ||
| 87 | #interrupt-cells = <1>; | ||
| 88 | reg = <0x20200 0x10>, <0x20210 0x10>; | ||
| 89 | }; | ||
| 90 | |||
| 91 | bridge_intc: bridge-interrupt-ctrl@20110 { | ||
| 92 | compatible = "marvell,orion-bridge-intc"; | ||
| 93 | interrupt-controller; | ||
| 94 | #interrupt-cells = <1>; | ||
| 95 | reg = <0x20110 0x8>; | ||
| 96 | interrupts = <1>; | ||
| 97 | marvell,#interrupts = <6>; | ||
| 98 | }; | ||
| 99 | |||
| 100 | core_clk: core-clocks@10030 { | 73 | core_clk: core-clocks@10030 { |
| 101 | compatible = "marvell,kirkwood-core-clock"; | 74 | compatible = "marvell,kirkwood-core-clock"; |
| 102 | reg = <0x10030 0x4>; | 75 | reg = <0x10030 0x4>; |
| 103 | #clock-cells = <1>; | 76 | #clock-cells = <1>; |
| 77 | }; | ||
| 78 | |||
| 79 | spi@10600 { | ||
| 80 | compatible = "marvell,orion-spi"; | ||
| 81 | #address-cells = <1>; | ||
| 82 | #size-cells = <0>; | ||
| 83 | cell-index = <0>; | ||
| 84 | interrupts = <23>; | ||
| 85 | reg = <0x10600 0x28>; | ||
| 86 | clocks = <&gate_clk 7>; | ||
| 87 | status = "disabled"; | ||
| 104 | }; | 88 | }; |
| 105 | 89 | ||
| 106 | gpio0: gpio@10100 { | 90 | gpio0: gpio@10100 { |
| @@ -127,6 +111,17 @@ | |||
| 127 | clocks = <&gate_clk 7>; | 111 | clocks = <&gate_clk 7>; |
| 128 | }; | 112 | }; |
| 129 | 113 | ||
| 114 | i2c@11000 { | ||
| 115 | compatible = "marvell,mv64xxx-i2c"; | ||
| 116 | reg = <0x11000 0x20>; | ||
| 117 | #address-cells = <1>; | ||
| 118 | #size-cells = <0>; | ||
| 119 | interrupts = <29>; | ||
| 120 | clock-frequency = <100000>; | ||
| 121 | clocks = <&gate_clk 7>; | ||
| 122 | status = "disabled"; | ||
| 123 | }; | ||
| 124 | |||
| 130 | serial@12000 { | 125 | serial@12000 { |
| 131 | compatible = "ns16550a"; | 126 | compatible = "ns16550a"; |
| 132 | reg = <0x12000 0x100>; | 127 | reg = <0x12000 0x100>; |
| @@ -145,15 +140,18 @@ | |||
| 145 | status = "disabled"; | 140 | status = "disabled"; |
| 146 | }; | 141 | }; |
| 147 | 142 | ||
| 148 | spi@10600 { | 143 | mbusc: mbus-controller@20000 { |
| 149 | compatible = "marvell,orion-spi"; | 144 | compatible = "marvell,mbus-controller"; |
| 150 | #address-cells = <1>; | 145 | reg = <0x20000 0x80>, <0x1500 0x20>; |
| 151 | #size-cells = <0>; | 146 | }; |
| 152 | cell-index = <0>; | 147 | |
| 153 | interrupts = <23>; | 148 | bridge_intc: bridge-interrupt-ctrl@20110 { |
| 154 | reg = <0x10600 0x28>; | 149 | compatible = "marvell,orion-bridge-intc"; |
| 155 | clocks = <&gate_clk 7>; | 150 | interrupt-controller; |
| 156 | status = "disabled"; | 151 | #interrupt-cells = <1>; |
| 152 | reg = <0x20110 0x8>; | ||
| 153 | interrupts = <1>; | ||
| 154 | marvell,#interrupts = <6>; | ||
| 157 | }; | 155 | }; |
| 158 | 156 | ||
| 159 | gate_clk: clock-gating-control@2011c { | 157 | gate_clk: clock-gating-control@2011c { |
| @@ -163,6 +161,21 @@ | |||
| 163 | #clock-cells = <1>; | 161 | #clock-cells = <1>; |
| 164 | }; | 162 | }; |
| 165 | 163 | ||
| 164 | intc: main-interrupt-ctrl@20200 { | ||
| 165 | compatible = "marvell,orion-intc"; | ||
| 166 | interrupt-controller; | ||
| 167 | #interrupt-cells = <1>; | ||
| 168 | reg = <0x20200 0x10>, <0x20210 0x10>; | ||
| 169 | }; | ||
| 170 | |||
| 171 | timer: timer@20300 { | ||
| 172 | compatible = "marvell,orion-timer"; | ||
| 173 | reg = <0x20300 0x20>; | ||
| 174 | interrupt-parent = <&bridge_intc>; | ||
| 175 | interrupts = <1>, <2>; | ||
| 176 | clocks = <&core_clk 0>; | ||
| 177 | }; | ||
| 178 | |||
| 166 | wdt: watchdog-timer@20300 { | 179 | wdt: watchdog-timer@20300 { |
| 167 | compatible = "marvell,orion-wdt"; | 180 | compatible = "marvell,orion-wdt"; |
| 168 | reg = <0x20300 0x28>; | 181 | reg = <0x20300 0x28>; |
| @@ -172,6 +185,14 @@ | |||
| 172 | status = "okay"; | 185 | status = "okay"; |
| 173 | }; | 186 | }; |
| 174 | 187 | ||
| 188 | ehci@50000 { | ||
| 189 | compatible = "marvell,orion-ehci"; | ||
| 190 | reg = <0x50000 0x1000>; | ||
| 191 | interrupts = <19>; | ||
| 192 | clocks = <&gate_clk 3>; | ||
| 193 | status = "okay"; | ||
| 194 | }; | ||
| 195 | |||
| 175 | xor@60800 { | 196 | xor@60800 { |
| 176 | compatible = "marvell,orion-xor"; | 197 | compatible = "marvell,orion-xor"; |
| 177 | reg = <0x60800 0x100 | 198 | reg = <0x60800 0x100 |
| @@ -212,37 +233,6 @@ | |||
| 212 | }; | 233 | }; |
| 213 | }; | 234 | }; |
| 214 | 235 | ||
| 215 | ehci@50000 { | ||
| 216 | compatible = "marvell,orion-ehci"; | ||
| 217 | reg = <0x50000 0x1000>; | ||
| 218 | interrupts = <19>; | ||
| 219 | clocks = <&gate_clk 3>; | ||
| 220 | status = "okay"; | ||
| 221 | }; | ||
| 222 | |||
| 223 | i2c@11000 { | ||
| 224 | compatible = "marvell,mv64xxx-i2c"; | ||
| 225 | reg = <0x11000 0x20>; | ||
| 226 | #address-cells = <1>; | ||
| 227 | #size-cells = <0>; | ||
| 228 | interrupts = <29>; | ||
| 229 | clock-frequency = <100000>; | ||
| 230 | clocks = <&gate_clk 7>; | ||
| 231 | status = "disabled"; | ||
| 232 | }; | ||
| 233 | |||
| 234 | mdio: mdio-bus@72004 { | ||
| 235 | compatible = "marvell,orion-mdio"; | ||
| 236 | #address-cells = <1>; | ||
| 237 | #size-cells = <0>; | ||
| 238 | reg = <0x72004 0x84>; | ||
| 239 | interrupts = <46>; | ||
| 240 | clocks = <&gate_clk 0>; | ||
| 241 | status = "disabled"; | ||
| 242 | |||
| 243 | /* add phy nodes in board file */ | ||
| 244 | }; | ||
| 245 | |||
| 246 | eth0: ethernet-controller@72000 { | 236 | eth0: ethernet-controller@72000 { |
| 247 | compatible = "marvell,kirkwood-eth"; | 237 | compatible = "marvell,kirkwood-eth"; |
| 248 | #address-cells = <1>; | 238 | #address-cells = <1>; |
| @@ -263,6 +253,18 @@ | |||
| 263 | }; | 253 | }; |
| 264 | }; | 254 | }; |
| 265 | 255 | ||
| 256 | mdio: mdio-bus@72004 { | ||
| 257 | compatible = "marvell,orion-mdio"; | ||
| 258 | #address-cells = <1>; | ||
| 259 | #size-cells = <0>; | ||
| 260 | reg = <0x72004 0x84>; | ||
| 261 | interrupts = <46>; | ||
| 262 | clocks = <&gate_clk 0>; | ||
| 263 | status = "disabled"; | ||
| 264 | |||
| 265 | /* add phy nodes in board file */ | ||
| 266 | }; | ||
| 267 | |||
| 266 | eth1: ethernet-controller@76000 { | 268 | eth1: ethernet-controller@76000 { |
| 267 | compatible = "marvell,kirkwood-eth"; | 269 | compatible = "marvell,kirkwood-eth"; |
| 268 | #address-cells = <1>; | 270 | #address-cells = <1>; |
| @@ -282,5 +284,23 @@ | |||
| 282 | /* set phy-handle property in board file */ | 284 | /* set phy-handle property in board file */ |
| 283 | }; | 285 | }; |
| 284 | }; | 286 | }; |
| 287 | |||
| 288 | sata_phy0: sata-phy@82000 { | ||
| 289 | compatible = "marvell,mvebu-sata-phy"; | ||
| 290 | reg = <0x82000 0x0334>; | ||
| 291 | clocks = <&gate_clk 14>; | ||
| 292 | clock-names = "sata"; | ||
| 293 | #phy-cells = <0>; | ||
| 294 | status = "ok"; | ||
| 295 | }; | ||
| 296 | |||
| 297 | sata_phy1: sata-phy@84000 { | ||
| 298 | compatible = "marvell,mvebu-sata-phy"; | ||
| 299 | reg = <0x84000 0x0334>; | ||
| 300 | clocks = <&gate_clk 15>; | ||
| 301 | clock-names = "sata"; | ||
| 302 | #phy-cells = <0>; | ||
| 303 | status = "ok"; | ||
| 304 | }; | ||
| 285 | }; | 305 | }; |
| 286 | }; | 306 | }; |
diff --git a/arch/arm/boot/dts/moxart-uc7112lx.dts b/arch/arm/boot/dts/moxart-uc7112lx.dts new file mode 100644 index 000000000000..90749d55de0d --- /dev/null +++ b/arch/arm/boot/dts/moxart-uc7112lx.dts | |||
| @@ -0,0 +1,109 @@ | |||
| 1 | /* moxart-uc7112lx.dts - Device Tree file for MOXA UC-7112-LX | ||
| 2 | * | ||
| 3 | * Copyright (C) 2013 Jonas Jensen <jonas.jensen@gmail.com> | ||
| 4 | * | ||
| 5 | * Licensed under GPLv2 or later. | ||
| 6 | */ | ||
| 7 | |||
| 8 | /dts-v1/; | ||
| 9 | /include/ "moxart.dtsi" | ||
| 10 | |||
| 11 | / { | ||
| 12 | model = "MOXA UC-7112-LX"; | ||
| 13 | compatible = "moxa,moxart-uc-7112-lx", "moxa,moxart"; | ||
| 14 | |||
| 15 | memory { | ||
| 16 | device_type = "memory"; | ||
| 17 | reg = <0x0 0x2000000>; | ||
| 18 | }; | ||
| 19 | |||
| 20 | flash@80000000,0 { | ||
| 21 | compatible = "numonyx,js28f128", "cfi-flash"; | ||
| 22 | reg = <0x80000000 0x1000000>; | ||
| 23 | bank-width = <2>; | ||
| 24 | #address-cells = <1>; | ||
| 25 | #size-cells = <1>; | ||
| 26 | partition@0 { | ||
| 27 | label = "bootloader"; | ||
| 28 | reg = <0x0 0x40000>; | ||
| 29 | }; | ||
| 30 | partition@40000 { | ||
| 31 | label = "linux kernel"; | ||
| 32 | reg = <0x40000 0x1C0000>; | ||
| 33 | }; | ||
| 34 | partition@200000 { | ||
| 35 | label = "root filesystem"; | ||
| 36 | reg = <0x200000 0x800000>; | ||
| 37 | }; | ||
| 38 | partition@a00000 { | ||
| 39 | label = "user filesystem"; | ||
| 40 | reg = <0xa00000 0x600000>; | ||
| 41 | }; | ||
| 42 | }; | ||
| 43 | |||
| 44 | leds { | ||
| 45 | compatible = "gpio-leds"; | ||
| 46 | user-led { | ||
| 47 | label = "ready-led"; | ||
| 48 | gpios = <&gpio 27 0x1>; | ||
| 49 | default-state = "on"; | ||
| 50 | linux,default-trigger = "default-on"; | ||
| 51 | }; | ||
| 52 | }; | ||
| 53 | |||
| 54 | gpio_keys_polled { | ||
| 55 | compatible = "gpio-keys-polled"; | ||
| 56 | #address-cells = <1>; | ||
| 57 | #size-cells = <0>; | ||
| 58 | poll-interval = <500>; | ||
| 59 | button@25 { | ||
| 60 | label = "GPIO Reset"; | ||
| 61 | linux,code = <116>; | ||
| 62 | gpios = <&gpio 25 1>; | ||
| 63 | }; | ||
| 64 | }; | ||
| 65 | |||
| 66 | chosen { | ||
| 67 | bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/mmcblk0p1 rw rootwait"; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | |||
| 71 | &clk_pll { | ||
| 72 | clocks = <&ref12>; | ||
| 73 | }; | ||
| 74 | |||
| 75 | &sdhci { | ||
| 76 | status = "okay"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | &mdio0 { | ||
| 80 | status = "okay"; | ||
| 81 | |||
| 82 | ethphy0: ethernet-phy@1 { | ||
| 83 | device_type = "ethernet-phy"; | ||
| 84 | compatible = "moxa,moxart-rtl8201cp", "ethernet-phy-ieee802.3-c22"; | ||
| 85 | reg = <1>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | &mdio1 { | ||
| 90 | status = "okay"; | ||
| 91 | |||
| 92 | ethphy1: ethernet-phy@1 { | ||
| 93 | device_type = "ethernet-phy"; | ||
| 94 | compatible = "moxa,moxart-rtl8201cp", "ethernet-phy-ieee802.3-c22"; | ||
| 95 | reg = <1>; | ||
| 96 | }; | ||
| 97 | }; | ||
| 98 | |||
| 99 | &mac0 { | ||
| 100 | status = "okay"; | ||
| 101 | }; | ||
| 102 | |||
| 103 | &mac1 { | ||
| 104 | status = "okay"; | ||
| 105 | }; | ||
| 106 | |||
| 107 | &uart0 { | ||
| 108 | status = "okay"; | ||
| 109 | }; | ||
diff --git a/arch/arm/boot/dts/moxart.dtsi b/arch/arm/boot/dts/moxart.dtsi new file mode 100644 index 000000000000..da1d8effef97 --- /dev/null +++ b/arch/arm/boot/dts/moxart.dtsi | |||
| @@ -0,0 +1,154 @@ | |||
| 1 | /* moxart.dtsi - Device Tree Include file for MOXA ART family SoC | ||
| 2 | * | ||
| 3 | * Copyright (C) 2013 Jonas Jensen <jonas.jensen@gmail.com> | ||
| 4 | * | ||
| 5 | * Licensed under GPLv2 or later. | ||
| 6 | */ | ||
| 7 | |||
| 8 | /include/ "skeleton.dtsi" | ||
| 9 | |||
| 10 | / { | ||
| 11 | compatible = "moxa,moxart"; | ||
| 12 | model = "MOXART"; | ||
| 13 | interrupt-parent = <&intc>; | ||
| 14 | |||
| 15 | cpus { | ||
| 16 | #address-cells = <1>; | ||
| 17 | #size-cells = <0>; | ||
| 18 | |||
| 19 | cpu@0 { | ||
| 20 | device_type = "cpu"; | ||
| 21 | compatible = "faraday,fa526"; | ||
| 22 | reg = <0>; | ||
| 23 | }; | ||
| 24 | }; | ||
| 25 | |||
| 26 | clocks { | ||
| 27 | #address-cells = <1>; | ||
| 28 | #size-cells = <0>; | ||
| 29 | |||
| 30 | ref12: ref12M { | ||
| 31 | compatible = "fixed-clock"; | ||
| 32 | #clock-cells = <0>; | ||
| 33 | clock-frequency = <12000000>; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 37 | soc { | ||
| 38 | compatible = "simple-bus"; | ||
| 39 | #address-cells = <1>; | ||
| 40 | #size-cells = <1>; | ||
| 41 | reg = <0x90000000 0x10000000>; | ||
| 42 | ranges; | ||
| 43 | |||
| 44 | intc: interrupt-controller@98800000 { | ||
| 45 | compatible = "moxa,moxart-ic"; | ||
| 46 | reg = <0x98800000 0x38>; | ||
| 47 | interrupt-controller; | ||
| 48 | #interrupt-cells = <2>; | ||
| 49 | interrupt-mask = <0x00080000>; | ||
| 50 | }; | ||
| 51 | |||
| 52 | clk_pll: clk_pll@98100000 { | ||
| 53 | compatible = "moxa,moxart-pll-clock"; | ||
| 54 | #clock-cells = <0>; | ||
| 55 | reg = <0x98100000 0x34>; | ||
| 56 | }; | ||
| 57 | |||
| 58 | clk_apb: clk_apb@98100000 { | ||
| 59 | compatible = "moxa,moxart-apb-clock"; | ||
| 60 | #clock-cells = <0>; | ||
| 61 | reg = <0x98100000 0x34>; | ||
| 62 | clocks = <&clk_pll>; | ||
| 63 | }; | ||
| 64 | |||
| 65 | timer: timer@98400000 { | ||
| 66 | compatible = "moxa,moxart-timer"; | ||
| 67 | reg = <0x98400000 0x42>; | ||
| 68 | interrupts = <19 1>; | ||
| 69 | clocks = <&clk_apb>; | ||
| 70 | }; | ||
| 71 | |||
| 72 | gpio: gpio@98700000 { | ||
| 73 | gpio-controller; | ||
| 74 | #gpio-cells = <2>; | ||
| 75 | compatible = "moxa,moxart-gpio"; | ||
| 76 | reg = <0x98700000 0xC>; | ||
| 77 | }; | ||
| 78 | |||
| 79 | rtc: rtc { | ||
| 80 | compatible = "moxa,moxart-rtc"; | ||
| 81 | gpio-rtc-sclk = <&gpio 5 0>; | ||
| 82 | gpio-rtc-data = <&gpio 6 0>; | ||
| 83 | gpio-rtc-reset = <&gpio 7 0>; | ||
| 84 | }; | ||
| 85 | |||
| 86 | dma: dma@90500000 { | ||
| 87 | compatible = "moxa,moxart-dma"; | ||
| 88 | reg = <0x90500080 0x40>; | ||
| 89 | interrupts = <24 0>; | ||
| 90 | #dma-cells = <1>; | ||
| 91 | }; | ||
| 92 | |||
| 93 | watchdog: watchdog@98500000 { | ||
| 94 | compatible = "moxa,moxart-watchdog"; | ||
| 95 | reg = <0x98500000 0x10>; | ||
| 96 | clocks = <&clk_apb>; | ||
| 97 | }; | ||
| 98 | |||
| 99 | sdhci: sdhci@98e00000 { | ||
| 100 | compatible = "moxa,moxart-sdhci"; | ||
| 101 | reg = <0x98e00000 0x5C>; | ||
| 102 | interrupts = <5 0>; | ||
| 103 | clocks = <&clk_apb>; | ||
| 104 | dmas = <&dma 5>, | ||
| 105 | <&dma 5>; | ||
| 106 | dma-names = "tx", "rx"; | ||
| 107 | status = "disabled"; | ||
| 108 | }; | ||
| 109 | |||
| 110 | mdio0: mdio@90900090 { | ||
| 111 | compatible = "moxa,moxart-mdio"; | ||
| 112 | reg = <0x90900090 0x8>; | ||
| 113 | #address-cells = <1>; | ||
| 114 | #size-cells = <0>; | ||
| 115 | status = "disabled"; | ||
| 116 | }; | ||
| 117 | |||
| 118 | mdio1: mdio@92000090 { | ||
| 119 | compatible = "moxa,moxart-mdio"; | ||
| 120 | reg = <0x92000090 0x8>; | ||
| 121 | #address-cells = <1>; | ||
| 122 | #size-cells = <0>; | ||
| 123 | status = "disabled"; | ||
| 124 | }; | ||
| 125 | |||
| 126 | mac0: mac@90900000 { | ||
| 127 | compatible = "moxa,moxart-mac"; | ||
| 128 | reg = <0x90900000 0x90>; | ||
| 129 | interrupts = <25 0>; | ||
| 130 | phy-handle = <ðphy0>; | ||
| 131 | phy-mode = "mii"; | ||
| 132 | status = "disabled"; | ||
| 133 | }; | ||
| 134 | |||
| 135 | mac1: mac@92000000 { | ||
| 136 | compatible = "moxa,moxart-mac"; | ||
| 137 | reg = <0x92000000 0x90>; | ||
| 138 | interrupts = <27 0>; | ||
| 139 | phy-handle = <ðphy1>; | ||
| 140 | phy-mode = "mii"; | ||
| 141 | status = "disabled"; | ||
| 142 | }; | ||
| 143 | |||
| 144 | uart0: uart@98200000 { | ||
| 145 | compatible = "ns16550a"; | ||
| 146 | reg = <0x98200000 0x20>; | ||
| 147 | interrupts = <31 8>; | ||
| 148 | reg-shift = <2>; | ||
| 149 | reg-io-width = <4>; | ||
| 150 | clock-frequency = <14745600>; | ||
| 151 | status = "disabled"; | ||
| 152 | }; | ||
| 153 | }; | ||
| 154 | }; | ||
diff --git a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts index aed83deaa991..fcc5bb63f03a 100644 --- a/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts +++ b/arch/arm/boot/dts/orion5x-lacie-ethernet-disk-mini-v2.dts | |||
| @@ -58,7 +58,7 @@ | |||
| 58 | status = "okay"; | 58 | status = "okay"; |
| 59 | 59 | ||
| 60 | ethphy: ethernet-phy { | 60 | ethphy: ethernet-phy { |
| 61 | device-type = "ethernet-phy"; | 61 | device_type = "ethernet-phy"; |
| 62 | reg = <8>; | 62 | reg = <8>; |
| 63 | }; | 63 | }; |
| 64 | }; | 64 | }; |
diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi index e06c37e91ac6..9f51538cd9ef 100644 --- a/arch/arm/boot/dts/orion5x.dtsi +++ b/arch/arm/boot/dts/orion5x.dtsi | |||
| @@ -42,6 +42,25 @@ | |||
| 42 | interrupts = <6>, <7>, <8>, <9>; | 42 | interrupts = <6>, <7>, <8>, <9>; |
| 43 | }; | 43 | }; |
| 44 | 44 | ||
| 45 | spi@10600 { | ||
| 46 | compatible = "marvell,orion-spi"; | ||
| 47 | #address-cells = <1>; | ||
| 48 | #size-cells = <0>; | ||
| 49 | cell-index = <0>; | ||
| 50 | reg = <0x10600 0x28>; | ||
| 51 | status = "disabled"; | ||
| 52 | }; | ||
| 53 | |||
| 54 | i2c@11000 { | ||
| 55 | compatible = "marvell,mv64xxx-i2c"; | ||
| 56 | reg = <0x11000 0x20>; | ||
| 57 | #address-cells = <1>; | ||
| 58 | #size-cells = <0>; | ||
| 59 | interrupts = <5>; | ||
| 60 | clock-frequency = <100000>; | ||
| 61 | status = "disabled"; | ||
| 62 | }; | ||
| 63 | |||
| 45 | serial@12000 { | 64 | serial@12000 { |
| 46 | compatible = "ns16550a"; | 65 | compatible = "ns16550a"; |
| 47 | reg = <0x12000 0x100>; | 66 | reg = <0x12000 0x100>; |
| @@ -60,15 +79,6 @@ | |||
| 60 | status = "disabled"; | 79 | status = "disabled"; |
| 61 | }; | 80 | }; |
| 62 | 81 | ||
| 63 | spi@10600 { | ||
| 64 | compatible = "marvell,orion-spi"; | ||
| 65 | #address-cells = <1>; | ||
| 66 | #size-cells = <0>; | ||
| 67 | cell-index = <0>; | ||
| 68 | reg = <0x10600 0x28>; | ||
| 69 | status = "disabled"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | wdt@20300 { | 82 | wdt@20300 { |
| 73 | compatible = "marvell,orion-wdt"; | 83 | compatible = "marvell,orion-wdt"; |
| 74 | reg = <0x20300 0x28>; | 84 | reg = <0x20300 0x28>; |
| @@ -82,30 +92,6 @@ | |||
| 82 | status = "disabled"; | 92 | status = "disabled"; |
| 83 | }; | 93 | }; |
| 84 | 94 | ||
| 85 | ehci@a0000 { | ||
| 86 | compatible = "marvell,orion-ehci"; | ||
| 87 | reg = <0xa0000 0x1000>; | ||
| 88 | interrupts = <12>; | ||
| 89 | status = "disabled"; | ||
| 90 | }; | ||
| 91 | |||
| 92 | sata@80000 { | ||
| 93 | compatible = "marvell,orion-sata"; | ||
| 94 | reg = <0x80000 0x5000>; | ||
| 95 | interrupts = <29>; | ||
| 96 | status = "disabled"; | ||
| 97 | }; | ||
| 98 | |||
| 99 | i2c@11000 { | ||
| 100 | compatible = "marvell,mv64xxx-i2c"; | ||
| 101 | reg = <0x11000 0x20>; | ||
| 102 | #address-cells = <1>; | ||
| 103 | #size-cells = <0>; | ||
| 104 | interrupts = <5>; | ||
| 105 | clock-frequency = <100000>; | ||
| 106 | status = "disabled"; | ||
| 107 | }; | ||
| 108 | |||
| 109 | xor@60900 { | 95 | xor@60900 { |
| 110 | compatible = "marvell,orion-xor"; | 96 | compatible = "marvell,orion-xor"; |
| 111 | reg = <0x60900 0x100 | 97 | reg = <0x60900 0x100 |
| @@ -125,26 +111,6 @@ | |||
| 125 | }; | 111 | }; |
| 126 | }; | 112 | }; |
| 127 | 113 | ||
| 128 | crypto@90000 { | ||
| 129 | compatible = "marvell,orion-crypto"; | ||
| 130 | reg = <0x90000 0x10000>, | ||
| 131 | <0xf2200000 0x800>; | ||
| 132 | reg-names = "regs", "sram"; | ||
| 133 | interrupts = <28>; | ||
| 134 | status = "okay"; | ||
| 135 | }; | ||
| 136 | |||
| 137 | mdio: mdio-bus@72004 { | ||
| 138 | compatible = "marvell,orion-mdio"; | ||
| 139 | #address-cells = <1>; | ||
| 140 | #size-cells = <0>; | ||
| 141 | reg = <0x72004 0x84>; | ||
| 142 | interrupts = <22>; | ||
| 143 | status = "disabled"; | ||
| 144 | |||
| 145 | /* add phy nodes in board file */ | ||
| 146 | }; | ||
| 147 | |||
| 148 | eth: ethernet-controller@72000 { | 114 | eth: ethernet-controller@72000 { |
| 149 | compatible = "marvell,orion-eth"; | 115 | compatible = "marvell,orion-eth"; |
| 150 | #address-cells = <1>; | 116 | #address-cells = <1>; |
| @@ -162,5 +128,39 @@ | |||
| 162 | /* set phy-handle property in board file */ | 128 | /* set phy-handle property in board file */ |
| 163 | }; | 129 | }; |
| 164 | }; | 130 | }; |
| 131 | |||
| 132 | mdio: mdio-bus@72004 { | ||
| 133 | compatible = "marvell,orion-mdio"; | ||
| 134 | #address-cells = <1>; | ||
| 135 | #size-cells = <0>; | ||
| 136 | reg = <0x72004 0x84>; | ||
| 137 | interrupts = <22>; | ||
| 138 | status = "disabled"; | ||
| 139 | |||
| 140 | /* add phy nodes in board file */ | ||
| 141 | }; | ||
| 142 | |||
| 143 | sata@80000 { | ||
| 144 | compatible = "marvell,orion-sata"; | ||
| 145 | reg = <0x80000 0x5000>; | ||
| 146 | interrupts = <29>; | ||
| 147 | status = "disabled"; | ||
| 148 | }; | ||
| 149 | |||
| 150 | crypto@90000 { | ||
| 151 | compatible = "marvell,orion-crypto"; | ||
| 152 | reg = <0x90000 0x10000>, | ||
| 153 | <0xf2200000 0x800>; | ||
| 154 | reg-names = "regs", "sram"; | ||
| 155 | interrupts = <28>; | ||
| 156 | status = "okay"; | ||
| 157 | }; | ||
| 158 | |||
| 159 | ehci@a0000 { | ||
| 160 | compatible = "marvell,orion-ehci"; | ||
| 161 | reg = <0xa0000 0x1000>; | ||
| 162 | interrupts = <12>; | ||
| 163 | status = "disabled"; | ||
| 164 | }; | ||
| 165 | }; | 165 | }; |
| 166 | }; | 166 | }; |
diff --git a/arch/arm/boot/dts/prima2.dtsi b/arch/arm/boot/dts/prima2.dtsi index daee58944e15..0e219932d7cc 100644 --- a/arch/arm/boot/dts/prima2.dtsi +++ b/arch/arm/boot/dts/prima2.dtsi | |||
| @@ -29,6 +29,15 @@ | |||
| 29 | timebase-frequency = <0>; | 29 | timebase-frequency = <0>; |
| 30 | bus-frequency = <0>; | 30 | bus-frequency = <0>; |
| 31 | clock-frequency = <0>; | 31 | clock-frequency = <0>; |
| 32 | clocks = <&clks 12>; | ||
| 33 | operating-points = < | ||
| 34 | /* kHz uV */ | ||
| 35 | 200000 1025000 | ||
| 36 | 400000 1025000 | ||
| 37 | 664000 1050000 | ||
| 38 | 800000 1100000 | ||
| 39 | >; | ||
| 40 | clock-latency = <150000>; | ||
| 32 | }; | 41 | }; |
| 33 | }; | 42 | }; |
| 34 | 43 | ||
| @@ -80,6 +89,7 @@ | |||
| 80 | cphifbg@88030000 { | 89 | cphifbg@88030000 { |
| 81 | compatible = "sirf,prima2-cphifbg"; | 90 | compatible = "sirf,prima2-cphifbg"; |
| 82 | reg = <0x88030000 0x1000>; | 91 | reg = <0x88030000 0x1000>; |
| 92 | clocks = <&clks 42>; | ||
| 83 | }; | 93 | }; |
| 84 | }; | 94 | }; |
| 85 | 95 | ||
| @@ -540,6 +550,18 @@ | |||
| 540 | "usp0_uart_nostreamctrl"; | 550 | "usp0_uart_nostreamctrl"; |
| 541 | }; | 551 | }; |
| 542 | }; | 552 | }; |
| 553 | usp0_only_utfs_pins_a: usp0@2 { | ||
| 554 | usp0 { | ||
| 555 | sirf,pins = "usp0_only_utfs_grp"; | ||
| 556 | sirf,function = "usp0_only_utfs"; | ||
| 557 | }; | ||
| 558 | }; | ||
| 559 | usp0_only_urfs_pins_a: usp0@3 { | ||
| 560 | usp0 { | ||
| 561 | sirf,pins = "usp0_only_urfs_grp"; | ||
| 562 | sirf,function = "usp0_only_urfs"; | ||
| 563 | }; | ||
| 564 | }; | ||
| 543 | usp1_pins_a: usp1@0 { | 565 | usp1_pins_a: usp1@0 { |
| 544 | usp1 { | 566 | usp1 { |
| 545 | sirf,pins = "usp1grp"; | 567 | sirf,pins = "usp1grp"; |
| @@ -648,6 +670,9 @@ | |||
| 648 | compatible = "sirf,prima2-sdhc"; | 670 | compatible = "sirf,prima2-sdhc"; |
| 649 | reg = <0x56000000 0x100000>; | 671 | reg = <0x56000000 0x100000>; |
| 650 | interrupts = <38>; | 672 | interrupts = <38>; |
| 673 | status = "disabled"; | ||
| 674 | bus-width = <8>; | ||
| 675 | clocks = <&clks 36>; | ||
| 651 | }; | 676 | }; |
| 652 | 677 | ||
| 653 | sd1: sdhci@56100000 { | 678 | sd1: sdhci@56100000 { |
| @@ -655,6 +680,9 @@ | |||
| 655 | compatible = "sirf,prima2-sdhc"; | 680 | compatible = "sirf,prima2-sdhc"; |
| 656 | reg = <0x56100000 0x100000>; | 681 | reg = <0x56100000 0x100000>; |
| 657 | interrupts = <38>; | 682 | interrupts = <38>; |
| 683 | status = "disabled"; | ||
| 684 | bus-width = <4>; | ||
| 685 | clocks = <&clks 36>; | ||
| 658 | }; | 686 | }; |
| 659 | 687 | ||
| 660 | sd2: sdhci@56200000 { | 688 | sd2: sdhci@56200000 { |
| @@ -662,6 +690,8 @@ | |||
| 662 | compatible = "sirf,prima2-sdhc"; | 690 | compatible = "sirf,prima2-sdhc"; |
| 663 | reg = <0x56200000 0x100000>; | 691 | reg = <0x56200000 0x100000>; |
| 664 | interrupts = <23>; | 692 | interrupts = <23>; |
| 693 | status = "disabled"; | ||
| 694 | clocks = <&clks 37>; | ||
| 665 | }; | 695 | }; |
| 666 | 696 | ||
| 667 | sd3: sdhci@56300000 { | 697 | sd3: sdhci@56300000 { |
| @@ -669,6 +699,8 @@ | |||
| 669 | compatible = "sirf,prima2-sdhc"; | 699 | compatible = "sirf,prima2-sdhc"; |
| 670 | reg = <0x56300000 0x100000>; | 700 | reg = <0x56300000 0x100000>; |
| 671 | interrupts = <23>; | 701 | interrupts = <23>; |
| 702 | status = "disabled"; | ||
| 703 | clocks = <&clks 37>; | ||
| 672 | }; | 704 | }; |
| 673 | 705 | ||
| 674 | sd4: sdhci@56400000 { | 706 | sd4: sdhci@56400000 { |
| @@ -676,6 +708,8 @@ | |||
| 676 | compatible = "sirf,prima2-sdhc"; | 708 | compatible = "sirf,prima2-sdhc"; |
| 677 | reg = <0x56400000 0x100000>; | 709 | reg = <0x56400000 0x100000>; |
| 678 | interrupts = <39>; | 710 | interrupts = <39>; |
| 711 | status = "disabled"; | ||
| 712 | clocks = <&clks 38>; | ||
| 679 | }; | 713 | }; |
| 680 | 714 | ||
| 681 | sd5: sdhci@56500000 { | 715 | sd5: sdhci@56500000 { |
| @@ -683,6 +717,7 @@ | |||
| 683 | compatible = "sirf,prima2-sdhc"; | 717 | compatible = "sirf,prima2-sdhc"; |
| 684 | reg = <0x56500000 0x100000>; | 718 | reg = <0x56500000 0x100000>; |
| 685 | interrupts = <39>; | 719 | interrupts = <39>; |
| 720 | clocks = <&clks 38>; | ||
| 686 | }; | 721 | }; |
| 687 | 722 | ||
| 688 | pci-copy@57900000 { | 723 | pci-copy@57900000 { |
| @@ -716,6 +751,12 @@ | |||
| 716 | interrupts = <52 53 54>; | 751 | interrupts = <52 53 54>; |
| 717 | }; | 752 | }; |
| 718 | 753 | ||
| 754 | minigpsrtc@2000 { | ||
| 755 | compatible = "sirf,prima2-minigpsrtc"; | ||
| 756 | reg = <0x2000 0x1000>; | ||
| 757 | interrupts = <54>; | ||
| 758 | }; | ||
| 759 | |||
| 719 | pwrc@3000 { | 760 | pwrc@3000 { |
| 720 | compatible = "sirf,prima2-pwrc"; | 761 | compatible = "sirf,prima2-pwrc"; |
| 721 | reg = <0x3000 0x1000>; | 762 | reg = <0x3000 0x1000>; |
diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi index d7c5d721a5c7..a70546945985 100644 --- a/arch/arm/boot/dts/pxa27x.dtsi +++ b/arch/arm/boot/dts/pxa27x.dtsi | |||
| @@ -10,5 +10,29 @@ | |||
| 10 | marvell,intc-priority; | 10 | marvell,intc-priority; |
| 11 | marvell,intc-nr-irqs = <34>; | 11 | marvell,intc-nr-irqs = <34>; |
| 12 | }; | 12 | }; |
| 13 | |||
| 14 | pwm0: pwm@40b00000 { | ||
| 15 | compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; | ||
| 16 | reg = <0x40b00000 0x10>; | ||
| 17 | #pwm-cells = <1>; | ||
| 18 | }; | ||
| 19 | |||
| 20 | pwm1: pwm@40b00010 { | ||
| 21 | compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; | ||
| 22 | reg = <0x40b00010 0x10>; | ||
| 23 | #pwm-cells = <1>; | ||
| 24 | }; | ||
| 25 | |||
| 26 | pwm2: pwm@40c00000 { | ||
| 27 | compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; | ||
| 28 | reg = <0x40c00000 0x10>; | ||
| 29 | #pwm-cells = <1>; | ||
| 30 | }; | ||
| 31 | |||
| 32 | pwm3: pwm@40c00010 { | ||
| 33 | compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; | ||
| 34 | reg = <0x40c00010 0x10>; | ||
| 35 | #pwm-cells = <1>; | ||
| 36 | }; | ||
| 13 | }; | 37 | }; |
| 14 | }; | 38 | }; |
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi index 2ebb4f09a9b6..6ac94967d2d3 100644 --- a/arch/arm/boot/dts/qcom-msm8974.dtsi +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi | |||
| @@ -29,5 +29,69 @@ | |||
| 29 | <1 1 0xf08>; | 29 | <1 1 0xf08>; |
| 30 | clock-frequency = <19200000>; | 30 | clock-frequency = <19200000>; |
| 31 | }; | 31 | }; |
| 32 | |||
| 33 | timer@f9020000 { | ||
| 34 | #address-cells = <1>; | ||
| 35 | #size-cells = <1>; | ||
| 36 | ranges; | ||
| 37 | compatible = "arm,armv7-timer-mem"; | ||
| 38 | reg = <0xf9020000 0x1000>; | ||
| 39 | clock-frequency = <19200000>; | ||
| 40 | |||
| 41 | frame@f9021000 { | ||
| 42 | frame-number = <0>; | ||
| 43 | interrupts = <0 8 0x4>, | ||
| 44 | <0 7 0x4>; | ||
| 45 | reg = <0xf9021000 0x1000>, | ||
| 46 | <0xf9022000 0x1000>; | ||
| 47 | }; | ||
| 48 | |||
| 49 | frame@f9023000 { | ||
| 50 | frame-number = <1>; | ||
| 51 | interrupts = <0 9 0x4>; | ||
| 52 | reg = <0xf9023000 0x1000>; | ||
| 53 | status = "disabled"; | ||
| 54 | }; | ||
| 55 | |||
| 56 | frame@f9024000 { | ||
| 57 | frame-number = <2>; | ||
| 58 | interrupts = <0 10 0x4>; | ||
| 59 | reg = <0xf9024000 0x1000>; | ||
| 60 | status = "disabled"; | ||
| 61 | }; | ||
| 62 | |||
| 63 | frame@f9025000 { | ||
| 64 | frame-number = <3>; | ||
| 65 | interrupts = <0 11 0x4>; | ||
| 66 | reg = <0xf9025000 0x1000>; | ||
| 67 | status = "disabled"; | ||
| 68 | }; | ||
| 69 | |||
| 70 | frame@f9026000 { | ||
| 71 | frame-number = <4>; | ||
| 72 | interrupts = <0 12 0x4>; | ||
| 73 | reg = <0xf9026000 0x1000>; | ||
| 74 | status = "disabled"; | ||
| 75 | }; | ||
| 76 | |||
| 77 | frame@f9027000 { | ||
| 78 | frame-number = <5>; | ||
| 79 | interrupts = <0 13 0x4>; | ||
| 80 | reg = <0xf9027000 0x1000>; | ||
| 81 | status = "disabled"; | ||
| 82 | }; | ||
| 83 | |||
| 84 | frame@f9028000 { | ||
| 85 | frame-number = <6>; | ||
| 86 | interrupts = <0 14 0x4>; | ||
| 87 | reg = <0xf9028000 0x1000>; | ||
| 88 | status = "disabled"; | ||
| 89 | }; | ||
| 90 | }; | ||
| 91 | |||
| 92 | restart@fc4ab000 { | ||
| 93 | compatible = "qcom,pshold"; | ||
| 94 | reg = <0xfc4ab000 0x4>; | ||
| 95 | }; | ||
| 32 | }; | 96 | }; |
| 33 | }; | 97 | }; |
diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts index 1fb20f2333cc..b1deaf7e2e06 100644 --- a/arch/arm/boot/dts/r7s72100-genmai.dts +++ b/arch/arm/boot/dts/r7s72100-genmai.dts | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "r7s72100.dtsi" | 12 | #include "r7s72100.dtsi" |
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "Genmai"; | 15 | model = "Genmai"; |
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts index 9443e93d3cac..70b1fff8f4a3 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "r8a73a4.dtsi" | 12 | #include "r8a73a4.dtsi" |
| 13 | #include <dt-bindings/gpio/gpio.h> | 13 | #include <dt-bindings/gpio/gpio.h> |
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| @@ -25,6 +25,11 @@ | |||
| 25 | reg = <0 0x40000000 0 0x40000000>; | 25 | reg = <0 0x40000000 0 0x40000000>; |
| 26 | }; | 26 | }; |
| 27 | 27 | ||
| 28 | memory@200000000 { | ||
| 29 | device_type = "memory"; | ||
| 30 | reg = <2 0x00000000 0 0x40000000>; | ||
| 31 | }; | ||
| 32 | |||
| 28 | vcc_mmc0: regulator@0 { | 33 | vcc_mmc0: regulator@0 { |
| 29 | compatible = "regulator-fixed"; | 34 | compatible = "regulator-fixed"; |
| 30 | regulator-name = "MMC0 Vcc"; | 35 | regulator-name = "MMC0 Vcc"; |
| @@ -88,22 +93,22 @@ | |||
| 88 | pinctrl-0 = <&scifa0_pins>; | 93 | pinctrl-0 = <&scifa0_pins>; |
| 89 | pinctrl-names = "default"; | 94 | pinctrl-names = "default"; |
| 90 | 95 | ||
| 91 | scifa0_pins: scifa0 { | 96 | scifa0_pins: serial0 { |
| 92 | renesas,groups = "scifa0_data"; | 97 | renesas,groups = "scifa0_data"; |
| 93 | renesas,function = "scifa0"; | 98 | renesas,function = "scifa0"; |
| 94 | }; | 99 | }; |
| 95 | 100 | ||
| 96 | mmc0_pins: mmcif { | 101 | mmc0_pins: mmc { |
| 97 | renesas,groups = "mmc0_data8", "mmc0_ctrl"; | 102 | renesas,groups = "mmc0_data8", "mmc0_ctrl"; |
| 98 | renesas,function = "mmc0"; | 103 | renesas,function = "mmc0"; |
| 99 | }; | 104 | }; |
| 100 | 105 | ||
| 101 | sdhi0_pins: sdhi0 { | 106 | sdhi0_pins: sd0 { |
| 102 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd"; | 107 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd"; |
| 103 | renesas,function = "sdhi0"; | 108 | renesas,function = "sdhi0"; |
| 104 | }; | 109 | }; |
| 105 | 110 | ||
| 106 | sdhi1_pins: sdhi1 { | 111 | sdhi1_pins: sd1 { |
| 107 | renesas,groups = "sdhi1_data4", "sdhi1_ctrl"; | 112 | renesas,groups = "sdhi1_data4", "sdhi1_ctrl"; |
| 108 | renesas,function = "sdhi1"; | 113 | renesas,function = "sdhi1"; |
| 109 | }; | 114 | }; |
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts index 91436b58016f..ce085fa444a1 100644 --- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts +++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts | |||
| @@ -9,7 +9,8 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "r8a73a4.dtsi" | 12 | #include "r8a73a4.dtsi" |
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 13 | 14 | ||
| 14 | / { | 15 | / { |
| 15 | model = "APE6EVM"; | 16 | model = "APE6EVM"; |
| @@ -24,6 +25,11 @@ | |||
| 24 | reg = <0 0x40000000 0 0x40000000>; | 25 | reg = <0 0x40000000 0 0x40000000>; |
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 28 | memory@200000000 { | ||
| 29 | device_type = "memory"; | ||
| 30 | reg = <2 0x00000000 0 0x40000000>; | ||
| 31 | }; | ||
| 32 | |||
| 27 | ape6evm_fixed_3v3: fixedregulator@0 { | 33 | ape6evm_fixed_3v3: fixedregulator@0 { |
| 28 | compatible = "regulator-fixed"; | 34 | compatible = "regulator-fixed"; |
| 29 | regulator-name = "3V3"; | 35 | regulator-name = "3V3"; |
| @@ -40,7 +46,7 @@ | |||
| 40 | compatible = "smsc,lan9118", "smsc,lan9115"; | 46 | compatible = "smsc,lan9118", "smsc,lan9115"; |
| 41 | reg = <0x08000000 0x1000>; | 47 | reg = <0x08000000 0x1000>; |
| 42 | interrupt-parent = <&irqc1>; | 48 | interrupt-parent = <&irqc1>; |
| 43 | interrupts = <8 0x4>; | 49 | interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; |
| 44 | phy-mode = "mii"; | 50 | phy-mode = "mii"; |
| 45 | reg-io-width = <4>; | 51 | reg-io-width = <4>; |
| 46 | smsc,irq-active-high; | 52 | smsc,irq-active-high; |
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi index 287e047592a0..62d0211bd192 100644 --- a/arch/arm/boot/dts/r8a73a4.dtsi +++ b/arch/arm/boot/dts/r8a73a4.dtsi | |||
| @@ -9,6 +9,9 @@ | |||
| 9 | * kind, whether express or implied. | 9 | * kind, whether express or implied. |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 14 | |||
| 12 | / { | 15 | / { |
| 13 | compatible = "renesas,r8a73a4"; | 16 | compatible = "renesas,r8a73a4"; |
| 14 | interrupt-parent = <&gic>; | 17 | interrupt-parent = <&gic>; |
| @@ -36,15 +39,15 @@ | |||
| 36 | <0 0xf1002000 0 0x1000>, | 39 | <0 0xf1002000 0 0x1000>, |
| 37 | <0 0xf1004000 0 0x2000>, | 40 | <0 0xf1004000 0 0x2000>, |
| 38 | <0 0xf1006000 0 0x2000>; | 41 | <0 0xf1006000 0 0x2000>; |
| 39 | interrupts = <1 9 0xf04>; | 42 | interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; |
| 40 | }; | 43 | }; |
| 41 | 44 | ||
| 42 | timer { | 45 | timer { |
| 43 | compatible = "arm,armv7-timer"; | 46 | compatible = "arm,armv7-timer"; |
| 44 | interrupts = <1 13 0xf08>, | 47 | interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 45 | <1 14 0xf08>, | 48 | <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 46 | <1 11 0xf08>, | 49 | <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 47 | <1 10 0xf08>; | 50 | <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; |
| 48 | }; | 51 | }; |
| 49 | 52 | ||
| 50 | irqc0: interrupt-controller@e61c0000 { | 53 | irqc0: interrupt-controller@e61c0000 { |
| @@ -53,14 +56,38 @@ | |||
| 53 | interrupt-controller; | 56 | interrupt-controller; |
| 54 | reg = <0 0xe61c0000 0 0x200>; | 57 | reg = <0 0xe61c0000 0 0x200>; |
| 55 | interrupt-parent = <&gic>; | 58 | interrupt-parent = <&gic>; |
| 56 | interrupts = <0 0 4>, <0 1 4>, <0 2 4>, <0 3 4>, | 59 | interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>, |
| 57 | <0 4 4>, <0 5 4>, <0 6 4>, <0 7 4>, | 60 | <0 1 IRQ_TYPE_LEVEL_HIGH>, |
| 58 | <0 8 4>, <0 9 4>, <0 10 4>, <0 11 4>, | 61 | <0 2 IRQ_TYPE_LEVEL_HIGH>, |
| 59 | <0 12 4>, <0 13 4>, <0 14 4>, <0 15 4>, | 62 | <0 3 IRQ_TYPE_LEVEL_HIGH>, |
| 60 | <0 16 4>, <0 17 4>, <0 18 4>, <0 19 4>, | 63 | <0 4 IRQ_TYPE_LEVEL_HIGH>, |
| 61 | <0 20 4>, <0 21 4>, <0 22 4>, <0 23 4>, | 64 | <0 5 IRQ_TYPE_LEVEL_HIGH>, |
| 62 | <0 24 4>, <0 25 4>, <0 26 4>, <0 27 4>, | 65 | <0 6 IRQ_TYPE_LEVEL_HIGH>, |
| 63 | <0 28 4>, <0 29 4>, <0 30 4>, <0 31 4>; | 66 | <0 7 IRQ_TYPE_LEVEL_HIGH>, |
| 67 | <0 8 IRQ_TYPE_LEVEL_HIGH>, | ||
| 68 | <0 9 IRQ_TYPE_LEVEL_HIGH>, | ||
| 69 | <0 10 IRQ_TYPE_LEVEL_HIGH>, | ||
| 70 | <0 11 IRQ_TYPE_LEVEL_HIGH>, | ||
| 71 | <0 12 IRQ_TYPE_LEVEL_HIGH>, | ||
| 72 | <0 13 IRQ_TYPE_LEVEL_HIGH>, | ||
| 73 | <0 14 IRQ_TYPE_LEVEL_HIGH>, | ||
| 74 | <0 15 IRQ_TYPE_LEVEL_HIGH>, | ||
| 75 | <0 16 IRQ_TYPE_LEVEL_HIGH>, | ||
| 76 | <0 17 IRQ_TYPE_LEVEL_HIGH>, | ||
| 77 | <0 18 IRQ_TYPE_LEVEL_HIGH>, | ||
| 78 | <0 19 IRQ_TYPE_LEVEL_HIGH>, | ||
| 79 | <0 20 IRQ_TYPE_LEVEL_HIGH>, | ||
| 80 | <0 21 IRQ_TYPE_LEVEL_HIGH>, | ||
| 81 | <0 22 IRQ_TYPE_LEVEL_HIGH>, | ||
| 82 | <0 23 IRQ_TYPE_LEVEL_HIGH>, | ||
| 83 | <0 24 IRQ_TYPE_LEVEL_HIGH>, | ||
| 84 | <0 25 IRQ_TYPE_LEVEL_HIGH>, | ||
| 85 | <0 26 IRQ_TYPE_LEVEL_HIGH>, | ||
| 86 | <0 27 IRQ_TYPE_LEVEL_HIGH>, | ||
| 87 | <0 28 IRQ_TYPE_LEVEL_HIGH>, | ||
| 88 | <0 29 IRQ_TYPE_LEVEL_HIGH>, | ||
| 89 | <0 30 IRQ_TYPE_LEVEL_HIGH>, | ||
| 90 | <0 31 IRQ_TYPE_LEVEL_HIGH>; | ||
| 64 | }; | 91 | }; |
| 65 | 92 | ||
| 66 | irqc1: interrupt-controller@e61c0200 { | 93 | irqc1: interrupt-controller@e61c0200 { |
| @@ -69,13 +96,32 @@ | |||
| 69 | interrupt-controller; | 96 | interrupt-controller; |
| 70 | reg = <0 0xe61c0200 0 0x200>; | 97 | reg = <0 0xe61c0200 0 0x200>; |
| 71 | interrupt-parent = <&gic>; | 98 | interrupt-parent = <&gic>; |
| 72 | interrupts = <0 32 4>, <0 33 4>, <0 34 4>, <0 35 4>, | 99 | interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>, |
| 73 | <0 36 4>, <0 37 4>, <0 38 4>, <0 39 4>, | 100 | <0 33 IRQ_TYPE_LEVEL_HIGH>, |
| 74 | <0 40 4>, <0 41 4>, <0 42 4>, <0 43 4>, | 101 | <0 34 IRQ_TYPE_LEVEL_HIGH>, |
| 75 | <0 44 4>, <0 45 4>, <0 46 4>, <0 47 4>, | 102 | <0 35 IRQ_TYPE_LEVEL_HIGH>, |
| 76 | <0 48 4>, <0 49 4>, <0 50 4>, <0 51 4>, | 103 | <0 36 IRQ_TYPE_LEVEL_HIGH>, |
| 77 | <0 52 4>, <0 53 4>, <0 54 4>, <0 55 4>, | 104 | <0 37 IRQ_TYPE_LEVEL_HIGH>, |
| 78 | <0 56 4>, <0 57 4>; | 105 | <0 38 IRQ_TYPE_LEVEL_HIGH>, |
| 106 | <0 39 IRQ_TYPE_LEVEL_HIGH>, | ||
| 107 | <0 40 IRQ_TYPE_LEVEL_HIGH>, | ||
| 108 | <0 41 IRQ_TYPE_LEVEL_HIGH>, | ||
| 109 | <0 42 IRQ_TYPE_LEVEL_HIGH>, | ||
| 110 | <0 43 IRQ_TYPE_LEVEL_HIGH>, | ||
| 111 | <0 44 IRQ_TYPE_LEVEL_HIGH>, | ||
| 112 | <0 45 IRQ_TYPE_LEVEL_HIGH>, | ||
| 113 | <0 46 IRQ_TYPE_LEVEL_HIGH>, | ||
| 114 | <0 47 IRQ_TYPE_LEVEL_HIGH>, | ||
| 115 | <0 48 IRQ_TYPE_LEVEL_HIGH>, | ||
| 116 | <0 49 IRQ_TYPE_LEVEL_HIGH>, | ||
| 117 | <0 50 IRQ_TYPE_LEVEL_HIGH>, | ||
| 118 | <0 51 IRQ_TYPE_LEVEL_HIGH>, | ||
| 119 | <0 52 IRQ_TYPE_LEVEL_HIGH>, | ||
| 120 | <0 53 IRQ_TYPE_LEVEL_HIGH>, | ||
| 121 | <0 54 IRQ_TYPE_LEVEL_HIGH>, | ||
| 122 | <0 55 IRQ_TYPE_LEVEL_HIGH>, | ||
| 123 | <0 56 IRQ_TYPE_LEVEL_HIGH>, | ||
| 124 | <0 57 IRQ_TYPE_LEVEL_HIGH>; | ||
| 79 | }; | 125 | }; |
| 80 | 126 | ||
| 81 | dmac: dma-multiplexer@0 { | 127 | dmac: dma-multiplexer@0 { |
| @@ -91,27 +137,27 @@ | |||
| 91 | compatible = "renesas,shdma-r8a73a4"; | 137 | compatible = "renesas,shdma-r8a73a4"; |
| 92 | reg = <0 0xe6700020 0 0x89e0>; | 138 | reg = <0 0xe6700020 0 0x89e0>; |
| 93 | interrupt-parent = <&gic>; | 139 | interrupt-parent = <&gic>; |
| 94 | interrupts = <0 220 4 | 140 | interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH |
| 95 | 0 200 4 | 141 | 0 200 IRQ_TYPE_LEVEL_HIGH |
| 96 | 0 201 4 | 142 | 0 201 IRQ_TYPE_LEVEL_HIGH |
| 97 | 0 202 4 | 143 | 0 202 IRQ_TYPE_LEVEL_HIGH |
| 98 | 0 203 4 | 144 | 0 203 IRQ_TYPE_LEVEL_HIGH |
| 99 | 0 204 4 | 145 | 0 204 IRQ_TYPE_LEVEL_HIGH |
| 100 | 0 205 4 | 146 | 0 205 IRQ_TYPE_LEVEL_HIGH |
| 101 | 0 206 4 | 147 | 0 206 IRQ_TYPE_LEVEL_HIGH |
| 102 | 0 207 4 | 148 | 0 207 IRQ_TYPE_LEVEL_HIGH |
| 103 | 0 208 4 | 149 | 0 208 IRQ_TYPE_LEVEL_HIGH |
| 104 | 0 209 4 | 150 | 0 209 IRQ_TYPE_LEVEL_HIGH |
| 105 | 0 210 4 | 151 | 0 210 IRQ_TYPE_LEVEL_HIGH |
| 106 | 0 211 4 | 152 | 0 211 IRQ_TYPE_LEVEL_HIGH |
| 107 | 0 212 4 | 153 | 0 212 IRQ_TYPE_LEVEL_HIGH |
| 108 | 0 213 4 | 154 | 0 213 IRQ_TYPE_LEVEL_HIGH |
| 109 | 0 214 4 | 155 | 0 214 IRQ_TYPE_LEVEL_HIGH |
| 110 | 0 215 4 | 156 | 0 215 IRQ_TYPE_LEVEL_HIGH |
| 111 | 0 216 4 | 157 | 0 216 IRQ_TYPE_LEVEL_HIGH |
| 112 | 0 217 4 | 158 | 0 217 IRQ_TYPE_LEVEL_HIGH |
| 113 | 0 218 4 | 159 | 0 218 IRQ_TYPE_LEVEL_HIGH |
| 114 | 0 219 4>; | 160 | 0 219 IRQ_TYPE_LEVEL_HIGH>; |
| 115 | interrupt-names = "error", | 161 | interrupt-names = "error", |
| 116 | "ch0", "ch1", "ch2", "ch3", | 162 | "ch0", "ch1", "ch2", "ch3", |
| 117 | "ch4", "ch5", "ch6", "ch7", | 163 | "ch4", "ch5", "ch6", "ch7", |
| @@ -126,7 +172,7 @@ | |||
| 126 | reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, | 172 | reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>, |
| 127 | <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>; | 173 | <0 0xe61f0200 0 0x38>, <0 0xe61f0300 0 0x38>; |
| 128 | interrupt-parent = <&gic>; | 174 | interrupt-parent = <&gic>; |
| 129 | interrupts = <0 69 4>; | 175 | interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; |
| 130 | }; | 176 | }; |
| 131 | 177 | ||
| 132 | i2c0: i2c@e6500000 { | 178 | i2c0: i2c@e6500000 { |
| @@ -135,7 +181,7 @@ | |||
| 135 | compatible = "renesas,rmobile-iic"; | 181 | compatible = "renesas,rmobile-iic"; |
| 136 | reg = <0 0xe6500000 0 0x428>; | 182 | reg = <0 0xe6500000 0 0x428>; |
| 137 | interrupt-parent = <&gic>; | 183 | interrupt-parent = <&gic>; |
| 138 | interrupts = <0 174 0x4>; | 184 | interrupts = <0 174 IRQ_TYPE_LEVEL_HIGH>; |
| 139 | status = "disabled"; | 185 | status = "disabled"; |
| 140 | }; | 186 | }; |
| 141 | 187 | ||
| @@ -145,7 +191,7 @@ | |||
| 145 | compatible = "renesas,rmobile-iic"; | 191 | compatible = "renesas,rmobile-iic"; |
| 146 | reg = <0 0xe6510000 0 0x428>; | 192 | reg = <0 0xe6510000 0 0x428>; |
| 147 | interrupt-parent = <&gic>; | 193 | interrupt-parent = <&gic>; |
| 148 | interrupts = <0 175 0x4>; | 194 | interrupts = <0 175 IRQ_TYPE_LEVEL_HIGH>; |
| 149 | status = "disabled"; | 195 | status = "disabled"; |
| 150 | }; | 196 | }; |
| 151 | 197 | ||
| @@ -155,7 +201,7 @@ | |||
| 155 | compatible = "renesas,rmobile-iic"; | 201 | compatible = "renesas,rmobile-iic"; |
| 156 | reg = <0 0xe6520000 0 0x428>; | 202 | reg = <0 0xe6520000 0 0x428>; |
| 157 | interrupt-parent = <&gic>; | 203 | interrupt-parent = <&gic>; |
| 158 | interrupts = <0 176 0x4>; | 204 | interrupts = <0 176 IRQ_TYPE_LEVEL_HIGH>; |
| 159 | status = "disabled"; | 205 | status = "disabled"; |
| 160 | }; | 206 | }; |
| 161 | 207 | ||
| @@ -165,7 +211,7 @@ | |||
| 165 | compatible = "renesas,rmobile-iic"; | 211 | compatible = "renesas,rmobile-iic"; |
| 166 | reg = <0 0xe6530000 0 0x428>; | 212 | reg = <0 0xe6530000 0 0x428>; |
| 167 | interrupt-parent = <&gic>; | 213 | interrupt-parent = <&gic>; |
| 168 | interrupts = <0 177 0x4>; | 214 | interrupts = <0 177 IRQ_TYPE_LEVEL_HIGH>; |
| 169 | status = "disabled"; | 215 | status = "disabled"; |
| 170 | }; | 216 | }; |
| 171 | 217 | ||
| @@ -175,7 +221,7 @@ | |||
| 175 | compatible = "renesas,rmobile-iic"; | 221 | compatible = "renesas,rmobile-iic"; |
| 176 | reg = <0 0xe6540000 0 0x428>; | 222 | reg = <0 0xe6540000 0 0x428>; |
| 177 | interrupt-parent = <&gic>; | 223 | interrupt-parent = <&gic>; |
| 178 | interrupts = <0 178 0x4>; | 224 | interrupts = <0 178 IRQ_TYPE_LEVEL_HIGH>; |
| 179 | status = "disabled"; | 225 | status = "disabled"; |
| 180 | }; | 226 | }; |
| 181 | 227 | ||
| @@ -185,7 +231,7 @@ | |||
| 185 | compatible = "renesas,rmobile-iic"; | 231 | compatible = "renesas,rmobile-iic"; |
| 186 | reg = <0 0xe60b0000 0 0x428>; | 232 | reg = <0 0xe60b0000 0 0x428>; |
| 187 | interrupt-parent = <&gic>; | 233 | interrupt-parent = <&gic>; |
| 188 | interrupts = <0 179 0x4>; | 234 | interrupts = <0 179 IRQ_TYPE_LEVEL_HIGH>; |
| 189 | status = "disabled"; | 235 | status = "disabled"; |
| 190 | }; | 236 | }; |
| 191 | 237 | ||
| @@ -195,7 +241,7 @@ | |||
| 195 | compatible = "renesas,rmobile-iic"; | 241 | compatible = "renesas,rmobile-iic"; |
| 196 | reg = <0 0xe6550000 0 0x428>; | 242 | reg = <0 0xe6550000 0 0x428>; |
| 197 | interrupt-parent = <&gic>; | 243 | interrupt-parent = <&gic>; |
| 198 | interrupts = <0 184 0x4>; | 244 | interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>; |
| 199 | status = "disabled"; | 245 | status = "disabled"; |
| 200 | }; | 246 | }; |
| 201 | 247 | ||
| @@ -205,7 +251,7 @@ | |||
| 205 | compatible = "renesas,rmobile-iic"; | 251 | compatible = "renesas,rmobile-iic"; |
| 206 | reg = <0 0xe6560000 0 0x428>; | 252 | reg = <0 0xe6560000 0 0x428>; |
| 207 | interrupt-parent = <&gic>; | 253 | interrupt-parent = <&gic>; |
| 208 | interrupts = <0 185 0x4>; | 254 | interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>; |
| 209 | status = "disabled"; | 255 | status = "disabled"; |
| 210 | }; | 256 | }; |
| 211 | 257 | ||
| @@ -215,24 +261,24 @@ | |||
| 215 | compatible = "renesas,rmobile-iic"; | 261 | compatible = "renesas,rmobile-iic"; |
| 216 | reg = <0 0xe6570000 0 0x428>; | 262 | reg = <0 0xe6570000 0 0x428>; |
| 217 | interrupt-parent = <&gic>; | 263 | interrupt-parent = <&gic>; |
| 218 | interrupts = <0 173 0x4>; | 264 | interrupts = <0 173 IRQ_TYPE_LEVEL_HIGH>; |
| 219 | status = "disabled"; | 265 | status = "disabled"; |
| 220 | }; | 266 | }; |
| 221 | 267 | ||
| 222 | mmcif0: mmcif@ee200000 { | 268 | mmcif0: mmc@ee200000 { |
| 223 | compatible = "renesas,sh-mmcif"; | 269 | compatible = "renesas,sh-mmcif"; |
| 224 | reg = <0 0xee200000 0 0x80>; | 270 | reg = <0 0xee200000 0 0x80>; |
| 225 | interrupt-parent = <&gic>; | 271 | interrupt-parent = <&gic>; |
| 226 | interrupts = <0 169 0x4>; | 272 | interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>; |
| 227 | reg-io-width = <4>; | 273 | reg-io-width = <4>; |
| 228 | status = "disabled"; | 274 | status = "disabled"; |
| 229 | }; | 275 | }; |
| 230 | 276 | ||
| 231 | mmcif1: mmcif@ee220000 { | 277 | mmcif1: mmc@ee220000 { |
| 232 | compatible = "renesas,sh-mmcif"; | 278 | compatible = "renesas,sh-mmcif"; |
| 233 | reg = <0 0xee220000 0 0x80>; | 279 | reg = <0 0xee220000 0 0x80>; |
| 234 | interrupt-parent = <&gic>; | 280 | interrupt-parent = <&gic>; |
| 235 | interrupts = <0 170 0x4>; | 281 | interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>; |
| 236 | reg-io-width = <4>; | 282 | reg-io-width = <4>; |
| 237 | status = "disabled"; | 283 | status = "disabled"; |
| 238 | }; | 284 | }; |
| @@ -242,31 +288,47 @@ | |||
| 242 | reg = <0 0xe6050000 0 0x9000>; | 288 | reg = <0 0xe6050000 0 0x9000>; |
| 243 | gpio-controller; | 289 | gpio-controller; |
| 244 | #gpio-cells = <2>; | 290 | #gpio-cells = <2>; |
| 291 | interrupts-extended = | ||
| 292 | <&irqc0 0 0>, <&irqc0 1 0>, <&irqc0 2 0>, <&irqc0 3 0>, | ||
| 293 | <&irqc0 4 0>, <&irqc0 5 0>, <&irqc0 6 0>, <&irqc0 7 0>, | ||
| 294 | <&irqc0 8 0>, <&irqc0 9 0>, <&irqc0 10 0>, <&irqc0 11 0>, | ||
| 295 | <&irqc0 12 0>, <&irqc0 13 0>, <&irqc0 14 0>, <&irqc0 15 0>, | ||
| 296 | <&irqc0 16 0>, <&irqc0 17 0>, <&irqc0 18 0>, <&irqc0 19 0>, | ||
| 297 | <&irqc0 20 0>, <&irqc0 21 0>, <&irqc0 22 0>, <&irqc0 23 0>, | ||
| 298 | <&irqc0 24 0>, <&irqc0 25 0>, <&irqc0 26 0>, <&irqc0 27 0>, | ||
| 299 | <&irqc0 28 0>, <&irqc0 29 0>, <&irqc0 30 0>, <&irqc0 31 0>, | ||
| 300 | <&irqc1 0 0>, <&irqc1 1 0>, <&irqc1 2 0>, <&irqc1 3 0>, | ||
| 301 | <&irqc1 4 0>, <&irqc1 5 0>, <&irqc1 6 0>, <&irqc1 7 0>, | ||
| 302 | <&irqc1 8 0>, <&irqc1 9 0>, <&irqc1 10 0>, <&irqc1 11 0>, | ||
| 303 | <&irqc1 12 0>, <&irqc1 13 0>, <&irqc1 14 0>, <&irqc1 15 0>, | ||
| 304 | <&irqc1 16 0>, <&irqc1 17 0>, <&irqc1 18 0>, <&irqc1 19 0>, | ||
| 305 | <&irqc1 20 0>, <&irqc1 21 0>, <&irqc1 22 0>, <&irqc1 23 0>, | ||
| 306 | <&irqc1 24 0>, <&irqc1 25 0>; | ||
| 245 | }; | 307 | }; |
| 246 | 308 | ||
| 247 | sdhi0: sdhi@ee100000 { | 309 | sdhi0: sd@ee100000 { |
| 248 | compatible = "renesas,sdhi-r8a73a4"; | 310 | compatible = "renesas,sdhi-r8a73a4"; |
| 249 | reg = <0 0xee100000 0 0x100>; | 311 | reg = <0 0xee100000 0 0x100>; |
| 250 | interrupt-parent = <&gic>; | 312 | interrupt-parent = <&gic>; |
| 251 | interrupts = <0 165 4>; | 313 | interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>; |
| 252 | cap-sd-highspeed; | 314 | cap-sd-highspeed; |
| 253 | status = "disabled"; | 315 | status = "disabled"; |
| 254 | }; | 316 | }; |
| 255 | 317 | ||
| 256 | sdhi1: sdhi@ee120000 { | 318 | sdhi1: sd@ee120000 { |
| 257 | compatible = "renesas,sdhi-r8a73a4"; | 319 | compatible = "renesas,sdhi-r8a73a4"; |
| 258 | reg = <0 0xee120000 0 0x100>; | 320 | reg = <0 0xee120000 0 0x100>; |
| 259 | interrupt-parent = <&gic>; | 321 | interrupt-parent = <&gic>; |
| 260 | interrupts = <0 166 4>; | 322 | interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>; |
| 261 | cap-sd-highspeed; | 323 | cap-sd-highspeed; |
| 262 | status = "disabled"; | 324 | status = "disabled"; |
| 263 | }; | 325 | }; |
| 264 | 326 | ||
| 265 | sdhi2: sdhi@ee140000 { | 327 | sdhi2: sd@ee140000 { |
| 266 | compatible = "renesas,sdhi-r8a73a4"; | 328 | compatible = "renesas,sdhi-r8a73a4"; |
| 267 | reg = <0 0xee140000 0 0x100>; | 329 | reg = <0 0xee140000 0 0x100>; |
| 268 | interrupt-parent = <&gic>; | 330 | interrupt-parent = <&gic>; |
| 269 | interrupts = <0 167 4>; | 331 | interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>; |
| 270 | cap-sd-highspeed; | 332 | cap-sd-highspeed; |
| 271 | status = "disabled"; | 333 | status = "disabled"; |
| 272 | }; | 334 | }; |
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts index 1c56c5e56950..95a849bf921f 100644 --- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts +++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts | |||
| @@ -9,8 +9,9 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "r8a7740.dtsi" | 12 | #include "r8a7740.dtsi" |
| 13 | #include <dt-bindings/gpio/gpio.h> | 13 | #include <dt-bindings/gpio/gpio.h> |
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 14 | #include <dt-bindings/pwm/pwm.h> | 15 | #include <dt-bindings/pwm/pwm.h> |
| 15 | 16 | ||
| 16 | / { | 17 | / { |
| @@ -62,6 +63,44 @@ | |||
| 62 | enable-active-high; | 63 | enable-active-high; |
| 63 | }; | 64 | }; |
| 64 | 65 | ||
| 66 | reg_5p0v: regulator@3 { | ||
| 67 | compatible = "regulator-fixed"; | ||
| 68 | regulator-name = "fixed-5.0V"; | ||
| 69 | regulator-min-microvolt = <5000000>; | ||
| 70 | regulator-max-microvolt = <5000000>; | ||
| 71 | regulator-always-on; | ||
| 72 | regulator-boot-on; | ||
| 73 | }; | ||
| 74 | |||
| 75 | gpio-keys { | ||
| 76 | compatible = "gpio-keys"; | ||
| 77 | |||
| 78 | power-key { | ||
| 79 | gpios = <&pfc 99 GPIO_ACTIVE_LOW>; | ||
| 80 | linux,code = <116>; | ||
| 81 | label = "SW3"; | ||
| 82 | gpio-key,wakeup; | ||
| 83 | }; | ||
| 84 | |||
| 85 | back-key { | ||
| 86 | gpios = <&pfc 100 GPIO_ACTIVE_LOW>; | ||
| 87 | linux,code = <158>; | ||
| 88 | label = "SW4"; | ||
| 89 | }; | ||
| 90 | |||
| 91 | menu-key { | ||
| 92 | gpios = <&pfc 97 GPIO_ACTIVE_LOW>; | ||
| 93 | linux,code = <139>; | ||
| 94 | label = "SW5"; | ||
| 95 | }; | ||
| 96 | |||
| 97 | home-key { | ||
| 98 | gpios = <&pfc 98 GPIO_ACTIVE_LOW>; | ||
| 99 | linux,code = <102>; | ||
| 100 | label = "SW6"; | ||
| 101 | }; | ||
| 102 | }; | ||
| 103 | |||
| 65 | leds { | 104 | leds { |
| 66 | compatible = "gpio-leds"; | 105 | compatible = "gpio-leds"; |
| 67 | led1 { | 106 | led1 { |
| @@ -85,32 +124,58 @@ | |||
| 85 | default-brightness-level = <9>; | 124 | default-brightness-level = <9>; |
| 86 | pinctrl-0 = <&backlight_pins>; | 125 | pinctrl-0 = <&backlight_pins>; |
| 87 | pinctrl-names = "default"; | 126 | pinctrl-names = "default"; |
| 127 | power-supply = <®_5p0v>; | ||
| 128 | enable-gpios = <&pfc 61 GPIO_ACTIVE_HIGH>; | ||
| 129 | }; | ||
| 130 | |||
| 131 | sound { | ||
| 132 | compatible = "simple-audio-card"; | ||
| 133 | |||
| 134 | simple-audio-card,format = "i2s"; | ||
| 135 | |||
| 136 | simple-audio-card,cpu { | ||
| 137 | sound-dai = <&sh_fsi2 0>; | ||
| 138 | bitclock-inversion; | ||
| 139 | }; | ||
| 140 | |||
| 141 | simple-audio-card,codec { | ||
| 142 | sound-dai = <&wm8978>; | ||
| 143 | bitclock-master; | ||
| 144 | frame-master; | ||
| 145 | system-clock-frequency = <12288000>; | ||
| 146 | }; | ||
| 88 | }; | 147 | }; |
| 89 | }; | 148 | }; |
| 90 | 149 | ||
| 91 | &i2c0 { | 150 | &i2c0 { |
| 92 | status = "okay"; | 151 | status = "okay"; |
| 93 | touchscreen: st1232@55 { | 152 | touchscreen@55 { |
| 94 | compatible = "sitronix,st1232"; | 153 | compatible = "sitronix,st1232"; |
| 95 | reg = <0x55>; | 154 | reg = <0x55>; |
| 96 | interrupt-parent = <&irqpin1>; | 155 | interrupt-parent = <&irqpin1>; |
| 97 | interrupts = <2 0>; /* IRQ10: hwirq 2 on irqpin1 */ | 156 | interrupts = <2 IRQ_TYPE_LEVEL_LOW>; |
| 98 | pinctrl-0 = <&st1232_pins>; | 157 | pinctrl-0 = <&st1232_pins>; |
| 99 | pinctrl-names = "default"; | 158 | pinctrl-names = "default"; |
| 100 | gpios = <&pfc 166 GPIO_ACTIVE_LOW>; | 159 | gpios = <&pfc 166 GPIO_ACTIVE_LOW>; |
| 101 | }; | 160 | }; |
| 161 | |||
| 162 | wm8978: wm8978@1a { | ||
| 163 | #sound-dai-cells = <0>; | ||
| 164 | compatible = "wlf,wm8978"; | ||
| 165 | reg = <0x1a>; | ||
| 166 | }; | ||
| 102 | }; | 167 | }; |
| 103 | 168 | ||
| 104 | &pfc { | 169 | &pfc { |
| 105 | pinctrl-0 = <&scifa1_pins>; | 170 | pinctrl-0 = <&scifa1_pins>; |
| 106 | pinctrl-names = "default"; | 171 | pinctrl-names = "default"; |
| 107 | 172 | ||
| 108 | scifa1_pins: scifa1 { | 173 | scifa1_pins: serial1 { |
| 109 | renesas,groups = "scifa1_data"; | 174 | renesas,groups = "scifa1_data"; |
| 110 | renesas,function = "scifa1"; | 175 | renesas,function = "scifa1"; |
| 111 | }; | 176 | }; |
| 112 | 177 | ||
| 113 | st1232_pins: st1232 { | 178 | st1232_pins: touchscreen { |
| 114 | renesas,groups = "intc_irq10"; | 179 | renesas,groups = "intc_irq10"; |
| 115 | renesas,function = "intc"; | 180 | renesas,function = "intc"; |
| 116 | }; | 181 | }; |
| @@ -125,10 +190,16 @@ | |||
| 125 | renesas,function = "mmc0"; | 190 | renesas,function = "mmc0"; |
| 126 | }; | 191 | }; |
| 127 | 192 | ||
| 128 | sdhi0_pins: sdhi0 { | 193 | sdhi0_pins: sd0 { |
| 129 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_wp"; | 194 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_wp"; |
| 130 | renesas,function = "sdhi0"; | 195 | renesas,function = "sdhi0"; |
| 131 | }; | 196 | }; |
| 197 | |||
| 198 | fsia_pins: sounda { | ||
| 199 | renesas,groups = "fsia_sclk_in", "fsia_mclk_out", | ||
| 200 | "fsia_data_in_1", "fsia_data_out_0"; | ||
| 201 | renesas,function = "fsia"; | ||
| 202 | }; | ||
| 132 | }; | 203 | }; |
| 133 | 204 | ||
| 134 | &tpu { | 205 | &tpu { |
| @@ -155,3 +226,10 @@ | |||
| 155 | cd-gpios = <&pfc 167 GPIO_ACTIVE_LOW>; | 226 | cd-gpios = <&pfc 167 GPIO_ACTIVE_LOW>; |
| 156 | status = "okay"; | 227 | status = "okay"; |
| 157 | }; | 228 | }; |
| 229 | |||
| 230 | &sh_fsi2 { | ||
| 231 | pinctrl-0 = <&fsia_pins>; | ||
| 232 | pinctrl-names = "default"; | ||
| 233 | |||
| 234 | status = "okay"; | ||
| 235 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts index 426cd9c3e1c4..a06a11e1a840 100644 --- a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts +++ b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "r8a7740.dtsi" | 12 | #include "r8a7740.dtsi" |
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "armadillo 800 eva"; | 15 | model = "armadillo 800 eva"; |
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi index ae1e230f711d..8280884bfa59 100644 --- a/arch/arm/boot/dts/r8a7740.dtsi +++ b/arch/arm/boot/dts/r8a7740.dtsi | |||
| @@ -10,6 +10,8 @@ | |||
| 10 | 10 | ||
| 11 | /include/ "skeleton.dtsi" | 11 | /include/ "skeleton.dtsi" |
| 12 | 12 | ||
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 14 | |||
| 13 | / { | 15 | / { |
| 14 | compatible = "renesas,r8a7740"; | 16 | compatible = "renesas,r8a7740"; |
| 15 | 17 | ||
| @@ -34,12 +36,12 @@ | |||
| 34 | 36 | ||
| 35 | pmu { | 37 | pmu { |
| 36 | compatible = "arm,cortex-a9-pmu"; | 38 | compatible = "arm,cortex-a9-pmu"; |
| 37 | interrupts = <0 83 4>; | 39 | interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>; |
| 38 | }; | 40 | }; |
| 39 | 41 | ||
| 40 | /* irqpin0: IRQ0 - IRQ7 */ | 42 | /* irqpin0: IRQ0 - IRQ7 */ |
| 41 | irqpin0: irqpin@e6900000 { | 43 | irqpin0: irqpin@e6900000 { |
| 42 | compatible = "renesas,intc-irqpin"; | 44 | compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin"; |
| 43 | #interrupt-cells = <2>; | 45 | #interrupt-cells = <2>; |
| 44 | interrupt-controller; | 46 | interrupt-controller; |
| 45 | reg = <0xe6900000 4>, | 47 | reg = <0xe6900000 4>, |
| @@ -48,19 +50,19 @@ | |||
| 48 | <0xe6900040 1>, | 50 | <0xe6900040 1>, |
| 49 | <0xe6900060 1>; | 51 | <0xe6900060 1>; |
| 50 | interrupt-parent = <&gic>; | 52 | interrupt-parent = <&gic>; |
| 51 | interrupts = <0 149 0x4 | 53 | interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH |
| 52 | 0 149 0x4 | 54 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 53 | 0 149 0x4 | 55 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 54 | 0 149 0x4 | 56 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 55 | 0 149 0x4 | 57 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 56 | 0 149 0x4 | 58 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 57 | 0 149 0x4 | 59 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 58 | 0 149 0x4>; | 60 | 0 149 IRQ_TYPE_LEVEL_HIGH>; |
| 59 | }; | 61 | }; |
| 60 | 62 | ||
| 61 | /* irqpin1: IRQ8 - IRQ15 */ | 63 | /* irqpin1: IRQ8 - IRQ15 */ |
| 62 | irqpin1: irqpin@e6900004 { | 64 | irqpin1: irqpin@e6900004 { |
| 63 | compatible = "renesas,intc-irqpin"; | 65 | compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin"; |
| 64 | #interrupt-cells = <2>; | 66 | #interrupt-cells = <2>; |
| 65 | interrupt-controller; | 67 | interrupt-controller; |
| 66 | reg = <0xe6900004 4>, | 68 | reg = <0xe6900004 4>, |
| @@ -69,19 +71,19 @@ | |||
| 69 | <0xe6900044 1>, | 71 | <0xe6900044 1>, |
| 70 | <0xe6900064 1>; | 72 | <0xe6900064 1>; |
| 71 | interrupt-parent = <&gic>; | 73 | interrupt-parent = <&gic>; |
| 72 | interrupts = <0 149 0x4 | 74 | interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH |
| 73 | 0 149 0x4 | 75 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 74 | 0 149 0x4 | 76 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 75 | 0 149 0x4 | 77 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 76 | 0 149 0x4 | 78 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 77 | 0 149 0x4 | 79 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 78 | 0 149 0x4 | 80 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 79 | 0 149 0x4>; | 81 | 0 149 IRQ_TYPE_LEVEL_HIGH>; |
| 80 | }; | 82 | }; |
| 81 | 83 | ||
| 82 | /* irqpin2: IRQ16 - IRQ23 */ | 84 | /* irqpin2: IRQ16 - IRQ23 */ |
| 83 | irqpin2: irqpin@e6900008 { | 85 | irqpin2: irqpin@e6900008 { |
| 84 | compatible = "renesas,intc-irqpin"; | 86 | compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin"; |
| 85 | #interrupt-cells = <2>; | 87 | #interrupt-cells = <2>; |
| 86 | interrupt-controller; | 88 | interrupt-controller; |
| 87 | reg = <0xe6900008 4>, | 89 | reg = <0xe6900008 4>, |
| @@ -90,19 +92,19 @@ | |||
| 90 | <0xe6900048 1>, | 92 | <0xe6900048 1>, |
| 91 | <0xe6900068 1>; | 93 | <0xe6900068 1>; |
| 92 | interrupt-parent = <&gic>; | 94 | interrupt-parent = <&gic>; |
| 93 | interrupts = <0 149 0x4 | 95 | interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH |
| 94 | 0 149 0x4 | 96 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 95 | 0 149 0x4 | 97 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 96 | 0 149 0x4 | 98 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 97 | 0 149 0x4 | 99 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 98 | 0 149 0x4 | 100 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 99 | 0 149 0x4 | 101 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 100 | 0 149 0x4>; | 102 | 0 149 IRQ_TYPE_LEVEL_HIGH>; |
| 101 | }; | 103 | }; |
| 102 | 104 | ||
| 103 | /* irqpin3: IRQ24 - IRQ31 */ | 105 | /* irqpin3: IRQ24 - IRQ31 */ |
| 104 | irqpin3: irqpin@e690000c { | 106 | irqpin3: irqpin@e690000c { |
| 105 | compatible = "renesas,intc-irqpin"; | 107 | compatible = "renesas,intc-irqpin-r8a7740", "renesas,intc-irqpin"; |
| 106 | #interrupt-cells = <2>; | 108 | #interrupt-cells = <2>; |
| 107 | interrupt-controller; | 109 | interrupt-controller; |
| 108 | reg = <0xe690000c 4>, | 110 | reg = <0xe690000c 4>, |
| @@ -111,14 +113,14 @@ | |||
| 111 | <0xe690004c 1>, | 113 | <0xe690004c 1>, |
| 112 | <0xe690006c 1>; | 114 | <0xe690006c 1>; |
| 113 | interrupt-parent = <&gic>; | 115 | interrupt-parent = <&gic>; |
| 114 | interrupts = <0 149 0x4 | 116 | interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH |
| 115 | 0 149 0x4 | 117 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 116 | 0 149 0x4 | 118 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 117 | 0 149 0x4 | 119 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 118 | 0 149 0x4 | 120 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 119 | 0 149 0x4 | 121 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 120 | 0 149 0x4 | 122 | 0 149 IRQ_TYPE_LEVEL_HIGH |
| 121 | 0 149 0x4>; | 123 | 0 149 IRQ_TYPE_LEVEL_HIGH>; |
| 122 | }; | 124 | }; |
| 123 | 125 | ||
| 124 | i2c0: i2c@fff20000 { | 126 | i2c0: i2c@fff20000 { |
| @@ -127,10 +129,10 @@ | |||
| 127 | compatible = "renesas,rmobile-iic"; | 129 | compatible = "renesas,rmobile-iic"; |
| 128 | reg = <0xfff20000 0x425>; | 130 | reg = <0xfff20000 0x425>; |
| 129 | interrupt-parent = <&gic>; | 131 | interrupt-parent = <&gic>; |
| 130 | interrupts = <0 201 0x4 | 132 | interrupts = <0 201 IRQ_TYPE_LEVEL_HIGH |
| 131 | 0 202 0x4 | 133 | 0 202 IRQ_TYPE_LEVEL_HIGH |
| 132 | 0 203 0x4 | 134 | 0 203 IRQ_TYPE_LEVEL_HIGH |
| 133 | 0 204 0x4>; | 135 | 0 204 IRQ_TYPE_LEVEL_HIGH>; |
| 134 | status = "disabled"; | 136 | status = "disabled"; |
| 135 | }; | 137 | }; |
| 136 | 138 | ||
| @@ -140,10 +142,10 @@ | |||
| 140 | compatible = "renesas,rmobile-iic"; | 142 | compatible = "renesas,rmobile-iic"; |
| 141 | reg = <0xe6c20000 0x425>; | 143 | reg = <0xe6c20000 0x425>; |
| 142 | interrupt-parent = <&gic>; | 144 | interrupt-parent = <&gic>; |
| 143 | interrupts = <0 70 0x4 | 145 | interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH |
| 144 | 0 71 0x4 | 146 | 0 71 IRQ_TYPE_LEVEL_HIGH |
| 145 | 0 72 0x4 | 147 | 0 72 IRQ_TYPE_LEVEL_HIGH |
| 146 | 0 73 0x4>; | 148 | 0 73 IRQ_TYPE_LEVEL_HIGH>; |
| 147 | status = "disabled"; | 149 | status = "disabled"; |
| 148 | }; | 150 | }; |
| 149 | 151 | ||
| @@ -153,6 +155,15 @@ | |||
| 153 | <0xe605800c 0x20>; | 155 | <0xe605800c 0x20>; |
| 154 | gpio-controller; | 156 | gpio-controller; |
| 155 | #gpio-cells = <2>; | 157 | #gpio-cells = <2>; |
| 158 | interrupts-extended = | ||
| 159 | <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, | ||
| 160 | <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, | ||
| 161 | <&irqpin1 0 0>, <&irqpin1 1 0>, <&irqpin1 2 0>, <&irqpin1 3 0>, | ||
| 162 | <&irqpin1 4 0>, <&irqpin1 5 0>, <&irqpin1 6 0>, <&irqpin1 7 0>, | ||
| 163 | <&irqpin2 0 0>, <&irqpin2 1 0>, <&irqpin2 2 0>, <&irqpin2 3 0>, | ||
| 164 | <&irqpin2 4 0>, <&irqpin2 5 0>, <&irqpin2 6 0>, <&irqpin2 7 0>, | ||
| 165 | <&irqpin3 0 0>, <&irqpin3 1 0>, <&irqpin3 2 0>, <&irqpin3 3 0>, | ||
| 166 | <&irqpin3 4 0>, <&irqpin3 5 0>, <&irqpin3 6 0>, <&irqpin3 7 0>; | ||
| 156 | }; | 167 | }; |
| 157 | 168 | ||
| 158 | tpu: pwm@e6600000 { | 169 | tpu: pwm@e6600000 { |
| @@ -162,36 +173,57 @@ | |||
| 162 | #pwm-cells = <3>; | 173 | #pwm-cells = <3>; |
| 163 | }; | 174 | }; |
| 164 | 175 | ||
| 165 | mmcif0: mmcif@e6bd0000 { | 176 | mmcif0: mmc@e6bd0000 { |
| 166 | compatible = "renesas,sh-mmcif"; | 177 | compatible = "renesas,sh-mmcif"; |
| 167 | reg = <0xe6bd0000 0x100>; | 178 | reg = <0xe6bd0000 0x100>; |
| 168 | interrupt-parent = <&gic>; | 179 | interrupt-parent = <&gic>; |
| 169 | interrupts = <0 56 4 | 180 | interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH |
| 170 | 0 57 4>; | 181 | 0 57 IRQ_TYPE_LEVEL_HIGH>; |
| 171 | status = "disabled"; | 182 | status = "disabled"; |
| 172 | }; | 183 | }; |
| 173 | 184 | ||
| 174 | sdhi0: sdhi@e6850000 { | 185 | sdhi0: sd@e6850000 { |
| 175 | compatible = "renesas,sdhi-r8a7740"; | 186 | compatible = "renesas,sdhi-r8a7740"; |
| 176 | reg = <0xe6850000 0x100>; | 187 | reg = <0xe6850000 0x100>; |
| 177 | interrupt-parent = <&gic>; | 188 | interrupt-parent = <&gic>; |
| 178 | interrupts = <0 117 4 | 189 | interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH |
| 179 | 0 118 4 | 190 | 0 118 IRQ_TYPE_LEVEL_HIGH |
| 180 | 0 119 4>; | 191 | 0 119 IRQ_TYPE_LEVEL_HIGH>; |
| 181 | cap-sd-highspeed; | 192 | cap-sd-highspeed; |
| 182 | cap-sdio-irq; | 193 | cap-sdio-irq; |
| 183 | status = "disabled"; | 194 | status = "disabled"; |
| 184 | }; | 195 | }; |
| 185 | 196 | ||
| 186 | sdhi1: sdhi@e6860000 { | 197 | sdhi1: sd@e6860000 { |
| 187 | compatible = "renesas,sdhi-r8a7740"; | 198 | compatible = "renesas,sdhi-r8a7740"; |
| 188 | reg = <0xe6860000 0x100>; | 199 | reg = <0xe6860000 0x100>; |
| 189 | interrupt-parent = <&gic>; | 200 | interrupt-parent = <&gic>; |
| 190 | interrupts = <0 121 4 | 201 | interrupts = <0 121 IRQ_TYPE_LEVEL_HIGH |
| 191 | 0 122 4 | 202 | 0 122 IRQ_TYPE_LEVEL_HIGH |
| 192 | 0 123 4>; | 203 | 0 123 IRQ_TYPE_LEVEL_HIGH>; |
| 204 | cap-sd-highspeed; | ||
| 205 | cap-sdio-irq; | ||
| 206 | status = "disabled"; | ||
| 207 | }; | ||
| 208 | |||
| 209 | sdhi2: sd@e6870000 { | ||
| 210 | compatible = "renesas,sdhi-r8a7740"; | ||
| 211 | reg = <0xe6870000 0x100>; | ||
| 212 | interrupt-parent = <&gic>; | ||
| 213 | interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH | ||
| 214 | 0 126 IRQ_TYPE_LEVEL_HIGH | ||
| 215 | 0 127 IRQ_TYPE_LEVEL_HIGH>; | ||
| 193 | cap-sd-highspeed; | 216 | cap-sd-highspeed; |
| 194 | cap-sdio-irq; | 217 | cap-sdio-irq; |
| 195 | status = "disabled"; | 218 | status = "disabled"; |
| 196 | }; | 219 | }; |
| 220 | |||
| 221 | sh_fsi2: sound@fe1f0000 { | ||
| 222 | #sound-dai-cells = <1>; | ||
| 223 | compatible = "renesas,sh_fsi2"; | ||
| 224 | reg = <0xfe1f0000 0x400>; | ||
| 225 | interrupt-parent = <&gic>; | ||
| 226 | interrupts = <0 9 0x4>; | ||
| 227 | status = "disabled"; | ||
| 228 | }; | ||
| 197 | }; | 229 | }; |
diff --git a/arch/arm/boot/dts/r8a7778-bockw-reference.dts b/arch/arm/boot/dts/r8a7778-bockw-reference.dts index 969e386e852c..bb62c7a906f4 100644 --- a/arch/arm/boot/dts/r8a7778-bockw-reference.dts +++ b/arch/arm/boot/dts/r8a7778-bockw-reference.dts | |||
| @@ -15,7 +15,8 @@ | |||
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | /dts-v1/; | 17 | /dts-v1/; |
| 18 | /include/ "r8a7778.dtsi" | 18 | #include "r8a7778.dtsi" |
| 19 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 19 | 20 | ||
| 20 | / { | 21 | / { |
| 21 | model = "bockw"; | 22 | model = "bockw"; |
| @@ -45,13 +46,65 @@ | |||
| 45 | 46 | ||
| 46 | phy-mode = "mii"; | 47 | phy-mode = "mii"; |
| 47 | interrupt-parent = <&irqpin>; | 48 | interrupt-parent = <&irqpin>; |
| 48 | interrupts = <0 0>; /* IRQ0: hwirq 0 on irqpin */ | 49 | interrupts = <0 IRQ_TYPE_EDGE_FALLING>; |
| 49 | reg-io-width = <4>; | 50 | reg-io-width = <4>; |
| 50 | vddvario-supply = <&fixedregulator3v3>; | 51 | vddvario-supply = <&fixedregulator3v3>; |
| 51 | vdd33a-supply = <&fixedregulator3v3>; | 52 | vdd33a-supply = <&fixedregulator3v3>; |
| 52 | }; | 53 | }; |
| 54 | |||
| 55 | }; | ||
| 56 | |||
| 57 | &mmcif { | ||
| 58 | pinctrl-0 = <&mmc_pins>; | ||
| 59 | pinctrl-names = "default"; | ||
| 60 | |||
| 61 | vmmc-supply = <&fixedregulator3v3>; | ||
| 62 | bus-width = <8>; | ||
| 63 | broken-cd; | ||
| 64 | status = "okay"; | ||
| 53 | }; | 65 | }; |
| 54 | 66 | ||
| 55 | &irqpin { | 67 | &irqpin { |
| 56 | status = "okay"; | 68 | status = "okay"; |
| 57 | }; | 69 | }; |
| 70 | |||
| 71 | &pfc { | ||
| 72 | pinctrl-0 = <&scif0_pins>; | ||
| 73 | pinctrl-names = "default"; | ||
| 74 | |||
| 75 | scif0_pins: serial0 { | ||
| 76 | renesas,groups = "scif0_data_a", "scif0_ctrl"; | ||
| 77 | renesas,function = "scif0"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | mmc_pins: mmc { | ||
| 81 | renesas,groups = "mmc_data8", "mmc_ctrl"; | ||
| 82 | renesas,function = "mmc"; | ||
| 83 | }; | ||
| 84 | |||
| 85 | sdhi0_pins: sd0 { | ||
| 86 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", | ||
| 87 | "sdhi0_cd", "sdhi0_wp"; | ||
| 88 | renesas,function = "sdhi0"; | ||
| 89 | }; | ||
| 90 | |||
| 91 | hspi0_pins: hspi0 { | ||
| 92 | renesas,groups = "hspi0_a"; | ||
| 93 | renesas,function = "hspi0"; | ||
| 94 | }; | ||
| 95 | }; | ||
| 96 | |||
| 97 | &sdhi0 { | ||
| 98 | pinctrl-0 = <&sdhi0_pins>; | ||
| 99 | pinctrl-names = "default"; | ||
| 100 | |||
| 101 | vmmc-supply = <&fixedregulator3v3>; | ||
| 102 | bus-width = <4>; | ||
| 103 | status = "okay"; | ||
| 104 | }; | ||
| 105 | |||
| 106 | &hspi0 { | ||
| 107 | pinctrl-0 = <&hspi0_pins>; | ||
| 108 | pinctrl-names = "default"; | ||
| 109 | status = "okay"; | ||
| 110 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts index 12bbebc9c955..46a884d45175 100644 --- a/arch/arm/boot/dts/r8a7778-bockw.dts +++ b/arch/arm/boot/dts/r8a7778-bockw.dts | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | /dts-v1/; | 17 | /dts-v1/; |
| 18 | /include/ "r8a7778.dtsi" | 18 | #include "r8a7778.dtsi" |
| 19 | 19 | ||
| 20 | / { | 20 | / { |
| 21 | model = "bockw"; | 21 | model = "bockw"; |
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi index a6308a399e2d..ddb3bd7a8838 100644 --- a/arch/arm/boot/dts/r8a7778.dtsi +++ b/arch/arm/boot/dts/r8a7778.dtsi | |||
| @@ -16,6 +16,8 @@ | |||
| 16 | 16 | ||
| 17 | /include/ "skeleton.dtsi" | 17 | /include/ "skeleton.dtsi" |
| 18 | 18 | ||
| 19 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 20 | |||
| 19 | / { | 21 | / { |
| 20 | compatible = "renesas,r8a7778"; | 22 | compatible = "renesas,r8a7778"; |
| 21 | 23 | ||
| @@ -25,6 +27,12 @@ | |||
| 25 | }; | 27 | }; |
| 26 | }; | 28 | }; |
| 27 | 29 | ||
| 30 | aliases { | ||
| 31 | spi0 = &hspi0; | ||
| 32 | spi1 = &hspi1; | ||
| 33 | spi2 = &hspi2; | ||
| 34 | }; | ||
| 35 | |||
| 28 | gic: interrupt-controller@fe438000 { | 36 | gic: interrupt-controller@fe438000 { |
| 29 | compatible = "arm,cortex-a9-gic"; | 37 | compatible = "arm,cortex-a9-gic"; |
| 30 | #interrupt-cells = <3>; | 38 | #interrupt-cells = <3>; |
| @@ -35,7 +43,7 @@ | |||
| 35 | 43 | ||
| 36 | /* irqpin: IRQ0 - IRQ3 */ | 44 | /* irqpin: IRQ0 - IRQ3 */ |
| 37 | irqpin: irqpin@fe78001c { | 45 | irqpin: irqpin@fe78001c { |
| 38 | compatible = "renesas,intc-irqpin"; | 46 | compatible = "renesas,intc-irqpin-r8a7778", "renesas,intc-irqpin"; |
| 39 | #interrupt-cells = <2>; | 47 | #interrupt-cells = <2>; |
| 40 | interrupt-controller; | 48 | interrupt-controller; |
| 41 | status = "disabled"; /* default off */ | 49 | status = "disabled"; /* default off */ |
| @@ -45,10 +53,10 @@ | |||
| 45 | <0xfe780044 4>, | 53 | <0xfe780044 4>, |
| 46 | <0xfe780064 4>; | 54 | <0xfe780064 4>; |
| 47 | interrupt-parent = <&gic>; | 55 | interrupt-parent = <&gic>; |
| 48 | interrupts = <0 27 0x4 | 56 | interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH |
| 49 | 0 28 0x4 | 57 | 0 28 IRQ_TYPE_LEVEL_HIGH |
| 50 | 0 29 0x4 | 58 | 0 29 IRQ_TYPE_LEVEL_HIGH |
| 51 | 0 30 0x4>; | 59 | 0 30 IRQ_TYPE_LEVEL_HIGH>; |
| 52 | sense-bitfield-width = <2>; | 60 | sense-bitfield-width = <2>; |
| 53 | }; | 61 | }; |
| 54 | 62 | ||
| @@ -56,7 +64,7 @@ | |||
| 56 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | 64 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; |
| 57 | reg = <0xffc40000 0x2c>; | 65 | reg = <0xffc40000 0x2c>; |
| 58 | interrupt-parent = <&gic>; | 66 | interrupt-parent = <&gic>; |
| 59 | interrupts = <0 103 0x4>; | 67 | interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>; |
| 60 | #gpio-cells = <2>; | 68 | #gpio-cells = <2>; |
| 61 | gpio-controller; | 69 | gpio-controller; |
| 62 | gpio-ranges = <&pfc 0 0 32>; | 70 | gpio-ranges = <&pfc 0 0 32>; |
| @@ -68,7 +76,7 @@ | |||
| 68 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | 76 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; |
| 69 | reg = <0xffc41000 0x2c>; | 77 | reg = <0xffc41000 0x2c>; |
| 70 | interrupt-parent = <&gic>; | 78 | interrupt-parent = <&gic>; |
| 71 | interrupts = <0 103 0x4>; | 79 | interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>; |
| 72 | #gpio-cells = <2>; | 80 | #gpio-cells = <2>; |
| 73 | gpio-controller; | 81 | gpio-controller; |
| 74 | gpio-ranges = <&pfc 0 32 32>; | 82 | gpio-ranges = <&pfc 0 32 32>; |
| @@ -80,7 +88,7 @@ | |||
| 80 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | 88 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; |
| 81 | reg = <0xffc42000 0x2c>; | 89 | reg = <0xffc42000 0x2c>; |
| 82 | interrupt-parent = <&gic>; | 90 | interrupt-parent = <&gic>; |
| 83 | interrupts = <0 103 0x4>; | 91 | interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>; |
| 84 | #gpio-cells = <2>; | 92 | #gpio-cells = <2>; |
| 85 | gpio-controller; | 93 | gpio-controller; |
| 86 | gpio-ranges = <&pfc 0 64 32>; | 94 | gpio-ranges = <&pfc 0 64 32>; |
| @@ -92,7 +100,7 @@ | |||
| 92 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | 100 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; |
| 93 | reg = <0xffc43000 0x2c>; | 101 | reg = <0xffc43000 0x2c>; |
| 94 | interrupt-parent = <&gic>; | 102 | interrupt-parent = <&gic>; |
| 95 | interrupts = <0 103 0x4>; | 103 | interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>; |
| 96 | #gpio-cells = <2>; | 104 | #gpio-cells = <2>; |
| 97 | gpio-controller; | 105 | gpio-controller; |
| 98 | gpio-ranges = <&pfc 0 96 32>; | 106 | gpio-ranges = <&pfc 0 96 32>; |
| @@ -104,7 +112,7 @@ | |||
| 104 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; | 112 | compatible = "renesas,gpio-r8a7778", "renesas,gpio-rcar"; |
| 105 | reg = <0xffc44000 0x2c>; | 113 | reg = <0xffc44000 0x2c>; |
| 106 | interrupt-parent = <&gic>; | 114 | interrupt-parent = <&gic>; |
| 107 | interrupts = <0 103 0x4>; | 115 | interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>; |
| 108 | #gpio-cells = <2>; | 116 | #gpio-cells = <2>; |
| 109 | gpio-controller; | 117 | gpio-controller; |
| 110 | gpio-ranges = <&pfc 0 128 27>; | 118 | gpio-ranges = <&pfc 0 128 27>; |
| @@ -114,6 +122,148 @@ | |||
| 114 | 122 | ||
| 115 | pfc: pfc@fffc0000 { | 123 | pfc: pfc@fffc0000 { |
| 116 | compatible = "renesas,pfc-r8a7778"; | 124 | compatible = "renesas,pfc-r8a7778"; |
| 117 | reg = <0xfffc000 0x118>; | 125 | reg = <0xfffc0000 0x118>; |
| 126 | }; | ||
| 127 | |||
| 128 | i2c0: i2c@ffc70000 { | ||
| 129 | #address-cells = <1>; | ||
| 130 | #size-cells = <0>; | ||
| 131 | compatible = "renesas,i2c-r8a7778"; | ||
| 132 | reg = <0xffc70000 0x1000>; | ||
| 133 | interrupt-parent = <&gic>; | ||
| 134 | interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>; | ||
| 135 | status = "disabled"; | ||
| 136 | }; | ||
| 137 | |||
| 138 | i2c1: i2c@ffc71000 { | ||
| 139 | #address-cells = <1>; | ||
| 140 | #size-cells = <0>; | ||
| 141 | compatible = "renesas,i2c-r8a7778"; | ||
| 142 | reg = <0xffc71000 0x1000>; | ||
| 143 | interrupt-parent = <&gic>; | ||
| 144 | interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>; | ||
| 145 | status = "disabled"; | ||
| 146 | }; | ||
| 147 | |||
| 148 | i2c2: i2c@ffc72000 { | ||
| 149 | #address-cells = <1>; | ||
| 150 | #size-cells = <0>; | ||
| 151 | compatible = "renesas,i2c-r8a7778"; | ||
| 152 | reg = <0xffc72000 0x1000>; | ||
| 153 | interrupt-parent = <&gic>; | ||
| 154 | interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>; | ||
| 155 | status = "disabled"; | ||
| 156 | }; | ||
| 157 | |||
| 158 | i2c3: i2c@ffc73000 { | ||
| 159 | #address-cells = <1>; | ||
| 160 | #size-cells = <0>; | ||
| 161 | compatible = "renesas,i2c-r8a7778"; | ||
| 162 | reg = <0xffc73000 0x1000>; | ||
| 163 | interrupt-parent = <&gic>; | ||
| 164 | interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>; | ||
| 165 | status = "disabled"; | ||
| 166 | }; | ||
| 167 | |||
| 168 | mmcif: mmc@ffe4e000 { | ||
| 169 | compatible = "renesas,sh-mmcif"; | ||
| 170 | reg = <0xffe4e000 0x100>; | ||
| 171 | interrupt-parent = <&gic>; | ||
| 172 | interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>; | ||
| 173 | status = "disabled"; | ||
| 174 | }; | ||
| 175 | |||
| 176 | sdhi0: sd@ffe4c000 { | ||
| 177 | compatible = "renesas,sdhi-r8a7778"; | ||
| 178 | reg = <0xffe4c000 0x100>; | ||
| 179 | interrupt-parent = <&gic>; | ||
| 180 | interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>; | ||
| 181 | cap-sd-highspeed; | ||
| 182 | cap-sdio-irq; | ||
| 183 | status = "disabled"; | ||
| 184 | }; | ||
| 185 | |||
| 186 | sdhi1: sd@ffe4d000 { | ||
| 187 | compatible = "renesas,sdhi-r8a7778"; | ||
| 188 | reg = <0xffe4d000 0x100>; | ||
| 189 | interrupt-parent = <&gic>; | ||
| 190 | interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>; | ||
| 191 | cap-sd-highspeed; | ||
| 192 | cap-sdio-irq; | ||
| 193 | status = "disabled"; | ||
| 194 | }; | ||
| 195 | |||
| 196 | sdhi2: sd@ffe4f000 { | ||
| 197 | compatible = "renesas,sdhi-r8a7778"; | ||
| 198 | reg = <0xffe4f000 0x100>; | ||
| 199 | interrupt-parent = <&gic>; | ||
| 200 | interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; | ||
| 201 | cap-sd-highspeed; | ||
| 202 | cap-sdio-irq; | ||
| 203 | status = "disabled"; | ||
| 204 | }; | ||
| 205 | |||
| 206 | i2c0: i2c@ffc70000 { | ||
| 207 | #address-cells = <1>; | ||
| 208 | #size-cells = <0>; | ||
| 209 | compatible = "renesas,i2c-r8a7778"; | ||
| 210 | reg = <0xffc70000 0x1000>; | ||
| 211 | interrupt-parent = <&gic>; | ||
| 212 | interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>; | ||
| 213 | status = "disabled"; | ||
| 214 | }; | ||
| 215 | |||
| 216 | i2c1: i2c@ffc71000 { | ||
| 217 | #address-cells = <1>; | ||
| 218 | #size-cells = <0>; | ||
| 219 | compatible = "renesas,i2c-r8a7778"; | ||
| 220 | reg = <0xffc71000 0x1000>; | ||
| 221 | interrupt-parent = <&gic>; | ||
| 222 | interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>; | ||
| 223 | status = "disabled"; | ||
| 224 | }; | ||
| 225 | |||
| 226 | i2c2: i2c@ffc72000 { | ||
| 227 | #address-cells = <1>; | ||
| 228 | #size-cells = <0>; | ||
| 229 | compatible = "renesas,i2c-r8a7778"; | ||
| 230 | reg = <0xffc72000 0x1000>; | ||
| 231 | interrupt-parent = <&gic>; | ||
| 232 | interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>; | ||
| 233 | status = "disabled"; | ||
| 234 | }; | ||
| 235 | |||
| 236 | i2c3: i2c@ffc73000 { | ||
| 237 | #address-cells = <1>; | ||
| 238 | #size-cells = <0>; | ||
| 239 | compatible = "renesas,i2c-r8a7778"; | ||
| 240 | reg = <0xffc73000 0x1000>; | ||
| 241 | interrupt-parent = <&gic>; | ||
| 242 | interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>; | ||
| 243 | status = "disabled"; | ||
| 244 | }; | ||
| 245 | |||
| 246 | hspi0: spi@fffc7000 { | ||
| 247 | compatible = "renesas,hspi"; | ||
| 248 | reg = <0xfffc7000 0x18>; | ||
| 249 | interrupt-controller = <&gic>; | ||
| 250 | interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>; | ||
| 251 | status = "disabled"; | ||
| 252 | }; | ||
| 253 | |||
| 254 | hspi1: spi@fffc8000 { | ||
| 255 | compatible = "renesas,hspi"; | ||
| 256 | reg = <0xfffc8000 0x18>; | ||
| 257 | interrupt-controller = <&gic>; | ||
| 258 | interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>; | ||
| 259 | status = "disabled"; | ||
| 260 | }; | ||
| 261 | |||
| 262 | hspi2: spi@fffc6000 { | ||
| 263 | compatible = "renesas,hspi"; | ||
| 264 | reg = <0xfffc6000 0x18>; | ||
| 265 | interrupt-controller = <&gic>; | ||
| 266 | interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>; | ||
| 267 | status = "disabled"; | ||
| 118 | }; | 268 | }; |
| 119 | }; | 269 | }; |
diff --git a/arch/arm/boot/dts/r8a7779-marzen-reference.dts b/arch/arm/boot/dts/r8a7779-marzen-reference.dts index ab4110aa3c3b..76f5eef7d1cc 100644 --- a/arch/arm/boot/dts/r8a7779-marzen-reference.dts +++ b/arch/arm/boot/dts/r8a7779-marzen-reference.dts | |||
| @@ -10,8 +10,9 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | /include/ "r8a7779.dtsi" | 13 | #include "r8a7779.dtsi" |
| 14 | #include <dt-bindings/gpio/gpio.h> | 14 | #include <dt-bindings/gpio/gpio.h> |
| 15 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 15 | 16 | ||
| 16 | / { | 17 | / { |
| 17 | model = "marzen"; | 18 | model = "marzen"; |
| @@ -43,7 +44,7 @@ | |||
| 43 | 44 | ||
| 44 | phy-mode = "mii"; | 45 | phy-mode = "mii"; |
| 45 | interrupt-parent = <&irqpin0>; | 46 | interrupt-parent = <&irqpin0>; |
| 46 | interrupts = <1 0>; /* IRQ1: hwirq 1 on irqpin0 */ | 47 | interrupts = <1 IRQ_TYPE_EDGE_FALLING>; |
| 47 | reg-io-width = <4>; | 48 | reg-io-width = <4>; |
| 48 | vddvario-supply = <&fixedregulator3v3>; | 49 | vddvario-supply = <&fixedregulator3v3>; |
| 49 | vdd33a-supply = <&fixedregulator3v3>; | 50 | vdd33a-supply = <&fixedregulator3v3>; |
| @@ -68,7 +69,7 @@ | |||
| 68 | }; | 69 | }; |
| 69 | 70 | ||
| 70 | &pfc { | 71 | &pfc { |
| 71 | pinctrl-0 = <&scif2_pins &scif4_pins &sdhi0_pins>; | 72 | pinctrl-0 = <&scif2_pins &scif4_pins>; |
| 72 | pinctrl-names = "default"; | 73 | pinctrl-names = "default"; |
| 73 | 74 | ||
| 74 | lan0_pins: lan0 { | 75 | lan0_pins: lan0 { |
| @@ -82,19 +83,38 @@ | |||
| 82 | }; | 83 | }; |
| 83 | }; | 84 | }; |
| 84 | 85 | ||
| 85 | scif2_pins: scif2 { | 86 | scif2_pins: serial2 { |
| 86 | renesas,groups = "scif2_data_c"; | 87 | renesas,groups = "scif2_data_c"; |
| 87 | renesas,function = "scif2"; | 88 | renesas,function = "scif2"; |
| 88 | }; | 89 | }; |
| 89 | 90 | ||
| 90 | scif4_pins: scif4 { | 91 | scif4_pins: serial4 { |
| 91 | renesas,groups = "scif4_data"; | 92 | renesas,groups = "scif4_data"; |
| 92 | renesas,function = "scif4"; | 93 | renesas,function = "scif4"; |
| 93 | }; | 94 | }; |
| 94 | 95 | ||
| 95 | sdhi0_pins: sdhi0 { | 96 | sdhi0_pins: sd0 { |
| 96 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", | 97 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd"; |
| 97 | "sdhi0_wp"; | ||
| 98 | renesas,function = "sdhi0"; | 98 | renesas,function = "sdhi0"; |
| 99 | }; | 99 | }; |
| 100 | |||
| 101 | hspi0_pins: hspi0 { | ||
| 102 | renesas,groups = "hspi0"; | ||
| 103 | renesas,function = "hspi0"; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | |||
| 107 | &sdhi0 { | ||
| 108 | pinctrl-0 = <&sdhi0_pins>; | ||
| 109 | pinctrl-names = "default"; | ||
| 110 | |||
| 111 | vmmc-supply = <&fixedregulator3v3>; | ||
| 112 | bus-width = <4>; | ||
| 113 | status = "okay"; | ||
| 114 | }; | ||
| 115 | |||
| 116 | &hspi0 { | ||
| 117 | pinctrl-0 = <&hspi0_pins>; | ||
| 118 | pinctrl-names = "default"; | ||
| 119 | status = "okay"; | ||
| 100 | }; | 120 | }; |
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts index f3f7f7999736..a7af2c2371f2 100644 --- a/arch/arm/boot/dts/r8a7779-marzen.dts +++ b/arch/arm/boot/dts/r8a7779-marzen.dts | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | /include/ "r8a7779.dtsi" | 13 | #include "r8a7779.dtsi" |
| 14 | 14 | ||
| 15 | / { | 15 | / { |
| 16 | model = "marzen"; | 16 | model = "marzen"; |
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi index 19faeac3fd2e..d0561d4c7c46 100644 --- a/arch/arm/boot/dts/r8a7779.dtsi +++ b/arch/arm/boot/dts/r8a7779.dtsi | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | 11 | ||
| 12 | /include/ "skeleton.dtsi" | 12 | /include/ "skeleton.dtsi" |
| 13 | 13 | ||
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 15 | |||
| 14 | / { | 16 | / { |
| 15 | compatible = "renesas,r8a7779"; | 17 | compatible = "renesas,r8a7779"; |
| 16 | 18 | ||
| @@ -40,6 +42,12 @@ | |||
| 40 | }; | 42 | }; |
| 41 | }; | 43 | }; |
| 42 | 44 | ||
| 45 | aliases { | ||
| 46 | spi0 = &hspi0; | ||
| 47 | spi1 = &hspi1; | ||
| 48 | spi2 = &hspi2; | ||
| 49 | }; | ||
| 50 | |||
| 43 | gic: interrupt-controller@f0001000 { | 51 | gic: interrupt-controller@f0001000 { |
| 44 | compatible = "arm,cortex-a9-gic"; | 52 | compatible = "arm,cortex-a9-gic"; |
| 45 | #interrupt-cells = <3>; | 53 | #interrupt-cells = <3>; |
| @@ -52,7 +60,7 @@ | |||
| 52 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 60 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 53 | reg = <0xffc40000 0x2c>; | 61 | reg = <0xffc40000 0x2c>; |
| 54 | interrupt-parent = <&gic>; | 62 | interrupt-parent = <&gic>; |
| 55 | interrupts = <0 141 0x4>; | 63 | interrupts = <0 141 IRQ_TYPE_LEVEL_HIGH>; |
| 56 | #gpio-cells = <2>; | 64 | #gpio-cells = <2>; |
| 57 | gpio-controller; | 65 | gpio-controller; |
| 58 | gpio-ranges = <&pfc 0 0 32>; | 66 | gpio-ranges = <&pfc 0 0 32>; |
| @@ -64,7 +72,7 @@ | |||
| 64 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 72 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 65 | reg = <0xffc41000 0x2c>; | 73 | reg = <0xffc41000 0x2c>; |
| 66 | interrupt-parent = <&gic>; | 74 | interrupt-parent = <&gic>; |
| 67 | interrupts = <0 142 0x4>; | 75 | interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>; |
| 68 | #gpio-cells = <2>; | 76 | #gpio-cells = <2>; |
| 69 | gpio-controller; | 77 | gpio-controller; |
| 70 | gpio-ranges = <&pfc 0 32 32>; | 78 | gpio-ranges = <&pfc 0 32 32>; |
| @@ -76,7 +84,7 @@ | |||
| 76 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 84 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 77 | reg = <0xffc42000 0x2c>; | 85 | reg = <0xffc42000 0x2c>; |
| 78 | interrupt-parent = <&gic>; | 86 | interrupt-parent = <&gic>; |
| 79 | interrupts = <0 143 0x4>; | 87 | interrupts = <0 143 IRQ_TYPE_LEVEL_HIGH>; |
| 80 | #gpio-cells = <2>; | 88 | #gpio-cells = <2>; |
| 81 | gpio-controller; | 89 | gpio-controller; |
| 82 | gpio-ranges = <&pfc 0 64 32>; | 90 | gpio-ranges = <&pfc 0 64 32>; |
| @@ -88,7 +96,7 @@ | |||
| 88 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 96 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 89 | reg = <0xffc43000 0x2c>; | 97 | reg = <0xffc43000 0x2c>; |
| 90 | interrupt-parent = <&gic>; | 98 | interrupt-parent = <&gic>; |
| 91 | interrupts = <0 144 0x4>; | 99 | interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>; |
| 92 | #gpio-cells = <2>; | 100 | #gpio-cells = <2>; |
| 93 | gpio-controller; | 101 | gpio-controller; |
| 94 | gpio-ranges = <&pfc 0 96 32>; | 102 | gpio-ranges = <&pfc 0 96 32>; |
| @@ -100,7 +108,7 @@ | |||
| 100 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 108 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 101 | reg = <0xffc44000 0x2c>; | 109 | reg = <0xffc44000 0x2c>; |
| 102 | interrupt-parent = <&gic>; | 110 | interrupt-parent = <&gic>; |
| 103 | interrupts = <0 145 0x4>; | 111 | interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>; |
| 104 | #gpio-cells = <2>; | 112 | #gpio-cells = <2>; |
| 105 | gpio-controller; | 113 | gpio-controller; |
| 106 | gpio-ranges = <&pfc 0 128 32>; | 114 | gpio-ranges = <&pfc 0 128 32>; |
| @@ -112,7 +120,7 @@ | |||
| 112 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 120 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 113 | reg = <0xffc45000 0x2c>; | 121 | reg = <0xffc45000 0x2c>; |
| 114 | interrupt-parent = <&gic>; | 122 | interrupt-parent = <&gic>; |
| 115 | interrupts = <0 146 0x4>; | 123 | interrupts = <0 146 IRQ_TYPE_LEVEL_HIGH>; |
| 116 | #gpio-cells = <2>; | 124 | #gpio-cells = <2>; |
| 117 | gpio-controller; | 125 | gpio-controller; |
| 118 | gpio-ranges = <&pfc 0 160 32>; | 126 | gpio-ranges = <&pfc 0 160 32>; |
| @@ -124,7 +132,7 @@ | |||
| 124 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; | 132 | compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; |
| 125 | reg = <0xffc46000 0x2c>; | 133 | reg = <0xffc46000 0x2c>; |
| 126 | interrupt-parent = <&gic>; | 134 | interrupt-parent = <&gic>; |
| 127 | interrupts = <0 147 0x4>; | 135 | interrupts = <0 147 IRQ_TYPE_LEVEL_HIGH>; |
| 128 | #gpio-cells = <2>; | 136 | #gpio-cells = <2>; |
| 129 | gpio-controller; | 137 | gpio-controller; |
| 130 | gpio-ranges = <&pfc 0 192 9>; | 138 | gpio-ranges = <&pfc 0 192 9>; |
| @@ -133,7 +141,7 @@ | |||
| 133 | }; | 141 | }; |
| 134 | 142 | ||
| 135 | irqpin0: irqpin@fe780010 { | 143 | irqpin0: irqpin@fe780010 { |
| 136 | compatible = "renesas,intc-irqpin"; | 144 | compatible = "renesas,intc-irqpin-r8a7779", "renesas,intc-irqpin"; |
| 137 | #interrupt-cells = <2>; | 145 | #interrupt-cells = <2>; |
| 138 | status = "disabled"; | 146 | status = "disabled"; |
| 139 | interrupt-controller; | 147 | interrupt-controller; |
| @@ -143,50 +151,50 @@ | |||
| 143 | <0xfe780044 4>, | 151 | <0xfe780044 4>, |
| 144 | <0xfe780064 4>; | 152 | <0xfe780064 4>; |
| 145 | interrupt-parent = <&gic>; | 153 | interrupt-parent = <&gic>; |
| 146 | interrupts = <0 27 0x4 | 154 | interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH |
| 147 | 0 28 0x4 | 155 | 0 28 IRQ_TYPE_LEVEL_HIGH |
| 148 | 0 29 0x4 | 156 | 0 29 IRQ_TYPE_LEVEL_HIGH |
| 149 | 0 30 0x4>; | 157 | 0 30 IRQ_TYPE_LEVEL_HIGH>; |
| 150 | sense-bitfield-width = <2>; | 158 | sense-bitfield-width = <2>; |
| 151 | }; | 159 | }; |
| 152 | 160 | ||
| 153 | i2c0: i2c@ffc70000 { | 161 | i2c0: i2c@ffc70000 { |
| 154 | #address-cells = <1>; | 162 | #address-cells = <1>; |
| 155 | #size-cells = <0>; | 163 | #size-cells = <0>; |
| 156 | compatible = "renesas,rmobile-iic"; | 164 | compatible = "renesas,i2c-r8a7779"; |
| 157 | reg = <0xffc70000 0x1000>; | 165 | reg = <0xffc70000 0x1000>; |
| 158 | interrupt-parent = <&gic>; | 166 | interrupt-parent = <&gic>; |
| 159 | interrupts = <0 79 0x4>; | 167 | interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>; |
| 160 | status = "disabled"; | 168 | status = "disabled"; |
| 161 | }; | 169 | }; |
| 162 | 170 | ||
| 163 | i2c1: i2c@ffc71000 { | 171 | i2c1: i2c@ffc71000 { |
| 164 | #address-cells = <1>; | 172 | #address-cells = <1>; |
| 165 | #size-cells = <0>; | 173 | #size-cells = <0>; |
| 166 | compatible = "renesas,rmobile-iic"; | 174 | compatible = "renesas,i2c-r8a7779"; |
| 167 | reg = <0xffc71000 0x1000>; | 175 | reg = <0xffc71000 0x1000>; |
| 168 | interrupt-parent = <&gic>; | 176 | interrupt-parent = <&gic>; |
| 169 | interrupts = <0 82 0x4>; | 177 | interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>; |
| 170 | status = "disabled"; | 178 | status = "disabled"; |
| 171 | }; | 179 | }; |
| 172 | 180 | ||
| 173 | i2c2: i2c@ffc72000 { | 181 | i2c2: i2c@ffc72000 { |
| 174 | #address-cells = <1>; | 182 | #address-cells = <1>; |
| 175 | #size-cells = <0>; | 183 | #size-cells = <0>; |
| 176 | compatible = "renesas,rmobile-iic"; | 184 | compatible = "renesas,i2c-r8a7779"; |
| 177 | reg = <0xffc72000 0x1000>; | 185 | reg = <0xffc72000 0x1000>; |
| 178 | interrupt-parent = <&gic>; | 186 | interrupt-parent = <&gic>; |
| 179 | interrupts = <0 80 0x4>; | 187 | interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>; |
| 180 | status = "disabled"; | 188 | status = "disabled"; |
| 181 | }; | 189 | }; |
| 182 | 190 | ||
| 183 | i2c3: i2c@ffc73000 { | 191 | i2c3: i2c@ffc73000 { |
| 184 | #address-cells = <1>; | 192 | #address-cells = <1>; |
| 185 | #size-cells = <0>; | 193 | #size-cells = <0>; |
| 186 | compatible = "renesas,rmobile-iic"; | 194 | compatible = "renesas,i2c-r8a7779"; |
| 187 | reg = <0xffc73000 0x1000>; | 195 | reg = <0xffc73000 0x1000>; |
| 188 | interrupt-parent = <&gic>; | 196 | interrupt-parent = <&gic>; |
| 189 | interrupts = <0 81 0x4>; | 197 | interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>; |
| 190 | status = "disabled"; | 198 | status = "disabled"; |
| 191 | }; | 199 | }; |
| 192 | 200 | ||
| @@ -204,6 +212,70 @@ | |||
| 204 | compatible = "renesas,rcar-sata"; | 212 | compatible = "renesas,rcar-sata"; |
| 205 | reg = <0xfc600000 0x2000>; | 213 | reg = <0xfc600000 0x2000>; |
| 206 | interrupt-parent = <&gic>; | 214 | interrupt-parent = <&gic>; |
| 207 | interrupts = <0 100 0x4>; | 215 | interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>; |
| 216 | }; | ||
| 217 | |||
| 218 | sdhi0: sd@ffe4c000 { | ||
| 219 | compatible = "renesas,sdhi-r8a7779"; | ||
| 220 | reg = <0xffe4c000 0x100>; | ||
| 221 | interrupt-parent = <&gic>; | ||
| 222 | interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>; | ||
| 223 | cap-sd-highspeed; | ||
| 224 | cap-sdio-irq; | ||
| 225 | status = "disabled"; | ||
| 226 | }; | ||
| 227 | |||
| 228 | sdhi1: sd@ffe4d000 { | ||
| 229 | compatible = "renesas,sdhi-r8a7779"; | ||
| 230 | reg = <0xffe4d000 0x100>; | ||
| 231 | interrupt-parent = <&gic>; | ||
| 232 | interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; | ||
| 233 | cap-sd-highspeed; | ||
| 234 | cap-sdio-irq; | ||
| 235 | status = "disabled"; | ||
| 236 | }; | ||
| 237 | |||
| 238 | sdhi2: sd@ffe4e000 { | ||
| 239 | compatible = "renesas,sdhi-r8a7779"; | ||
| 240 | reg = <0xffe4e000 0x100>; | ||
| 241 | interrupt-parent = <&gic>; | ||
| 242 | interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; | ||
| 243 | cap-sd-highspeed; | ||
| 244 | cap-sdio-irq; | ||
| 245 | status = "disabled"; | ||
| 246 | }; | ||
| 247 | |||
| 248 | sdhi3: sd@ffe4f000 { | ||
| 249 | compatible = "renesas,sdhi-r8a7779"; | ||
| 250 | reg = <0xffe4f000 0x100>; | ||
| 251 | interrupt-parent = <&gic>; | ||
| 252 | interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; | ||
| 253 | cap-sd-highspeed; | ||
| 254 | cap-sdio-irq; | ||
| 255 | status = "disabled"; | ||
| 256 | }; | ||
| 257 | |||
| 258 | hspi0: spi@fffc7000 { | ||
| 259 | compatible = "renesas,hspi"; | ||
| 260 | reg = <0xfffc7000 0x18>; | ||
| 261 | interrupt-controller = <&gic>; | ||
| 262 | interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>; | ||
| 263 | status = "disabled"; | ||
| 264 | }; | ||
| 265 | |||
| 266 | hspi1: spi@fffc8000 { | ||
| 267 | compatible = "renesas,hspi"; | ||
| 268 | reg = <0xfffc8000 0x18>; | ||
| 269 | interrupt-controller = <&gic>; | ||
| 270 | interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>; | ||
| 271 | status = "disabled"; | ||
| 272 | }; | ||
| 273 | |||
| 274 | hspi2: spi@fffc6000 { | ||
| 275 | compatible = "renesas,hspi"; | ||
| 276 | reg = <0xfffc6000 0x18>; | ||
| 277 | interrupt-controller = <&gic>; | ||
| 278 | interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>; | ||
| 279 | status = "disabled"; | ||
| 208 | }; | 280 | }; |
| 209 | }; | 281 | }; |
diff --git a/arch/arm/boot/dts/r8a7790-lager-reference.dts b/arch/arm/boot/dts/r8a7790-lager-reference.dts deleted file mode 100644 index c462ef138922..000000000000 --- a/arch/arm/boot/dts/r8a7790-lager-reference.dts +++ /dev/null | |||
| @@ -1,45 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree Source for the Lager board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
| 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 | /dts-v1/; | ||
| 12 | /include/ "r8a7790.dtsi" | ||
| 13 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | |||
| 15 | / { | ||
| 16 | model = "Lager"; | ||
| 17 | compatible = "renesas,lager-reference", "renesas,r8a7790"; | ||
| 18 | |||
| 19 | chosen { | ||
| 20 | bootargs = "console=ttySC6,115200 ignore_loglevel rw"; | ||
| 21 | }; | ||
| 22 | |||
| 23 | memory@40000000 { | ||
| 24 | device_type = "memory"; | ||
| 25 | reg = <0 0x40000000 0 0x80000000>; | ||
| 26 | }; | ||
| 27 | |||
| 28 | lbsc { | ||
| 29 | #address-cells = <1>; | ||
| 30 | #size-cells = <1>; | ||
| 31 | }; | ||
| 32 | |||
| 33 | leds { | ||
| 34 | compatible = "gpio-leds"; | ||
| 35 | led6 { | ||
| 36 | gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>; | ||
| 37 | }; | ||
| 38 | led7 { | ||
| 39 | gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; | ||
| 40 | }; | ||
| 41 | led8 { | ||
| 42 | gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; | ||
| 43 | }; | ||
| 44 | }; | ||
| 45 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts index 203bd089af29..57569cba1528 100644 --- a/arch/arm/boot/dts/r8a7790-lager.dts +++ b/arch/arm/boot/dts/r8a7790-lager.dts | |||
| @@ -9,7 +9,8 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "r8a7790.dtsi" | 12 | #include "r8a7790.dtsi" |
| 13 | #include <dt-bindings/gpio/gpio.h> | ||
| 13 | 14 | ||
| 14 | / { | 15 | / { |
| 15 | model = "Lager"; | 16 | model = "Lager"; |
| @@ -24,8 +25,69 @@ | |||
| 24 | reg = <0 0x40000000 0 0x80000000>; | 25 | reg = <0 0x40000000 0 0x80000000>; |
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 28 | memory@180000000 { | ||
| 29 | device_type = "memory"; | ||
| 30 | reg = <1 0x80000000 0 0x80000000>; | ||
| 31 | }; | ||
| 32 | |||
| 27 | lbsc { | 33 | lbsc { |
| 28 | #address-cells = <1>; | 34 | #address-cells = <1>; |
| 29 | #size-cells = <1>; | 35 | #size-cells = <1>; |
| 30 | }; | 36 | }; |
| 37 | |||
| 38 | leds { | ||
| 39 | compatible = "gpio-leds"; | ||
| 40 | led6 { | ||
| 41 | gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>; | ||
| 42 | }; | ||
| 43 | led7 { | ||
| 44 | gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>; | ||
| 45 | }; | ||
| 46 | led8 { | ||
| 47 | gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>; | ||
| 48 | }; | ||
| 49 | }; | ||
| 50 | |||
| 51 | fixedregulator3v3: fixedregulator@0 { | ||
| 52 | compatible = "regulator-fixed"; | ||
| 53 | regulator-name = "fixed-3.3V"; | ||
| 54 | regulator-min-microvolt = <3300000>; | ||
| 55 | regulator-max-microvolt = <3300000>; | ||
| 56 | regulator-boot-on; | ||
| 57 | regulator-always-on; | ||
| 58 | }; | ||
| 59 | }; | ||
| 60 | |||
| 61 | &extal_clk { | ||
| 62 | clock-frequency = <20000000>; | ||
| 63 | }; | ||
| 64 | |||
| 65 | &pfc { | ||
| 66 | pinctrl-0 = <&scif0_pins &scif1_pins>; | ||
| 67 | pinctrl-names = "default"; | ||
| 68 | |||
| 69 | scif0_pins: serial0 { | ||
| 70 | renesas,groups = "scif0_data"; | ||
| 71 | renesas,function = "scif0"; | ||
| 72 | }; | ||
| 73 | |||
| 74 | scif1_pins: serial1 { | ||
| 75 | renesas,groups = "scif1_data"; | ||
| 76 | renesas,function = "scif1"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | mmc1_pins: mmc1 { | ||
| 80 | renesas,groups = "mmc1_data8", "mmc1_ctrl"; | ||
| 81 | renesas,function = "mmc1"; | ||
| 82 | }; | ||
| 83 | }; | ||
| 84 | |||
| 85 | &mmcif1 { | ||
| 86 | pinctrl-0 = <&mmc1_pins>; | ||
| 87 | pinctrl-names = "default"; | ||
| 88 | |||
| 89 | vmmc-supply = <&fixedregulator3v3>; | ||
| 90 | bus-width = <8>; | ||
| 91 | non-removable; | ||
| 92 | status = "okay"; | ||
| 31 | }; | 93 | }; |
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi index 9987dd0e9c59..f48487c2a970 100644 --- a/arch/arm/boot/dts/r8a7790.dtsi +++ b/arch/arm/boot/dts/r8a7790.dtsi | |||
| @@ -8,6 +8,10 @@ | |||
| 8 | * kind, whether express or implied. | 8 | * kind, whether express or implied. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include <dt-bindings/clock/r8a7790-clock.h> | ||
| 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 14 | |||
| 11 | / { | 15 | / { |
| 12 | compatible = "renesas,r8a7790"; | 16 | compatible = "renesas,r8a7790"; |
| 13 | interrupt-parent = <&gic>; | 17 | interrupt-parent = <&gic>; |
| @@ -84,14 +88,14 @@ | |||
| 84 | <0 0xf1002000 0 0x1000>, | 88 | <0 0xf1002000 0 0x1000>, |
| 85 | <0 0xf1004000 0 0x2000>, | 89 | <0 0xf1004000 0 0x2000>, |
| 86 | <0 0xf1006000 0 0x2000>; | 90 | <0 0xf1006000 0 0x2000>; |
| 87 | interrupts = <1 9 0xf04>; | 91 | interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; |
| 88 | }; | 92 | }; |
| 89 | 93 | ||
| 90 | gpio0: gpio@e6050000 { | 94 | gpio0: gpio@e6050000 { |
| 91 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | 95 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; |
| 92 | reg = <0 0xe6050000 0 0x50>; | 96 | reg = <0 0xe6050000 0 0x50>; |
| 93 | interrupt-parent = <&gic>; | 97 | interrupt-parent = <&gic>; |
| 94 | interrupts = <0 4 0x4>; | 98 | interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>; |
| 95 | #gpio-cells = <2>; | 99 | #gpio-cells = <2>; |
| 96 | gpio-controller; | 100 | gpio-controller; |
| 97 | gpio-ranges = <&pfc 0 0 32>; | 101 | gpio-ranges = <&pfc 0 0 32>; |
| @@ -103,7 +107,7 @@ | |||
| 103 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | 107 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; |
| 104 | reg = <0 0xe6051000 0 0x50>; | 108 | reg = <0 0xe6051000 0 0x50>; |
| 105 | interrupt-parent = <&gic>; | 109 | interrupt-parent = <&gic>; |
| 106 | interrupts = <0 5 0x4>; | 110 | interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>; |
| 107 | #gpio-cells = <2>; | 111 | #gpio-cells = <2>; |
| 108 | gpio-controller; | 112 | gpio-controller; |
| 109 | gpio-ranges = <&pfc 0 32 32>; | 113 | gpio-ranges = <&pfc 0 32 32>; |
| @@ -115,7 +119,7 @@ | |||
| 115 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | 119 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; |
| 116 | reg = <0 0xe6052000 0 0x50>; | 120 | reg = <0 0xe6052000 0 0x50>; |
| 117 | interrupt-parent = <&gic>; | 121 | interrupt-parent = <&gic>; |
| 118 | interrupts = <0 6 0x4>; | 122 | interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; |
| 119 | #gpio-cells = <2>; | 123 | #gpio-cells = <2>; |
| 120 | gpio-controller; | 124 | gpio-controller; |
| 121 | gpio-ranges = <&pfc 0 64 32>; | 125 | gpio-ranges = <&pfc 0 64 32>; |
| @@ -127,7 +131,7 @@ | |||
| 127 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | 131 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; |
| 128 | reg = <0 0xe6053000 0 0x50>; | 132 | reg = <0 0xe6053000 0 0x50>; |
| 129 | interrupt-parent = <&gic>; | 133 | interrupt-parent = <&gic>; |
| 130 | interrupts = <0 7 0x4>; | 134 | interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; |
| 131 | #gpio-cells = <2>; | 135 | #gpio-cells = <2>; |
| 132 | gpio-controller; | 136 | gpio-controller; |
| 133 | gpio-ranges = <&pfc 0 96 32>; | 137 | gpio-ranges = <&pfc 0 96 32>; |
| @@ -139,7 +143,7 @@ | |||
| 139 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | 143 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; |
| 140 | reg = <0 0xe6054000 0 0x50>; | 144 | reg = <0 0xe6054000 0 0x50>; |
| 141 | interrupt-parent = <&gic>; | 145 | interrupt-parent = <&gic>; |
| 142 | interrupts = <0 8 0x4>; | 146 | interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>; |
| 143 | #gpio-cells = <2>; | 147 | #gpio-cells = <2>; |
| 144 | gpio-controller; | 148 | gpio-controller; |
| 145 | gpio-ranges = <&pfc 0 128 32>; | 149 | gpio-ranges = <&pfc 0 128 32>; |
| @@ -151,7 +155,7 @@ | |||
| 151 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; | 155 | compatible = "renesas,gpio-r8a7790", "renesas,gpio-rcar"; |
| 152 | reg = <0 0xe6055000 0 0x50>; | 156 | reg = <0 0xe6055000 0 0x50>; |
| 153 | interrupt-parent = <&gic>; | 157 | interrupt-parent = <&gic>; |
| 154 | interrupts = <0 9 0x4>; | 158 | interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; |
| 155 | #gpio-cells = <2>; | 159 | #gpio-cells = <2>; |
| 156 | gpio-controller; | 160 | gpio-controller; |
| 157 | gpio-ranges = <&pfc 0 160 32>; | 161 | gpio-ranges = <&pfc 0 160 32>; |
| @@ -159,21 +163,31 @@ | |||
| 159 | interrupt-controller; | 163 | interrupt-controller; |
| 160 | }; | 164 | }; |
| 161 | 165 | ||
| 166 | thermal@e61f0000 { | ||
| 167 | compatible = "renesas,thermal-r8a7790", "renesas,rcar-thermal"; | ||
| 168 | reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; | ||
| 169 | interrupt-parent = <&gic>; | ||
| 170 | interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; | ||
| 171 | }; | ||
| 172 | |||
| 162 | timer { | 173 | timer { |
| 163 | compatible = "arm,armv7-timer"; | 174 | compatible = "arm,armv7-timer"; |
| 164 | interrupts = <1 13 0xf08>, | 175 | interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 165 | <1 14 0xf08>, | 176 | <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 166 | <1 11 0xf08>, | 177 | <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 167 | <1 10 0xf08>; | 178 | <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; |
| 168 | }; | 179 | }; |
| 169 | 180 | ||
| 170 | irqc0: interrupt-controller@e61c0000 { | 181 | irqc0: interrupt-controller@e61c0000 { |
| 171 | compatible = "renesas,irqc"; | 182 | compatible = "renesas,irqc-r8a7790", "renesas,irqc"; |
| 172 | #interrupt-cells = <2>; | 183 | #interrupt-cells = <2>; |
| 173 | interrupt-controller; | 184 | interrupt-controller; |
| 174 | reg = <0 0xe61c0000 0 0x200>; | 185 | reg = <0 0xe61c0000 0 0x200>; |
| 175 | interrupt-parent = <&gic>; | 186 | interrupt-parent = <&gic>; |
| 176 | interrupts = <0 0 4>, <0 1 4>, <0 2 4>, <0 3 4>; | 187 | interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>, |
| 188 | <0 1 IRQ_TYPE_LEVEL_HIGH>, | ||
| 189 | <0 2 IRQ_TYPE_LEVEL_HIGH>, | ||
| 190 | <0 3 IRQ_TYPE_LEVEL_HIGH>; | ||
| 177 | }; | 191 | }; |
| 178 | 192 | ||
| 179 | i2c0: i2c@e6508000 { | 193 | i2c0: i2c@e6508000 { |
| @@ -182,7 +196,8 @@ | |||
| 182 | compatible = "renesas,i2c-r8a7790"; | 196 | compatible = "renesas,i2c-r8a7790"; |
| 183 | reg = <0 0xe6508000 0 0x40>; | 197 | reg = <0 0xe6508000 0 0x40>; |
| 184 | interrupt-parent = <&gic>; | 198 | interrupt-parent = <&gic>; |
| 185 | interrupts = <0 287 0x4>; | 199 | interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; |
| 200 | clocks = <&mstp3_clks R8A7790_CLK_I2C0>; | ||
| 186 | status = "disabled"; | 201 | status = "disabled"; |
| 187 | }; | 202 | }; |
| 188 | 203 | ||
| @@ -192,7 +207,8 @@ | |||
| 192 | compatible = "renesas,i2c-r8a7790"; | 207 | compatible = "renesas,i2c-r8a7790"; |
| 193 | reg = <0 0xe6518000 0 0x40>; | 208 | reg = <0 0xe6518000 0 0x40>; |
| 194 | interrupt-parent = <&gic>; | 209 | interrupt-parent = <&gic>; |
| 195 | interrupts = <0 288 0x4>; | 210 | interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; |
| 211 | clocks = <&mstp3_clks R8A7790_CLK_I2C1>; | ||
| 196 | status = "disabled"; | 212 | status = "disabled"; |
| 197 | }; | 213 | }; |
| 198 | 214 | ||
| @@ -202,7 +218,8 @@ | |||
| 202 | compatible = "renesas,i2c-r8a7790"; | 218 | compatible = "renesas,i2c-r8a7790"; |
| 203 | reg = <0 0xe6530000 0 0x40>; | 219 | reg = <0 0xe6530000 0 0x40>; |
| 204 | interrupt-parent = <&gic>; | 220 | interrupt-parent = <&gic>; |
| 205 | interrupts = <0 286 0x4>; | 221 | interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; |
| 222 | clocks = <&mstp3_clks R8A7790_CLK_I2C2>; | ||
| 206 | status = "disabled"; | 223 | status = "disabled"; |
| 207 | }; | 224 | }; |
| 208 | 225 | ||
| @@ -212,24 +229,27 @@ | |||
| 212 | compatible = "renesas,i2c-r8a7790"; | 229 | compatible = "renesas,i2c-r8a7790"; |
| 213 | reg = <0 0xe6540000 0 0x40>; | 230 | reg = <0 0xe6540000 0 0x40>; |
| 214 | interrupt-parent = <&gic>; | 231 | interrupt-parent = <&gic>; |
| 215 | interrupts = <0 290 0x4>; | 232 | interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; |
| 233 | clocks = <&mstp3_clks R8A7790_CLK_I2C3>; | ||
| 216 | status = "disabled"; | 234 | status = "disabled"; |
| 217 | }; | 235 | }; |
| 218 | 236 | ||
| 219 | mmcif0: mmcif@ee200000 { | 237 | mmcif0: mmcif@ee200000 { |
| 220 | compatible = "renesas,sh-mmcif"; | 238 | compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif"; |
| 221 | reg = <0 0xee200000 0 0x80>; | 239 | reg = <0 0xee200000 0 0x80>; |
| 222 | interrupt-parent = <&gic>; | 240 | interrupt-parent = <&gic>; |
| 223 | interrupts = <0 169 0x4>; | 241 | interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>; |
| 242 | clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>; | ||
| 224 | reg-io-width = <4>; | 243 | reg-io-width = <4>; |
| 225 | status = "disabled"; | 244 | status = "disabled"; |
| 226 | }; | 245 | }; |
| 227 | 246 | ||
| 228 | mmcif1: mmcif@ee220000 { | 247 | mmcif1: mmc@ee220000 { |
| 229 | compatible = "renesas,sh-mmcif"; | 248 | compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif"; |
| 230 | reg = <0 0xee220000 0 0x80>; | 249 | reg = <0 0xee220000 0 0x80>; |
| 231 | interrupt-parent = <&gic>; | 250 | interrupt-parent = <&gic>; |
| 232 | interrupts = <0 170 0x4>; | 251 | interrupts = <0 170 IRQ_TYPE_LEVEL_HIGH>; |
| 252 | clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>; | ||
| 233 | reg-io-width = <4>; | 253 | reg-io-width = <4>; |
| 234 | status = "disabled"; | 254 | status = "disabled"; |
| 235 | }; | 255 | }; |
| @@ -239,39 +259,372 @@ | |||
| 239 | reg = <0 0xe6060000 0 0x250>; | 259 | reg = <0 0xe6060000 0 0x250>; |
| 240 | }; | 260 | }; |
| 241 | 261 | ||
| 242 | sdhi0: sdhi@ee100000 { | 262 | sdhi0: sd@ee100000 { |
| 243 | compatible = "renesas,sdhi-r8a7790"; | 263 | compatible = "renesas,sdhi-r8a7790"; |
| 244 | reg = <0 0xee100000 0 0x200>; | 264 | reg = <0 0xee100000 0 0x200>; |
| 245 | interrupt-parent = <&gic>; | 265 | interrupt-parent = <&gic>; |
| 246 | interrupts = <0 165 4>; | 266 | interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>; |
| 267 | clocks = <&mstp3_clks R8A7790_CLK_SDHI0>; | ||
| 247 | cap-sd-highspeed; | 268 | cap-sd-highspeed; |
| 248 | status = "disabled"; | 269 | status = "disabled"; |
| 249 | }; | 270 | }; |
| 250 | 271 | ||
| 251 | sdhi1: sdhi@ee120000 { | 272 | sdhi1: sd@ee120000 { |
| 252 | compatible = "renesas,sdhi-r8a7790"; | 273 | compatible = "renesas,sdhi-r8a7790"; |
| 253 | reg = <0 0xee120000 0 0x200>; | 274 | reg = <0 0xee120000 0 0x200>; |
| 254 | interrupt-parent = <&gic>; | 275 | interrupt-parent = <&gic>; |
| 255 | interrupts = <0 166 4>; | 276 | interrupts = <0 166 IRQ_TYPE_LEVEL_HIGH>; |
| 277 | clocks = <&mstp3_clks R8A7790_CLK_SDHI1>; | ||
| 256 | cap-sd-highspeed; | 278 | cap-sd-highspeed; |
| 257 | status = "disabled"; | 279 | status = "disabled"; |
| 258 | }; | 280 | }; |
| 259 | 281 | ||
| 260 | sdhi2: sdhi@ee140000 { | 282 | sdhi2: sd@ee140000 { |
| 261 | compatible = "renesas,sdhi-r8a7790"; | 283 | compatible = "renesas,sdhi-r8a7790"; |
| 262 | reg = <0 0xee140000 0 0x100>; | 284 | reg = <0 0xee140000 0 0x100>; |
| 263 | interrupt-parent = <&gic>; | 285 | interrupt-parent = <&gic>; |
| 264 | interrupts = <0 167 4>; | 286 | interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>; |
| 287 | clocks = <&mstp3_clks R8A7790_CLK_SDHI2>; | ||
| 265 | cap-sd-highspeed; | 288 | cap-sd-highspeed; |
| 266 | status = "disabled"; | 289 | status = "disabled"; |
| 267 | }; | 290 | }; |
| 268 | 291 | ||
| 269 | sdhi3: sdhi@ee160000 { | 292 | sdhi3: sd@ee160000 { |
| 270 | compatible = "renesas,sdhi-r8a7790"; | 293 | compatible = "renesas,sdhi-r8a7790"; |
| 271 | reg = <0 0xee160000 0 0x100>; | 294 | reg = <0 0xee160000 0 0x100>; |
| 272 | interrupt-parent = <&gic>; | 295 | interrupt-parent = <&gic>; |
| 273 | interrupts = <0 168 4>; | 296 | interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>; |
| 297 | clocks = <&mstp3_clks R8A7790_CLK_SDHI3>; | ||
| 274 | cap-sd-highspeed; | 298 | cap-sd-highspeed; |
| 275 | status = "disabled"; | 299 | status = "disabled"; |
| 276 | }; | 300 | }; |
| 301 | |||
| 302 | clocks { | ||
| 303 | #address-cells = <2>; | ||
| 304 | #size-cells = <2>; | ||
| 305 | ranges; | ||
| 306 | |||
| 307 | /* External root clock */ | ||
| 308 | extal_clk: extal_clk { | ||
| 309 | compatible = "fixed-clock"; | ||
| 310 | #clock-cells = <0>; | ||
| 311 | /* This value must be overriden by the board. */ | ||
| 312 | clock-frequency = <0>; | ||
| 313 | clock-output-names = "extal"; | ||
| 314 | }; | ||
| 315 | |||
| 316 | /* Special CPG clocks */ | ||
| 317 | cpg_clocks: cpg_clocks@e6150000 { | ||
| 318 | compatible = "renesas,r8a7790-cpg-clocks", | ||
| 319 | "renesas,rcar-gen2-cpg-clocks"; | ||
| 320 | reg = <0 0xe6150000 0 0x1000>; | ||
| 321 | clocks = <&extal_clk>; | ||
| 322 | #clock-cells = <1>; | ||
| 323 | clock-output-names = "main", "pll0", "pll1", "pll3", | ||
| 324 | "lb", "qspi", "sdh", "sd0", "sd1", | ||
| 325 | "z"; | ||
| 326 | }; | ||
| 327 | |||
| 328 | /* Variable factor clocks */ | ||
| 329 | sd2_clk: sd2_clk@e6150078 { | ||
| 330 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 331 | reg = <0 0xe6150078 0 4>; | ||
| 332 | clocks = <&pll1_div2_clk>; | ||
| 333 | #clock-cells = <0>; | ||
| 334 | clock-output-names = "sd2"; | ||
| 335 | }; | ||
| 336 | sd3_clk: sd3_clk@e615007c { | ||
| 337 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 338 | reg = <0 0xe615007c 0 4>; | ||
| 339 | clocks = <&pll1_div2_clk>; | ||
| 340 | #clock-cells = <0>; | ||
| 341 | clock-output-names = "sd3"; | ||
| 342 | }; | ||
| 343 | mmc0_clk: mmc0_clk@e6150240 { | ||
| 344 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 345 | reg = <0 0xe6150240 0 4>; | ||
| 346 | clocks = <&pll1_div2_clk>; | ||
| 347 | #clock-cells = <0>; | ||
| 348 | clock-output-names = "mmc0"; | ||
| 349 | }; | ||
| 350 | mmc1_clk: mmc1_clk@e6150244 { | ||
| 351 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 352 | reg = <0 0xe6150244 0 4>; | ||
| 353 | clocks = <&pll1_div2_clk>; | ||
| 354 | #clock-cells = <0>; | ||
| 355 | clock-output-names = "mmc1"; | ||
| 356 | }; | ||
| 357 | ssp_clk: ssp_clk@e6150248 { | ||
| 358 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 359 | reg = <0 0xe6150248 0 4>; | ||
| 360 | clocks = <&pll1_div2_clk>; | ||
| 361 | #clock-cells = <0>; | ||
| 362 | clock-output-names = "ssp"; | ||
| 363 | }; | ||
| 364 | ssprs_clk: ssprs_clk@e615024c { | ||
| 365 | compatible = "renesas,r8a7790-div6-clock", "renesas,cpg-div6-clock"; | ||
| 366 | reg = <0 0xe615024c 0 4>; | ||
| 367 | clocks = <&pll1_div2_clk>; | ||
| 368 | #clock-cells = <0>; | ||
| 369 | clock-output-names = "ssprs"; | ||
| 370 | }; | ||
| 371 | |||
| 372 | /* Fixed factor clocks */ | ||
| 373 | pll1_div2_clk: pll1_div2_clk { | ||
| 374 | compatible = "fixed-factor-clock"; | ||
| 375 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 376 | #clock-cells = <0>; | ||
| 377 | clock-div = <2>; | ||
| 378 | clock-mult = <1>; | ||
| 379 | clock-output-names = "pll1_div2"; | ||
| 380 | }; | ||
| 381 | z2_clk: z2_clk { | ||
| 382 | compatible = "fixed-factor-clock"; | ||
| 383 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 384 | #clock-cells = <0>; | ||
| 385 | clock-div = <2>; | ||
| 386 | clock-mult = <1>; | ||
| 387 | clock-output-names = "z2"; | ||
| 388 | }; | ||
| 389 | zg_clk: zg_clk { | ||
| 390 | compatible = "fixed-factor-clock"; | ||
| 391 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 392 | #clock-cells = <0>; | ||
| 393 | clock-div = <3>; | ||
| 394 | clock-mult = <1>; | ||
| 395 | clock-output-names = "zg"; | ||
| 396 | }; | ||
| 397 | zx_clk: zx_clk { | ||
| 398 | compatible = "fixed-factor-clock"; | ||
| 399 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 400 | #clock-cells = <0>; | ||
| 401 | clock-div = <3>; | ||
| 402 | clock-mult = <1>; | ||
| 403 | clock-output-names = "zx"; | ||
| 404 | }; | ||
| 405 | zs_clk: zs_clk { | ||
| 406 | compatible = "fixed-factor-clock"; | ||
| 407 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 408 | #clock-cells = <0>; | ||
| 409 | clock-div = <6>; | ||
| 410 | clock-mult = <1>; | ||
| 411 | clock-output-names = "zs"; | ||
| 412 | }; | ||
| 413 | hp_clk: hp_clk { | ||
| 414 | compatible = "fixed-factor-clock"; | ||
| 415 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 416 | #clock-cells = <0>; | ||
| 417 | clock-div = <12>; | ||
| 418 | clock-mult = <1>; | ||
| 419 | clock-output-names = "hp"; | ||
| 420 | }; | ||
| 421 | i_clk: i_clk { | ||
| 422 | compatible = "fixed-factor-clock"; | ||
| 423 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 424 | #clock-cells = <0>; | ||
| 425 | clock-div = <2>; | ||
| 426 | clock-mult = <1>; | ||
| 427 | clock-output-names = "i"; | ||
| 428 | }; | ||
| 429 | b_clk: b_clk { | ||
| 430 | compatible = "fixed-factor-clock"; | ||
| 431 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 432 | #clock-cells = <0>; | ||
| 433 | clock-div = <12>; | ||
| 434 | clock-mult = <1>; | ||
| 435 | clock-output-names = "b"; | ||
| 436 | }; | ||
| 437 | p_clk: p_clk { | ||
| 438 | compatible = "fixed-factor-clock"; | ||
| 439 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 440 | #clock-cells = <0>; | ||
| 441 | clock-div = <24>; | ||
| 442 | clock-mult = <1>; | ||
| 443 | clock-output-names = "p"; | ||
| 444 | }; | ||
| 445 | cl_clk: cl_clk { | ||
| 446 | compatible = "fixed-factor-clock"; | ||
| 447 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 448 | #clock-cells = <0>; | ||
| 449 | clock-div = <48>; | ||
| 450 | clock-mult = <1>; | ||
| 451 | clock-output-names = "cl"; | ||
| 452 | }; | ||
| 453 | m2_clk: m2_clk { | ||
| 454 | compatible = "fixed-factor-clock"; | ||
| 455 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 456 | #clock-cells = <0>; | ||
| 457 | clock-div = <8>; | ||
| 458 | clock-mult = <1>; | ||
| 459 | clock-output-names = "m2"; | ||
| 460 | }; | ||
| 461 | imp_clk: imp_clk { | ||
| 462 | compatible = "fixed-factor-clock"; | ||
| 463 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 464 | #clock-cells = <0>; | ||
| 465 | clock-div = <4>; | ||
| 466 | clock-mult = <1>; | ||
| 467 | clock-output-names = "imp"; | ||
| 468 | }; | ||
| 469 | rclk_clk: rclk_clk { | ||
| 470 | compatible = "fixed-factor-clock"; | ||
| 471 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 472 | #clock-cells = <0>; | ||
| 473 | clock-div = <(48 * 1024)>; | ||
| 474 | clock-mult = <1>; | ||
| 475 | clock-output-names = "rclk"; | ||
| 476 | }; | ||
| 477 | oscclk_clk: oscclk_clk { | ||
| 478 | compatible = "fixed-factor-clock"; | ||
| 479 | clocks = <&cpg_clocks R8A7790_CLK_PLL1>; | ||
| 480 | #clock-cells = <0>; | ||
| 481 | clock-div = <(12 * 1024)>; | ||
| 482 | clock-mult = <1>; | ||
| 483 | clock-output-names = "oscclk"; | ||
| 484 | }; | ||
| 485 | zb3_clk: zb3_clk { | ||
| 486 | compatible = "fixed-factor-clock"; | ||
| 487 | clocks = <&cpg_clocks R8A7790_CLK_PLL3>; | ||
| 488 | #clock-cells = <0>; | ||
| 489 | clock-div = <4>; | ||
| 490 | clock-mult = <1>; | ||
| 491 | clock-output-names = "zb3"; | ||
| 492 | }; | ||
| 493 | zb3d2_clk: zb3d2_clk { | ||
| 494 | compatible = "fixed-factor-clock"; | ||
| 495 | clocks = <&cpg_clocks R8A7790_CLK_PLL3>; | ||
| 496 | #clock-cells = <0>; | ||
| 497 | clock-div = <8>; | ||
| 498 | clock-mult = <1>; | ||
| 499 | clock-output-names = "zb3d2"; | ||
| 500 | }; | ||
| 501 | ddr_clk: ddr_clk { | ||
| 502 | compatible = "fixed-factor-clock"; | ||
| 503 | clocks = <&cpg_clocks R8A7790_CLK_PLL3>; | ||
| 504 | #clock-cells = <0>; | ||
| 505 | clock-div = <8>; | ||
| 506 | clock-mult = <1>; | ||
| 507 | clock-output-names = "ddr"; | ||
| 508 | }; | ||
| 509 | mp_clk: mp_clk { | ||
| 510 | compatible = "fixed-factor-clock"; | ||
| 511 | clocks = <&pll1_div2_clk>; | ||
| 512 | #clock-cells = <0>; | ||
| 513 | clock-div = <15>; | ||
| 514 | clock-mult = <1>; | ||
| 515 | clock-output-names = "mp"; | ||
| 516 | }; | ||
| 517 | cp_clk: cp_clk { | ||
| 518 | compatible = "fixed-factor-clock"; | ||
| 519 | clocks = <&extal_clk>; | ||
| 520 | #clock-cells = <0>; | ||
| 521 | clock-div = <2>; | ||
| 522 | clock-mult = <1>; | ||
| 523 | clock-output-names = "cp"; | ||
| 524 | }; | ||
| 525 | |||
| 526 | /* Gate clocks */ | ||
| 527 | mstp0_clks: mstp0_clks@e6150130 { | ||
| 528 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 529 | reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; | ||
| 530 | clocks = <&mp_clk>; | ||
| 531 | #clock-cells = <1>; | ||
| 532 | renesas,clock-indices = <R8A7790_CLK_MSIOF0>; | ||
| 533 | clock-output-names = "msiof0"; | ||
| 534 | }; | ||
| 535 | mstp1_clks: mstp1_clks@e6150134 { | ||
| 536 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 537 | reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; | ||
| 538 | clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>, | ||
| 539 | <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>, | ||
| 540 | <&zs_clk>; | ||
| 541 | #clock-cells = <1>; | ||
| 542 | renesas,clock-indices = < | ||
| 543 | R8A7790_CLK_TMU1 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2 | ||
| 544 | R8A7790_CLK_CMT0 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1 | ||
| 545 | R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_RT R8A7790_CLK_VSP1_SY | ||
| 546 | >; | ||
| 547 | clock-output-names = | ||
| 548 | "tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1", | ||
| 549 | "vsp1-du0", "vsp1-rt", "vsp1-sy"; | ||
| 550 | }; | ||
| 551 | mstp2_clks: mstp2_clks@e6150138 { | ||
| 552 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 553 | reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; | ||
| 554 | clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, | ||
| 555 | <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>; | ||
| 556 | #clock-cells = <1>; | ||
| 557 | renesas,clock-indices = < | ||
| 558 | R8A7790_CLK_SCIFA2 R8A7790_CLK_SCIFA1 R8A7790_CLK_SCIFA0 | ||
| 559 | R8A7790_CLK_MSIOF2 R8A7790_CLK_SCIFB0 R8A7790_CLK_SCIFB1 | ||
| 560 | R8A7790_CLK_MSIOF1 R8A7790_CLK_MSIOF3 R8A7790_CLK_SCIFB2 | ||
| 561 | >; | ||
| 562 | clock-output-names = | ||
| 563 | "scifa2", "scifa1", "scifa0", "msiof2", "scifb0", | ||
| 564 | "scifb1", "msiof1", "msiof3", "scifb2"; | ||
| 565 | }; | ||
| 566 | mstp3_clks: mstp3_clks@e615013c { | ||
| 567 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 568 | reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; | ||
| 569 | clocks = <&cp_clk>, <&mmc1_clk>, <&sd3_clk>, <&sd2_clk>, | ||
| 570 | <&cpg_clocks R8A7790_CLK_SD1>, <&cpg_clocks R8A7790_CLK_SD0>, | ||
| 571 | <&mmc0_clk>, <&rclk_clk>; | ||
| 572 | #clock-cells = <1>; | ||
| 573 | renesas,clock-indices = < | ||
| 574 | R8A7790_CLK_TPU0 R8A7790_CLK_MMCIF1 R8A7790_CLK_SDHI3 | ||
| 575 | R8A7790_CLK_SDHI2 R8A7790_CLK_SDHI1 R8A7790_CLK_SDHI0 | ||
| 576 | R8A7790_CLK_MMCIF0 R8A7790_CLK_CMT1 | ||
| 577 | >; | ||
| 578 | clock-output-names = | ||
| 579 | "tpu0", "mmcif1", "sdhi3", "sdhi2", | ||
| 580 | "sdhi1", "sdhi0", "mmcif0", "cmt1"; | ||
| 581 | }; | ||
| 582 | mstp5_clks: mstp5_clks@e6150144 { | ||
| 583 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 584 | reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; | ||
| 585 | clocks = <&extal_clk>, <&p_clk>; | ||
| 586 | #clock-cells = <1>; | ||
| 587 | renesas,clock-indices = <R8A7790_CLK_THERMAL R8A7790_CLK_PWM>; | ||
| 588 | clock-output-names = "thermal", "pwm"; | ||
| 589 | }; | ||
| 590 | mstp7_clks: mstp7_clks@e615014c { | ||
| 591 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 592 | reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; | ||
| 593 | clocks = <&mp_clk>, <&mp_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>, | ||
| 594 | <&p_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, <&zx_clk>, | ||
| 595 | <&zx_clk>; | ||
| 596 | #clock-cells = <1>; | ||
| 597 | renesas,clock-indices = < | ||
| 598 | R8A7790_CLK_EHCI R8A7790_CLK_HSUSB R8A7790_CLK_HSCIF1 | ||
| 599 | R8A7790_CLK_HSCIF0 R8A7790_CLK_SCIF1 R8A7790_CLK_SCIF0 | ||
| 600 | R8A7790_CLK_DU2 R8A7790_CLK_DU1 R8A7790_CLK_DU0 | ||
| 601 | R8A7790_CLK_LVDS1 R8A7790_CLK_LVDS0 | ||
| 602 | >; | ||
| 603 | clock-output-names = | ||
| 604 | "ehci", "hsusb", "hscif1", "hscif0", "scif1", | ||
| 605 | "scif0", "du2", "du1", "du0", "lvds1", "lvds0"; | ||
| 606 | }; | ||
| 607 | mstp8_clks: mstp8_clks@e6150990 { | ||
| 608 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 609 | reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; | ||
| 610 | clocks = <&p_clk>; | ||
| 611 | #clock-cells = <1>; | ||
| 612 | renesas,clock-indices = <R8A7790_CLK_ETHER>; | ||
| 613 | clock-output-names = "ether"; | ||
| 614 | }; | ||
| 615 | mstp9_clks: mstp9_clks@e6150994 { | ||
| 616 | compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 617 | reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; | ||
| 618 | clocks = <&p_clk>, <&p_clk>, <&cpg_clocks R8A7790_CLK_QSPI>, | ||
| 619 | <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>; | ||
| 620 | #clock-cells = <1>; | ||
| 621 | renesas,clock-indices = < | ||
| 622 | R8A7790_CLK_RCAN1 R8A7790_CLK_RCAN0 R8A7790_CLK_QSPI_MOD | ||
| 623 | R8A7790_CLK_I2C3 R8A7790_CLK_I2C2 R8A7790_CLK_I2C1 | ||
| 624 | R8A7790_CLK_I2C0 | ||
| 625 | >; | ||
| 626 | clock-output-names = | ||
| 627 | "rcan1", "rcan0", "qspi_mod", "i2c3", "i2c2", "i2c1", "i2c0"; | ||
| 628 | }; | ||
| 629 | }; | ||
| 277 | }; | 630 | }; |
diff --git a/arch/arm/boot/dts/r8a7791-koelsch-reference.dts b/arch/arm/boot/dts/r8a7791-koelsch-reference.dts new file mode 100644 index 000000000000..588ca17ea1f0 --- /dev/null +++ b/arch/arm/boot/dts/r8a7791-koelsch-reference.dts | |||
| @@ -0,0 +1,115 @@ | |||
| 1 | /* | ||
| 2 | * Device Tree Source for the Koelsch board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Renesas Electronics Corporation | ||
| 5 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
| 6 | * | ||
| 7 | * This file is licensed under the terms of the GNU General Public License | ||
| 8 | * version 2. This program is licensed "as is" without any warranty of any | ||
| 9 | * kind, whether express or implied. | ||
| 10 | */ | ||
| 11 | |||
| 12 | /dts-v1/; | ||
| 13 | #include "r8a7791.dtsi" | ||
| 14 | #include <dt-bindings/gpio/gpio.h> | ||
| 15 | |||
| 16 | / { | ||
| 17 | model = "Koelsch"; | ||
| 18 | compatible = "renesas,koelsch-reference", "renesas,r8a7791"; | ||
| 19 | |||
| 20 | chosen { | ||
| 21 | bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | memory@40000000 { | ||
| 25 | device_type = "memory"; | ||
| 26 | reg = <0 0x40000000 0 0x80000000>; | ||
| 27 | }; | ||
| 28 | |||
| 29 | lbsc { | ||
| 30 | #address-cells = <1>; | ||
| 31 | #size-cells = <1>; | ||
| 32 | }; | ||
| 33 | |||
| 34 | gpio-keys { | ||
| 35 | compatible = "gpio-keys"; | ||
| 36 | |||
| 37 | key-a { | ||
| 38 | gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; | ||
| 39 | linux,code = <30>; | ||
| 40 | label = "SW30"; | ||
| 41 | gpio-key,wakeup; | ||
| 42 | debounce-interval = <20>; | ||
| 43 | }; | ||
| 44 | key-b { | ||
| 45 | gpios = <&gpio7 1 GPIO_ACTIVE_LOW>; | ||
| 46 | linux,code = <48>; | ||
| 47 | label = "SW31"; | ||
| 48 | gpio-key,wakeup; | ||
| 49 | debounce-interval = <20>; | ||
| 50 | }; | ||
| 51 | key-c { | ||
| 52 | gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; | ||
| 53 | linux,code = <46>; | ||
| 54 | label = "SW32"; | ||
| 55 | gpio-key,wakeup; | ||
| 56 | debounce-interval = <20>; | ||
| 57 | }; | ||
| 58 | key-d { | ||
| 59 | gpios = <&gpio7 3 GPIO_ACTIVE_LOW>; | ||
| 60 | linux,code = <32>; | ||
| 61 | label = "SW33"; | ||
| 62 | gpio-key,wakeup; | ||
| 63 | debounce-interval = <20>; | ||
| 64 | }; | ||
| 65 | key-e { | ||
| 66 | gpios = <&gpio7 4 GPIO_ACTIVE_LOW>; | ||
| 67 | linux,code = <18>; | ||
| 68 | label = "SW34"; | ||
| 69 | gpio-key,wakeup; | ||
| 70 | debounce-interval = <20>; | ||
| 71 | }; | ||
| 72 | key-f { | ||
| 73 | gpios = <&gpio7 5 GPIO_ACTIVE_LOW>; | ||
| 74 | linux,code = <33>; | ||
| 75 | label = "SW35"; | ||
| 76 | gpio-key,wakeup; | ||
| 77 | debounce-interval = <20>; | ||
| 78 | }; | ||
| 79 | key-g { | ||
| 80 | gpios = <&gpio7 6 GPIO_ACTIVE_LOW>; | ||
| 81 | linux,code = <34>; | ||
| 82 | label = "SW36"; | ||
| 83 | gpio-key,wakeup; | ||
| 84 | debounce-interval = <20>; | ||
| 85 | }; | ||
| 86 | }; | ||
| 87 | |||
| 88 | leds { | ||
| 89 | compatible = "gpio-leds"; | ||
| 90 | led6 { | ||
| 91 | gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; | ||
| 92 | }; | ||
| 93 | led7 { | ||
| 94 | gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; | ||
| 95 | }; | ||
| 96 | led8 { | ||
| 97 | gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; | ||
| 98 | }; | ||
| 99 | }; | ||
| 100 | }; | ||
| 101 | |||
| 102 | &pfc { | ||
| 103 | pinctrl-0 = <&scif0_pins &scif1_pins>; | ||
| 104 | pinctrl-names = "default"; | ||
| 105 | |||
| 106 | scif0_pins: serial0 { | ||
| 107 | renesas,groups = "scif0_data_d"; | ||
| 108 | renesas,function = "scif0"; | ||
| 109 | }; | ||
| 110 | |||
| 111 | scif1_pins: serial1 { | ||
| 112 | renesas,groups = "scif1_data_d"; | ||
| 113 | renesas,function = "scif1"; | ||
| 114 | }; | ||
| 115 | }; | ||
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts index 1ce5250ec278..fd556c3483e3 100644 --- a/arch/arm/boot/dts/r8a7791-koelsch.dts +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts | |||
| @@ -10,7 +10,8 @@ | |||
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | /include/ "r8a7791.dtsi" | 13 | #include "r8a7791.dtsi" |
| 14 | #include <dt-bindings/gpio/gpio.h> | ||
| 14 | 15 | ||
| 15 | / { | 16 | / { |
| 16 | model = "Koelsch"; | 17 | model = "Koelsch"; |
| @@ -29,4 +30,36 @@ | |||
| 29 | #address-cells = <1>; | 30 | #address-cells = <1>; |
| 30 | #size-cells = <1>; | 31 | #size-cells = <1>; |
| 31 | }; | 32 | }; |
| 33 | |||
| 34 | leds { | ||
| 35 | compatible = "gpio-leds"; | ||
| 36 | led6 { | ||
| 37 | gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; | ||
| 38 | }; | ||
| 39 | led7 { | ||
| 40 | gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>; | ||
| 41 | }; | ||
| 42 | led8 { | ||
| 43 | gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>; | ||
| 44 | }; | ||
| 45 | }; | ||
| 46 | }; | ||
| 47 | |||
| 48 | &extal_clk { | ||
| 49 | clock-frequency = <20000000>; | ||
| 50 | }; | ||
| 51 | |||
| 52 | &pfc { | ||
| 53 | pinctrl-0 = <&scif0_pins &scif1_pins>; | ||
| 54 | pinctrl-names = "default"; | ||
| 55 | |||
| 56 | scif0_pins: serial0 { | ||
| 57 | renesas,groups = "scif0_data_d"; | ||
| 58 | renesas,function = "scif0"; | ||
| 59 | }; | ||
| 60 | |||
| 61 | scif1_pins: serial1 { | ||
| 62 | renesas,groups = "scif1_data_d"; | ||
| 63 | renesas,function = "scif1"; | ||
| 64 | }; | ||
| 32 | }; | 65 | }; |
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi index fea5cfef4691..19c65509a22d 100644 --- a/arch/arm/boot/dts/r8a7791.dtsi +++ b/arch/arm/boot/dts/r8a7791.dtsi | |||
| @@ -9,6 +9,10 @@ | |||
| 9 | * kind, whether express or implied. | 9 | * kind, whether express or implied. |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | #include <dt-bindings/clock/r8a7791-clock.h> | ||
| 13 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 15 | |||
| 12 | / { | 16 | / { |
| 13 | compatible = "renesas,r8a7791"; | 17 | compatible = "renesas,r8a7791"; |
| 14 | interrupt-parent = <&gic>; | 18 | interrupt-parent = <&gic>; |
| @@ -43,32 +47,463 @@ | |||
| 43 | <0 0xf1002000 0 0x1000>, | 47 | <0 0xf1002000 0 0x1000>, |
| 44 | <0 0xf1004000 0 0x2000>, | 48 | <0 0xf1004000 0 0x2000>, |
| 45 | <0 0xf1006000 0 0x2000>; | 49 | <0 0xf1006000 0 0x2000>; |
| 46 | interrupts = <1 9 0xf04>; | 50 | interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; |
| 51 | }; | ||
| 52 | |||
| 53 | gpio0: gpio@e6050000 { | ||
| 54 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 55 | reg = <0 0xe6050000 0 0x50>; | ||
| 56 | interrupt-parent = <&gic>; | ||
| 57 | interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>; | ||
| 58 | #gpio-cells = <2>; | ||
| 59 | gpio-controller; | ||
| 60 | gpio-ranges = <&pfc 0 0 32>; | ||
| 61 | #interrupt-cells = <2>; | ||
| 62 | interrupt-controller; | ||
| 63 | }; | ||
| 64 | |||
| 65 | gpio1: gpio@e6051000 { | ||
| 66 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 67 | reg = <0 0xe6051000 0 0x50>; | ||
| 68 | interrupt-parent = <&gic>; | ||
| 69 | interrupts = <0 5 IRQ_TYPE_LEVEL_HIGH>; | ||
| 70 | #gpio-cells = <2>; | ||
| 71 | gpio-controller; | ||
| 72 | gpio-ranges = <&pfc 0 32 32>; | ||
| 73 | #interrupt-cells = <2>; | ||
| 74 | interrupt-controller; | ||
| 75 | }; | ||
| 76 | |||
| 77 | gpio2: gpio@e6052000 { | ||
| 78 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 79 | reg = <0 0xe6052000 0 0x50>; | ||
| 80 | interrupt-parent = <&gic>; | ||
| 81 | interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>; | ||
| 82 | #gpio-cells = <2>; | ||
| 83 | gpio-controller; | ||
| 84 | gpio-ranges = <&pfc 0 64 32>; | ||
| 85 | #interrupt-cells = <2>; | ||
| 86 | interrupt-controller; | ||
| 87 | }; | ||
| 88 | |||
| 89 | gpio3: gpio@e6053000 { | ||
| 90 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 91 | reg = <0 0xe6053000 0 0x50>; | ||
| 92 | interrupt-parent = <&gic>; | ||
| 93 | interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>; | ||
| 94 | #gpio-cells = <2>; | ||
| 95 | gpio-controller; | ||
| 96 | gpio-ranges = <&pfc 0 96 32>; | ||
| 97 | #interrupt-cells = <2>; | ||
| 98 | interrupt-controller; | ||
| 99 | }; | ||
| 100 | |||
| 101 | gpio4: gpio@e6054000 { | ||
| 102 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 103 | reg = <0 0xe6054000 0 0x50>; | ||
| 104 | interrupt-parent = <&gic>; | ||
| 105 | interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>; | ||
| 106 | #gpio-cells = <2>; | ||
| 107 | gpio-controller; | ||
| 108 | gpio-ranges = <&pfc 0 128 32>; | ||
| 109 | #interrupt-cells = <2>; | ||
| 110 | interrupt-controller; | ||
| 111 | }; | ||
| 112 | |||
| 113 | gpio5: gpio@e6055000 { | ||
| 114 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 115 | reg = <0 0xe6055000 0 0x50>; | ||
| 116 | interrupt-parent = <&gic>; | ||
| 117 | interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH>; | ||
| 118 | #gpio-cells = <2>; | ||
| 119 | gpio-controller; | ||
| 120 | gpio-ranges = <&pfc 0 160 32>; | ||
| 121 | #interrupt-cells = <2>; | ||
| 122 | interrupt-controller; | ||
| 123 | }; | ||
| 124 | |||
| 125 | gpio6: gpio@e6055400 { | ||
| 126 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 127 | reg = <0 0xe6055400 0 0x50>; | ||
| 128 | interrupt-parent = <&gic>; | ||
| 129 | interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>; | ||
| 130 | #gpio-cells = <2>; | ||
| 131 | gpio-controller; | ||
| 132 | gpio-ranges = <&pfc 0 192 32>; | ||
| 133 | #interrupt-cells = <2>; | ||
| 134 | interrupt-controller; | ||
| 135 | }; | ||
| 136 | |||
| 137 | gpio7: gpio@e6055800 { | ||
| 138 | compatible = "renesas,gpio-r8a7791", "renesas,gpio-rcar"; | ||
| 139 | reg = <0 0xe6055800 0 0x50>; | ||
| 140 | interrupt-parent = <&gic>; | ||
| 141 | interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>; | ||
| 142 | #gpio-cells = <2>; | ||
| 143 | gpio-controller; | ||
| 144 | gpio-ranges = <&pfc 0 224 26>; | ||
| 145 | #interrupt-cells = <2>; | ||
| 146 | interrupt-controller; | ||
| 147 | }; | ||
| 148 | |||
| 149 | thermal@e61f0000 { | ||
| 150 | compatible = "renesas,thermal-r8a7791", "renesas,rcar-thermal"; | ||
| 151 | reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; | ||
| 152 | interrupt-parent = <&gic>; | ||
| 153 | interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; | ||
| 47 | }; | 154 | }; |
| 48 | 155 | ||
| 49 | timer { | 156 | timer { |
| 50 | compatible = "arm,armv7-timer"; | 157 | compatible = "arm,armv7-timer"; |
| 51 | interrupts = <1 13 0xf08>, | 158 | interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 52 | <1 14 0xf08>, | 159 | <1 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 53 | <1 11 0xf08>, | 160 | <1 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, |
| 54 | <1 10 0xf08>; | 161 | <1 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; |
| 55 | }; | 162 | }; |
| 56 | 163 | ||
| 57 | irqc0: interrupt-controller@e61c0000 { | 164 | irqc0: interrupt-controller@e61c0000 { |
| 58 | compatible = "renesas,irqc"; | 165 | compatible = "renesas,irqc-r8a7791", "renesas,irqc"; |
| 59 | #interrupt-cells = <2>; | 166 | #interrupt-cells = <2>; |
| 60 | interrupt-controller; | 167 | interrupt-controller; |
| 61 | reg = <0 0xe61c0000 0 0x200>; | 168 | reg = <0 0xe61c0000 0 0x200>; |
| 62 | interrupt-parent = <&gic>; | 169 | interrupt-parent = <&gic>; |
| 63 | interrupts = <0 0 4>, | 170 | interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>, |
| 64 | <0 1 4>, | 171 | <0 1 IRQ_TYPE_LEVEL_HIGH>, |
| 65 | <0 2 4>, | 172 | <0 2 IRQ_TYPE_LEVEL_HIGH>, |
| 66 | <0 3 4>, | 173 | <0 3 IRQ_TYPE_LEVEL_HIGH>, |
| 67 | <0 12 4>, | 174 | <0 12 IRQ_TYPE_LEVEL_HIGH>, |
| 68 | <0 13 4>, | 175 | <0 13 IRQ_TYPE_LEVEL_HIGH>, |
| 69 | <0 14 4>, | 176 | <0 14 IRQ_TYPE_LEVEL_HIGH>, |
| 70 | <0 15 4>, | 177 | <0 15 IRQ_TYPE_LEVEL_HIGH>, |
| 71 | <0 16 4>, | 178 | <0 16 IRQ_TYPE_LEVEL_HIGH>, |
| 72 | <0 17 4>; | 179 | <0 17 IRQ_TYPE_LEVEL_HIGH>; |
| 180 | }; | ||
| 181 | |||
| 182 | pfc: pfc@e6060000 { | ||
| 183 | compatible = "renesas,pfc-r8a7791"; | ||
| 184 | reg = <0 0xe6060000 0 0x250>; | ||
| 185 | #gpio-range-cells = <3>; | ||
| 186 | }; | ||
| 187 | |||
| 188 | clocks { | ||
| 189 | #address-cells = <2>; | ||
| 190 | #size-cells = <2>; | ||
| 191 | ranges; | ||
| 192 | |||
| 193 | /* External root clock */ | ||
| 194 | extal_clk: extal_clk { | ||
| 195 | compatible = "fixed-clock"; | ||
| 196 | #clock-cells = <0>; | ||
| 197 | /* This value must be overriden by the board. */ | ||
| 198 | clock-frequency = <0>; | ||
| 199 | clock-output-names = "extal"; | ||
| 200 | }; | ||
| 201 | |||
| 202 | /* Special CPG clocks */ | ||
| 203 | cpg_clocks: cpg_clocks@e6150000 { | ||
| 204 | compatible = "renesas,r8a7791-cpg-clocks", | ||
| 205 | "renesas,rcar-gen2-cpg-clocks"; | ||
| 206 | reg = <0 0xe6150000 0 0x1000>; | ||
| 207 | clocks = <&extal_clk>; | ||
| 208 | #clock-cells = <1>; | ||
| 209 | clock-output-names = "main", "pll0", "pll1", "pll3", | ||
| 210 | "lb", "qspi", "sdh", "sd0", "z"; | ||
| 211 | }; | ||
| 212 | |||
| 213 | /* Variable factor clocks */ | ||
| 214 | sd1_clk: sd2_clk@e6150078 { | ||
| 215 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
| 216 | reg = <0 0xe6150078 0 4>; | ||
| 217 | clocks = <&pll1_div2_clk>; | ||
| 218 | #clock-cells = <0>; | ||
| 219 | clock-output-names = "sd1"; | ||
| 220 | }; | ||
| 221 | sd2_clk: sd3_clk@e615007c { | ||
| 222 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
| 223 | reg = <0 0xe615007c 0 4>; | ||
| 224 | clocks = <&pll1_div2_clk>; | ||
| 225 | #clock-cells = <0>; | ||
| 226 | clock-output-names = "sd2"; | ||
| 227 | }; | ||
| 228 | mmc0_clk: mmc0_clk@e6150240 { | ||
| 229 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
| 230 | reg = <0 0xe6150240 0 4>; | ||
| 231 | clocks = <&pll1_div2_clk>; | ||
| 232 | #clock-cells = <0>; | ||
| 233 | clock-output-names = "mmc0"; | ||
| 234 | }; | ||
| 235 | ssp_clk: ssp_clk@e6150248 { | ||
| 236 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
| 237 | reg = <0 0xe6150248 0 4>; | ||
| 238 | clocks = <&pll1_div2_clk>; | ||
| 239 | #clock-cells = <0>; | ||
| 240 | clock-output-names = "ssp"; | ||
| 241 | }; | ||
| 242 | ssprs_clk: ssprs_clk@e615024c { | ||
| 243 | compatible = "renesas,r8a7791-div6-clock", "renesas,cpg-div6-clock"; | ||
| 244 | reg = <0 0xe615024c 0 4>; | ||
| 245 | clocks = <&pll1_div2_clk>; | ||
| 246 | #clock-cells = <0>; | ||
| 247 | clock-output-names = "ssprs"; | ||
| 248 | }; | ||
| 249 | |||
| 250 | /* Fixed factor clocks */ | ||
| 251 | pll1_div2_clk: pll1_div2_clk { | ||
| 252 | compatible = "fixed-factor-clock"; | ||
| 253 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 254 | #clock-cells = <0>; | ||
| 255 | clock-div = <2>; | ||
| 256 | clock-mult = <1>; | ||
| 257 | clock-output-names = "pll1_div2"; | ||
| 258 | }; | ||
| 259 | zg_clk: zg_clk { | ||
| 260 | compatible = "fixed-factor-clock"; | ||
| 261 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 262 | #clock-cells = <0>; | ||
| 263 | clock-div = <3>; | ||
| 264 | clock-mult = <1>; | ||
| 265 | clock-output-names = "zg"; | ||
| 266 | }; | ||
| 267 | zx_clk: zx_clk { | ||
| 268 | compatible = "fixed-factor-clock"; | ||
| 269 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 270 | #clock-cells = <0>; | ||
| 271 | clock-div = <3>; | ||
| 272 | clock-mult = <1>; | ||
| 273 | clock-output-names = "zx"; | ||
| 274 | }; | ||
| 275 | zs_clk: zs_clk { | ||
| 276 | compatible = "fixed-factor-clock"; | ||
| 277 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 278 | #clock-cells = <0>; | ||
| 279 | clock-div = <6>; | ||
| 280 | clock-mult = <1>; | ||
| 281 | clock-output-names = "zs"; | ||
| 282 | }; | ||
| 283 | hp_clk: hp_clk { | ||
| 284 | compatible = "fixed-factor-clock"; | ||
| 285 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 286 | #clock-cells = <0>; | ||
| 287 | clock-div = <12>; | ||
| 288 | clock-mult = <1>; | ||
| 289 | clock-output-names = "hp"; | ||
| 290 | }; | ||
| 291 | i_clk: i_clk { | ||
| 292 | compatible = "fixed-factor-clock"; | ||
| 293 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 294 | #clock-cells = <0>; | ||
| 295 | clock-div = <2>; | ||
| 296 | clock-mult = <1>; | ||
| 297 | clock-output-names = "i"; | ||
| 298 | }; | ||
| 299 | b_clk: b_clk { | ||
| 300 | compatible = "fixed-factor-clock"; | ||
| 301 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 302 | #clock-cells = <0>; | ||
| 303 | clock-div = <12>; | ||
| 304 | clock-mult = <1>; | ||
| 305 | clock-output-names = "b"; | ||
| 306 | }; | ||
| 307 | p_clk: p_clk { | ||
| 308 | compatible = "fixed-factor-clock"; | ||
| 309 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 310 | #clock-cells = <0>; | ||
| 311 | clock-div = <24>; | ||
| 312 | clock-mult = <1>; | ||
| 313 | clock-output-names = "p"; | ||
| 314 | }; | ||
| 315 | cl_clk: cl_clk { | ||
| 316 | compatible = "fixed-factor-clock"; | ||
| 317 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 318 | #clock-cells = <0>; | ||
| 319 | clock-div = <48>; | ||
| 320 | clock-mult = <1>; | ||
| 321 | clock-output-names = "cl"; | ||
| 322 | }; | ||
| 323 | m2_clk: m2_clk { | ||
| 324 | compatible = "fixed-factor-clock"; | ||
| 325 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 326 | #clock-cells = <0>; | ||
| 327 | clock-div = <8>; | ||
| 328 | clock-mult = <1>; | ||
| 329 | clock-output-names = "m2"; | ||
| 330 | }; | ||
| 331 | imp_clk: imp_clk { | ||
| 332 | compatible = "fixed-factor-clock"; | ||
| 333 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 334 | #clock-cells = <0>; | ||
| 335 | clock-div = <4>; | ||
| 336 | clock-mult = <1>; | ||
| 337 | clock-output-names = "imp"; | ||
| 338 | }; | ||
| 339 | rclk_clk: rclk_clk { | ||
| 340 | compatible = "fixed-factor-clock"; | ||
| 341 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 342 | #clock-cells = <0>; | ||
| 343 | clock-div = <(48 * 1024)>; | ||
| 344 | clock-mult = <1>; | ||
| 345 | clock-output-names = "rclk"; | ||
| 346 | }; | ||
| 347 | oscclk_clk: oscclk_clk { | ||
| 348 | compatible = "fixed-factor-clock"; | ||
| 349 | clocks = <&cpg_clocks R8A7791_CLK_PLL1>; | ||
| 350 | #clock-cells = <0>; | ||
| 351 | clock-div = <(12 * 1024)>; | ||
| 352 | clock-mult = <1>; | ||
| 353 | clock-output-names = "oscclk"; | ||
| 354 | }; | ||
| 355 | zb3_clk: zb3_clk { | ||
| 356 | compatible = "fixed-factor-clock"; | ||
| 357 | clocks = <&cpg_clocks R8A7791_CLK_PLL3>; | ||
| 358 | #clock-cells = <0>; | ||
| 359 | clock-div = <4>; | ||
| 360 | clock-mult = <1>; | ||
| 361 | clock-output-names = "zb3"; | ||
| 362 | }; | ||
| 363 | zb3d2_clk: zb3d2_clk { | ||
| 364 | compatible = "fixed-factor-clock"; | ||
| 365 | clocks = <&cpg_clocks R8A7791_CLK_PLL3>; | ||
| 366 | #clock-cells = <0>; | ||
| 367 | clock-div = <8>; | ||
| 368 | clock-mult = <1>; | ||
| 369 | clock-output-names = "zb3d2"; | ||
| 370 | }; | ||
| 371 | ddr_clk: ddr_clk { | ||
| 372 | compatible = "fixed-factor-clock"; | ||
| 373 | clocks = <&cpg_clocks R8A7791_CLK_PLL3>; | ||
| 374 | #clock-cells = <0>; | ||
| 375 | clock-div = <8>; | ||
| 376 | clock-mult = <1>; | ||
| 377 | clock-output-names = "ddr"; | ||
| 378 | }; | ||
| 379 | mp_clk: mp_clk { | ||
| 380 | compatible = "fixed-factor-clock"; | ||
| 381 | clocks = <&pll1_div2_clk>; | ||
| 382 | #clock-cells = <0>; | ||
| 383 | clock-div = <15>; | ||
| 384 | clock-mult = <1>; | ||
| 385 | clock-output-names = "mp"; | ||
| 386 | }; | ||
| 387 | cp_clk: cp_clk { | ||
| 388 | compatible = "fixed-factor-clock"; | ||
| 389 | clocks = <&extal_clk>; | ||
| 390 | #clock-cells = <0>; | ||
| 391 | clock-div = <2>; | ||
| 392 | clock-mult = <1>; | ||
| 393 | clock-output-names = "cp"; | ||
| 394 | }; | ||
| 395 | |||
| 396 | /* Gate clocks */ | ||
| 397 | mstp0_clks: mstp0_clks@e6150130 { | ||
| 398 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 399 | reg = <0 0xe6150130 0 4>, <0 0xe6150030 0 4>; | ||
| 400 | clocks = <&mp_clk>; | ||
| 401 | #clock-cells = <1>; | ||
| 402 | renesas,clock-indices = <R8A7791_CLK_MSIOF0>; | ||
| 403 | clock-output-names = "msiof0"; | ||
| 404 | }; | ||
| 405 | mstp1_clks: mstp1_clks@e6150134 { | ||
| 406 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 407 | reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>; | ||
| 408 | clocks = <&p_clk>, <&p_clk>, <&p_clk>, <&rclk_clk>, | ||
| 409 | <&cp_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>; | ||
| 410 | #clock-cells = <1>; | ||
| 411 | renesas,clock-indices = < | ||
| 412 | R8A7791_CLK_TMU1 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2 | ||
| 413 | R8A7791_CLK_CMT0 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1 | ||
| 414 | R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_SY | ||
| 415 | >; | ||
| 416 | clock-output-names = | ||
| 417 | "tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1", | ||
| 418 | "vsp1-du0", "vsp1-sy"; | ||
| 419 | }; | ||
| 420 | mstp2_clks: mstp2_clks@e6150138 { | ||
| 421 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 422 | reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; | ||
| 423 | clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, <&mp_clk>, | ||
| 424 | <&mp_clk>, <&mp_clk>, <&mp_clk>; | ||
| 425 | #clock-cells = <1>; | ||
| 426 | renesas,clock-indices = < | ||
| 427 | R8A7791_CLK_SCIFA2 R8A7791_CLK_SCIFA1 R8A7791_CLK_SCIFA0 | ||
| 428 | R8A7791_CLK_MSIOF2 R8A7791_CLK_SCIFB0 R8A7791_CLK_SCIFB1 | ||
| 429 | R8A7791_CLK_MSIOF1 R8A7791_CLK_SCIFB2 | ||
| 430 | >; | ||
| 431 | clock-output-names = | ||
| 432 | "scifa2", "scifa1", "scifa0", "misof2", "scifb0", | ||
| 433 | "scifb1", "msiof1", "scifb2"; | ||
| 434 | }; | ||
| 435 | mstp3_clks: mstp3_clks@e615013c { | ||
| 436 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 437 | reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>; | ||
| 438 | clocks = <&cp_clk>, <&sd2_clk>, <&sd1_clk>, | ||
| 439 | <&cpg_clocks R8A7791_CLK_SD0>, <&mmc0_clk>, <&rclk_clk>; | ||
| 440 | #clock-cells = <1>; | ||
| 441 | renesas,clock-indices = < | ||
| 442 | R8A7791_CLK_TPU0 R8A7791_CLK_SDHI2 R8A7791_CLK_SDHI1 | ||
| 443 | R8A7791_CLK_SDHI0 R8A7791_CLK_MMCIF0 R8A7791_CLK_CMT1 | ||
| 444 | >; | ||
| 445 | clock-output-names = | ||
| 446 | "tpu0", "sdhi2", "sdhi1", "sdhi0", "mmcif0", "cmt1"; | ||
| 447 | }; | ||
| 448 | mstp5_clks: mstp5_clks@e6150144 { | ||
| 449 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 450 | reg = <0 0xe6150144 0 4>, <0 0xe615003c 0 4>; | ||
| 451 | clocks = <&extal_clk>, <&p_clk>; | ||
| 452 | #clock-cells = <1>; | ||
| 453 | renesas,clock-indices = <R8A7791_CLK_THERMAL R8A7791_CLK_PWM>; | ||
| 454 | clock-output-names = "thermal", "pwm"; | ||
| 455 | }; | ||
| 456 | mstp7_clks: mstp7_clks@e615014c { | ||
| 457 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 458 | reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; | ||
| 459 | clocks = <&mp_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>, | ||
| 460 | <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, | ||
| 461 | <&zx_clk>, <&zx_clk>, <&zx_clk>; | ||
| 462 | #clock-cells = <1>; | ||
| 463 | renesas,clock-indices = < | ||
| 464 | R8A7791_CLK_HSUSB R8A7791_CLK_HSCIF2 R8A7791_CLK_SCIF5 | ||
| 465 | R8A7791_CLK_SCIF4 R8A7791_CLK_HSCIF1 R8A7791_CLK_HSCIF0 | ||
| 466 | R8A7791_CLK_SCIF3 R8A7791_CLK_SCIF2 R8A7791_CLK_SCIF1 | ||
| 467 | R8A7791_CLK_SCIF0 R8A7791_CLK_DU1 R8A7791_CLK_DU0 | ||
| 468 | R8A7791_CLK_LVDS0 | ||
| 469 | >; | ||
| 470 | clock-output-names = | ||
| 471 | "hsusb", "hscif2", "scif5", "scif4", "hscif1", "hscif0", | ||
| 472 | "scif3", "scif2", "scif1", "scif0", "du1", "du0", "lvds0"; | ||
| 473 | }; | ||
| 474 | mstp8_clks: mstp8_clks@e6150990 { | ||
| 475 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 476 | reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; | ||
| 477 | clocks = <&p_clk>; | ||
| 478 | #clock-cells = <1>; | ||
| 479 | renesas,clock-indices = <R8A7791_CLK_ETHER>; | ||
| 480 | clock-output-names = "ether"; | ||
| 481 | }; | ||
| 482 | mstp9_clks: mstp9_clks@e6150994 { | ||
| 483 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 484 | reg = <0 0xe6150994 0 4>, <0 0xe61509a4 0 4>; | ||
| 485 | clocks = <&p_clk>, <&p_clk>, <&cpg_clocks R8A7791_CLK_QSPI>, | ||
| 486 | <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, | ||
| 487 | <&p_clk>; | ||
| 488 | #clock-cells = <1>; | ||
| 489 | renesas,clock-indices = < | ||
| 490 | R8A7791_CLK_RCAN1 R8A7791_CLK_RCAN0 R8A7791_CLK_QSPI_MOD | ||
| 491 | R8A7791_CLK_I2C4 R8A7791_CLK_I2C4 R8A7791_CLK_I2C3 | ||
| 492 | R8A7791_CLK_I2C2 R8A7791_CLK_I2C1 R8A7791_CLK_I2C0 | ||
| 493 | >; | ||
| 494 | clock-output-names = | ||
| 495 | "rcan1", "rcan0", "qspi_mod", "i2c5", "i2c4", "i2c3", | ||
| 496 | "i2c2", "i2c1", "i2c0"; | ||
| 497 | }; | ||
| 498 | mstp11_clks: mstp11_clks@e615099c { | ||
| 499 | compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; | ||
| 500 | reg = <0 0xe615099c 0 4>, <0 0xe61509ac 0 4>; | ||
| 501 | clocks = <&mp_clk>, <&mp_clk>, <&mp_clk>; | ||
| 502 | #clock-cells = <1>; | ||
| 503 | renesas,clock-indices = < | ||
| 504 | R8A7791_CLK_SCIFA3 R8A7791_CLK_SCIFA4 R8A7791_CLK_SCIFA5 | ||
| 505 | >; | ||
| 506 | clock-output-names = "scifa3", "scifa4", "scifa5"; | ||
| 507 | }; | ||
| 73 | }; | 508 | }; |
| 74 | }; | 509 | }; |
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi index de9feced9935..1105558d188b 100644 --- a/arch/arm/boot/dts/sama5d3.dtsi +++ b/arch/arm/boot/dts/sama5d3.dtsi | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * sama5d3.dtsi - Device Tree Include file for SAMA5D3 family SoC | 2 | * sama5d3.dtsi - Device Tree Include file for SAMA5D3 family SoC |
| 3 | * applies to SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35 SoC | 3 | * applies to SAMA5D31, SAMA5D33, SAMA5D34, SAMA5D35, SAMA5D36 SoC |
| 4 | * | 4 | * |
| 5 | * Copyright (C) 2013 Atmel, | 5 | * Copyright (C) 2013 Atmel, |
| 6 | * 2013 Ludovic Desroches <ludovic.desroches@atmel.com> | 6 | * 2013 Ludovic Desroches <ludovic.desroches@atmel.com> |
| @@ -37,6 +37,7 @@ | |||
| 37 | i2c2 = &i2c2; | 37 | i2c2 = &i2c2; |
| 38 | ssc0 = &ssc0; | 38 | ssc0 = &ssc0; |
| 39 | ssc1 = &ssc1; | 39 | ssc1 = &ssc1; |
| 40 | pwm0 = &pwm0; | ||
| 40 | }; | 41 | }; |
| 41 | cpus { | 42 | cpus { |
| 42 | #address-cells = <1>; | 43 | #address-cells = <1>; |
| @@ -179,6 +180,15 @@ | |||
| 179 | status = "disabled"; | 180 | status = "disabled"; |
| 180 | }; | 181 | }; |
| 181 | 182 | ||
| 183 | pwm0: pwm@f002c000 { | ||
| 184 | compatible = "atmel,sama5d3-pwm"; | ||
| 185 | reg = <0xf002c000 0x300>; | ||
| 186 | interrupts = <28 IRQ_TYPE_LEVEL_HIGH 4>; | ||
| 187 | #pwm-cells = <3>; | ||
| 188 | clocks = <&pwm_clk>; | ||
| 189 | status = "disabled"; | ||
| 190 | }; | ||
| 191 | |||
| 182 | isi: isi@f0034000 { | 192 | isi: isi@f0034000 { |
| 183 | compatible = "atmel,at91sam9g45-isi"; | 193 | compatible = "atmel,at91sam9g45-isi"; |
| 184 | reg = <0xf0034000 0x4000>; | 194 | reg = <0xf0034000 0x4000>; |
| @@ -304,6 +314,8 @@ | |||
| 304 | dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(11)>, | 314 | dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(11)>, |
| 305 | <&dma1 2 AT91_DMA_CFG_PER_ID(12)>; | 315 | <&dma1 2 AT91_DMA_CFG_PER_ID(12)>; |
| 306 | dma-names = "tx", "rx"; | 316 | dma-names = "tx", "rx"; |
| 317 | pinctrl-names = "default"; | ||
| 318 | pinctrl-0 = <&pinctrl_i2c2>; | ||
| 307 | #address-cells = <1>; | 319 | #address-cells = <1>; |
| 308 | #size-cells = <0>; | 320 | #size-cells = <0>; |
| 309 | clocks = <&twi2_clk>; | 321 | clocks = <&twi2_clk>; |
| @@ -333,21 +345,35 @@ | |||
| 333 | }; | 345 | }; |
| 334 | 346 | ||
| 335 | sha@f8034000 { | 347 | sha@f8034000 { |
| 336 | compatible = "atmel,sam9g46-sha"; | 348 | compatible = "atmel,at91sam9g46-sha"; |
| 337 | reg = <0xf8034000 0x100>; | 349 | reg = <0xf8034000 0x100>; |
| 338 | interrupts = <42 IRQ_TYPE_LEVEL_HIGH 0>; | 350 | interrupts = <42 IRQ_TYPE_LEVEL_HIGH 0>; |
| 351 | dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(17)>; | ||
| 352 | dma-names = "tx"; | ||
| 353 | clocks = <&sha_clk>; | ||
| 354 | clock-names = "sha_clk"; | ||
| 339 | }; | 355 | }; |
| 340 | 356 | ||
| 341 | aes@f8038000 { | 357 | aes@f8038000 { |
| 342 | compatible = "atmel,sam9g46-aes"; | 358 | compatible = "atmel,at91sam9g46-aes"; |
| 343 | reg = <0xf8038000 0x100>; | 359 | reg = <0xf8038000 0x100>; |
| 344 | interrupts = <43 4 0>; | 360 | interrupts = <43 IRQ_TYPE_LEVEL_HIGH 0>; |
| 361 | dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(18)>, | ||
| 362 | <&dma1 2 AT91_DMA_CFG_PER_ID(19)>; | ||
| 363 | dma-names = "tx", "rx"; | ||
| 364 | clocks = <&aes_clk>; | ||
| 365 | clock-names = "aes_clk"; | ||
| 345 | }; | 366 | }; |
| 346 | 367 | ||
| 347 | tdes@f803c000 { | 368 | tdes@f803c000 { |
| 348 | compatible = "atmel,sam9g46-tdes"; | 369 | compatible = "atmel,at91sam9g46-tdes"; |
| 349 | reg = <0xf803c000 0x100>; | 370 | reg = <0xf803c000 0x100>; |
| 350 | interrupts = <44 IRQ_TYPE_LEVEL_HIGH 0>; | 371 | interrupts = <44 IRQ_TYPE_LEVEL_HIGH 0>; |
| 372 | dmas = <&dma1 2 AT91_DMA_CFG_PER_ID(20)>, | ||
| 373 | <&dma1 2 AT91_DMA_CFG_PER_ID(21)>; | ||
| 374 | dma-names = "tx", "rx"; | ||
| 375 | clocks = <&tdes_clk>; | ||
| 376 | clock-names = "tdes_clk"; | ||
| 351 | }; | 377 | }; |
| 352 | 378 | ||
| 353 | dma0: dma-controller@ffffe600 { | 379 | dma0: dma-controller@ffffe600 { |
| @@ -486,6 +512,14 @@ | |||
| 486 | }; | 512 | }; |
| 487 | }; | 513 | }; |
| 488 | 514 | ||
| 515 | i2c2 { | ||
| 516 | pinctrl_i2c2: i2c2-0 { | ||
| 517 | atmel,pins = | ||
| 518 | <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_NONE /* TWD2 pin, conflicts with LCDDAT18, ISI_D2 */ | ||
| 519 | AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* TWCK2 pin, conflicts with LCDDAT19, ISI_D3 */ | ||
| 520 | }; | ||
| 521 | }; | ||
| 522 | |||
| 489 | isi { | 523 | isi { |
| 490 | pinctrl_isi: isi-0 { | 524 | pinctrl_isi: isi-0 { |
| 491 | atmel,pins = | 525 | atmel,pins = |
diff --git a/arch/arm/boot/dts/sama5d36.dtsi b/arch/arm/boot/dts/sama5d36.dtsi new file mode 100644 index 000000000000..6c31c26e6cc0 --- /dev/null +++ b/arch/arm/boot/dts/sama5d36.dtsi | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | /* | ||
| 2 | * sama5d36.dtsi - Device Tree Include file for SAMA5D36 SoC | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Atmel, | ||
| 5 | * 2013 Josh Wu <josh.wu@atmel.com> | ||
| 6 | * | ||
| 7 | * Licensed under GPLv2 or later. | ||
| 8 | */ | ||
| 9 | #include "sama5d3.dtsi" | ||
| 10 | #include "sama5d3_can.dtsi" | ||
| 11 | #include "sama5d3_emac.dtsi" | ||
| 12 | #include "sama5d3_gmac.dtsi" | ||
| 13 | #include "sama5d3_lcd.dtsi" | ||
| 14 | #include "sama5d3_mci2.dtsi" | ||
| 15 | #include "sama5d3_tcb1.dtsi" | ||
| 16 | #include "sama5d3_uart.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | compatible = "atmel,samad36", "atmel,sama5d3", "atmel,sama5"; | ||
| 20 | }; | ||
diff --git a/arch/arm/boot/dts/sama5d36ek.dts b/arch/arm/boot/dts/sama5d36ek.dts new file mode 100644 index 000000000000..59576c6f9826 --- /dev/null +++ b/arch/arm/boot/dts/sama5d36ek.dts | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | /* | ||
| 2 | * sama5d36ek.dts - Device Tree file for SAMA5D36-EK board | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Atmel, | ||
| 5 | * 2013 Josh Wu <josh.wu@atmel.com> | ||
| 6 | * | ||
| 7 | * Licensed under GPLv2 or later. | ||
| 8 | */ | ||
| 9 | /dts-v1/; | ||
| 10 | #include "sama5d36.dtsi" | ||
| 11 | #include "sama5d3xmb.dtsi" | ||
| 12 | #include "sama5d3xdm.dtsi" | ||
| 13 | |||
| 14 | / { | ||
| 15 | model = "Atmel SAMA5D36-EK"; | ||
| 16 | compatible = "atmel,sama5d36ek", "atmel,sama5d3xmb", "atmel,sama5d3xcm", "atmel,sama5d36", "atmel,sama5d3", "atmel,sama5"; | ||
| 17 | |||
| 18 | ahb { | ||
| 19 | apb { | ||
| 20 | spi0: spi@f0004000 { | ||
| 21 | status = "okay"; | ||
| 22 | }; | ||
| 23 | |||
| 24 | ssc0: ssc@f0008000 { | ||
| 25 | status = "okay"; | ||
| 26 | }; | ||
| 27 | |||
| 28 | can0: can@f000c000 { | ||
| 29 | status = "okay"; | ||
| 30 | }; | ||
| 31 | |||
| 32 | i2c0: i2c@f0014000 { | ||
| 33 | status = "okay"; | ||
| 34 | }; | ||
| 35 | |||
| 36 | i2c1: i2c@f0018000 { | ||
| 37 | status = "okay"; | ||
| 38 | }; | ||
| 39 | |||
| 40 | macb0: ethernet@f0028000 { | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | macb1: ethernet@f802c000 { | ||
| 45 | status = "okay"; | ||
| 46 | }; | ||
| 47 | }; | ||
| 48 | }; | ||
| 49 | |||
| 50 | sound { | ||
| 51 | status = "okay"; | ||
| 52 | }; | ||
| 53 | }; | ||
diff --git a/arch/arm/boot/dts/sama5d3_uart.dtsi b/arch/arm/boot/dts/sama5d3_uart.dtsi index 49d4d76ca6f4..a9fa75e41652 100644 --- a/arch/arm/boot/dts/sama5d3_uart.dtsi +++ b/arch/arm/boot/dts/sama5d3_uart.dtsi | |||
| @@ -12,6 +12,11 @@ | |||
| 12 | #include <dt-bindings/clk/at91.h> | 12 | #include <dt-bindings/clk/at91.h> |
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | aliases { | ||
| 16 | serial5 = &uart0; | ||
| 17 | serial6 = &uart1; | ||
| 18 | }; | ||
| 19 | |||
| 15 | ahb { | 20 | ahb { |
| 16 | apb { | 21 | apb { |
| 17 | pinctrl@fffff200 { | 22 | pinctrl@fffff200 { |
diff --git a/arch/arm/boot/dts/sama5d3xdm.dtsi b/arch/arm/boot/dts/sama5d3xdm.dtsi index 1c296d6b2f2a..f9bdde542ced 100644 --- a/arch/arm/boot/dts/sama5d3xdm.dtsi +++ b/arch/arm/boot/dts/sama5d3xdm.dtsi | |||
| @@ -18,6 +18,7 @@ | |||
| 18 | interrupts = <31 0x0>; | 18 | interrupts = <31 0x0>; |
| 19 | pinctrl-names = "default"; | 19 | pinctrl-names = "default"; |
| 20 | pinctrl-0 = <&pinctrl_qt1070_irq>; | 20 | pinctrl-0 = <&pinctrl_qt1070_irq>; |
| 21 | wakeup-source; | ||
| 21 | }; | 22 | }; |
| 22 | }; | 23 | }; |
| 23 | 24 | ||
diff --git a/arch/arm/boot/dts/sh7372-mackerel.dts b/arch/arm/boot/dts/sh7372-mackerel.dts index 8acf51e0cdae..a759a276c9a9 100644 --- a/arch/arm/boot/dts/sh7372-mackerel.dts +++ b/arch/arm/boot/dts/sh7372-mackerel.dts | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "sh7372.dtsi" | 12 | #include "sh7372.dtsi" |
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "Mackerel (AP4 EVM 2nd)"; | 15 | model = "Mackerel (AP4 EVM 2nd)"; |
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts index 8ee06dd81799..eb8886b535e4 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts | |||
| @@ -12,8 +12,9 @@ | |||
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | /dts-v1/; | 14 | /dts-v1/; |
| 15 | /include/ "sh73a0.dtsi" | 15 | #include "sh73a0.dtsi" |
| 16 | #include <dt-bindings/gpio/gpio.h> | 16 | #include <dt-bindings/gpio/gpio.h> |
| 17 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 17 | 18 | ||
| 18 | / { | 19 | / { |
| 19 | model = "KZM-A9-GT"; | 20 | model = "KZM-A9-GT"; |
| @@ -82,7 +83,7 @@ | |||
| 82 | reg = <0x10000000 0x100>; | 83 | reg = <0x10000000 0x100>; |
| 83 | phy-mode = "mii"; | 84 | phy-mode = "mii"; |
| 84 | interrupt-parent = <&irqpin0>; | 85 | interrupt-parent = <&irqpin0>; |
| 85 | interrupts = <3 0>; /* active low */ | 86 | interrupts = <3 IRQ_TYPE_EDGE_FALLING>; |
| 86 | reg-io-width = <4>; | 87 | reg-io-width = <4>; |
| 87 | smsc,irq-push-pull; | 88 | smsc,irq-push-pull; |
| 88 | smsc,save-mac-address; | 89 | smsc,save-mac-address; |
| @@ -105,6 +106,66 @@ | |||
| 105 | gpios = <&pfc 23 GPIO_ACTIVE_LOW>; | 106 | gpios = <&pfc 23 GPIO_ACTIVE_LOW>; |
| 106 | }; | 107 | }; |
| 107 | }; | 108 | }; |
| 109 | |||
| 110 | gpio-keys { | ||
| 111 | compatible = "gpio-keys"; | ||
| 112 | |||
| 113 | back-key { | ||
| 114 | gpios = <&pcf8575 8 GPIO_ACTIVE_LOW>; | ||
| 115 | linux,code = <158>; | ||
| 116 | label = "SW3"; | ||
| 117 | }; | ||
| 118 | |||
| 119 | right-key { | ||
| 120 | gpios = <&pcf8575 9 GPIO_ACTIVE_LOW>; | ||
| 121 | linux,code = <106>; | ||
| 122 | label = "SW2-R"; | ||
| 123 | }; | ||
| 124 | |||
| 125 | left-key { | ||
| 126 | gpios = <&pcf8575 10 GPIO_ACTIVE_LOW>; | ||
| 127 | linux,code = <105>; | ||
| 128 | label = "SW2-L"; | ||
| 129 | }; | ||
| 130 | |||
| 131 | enter-key { | ||
| 132 | gpios = <&pcf8575 11 GPIO_ACTIVE_LOW>; | ||
| 133 | linux,code = <28>; | ||
| 134 | label = "SW2-P"; | ||
| 135 | }; | ||
| 136 | |||
| 137 | up-key { | ||
| 138 | gpios = <&pcf8575 12 GPIO_ACTIVE_LOW>; | ||
| 139 | linux,code = <103>; | ||
| 140 | label = "SW2-U"; | ||
| 141 | }; | ||
| 142 | |||
| 143 | down-key { | ||
| 144 | gpios = <&pcf8575 13 GPIO_ACTIVE_LOW>; | ||
| 145 | linux,code = <108>; | ||
| 146 | label = "SW2-D"; | ||
| 147 | }; | ||
| 148 | |||
| 149 | home-key { | ||
| 150 | gpios = <&pcf8575 14 GPIO_ACTIVE_LOW>; | ||
| 151 | linux,code = <102>; | ||
| 152 | label = "SW1"; | ||
| 153 | }; | ||
| 154 | }; | ||
| 155 | |||
| 156 | sound { | ||
| 157 | compatible = "simple-audio-card"; | ||
| 158 | simple-audio-card,format = "left_j"; | ||
| 159 | simple-audio-card,cpu { | ||
| 160 | sound-dai = <&sh_fsi2 0>; | ||
| 161 | }; | ||
| 162 | simple-audio-card,codec { | ||
| 163 | sound-dai = <&ak4648>; | ||
| 164 | bitclock-master; | ||
| 165 | frame-master; | ||
| 166 | system-clock-frequency = <11289600>; | ||
| 167 | }; | ||
| 168 | }; | ||
| 108 | }; | 169 | }; |
| 109 | 170 | ||
| 110 | &i2c0 { | 171 | &i2c0 { |
| @@ -179,12 +240,29 @@ | |||
| 179 | }; | 240 | }; |
| 180 | }; | 241 | }; |
| 181 | }; | 242 | }; |
| 243 | |||
| 244 | ak4648: ak4648@0x12 { | ||
| 245 | #sound-dai-cells = <0>; | ||
| 246 | compatible = "asahi-kasei,ak4648"; | ||
| 247 | reg = <0x12>; | ||
| 248 | }; | ||
| 182 | }; | 249 | }; |
| 183 | 250 | ||
| 184 | &i2c3 { | 251 | &i2c3 { |
| 185 | pinctrl-0 = <&i2c3_pins>; | 252 | pinctrl-0 = <&i2c3_pins>; |
| 186 | pinctrl-names = "default"; | 253 | pinctrl-names = "default"; |
| 187 | status = "okay"; | 254 | status = "okay"; |
| 255 | |||
| 256 | pcf8575: gpio@20 { | ||
| 257 | compatible = "nxp,pcf8575"; | ||
| 258 | reg = <0x20>; | ||
| 259 | interrupt-parent = <&irqpin2>; | ||
| 260 | interrupts = <3 IRQ_TYPE_EDGE_FALLING>; | ||
| 261 | gpio-controller; | ||
| 262 | #gpio-cells = <2>; | ||
| 263 | interrupt-controller; | ||
| 264 | #interrupt-cells = <2>; | ||
| 265 | }; | ||
| 188 | }; | 266 | }; |
| 189 | 267 | ||
| 190 | &mmcif { | 268 | &mmcif { |
| @@ -205,7 +283,7 @@ | |||
| 205 | renesas,function = "i2c3"; | 283 | renesas,function = "i2c3"; |
| 206 | }; | 284 | }; |
| 207 | 285 | ||
| 208 | mmcif_pins: mmcif { | 286 | mmcif_pins: mmc { |
| 209 | mux { | 287 | mux { |
| 210 | renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0"; | 288 | renesas,groups = "mmc0_data8_0", "mmc0_ctrl_0"; |
| 211 | renesas,function = "mmc0"; | 289 | renesas,function = "mmc0"; |
| @@ -217,20 +295,26 @@ | |||
| 217 | }; | 295 | }; |
| 218 | }; | 296 | }; |
| 219 | 297 | ||
| 220 | scifa4_pins: scifa4 { | 298 | scifa4_pins: serial4 { |
| 221 | renesas,groups = "scifa4_data", "scifa4_ctrl"; | 299 | renesas,groups = "scifa4_data", "scifa4_ctrl"; |
| 222 | renesas,function = "scifa4"; | 300 | renesas,function = "scifa4"; |
| 223 | }; | 301 | }; |
| 224 | 302 | ||
| 225 | sdhi0_pins: sdhi0 { | 303 | sdhi0_pins: sd0 { |
| 226 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", "sdhi0_wp"; | 304 | renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd", "sdhi0_wp"; |
| 227 | renesas,function = "sdhi0"; | 305 | renesas,function = "sdhi0"; |
| 228 | }; | 306 | }; |
| 229 | 307 | ||
| 230 | sdhi2_pins: sdhi2 { | 308 | sdhi2_pins: sd2 { |
| 231 | renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; | 309 | renesas,groups = "sdhi2_data4", "sdhi2_ctrl"; |
| 232 | renesas,function = "sdhi2"; | 310 | renesas,function = "sdhi2"; |
| 233 | }; | 311 | }; |
| 312 | |||
| 313 | fsia_pins: sounda { | ||
| 314 | renesas,groups = "fsia_mclk_in", "fsia_sclk_in", | ||
| 315 | "fsia_data_in", "fsia_data_out"; | ||
| 316 | renesas,function = "fsia"; | ||
| 317 | }; | ||
| 234 | }; | 318 | }; |
| 235 | 319 | ||
| 236 | &sdhi0 { | 320 | &sdhi0 { |
| @@ -251,3 +335,10 @@ | |||
| 251 | broken-cd; | 335 | broken-cd; |
| 252 | status = "okay"; | 336 | status = "okay"; |
| 253 | }; | 337 | }; |
| 338 | |||
| 339 | &sh_fsi2 { | ||
| 340 | pinctrl-0 = <&fsia_pins>; | ||
| 341 | pinctrl-names = "default"; | ||
| 342 | |||
| 343 | status = "okay"; | ||
| 344 | }; | ||
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g.dts b/arch/arm/boot/dts/sh73a0-kzm9g.dts index 0f1ca7792c46..27c5f426d172 100644 --- a/arch/arm/boot/dts/sh73a0-kzm9g.dts +++ b/arch/arm/boot/dts/sh73a0-kzm9g.dts | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | /dts-v1/; | 11 | /dts-v1/; |
| 12 | /include/ "sh73a0.dtsi" | 12 | #include "sh73a0.dtsi" |
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | model = "KZM-A9-GT"; | 15 | model = "KZM-A9-GT"; |
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi index fcf26889a8a0..b7bd3b9a6753 100644 --- a/arch/arm/boot/dts/sh73a0.dtsi +++ b/arch/arm/boot/dts/sh73a0.dtsi | |||
| @@ -10,6 +10,8 @@ | |||
| 10 | 10 | ||
| 11 | /include/ "skeleton.dtsi" | 11 | /include/ "skeleton.dtsi" |
| 12 | 12 | ||
| 13 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 14 | |||
| 13 | / { | 15 | / { |
| 14 | compatible = "renesas,sh73a0"; | 16 | compatible = "renesas,sh73a0"; |
| 15 | 17 | ||
| @@ -40,12 +42,12 @@ | |||
| 40 | 42 | ||
| 41 | pmu { | 43 | pmu { |
| 42 | compatible = "arm,cortex-a9-pmu"; | 44 | compatible = "arm,cortex-a9-pmu"; |
| 43 | interrupts = <0 55 4>, | 45 | interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>, |
| 44 | <0 56 4>; | 46 | <0 56 IRQ_TYPE_LEVEL_HIGH>; |
| 45 | }; | 47 | }; |
| 46 | 48 | ||
| 47 | irqpin0: irqpin@e6900000 { | 49 | irqpin0: irqpin@e6900000 { |
| 48 | compatible = "renesas,intc-irqpin"; | 50 | compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin"; |
| 49 | #interrupt-cells = <2>; | 51 | #interrupt-cells = <2>; |
| 50 | interrupt-controller; | 52 | interrupt-controller; |
| 51 | reg = <0xe6900000 4>, | 53 | reg = <0xe6900000 4>, |
| @@ -54,18 +56,18 @@ | |||
| 54 | <0xe6900040 1>, | 56 | <0xe6900040 1>, |
| 55 | <0xe6900060 1>; | 57 | <0xe6900060 1>; |
| 56 | interrupt-parent = <&gic>; | 58 | interrupt-parent = <&gic>; |
| 57 | interrupts = <0 1 0x4 | 59 | interrupts = <0 1 IRQ_TYPE_LEVEL_HIGH |
| 58 | 0 2 0x4 | 60 | 0 2 IRQ_TYPE_LEVEL_HIGH |
| 59 | 0 3 0x4 | 61 | 0 3 IRQ_TYPE_LEVEL_HIGH |
| 60 | 0 4 0x4 | 62 | 0 4 IRQ_TYPE_LEVEL_HIGH |
| 61 | 0 5 0x4 | 63 | 0 5 IRQ_TYPE_LEVEL_HIGH |
| 62 | 0 6 0x4 | 64 | 0 6 IRQ_TYPE_LEVEL_HIGH |
| 63 | 0 7 0x4 | 65 | 0 7 IRQ_TYPE_LEVEL_HIGH |
| 64 | 0 8 0x4>; | 66 | 0 8 IRQ_TYPE_LEVEL_HIGH>; |
| 65 | }; | 67 | }; |
| 66 | 68 | ||
| 67 | irqpin1: irqpin@e6900004 { | 69 | irqpin1: irqpin@e6900004 { |
| 68 | compatible = "renesas,intc-irqpin"; | 70 | compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin"; |
| 69 | #interrupt-cells = <2>; | 71 | #interrupt-cells = <2>; |
| 70 | interrupt-controller; | 72 | interrupt-controller; |
| 71 | reg = <0xe6900004 4>, | 73 | reg = <0xe6900004 4>, |
| @@ -74,19 +76,19 @@ | |||
| 74 | <0xe6900044 1>, | 76 | <0xe6900044 1>, |
| 75 | <0xe6900064 1>; | 77 | <0xe6900064 1>; |
| 76 | interrupt-parent = <&gic>; | 78 | interrupt-parent = <&gic>; |
| 77 | interrupts = <0 9 0x4 | 79 | interrupts = <0 9 IRQ_TYPE_LEVEL_HIGH |
| 78 | 0 10 0x4 | 80 | 0 10 IRQ_TYPE_LEVEL_HIGH |
| 79 | 0 11 0x4 | 81 | 0 11 IRQ_TYPE_LEVEL_HIGH |
| 80 | 0 12 0x4 | 82 | 0 12 IRQ_TYPE_LEVEL_HIGH |
| 81 | 0 13 0x4 | 83 | 0 13 IRQ_TYPE_LEVEL_HIGH |
| 82 | 0 14 0x4 | 84 | 0 14 IRQ_TYPE_LEVEL_HIGH |
| 83 | 0 15 0x4 | 85 | 0 15 IRQ_TYPE_LEVEL_HIGH |
| 84 | 0 16 0x4>; | 86 | 0 16 IRQ_TYPE_LEVEL_HIGH>; |
| 85 | control-parent; | 87 | control-parent; |
| 86 | }; | 88 | }; |
| 87 | 89 | ||
| 88 | irqpin2: irqpin@e6900008 { | 90 | irqpin2: irqpin@e6900008 { |
| 89 | compatible = "renesas,intc-irqpin"; | 91 | compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin"; |
| 90 | #interrupt-cells = <2>; | 92 | #interrupt-cells = <2>; |
| 91 | interrupt-controller; | 93 | interrupt-controller; |
| 92 | reg = <0xe6900008 4>, | 94 | reg = <0xe6900008 4>, |
| @@ -95,18 +97,18 @@ | |||
| 95 | <0xe6900048 1>, | 97 | <0xe6900048 1>, |
| 96 | <0xe6900068 1>; | 98 | <0xe6900068 1>; |
| 97 | interrupt-parent = <&gic>; | 99 | interrupt-parent = <&gic>; |
| 98 | interrupts = <0 17 0x4 | 100 | interrupts = <0 17 IRQ_TYPE_LEVEL_HIGH |
| 99 | 0 18 0x4 | 101 | 0 18 IRQ_TYPE_LEVEL_HIGH |
| 100 | 0 19 0x4 | 102 | 0 19 IRQ_TYPE_LEVEL_HIGH |
| 101 | 0 20 0x4 | 103 | 0 20 IRQ_TYPE_LEVEL_HIGH |
| 102 | 0 21 0x4 | 104 | 0 21 IRQ_TYPE_LEVEL_HIGH |
| 103 | 0 22 0x4 | 105 | 0 22 IRQ_TYPE_LEVEL_HIGH |
| 104 | 0 23 0x4 | 106 | 0 23 IRQ_TYPE_LEVEL_HIGH |
| 105 | 0 24 0x4>; | 107 | 0 24 IRQ_TYPE_LEVEL_HIGH>; |
| 106 | }; | 108 | }; |
| 107 | 109 | ||
| 108 | irqpin3: irqpin@e690000c { | 110 | irqpin3: irqpin@e690000c { |
| 109 | compatible = "renesas,intc-irqpin"; | 111 | compatible = "renesas,intc-irqpin-sh73a0", "renesas,intc-irqpin"; |
| 110 | #interrupt-cells = <2>; | 112 | #interrupt-cells = <2>; |
| 111 | interrupt-controller; | 113 | interrupt-controller; |
| 112 | reg = <0xe690000c 4>, | 114 | reg = <0xe690000c 4>, |
| @@ -115,14 +117,14 @@ | |||
| 115 | <0xe690004c 1>, | 117 | <0xe690004c 1>, |
| 116 | <0xe690006c 1>; | 118 | <0xe690006c 1>; |
| 117 | interrupt-parent = <&gic>; | 119 | interrupt-parent = <&gic>; |
| 118 | interrupts = <0 25 0x4 | 120 | interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH |
| 119 | 0 26 0x4 | 121 | 0 26 IRQ_TYPE_LEVEL_HIGH |
| 120 | 0 27 0x4 | 122 | 0 27 IRQ_TYPE_LEVEL_HIGH |
| 121 | 0 28 0x4 | 123 | 0 28 IRQ_TYPE_LEVEL_HIGH |
| 122 | 0 29 0x4 | 124 | 0 29 IRQ_TYPE_LEVEL_HIGH |
| 123 | 0 30 0x4 | 125 | 0 30 IRQ_TYPE_LEVEL_HIGH |
| 124 | 0 31 0x4 | 126 | 0 31 IRQ_TYPE_LEVEL_HIGH |
| 125 | 0 32 0x4>; | 127 | 0 32 IRQ_TYPE_LEVEL_HIGH>; |
| 126 | }; | 128 | }; |
| 127 | 129 | ||
| 128 | i2c0: i2c@e6820000 { | 130 | i2c0: i2c@e6820000 { |
| @@ -131,10 +133,10 @@ | |||
| 131 | compatible = "renesas,rmobile-iic"; | 133 | compatible = "renesas,rmobile-iic"; |
| 132 | reg = <0xe6820000 0x425>; | 134 | reg = <0xe6820000 0x425>; |
| 133 | interrupt-parent = <&gic>; | 135 | interrupt-parent = <&gic>; |
| 134 | interrupts = <0 167 0x4 | 136 | interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH |
| 135 | 0 168 0x4 | 137 | 0 168 IRQ_TYPE_LEVEL_HIGH |
| 136 | 0 169 0x4 | 138 | 0 169 IRQ_TYPE_LEVEL_HIGH |
| 137 | 0 170 0x4>; | 139 | 0 170 IRQ_TYPE_LEVEL_HIGH>; |
| 138 | status = "disabled"; | 140 | status = "disabled"; |
| 139 | }; | 141 | }; |
| 140 | 142 | ||
| @@ -144,10 +146,10 @@ | |||
| 144 | compatible = "renesas,rmobile-iic"; | 146 | compatible = "renesas,rmobile-iic"; |
| 145 | reg = <0xe6822000 0x425>; | 147 | reg = <0xe6822000 0x425>; |
| 146 | interrupt-parent = <&gic>; | 148 | interrupt-parent = <&gic>; |
| 147 | interrupts = <0 51 0x4 | 149 | interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH |
| 148 | 0 52 0x4 | 150 | 0 52 IRQ_TYPE_LEVEL_HIGH |
| 149 | 0 53 0x4 | 151 | 0 53 IRQ_TYPE_LEVEL_HIGH |
| 150 | 0 54 0x4>; | 152 | 0 54 IRQ_TYPE_LEVEL_HIGH>; |
| 151 | status = "disabled"; | 153 | status = "disabled"; |
| 152 | }; | 154 | }; |
| 153 | 155 | ||
| @@ -157,10 +159,10 @@ | |||
| 157 | compatible = "renesas,rmobile-iic"; | 159 | compatible = "renesas,rmobile-iic"; |
| 158 | reg = <0xe6824000 0x425>; | 160 | reg = <0xe6824000 0x425>; |
| 159 | interrupt-parent = <&gic>; | 161 | interrupt-parent = <&gic>; |
| 160 | interrupts = <0 171 0x4 | 162 | interrupts = <0 171 IRQ_TYPE_LEVEL_HIGH |
| 161 | 0 172 0x4 | 163 | 0 172 IRQ_TYPE_LEVEL_HIGH |
| 162 | 0 173 0x4 | 164 | 0 173 IRQ_TYPE_LEVEL_HIGH |
| 163 | 0 174 0x4>; | 165 | 0 174 IRQ_TYPE_LEVEL_HIGH>; |
| 164 | status = "disabled"; | 166 | status = "disabled"; |
| 165 | }; | 167 | }; |
| 166 | 168 | ||
| @@ -170,10 +172,10 @@ | |||
| 170 | compatible = "renesas,rmobile-iic"; | 172 | compatible = "renesas,rmobile-iic"; |
| 171 | reg = <0xe6826000 0x425>; | 173 | reg = <0xe6826000 0x425>; |
| 172 | interrupt-parent = <&gic>; | 174 | interrupt-parent = <&gic>; |
| 173 | interrupts = <0 183 0x4 | 175 | interrupts = <0 183 IRQ_TYPE_LEVEL_HIGH |
| 174 | 0 184 0x4 | 176 | 0 184 IRQ_TYPE_LEVEL_HIGH |
| 175 | 0 185 0x4 | 177 | 0 185 IRQ_TYPE_LEVEL_HIGH |
| 176 | 0 186 0x4>; | 178 | 0 186 IRQ_TYPE_LEVEL_HIGH>; |
| 177 | status = "disabled"; | 179 | status = "disabled"; |
| 178 | }; | 180 | }; |
| 179 | 181 | ||
| @@ -183,52 +185,52 @@ | |||
| 183 | compatible = "renesas,rmobile-iic"; | 185 | compatible = "renesas,rmobile-iic"; |
| 184 | reg = <0xe6828000 0x425>; | 186 | reg = <0xe6828000 0x425>; |
| 185 | interrupt-parent = <&gic>; | 187 | interrupt-parent = <&gic>; |
| 186 | interrupts = <0 187 0x4 | 188 | interrupts = <0 187 IRQ_TYPE_LEVEL_HIGH |
| 187 | 0 188 0x4 | 189 | 0 188 IRQ_TYPE_LEVEL_HIGH |
| 188 | 0 189 0x4 | 190 | 0 189 IRQ_TYPE_LEVEL_HIGH |
| 189 | 0 190 0x4>; | 191 | 0 190 IRQ_TYPE_LEVEL_HIGH>; |
| 190 | status = "disabled"; | 192 | status = "disabled"; |
| 191 | }; | 193 | }; |
| 192 | 194 | ||
| 193 | mmcif: mmcif@e6bd0000 { | 195 | mmcif: mmc@e6bd0000 { |
| 194 | compatible = "renesas,sh-mmcif"; | 196 | compatible = "renesas,sh-mmcif"; |
| 195 | reg = <0xe6bd0000 0x100>; | 197 | reg = <0xe6bd0000 0x100>; |
| 196 | interrupt-parent = <&gic>; | 198 | interrupt-parent = <&gic>; |
| 197 | interrupts = <0 140 0x4 | 199 | interrupts = <0 140 IRQ_TYPE_LEVEL_HIGH |
| 198 | 0 141 0x4>; | 200 | 0 141 IRQ_TYPE_LEVEL_HIGH>; |
| 199 | reg-io-width = <4>; | 201 | reg-io-width = <4>; |
| 200 | status = "disabled"; | 202 | status = "disabled"; |
| 201 | }; | 203 | }; |
| 202 | 204 | ||
| 203 | sdhi0: sdhi@ee100000 { | 205 | sdhi0: sd@ee100000 { |
| 204 | compatible = "renesas,sdhi-r8a7740"; | 206 | compatible = "renesas,sdhi-sh73a0"; |
| 205 | reg = <0xee100000 0x100>; | 207 | reg = <0xee100000 0x100>; |
| 206 | interrupt-parent = <&gic>; | 208 | interrupt-parent = <&gic>; |
| 207 | interrupts = <0 83 4 | 209 | interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH |
| 208 | 0 84 4 | 210 | 0 84 IRQ_TYPE_LEVEL_HIGH |
| 209 | 0 85 4>; | 211 | 0 85 IRQ_TYPE_LEVEL_HIGH>; |
| 210 | cap-sd-highspeed; | 212 | cap-sd-highspeed; |
| 211 | status = "disabled"; | 213 | status = "disabled"; |
| 212 | }; | 214 | }; |
| 213 | 215 | ||
| 214 | /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */ | 216 | /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */ |
| 215 | sdhi1: sdhi@ee120000 { | 217 | sdhi1: sd@ee120000 { |
| 216 | compatible = "renesas,sdhi-r8a7740"; | 218 | compatible = "renesas,sdhi-sh73a0"; |
| 217 | reg = <0xee120000 0x100>; | 219 | reg = <0xee120000 0x100>; |
| 218 | interrupt-parent = <&gic>; | 220 | interrupt-parent = <&gic>; |
| 219 | interrupts = <0 88 4 | 221 | interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH |
| 220 | 0 89 4>; | 222 | 0 89 IRQ_TYPE_LEVEL_HIGH>; |
| 221 | toshiba,mmc-wrprotect-disable; | 223 | toshiba,mmc-wrprotect-disable; |
| 222 | cap-sd-highspeed; | 224 | cap-sd-highspeed; |
| 223 | status = "disabled"; | 225 | status = "disabled"; |
| 224 | }; | 226 | }; |
| 225 | 227 | ||
| 226 | sdhi2: sdhi@ee140000 { | 228 | sdhi2: sd@ee140000 { |
| 227 | compatible = "renesas,sdhi-r8a7740"; | 229 | compatible = "renesas,sdhi-sh73a0"; |
| 228 | reg = <0xee140000 0x100>; | 230 | reg = <0xee140000 0x100>; |
| 229 | interrupt-parent = <&gic>; | 231 | interrupt-parent = <&gic>; |
| 230 | interrupts = <0 104 4 | 232 | interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH |
| 231 | 0 105 4>; | 233 | 0 105 IRQ_TYPE_LEVEL_HIGH>; |
| 232 | toshiba,mmc-wrprotect-disable; | 234 | toshiba,mmc-wrprotect-disable; |
| 233 | cap-sd-highspeed; | 235 | cap-sd-highspeed; |
| 234 | status = "disabled"; | 236 | status = "disabled"; |
| @@ -240,5 +242,23 @@ | |||
| 240 | <0xe605801c 0x1c>; | 242 | <0xe605801c 0x1c>; |
| 241 | gpio-controller; | 243 | gpio-controller; |
| 242 | #gpio-cells = <2>; | 244 | #gpio-cells = <2>; |
| 245 | interrupts-extended = | ||
| 246 | <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, | ||
| 247 | <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, | ||
| 248 | <&irqpin1 0 0>, <&irqpin1 1 0>, <&irqpin1 2 0>, <&irqpin1 3 0>, | ||
| 249 | <&irqpin1 4 0>, <&irqpin1 5 0>, <&irqpin1 6 0>, <&irqpin1 7 0>, | ||
| 250 | <&irqpin2 0 0>, <&irqpin2 1 0>, <&irqpin2 2 0>, <&irqpin2 3 0>, | ||
| 251 | <&irqpin2 4 0>, <&irqpin2 5 0>, <&irqpin2 6 0>, <&irqpin2 7 0>, | ||
| 252 | <&irqpin3 0 0>, <&irqpin3 1 0>, <&irqpin3 2 0>, <&irqpin3 3 0>, | ||
| 253 | <&irqpin3 4 0>, <&irqpin3 5 0>, <&irqpin3 6 0>, <&irqpin3 7 0>; | ||
| 254 | }; | ||
| 255 | |||
| 256 | sh_fsi2: sound@ec230000 { | ||
| 257 | #sound-dai-cells = <1>; | ||
| 258 | compatible = "renesas,sh_fsi2"; | ||
| 259 | reg = <0xec230000 0x400>; | ||
| 260 | interrupt-parent = <&gic>; | ||
| 261 | interrupts = <0 146 0x4>; | ||
| 262 | status = "disabled"; | ||
| 243 | }; | 263 | }; |
| 244 | }; | 264 | }; |
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi index f936476c2753..537f1a5c07f5 100644 --- a/arch/arm/boot/dts/socfpga.dtsi +++ b/arch/arm/boot/dts/socfpga.dtsi | |||
| @@ -79,6 +79,8 @@ | |||
| 79 | #dma-cells = <1>; | 79 | #dma-cells = <1>; |
| 80 | #dma-channels = <8>; | 80 | #dma-channels = <8>; |
| 81 | #dma-requests = <32>; | 81 | #dma-requests = <32>; |
| 82 | clocks = <&l4_main_clk>; | ||
| 83 | clock-names = "apb_pclk"; | ||
| 82 | }; | 84 | }; |
| 83 | }; | 85 | }; |
| 84 | 86 | ||
| @@ -467,6 +469,8 @@ | |||
| 467 | interrupts = <0 38 0x04>; | 469 | interrupts = <0 38 0x04>; |
| 468 | cache-unified; | 470 | cache-unified; |
| 469 | cache-level = <2>; | 471 | cache-level = <2>; |
| 472 | arm,tag-latency = <1 1 1>; | ||
| 473 | arm,data-latency = <2 1 1>; | ||
| 470 | }; | 474 | }; |
| 471 | 475 | ||
| 472 | /* Local timer */ | 476 | /* Local timer */ |
diff --git a/arch/arm/boot/dts/st-pincfg.h b/arch/arm/boot/dts/st-pincfg.h index 8c45d85ac13e..4851c387d52d 100644 --- a/arch/arm/boot/dts/st-pincfg.h +++ b/arch/arm/boot/dts/st-pincfg.h | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | /* Pull Up */ | 15 | /* Pull Up */ |
| 16 | #define PU (1 << 26) | 16 | #define PU (1 << 26) |
| 17 | /* Open Drain */ | 17 | /* Open Drain */ |
| 18 | #define OD (1 << 26) | 18 | #define OD (1 << 25) |
| 19 | #define RT (1 << 23) | 19 | #define RT (1 << 23) |
| 20 | #define INVERTCLK (1 << 22) | 20 | #define INVERTCLK (1 << 22) |
| 21 | #define CLKNOTDATA (1 << 21) | 21 | #define CLKNOTDATA (1 << 21) |
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi index 7da99fe497e1..e0853ea02df2 100644 --- a/arch/arm/boot/dts/ste-dbx5x0.dtsi +++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi | |||
| @@ -913,6 +913,10 @@ | |||
| 913 | interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>; | 913 | interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>; |
| 914 | v-ape-supply = <&db8500_vape_reg>; | 914 | v-ape-supply = <&db8500_vape_reg>; |
| 915 | 915 | ||
| 916 | dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */ | ||
| 917 | <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */ | ||
| 918 | dma-names = "rx", "tx"; | ||
| 919 | |||
| 916 | clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>; | 920 | clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>; |
| 917 | clock-names = "msp", "apb_pclk"; | 921 | clock-names = "msp", "apb_pclk"; |
| 918 | 922 | ||
| @@ -925,6 +929,9 @@ | |||
| 925 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; | 929 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; |
| 926 | v-ape-supply = <&db8500_vape_reg>; | 930 | v-ape-supply = <&db8500_vape_reg>; |
| 927 | 931 | ||
| 932 | dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */ | ||
| 933 | dma-names = "tx"; | ||
| 934 | |||
| 928 | clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>; | 935 | clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>; |
| 929 | clock-names = "msp", "apb_pclk"; | 936 | clock-names = "msp", "apb_pclk"; |
| 930 | 937 | ||
| @@ -938,6 +945,11 @@ | |||
| 938 | interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>; | 945 | interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>; |
| 939 | v-ape-supply = <&db8500_vape_reg>; | 946 | v-ape-supply = <&db8500_vape_reg>; |
| 940 | 947 | ||
| 948 | dmas = <&dma 14 0 0x12>, /* Logical - DevToMem - HighPrio */ | ||
| 949 | <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev | ||
| 950 | HighPrio - Fixed */ | ||
| 951 | dma-names = "rx", "tx"; | ||
| 952 | |||
| 941 | clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>; | 953 | clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>; |
| 942 | clock-names = "msp", "apb_pclk"; | 954 | clock-names = "msp", "apb_pclk"; |
| 943 | 955 | ||
| @@ -950,6 +962,9 @@ | |||
| 950 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; | 962 | interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>; |
| 951 | v-ape-supply = <&db8500_vape_reg>; | 963 | v-ape-supply = <&db8500_vape_reg>; |
| 952 | 964 | ||
| 965 | dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */ | ||
| 966 | dma-names = "rx"; | ||
| 967 | |||
| 953 | clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>; | 968 | clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>; |
| 954 | clock-names = "msp", "apb_pclk"; | 969 | clock-names = "msp", "apb_pclk"; |
| 955 | 970 | ||
| @@ -987,6 +1002,23 @@ | |||
| 987 | status = "disabled"; | 1002 | status = "disabled"; |
| 988 | }; | 1003 | }; |
| 989 | 1004 | ||
| 1005 | mcde@a0350000 { | ||
| 1006 | compatible = "stericsson,mcde"; | ||
| 1007 | reg = <0xa0350000 0x1000>, /* MCDE */ | ||
| 1008 | <0xa0351000 0x1000>, /* DSI link 1 */ | ||
| 1009 | <0xa0352000 0x1000>, /* DSI link 2 */ | ||
| 1010 | <0xa0353000 0x1000>; /* DSI link 3 */ | ||
| 1011 | interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>; | ||
| 1012 | clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */ | ||
| 1013 | <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */ | ||
| 1014 | <&prcmu_clk PRCMU_PLLDSI>, /* HDMI clock */ | ||
| 1015 | <&prcmu_clk PRCMU_DSI0CLK>, /* DSI 0 */ | ||
| 1016 | <&prcmu_clk PRCMU_DSI1CLK>, /* DSI 1 */ | ||
| 1017 | <&prcmu_clk PRCMU_DSI0ESCCLK>, /* TVout clock 0 */ | ||
| 1018 | <&prcmu_clk PRCMU_DSI1ESCCLK>, /* TVout clock 1 */ | ||
| 1019 | <&prcmu_clk PRCMU_DSI2ESCCLK>; /* TVout clock 2 */ | ||
| 1020 | }; | ||
| 1021 | |||
| 990 | cryp@a03cb000 { | 1022 | cryp@a03cb000 { |
| 991 | compatible = "stericsson,ux500-cryp"; | 1023 | compatible = "stericsson,ux500-cryp"; |
| 992 | reg = <0xa03cb000 0x1000>; | 1024 | reg = <0xa03cb000 0x1000>; |
diff --git a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi new file mode 100644 index 000000000000..addfcc7c2750 --- /dev/null +++ b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi | |||
| @@ -0,0 +1,745 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2013 Linaro Ltd. | ||
| 3 | * | ||
| 4 | * The code contained herein is licensed under the GNU General Public | ||
| 5 | * License. You may obtain a copy of the GNU General Public License | ||
| 6 | * Version 2 or later at the following locations: | ||
| 7 | * | ||
| 8 | * http://www.opensource.org/licenses/gpl-license.html | ||
| 9 | * http://www.gnu.org/copyleft/gpl.html | ||
| 10 | */ | ||
| 11 | |||
| 12 | #include "ste-nomadik-pinctrl.dtsi" | ||
| 13 | |||
| 14 | / { | ||
| 15 | soc { | ||
| 16 | pinctrl { | ||
| 17 | /* Settings for all UART default and sleep states */ | ||
| 18 | uart0 { | ||
| 19 | uart0_default_mode: uart0_default { | ||
| 20 | default_mux { | ||
| 21 | ste,function = "u0"; | ||
| 22 | ste,pins = "u0_a_1"; | ||
| 23 | }; | ||
| 24 | default_cfg1 { | ||
| 25 | ste,pins = "GPIO0_AJ5", "GPIO2_AH4"; /* CTS+RXD */ | ||
| 26 | ste,config = <&in_pu>; | ||
| 27 | }; | ||
| 28 | |||
| 29 | default_cfg2 { | ||
| 30 | ste,pins = "GPIO1_AJ3", "GPIO3_AH3"; /* RTS+TXD */ | ||
| 31 | ste,config = <&out_hi>; | ||
| 32 | }; | ||
| 33 | }; | ||
| 34 | |||
| 35 | uart0_sleep_mode: uart0_sleep { | ||
| 36 | sleep_cfg1 { | ||
| 37 | ste,pins = "GPIO0_AJ5", "GPIO2_AH4"; /* CTS+RXD */ | ||
| 38 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 39 | }; | ||
| 40 | |||
| 41 | sleep_cfg2 { | ||
| 42 | ste,pins = "GPIO1_AJ3"; /* RTS */ | ||
| 43 | ste,config = <&slpm_out_hi_wkup_pdis>; | ||
| 44 | }; | ||
| 45 | |||
| 46 | sleep_cfg3 { | ||
| 47 | ste,pins = "GPIO3_AH3"; /* TXD */ | ||
| 48 | ste,config = <&slpm_out_wkup_pdis>; | ||
| 49 | }; | ||
| 50 | }; | ||
| 51 | }; | ||
| 52 | |||
| 53 | uart1 { | ||
| 54 | uart1_default_mode: uart1_default { | ||
| 55 | default_mux { | ||
| 56 | ste,function = "u1"; | ||
| 57 | ste,pins = "u1rxtx_a_1"; | ||
| 58 | }; | ||
| 59 | default_cfg1 { | ||
| 60 | ste,pins = "GPIO4_AH6"; /* RXD */ | ||
| 61 | ste,config = <&in_pu>; | ||
| 62 | }; | ||
| 63 | |||
| 64 | default_cfg2 { | ||
| 65 | ste,pins = "GPIO5_AG6"; /* TXD */ | ||
| 66 | ste,config = <&out_hi>; | ||
| 67 | }; | ||
| 68 | }; | ||
| 69 | |||
| 70 | uart1_sleep_mode: uart1_sleep { | ||
| 71 | sleep_cfg1 { | ||
| 72 | ste,pins = "GPIO4_AH6"; /* RXD */ | ||
| 73 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 74 | }; | ||
| 75 | |||
| 76 | sleep_cfg2 { | ||
| 77 | ste,pins = "GPIO5_AG6"; /* TXD */ | ||
| 78 | ste,config = <&slpm_out_wkup_pdis>; | ||
| 79 | }; | ||
| 80 | }; | ||
| 81 | }; | ||
| 82 | |||
| 83 | uart2 { | ||
| 84 | uart2_default_mode: uart2_default { | ||
| 85 | default_mux { | ||
| 86 | ste,function = "u2"; | ||
| 87 | ste,pins = "u2rxtx_c_1"; | ||
| 88 | }; | ||
| 89 | default_cfg1 { | ||
| 90 | ste,pins = "GPIO29_W2"; /* RXD */ | ||
| 91 | ste,config = <&in_pu>; | ||
| 92 | }; | ||
| 93 | |||
| 94 | default_cfg2 { | ||
| 95 | ste,pins = "GPIO30_W3"; /* TXD */ | ||
| 96 | ste,config = <&out_hi>; | ||
| 97 | }; | ||
| 98 | }; | ||
| 99 | |||
| 100 | uart2_sleep_mode: uart2_sleep { | ||
| 101 | sleep_cfg1 { | ||
| 102 | ste,pins = "GPIO29_W2"; /* RXD */ | ||
| 103 | ste,config = <&in_wkup_pdis>; | ||
| 104 | }; | ||
| 105 | |||
| 106 | sleep_cfg2 { | ||
| 107 | ste,pins = "GPIO30_W3"; /* TXD */ | ||
| 108 | ste,config = <&out_wkup_pdis>; | ||
| 109 | }; | ||
| 110 | }; | ||
| 111 | }; | ||
| 112 | |||
| 113 | /* Settings for all I2C default and sleep states */ | ||
| 114 | i2c0 { | ||
| 115 | i2c0_default_mode: i2c_default { | ||
| 116 | default_mux { | ||
| 117 | ste,function = "i2c0"; | ||
| 118 | ste,pins = "i2c0_a_1"; | ||
| 119 | }; | ||
| 120 | default_cfg1 { | ||
| 121 | ste,pins = "GPIO147_C15", "GPIO148_B16"; /* SDA/SCL */ | ||
| 122 | ste,config = <&in_pu>; | ||
| 123 | }; | ||
| 124 | }; | ||
| 125 | |||
| 126 | i2c0_sleep_mode: i2c_sleep { | ||
| 127 | sleep_cfg1 { | ||
| 128 | ste,pins = "GPIO147_C15", "GPIO148_B16"; /* SDA/SCL */ | ||
| 129 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 130 | }; | ||
| 131 | }; | ||
| 132 | }; | ||
| 133 | |||
| 134 | i2c1 { | ||
| 135 | i2c1_default_mode: i2c_default { | ||
| 136 | default_mux { | ||
| 137 | ste,function = "i2c1"; | ||
| 138 | ste,pins = "i2c1_b_2"; | ||
| 139 | }; | ||
| 140 | default_cfg1 { | ||
| 141 | ste,pins = "GPIO16_AD3", "GPIO17_AD4"; /* SDA/SCL */ | ||
| 142 | ste,config = <&in_pu>; | ||
| 143 | }; | ||
| 144 | }; | ||
| 145 | |||
| 146 | i2c1_sleep_mode: i2c_sleep { | ||
| 147 | sleep_cfg1 { | ||
| 148 | ste,pins = "GPIO16_AD3", "GPIO17_AD4"; /* SDA/SCL */ | ||
| 149 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 150 | }; | ||
| 151 | }; | ||
| 152 | }; | ||
| 153 | |||
| 154 | i2c2 { | ||
| 155 | i2c2_default_mode: i2c_default { | ||
| 156 | default_mux { | ||
| 157 | ste,function = "i2c2"; | ||
| 158 | ste,pins = "i2c2_b_2"; | ||
| 159 | }; | ||
| 160 | default_cfg1 { | ||
| 161 | ste,pins = "GPIO10_AF5", "GPIO11_AG4"; /* SDA/SCL */ | ||
| 162 | ste,config = <&in_pu>; | ||
| 163 | }; | ||
| 164 | }; | ||
| 165 | |||
| 166 | i2c2_sleep_mode: i2c_sleep { | ||
| 167 | sleep_cfg1 { | ||
| 168 | ste,pins = "GPIO10_AF5", "GPIO11_AG4"; /* SDA/SCL */ | ||
| 169 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 170 | }; | ||
| 171 | }; | ||
| 172 | }; | ||
| 173 | |||
| 174 | i2c3 { | ||
| 175 | i2c3_default_mode: i2c_default { | ||
| 176 | default_mux { | ||
| 177 | ste,function = "i2c3"; | ||
| 178 | ste,pins = "i2c3_c_2"; | ||
| 179 | }; | ||
| 180 | default_cfg1 { | ||
| 181 | ste,pins = "GPIO229_AG7", "GPIO230_AF7"; /* SDA/SCL */ | ||
| 182 | ste,config = <&in_pu>; | ||
| 183 | }; | ||
| 184 | }; | ||
| 185 | |||
| 186 | i2c3_sleep_mode: i2c_sleep { | ||
| 187 | sleep_cfg1 { | ||
| 188 | ste,pins = "GPIO229_AG7", "GPIO230_AF7"; /* SDA/SCL */ | ||
| 189 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 190 | }; | ||
| 191 | }; | ||
| 192 | }; | ||
| 193 | |||
| 194 | /* | ||
| 195 | * Activating I2C4 will conflict with UART1 about the same pins so do not | ||
| 196 | * enable I2C4 and UART1 at the same time. | ||
| 197 | */ | ||
| 198 | i2c4 { | ||
| 199 | i2c4_default_mode: i2c_default { | ||
| 200 | default_mux { | ||
| 201 | ste,function = "i2c4"; | ||
| 202 | ste,pins = "i2c4_b_1"; | ||
| 203 | }; | ||
| 204 | default_cfg1 { | ||
| 205 | ste,pins = "GPIO4_AH6", "GPIO5_AG6"; /* SDA/SCL */ | ||
| 206 | ste,config = <&in_pu>; | ||
| 207 | }; | ||
| 208 | }; | ||
| 209 | |||
| 210 | i2c4_sleep_mode: i2c_sleep { | ||
| 211 | sleep_cfg1 { | ||
| 212 | ste,pins = "GPIO4_AH6", "GPIO5_AG6"; /* SDA/SCL */ | ||
| 213 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 214 | }; | ||
| 215 | }; | ||
| 216 | }; | ||
| 217 | |||
| 218 | /* Settings for all SPI default and sleep states */ | ||
| 219 | spi2 { | ||
| 220 | spi2_default_mode: spi_default { | ||
| 221 | default_mux { | ||
| 222 | ste,function = "spi2"; | ||
| 223 | ste,pins = "spi2_oc1_2"; | ||
| 224 | }; | ||
| 225 | default_cfg1 { | ||
| 226 | ste,pins = "GPIO216_AG12"; /* FRM */ | ||
| 227 | ste,config = <&gpio_out_hi>; | ||
| 228 | }; | ||
| 229 | default_cfg2 { | ||
| 230 | ste,pins = "GPIO218_AH11"; /* RXD */ | ||
| 231 | ste,config = <&in_pd>; | ||
| 232 | }; | ||
| 233 | default_cfg3 { | ||
| 234 | ste,pins = | ||
| 235 | "GPIO215_AH13", /* TXD */ | ||
| 236 | "GPIO217_AH12"; /* CLK */ | ||
| 237 | ste,config = <&out_lo>; | ||
| 238 | }; | ||
| 239 | }; | ||
| 240 | |||
| 241 | spi2_idle_mode: spi_idle { | ||
| 242 | /* | ||
| 243 | * The idle mode is basically sleep mode sans wakeups. Also | ||
| 244 | * note that we have muxes the pins off the function here | ||
| 245 | * as we do not state any muxing. | ||
| 246 | */ | ||
| 247 | idle_cfg1 { | ||
| 248 | ste,pins = "GPIO218_AH11"; /* RXD */ | ||
| 249 | ste,config = <&slpm_in_pdis>; | ||
| 250 | }; | ||
| 251 | idle_cfg2 { | ||
| 252 | ste,pins = "GPIO215_AH13"; /* TXD */ | ||
| 253 | ste,config = <&slpm_out_lo_pdis>; | ||
| 254 | }; | ||
| 255 | idle_cfg3 { | ||
| 256 | ste,pins = "GPIO217_AH12"; /* CLK */ | ||
| 257 | ste,config = <&slpm_pdis>; | ||
| 258 | }; | ||
| 259 | }; | ||
| 260 | |||
| 261 | spi2_sleep_mode: spi_sleep { | ||
| 262 | sleep_cfg1 { | ||
| 263 | ste,pins = | ||
| 264 | "GPIO216_AG12", /* FRM */ | ||
| 265 | "GPIO218_AH11"; /* RXD */ | ||
| 266 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 267 | }; | ||
| 268 | sleep_cfg2 { | ||
| 269 | ste,pins = "GPIO215_AH13"; /* TXD */ | ||
| 270 | ste,config = <&slpm_out_lo_wkup_pdis>; | ||
| 271 | }; | ||
| 272 | sleep_cfg3 { | ||
| 273 | ste,pins = "GPIO217_AH12"; /* CLK */ | ||
| 274 | ste,config = <&slpm_wkup_pdis>; | ||
| 275 | }; | ||
| 276 | }; | ||
| 277 | }; | ||
| 278 | |||
| 279 | /* Settings for all MMC/SD/SDIO default and sleep states */ | ||
| 280 | sdi0 { | ||
| 281 | /* This is the external SD card slot, 4 bits wide */ | ||
| 282 | sdi0_default_mode: sdi0_default { | ||
| 283 | default_mux { | ||
| 284 | ste,function = "mc0"; | ||
| 285 | ste,pins = "mc0_a_1"; | ||
| 286 | }; | ||
| 287 | default_cfg1 { | ||
| 288 | ste,pins = | ||
| 289 | "GPIO18_AC2", /* CMDDIR */ | ||
| 290 | "GPIO19_AC1", /* DAT0DIR */ | ||
| 291 | "GPIO20_AB4"; /* DAT2DIR */ | ||
| 292 | ste,config = <&out_hi>; | ||
| 293 | }; | ||
| 294 | default_cfg2 { | ||
| 295 | ste,pins = "GPIO22_AA3"; /* FBCLK */ | ||
| 296 | ste,config = <&in_nopull>; | ||
| 297 | }; | ||
| 298 | default_cfg3 { | ||
| 299 | ste,pins = "GPIO23_AA4"; /* CLK */ | ||
| 300 | ste,config = <&out_lo>; | ||
| 301 | }; | ||
| 302 | default_cfg4 { | ||
| 303 | ste,pins = | ||
| 304 | "GPIO24_AB2", /* CMD */ | ||
| 305 | "GPIO25_Y4", /* DAT0 */ | ||
| 306 | "GPIO26_Y2", /* DAT1 */ | ||
| 307 | "GPIO27_AA2", /* DAT2 */ | ||
| 308 | "GPIO28_AA1"; /* DAT3 */ | ||
| 309 | ste,config = <&in_pu>; | ||
| 310 | }; | ||
| 311 | }; | ||
| 312 | |||
| 313 | sdi0_sleep_mode: sdi0_sleep { | ||
| 314 | sleep_cfg1 { | ||
| 315 | ste,pins = | ||
| 316 | "GPIO18_AC2", /* CMDDIR */ | ||
| 317 | "GPIO19_AC1", /* DAT0DIR */ | ||
| 318 | "GPIO20_AB4"; /* DAT2DIR */ | ||
| 319 | ste,config = <&slpm_out_hi_wkup_pdis>; | ||
| 320 | }; | ||
| 321 | sleep_cfg2 { | ||
| 322 | ste,pins = | ||
| 323 | "GPIO22_AA3", /* FBCLK */ | ||
| 324 | "GPIO24_AB2", /* CMD */ | ||
| 325 | "GPIO25_Y4", /* DAT0 */ | ||
| 326 | "GPIO26_Y2", /* DAT1 */ | ||
| 327 | "GPIO27_AA2", /* DAT2 */ | ||
| 328 | "GPIO28_AA1"; /* DAT3 */ | ||
| 329 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 330 | }; | ||
| 331 | sleep_cfg3 { | ||
| 332 | ste,pins = "GPIO23_AA4"; /* CLK */ | ||
| 333 | ste,config = <&slpm_out_lo_wkup_pdis>; | ||
| 334 | }; | ||
| 335 | }; | ||
| 336 | }; | ||
| 337 | |||
| 338 | sdi1 { | ||
| 339 | /* This is the WLAN SDIO 4 bits wide */ | ||
| 340 | sdi1_default_mode: sdi1_default { | ||
| 341 | default_mux { | ||
| 342 | ste,function = "mc1"; | ||
| 343 | ste,pins = "mc1_a_1"; | ||
| 344 | }; | ||
| 345 | default_cfg1 { | ||
| 346 | ste,pins = "GPIO208_AH16"; /* CLK */ | ||
| 347 | ste,config = <&out_lo>; | ||
| 348 | }; | ||
| 349 | default_cfg2 { | ||
| 350 | ste,pins = "GPIO209_AG15"; /* FBCLK */ | ||
| 351 | ste,config = <&in_nopull>; | ||
| 352 | }; | ||
| 353 | default_cfg3 { | ||
| 354 | ste,pins = | ||
| 355 | "GPIO210_AJ15", /* CMD */ | ||
| 356 | "GPIO211_AG14", /* DAT0 */ | ||
| 357 | "GPIO212_AF13", /* DAT1 */ | ||
| 358 | "GPIO213_AG13", /* DAT2 */ | ||
| 359 | "GPIO214_AH15"; /* DAT3 */ | ||
| 360 | ste,config = <&in_pu>; | ||
| 361 | }; | ||
| 362 | }; | ||
| 363 | |||
| 364 | sdi1_sleep_mode: sdi1_sleep { | ||
| 365 | sleep_cfg1 { | ||
| 366 | ste,pins = "GPIO208_AH16"; /* CLK */ | ||
| 367 | ste,config = <&slpm_out_lo_wkup_pdis>; | ||
| 368 | }; | ||
| 369 | sleep_cfg2 { | ||
| 370 | ste,pins = | ||
| 371 | "GPIO209_AG15", /* FBCLK */ | ||
| 372 | "GPIO210_AJ15", /* CMD */ | ||
| 373 | "GPIO211_AG14", /* DAT0 */ | ||
| 374 | "GPIO212_AF13", /* DAT1 */ | ||
| 375 | "GPIO213_AG13", /* DAT2 */ | ||
| 376 | "GPIO214_AH15"; /* DAT3 */ | ||
| 377 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 378 | }; | ||
| 379 | }; | ||
| 380 | }; | ||
| 381 | |||
| 382 | sdi2 { | ||
| 383 | /* This is the eMMC 8 bits wide, usually PoP eMMC */ | ||
| 384 | sdi2_default_mode: sdi2_default { | ||
| 385 | default_mux { | ||
| 386 | ste,function = "mc2"; | ||
| 387 | ste,pins = "mc2_a_1"; | ||
| 388 | }; | ||
| 389 | default_cfg1 { | ||
| 390 | ste,pins = "GPIO128_A5"; /* CLK */ | ||
| 391 | ste,config = <&out_lo>; | ||
| 392 | }; | ||
| 393 | default_cfg2 { | ||
| 394 | ste,pins = "GPIO130_C8"; /* FBCLK */ | ||
| 395 | ste,config = <&in_nopull>; | ||
| 396 | }; | ||
| 397 | default_cfg3 { | ||
| 398 | ste,pins = | ||
| 399 | "GPIO129_B4", /* CMD */ | ||
| 400 | "GPIO131_A12", /* DAT0 */ | ||
| 401 | "GPIO132_C10", /* DAT1 */ | ||
| 402 | "GPIO133_B10", /* DAT2 */ | ||
| 403 | "GPIO134_B9", /* DAT3 */ | ||
| 404 | "GPIO135_A9", /* DAT4 */ | ||
| 405 | "GPIO136_C7", /* DAT5 */ | ||
| 406 | "GPIO137_A7", /* DAT6 */ | ||
| 407 | "GPIO138_C5"; /* DAT7 */ | ||
| 408 | ste,config = <&in_pu>; | ||
| 409 | }; | ||
| 410 | }; | ||
| 411 | |||
| 412 | sdi2_sleep_mode: sdi2_sleep { | ||
| 413 | sleep_cfg1 { | ||
| 414 | ste,pins = "GPIO128_A5"; /* CLK */ | ||
| 415 | ste,config = <&out_lo_wkup_pdis>; | ||
| 416 | }; | ||
| 417 | sleep_cfg2 { | ||
| 418 | ste,pins = | ||
| 419 | "GPIO130_C8", /* FBCLK */ | ||
| 420 | "GPIO129_B4"; /* CMD */ | ||
| 421 | ste,config = <&in_wkup_pdis_en>; | ||
| 422 | }; | ||
| 423 | sleep_cfg3 { | ||
| 424 | ste,pins = | ||
| 425 | "GPIO131_A12", /* DAT0 */ | ||
| 426 | "GPIO132_C10", /* DAT1 */ | ||
| 427 | "GPIO133_B10", /* DAT2 */ | ||
| 428 | "GPIO134_B9", /* DAT3 */ | ||
| 429 | "GPIO135_A9", /* DAT4 */ | ||
| 430 | "GPIO136_C7", /* DAT5 */ | ||
| 431 | "GPIO137_A7", /* DAT6 */ | ||
| 432 | "GPIO138_C5"; /* DAT7 */ | ||
| 433 | ste,config = <&in_wkup_pdis>; | ||
| 434 | }; | ||
| 435 | }; | ||
| 436 | }; | ||
| 437 | |||
| 438 | sdi4 { | ||
| 439 | /* This is the eMMC 8 bits wide, usually PCB-mounted eMMC */ | ||
| 440 | sdi4_default_mode: sdi4_default { | ||
| 441 | default_mux { | ||
| 442 | ste,function = "mc4"; | ||
| 443 | ste,pins = "mc4_a_1"; | ||
| 444 | }; | ||
| 445 | default_cfg1 { | ||
| 446 | ste,pins = "GPIO203_AE23"; /* CLK */ | ||
| 447 | ste,config = <&out_lo>; | ||
| 448 | }; | ||
| 449 | default_cfg2 { | ||
| 450 | ste,pins = "GPIO202_AF25"; /* FBCLK */ | ||
| 451 | ste,config = <&in_nopull>; | ||
| 452 | }; | ||
| 453 | default_cfg3 { | ||
| 454 | ste,pins = | ||
| 455 | "GPIO201_AF24", /* CMD */ | ||
| 456 | "GPIO200_AH26", /* DAT0 */ | ||
| 457 | "GPIO199_AH23", /* DAT1 */ | ||
| 458 | "GPIO198_AG25", /* DAT2 */ | ||
| 459 | "GPIO197_AH24", /* DAT3 */ | ||
| 460 | "GPIO207_AJ23", /* DAT4 */ | ||
| 461 | "GPIO206_AG24", /* DAT5 */ | ||
| 462 | "GPIO205_AG23", /* DAT6 */ | ||
| 463 | "GPIO204_AF23"; /* DAT7 */ | ||
| 464 | ste,config = <&in_pu>; | ||
| 465 | }; | ||
| 466 | }; | ||
| 467 | |||
| 468 | sdi4_sleep_mode: sdi4_sleep { | ||
| 469 | sleep_cfg1 { | ||
| 470 | ste,pins = "GPIO203_AE23"; /* CLK */ | ||
| 471 | ste,config = <&out_lo_wkup_pdis>; | ||
| 472 | }; | ||
| 473 | sleep_cfg2 { | ||
| 474 | ste,pins = | ||
| 475 | "GPIO202_AF25", /* FBCLK */ | ||
| 476 | "GPIO201_AF24", /* CMD */ | ||
| 477 | "GPIO200_AH26", /* DAT0 */ | ||
| 478 | "GPIO199_AH23", /* DAT1 */ | ||
| 479 | "GPIO198_AG25", /* DAT2 */ | ||
| 480 | "GPIO197_AH24", /* DAT3 */ | ||
| 481 | "GPIO207_AJ23", /* DAT4 */ | ||
| 482 | "GPIO206_AG24", /* DAT5 */ | ||
| 483 | "GPIO205_AG23", /* DAT6 */ | ||
| 484 | "GPIO204_AF23"; /* DAT7 */ | ||
| 485 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 486 | }; | ||
| 487 | }; | ||
| 488 | }; | ||
| 489 | |||
| 490 | /* | ||
| 491 | * Multi-rate serial ports (MSPs) - MSP3 output is internal and | ||
| 492 | * cannot be muxed onto any pins. | ||
| 493 | */ | ||
| 494 | msp0 { | ||
| 495 | msp0_default_mode: msp0_default { | ||
| 496 | default_msp0_mux { | ||
| 497 | ste,function = "msp0"; | ||
| 498 | ste,pins = "msp0txrx_a_1", "msp0tfstck_a_1"; | ||
| 499 | }; | ||
| 500 | default_msp0_cfg { | ||
| 501 | ste,pins = | ||
| 502 | "GPIO12_AC4", /* TXD */ | ||
| 503 | "GPIO15_AC3", /* RXD */ | ||
| 504 | "GPIO13_AF3", /* TFS */ | ||
| 505 | "GPIO14_AE3"; /* TCK */ | ||
| 506 | ste,config = <&in_nopull>; | ||
| 507 | }; | ||
| 508 | }; | ||
| 509 | }; | ||
| 510 | |||
| 511 | msp1 { | ||
| 512 | msp1_default_mode: msp1_default { | ||
| 513 | default_mux { | ||
| 514 | ste,function = "msp1"; | ||
| 515 | ste,pins = "msp1txrx_a_1", "msp1_a_1"; | ||
| 516 | }; | ||
| 517 | default_cfg1 { | ||
| 518 | ste,pins = "GPIO33_AF2"; | ||
| 519 | ste,config = <&out_lo>; | ||
| 520 | }; | ||
| 521 | default_cfg2 { | ||
| 522 | ste,pins = | ||
| 523 | "GPIO34_AE1", | ||
| 524 | "GPIO35_AE2", | ||
| 525 | "GPIO36_AG2"; | ||
| 526 | ste,config = <&in_nopull>; | ||
| 527 | }; | ||
| 528 | |||
| 529 | }; | ||
| 530 | }; | ||
| 531 | |||
| 532 | msp2 { | ||
| 533 | msp2_default_mode: msp2_default { | ||
| 534 | /* MSP2 usually used for HDMI audio */ | ||
| 535 | default_mux { | ||
| 536 | ste,function = "msp2"; | ||
| 537 | ste,pins = "msp2_a_1"; | ||
| 538 | }; | ||
| 539 | default_cfg1 { | ||
| 540 | ste,pins = | ||
| 541 | "GPIO193_AH27", /* TXD */ | ||
| 542 | "GPIO194_AF27", /* TCK */ | ||
| 543 | "GPIO195_AG28"; /* TFS */ | ||
| 544 | ste,config = <&in_pd>; | ||
| 545 | }; | ||
| 546 | default_cfg2 { | ||
| 547 | ste,pins = "GPIO196_AG26"; /* RXD */ | ||
| 548 | ste,config = <&out_lo>; | ||
| 549 | }; | ||
| 550 | }; | ||
| 551 | }; | ||
| 552 | |||
| 553 | |||
| 554 | musb { | ||
| 555 | musb_default_mode: musb_default { | ||
| 556 | default_mux { | ||
| 557 | ste,function = "usb"; | ||
| 558 | ste,pins = "usb_a_1"; | ||
| 559 | }; | ||
| 560 | default_cfg1 { | ||
| 561 | ste,pins = | ||
| 562 | "GPIO256_AF28", /* NXT */ | ||
| 563 | "GPIO258_AD29", /* XCLK */ | ||
| 564 | "GPIO259_AC29", /* DIR */ | ||
| 565 | "GPIO260_AD28", /* DAT7 */ | ||
| 566 | "GPIO261_AD26", /* DAT6 */ | ||
| 567 | "GPIO262_AE26", /* DAT5 */ | ||
| 568 | "GPIO263_AG29", /* DAT4 */ | ||
| 569 | "GPIO264_AE27", /* DAT3 */ | ||
| 570 | "GPIO265_AD27", /* DAT2 */ | ||
| 571 | "GPIO266_AC28", /* DAT1 */ | ||
| 572 | "GPIO267_AC27"; /* DAT0 */ | ||
| 573 | ste,config = <&in_nopull>; | ||
| 574 | }; | ||
| 575 | default_cfg2 { | ||
| 576 | ste,pins = "GPIO257_AE29"; /* STP */ | ||
| 577 | ste,config = <&out_hi>; | ||
| 578 | }; | ||
| 579 | }; | ||
| 580 | |||
| 581 | musb_sleep_mode: musb_sleep { | ||
| 582 | sleep_cfg1 { | ||
| 583 | ste,pins = | ||
| 584 | "GPIO256_AF28", /* NXT */ | ||
| 585 | "GPIO258_AD29", /* XCLK */ | ||
| 586 | "GPIO259_AC29"; /* DIR */ | ||
| 587 | ste,config = <&slpm_wkup_pdis_en>; | ||
| 588 | }; | ||
| 589 | sleep_cfg2 { | ||
| 590 | ste,pins = "GPIO257_AE29"; /* STP */ | ||
| 591 | ste,config = <&slpm_out_hi_wkup_pdis>; | ||
| 592 | }; | ||
| 593 | sleep_cfg3 { | ||
| 594 | ste,pins = | ||
| 595 | "GPIO260_AD28", /* DAT7 */ | ||
| 596 | "GPIO261_AD26", /* DAT6 */ | ||
| 597 | "GPIO262_AE26", /* DAT5 */ | ||
| 598 | "GPIO263_AG29", /* DAT4 */ | ||
| 599 | "GPIO264_AE27", /* DAT3 */ | ||
| 600 | "GPIO265_AD27", /* DAT2 */ | ||
| 601 | "GPIO266_AC28", /* DAT1 */ | ||
| 602 | "GPIO267_AC27"; /* DAT0 */ | ||
| 603 | ste,config = <&slpm_in_wkup_pdis_en>; | ||
| 604 | }; | ||
| 605 | }; | ||
| 606 | }; | ||
| 607 | |||
| 608 | mcde { | ||
| 609 | lcd_default_mode: lcd_default { | ||
| 610 | default_mux { | ||
| 611 | /* Mux in VSI0 and all the data lines */ | ||
| 612 | ste,function = "lcd"; | ||
| 613 | ste,pins = | ||
| 614 | "lcdvsi0_a_1", /* VSI0 for LCD */ | ||
| 615 | "lcd_d0_d7_a_1", /* Data lines */ | ||
| 616 | "lcd_d8_d11_a_1", /* TV-out */ | ||
| 617 | "lcdaclk_b_1", /* Clock line for TV-out */ | ||
| 618 | "lcdvsi1_a_1"; /* VSI1 for HDMI */ | ||
| 619 | }; | ||
| 620 | default_cfg1 { | ||
| 621 | ste,pins = | ||
| 622 | "GPIO68_E1", /* VSI0 */ | ||
| 623 | "GPIO69_E2"; /* VSI1 */ | ||
| 624 | ste,config = <&in_pu>; | ||
| 625 | }; | ||
| 626 | }; | ||
| 627 | lcd_sleep_mode: lcd_sleep { | ||
| 628 | sleep_cfg1 { | ||
| 629 | ste,pins = "GPIO69_E2"; /* VSI1 */ | ||
| 630 | ste,config = <&slpm_in_wkup_pdis>; | ||
| 631 | }; | ||
| 632 | }; | ||
| 633 | }; | ||
| 634 | |||
| 635 | ske { | ||
| 636 | /* SKE keys on position 2 in an 8x8 matrix */ | ||
| 637 | ske_kpa2_default_mode: ske_kpa2_default { | ||
| 638 | default_mux { | ||
| 639 | ste,function = "kp"; | ||
| 640 | ste,pins = "kp_a_2"; | ||
| 641 | }; | ||
| 642 | default_cfg1 { | ||
| 643 | ste,pins = | ||
| 644 | "GPIO153_B17", /* I7 */ | ||
| 645 | "GPIO154_C16", /* I6 */ | ||
| 646 | "GPIO155_C19", /* I5 */ | ||
| 647 | "GPIO156_C17", /* I4 */ | ||
| 648 | "GPIO161_D21", /* I3 */ | ||
| 649 | "GPIO162_D20", /* I2 */ | ||
| 650 | "GPIO163_C20", /* I1 */ | ||
| 651 | "GPIO164_B21"; /* I0 */ | ||
| 652 | ste,config = <&in_pd>; | ||
| 653 | }; | ||
| 654 | default_cfg2 { | ||
| 655 | ste,pins = | ||
| 656 | "GPIO157_A18", /* O7 */ | ||
| 657 | "GPIO158_C18", /* O6 */ | ||
| 658 | "GPIO159_B19", /* O5 */ | ||
| 659 | "GPIO160_B20", /* O4 */ | ||
| 660 | "GPIO165_C21", /* O3 */ | ||
| 661 | "GPIO166_A22", /* O2 */ | ||
| 662 | "GPIO167_B24", /* O1 */ | ||
| 663 | "GPIO168_C22"; /* O0 */ | ||
| 664 | ste,config = <&out_lo>; | ||
| 665 | }; | ||
| 666 | }; | ||
| 667 | ske_kpa2_sleep_mode: ske_kpa2_sleep { | ||
| 668 | sleep_cfg1 { | ||
| 669 | ste,pins = | ||
| 670 | "GPIO153_B17", /* I7 */ | ||
| 671 | "GPIO154_C16", /* I6 */ | ||
| 672 | "GPIO155_C19", /* I5 */ | ||
| 673 | "GPIO156_C17", /* I4 */ | ||
| 674 | "GPIO161_D21", /* I3 */ | ||
| 675 | "GPIO162_D20", /* I2 */ | ||
| 676 | "GPIO163_C20", /* I1 */ | ||
| 677 | "GPIO164_B21"; /* I0 */ | ||
| 678 | ste,config = <&slpm_in_pu_wkup_pdis_en>; | ||
| 679 | }; | ||
| 680 | sleep_cfg2 { | ||
| 681 | ste,pins = | ||
| 682 | "GPIO157_A18", /* O7 */ | ||
| 683 | "GPIO158_C18", /* O6 */ | ||
| 684 | "GPIO159_B19", /* O5 */ | ||
| 685 | "GPIO160_B20", /* O4 */ | ||
| 686 | "GPIO165_C21", /* O3 */ | ||
| 687 | "GPIO166_A22", /* O2 */ | ||
| 688 | "GPIO167_B24", /* O1 */ | ||
| 689 | "GPIO168_C22"; /* O0 */ | ||
| 690 | ste,config = <&slpm_out_lo_pdis>; | ||
| 691 | }; | ||
| 692 | }; | ||
| 693 | /* | ||
| 694 | * SKE keys on position 1 and "other C1" combi giving | ||
| 695 | * six rows of six keys. | ||
| 696 | */ | ||
| 697 | ske_kpaoc1_default_mode: ske_kpaoc1_default { | ||
| 698 | default_mux { | ||
| 699 | ste,function = "kp"; | ||
| 700 | ste,pins = "kp_a_1", "kp_oc1_1"; | ||
| 701 | }; | ||
| 702 | default_cfg1 { | ||
| 703 | ste,pins = | ||
| 704 | "GPIO91_B6", /* KP_O0 */ | ||
| 705 | "GPIO90_A3", /* KP_O1 */ | ||
| 706 | "GPIO87_B3", /* KP_O2 */ | ||
| 707 | "GPIO86_C6", /* KP_O3 */ | ||
| 708 | "GPIO96_D8", /* KP_O6 */ | ||
| 709 | "GPIO94_D7"; /* KP_O7 */ | ||
| 710 | ste,config = <&out_lo>; | ||
| 711 | }; | ||
| 712 | default_cfg2 { | ||
| 713 | ste,pins = | ||
| 714 | "GPIO93_B7", /* KP_I0 */ | ||
| 715 | "GPIO92_D6", /* KP_I1 */ | ||
| 716 | "GPIO89_E6", /* KP_I2 */ | ||
| 717 | "GPIO88_C4", /* KP_I3 */ | ||
| 718 | "GPIO97_D9", /* KP_I6 */ | ||
| 719 | "GPIO95_E8"; /* KP_I7 */ | ||
| 720 | ste,config = <&in_pu>; | ||
| 721 | }; | ||
| 722 | }; | ||
| 723 | }; | ||
| 724 | |||
| 725 | wlan { | ||
| 726 | wlan_default_mode: wlan_default { | ||
| 727 | /* | ||
| 728 | * Activate this mode with the WLAN chip. | ||
| 729 | * These are plain GPIO pins used by WLAN | ||
| 730 | */ | ||
| 731 | default_cfg1 { | ||
| 732 | ste,pins = | ||
| 733 | "GPIO226_AF8", /* WLAN_PMU_EN */ | ||
| 734 | "GPIO85_D5"; /* WLAN_ENA */ | ||
| 735 | ste,config = <&gpio_out_lo>; | ||
| 736 | }; | ||
| 737 | default_cfg2 { | ||
| 738 | ste,pins = "GPIO4_AH6"; /* WLAN_IRQ on UART1 */ | ||
| 739 | ste,config = <&gpio_in_pu>; | ||
| 740 | }; | ||
| 741 | }; | ||
| 742 | }; | ||
| 743 | }; | ||
| 744 | }; | ||
| 745 | }; | ||
diff --git a/arch/arm/boot/dts/ste-href-stuib.dtsi b/arch/arm/boot/dts/ste-href-stuib.dtsi index 76704ec0ffcc..1c3574435ea8 100644 --- a/arch/arm/boot/dts/ste-href-stuib.dtsi +++ b/arch/arm/boot/dts/ste-href-stuib.dtsi | |||
| @@ -12,6 +12,28 @@ | |||
| 12 | #include <dt-bindings/interrupt-controller/irq.h> | 12 | #include <dt-bindings/interrupt-controller/irq.h> |
| 13 | 13 | ||
| 14 | / { | 14 | / { |
| 15 | gpio_keys { | ||
| 16 | compatible = "gpio-keys"; | ||
| 17 | #address-cells = <1>; | ||
| 18 | #size-cells = <0>; | ||
| 19 | vdd-supply = <&ab8500_ldo_aux1_reg>; | ||
| 20 | pinctrl-names = "default"; | ||
| 21 | pinctrl-0 = <&prox_stuib_mode>, <&hall_stuib_mode>; | ||
| 22 | |||
| 23 | button@139 { | ||
| 24 | /* Proximity sensor */ | ||
| 25 | gpios = <&gpio6 25 0x4>; | ||
| 26 | linux,code = <11>; /* SW_FRONT_PROXIMITY */ | ||
| 27 | label = "SFH7741 Proximity Sensor"; | ||
| 28 | }; | ||
| 29 | button@145 { | ||
| 30 | /* Hall sensor */ | ||
| 31 | gpios = <&gpio4 17 0x4>; | ||
| 32 | linux,code = <0>; /* SW_LID */ | ||
| 33 | label = "HED54XXU11 Hall Effect Sensor"; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 15 | soc { | 37 | soc { |
| 16 | i2c@80004000 { | 38 | i2c@80004000 { |
| 17 | stmpe1601: stmpe1601@40 { | 39 | stmpe1601: stmpe1601@40 { |
| @@ -74,5 +96,24 @@ | |||
| 74 | rohm,flip-y; | 96 | rohm,flip-y; |
| 75 | }; | 97 | }; |
| 76 | }; | 98 | }; |
| 99 | |||
| 100 | pinctrl { | ||
| 101 | prox { | ||
| 102 | prox_stuib_mode: prox_stuib { | ||
| 103 | stuib_cfg { | ||
| 104 | ste,pins = "GPIO217_AH12"; | ||
| 105 | ste,config = <&gpio_in_pu>; | ||
| 106 | }; | ||
| 107 | }; | ||
| 108 | }; | ||
| 109 | hall { | ||
| 110 | hall_stuib_mode: stuib_tvk { | ||
| 111 | stuib_cfg { | ||
| 112 | ste,pins = "GPIO145_C13"; | ||
| 113 | ste,config = <&gpio_in_pu>; | ||
| 114 | }; | ||
| 115 | }; | ||
| 116 | }; | ||
| 117 | }; | ||
| 77 | }; | 118 | }; |
| 78 | }; | 119 | }; |
diff --git a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi index 76d3ef13175f..c40565320978 100644 --- a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi +++ b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi | |||
| @@ -14,27 +14,105 @@ | |||
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | 14 | #include <dt-bindings/interrupt-controller/irq.h> |
| 15 | 15 | ||
| 16 | / { | 16 | / { |
| 17 | gpio_keys { | ||
| 18 | compatible = "gpio-keys"; | ||
| 19 | #address-cells = <1>; | ||
| 20 | #size-cells = <0>; | ||
| 21 | vdd-supply = <&ab8500_ldo_aux1_reg>; | ||
| 22 | pinctrl-names = "default"; | ||
| 23 | pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>; | ||
| 24 | |||
| 25 | button@139 { | ||
| 26 | /* Proximity sensor */ | ||
| 27 | gpios = <&gpio6 25 0x4>; | ||
| 28 | linux,code = <11>; /* SW_FRONT_PROXIMITY */ | ||
| 29 | label = "SFH7741 Proximity Sensor"; | ||
| 30 | }; | ||
| 31 | button@145 { | ||
| 32 | /* Hall sensor */ | ||
| 33 | gpios = <&gpio4 17 0x4>; | ||
| 34 | linux,code = <0>; /* SW_LID */ | ||
| 35 | label = "HED54XXU11 Hall Effect Sensor"; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | |||
| 17 | soc { | 39 | soc { |
| 18 | /* Add Synaptics touch screen, TC35892 keypad etc here */ | 40 | /* Add Synaptics touch screen, TC35893 keypad etc here */ |
| 19 | i2c@80004000 { | 41 | i2c@80004000 { |
| 20 | tc3589x@44 { | 42 | tc35893@44 { |
| 21 | compatible = "tc3589x"; | 43 | compatible = "toshiba,tc35893"; |
| 22 | reg = <0x44>; | 44 | reg = <0x44>; |
| 23 | interrupt-parent = <&gpio6>; | 45 | interrupt-parent = <&gpio6>; |
| 24 | interrupts = <26 IRQ_TYPE_EDGE_RISING>; | 46 | interrupts = <26 IRQ_TYPE_EDGE_RISING>; |
| 47 | pinctrl-names = "default"; | ||
| 48 | pinctrl-0 = <&tc35893_tvk_mode>; | ||
| 25 | 49 | ||
| 26 | interrupt-controller; | 50 | interrupt-controller; |
| 27 | #interrupt-cells = <2>; | 51 | #interrupt-cells = <1>; |
| 28 | 52 | ||
| 29 | tc3589x_gpio { | 53 | tc3589x_gpio { |
| 30 | compatible = "tc3589x-gpio"; | 54 | compatible = "toshiba,tc3589x-gpio"; |
| 31 | interrupts = <0 IRQ_TYPE_EDGE_RISING>; | 55 | interrupts = <0>; |
| 32 | 56 | ||
| 33 | interrupt-controller; | 57 | interrupt-controller; |
| 34 | #interrupt-cells = <2>; | 58 | #interrupt-cells = <2>; |
| 35 | gpio-controller; | 59 | gpio-controller; |
| 36 | #gpio-cells = <2>; | 60 | #gpio-cells = <2>; |
| 37 | }; | 61 | }; |
| 62 | tc3589x_keypad { | ||
| 63 | compatible = "toshiba,tc3589x-keypad"; | ||
| 64 | interrupts = <6>; | ||
| 65 | debounce-delay-ms = <4>; | ||
| 66 | keypad,num-columns = <8>; | ||
| 67 | keypad,num-rows = <8>; | ||
| 68 | linux,no-autorepeat; | ||
| 69 | linux,wakeup; | ||
| 70 | linux,keymap = <0x0301006b | ||
| 71 | 0x04010066 | ||
| 72 | 0x06040072 | ||
| 73 | 0x040200d7 | ||
| 74 | 0x0303006a | ||
| 75 | 0x0205000e | ||
| 76 | 0x0607008b | ||
| 77 | 0x0500001c | ||
| 78 | 0x0403000b | ||
| 79 | 0x03040034 | ||
| 80 | 0x05020067 | ||
| 81 | 0x0305006c | ||
| 82 | 0x040500e7 | ||
| 83 | 0x0005009e | ||
| 84 | 0x06020073 | ||
| 85 | 0x01030039 | ||
| 86 | 0x07060069 | ||
| 87 | 0x050500d9>; | ||
| 88 | }; | ||
| 89 | }; | ||
| 90 | }; | ||
| 91 | pinctrl { | ||
| 92 | /* Pull up this GPIO pin */ | ||
| 93 | tc35893 { | ||
| 94 | tc35893_tvk_mode: tc35893_tvk { | ||
| 95 | tvk_cfg { | ||
| 96 | ste,pins = "GPIO218_AH11"; | ||
| 97 | ste,config = <&gpio_in_pu>; | ||
| 98 | }; | ||
| 99 | }; | ||
| 100 | }; | ||
| 101 | prox { | ||
| 102 | prox_tvk_mode: prox_tvk { | ||
| 103 | tvk_cfg { | ||
| 104 | ste,pins = "GPIO217_AH12"; | ||
| 105 | ste,config = <&gpio_in_pu>; | ||
| 106 | }; | ||
| 107 | }; | ||
| 108 | }; | ||
| 109 | hall { | ||
| 110 | hall_tvk_mode: hall_tvk { | ||
| 111 | tvk_cfg { | ||
| 112 | ste,pins = "GPIO145_C13"; | ||
| 113 | ste,config = <&gpio_in_pu>; | ||
| 114 | }; | ||
| 115 | }; | ||
| 38 | }; | 116 | }; |
| 39 | }; | 117 | }; |
| 40 | }; | 118 | }; |
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi index aa3f02060fdd..0c1e8d871ed1 100644 --- a/arch/arm/boot/dts/ste-href.dtsi +++ b/arch/arm/boot/dts/ste-href.dtsi | |||
| @@ -11,37 +11,57 @@ | |||
| 11 | 11 | ||
| 12 | #include <dt-bindings/interrupt-controller/irq.h> | 12 | #include <dt-bindings/interrupt-controller/irq.h> |
| 13 | #include "ste-dbx5x0.dtsi" | 13 | #include "ste-dbx5x0.dtsi" |
| 14 | #include "ste-href-family-pinctrl.dtsi" | ||
| 14 | 15 | ||
| 15 | / { | 16 | / { |
| 16 | memory { | 17 | memory { |
| 17 | reg = <0x00000000 0x20000000>; | 18 | reg = <0x00000000 0x20000000>; |
| 18 | }; | 19 | }; |
| 19 | 20 | ||
| 20 | gpio_keys { | 21 | soc { |
| 21 | compatible = "gpio-keys"; | 22 | usb_per5@a03e0000 { |
| 22 | #address-cells = <1>; | 23 | pinctrl-names = "default", "sleep"; |
| 23 | #size-cells = <0>; | 24 | pinctrl-0 = <&musb_default_mode>; |
| 24 | 25 | pinctrl-1 = <&musb_sleep_mode>; | |
| 25 | button@1 { | ||
| 26 | linux,code = <11>; | ||
| 27 | label = "SFH7741 Proximity Sensor"; | ||
| 28 | }; | 26 | }; |
| 29 | }; | ||
| 30 | 27 | ||
| 31 | soc { | ||
| 32 | uart@80120000 { | 28 | uart@80120000 { |
| 29 | pinctrl-names = "default", "sleep"; | ||
| 30 | pinctrl-0 = <&uart0_default_mode>; | ||
| 31 | pinctrl-1 = <&uart0_sleep_mode>; | ||
| 33 | status = "okay"; | 32 | status = "okay"; |
| 34 | }; | 33 | }; |
| 35 | 34 | ||
| 36 | uart@80121000 { | 35 | uart@80121000 { |
| 36 | pinctrl-names = "default", "sleep"; | ||
| 37 | pinctrl-0 = <&uart1_default_mode>; | ||
| 38 | pinctrl-1 = <&uart1_sleep_mode>; | ||
| 37 | status = "okay"; | 39 | status = "okay"; |
| 38 | }; | 40 | }; |
| 39 | 41 | ||
| 40 | uart@80007000 { | 42 | uart@80007000 { |
| 43 | pinctrl-names = "default", "sleep"; | ||
| 44 | pinctrl-0 = <&uart2_default_mode>; | ||
| 45 | pinctrl-1 = <&uart2_sleep_mode>; | ||
| 41 | status = "okay"; | 46 | status = "okay"; |
| 42 | }; | 47 | }; |
| 43 | 48 | ||
| 49 | i2c@80004000 { | ||
| 50 | pinctrl-names = "default","sleep"; | ||
| 51 | pinctrl-0 = <&i2c0_default_mode>; | ||
| 52 | pinctrl-1 = <&i2c0_sleep_mode>; | ||
| 53 | }; | ||
| 54 | |||
| 55 | i2c@80122000 { | ||
| 56 | pinctrl-names = "default","sleep"; | ||
| 57 | pinctrl-0 = <&i2c1_default_mode>; | ||
| 58 | pinctrl-1 = <&i2c1_sleep_mode>; | ||
| 59 | }; | ||
| 60 | |||
| 44 | i2c@80128000 { | 61 | i2c@80128000 { |
| 62 | pinctrl-names = "default","sleep"; | ||
| 63 | pinctrl-0 = <&i2c2_default_mode>; | ||
| 64 | pinctrl-1 = <&i2c2_sleep_mode>; | ||
| 45 | lp5521@33 { | 65 | lp5521@33 { |
| 46 | compatible = "national,lp5521"; | 66 | compatible = "national,lp5521"; |
| 47 | reg = <0x33>; | 67 | reg = <0x33>; |
| @@ -85,6 +105,12 @@ | |||
| 85 | }; | 105 | }; |
| 86 | }; | 106 | }; |
| 87 | 107 | ||
| 108 | i2c@80110000 { | ||
| 109 | pinctrl-names = "default","sleep"; | ||
| 110 | pinctrl-0 = <&i2c3_default_mode>; | ||
| 111 | pinctrl-1 = <&i2c3_sleep_mode>; | ||
| 112 | }; | ||
| 113 | |||
| 88 | // External Micro SD slot | 114 | // External Micro SD slot |
| 89 | sdi0_per1@80126000 { | 115 | sdi0_per1@80126000 { |
| 90 | arm,primecell-periphid = <0x10480180>; | 116 | arm,primecell-periphid = <0x10480180>; |
| @@ -94,8 +120,9 @@ | |||
| 94 | mmc-cap-mmc-highspeed; | 120 | mmc-cap-mmc-highspeed; |
| 95 | vmmc-supply = <&ab8500_ldo_aux3_reg>; | 121 | vmmc-supply = <&ab8500_ldo_aux3_reg>; |
| 96 | vqmmc-supply = <&vmmci>; | 122 | vqmmc-supply = <&vmmci>; |
| 97 | 123 | pinctrl-names = "default", "sleep"; | |
| 98 | cd-gpios = <&tc3589x_gpio 3 0x4>; | 124 | pinctrl-0 = <&sdi0_default_mode>; |
| 125 | pinctrl-1 = <&sdi0_sleep_mode>; | ||
| 99 | 126 | ||
| 100 | status = "okay"; | 127 | status = "okay"; |
| 101 | }; | 128 | }; |
| @@ -105,6 +132,9 @@ | |||
| 105 | arm,primecell-periphid = <0x10480180>; | 132 | arm,primecell-periphid = <0x10480180>; |
| 106 | max-frequency = <100000000>; | 133 | max-frequency = <100000000>; |
| 107 | bus-width = <4>; | 134 | bus-width = <4>; |
| 135 | pinctrl-names = "default", "sleep"; | ||
| 136 | pinctrl-0 = <&sdi1_default_mode>; | ||
| 137 | pinctrl-1 = <&sdi1_sleep_mode>; | ||
| 108 | 138 | ||
| 109 | status = "okay"; | 139 | status = "okay"; |
| 110 | }; | 140 | }; |
| @@ -115,6 +145,9 @@ | |||
| 115 | max-frequency = <100000000>; | 145 | max-frequency = <100000000>; |
| 116 | bus-width = <8>; | 146 | bus-width = <8>; |
| 117 | mmc-cap-mmc-highspeed; | 147 | mmc-cap-mmc-highspeed; |
| 148 | pinctrl-names = "default", "sleep"; | ||
| 149 | pinctrl-0 = <&sdi2_default_mode>; | ||
| 150 | pinctrl-1 = <&sdi2_sleep_mode>; | ||
| 118 | 151 | ||
| 119 | status = "okay"; | 152 | status = "okay"; |
| 120 | }; | 153 | }; |
| @@ -126,6 +159,9 @@ | |||
| 126 | bus-width = <8>; | 159 | bus-width = <8>; |
| 127 | mmc-cap-mmc-highspeed; | 160 | mmc-cap-mmc-highspeed; |
| 128 | vmmc-supply = <&ab8500_ldo_aux2_reg>; | 161 | vmmc-supply = <&ab8500_ldo_aux2_reg>; |
| 162 | pinctrl-names = "default", "sleep"; | ||
| 163 | pinctrl-0 = <&sdi4_default_mode>; | ||
| 164 | pinctrl-1 = <&sdi4_sleep_mode>; | ||
| 129 | 165 | ||
| 130 | status = "okay"; | 166 | status = "okay"; |
| 131 | }; | 167 | }; |
| @@ -137,7 +173,21 @@ | |||
| 137 | stericsson,audio-codec = <&codec>; | 173 | stericsson,audio-codec = <&codec>; |
| 138 | }; | 174 | }; |
| 139 | 175 | ||
| 176 | msp0: msp@80123000 { | ||
| 177 | pinctrl-names = "default"; | ||
| 178 | pinctrl-0 = <&msp0_default_mode>; | ||
| 179 | status = "okay"; | ||
| 180 | }; | ||
| 181 | |||
| 140 | msp1: msp@80124000 { | 182 | msp1: msp@80124000 { |
| 183 | pinctrl-names = "default"; | ||
| 184 | pinctrl-0 = <&msp1_default_mode>; | ||
| 185 | status = "okay"; | ||
| 186 | }; | ||
| 187 | |||
| 188 | msp2: msp@80117000 { | ||
| 189 | pinctrl-names = "default"; | ||
| 190 | pinctrl-0 = <&msp2_default_mode>; | ||
| 141 | status = "okay"; | 191 | status = "okay"; |
| 142 | }; | 192 | }; |
| 143 | 193 | ||
| @@ -198,5 +248,11 @@ | |||
| 198 | }; | 248 | }; |
| 199 | }; | 249 | }; |
| 200 | }; | 250 | }; |
| 251 | |||
| 252 | mcde@a0350000 { | ||
| 253 | pinctrl-names = "default", "sleep"; | ||
| 254 | pinctrl-0 = <&lcd_default_mode>; | ||
| 255 | pinctrl-1 = <&lcd_sleep_mode>; | ||
| 256 | }; | ||
| 201 | }; | 257 | }; |
| 202 | }; | 258 | }; |
diff --git a/arch/arm/boot/dts/ste-hrefprev60.dtsi b/arch/arm/boot/dts/ste-hrefprev60.dtsi index b2cd7bc2752f..40f0ecdf9303 100644 --- a/arch/arm/boot/dts/ste-hrefprev60.dtsi +++ b/arch/arm/boot/dts/ste-hrefprev60.dtsi | |||
| @@ -28,18 +28,20 @@ | |||
| 28 | reg = <0x33>; | 28 | reg = <0x33>; |
| 29 | }; | 29 | }; |
| 30 | 30 | ||
| 31 | tc3589x@42 { | 31 | tc35892@42 { |
| 32 | compatible = "tc3589x"; | 32 | compatible = "toshiba,tc35892"; |
| 33 | reg = <0x42>; | 33 | reg = <0x42>; |
| 34 | interrupt-parent = <&gpio6>; | 34 | interrupt-parent = <&gpio6>; |
| 35 | interrupts = <25 IRQ_TYPE_EDGE_RISING>; | 35 | interrupts = <25 IRQ_TYPE_EDGE_RISING>; |
| 36 | pinctrl-names = "default"; | ||
| 37 | pinctrl-0 = <&tc35892_hrefprev60_mode>; | ||
| 36 | 38 | ||
| 37 | interrupt-controller; | 39 | interrupt-controller; |
| 38 | #interrupt-cells = <2>; | 40 | #interrupt-cells = <1>; |
| 39 | 41 | ||
| 40 | tc3589x_gpio: tc3589x_gpio { | 42 | tc3589x_gpio: tc3589x_gpio { |
| 41 | compatible = "tc3589x-gpio"; | 43 | compatible = "tc3589x-gpio"; |
| 42 | interrupts = <0 IRQ_TYPE_EDGE_RISING>; | 44 | interrupts = <0>; |
| 43 | 45 | ||
| 44 | interrupt-controller; | 46 | interrupt-controller; |
| 45 | #interrupt-cells = <2>; | 47 | #interrupt-cells = <2>; |
| @@ -49,11 +51,77 @@ | |||
| 49 | }; | 51 | }; |
| 50 | }; | 52 | }; |
| 51 | 53 | ||
| 54 | ssp@80002000 { | ||
| 55 | /* | ||
| 56 | * On the first generation boards, this SSP/SPI port was connected | ||
| 57 | * to the AB8500. | ||
| 58 | */ | ||
| 59 | pinctrl-names = "default"; | ||
| 60 | pinctrl-0 = <&ssp0_hrefprev60_mode>; | ||
| 61 | }; | ||
| 62 | |||
| 63 | // External Micro SD slot | ||
| 64 | sdi0_per1@80126000 { | ||
| 65 | cd-gpios = <&tc3589x_gpio 3 0x4>; | ||
| 66 | }; | ||
| 67 | |||
| 52 | vmmci: regulator-gpio { | 68 | vmmci: regulator-gpio { |
| 53 | gpios = <&tc3589x_gpio 18 0x4>; | 69 | gpios = <&tc3589x_gpio 18 0x4>; |
| 54 | enable-gpio = <&tc3589x_gpio 17 0x4>; | 70 | enable-gpio = <&tc3589x_gpio 17 0x4>; |
| 71 | }; | ||
| 72 | |||
| 73 | pinctrl { | ||
| 74 | /* Set this up using hogs */ | ||
| 75 | pinctrl-names = "default"; | ||
| 76 | pinctrl-0 = <&ipgpio_hrefprev60_mode>; | ||
| 55 | 77 | ||
| 56 | status = "okay"; | 78 | ssp0 { |
| 79 | ssp0_hrefprev60_mode: ssp0_hrefprev60_default { | ||
| 80 | hrefprev60_mux { | ||
| 81 | ste,function = "ssp0"; | ||
| 82 | ste,pins = "ssp0_a_1"; | ||
| 83 | }; | ||
| 84 | hrefprev60_cfg1 { | ||
| 85 | ste,pins = "GPIO145_C13"; /* RXD */ | ||
| 86 | ste,config = <&in_pd>; | ||
| 87 | }; | ||
| 88 | |||
| 89 | }; | ||
| 90 | }; | ||
| 91 | sdi0 { | ||
| 92 | /* This additional pin needed on early MOP500 and HREFs previous to v60 */ | ||
| 93 | sdi0_default_mode: sdi0_default { | ||
| 94 | hrefprev60_mux { | ||
| 95 | ste,function = "mc0"; | ||
| 96 | ste,pins = "mc0dat31dir_a_1"; | ||
| 97 | }; | ||
| 98 | hrefprev60_cfg1 { | ||
| 99 | ste,pins = "GPIO21_AB3"; /* DAT31DIR */ | ||
| 100 | ste,config = <&out_hi>; | ||
| 101 | }; | ||
| 102 | |||
| 103 | }; | ||
| 104 | }; | ||
| 105 | tc35892 { | ||
| 106 | tc35892_hrefprev60_mode: tc35892_hrefprev60 { | ||
| 107 | hrefprev60_cfg { | ||
| 108 | ste,pins = "GPIO217_AH12"; | ||
| 109 | ste,config = <&gpio_in_pu>; | ||
| 110 | }; | ||
| 111 | }; | ||
| 112 | }; | ||
| 113 | ipgpio { | ||
| 114 | ipgpio_hrefprev60_mode: ipgpio_hrefprev60 { | ||
| 115 | hrefprev60_mux { | ||
| 116 | ste,function = "ipgpio"; | ||
| 117 | ste,pins = "ipgpio0_c_1", "ipgpio1_c_1"; | ||
| 118 | }; | ||
| 119 | hrefprev60_cfg1 { | ||
| 120 | ste,pins = "GPIO6_AF6", "GPIO7_AG5"; | ||
| 121 | ste,config = <&in_pu>; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | }; | ||
| 57 | }; | 125 | }; |
| 58 | }; | 126 | }; |
| 59 | }; | 127 | }; |
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi index aed511b47a9e..3b6d1181939b 100644 --- a/arch/arm/boot/dts/ste-hrefv60plus.dtsi +++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi | |||
| @@ -16,55 +16,226 @@ | |||
| 16 | model = "ST-Ericsson HREF (v60+) platform with Device Tree"; | 16 | model = "ST-Ericsson HREF (v60+) platform with Device Tree"; |
| 17 | compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; | 17 | compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; |
| 18 | 18 | ||
| 19 | gpio_keys { | ||
| 20 | button@1 { | ||
| 21 | gpios = <&gpio5 25 0x4>; | ||
| 22 | }; | ||
| 23 | }; | ||
| 24 | |||
| 25 | soc { | 19 | soc { |
| 26 | // External Micro SD slot | 20 | // External Micro SD slot |
| 27 | sdi0_per1@80126000 { | 21 | sdi0_per1@80126000 { |
| 28 | arm,primecell-periphid = <0x10480180>; | ||
| 29 | max-frequency = <100000000>; | ||
| 30 | bus-width = <4>; | ||
| 31 | mmc-cap-sd-highspeed; | ||
| 32 | mmc-cap-mmc-highspeed; | ||
| 33 | vmmc-supply = <&ab8500_ldo_aux3_reg>; | ||
| 34 | |||
| 35 | cd-gpios = <&gpio2 31 0x4>; // 95 | 22 | cd-gpios = <&gpio2 31 0x4>; // 95 |
| 36 | |||
| 37 | status = "okay"; | ||
| 38 | }; | 23 | }; |
| 39 | 24 | ||
| 40 | // WLAN SDIO channel | 25 | vmmci: regulator-gpio { |
| 41 | sdi1_per2@80118000 { | 26 | gpios = <&gpio0 5 0x4>; |
| 42 | arm,primecell-periphid = <0x10480180>; | 27 | enable-gpio = <&gpio5 9 0x4>; |
| 43 | max-frequency = <100000000>; | ||
| 44 | bus-width = <4>; | ||
| 45 | |||
| 46 | status = "okay"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | // PoP:ed eMMC | ||
| 50 | sdi2_per3@80005000 { | ||
| 51 | arm,primecell-periphid = <0x10480180>; | ||
| 52 | max-frequency = <100000000>; | ||
| 53 | bus-width = <8>; | ||
| 54 | mmc-cap-mmc-highspeed; | ||
| 55 | |||
| 56 | status = "okay"; | ||
| 57 | }; | 28 | }; |
| 58 | 29 | ||
| 59 | // On-board eMMC | 30 | pinctrl { |
| 60 | sdi4_per2@80114000 { | 31 | /* |
| 61 | arm,primecell-periphid = <0x10480180>; | 32 | * Set this up using hogs, as time goes by and as seems fit, these |
| 62 | max-frequency = <100000000>; | 33 | * can be moved over to being controlled by respective device. |
| 63 | bus-width = <8>; | 34 | */ |
| 64 | mmc-cap-mmc-highspeed; | 35 | pinctrl-names = "default"; |
| 65 | vmmc-supply = <&ab8500_ldo_aux2_reg>; | 36 | pinctrl-0 = <&ipgpio_hrefv60_mode>, |
| 37 | <&accel_hrefv60_mode>, | ||
| 38 | <&magneto_hrefv60_mode>, | ||
| 39 | <&etm_hrefv60_mode>, | ||
| 40 | <&nahj_hrefv60_mode>, | ||
| 41 | <&nfc_hrefv60_mode>, | ||
| 42 | <&force_hrefv60_mode>, | ||
| 43 | <&dipro_hrefv60_mode>, | ||
| 44 | <&vaudio_hf_hrefv60_mode>, | ||
| 45 | <&gbf_hrefv60_mode>, | ||
| 46 | <&hdtv_hrefv60_mode>, | ||
| 47 | <&touch_hrefv60_mode>; | ||
| 66 | 48 | ||
| 67 | status = "okay"; | 49 | sdi0 { |
| 50 | /* SD card detect GPIO pin, extend default state */ | ||
| 51 | sdi0_default_mode: sdi0_default { | ||
| 52 | default_hrefv60_cfg1 { | ||
| 53 | ste,pins = "GPIO95_E8"; | ||
| 54 | ste,config = <&gpio_in_pu>; | ||
| 55 | }; | ||
| 56 | }; | ||
| 57 | }; | ||
| 58 | ipgpio { | ||
| 59 | /* | ||
| 60 | * XENON Flashgun on image processor GPIO (controlled from image | ||
| 61 | * processor firmware), mux in these image processor GPIO lines 0 | ||
| 62 | * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant | ||
| 63 | * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias | ||
| 64 | * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output. | ||
| 65 | */ | ||
| 66 | ipgpio_hrefv60_mode: ipgpio_hrefv60 { | ||
| 67 | hrefv60_mux { | ||
| 68 | ste,function = "ipgpio"; | ||
| 69 | ste,pins = "ipgpio0_c_1", "ipgpio1_c_1", "ipgpio4_c_1"; | ||
| 70 | }; | ||
| 71 | hrefv60_cfg1 { | ||
| 72 | ste,pins = "GPIO6_AF6", "GPIO7_AG5"; | ||
| 73 | ste,config = <&in_pu>; | ||
| 74 | }; | ||
| 75 | hrefv60_cfg2 { | ||
| 76 | ste,pins = "GPIO21_AB3"; | ||
| 77 | ste,config = <&gpio_out_lo>; | ||
| 78 | }; | ||
| 79 | hrefv60_cfg3 { | ||
| 80 | ste,pins = "GPIO64_F3"; | ||
| 81 | ste,config = <&out_lo>; | ||
| 82 | }; | ||
| 83 | }; | ||
| 84 | }; | ||
| 85 | accelerometer { | ||
| 86 | accel_hrefv60_mode: accel_hrefv60 { | ||
| 87 | /* Accelerometer interrupt lines 1 & 2 */ | ||
| 88 | hrefv60_cfg1 { | ||
| 89 | ste,pins = "GPIO82_C1", "GPIO83_D3"; | ||
| 90 | ste,config = <&gpio_in_pu>; | ||
| 91 | }; | ||
| 92 | }; | ||
| 93 | }; | ||
| 94 | magnetometer { | ||
| 95 | magneto_hrefv60_mode: magneto_hrefv60 { | ||
| 96 | /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */ | ||
| 97 | hrefv60_cfg1 { | ||
| 98 | ste,pins = "GPIO31_V3"; | ||
| 99 | ste,config = <&gpio_in_pu>; | ||
| 100 | }; | ||
| 101 | hrefv60_cfg2 { | ||
| 102 | ste,pins = "GPIO32_V2"; | ||
| 103 | ste,config = <&gpio_in_pd>; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | }; | ||
| 107 | etm { | ||
| 108 | /* | ||
| 109 | * Drive D19-D23 for the ETM PTM trace interface low, | ||
| 110 | * (presumably pins are unconnected therefore grounded here, | ||
| 111 | * the "other alt C1" setting enables these pins) | ||
| 112 | */ | ||
| 113 | etm_hrefv60_mode: etm_hrefv60 { | ||
| 114 | hrefv60_cfg1 { | ||
| 115 | ste,pins = | ||
| 116 | "GPIO70_G5", | ||
| 117 | "GPIO71_G4", | ||
| 118 | "GPIO72_H4", | ||
| 119 | "GPIO73_H3", | ||
| 120 | "GPIO74_J3"; | ||
| 121 | ste,config = <&gpio_out_lo>; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | }; | ||
| 125 | nahj { | ||
| 126 | nahj_hrefv60_mode: nahj_hrefv60 { | ||
| 127 | /* NAHJ CTRL on GPIO76 to low, CTRL_INV on GPIO216 to high */ | ||
| 128 | hrefv60_cfg1 { | ||
| 129 | ste,pins = "GPIO76_J2"; | ||
| 130 | ste,config = <&gpio_out_lo>; | ||
| 131 | }; | ||
| 132 | hrefv60_cfg2 { | ||
| 133 | ste,pins = "GPIO216_AG12"; | ||
| 134 | ste,config = <&gpio_out_hi>; | ||
| 135 | }; | ||
| 136 | }; | ||
| 137 | }; | ||
| 138 | nfc { | ||
| 139 | nfc_hrefv60_mode: nfc_hrefv60 { | ||
| 140 | /* NFC ENA and RESET to low, pulldown IRQ line */ | ||
| 141 | hrefv60_cfg1 { | ||
| 142 | ste,pins = | ||
| 143 | "GPIO77_H1", /* NFC_ENA */ | ||
| 144 | "GPIO142_C11"; /* NFC_RESET */ | ||
| 145 | ste,config = <&gpio_out_lo>; | ||
| 146 | }; | ||
| 147 | hrefv60_cfg2 { | ||
| 148 | ste,pins = "GPIO144_B13"; /* NFC_IRQ */ | ||
| 149 | ste,config = <&gpio_in_pd>; | ||
| 150 | }; | ||
| 151 | }; | ||
| 152 | }; | ||
| 153 | force { | ||
| 154 | force_hrefv60_mode: force_hrefv60 { | ||
| 155 | hrefv60_cfg1 { | ||
| 156 | ste,pins = "GPIO91_B6"; /* FORCE_SENSING_INT */ | ||
| 157 | ste,config = <&gpio_in_pu>; | ||
| 158 | }; | ||
| 159 | hrefv60_cfg2 { | ||
| 160 | ste,pins = | ||
| 161 | "GPIO92_D6", /* FORCE_SENSING_RST */ | ||
| 162 | "GPIO97_D9"; /* FORCE_SENSING_WU */ | ||
| 163 | ste,config = <&gpio_out_lo>; | ||
| 164 | }; | ||
| 165 | }; | ||
| 166 | }; | ||
| 167 | dipro { | ||
| 168 | dipro_hrefv60_mode: dipro_hrefv60 { | ||
| 169 | hrefv60_cfg1 { | ||
| 170 | ste,pins = "GPIO139_C9"; /* DIPRO_INT */ | ||
| 171 | ste,config = <&gpio_in_pu>; | ||
| 172 | }; | ||
| 173 | }; | ||
| 174 | }; | ||
| 175 | vaudio_hf { | ||
| 176 | vaudio_hf_hrefv60_mode: vaudio_hf_hrefv60 { | ||
| 177 | /* Audio Amplifier HF enable GPIO */ | ||
| 178 | hrefv60_cfg1 { | ||
| 179 | ste,pins = "GPIO149_B14"; /* VAUDIO_HF_EN, enable MAX8968 */ | ||
| 180 | ste,config = <&gpio_out_hi>; | ||
| 181 | }; | ||
| 182 | }; | ||
| 183 | }; | ||
| 184 | gbf { | ||
| 185 | gbf_hrefv60_mode: gbf_hrefv60 { | ||
| 186 | /* | ||
| 187 | * GBF (GPS, Bluetooth, FM-radio) interface, | ||
| 188 | * pull low to reset state | ||
| 189 | */ | ||
| 190 | hrefv60_cfg1 { | ||
| 191 | ste,pins = "GPIO171_D23"; /* GBF_ENA_RESET */ | ||
| 192 | ste,config = <&gpio_out_lo>; | ||
| 193 | }; | ||
| 194 | }; | ||
| 195 | }; | ||
| 196 | hdtv { | ||
| 197 | hdtv_hrefv60_mode: hdtv_hrefv60 { | ||
| 198 | /* MSP : HDTV INTERFACE GPIO line */ | ||
| 199 | hrefv60_cfg1 { | ||
| 200 | ste,pins = "GPIO192_AJ27"; | ||
| 201 | ste,config = <&gpio_in_pd>; | ||
| 202 | }; | ||
| 203 | }; | ||
| 204 | }; | ||
| 205 | touch { | ||
| 206 | touch_hrefv60_mode: touch_hrefv60 { | ||
| 207 | /* | ||
| 208 | * Touch screen uses GPIO 143 for RST1, GPIO 146 for RST2 and | ||
| 209 | * GPIO 67 for interrupts. Pull-up the IRQ line and drive both | ||
| 210 | * reset signals low. | ||
| 211 | */ | ||
| 212 | hrefv60_cfg1 { | ||
| 213 | ste,pins = "GPIO143_D12", "GPIO146_D13"; | ||
| 214 | ste,config = <&gpio_out_lo>; | ||
| 215 | }; | ||
| 216 | hrefv60_cfg2 { | ||
| 217 | ste,pins = "GPIO67_G2"; | ||
| 218 | ste,config = <&gpio_in_pu>; | ||
| 219 | }; | ||
| 220 | }; | ||
| 221 | }; | ||
| 222 | mcde { | ||
| 223 | lcd_hrefv60_mode: lcd_hrefv60 { | ||
| 224 | /* | ||
| 225 | * Display Interface 1 uses GPIO 65 for RST (reset). | ||
| 226 | * Display Interface 2 uses GPIO 66 for RST (reset). | ||
| 227 | * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset) | ||
| 228 | */ | ||
| 229 | hrefv60_cfg1 { | ||
| 230 | ste,pins ="GPIO65_F1"; | ||
| 231 | ste,config = <&gpio_out_hi>; | ||
| 232 | }; | ||
| 233 | hrefv60_cfg2 { | ||
| 234 | ste,pins ="GPIO66_G3"; | ||
| 235 | ste,config = <&gpio_out_lo>; | ||
| 236 | }; | ||
| 237 | }; | ||
| 238 | }; | ||
| 68 | }; | 239 | }; |
| 69 | }; | 240 | }; |
| 70 | }; | 241 | }; |
diff --git a/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi b/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi index efddee9403c4..e6f22b266420 100644 --- a/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi +++ b/arch/arm/boot/dts/ste-nomadik-pinctrl.dtsi | |||
| @@ -31,17 +31,57 @@ | |||
| 31 | ste,output = <OUTPUT_LOW>; | 31 | ste,output = <OUTPUT_LOW>; |
| 32 | }; | 32 | }; |
| 33 | 33 | ||
| 34 | gpio_in_pu: gpio_input_pull_up { | ||
| 35 | ste,gpio = <GPIOMODE_ENABLED>; | ||
| 36 | ste,input = <INPUT_PULLUP>; | ||
| 37 | }; | ||
| 38 | |||
| 39 | gpio_in_pd: gpio_input_pull_down { | ||
| 40 | ste,gpio = <GPIOMODE_ENABLED>; | ||
| 41 | ste,input = <INPUT_PULLDOWN>; | ||
| 42 | }; | ||
| 43 | |||
| 34 | gpio_out_lo: gpio_output_low { | 44 | gpio_out_lo: gpio_output_low { |
| 35 | ste,gpio = <GPIOMODE_ENABLED>; | 45 | ste,gpio = <GPIOMODE_ENABLED>; |
| 36 | ste,output = <OUTPUT_LOW>; | 46 | ste,output = <OUTPUT_LOW>; |
| 37 | }; | 47 | }; |
| 38 | 48 | ||
| 49 | gpio_out_hi: gpio_output_high { | ||
| 50 | ste,gpio = <GPIOMODE_ENABLED>; | ||
| 51 | ste,output = <OUTPUT_HIGH>; | ||
| 52 | }; | ||
| 53 | |||
| 54 | slpm_pdis: slpm_pdis { | ||
| 55 | ste,sleep = <SLPM_ENABLED>; | ||
| 56 | ste,sleep-wakeup = <SLPM_WAKEUP_DISABLE>; | ||
| 57 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | ||
| 58 | }; | ||
| 59 | |||
| 60 | slpm_wkup_pdis: slpm_wkup_pdis { | ||
| 61 | ste,sleep = <SLPM_ENABLED>; | ||
| 62 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 63 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | ||
| 64 | }; | ||
| 65 | |||
| 66 | slpm_wkup_pdis_en: slpm_wkup_pdis_en { | ||
| 67 | ste,sleep = <SLPM_ENABLED>; | ||
| 68 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 69 | ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>; | ||
| 70 | }; | ||
| 71 | |||
| 39 | slpm_in_pu: slpm_in_pu { | 72 | slpm_in_pu: slpm_in_pu { |
| 40 | ste,sleep = <SLPM_ENABLED>; | 73 | ste,sleep = <SLPM_ENABLED>; |
| 41 | ste,sleep-input = <SLPM_INPUT_PULLUP>; | 74 | ste,sleep-input = <SLPM_INPUT_PULLUP>; |
| 42 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | 75 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; |
| 43 | }; | 76 | }; |
| 44 | 77 | ||
| 78 | slpm_in_pdis: slpm_in_pdis { | ||
| 79 | ste,sleep = <SLPM_ENABLED>; | ||
| 80 | ste,sleep-input = <SLPM_DIR_INPUT>; | ||
| 81 | ste,sleep-wakeup = <SLPM_WAKEUP_DISABLE>; | ||
| 82 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | ||
| 83 | }; | ||
| 84 | |||
| 45 | slpm_in_wkup_pdis: slpm_in_wkup_pdis { | 85 | slpm_in_wkup_pdis: slpm_in_wkup_pdis { |
| 46 | ste,sleep = <SLPM_ENABLED>; | 86 | ste,sleep = <SLPM_ENABLED>; |
| 47 | ste,sleep-input = <SLPM_DIR_INPUT>; | 87 | ste,sleep-input = <SLPM_DIR_INPUT>; |
| @@ -49,6 +89,20 @@ | |||
| 49 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | 89 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; |
| 50 | }; | 90 | }; |
| 51 | 91 | ||
| 92 | slpm_in_wkup_pdis_en: slpm_in_wkup_pdis_en { | ||
| 93 | ste,sleep = <SLPM_ENABLED>; | ||
| 94 | ste,sleep-input = <SLPM_DIR_INPUT>; | ||
| 95 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 96 | ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>; | ||
| 97 | }; | ||
| 98 | |||
| 99 | slpm_in_pu_wkup_pdis_en: slpm_in_wkup_pdis_en { | ||
| 100 | ste,sleep = <SLPM_ENABLED>; | ||
| 101 | ste,sleep-input = <SLPM_INPUT_PULLUP>; | ||
| 102 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 103 | ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>; | ||
| 104 | }; | ||
| 105 | |||
| 52 | slpm_out_lo: slpm_out_lo { | 106 | slpm_out_lo: slpm_out_lo { |
| 53 | ste,sleep = <SLPM_ENABLED>; | 107 | ste,sleep = <SLPM_ENABLED>; |
| 54 | ste,sleep-output = <SLPM_OUTPUT_LOW>; | 108 | ste,sleep-output = <SLPM_OUTPUT_LOW>; |
| @@ -68,6 +122,20 @@ | |||
| 68 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | 122 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; |
| 69 | }; | 123 | }; |
| 70 | 124 | ||
| 125 | slpm_out_lo_pdis: slpm_out_lo_pdis { | ||
| 126 | ste,sleep = <SLPM_ENABLED>; | ||
| 127 | ste,sleep-output = <SLPM_OUTPUT_LOW>; | ||
| 128 | ste,sleep-wakeup = <SLPM_WAKEUP_DISABLE>; | ||
| 129 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | ||
| 130 | }; | ||
| 131 | |||
| 132 | slpm_out_lo_wkup_pdis: slpm_out_lo_wkup_pdis { | ||
| 133 | ste,sleep = <SLPM_ENABLED>; | ||
| 134 | ste,sleep-output = <SLPM_OUTPUT_LOW>; | ||
| 135 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 136 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | ||
| 137 | }; | ||
| 138 | |||
| 71 | slpm_out_wkup_pdis: slpm_out_wkup_pdis { | 139 | slpm_out_wkup_pdis: slpm_out_wkup_pdis { |
| 72 | ste,sleep = <SLPM_ENABLED>; | 140 | ste,sleep = <SLPM_ENABLED>; |
| 73 | ste,sleep-output = <SLPM_DIR_OUTPUT>; | 141 | ste,sleep-output = <SLPM_DIR_OUTPUT>; |
| @@ -81,6 +149,18 @@ | |||
| 81 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | 149 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; |
| 82 | }; | 150 | }; |
| 83 | 151 | ||
| 152 | in_wkup_pdis_en: in_wkup_pdis_en { | ||
| 153 | ste,sleep-input = <SLPM_DIR_INPUT>; | ||
| 154 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 155 | ste,sleep-pull-disable = <SLPM_PDIS_ENABLED>; | ||
| 156 | }; | ||
| 157 | |||
| 158 | out_lo_wkup_pdis: out_lo_wkup_pdis { | ||
| 159 | ste,sleep-output = <SLPM_OUTPUT_LOW>; | ||
| 160 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | ||
| 161 | ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>; | ||
| 162 | }; | ||
| 163 | |||
| 84 | out_hi_wkup_pdis: out_hi_wkup_pdis { | 164 | out_hi_wkup_pdis: out_hi_wkup_pdis { |
| 85 | ste,sleep-output = <SLPM_OUTPUT_HIGH>; | 165 | ste,sleep-output = <SLPM_OUTPUT_HIGH>; |
| 86 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; | 166 | ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>; |
diff --git a/arch/arm/boot/dts/ste-nomadik-s8815.dts b/arch/arm/boot/dts/ste-nomadik-s8815.dts index 16c3888b7b15..f557feb997f4 100644 --- a/arch/arm/boot/dts/ste-nomadik-s8815.dts +++ b/arch/arm/boot/dts/ste-nomadik-s8815.dts | |||
| @@ -67,10 +67,6 @@ | |||
| 67 | 67 | ||
| 68 | /* Custom board node with GPIO pins to active etc */ | 68 | /* Custom board node with GPIO pins to active etc */ |
| 69 | usb-s8815 { | 69 | usb-s8815 { |
| 70 | /* The S8815 is using this very GPIO pin for the SMSC91x IRQs */ | ||
| 71 | ethernet-gpio { | ||
| 72 | gpios = <&gpio3 8 0x1>; | ||
| 73 | }; | ||
| 74 | /* This will bias the MMC/SD card detect line */ | 70 | /* This will bias the MMC/SD card detect line */ |
| 75 | mmcsd-gpio { | 71 | mmcsd-gpio { |
| 76 | gpios = <&gpio3 16 0x1>; | 72 | gpios = <&gpio3 16 0x1>; |
diff --git a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi index 79425e3836ce..5acc0449676a 100644 --- a/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi +++ b/arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | |||
| @@ -769,14 +769,14 @@ | |||
| 769 | #size-cells = <1>; | 769 | #size-cells = <1>; |
| 770 | ranges; | 770 | ranges; |
| 771 | 771 | ||
| 772 | vica: intc@0x10140000 { | 772 | vica: intc@10140000 { |
| 773 | compatible = "arm,versatile-vic"; | 773 | compatible = "arm,versatile-vic"; |
| 774 | interrupt-controller; | 774 | interrupt-controller; |
| 775 | #interrupt-cells = <1>; | 775 | #interrupt-cells = <1>; |
| 776 | reg = <0x10140000 0x20>; | 776 | reg = <0x10140000 0x20>; |
| 777 | }; | 777 | }; |
| 778 | 778 | ||
| 779 | vicb: intc@0x10140020 { | 779 | vicb: intc@10140020 { |
| 780 | compatible = "arm,versatile-vic"; | 780 | compatible = "arm,versatile-vic"; |
| 781 | interrupt-controller; | 781 | interrupt-controller; |
| 782 | #interrupt-cells = <1>; | 782 | #interrupt-cells = <1>; |
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts index f0b39f835914..97d5d21b7db7 100644 --- a/arch/arm/boot/dts/ste-snowball.dts +++ b/arch/arm/boot/dts/ste-snowball.dts | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | 11 | ||
| 12 | /dts-v1/; | 12 | /dts-v1/; |
| 13 | #include "ste-dbx5x0.dtsi" | 13 | #include "ste-dbx5x0.dtsi" |
| 14 | #include "ste-href-family-pinctrl.dtsi" | ||
| 14 | 15 | ||
| 15 | / { | 16 | / { |
| 16 | model = "Calao Systems Snowball platform with device tree"; | 17 | model = "Calao Systems Snowball platform with device tree"; |
| @@ -75,6 +76,8 @@ | |||
| 75 | 76 | ||
| 76 | leds { | 77 | leds { |
| 77 | compatible = "gpio-leds"; | 78 | compatible = "gpio-leds"; |
| 79 | pinctrl-names = "default"; | ||
| 80 | pinctrl-0 = <&gpioled_snowball_mode>; | ||
| 78 | used-led { | 81 | used-led { |
| 79 | label = "user_led"; | 82 | label = "user_led"; |
| 80 | gpios = <&gpio4 14 0x4>; | 83 | gpios = <&gpio4 14 0x4>; |
| @@ -84,6 +87,11 @@ | |||
| 84 | }; | 87 | }; |
| 85 | 88 | ||
| 86 | soc { | 89 | soc { |
| 90 | usb_per5@a03e0000 { | ||
| 91 | pinctrl-names = "default", "sleep"; | ||
| 92 | pinctrl-0 = <&musb_default_mode>; | ||
| 93 | pinctrl-1 = <&musb_sleep_mode>; | ||
| 94 | }; | ||
| 87 | 95 | ||
| 88 | sound { | 96 | sound { |
| 89 | compatible = "stericsson,snd-soc-mop500"; | 97 | compatible = "stericsson,snd-soc-mop500"; |
| @@ -92,7 +100,21 @@ | |||
| 92 | stericsson,audio-codec = <&codec>; | 100 | stericsson,audio-codec = <&codec>; |
| 93 | }; | 101 | }; |
| 94 | 102 | ||
| 103 | msp0: msp@80123000 { | ||
| 104 | pinctrl-names = "default"; | ||
| 105 | pinctrl-0 = <&msp0_default_mode>; | ||
| 106 | status = "okay"; | ||
| 107 | }; | ||
| 108 | |||
| 95 | msp1: msp@80124000 { | 109 | msp1: msp@80124000 { |
| 110 | pinctrl-names = "default"; | ||
| 111 | pinctrl-0 = <&msp1_default_mode>; | ||
| 112 | status = "okay"; | ||
| 113 | }; | ||
| 114 | |||
| 115 | msp2: msp@80117000 { | ||
| 116 | pinctrl-names = "default"; | ||
| 117 | pinctrl-0 = <&msp2_default_mode>; | ||
| 96 | status = "okay"; | 118 | status = "okay"; |
| 97 | }; | 119 | }; |
| 98 | 120 | ||
| @@ -110,6 +132,8 @@ | |||
| 110 | interrupt-parent = <&gpio4>; | 132 | interrupt-parent = <&gpio4>; |
| 111 | vdd33a-supply = <&en_3v3_reg>; | 133 | vdd33a-supply = <&en_3v3_reg>; |
| 112 | vddvario-supply = <&db8500_vape_reg>; | 134 | vddvario-supply = <&db8500_vape_reg>; |
| 135 | pinctrl-names = "default"; | ||
| 136 | pinctrl-0 = <ð_snowball_mode>; | ||
| 113 | 137 | ||
| 114 | reg-shift = <1>; | 138 | reg-shift = <1>; |
| 115 | reg-io-width = <2>; | 139 | reg-io-width = <2>; |
| @@ -122,10 +146,8 @@ | |||
| 122 | }; | 146 | }; |
| 123 | 147 | ||
| 124 | vmmci: regulator-gpio { | 148 | vmmci: regulator-gpio { |
| 125 | gpios = <&gpio6 25 0x4>; | 149 | gpios = <&gpio7 4 0x4>; |
| 126 | enable-gpio = <&gpio7 4 0x4>; | 150 | enable-gpio = <&gpio6 25 0x4>; |
| 127 | |||
| 128 | status = "okay"; | ||
| 129 | }; | 151 | }; |
| 130 | 152 | ||
| 131 | // External Micro SD slot | 153 | // External Micro SD slot |
| @@ -136,6 +158,9 @@ | |||
| 136 | mmc-cap-mmc-highspeed; | 158 | mmc-cap-mmc-highspeed; |
| 137 | vmmc-supply = <&ab8500_ldo_aux3_reg>; | 159 | vmmc-supply = <&ab8500_ldo_aux3_reg>; |
| 138 | vqmmc-supply = <&vmmci>; | 160 | vqmmc-supply = <&vmmci>; |
| 161 | pinctrl-names = "default", "sleep"; | ||
| 162 | pinctrl-0 = <&sdi0_default_mode>; | ||
| 163 | pinctrl-1 = <&sdi0_sleep_mode>; | ||
| 139 | 164 | ||
| 140 | cd-gpios = <&gpio6 26 0x4>; // 218 | 165 | cd-gpios = <&gpio6 26 0x4>; // 218 |
| 141 | cd-inverted; | 166 | cd-inverted; |
| @@ -143,6 +168,27 @@ | |||
| 143 | status = "okay"; | 168 | status = "okay"; |
| 144 | }; | 169 | }; |
| 145 | 170 | ||
| 171 | // WLAN SDIO channel | ||
| 172 | sdi1_per2@80118000 { | ||
| 173 | arm,primecell-periphid = <0x10480180>; | ||
| 174 | max-frequency = <100000000>; | ||
| 175 | bus-width = <4>; | ||
| 176 | pinctrl-names = "default", "sleep"; | ||
| 177 | pinctrl-0 = <&sdi1_default_mode>; | ||
| 178 | pinctrl-1 = <&sdi1_sleep_mode>; | ||
| 179 | |||
| 180 | status = "okay"; | ||
| 181 | }; | ||
| 182 | |||
| 183 | // Unused PoP eMMC - register and put it to sleep by default */ | ||
| 184 | sdi2_per3@80005000 { | ||
| 185 | arm,primecell-periphid = <0x10480180>; | ||
| 186 | pinctrl-names = "default"; | ||
| 187 | pinctrl-0 = <&sdi2_sleep_mode>; | ||
| 188 | |||
| 189 | status = "okay"; | ||
| 190 | }; | ||
| 191 | |||
| 146 | // On-board eMMC | 192 | // On-board eMMC |
| 147 | sdi4_per2@80114000 { | 193 | sdi4_per2@80114000 { |
| 148 | arm,primecell-periphid = <0x10480180>; | 194 | arm,primecell-periphid = <0x10480180>; |
| @@ -150,22 +196,63 @@ | |||
| 150 | bus-width = <8>; | 196 | bus-width = <8>; |
| 151 | mmc-cap-mmc-highspeed; | 197 | mmc-cap-mmc-highspeed; |
| 152 | vmmc-supply = <&ab8500_ldo_aux2_reg>; | 198 | vmmc-supply = <&ab8500_ldo_aux2_reg>; |
| 199 | pinctrl-names = "default", "sleep"; | ||
| 200 | pinctrl-0 = <&sdi4_default_mode>; | ||
| 201 | pinctrl-1 = <&sdi4_sleep_mode>; | ||
| 153 | 202 | ||
| 154 | status = "okay"; | 203 | status = "okay"; |
| 155 | }; | 204 | }; |
| 156 | 205 | ||
| 157 | uart@80120000 { | 206 | uart@80120000 { |
| 207 | pinctrl-names = "default", "sleep"; | ||
| 208 | pinctrl-0 = <&uart0_default_mode>; | ||
| 209 | pinctrl-1 = <&uart0_sleep_mode>; | ||
| 158 | status = "okay"; | 210 | status = "okay"; |
| 159 | }; | 211 | }; |
| 160 | 212 | ||
| 161 | uart@80121000 { | 213 | uart@80121000 { |
| 214 | pinctrl-names = "default", "sleep"; | ||
| 215 | pinctrl-0 = <&uart1_default_mode>; | ||
| 216 | pinctrl-1 = <&uart1_sleep_mode>; | ||
| 162 | status = "okay"; | 217 | status = "okay"; |
| 163 | }; | 218 | }; |
| 164 | 219 | ||
| 165 | uart@80007000 { | 220 | uart@80007000 { |
| 221 | pinctrl-names = "default", "sleep"; | ||
| 222 | pinctrl-0 = <&uart2_default_mode>; | ||
| 223 | pinctrl-1 = <&uart2_sleep_mode>; | ||
| 166 | status = "okay"; | 224 | status = "okay"; |
| 167 | }; | 225 | }; |
| 168 | 226 | ||
| 227 | i2c@80004000 { | ||
| 228 | pinctrl-names = "default","sleep"; | ||
| 229 | pinctrl-0 = <&i2c0_default_mode>; | ||
| 230 | pinctrl-1 = <&i2c0_sleep_mode>; | ||
| 231 | }; | ||
| 232 | |||
| 233 | i2c@80122000 { | ||
| 234 | pinctrl-names = "default","sleep"; | ||
| 235 | pinctrl-0 = <&i2c1_default_mode>; | ||
| 236 | pinctrl-1 = <&i2c1_sleep_mode>; | ||
| 237 | }; | ||
| 238 | |||
| 239 | i2c@80128000 { | ||
| 240 | pinctrl-names = "default","sleep"; | ||
| 241 | pinctrl-0 = <&i2c2_default_mode>; | ||
| 242 | pinctrl-1 = <&i2c2_sleep_mode>; | ||
| 243 | }; | ||
| 244 | |||
| 245 | i2c@80110000 { | ||
| 246 | pinctrl-names = "default","sleep"; | ||
| 247 | pinctrl-0 = <&i2c3_default_mode>; | ||
| 248 | pinctrl-1 = <&i2c3_sleep_mode>; | ||
| 249 | }; | ||
| 250 | |||
| 251 | ssp@80002000 { | ||
| 252 | pinctrl-names = "default"; | ||
| 253 | pinctrl-0 = <&ssp0_snowball_mode>; | ||
| 254 | }; | ||
| 255 | |||
| 169 | cpufreq-cooling { | 256 | cpufreq-cooling { |
| 170 | status = "okay"; | 257 | status = "okay"; |
| 171 | }; | 258 | }; |
| @@ -266,5 +353,141 @@ | |||
| 266 | }; | 353 | }; |
| 267 | }; | 354 | }; |
| 268 | }; | 355 | }; |
| 356 | |||
| 357 | pinctrl { | ||
| 358 | /* | ||
| 359 | * Set this up using hogs, as time goes by and as seems fit, these | ||
| 360 | * can be moved over to being controlled by respective device. | ||
| 361 | */ | ||
| 362 | pinctrl-names = "default"; | ||
| 363 | pinctrl-0 = <&accel_snowball_mode>, | ||
| 364 | <&magneto_snowball_mode>, | ||
| 365 | <&gbf_snowball_mode>, | ||
| 366 | <&wlan_snowball_mode>; | ||
| 367 | |||
| 368 | ethernet { | ||
| 369 | /* | ||
| 370 | * Mux in "SM" which is used for the | ||
| 371 | * SMSC911x Ethernet adapter | ||
| 372 | */ | ||
| 373 | eth_snowball_mode: eth_snowball { | ||
| 374 | snowball_mux { | ||
| 375 | ste,function = "sm"; | ||
| 376 | ste,pins = "sm_b_1"; | ||
| 377 | }; | ||
| 378 | /* LAN IRQ pin */ | ||
| 379 | snowball_cfg1 { | ||
| 380 | ste,pins = "GPIO140_B11"; | ||
| 381 | ste,config = <&in_nopull>; | ||
| 382 | }; | ||
| 383 | /* LAN reset pin */ | ||
| 384 | snowball_cfg2 { | ||
| 385 | ste,pins = "GPIO141_C12"; | ||
| 386 | ste,config = <&gpio_out_hi>; | ||
| 387 | }; | ||
| 388 | |||
| 389 | }; | ||
| 390 | }; | ||
| 391 | sdi0 { | ||
| 392 | sdi0_default_mode: sdi0_default { | ||
| 393 | snowball_mux { | ||
| 394 | ste,function = "mc0"; | ||
| 395 | ste,pins = "mc0dat31dir_a_1"; | ||
| 396 | }; | ||
| 397 | snowball_cfg1 { | ||
| 398 | ste,pins = "GPIO21_AB3"; /* DAT31DIR */ | ||
| 399 | ste,config = <&out_hi>; | ||
| 400 | }; | ||
| 401 | |||
| 402 | }; | ||
| 403 | }; | ||
| 404 | ssp0 { | ||
| 405 | ssp0_snowball_mode: ssp0_snowball_default { | ||
| 406 | snowball_mux { | ||
| 407 | ste,function = "ssp0"; | ||
| 408 | ste,pins = "ssp0_a_1"; | ||
| 409 | }; | ||
| 410 | snowball_cfg1 { | ||
| 411 | ste,pins = "GPIO144_B13"; /* FRM */ | ||
| 412 | ste,config = <&gpio_out_hi>; | ||
| 413 | }; | ||
| 414 | snowball_cfg2 { | ||
| 415 | ste,pins = "GPIO145_C13"; /* RXD */ | ||
| 416 | ste,config = <&in_pd>; | ||
| 417 | }; | ||
| 418 | snowball_cfg3 { | ||
| 419 | ste,pins = | ||
| 420 | "GPIO146_D13", /* TXD */ | ||
| 421 | "GPIO143_D12"; /* CLK */ | ||
| 422 | ste,config = <&out_lo>; | ||
| 423 | }; | ||
| 424 | |||
| 425 | }; | ||
| 426 | }; | ||
| 427 | gpio_led { | ||
| 428 | gpioled_snowball_mode: gpioled_default { | ||
| 429 | snowball_cfg1 { | ||
| 430 | ste,pins = "GPIO142_C11"; | ||
| 431 | ste,config = <&gpio_out_hi>; | ||
| 432 | }; | ||
| 433 | |||
| 434 | }; | ||
| 435 | }; | ||
| 436 | accelerometer { | ||
| 437 | accel_snowball_mode: accel_snowball { | ||
| 438 | /* Accelerometer lines */ | ||
| 439 | snowball_cfg1 { | ||
| 440 | ste,pins = | ||
| 441 | "GPIO163_C20", /* ACCEL_IRQ1 */ | ||
| 442 | "GPIO164_B21"; /* ACCEL_IRQ2 */ | ||
| 443 | ste,config = <&gpio_in_pu>; | ||
| 444 | }; | ||
| 445 | }; | ||
| 446 | }; | ||
| 447 | magnetometer { | ||
| 448 | magneto_snowball_mode: magneto_snowball { | ||
| 449 | snowball_cfg1 { | ||
| 450 | ste,pins = "GPIO165_C21"; /* MAG_DRDY */ | ||
| 451 | ste,config = <&gpio_in_pu>; | ||
| 452 | }; | ||
| 453 | }; | ||
| 454 | }; | ||
| 455 | gbf { | ||
| 456 | gbf_snowball_mode: gbf_snowball { | ||
| 457 | /* | ||
| 458 | * GBF (GPS, Bluetooth, FM-radio) interface, | ||
| 459 | * pull low to reset state | ||
| 460 | */ | ||
| 461 | snowball_cfg1 { | ||
| 462 | ste,pins = "GPIO171_D23"; /* GBF_ENA_RESET */ | ||
| 463 | ste,config = <&gpio_out_lo>; | ||
| 464 | }; | ||
| 465 | }; | ||
| 466 | }; | ||
| 467 | wlan { | ||
| 468 | wlan_snowball_mode: wlan_snowball { | ||
| 469 | /* | ||
| 470 | * Activate this mode with the WLAN chip. | ||
| 471 | * These are plain GPIO pins used by WLAN | ||
| 472 | */ | ||
| 473 | snowball_cfg1 { | ||
| 474 | ste,pins = | ||
| 475 | "GPIO161_D21", /* WLAN_PMU_EN */ | ||
| 476 | "GPIO215_AH13"; /* WLAN_ENA */ | ||
| 477 | ste,config = <&gpio_out_lo>; | ||
| 478 | }; | ||
| 479 | snowball_cfg2 { | ||
| 480 | ste,pins = "GPIO216_AG12"; /* WLAN_IRQ */ | ||
| 481 | ste,config = <&gpio_in_pu>; | ||
| 482 | }; | ||
| 483 | }; | ||
| 484 | }; | ||
| 485 | }; | ||
| 486 | |||
| 487 | mcde@a0350000 { | ||
| 488 | pinctrl-names = "default", "sleep"; | ||
| 489 | pinctrl-0 = <&lcd_default_mode>; | ||
| 490 | pinctrl-1 = <&lcd_sleep_mode>; | ||
| 491 | }; | ||
| 269 | }; | 492 | }; |
| 270 | }; | 493 | }; |
diff --git a/arch/arm/boot/dts/stih415-pinctrl.dtsi b/arch/arm/boot/dts/stih415-pinctrl.dtsi index 1d322b24d1e4..e56449d41481 100644 --- a/arch/arm/boot/dts/stih415-pinctrl.dtsi +++ b/arch/arm/boot/dts/stih415-pinctrl.dtsi | |||
| @@ -86,6 +86,24 @@ | |||
| 86 | }; | 86 | }; |
| 87 | }; | 87 | }; |
| 88 | }; | 88 | }; |
| 89 | |||
| 90 | sbc_i2c0 { | ||
| 91 | pinctrl_sbc_i2c0_default: sbc_i2c0-default { | ||
| 92 | st,pins { | ||
| 93 | sda = <&PIO4 6 ALT1 BIDIR>; | ||
| 94 | scl = <&PIO4 5 ALT1 BIDIR>; | ||
| 95 | }; | ||
| 96 | }; | ||
| 97 | }; | ||
| 98 | |||
| 99 | sbc_i2c1 { | ||
| 100 | pinctrl_sbc_i2c1_default: sbc_i2c1-default { | ||
| 101 | st,pins { | ||
| 102 | sda = <&PIO3 2 ALT2 BIDIR>; | ||
| 103 | scl = <&PIO3 1 ALT2 BIDIR>; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | }; | ||
| 89 | }; | 107 | }; |
| 90 | 108 | ||
| 91 | pin-controller-front { | 109 | pin-controller-front { |
| @@ -143,6 +161,24 @@ | |||
| 143 | reg = <0x7000 0x100>; | 161 | reg = <0x7000 0x100>; |
| 144 | st,bank-name = "PIO12"; | 162 | st,bank-name = "PIO12"; |
| 145 | }; | 163 | }; |
| 164 | |||
| 165 | i2c0 { | ||
| 166 | pinctrl_i2c0_default: i2c0-default { | ||
| 167 | st,pins { | ||
| 168 | sda = <&PIO9 3 ALT1 BIDIR>; | ||
| 169 | scl = <&PIO9 2 ALT1 BIDIR>; | ||
| 170 | }; | ||
| 171 | }; | ||
| 172 | }; | ||
| 173 | |||
| 174 | i2c1 { | ||
| 175 | pinctrl_i2c1_default: i2c1-default { | ||
| 176 | st,pins { | ||
| 177 | sda = <&PIO12 1 ALT1 BIDIR>; | ||
| 178 | scl = <&PIO12 0 ALT1 BIDIR>; | ||
| 179 | }; | ||
| 180 | }; | ||
| 181 | }; | ||
| 146 | }; | 182 | }; |
| 147 | 183 | ||
| 148 | pin-controller-rear { | 184 | pin-controller-rear { |
diff --git a/arch/arm/boot/dts/stih415.dtsi b/arch/arm/boot/dts/stih415.dtsi index 74ab8ded4b49..d9c7dd1d95a4 100644 --- a/arch/arm/boot/dts/stih415.dtsi +++ b/arch/arm/boot/dts/stih415.dtsi | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "stih41x.dtsi" | 9 | #include "stih41x.dtsi" |
| 10 | #include "stih415-clock.dtsi" | 10 | #include "stih415-clock.dtsi" |
| 11 | #include "stih415-pinctrl.dtsi" | 11 | #include "stih415-pinctrl.dtsi" |
| 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 12 | / { | 13 | / { |
| 13 | 14 | ||
| 14 | L2: cache-controller { | 15 | L2: cache-controller { |
| @@ -83,5 +84,57 @@ | |||
| 83 | pinctrl-names = "default"; | 84 | pinctrl-names = "default"; |
| 84 | pinctrl-0 = <&pinctrl_sbc_serial1>; | 85 | pinctrl-0 = <&pinctrl_sbc_serial1>; |
| 85 | }; | 86 | }; |
| 87 | |||
| 88 | i2c@fed40000 { | ||
| 89 | compatible = "st,comms-ssc4-i2c"; | ||
| 90 | reg = <0xfed40000 0x110>; | ||
| 91 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; | ||
| 92 | clocks = <&CLKS_ICN_REG_0>; | ||
| 93 | clock-names = "ssc"; | ||
| 94 | clock-frequency = <400000>; | ||
| 95 | pinctrl-names = "default"; | ||
| 96 | pinctrl-0 = <&pinctrl_i2c0_default>; | ||
| 97 | |||
| 98 | status = "disabled"; | ||
| 99 | }; | ||
| 100 | |||
| 101 | i2c@fed41000 { | ||
| 102 | compatible = "st,comms-ssc4-i2c"; | ||
| 103 | reg = <0xfed41000 0x110>; | ||
| 104 | interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | ||
| 105 | clocks = <&CLKS_ICN_REG_0>; | ||
| 106 | clock-names = "ssc"; | ||
| 107 | clock-frequency = <400000>; | ||
| 108 | pinctrl-names = "default"; | ||
| 109 | pinctrl-0 = <&pinctrl_i2c1_default>; | ||
| 110 | |||
| 111 | status = "disabled"; | ||
| 112 | }; | ||
| 113 | |||
| 114 | i2c@fe540000 { | ||
| 115 | compatible = "st,comms-ssc4-i2c"; | ||
| 116 | reg = <0xfe540000 0x110>; | ||
| 117 | interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>; | ||
| 118 | clocks = <&CLK_SYSIN>; | ||
| 119 | clock-names = "ssc"; | ||
| 120 | clock-frequency = <400000>; | ||
| 121 | pinctrl-names = "default"; | ||
| 122 | pinctrl-0 = <&pinctrl_sbc_i2c0_default>; | ||
| 123 | |||
| 124 | status = "disabled"; | ||
| 125 | }; | ||
| 126 | |||
| 127 | i2c@fe541000 { | ||
| 128 | compatible = "st,comms-ssc4-i2c"; | ||
| 129 | reg = <0xfe541000 0x110>; | ||
| 130 | interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; | ||
| 131 | clocks = <&CLK_SYSIN>; | ||
| 132 | clock-names = "ssc"; | ||
| 133 | clock-frequency = <400000>; | ||
| 134 | pinctrl-names = "default"; | ||
| 135 | pinctrl-0 = <&pinctrl_sbc_i2c1_default>; | ||
| 136 | |||
| 137 | status = "disabled"; | ||
| 138 | }; | ||
| 86 | }; | 139 | }; |
| 87 | }; | 140 | }; |
diff --git a/arch/arm/boot/dts/stih416-pinctrl.dtsi b/arch/arm/boot/dts/stih416-pinctrl.dtsi index 0f246c979262..b29ff4ba542c 100644 --- a/arch/arm/boot/dts/stih416-pinctrl.dtsi +++ b/arch/arm/boot/dts/stih416-pinctrl.dtsi | |||
| @@ -97,6 +97,24 @@ | |||
| 97 | }; | 97 | }; |
| 98 | }; | 98 | }; |
| 99 | }; | 99 | }; |
| 100 | |||
| 101 | sbc_i2c0 { | ||
| 102 | pinctrl_sbc_i2c0_default: sbc_i2c0-default { | ||
| 103 | st,pins { | ||
| 104 | sda = <&PIO4 6 ALT1 BIDIR>; | ||
| 105 | scl = <&PIO4 5 ALT1 BIDIR>; | ||
| 106 | }; | ||
| 107 | }; | ||
| 108 | }; | ||
| 109 | |||
| 110 | sbc_i2c1 { | ||
| 111 | pinctrl_sbc_i2c1_default: sbc_i2c1-default { | ||
| 112 | st,pins { | ||
| 113 | sda = <&PIO3 2 ALT2 BIDIR>; | ||
| 114 | scl = <&PIO3 1 ALT2 BIDIR>; | ||
| 115 | }; | ||
| 116 | }; | ||
| 117 | }; | ||
| 100 | }; | 118 | }; |
| 101 | 119 | ||
| 102 | pin-controller-front { | 120 | pin-controller-front { |
| @@ -175,6 +193,23 @@ | |||
| 175 | }; | 193 | }; |
| 176 | }; | 194 | }; |
| 177 | 195 | ||
| 196 | i2c0 { | ||
| 197 | pinctrl_i2c0_default: i2c0-default { | ||
| 198 | st,pins { | ||
| 199 | sda = <&PIO9 3 ALT1 BIDIR>; | ||
| 200 | scl = <&PIO9 2 ALT1 BIDIR>; | ||
| 201 | }; | ||
| 202 | }; | ||
| 203 | }; | ||
| 204 | |||
| 205 | i2c1 { | ||
| 206 | pinctrl_i2c1_default: i2c1-default { | ||
| 207 | st,pins { | ||
| 208 | sda = <&PIO12 1 ALT1 BIDIR>; | ||
| 209 | scl = <&PIO12 0 ALT1 BIDIR>; | ||
| 210 | }; | ||
| 211 | }; | ||
| 212 | }; | ||
| 178 | }; | 213 | }; |
| 179 | 214 | ||
| 180 | pin-controller-rear { | 215 | pin-controller-rear { |
diff --git a/arch/arm/boot/dts/stih416.dtsi b/arch/arm/boot/dts/stih416.dtsi index 1a0326ea7d07..b7ab47b95816 100644 --- a/arch/arm/boot/dts/stih416.dtsi +++ b/arch/arm/boot/dts/stih416.dtsi | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "stih41x.dtsi" | 9 | #include "stih41x.dtsi" |
| 10 | #include "stih416-clock.dtsi" | 10 | #include "stih416-clock.dtsi" |
| 11 | #include "stih416-pinctrl.dtsi" | 11 | #include "stih416-pinctrl.dtsi" |
| 12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 12 | / { | 13 | / { |
| 13 | L2: cache-controller { | 14 | L2: cache-controller { |
| 14 | compatible = "arm,pl310-cache"; | 15 | compatible = "arm,pl310-cache"; |
| @@ -92,5 +93,57 @@ | |||
| 92 | pinctrl-0 = <&pinctrl_sbc_serial1>; | 93 | pinctrl-0 = <&pinctrl_sbc_serial1>; |
| 93 | clocks = <&CLK_SYSIN>; | 94 | clocks = <&CLK_SYSIN>; |
| 94 | }; | 95 | }; |
| 96 | |||
| 97 | i2c@fed40000 { | ||
| 98 | compatible = "st,comms-ssc4-i2c"; | ||
| 99 | reg = <0xfed40000 0x110>; | ||
| 100 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; | ||
| 101 | clocks = <&CLK_S_ICN_REG_0>; | ||
| 102 | clock-names = "ssc"; | ||
| 103 | clock-frequency = <400000>; | ||
| 104 | pinctrl-names = "default"; | ||
| 105 | pinctrl-0 = <&pinctrl_i2c0_default>; | ||
| 106 | |||
| 107 | status = "disabled"; | ||
| 108 | }; | ||
| 109 | |||
| 110 | i2c@fed41000 { | ||
| 111 | compatible = "st,comms-ssc4-i2c"; | ||
| 112 | reg = <0xfed41000 0x110>; | ||
| 113 | interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | ||
| 114 | clocks = <&CLK_S_ICN_REG_0>; | ||
| 115 | clock-names = "ssc"; | ||
| 116 | clock-frequency = <400000>; | ||
| 117 | pinctrl-names = "default"; | ||
| 118 | pinctrl-0 = <&pinctrl_i2c1_default>; | ||
| 119 | |||
| 120 | status = "disabled"; | ||
| 121 | }; | ||
| 122 | |||
| 123 | i2c@fe540000 { | ||
| 124 | compatible = "st,comms-ssc4-i2c"; | ||
| 125 | reg = <0xfe540000 0x110>; | ||
| 126 | interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>; | ||
| 127 | clocks = <&CLK_SYSIN>; | ||
| 128 | clock-names = "ssc"; | ||
| 129 | clock-frequency = <400000>; | ||
| 130 | pinctrl-names = "default"; | ||
| 131 | pinctrl-0 = <&pinctrl_sbc_i2c0_default>; | ||
| 132 | |||
| 133 | status = "disabled"; | ||
| 134 | }; | ||
| 135 | |||
| 136 | i2c@fe541000 { | ||
| 137 | compatible = "st,comms-ssc4-i2c"; | ||
| 138 | reg = <0xfe541000 0x110>; | ||
| 139 | interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; | ||
| 140 | clocks = <&CLK_SYSIN>; | ||
| 141 | clock-names = "ssc"; | ||
| 142 | clock-frequency = <400000>; | ||
| 143 | pinctrl-names = "default"; | ||
| 144 | pinctrl-0 = <&pinctrl_sbc_i2c1_default>; | ||
| 145 | |||
| 146 | status = "disabled"; | ||
| 147 | }; | ||
| 95 | }; | 148 | }; |
| 96 | }; | 149 | }; |
diff --git a/arch/arm/boot/dts/stih41x-b2000.dtsi b/arch/arm/boot/dts/stih41x-b2000.dtsi index 8e694d2b8f5b..1e6aa92772f5 100644 --- a/arch/arm/boot/dts/stih41x-b2000.dtsi +++ b/arch/arm/boot/dts/stih41x-b2000.dtsi | |||
| @@ -37,5 +37,14 @@ | |||
| 37 | }; | 37 | }; |
| 38 | }; | 38 | }; |
| 39 | 39 | ||
| 40 | /* HDMI Tx I2C */ | ||
| 41 | i2c@fed41000 { | ||
| 42 | /* HDMI V1.3a supports Standard mode only */ | ||
| 43 | clock-frequency = <100000>; | ||
| 44 | i2c-min-scl-pulse-width-us = <0>; | ||
| 45 | i2c-min-sda-pulse-width-us = <5>; | ||
| 46 | |||
| 47 | status = "okay"; | ||
| 48 | }; | ||
| 40 | }; | 49 | }; |
| 41 | }; | 50 | }; |
diff --git a/arch/arm/boot/dts/stih41x-b2020.dtsi b/arch/arm/boot/dts/stih41x-b2020.dtsi index 133e18143b1b..0ef0a69df8ea 100644 --- a/arch/arm/boot/dts/stih41x-b2020.dtsi +++ b/arch/arm/boot/dts/stih41x-b2020.dtsi | |||
| @@ -38,5 +38,27 @@ | |||
| 38 | default-state = "off"; | 38 | default-state = "off"; |
| 39 | }; | 39 | }; |
| 40 | }; | 40 | }; |
| 41 | |||
| 42 | i2c@fed40000 { | ||
| 43 | status = "okay"; | ||
| 44 | }; | ||
| 45 | |||
| 46 | /* HDMI Tx I2C */ | ||
| 47 | i2c@fed41000 { | ||
| 48 | /* HDMI V1.3a supports Standard mode only */ | ||
| 49 | clock-frequency = <100000>; | ||
| 50 | i2c-min-scl-pulse-width-us = <0>; | ||
| 51 | i2c-min-sda-pulse-width-us = <5>; | ||
| 52 | |||
| 53 | status = "okay"; | ||
| 54 | }; | ||
| 55 | |||
| 56 | i2c@fe540000 { | ||
| 57 | status = "okay"; | ||
| 58 | }; | ||
| 59 | |||
| 60 | i2c@fe541000 { | ||
| 61 | status = "okay"; | ||
| 62 | }; | ||
| 41 | }; | 63 | }; |
| 42 | }; | 64 | }; |
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts index eb4d73b6a090..d4b081d6a167 100644 --- a/arch/arm/boot/dts/sun4i-a10-a1000.dts +++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts | |||
| @@ -18,10 +18,6 @@ | |||
| 18 | model = "Mele A1000"; | 18 | model = "Mele A1000"; |
| 19 | compatible = "mele,a1000", "allwinner,sun4i-a10"; | 19 | compatible = "mele,a1000", "allwinner,sun4i-a10"; |
| 20 | 20 | ||
| 21 | aliases { | ||
| 22 | serial0 = &uart0; | ||
| 23 | }; | ||
| 24 | |||
| 25 | soc@01c00000 { | 21 | soc@01c00000 { |
| 26 | emac: ethernet@01c0b000 { | 22 | emac: ethernet@01c0b000 { |
| 27 | pinctrl-names = "default"; | 23 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts index 425a7db898c5..b139ee6bcf99 100644 --- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts +++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts | |||
| @@ -17,15 +17,6 @@ | |||
| 17 | model = "Cubietech Cubieboard"; | 17 | model = "Cubietech Cubieboard"; |
| 18 | compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10"; | 18 | compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10"; |
| 19 | 19 | ||
| 20 | aliases { | ||
| 21 | serial0 = &uart0; | ||
| 22 | serial1 = &uart1; | ||
| 23 | }; | ||
| 24 | |||
| 25 | chosen { | ||
| 26 | bootargs = "earlyprintk console=ttyS0,115200"; | ||
| 27 | }; | ||
| 28 | |||
| 29 | soc@01c00000 { | 20 | soc@01c00000 { |
| 30 | emac: ethernet@01c0b000 { | 21 | emac: ethernet@01c0b000 { |
| 31 | pinctrl-names = "default"; | 22 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts index b3ae51fa9372..3a1595f67823 100644 --- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts +++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts | |||
| @@ -18,10 +18,6 @@ | |||
| 18 | model = "Miniand Hackberry"; | 18 | model = "Miniand Hackberry"; |
| 19 | compatible = "miniand,hackberry", "allwinner,sun4i-a10"; | 19 | compatible = "miniand,hackberry", "allwinner,sun4i-a10"; |
| 20 | 20 | ||
| 21 | chosen { | ||
| 22 | bootargs = "earlyprintk console=ttyS0,115200"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | soc@01c00000 { | 21 | soc@01c00000 { |
| 26 | emac: ethernet@01c0b000 { | 22 | emac: ethernet@01c0b000 { |
| 27 | pinctrl-names = "default"; | 23 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts index 0c1447c68059..70b3323caf1a 100644 --- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts +++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts | |||
| @@ -18,10 +18,6 @@ | |||
| 18 | model = "PineRiver Mini X-Plus"; | 18 | model = "PineRiver Mini X-Plus"; |
| 19 | compatible = "pineriver,mini-xplus", "allwinner,sun4i-a10"; | 19 | compatible = "pineriver,mini-xplus", "allwinner,sun4i-a10"; |
| 20 | 20 | ||
| 21 | chosen { | ||
| 22 | bootargs = "earlyprintk console=ttyS0,115200"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | soc@01c00000 { | 21 | soc@01c00000 { |
| 26 | uart0: serial@01c28000 { | 22 | uart0: serial@01c28000 { |
| 27 | pinctrl-names = "default"; | 23 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi index 319cc6b509da..040bb0eba152 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi | |||
| @@ -15,6 +15,12 @@ | |||
| 15 | / { | 15 | / { |
| 16 | interrupt-parent = <&intc>; | 16 | interrupt-parent = <&intc>; |
| 17 | 17 | ||
| 18 | aliases { | ||
| 19 | ethernet0 = &emac; | ||
| 20 | serial0 = &uart0; | ||
| 21 | serial1 = &uart1; | ||
| 22 | }; | ||
| 23 | |||
| 18 | cpus { | 24 | cpus { |
| 19 | #address-cells = <1>; | 25 | #address-cells = <1>; |
| 20 | #size-cells = <0>; | 26 | #size-cells = <0>; |
| @@ -66,6 +72,29 @@ | |||
| 66 | clocks = <&osc24M>; | 72 | clocks = <&osc24M>; |
| 67 | }; | 73 | }; |
| 68 | 74 | ||
| 75 | pll4: pll4@01c20018 { | ||
| 76 | #clock-cells = <0>; | ||
| 77 | compatible = "allwinner,sun4i-pll1-clk"; | ||
| 78 | reg = <0x01c20018 0x4>; | ||
| 79 | clocks = <&osc24M>; | ||
| 80 | }; | ||
| 81 | |||
| 82 | pll5: pll5@01c20020 { | ||
| 83 | #clock-cells = <1>; | ||
| 84 | compatible = "allwinner,sun4i-pll5-clk"; | ||
| 85 | reg = <0x01c20020 0x4>; | ||
| 86 | clocks = <&osc24M>; | ||
| 87 | clock-output-names = "pll5_ddr", "pll5_other"; | ||
| 88 | }; | ||
| 89 | |||
| 90 | pll6: pll6@01c20028 { | ||
| 91 | #clock-cells = <1>; | ||
| 92 | compatible = "allwinner,sun4i-pll6-clk"; | ||
| 93 | reg = <0x01c20028 0x4>; | ||
| 94 | clocks = <&osc24M>; | ||
| 95 | clock-output-names = "pll6_sata", "pll6_other", "pll6"; | ||
| 96 | }; | ||
| 97 | |||
| 69 | /* dummy is 200M */ | 98 | /* dummy is 200M */ |
| 70 | cpu: cpu@01c20054 { | 99 | cpu: cpu@01c20054 { |
| 71 | #clock-cells = <0>; | 100 | #clock-cells = <0>; |
| @@ -131,12 +160,11 @@ | |||
| 131 | "apb0_ir1", "apb0_keypad"; | 160 | "apb0_ir1", "apb0_keypad"; |
| 132 | }; | 161 | }; |
| 133 | 162 | ||
| 134 | /* dummy is pll62 */ | ||
| 135 | apb1_mux: apb1_mux@01c20058 { | 163 | apb1_mux: apb1_mux@01c20058 { |
| 136 | #clock-cells = <0>; | 164 | #clock-cells = <0>; |
| 137 | compatible = "allwinner,sun4i-apb1-mux-clk"; | 165 | compatible = "allwinner,sun4i-apb1-mux-clk"; |
| 138 | reg = <0x01c20058 0x4>; | 166 | reg = <0x01c20058 0x4>; |
| 139 | clocks = <&osc24M>, <&dummy>, <&osc32k>; | 167 | clocks = <&osc24M>, <&pll6 1>, <&osc32k>; |
| 140 | }; | 168 | }; |
| 141 | 169 | ||
| 142 | apb1: apb1@01c20058 { | 170 | apb1: apb1@01c20058 { |
| @@ -158,6 +186,126 @@ | |||
| 158 | "apb1_uart4", "apb1_uart5", "apb1_uart6", | 186 | "apb1_uart4", "apb1_uart5", "apb1_uart6", |
| 159 | "apb1_uart7"; | 187 | "apb1_uart7"; |
| 160 | }; | 188 | }; |
| 189 | |||
| 190 | nand_clk: clk@01c20080 { | ||
| 191 | #clock-cells = <0>; | ||
| 192 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 193 | reg = <0x01c20080 0x4>; | ||
| 194 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 195 | clock-output-names = "nand"; | ||
| 196 | }; | ||
| 197 | |||
| 198 | ms_clk: clk@01c20084 { | ||
| 199 | #clock-cells = <0>; | ||
| 200 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 201 | reg = <0x01c20084 0x4>; | ||
| 202 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 203 | clock-output-names = "ms"; | ||
| 204 | }; | ||
| 205 | |||
| 206 | mmc0_clk: clk@01c20088 { | ||
| 207 | #clock-cells = <0>; | ||
| 208 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 209 | reg = <0x01c20088 0x4>; | ||
| 210 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 211 | clock-output-names = "mmc0"; | ||
| 212 | }; | ||
| 213 | |||
| 214 | mmc1_clk: clk@01c2008c { | ||
| 215 | #clock-cells = <0>; | ||
| 216 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 217 | reg = <0x01c2008c 0x4>; | ||
| 218 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 219 | clock-output-names = "mmc1"; | ||
| 220 | }; | ||
| 221 | |||
| 222 | mmc2_clk: clk@01c20090 { | ||
| 223 | #clock-cells = <0>; | ||
| 224 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 225 | reg = <0x01c20090 0x4>; | ||
| 226 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 227 | clock-output-names = "mmc2"; | ||
| 228 | }; | ||
| 229 | |||
| 230 | mmc3_clk: clk@01c20094 { | ||
| 231 | #clock-cells = <0>; | ||
| 232 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 233 | reg = <0x01c20094 0x4>; | ||
| 234 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 235 | clock-output-names = "mmc3"; | ||
| 236 | }; | ||
| 237 | |||
| 238 | ts_clk: clk@01c20098 { | ||
| 239 | #clock-cells = <0>; | ||
| 240 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 241 | reg = <0x01c20098 0x4>; | ||
| 242 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 243 | clock-output-names = "ts"; | ||
| 244 | }; | ||
| 245 | |||
| 246 | ss_clk: clk@01c2009c { | ||
| 247 | #clock-cells = <0>; | ||
| 248 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 249 | reg = <0x01c2009c 0x4>; | ||
| 250 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 251 | clock-output-names = "ss"; | ||
| 252 | }; | ||
| 253 | |||
| 254 | spi0_clk: clk@01c200a0 { | ||
| 255 | #clock-cells = <0>; | ||
| 256 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 257 | reg = <0x01c200a0 0x4>; | ||
| 258 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 259 | clock-output-names = "spi0"; | ||
| 260 | }; | ||
| 261 | |||
| 262 | spi1_clk: clk@01c200a4 { | ||
| 263 | #clock-cells = <0>; | ||
| 264 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 265 | reg = <0x01c200a4 0x4>; | ||
| 266 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 267 | clock-output-names = "spi1"; | ||
| 268 | }; | ||
| 269 | |||
| 270 | spi2_clk: clk@01c200a8 { | ||
| 271 | #clock-cells = <0>; | ||
| 272 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 273 | reg = <0x01c200a8 0x4>; | ||
| 274 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 275 | clock-output-names = "spi2"; | ||
| 276 | }; | ||
| 277 | |||
| 278 | pata_clk: clk@01c200ac { | ||
| 279 | #clock-cells = <0>; | ||
| 280 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 281 | reg = <0x01c200ac 0x4>; | ||
| 282 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 283 | clock-output-names = "pata"; | ||
| 284 | }; | ||
| 285 | |||
| 286 | ir0_clk: clk@01c200b0 { | ||
| 287 | #clock-cells = <0>; | ||
| 288 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 289 | reg = <0x01c200b0 0x4>; | ||
| 290 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 291 | clock-output-names = "ir0"; | ||
| 292 | }; | ||
| 293 | |||
| 294 | ir1_clk: clk@01c200b4 { | ||
| 295 | #clock-cells = <0>; | ||
| 296 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 297 | reg = <0x01c200b4 0x4>; | ||
| 298 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 299 | clock-output-names = "ir1"; | ||
| 300 | }; | ||
| 301 | |||
| 302 | spi3_clk: clk@01c200d4 { | ||
| 303 | #clock-cells = <0>; | ||
| 304 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 305 | reg = <0x01c200d4 0x4>; | ||
| 306 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 307 | clock-output-names = "spi3"; | ||
| 308 | }; | ||
| 161 | }; | 309 | }; |
| 162 | 310 | ||
| 163 | soc@01c00000 { | 311 | soc@01c00000 { |
| @@ -266,11 +414,23 @@ | |||
| 266 | reg = <0x01c20c90 0x10>; | 414 | reg = <0x01c20c90 0x10>; |
| 267 | }; | 415 | }; |
| 268 | 416 | ||
| 417 | rtc: rtc@01c20d00 { | ||
| 418 | compatible = "allwinner,sun4i-rtc"; | ||
| 419 | reg = <0x01c20d00 0x20>; | ||
| 420 | interrupts = <24>; | ||
| 421 | }; | ||
| 422 | |||
| 269 | sid: eeprom@01c23800 { | 423 | sid: eeprom@01c23800 { |
| 270 | compatible = "allwinner,sun4i-sid"; | 424 | compatible = "allwinner,sun4i-sid"; |
| 271 | reg = <0x01c23800 0x10>; | 425 | reg = <0x01c23800 0x10>; |
| 272 | }; | 426 | }; |
| 273 | 427 | ||
| 428 | rtp: rtp@01c25000 { | ||
| 429 | compatible = "allwinner,sun4i-ts"; | ||
| 430 | reg = <0x01c25000 0x100>; | ||
| 431 | interrupts = <29>; | ||
| 432 | }; | ||
| 433 | |||
| 274 | uart0: serial@01c28000 { | 434 | uart0: serial@01c28000 { |
| 275 | compatible = "snps,dw-apb-uart"; | 435 | compatible = "snps,dw-apb-uart"; |
| 276 | reg = <0x01c28000 0x400>; | 436 | reg = <0x01c28000 0x400>; |
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi index e674c94c7206..ea16054857a4 100644 --- a/arch/arm/boot/dts/sun5i-a10s.dtsi +++ b/arch/arm/boot/dts/sun5i-a10s.dtsi | |||
| @@ -16,6 +16,10 @@ | |||
| 16 | / { | 16 | / { |
| 17 | interrupt-parent = <&intc>; | 17 | interrupt-parent = <&intc>; |
| 18 | 18 | ||
| 19 | aliases { | ||
| 20 | ethernet0 = &emac; | ||
| 21 | }; | ||
| 22 | |||
| 19 | cpus { | 23 | cpus { |
| 20 | cpu@0 { | 24 | cpu@0 { |
| 21 | compatible = "arm,cortex-a8"; | 25 | compatible = "arm,cortex-a8"; |
| @@ -63,6 +67,29 @@ | |||
| 63 | clocks = <&osc24M>; | 67 | clocks = <&osc24M>; |
| 64 | }; | 68 | }; |
| 65 | 69 | ||
| 70 | pll4: pll4@01c20018 { | ||
| 71 | #clock-cells = <0>; | ||
| 72 | compatible = "allwinner,sun4i-pll1-clk"; | ||
| 73 | reg = <0x01c20018 0x4>; | ||
| 74 | clocks = <&osc24M>; | ||
| 75 | }; | ||
| 76 | |||
| 77 | pll5: pll5@01c20020 { | ||
| 78 | #clock-cells = <1>; | ||
| 79 | compatible = "allwinner,sun4i-pll5-clk"; | ||
| 80 | reg = <0x01c20020 0x4>; | ||
| 81 | clocks = <&osc24M>; | ||
| 82 | clock-output-names = "pll5_ddr", "pll5_other"; | ||
| 83 | }; | ||
| 84 | |||
| 85 | pll6: pll6@01c20028 { | ||
| 86 | #clock-cells = <1>; | ||
| 87 | compatible = "allwinner,sun4i-pll6-clk"; | ||
| 88 | reg = <0x01c20028 0x4>; | ||
| 89 | clocks = <&osc24M>; | ||
| 90 | clock-output-names = "pll6_sata", "pll6_other", "pll6"; | ||
| 91 | }; | ||
| 92 | |||
| 66 | /* dummy is 200M */ | 93 | /* dummy is 200M */ |
| 67 | cpu: cpu@01c20054 { | 94 | cpu: cpu@01c20054 { |
| 68 | #clock-cells = <0>; | 95 | #clock-cells = <0>; |
| @@ -123,12 +150,11 @@ | |||
| 123 | "apb0_ir", "apb0_keypad"; | 150 | "apb0_ir", "apb0_keypad"; |
| 124 | }; | 151 | }; |
| 125 | 152 | ||
| 126 | /* dummy is pll62 */ | ||
| 127 | apb1_mux: apb1_mux@01c20058 { | 153 | apb1_mux: apb1_mux@01c20058 { |
| 128 | #clock-cells = <0>; | 154 | #clock-cells = <0>; |
| 129 | compatible = "allwinner,sun4i-apb1-mux-clk"; | 155 | compatible = "allwinner,sun4i-apb1-mux-clk"; |
| 130 | reg = <0x01c20058 0x4>; | 156 | reg = <0x01c20058 0x4>; |
| 131 | clocks = <&osc24M>, <&dummy>, <&osc32k>; | 157 | clocks = <&osc24M>, <&pll6 1>, <&osc32k>; |
| 132 | }; | 158 | }; |
| 133 | 159 | ||
| 134 | apb1: apb1@01c20058 { | 160 | apb1: apb1@01c20058 { |
| @@ -147,6 +173,102 @@ | |||
| 147 | "apb1_i2c2", "apb1_uart0", "apb1_uart1", | 173 | "apb1_i2c2", "apb1_uart0", "apb1_uart1", |
| 148 | "apb1_uart2", "apb1_uart3"; | 174 | "apb1_uart2", "apb1_uart3"; |
| 149 | }; | 175 | }; |
| 176 | |||
| 177 | nand_clk: clk@01c20080 { | ||
| 178 | #clock-cells = <0>; | ||
| 179 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 180 | reg = <0x01c20080 0x4>; | ||
| 181 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 182 | clock-output-names = "nand"; | ||
| 183 | }; | ||
| 184 | |||
| 185 | ms_clk: clk@01c20084 { | ||
| 186 | #clock-cells = <0>; | ||
| 187 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 188 | reg = <0x01c20084 0x4>; | ||
| 189 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 190 | clock-output-names = "ms"; | ||
| 191 | }; | ||
| 192 | |||
| 193 | mmc0_clk: clk@01c20088 { | ||
| 194 | #clock-cells = <0>; | ||
| 195 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 196 | reg = <0x01c20088 0x4>; | ||
| 197 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 198 | clock-output-names = "mmc0"; | ||
| 199 | }; | ||
| 200 | |||
| 201 | mmc1_clk: clk@01c2008c { | ||
| 202 | #clock-cells = <0>; | ||
| 203 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 204 | reg = <0x01c2008c 0x4>; | ||
| 205 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 206 | clock-output-names = "mmc1"; | ||
| 207 | }; | ||
| 208 | |||
| 209 | mmc2_clk: clk@01c20090 { | ||
| 210 | #clock-cells = <0>; | ||
| 211 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 212 | reg = <0x01c20090 0x4>; | ||
| 213 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 214 | clock-output-names = "mmc2"; | ||
| 215 | }; | ||
| 216 | |||
| 217 | ts_clk: clk@01c20098 { | ||
| 218 | #clock-cells = <0>; | ||
| 219 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 220 | reg = <0x01c20098 0x4>; | ||
| 221 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 222 | clock-output-names = "ts"; | ||
| 223 | }; | ||
| 224 | |||
| 225 | ss_clk: clk@01c2009c { | ||
| 226 | #clock-cells = <0>; | ||
| 227 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 228 | reg = <0x01c2009c 0x4>; | ||
| 229 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 230 | clock-output-names = "ss"; | ||
| 231 | }; | ||
| 232 | |||
| 233 | spi0_clk: clk@01c200a0 { | ||
| 234 | #clock-cells = <0>; | ||
| 235 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 236 | reg = <0x01c200a0 0x4>; | ||
| 237 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 238 | clock-output-names = "spi0"; | ||
| 239 | }; | ||
| 240 | |||
| 241 | spi1_clk: clk@01c200a4 { | ||
| 242 | #clock-cells = <0>; | ||
| 243 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 244 | reg = <0x01c200a4 0x4>; | ||
| 245 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 246 | clock-output-names = "spi1"; | ||
| 247 | }; | ||
| 248 | |||
| 249 | spi2_clk: clk@01c200a8 { | ||
| 250 | #clock-cells = <0>; | ||
| 251 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 252 | reg = <0x01c200a8 0x4>; | ||
| 253 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 254 | clock-output-names = "spi2"; | ||
| 255 | }; | ||
| 256 | |||
| 257 | ir0_clk: clk@01c200b0 { | ||
| 258 | #clock-cells = <0>; | ||
| 259 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 260 | reg = <0x01c200b0 0x4>; | ||
| 261 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 262 | clock-output-names = "ir0"; | ||
| 263 | }; | ||
| 264 | |||
| 265 | mbus_clk: clk@01c2015c { | ||
| 266 | #clock-cells = <0>; | ||
| 267 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 268 | reg = <0x01c2015c 0x4>; | ||
| 269 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 270 | clock-output-names = "mbus"; | ||
| 271 | }; | ||
| 150 | }; | 272 | }; |
| 151 | 273 | ||
| 152 | soc@01c00000 { | 274 | soc@01c00000 { |
| @@ -260,6 +382,12 @@ | |||
| 260 | reg = <0x01c23800 0x10>; | 382 | reg = <0x01c23800 0x10>; |
| 261 | }; | 383 | }; |
| 262 | 384 | ||
| 385 | rtp: rtp@01c25000 { | ||
| 386 | compatible = "allwinner,sun4i-ts"; | ||
| 387 | reg = <0x01c25000 0x100>; | ||
| 388 | interrupts = <29>; | ||
| 389 | }; | ||
| 390 | |||
| 263 | uart0: serial@01c28000 { | 391 | uart0: serial@01c28000 { |
| 264 | compatible = "snps,dw-apb-uart"; | 392 | compatible = "snps,dw-apb-uart"; |
| 265 | reg = <0x01c28000 0x400>; | 393 | reg = <0x01c28000 0x400>; |
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts new file mode 100644 index 000000000000..fe2ce0acdb06 --- /dev/null +++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2012 Maxime Ripard | ||
| 3 | * Copyright 2013 Hans de Goede <hdegoede@redhat.com> | ||
| 4 | * | ||
| 5 | * Maxime Ripard <maxime.ripard@free-electrons.com> | ||
| 6 | * | ||
| 7 | * The code contained herein is licensed under the GNU General Public | ||
| 8 | * License. You may obtain a copy of the GNU General Public License | ||
| 9 | * Version 2 or later at the following locations: | ||
| 10 | * | ||
| 11 | * http://www.opensource.org/licenses/gpl-license.html | ||
| 12 | * http://www.gnu.org/copyleft/gpl.html | ||
| 13 | */ | ||
| 14 | |||
| 15 | /dts-v1/; | ||
| 16 | /include/ "sun5i-a13.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "Olimex A13-Olinuxino Micro"; | ||
| 20 | compatible = "olimex,a13-olinuxino-micro", "allwinner,sun5i-a13"; | ||
| 21 | |||
| 22 | soc@01c00000 { | ||
| 23 | pinctrl@01c20800 { | ||
| 24 | led_pins_olinuxinom: led_pins@0 { | ||
| 25 | allwinner,pins = "PG9"; | ||
| 26 | allwinner,function = "gpio_out"; | ||
| 27 | allwinner,drive = <1>; | ||
| 28 | allwinner,pull = <0>; | ||
| 29 | }; | ||
| 30 | }; | ||
| 31 | |||
| 32 | uart1: serial@01c28400 { | ||
| 33 | pinctrl-names = "default"; | ||
| 34 | pinctrl-0 = <&uart1_pins_b>; | ||
| 35 | status = "okay"; | ||
| 36 | }; | ||
| 37 | |||
| 38 | i2c0: i2c@01c2ac00 { | ||
| 39 | pinctrl-names = "default"; | ||
| 40 | pinctrl-0 = <&i2c0_pins_a>; | ||
| 41 | status = "okay"; | ||
| 42 | }; | ||
| 43 | |||
| 44 | i2c1: i2c@01c2b000 { | ||
| 45 | pinctrl-names = "default"; | ||
| 46 | pinctrl-0 = <&i2c1_pins_a>; | ||
| 47 | status = "okay"; | ||
| 48 | }; | ||
| 49 | |||
| 50 | i2c2: i2c@01c2b400 { | ||
| 51 | pinctrl-names = "default"; | ||
| 52 | pinctrl-0 = <&i2c2_pins_a>; | ||
| 53 | status = "okay"; | ||
| 54 | }; | ||
| 55 | }; | ||
| 56 | |||
| 57 | leds { | ||
| 58 | compatible = "gpio-leds"; | ||
| 59 | pinctrl-names = "default"; | ||
| 60 | pinctrl-0 = <&led_pins_olinuxinom>; | ||
| 61 | |||
| 62 | power { | ||
| 63 | label = "a13-olinuxino-micro:green:power"; | ||
| 64 | gpios = <&pio 6 9 0>; | ||
| 65 | default-state = "on"; | ||
| 66 | }; | ||
| 67 | }; | ||
| 68 | }; | ||
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts index 9e508dcc4245..a4ba5ff010cf 100644 --- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts +++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts | |||
| @@ -18,10 +18,6 @@ | |||
| 18 | model = "Olimex A13-Olinuxino"; | 18 | model = "Olimex A13-Olinuxino"; |
| 19 | compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13"; | 19 | compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13"; |
| 20 | 20 | ||
| 21 | chosen { | ||
| 22 | bootargs = "earlyprintk console=ttyS0,115200"; | ||
| 23 | }; | ||
| 24 | |||
| 25 | soc@01c00000 { | 21 | soc@01c00000 { |
| 26 | pinctrl@01c20800 { | 22 | pinctrl@01c20800 { |
| 27 | led_pins_olinuxino: led_pins@0 { | 23 | led_pins_olinuxino: led_pins@0 { |
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi index 1ccd75d37f49..320335abfccd 100644 --- a/arch/arm/boot/dts/sun5i-a13.dtsi +++ b/arch/arm/boot/dts/sun5i-a13.dtsi | |||
| @@ -67,6 +67,29 @@ | |||
| 67 | clocks = <&osc24M>; | 67 | clocks = <&osc24M>; |
| 68 | }; | 68 | }; |
| 69 | 69 | ||
| 70 | pll4: pll4@01c20018 { | ||
| 71 | #clock-cells = <0>; | ||
| 72 | compatible = "allwinner,sun4i-pll1-clk"; | ||
| 73 | reg = <0x01c20018 0x4>; | ||
| 74 | clocks = <&osc24M>; | ||
| 75 | }; | ||
| 76 | |||
| 77 | pll5: pll5@01c20020 { | ||
| 78 | #clock-cells = <1>; | ||
| 79 | compatible = "allwinner,sun4i-pll5-clk"; | ||
| 80 | reg = <0x01c20020 0x4>; | ||
| 81 | clocks = <&osc24M>; | ||
| 82 | clock-output-names = "pll5_ddr", "pll5_other"; | ||
| 83 | }; | ||
| 84 | |||
| 85 | pll6: pll6@01c20028 { | ||
| 86 | #clock-cells = <1>; | ||
| 87 | compatible = "allwinner,sun4i-pll6-clk"; | ||
| 88 | reg = <0x01c20028 0x4>; | ||
| 89 | clocks = <&osc24M>; | ||
| 90 | clock-output-names = "pll6_sata", "pll6_other", "pll6"; | ||
| 91 | }; | ||
| 92 | |||
| 70 | /* dummy is 200M */ | 93 | /* dummy is 200M */ |
| 71 | cpu: cpu@01c20054 { | 94 | cpu: cpu@01c20054 { |
| 72 | #clock-cells = <0>; | 95 | #clock-cells = <0>; |
| @@ -125,12 +148,11 @@ | |||
| 125 | clock-output-names = "apb0_codec", "apb0_pio", "apb0_ir"; | 148 | clock-output-names = "apb0_codec", "apb0_pio", "apb0_ir"; |
| 126 | }; | 149 | }; |
| 127 | 150 | ||
| 128 | /* dummy is pll6 */ | ||
| 129 | apb1_mux: apb1_mux@01c20058 { | 151 | apb1_mux: apb1_mux@01c20058 { |
| 130 | #clock-cells = <0>; | 152 | #clock-cells = <0>; |
| 131 | compatible = "allwinner,sun4i-apb1-mux-clk"; | 153 | compatible = "allwinner,sun4i-apb1-mux-clk"; |
| 132 | reg = <0x01c20058 0x4>; | 154 | reg = <0x01c20058 0x4>; |
| 133 | clocks = <&osc24M>, <&dummy>, <&osc32k>; | 155 | clocks = <&osc24M>, <&pll6 1>, <&osc32k>; |
| 134 | }; | 156 | }; |
| 135 | 157 | ||
| 136 | apb1: apb1@01c20058 { | 158 | apb1: apb1@01c20058 { |
| @@ -148,6 +170,102 @@ | |||
| 148 | clock-output-names = "apb1_i2c0", "apb1_i2c1", | 170 | clock-output-names = "apb1_i2c0", "apb1_i2c1", |
| 149 | "apb1_i2c2", "apb1_uart1", "apb1_uart3"; | 171 | "apb1_i2c2", "apb1_uart1", "apb1_uart3"; |
| 150 | }; | 172 | }; |
| 173 | |||
| 174 | nand_clk: clk@01c20080 { | ||
| 175 | #clock-cells = <0>; | ||
| 176 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 177 | reg = <0x01c20080 0x4>; | ||
| 178 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 179 | clock-output-names = "nand"; | ||
| 180 | }; | ||
| 181 | |||
| 182 | ms_clk: clk@01c20084 { | ||
| 183 | #clock-cells = <0>; | ||
| 184 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 185 | reg = <0x01c20084 0x4>; | ||
| 186 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 187 | clock-output-names = "ms"; | ||
| 188 | }; | ||
| 189 | |||
| 190 | mmc0_clk: clk@01c20088 { | ||
| 191 | #clock-cells = <0>; | ||
| 192 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 193 | reg = <0x01c20088 0x4>; | ||
| 194 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 195 | clock-output-names = "mmc0"; | ||
| 196 | }; | ||
| 197 | |||
| 198 | mmc1_clk: clk@01c2008c { | ||
| 199 | #clock-cells = <0>; | ||
| 200 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 201 | reg = <0x01c2008c 0x4>; | ||
| 202 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 203 | clock-output-names = "mmc1"; | ||
| 204 | }; | ||
| 205 | |||
| 206 | mmc2_clk: clk@01c20090 { | ||
| 207 | #clock-cells = <0>; | ||
| 208 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 209 | reg = <0x01c20090 0x4>; | ||
| 210 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 211 | clock-output-names = "mmc2"; | ||
| 212 | }; | ||
| 213 | |||
| 214 | ts_clk: clk@01c20098 { | ||
| 215 | #clock-cells = <0>; | ||
| 216 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 217 | reg = <0x01c20098 0x4>; | ||
| 218 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 219 | clock-output-names = "ts"; | ||
| 220 | }; | ||
| 221 | |||
| 222 | ss_clk: clk@01c2009c { | ||
| 223 | #clock-cells = <0>; | ||
| 224 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 225 | reg = <0x01c2009c 0x4>; | ||
| 226 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 227 | clock-output-names = "ss"; | ||
| 228 | }; | ||
| 229 | |||
| 230 | spi0_clk: clk@01c200a0 { | ||
| 231 | #clock-cells = <0>; | ||
| 232 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 233 | reg = <0x01c200a0 0x4>; | ||
| 234 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 235 | clock-output-names = "spi0"; | ||
| 236 | }; | ||
| 237 | |||
| 238 | spi1_clk: clk@01c200a4 { | ||
| 239 | #clock-cells = <0>; | ||
| 240 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 241 | reg = <0x01c200a4 0x4>; | ||
| 242 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 243 | clock-output-names = "spi1"; | ||
| 244 | }; | ||
| 245 | |||
| 246 | spi2_clk: clk@01c200a8 { | ||
| 247 | #clock-cells = <0>; | ||
| 248 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 249 | reg = <0x01c200a8 0x4>; | ||
| 250 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 251 | clock-output-names = "spi2"; | ||
| 252 | }; | ||
| 253 | |||
| 254 | ir0_clk: clk@01c200b0 { | ||
| 255 | #clock-cells = <0>; | ||
| 256 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 257 | reg = <0x01c200b0 0x4>; | ||
| 258 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 259 | clock-output-names = "ir0"; | ||
| 260 | }; | ||
| 261 | |||
| 262 | mbus_clk: clk@01c2015c { | ||
| 263 | #clock-cells = <0>; | ||
| 264 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 265 | reg = <0x01c2015c 0x4>; | ||
| 266 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 267 | clock-output-names = "mbus"; | ||
| 268 | }; | ||
| 151 | }; | 269 | }; |
| 152 | 270 | ||
| 153 | soc@01c00000 { | 271 | soc@01c00000 { |
| @@ -227,6 +345,12 @@ | |||
| 227 | reg = <0x01c23800 0x10>; | 345 | reg = <0x01c23800 0x10>; |
| 228 | }; | 346 | }; |
| 229 | 347 | ||
| 348 | rtp: rtp@01c25000 { | ||
| 349 | compatible = "allwinner,sun4i-ts"; | ||
| 350 | reg = <0x01c25000 0x100>; | ||
| 351 | interrupts = <29>; | ||
| 352 | }; | ||
| 353 | |||
| 230 | uart1: serial@01c28400 { | 354 | uart1: serial@01c28400 { |
| 231 | compatible = "snps,dw-apb-uart"; | 355 | compatible = "snps,dw-apb-uart"; |
| 232 | reg = <0x01c28400 0x400>; | 356 | reg = <0x01c28400 0x400>; |
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi index 7f5878c2784a..5256ad9be52c 100644 --- a/arch/arm/boot/dts/sun6i-a31.dtsi +++ b/arch/arm/boot/dts/sun6i-a31.dtsi | |||
| @@ -212,6 +212,24 @@ | |||
| 212 | }; | 212 | }; |
| 213 | }; | 213 | }; |
| 214 | 214 | ||
| 215 | ahb1_rst: reset@01c202c0 { | ||
| 216 | #reset-cells = <1>; | ||
| 217 | compatible = "allwinner,sun6i-a31-ahb1-reset"; | ||
| 218 | reg = <0x01c202c0 0xc>; | ||
| 219 | }; | ||
| 220 | |||
| 221 | apb1_rst: reset@01c202d0 { | ||
| 222 | #reset-cells = <1>; | ||
| 223 | compatible = "allwinner,sun6i-a31-clock-reset"; | ||
| 224 | reg = <0x01c202d0 0x4>; | ||
| 225 | }; | ||
| 226 | |||
| 227 | apb2_rst: reset@01c202d8 { | ||
| 228 | #reset-cells = <1>; | ||
| 229 | compatible = "allwinner,sun6i-a31-clock-reset"; | ||
| 230 | reg = <0x01c202d8 0x4>; | ||
| 231 | }; | ||
| 232 | |||
| 215 | timer@01c20c00 { | 233 | timer@01c20c00 { |
| 216 | compatible = "allwinner,sun4i-timer"; | 234 | compatible = "allwinner,sun4i-timer"; |
| 217 | reg = <0x01c20c00 0xa0>; | 235 | reg = <0x01c20c00 0xa0>; |
| @@ -235,6 +253,7 @@ | |||
| 235 | reg-shift = <2>; | 253 | reg-shift = <2>; |
| 236 | reg-io-width = <4>; | 254 | reg-io-width = <4>; |
| 237 | clocks = <&apb2_gates 16>; | 255 | clocks = <&apb2_gates 16>; |
| 256 | resets = <&apb2_rst 16>; | ||
| 238 | status = "disabled"; | 257 | status = "disabled"; |
| 239 | }; | 258 | }; |
| 240 | 259 | ||
| @@ -245,6 +264,7 @@ | |||
| 245 | reg-shift = <2>; | 264 | reg-shift = <2>; |
| 246 | reg-io-width = <4>; | 265 | reg-io-width = <4>; |
| 247 | clocks = <&apb2_gates 17>; | 266 | clocks = <&apb2_gates 17>; |
| 267 | resets = <&apb2_rst 17>; | ||
| 248 | status = "disabled"; | 268 | status = "disabled"; |
| 249 | }; | 269 | }; |
| 250 | 270 | ||
| @@ -255,6 +275,7 @@ | |||
| 255 | reg-shift = <2>; | 275 | reg-shift = <2>; |
| 256 | reg-io-width = <4>; | 276 | reg-io-width = <4>; |
| 257 | clocks = <&apb2_gates 18>; | 277 | clocks = <&apb2_gates 18>; |
| 278 | resets = <&apb2_rst 18>; | ||
| 258 | status = "disabled"; | 279 | status = "disabled"; |
| 259 | }; | 280 | }; |
| 260 | 281 | ||
| @@ -265,6 +286,7 @@ | |||
| 265 | reg-shift = <2>; | 286 | reg-shift = <2>; |
| 266 | reg-io-width = <4>; | 287 | reg-io-width = <4>; |
| 267 | clocks = <&apb2_gates 19>; | 288 | clocks = <&apb2_gates 19>; |
| 289 | resets = <&apb2_rst 19>; | ||
| 268 | status = "disabled"; | 290 | status = "disabled"; |
| 269 | }; | 291 | }; |
| 270 | 292 | ||
| @@ -275,6 +297,7 @@ | |||
| 275 | reg-shift = <2>; | 297 | reg-shift = <2>; |
| 276 | reg-io-width = <4>; | 298 | reg-io-width = <4>; |
| 277 | clocks = <&apb2_gates 20>; | 299 | clocks = <&apb2_gates 20>; |
| 300 | resets = <&apb2_rst 20>; | ||
| 278 | status = "disabled"; | 301 | status = "disabled"; |
| 279 | }; | 302 | }; |
| 280 | 303 | ||
| @@ -285,6 +308,7 @@ | |||
| 285 | reg-shift = <2>; | 308 | reg-shift = <2>; |
| 286 | reg-io-width = <4>; | 309 | reg-io-width = <4>; |
| 287 | clocks = <&apb2_gates 21>; | 310 | clocks = <&apb2_gates 21>; |
| 311 | resets = <&apb2_rst 21>; | ||
| 288 | status = "disabled"; | 312 | status = "disabled"; |
| 289 | }; | 313 | }; |
| 290 | 314 | ||
| @@ -298,5 +322,15 @@ | |||
| 298 | #interrupt-cells = <3>; | 322 | #interrupt-cells = <3>; |
| 299 | interrupts = <1 9 0xf04>; | 323 | interrupts = <1 9 0xf04>; |
| 300 | }; | 324 | }; |
| 325 | |||
| 326 | cpucfg@01f01c00 { | ||
| 327 | compatible = "allwinner,sun6i-a31-cpuconfig"; | ||
| 328 | reg = <0x01f01c00 0x300>; | ||
| 329 | }; | ||
| 330 | |||
| 331 | prcm@01f01c00 { | ||
| 332 | compatible = "allwinner,sun6i-a31-prcm"; | ||
| 333 | reg = <0x01f01400 0x200>; | ||
| 334 | }; | ||
| 301 | }; | 335 | }; |
| 302 | }; | 336 | }; |
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts index 8a1009d6c829..f9dcb61a5305 100644 --- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts +++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts | |||
| @@ -33,6 +33,24 @@ | |||
| 33 | pinctrl-0 = <&uart0_pins_a>; | 33 | pinctrl-0 = <&uart0_pins_a>; |
| 34 | status = "okay"; | 34 | status = "okay"; |
| 35 | }; | 35 | }; |
| 36 | |||
| 37 | i2c0: i2c@01c2ac00 { | ||
| 38 | pinctrl-names = "default"; | ||
| 39 | pinctrl-0 = <&i2c0_pins_a>; | ||
| 40 | status = "okay"; | ||
| 41 | }; | ||
| 42 | |||
| 43 | i2c1: i2c@01c2b000 { | ||
| 44 | pinctrl-names = "default"; | ||
| 45 | pinctrl-0 = <&i2c1_pins_a>; | ||
| 46 | status = "okay"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | i2c2: i2c@01c2b400 { | ||
| 50 | pinctrl-names = "default"; | ||
| 51 | pinctrl-0 = <&i2c2_pins_a>; | ||
| 52 | status = "okay"; | ||
| 53 | }; | ||
| 36 | }; | 54 | }; |
| 37 | 55 | ||
| 38 | leds { | 56 | leds { |
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi index 0135039eff96..119f066f0d98 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi | |||
| @@ -16,6 +16,10 @@ | |||
| 16 | / { | 16 | / { |
| 17 | interrupt-parent = <&gic>; | 17 | interrupt-parent = <&gic>; |
| 18 | 18 | ||
| 19 | aliases { | ||
| 20 | ethernet0 = &emac; | ||
| 21 | }; | ||
| 22 | |||
| 19 | cpus { | 23 | cpus { |
| 20 | #address-cells = <1>; | 24 | #address-cells = <1>; |
| 21 | #size-cells = <0>; | 25 | #size-cells = <0>; |
| @@ -49,10 +53,11 @@ | |||
| 49 | clock-frequency = <24000000>; | 53 | clock-frequency = <24000000>; |
| 50 | }; | 54 | }; |
| 51 | 55 | ||
| 52 | osc32k: osc32k { | 56 | osc32k: clk@0 { |
| 53 | #clock-cells = <0>; | 57 | #clock-cells = <0>; |
| 54 | compatible = "fixed-clock"; | 58 | compatible = "fixed-clock"; |
| 55 | clock-frequency = <32768>; | 59 | clock-frequency = <32768>; |
| 60 | clock-output-names = "osc32k"; | ||
| 56 | }; | 61 | }; |
| 57 | 62 | ||
| 58 | pll1: pll1@01c20000 { | 63 | pll1: pll1@01c20000 { |
| @@ -62,23 +67,34 @@ | |||
| 62 | clocks = <&osc24M>; | 67 | clocks = <&osc24M>; |
| 63 | }; | 68 | }; |
| 64 | 69 | ||
| 65 | /* | 70 | pll4: pll4@01c20018 { |
| 66 | * This is a dummy clock, to be used as placeholder on | ||
| 67 | * other mux clocks when a specific parent clock is not | ||
| 68 | * yet implemented. It should be dropped when the driver | ||
| 69 | * is complete. | ||
| 70 | */ | ||
| 71 | pll6: pll6 { | ||
| 72 | #clock-cells = <0>; | 71 | #clock-cells = <0>; |
| 73 | compatible = "fixed-clock"; | 72 | compatible = "allwinner,sun4i-pll1-clk"; |
| 74 | clock-frequency = <0>; | 73 | reg = <0x01c20018 0x4>; |
| 74 | clocks = <&osc24M>; | ||
| 75 | }; | ||
| 76 | |||
| 77 | pll5: pll5@01c20020 { | ||
| 78 | #clock-cells = <1>; | ||
| 79 | compatible = "allwinner,sun4i-pll5-clk"; | ||
| 80 | reg = <0x01c20020 0x4>; | ||
| 81 | clocks = <&osc24M>; | ||
| 82 | clock-output-names = "pll5_ddr", "pll5_other"; | ||
| 83 | }; | ||
| 84 | |||
| 85 | pll6: pll6@01c20028 { | ||
| 86 | #clock-cells = <1>; | ||
| 87 | compatible = "allwinner,sun4i-pll6-clk"; | ||
| 88 | reg = <0x01c20028 0x4>; | ||
| 89 | clocks = <&osc24M>; | ||
| 90 | clock-output-names = "pll6_sata", "pll6_other", "pll6"; | ||
| 75 | }; | 91 | }; |
| 76 | 92 | ||
| 77 | cpu: cpu@01c20054 { | 93 | cpu: cpu@01c20054 { |
| 78 | #clock-cells = <0>; | 94 | #clock-cells = <0>; |
| 79 | compatible = "allwinner,sun4i-cpu-clk"; | 95 | compatible = "allwinner,sun4i-cpu-clk"; |
| 80 | reg = <0x01c20054 0x4>; | 96 | reg = <0x01c20054 0x4>; |
| 81 | clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6>; | 97 | clocks = <&osc32k>, <&osc24M>, <&pll1>, <&pll6 1>; |
| 82 | }; | 98 | }; |
| 83 | 99 | ||
| 84 | axi: axi@01c20054 { | 100 | axi: axi@01c20054 { |
| @@ -137,7 +153,7 @@ | |||
| 137 | #clock-cells = <0>; | 153 | #clock-cells = <0>; |
| 138 | compatible = "allwinner,sun4i-apb1-mux-clk"; | 154 | compatible = "allwinner,sun4i-apb1-mux-clk"; |
| 139 | reg = <0x01c20058 0x4>; | 155 | reg = <0x01c20058 0x4>; |
| 140 | clocks = <&osc24M>, <&pll6>, <&osc32k>; | 156 | clocks = <&osc24M>, <&pll6 1>, <&osc32k>; |
| 141 | }; | 157 | }; |
| 142 | 158 | ||
| 143 | apb1: apb1@01c20058 { | 159 | apb1: apb1@01c20058 { |
| @@ -159,6 +175,162 @@ | |||
| 159 | "apb1_uart2", "apb1_uart3", "apb1_uart4", | 175 | "apb1_uart2", "apb1_uart3", "apb1_uart4", |
| 160 | "apb1_uart5", "apb1_uart6", "apb1_uart7"; | 176 | "apb1_uart5", "apb1_uart6", "apb1_uart7"; |
| 161 | }; | 177 | }; |
| 178 | |||
| 179 | nand_clk: clk@01c20080 { | ||
| 180 | #clock-cells = <0>; | ||
| 181 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 182 | reg = <0x01c20080 0x4>; | ||
| 183 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 184 | clock-output-names = "nand"; | ||
| 185 | }; | ||
| 186 | |||
| 187 | ms_clk: clk@01c20084 { | ||
| 188 | #clock-cells = <0>; | ||
| 189 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 190 | reg = <0x01c20084 0x4>; | ||
| 191 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 192 | clock-output-names = "ms"; | ||
| 193 | }; | ||
| 194 | |||
| 195 | mmc0_clk: clk@01c20088 { | ||
| 196 | #clock-cells = <0>; | ||
| 197 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 198 | reg = <0x01c20088 0x4>; | ||
| 199 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 200 | clock-output-names = "mmc0"; | ||
| 201 | }; | ||
| 202 | |||
| 203 | mmc1_clk: clk@01c2008c { | ||
| 204 | #clock-cells = <0>; | ||
| 205 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 206 | reg = <0x01c2008c 0x4>; | ||
| 207 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 208 | clock-output-names = "mmc1"; | ||
| 209 | }; | ||
| 210 | |||
| 211 | mmc2_clk: clk@01c20090 { | ||
| 212 | #clock-cells = <0>; | ||
| 213 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 214 | reg = <0x01c20090 0x4>; | ||
| 215 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 216 | clock-output-names = "mmc2"; | ||
| 217 | }; | ||
| 218 | |||
| 219 | mmc3_clk: clk@01c20094 { | ||
| 220 | #clock-cells = <0>; | ||
| 221 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 222 | reg = <0x01c20094 0x4>; | ||
| 223 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 224 | clock-output-names = "mmc3"; | ||
| 225 | }; | ||
| 226 | |||
| 227 | ts_clk: clk@01c20098 { | ||
| 228 | #clock-cells = <0>; | ||
| 229 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 230 | reg = <0x01c20098 0x4>; | ||
| 231 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 232 | clock-output-names = "ts"; | ||
| 233 | }; | ||
| 234 | |||
| 235 | ss_clk: clk@01c2009c { | ||
| 236 | #clock-cells = <0>; | ||
| 237 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 238 | reg = <0x01c2009c 0x4>; | ||
| 239 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 240 | clock-output-names = "ss"; | ||
| 241 | }; | ||
| 242 | |||
| 243 | spi0_clk: clk@01c200a0 { | ||
| 244 | #clock-cells = <0>; | ||
| 245 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 246 | reg = <0x01c200a0 0x4>; | ||
| 247 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 248 | clock-output-names = "spi0"; | ||
| 249 | }; | ||
| 250 | |||
| 251 | spi1_clk: clk@01c200a4 { | ||
| 252 | #clock-cells = <0>; | ||
| 253 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 254 | reg = <0x01c200a4 0x4>; | ||
| 255 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 256 | clock-output-names = "spi1"; | ||
| 257 | }; | ||
| 258 | |||
| 259 | spi2_clk: clk@01c200a8 { | ||
| 260 | #clock-cells = <0>; | ||
| 261 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 262 | reg = <0x01c200a8 0x4>; | ||
| 263 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 264 | clock-output-names = "spi2"; | ||
| 265 | }; | ||
| 266 | |||
| 267 | pata_clk: clk@01c200ac { | ||
| 268 | #clock-cells = <0>; | ||
| 269 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 270 | reg = <0x01c200ac 0x4>; | ||
| 271 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 272 | clock-output-names = "pata"; | ||
| 273 | }; | ||
| 274 | |||
| 275 | ir0_clk: clk@01c200b0 { | ||
| 276 | #clock-cells = <0>; | ||
| 277 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 278 | reg = <0x01c200b0 0x4>; | ||
| 279 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 280 | clock-output-names = "ir0"; | ||
| 281 | }; | ||
| 282 | |||
| 283 | ir1_clk: clk@01c200b4 { | ||
| 284 | #clock-cells = <0>; | ||
| 285 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 286 | reg = <0x01c200b4 0x4>; | ||
| 287 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 288 | clock-output-names = "ir1"; | ||
| 289 | }; | ||
| 290 | |||
| 291 | spi3_clk: clk@01c200d4 { | ||
| 292 | #clock-cells = <0>; | ||
| 293 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 294 | reg = <0x01c200d4 0x4>; | ||
| 295 | clocks = <&osc24M>, <&pll6 1>, <&pll5 1>; | ||
| 296 | clock-output-names = "spi3"; | ||
| 297 | }; | ||
| 298 | |||
| 299 | mbus_clk: clk@01c2015c { | ||
| 300 | #clock-cells = <0>; | ||
| 301 | compatible = "allwinner,sun4i-mod0-clk"; | ||
| 302 | reg = <0x01c2015c 0x4>; | ||
| 303 | clocks = <&osc24M>, <&pll6 2>, <&pll5 1>; | ||
| 304 | clock-output-names = "mbus"; | ||
| 305 | }; | ||
| 306 | |||
| 307 | /* | ||
| 308 | * Dummy clock used by output clocks | ||
| 309 | */ | ||
| 310 | osc24M_32k: clk@1 { | ||
| 311 | #clock-cells = <0>; | ||
| 312 | compatible = "fixed-factor-clock"; | ||
| 313 | clock-div = <750>; | ||
| 314 | clock-mult = <1>; | ||
| 315 | clocks = <&osc24M>; | ||
| 316 | clock-output-names = "osc24M_32k"; | ||
| 317 | }; | ||
| 318 | |||
| 319 | clk_out_a: clk@01c201f0 { | ||
| 320 | #clock-cells = <0>; | ||
| 321 | compatible = "allwinner,sun7i-a20-out-clk"; | ||
| 322 | reg = <0x01c201f0 0x4>; | ||
| 323 | clocks = <&osc24M_32k>, <&osc32k>, <&osc24M>; | ||
| 324 | clock-output-names = "clk_out_a"; | ||
| 325 | }; | ||
| 326 | |||
| 327 | clk_out_b: clk@01c201f4 { | ||
| 328 | #clock-cells = <0>; | ||
| 329 | compatible = "allwinner,sun7i-a20-out-clk"; | ||
| 330 | reg = <0x01c201f4 0x4>; | ||
| 331 | clocks = <&osc24M_32k>, <&osc32k>, <&osc24M>; | ||
| 332 | clock-output-names = "clk_out_b"; | ||
| 333 | }; | ||
| 162 | }; | 334 | }; |
| 163 | 335 | ||
| 164 | soc@01c00000 { | 336 | soc@01c00000 { |
| @@ -246,6 +418,20 @@ | |||
| 246 | allwinner,drive = <0>; | 418 | allwinner,drive = <0>; |
| 247 | allwinner,pull = <0>; | 419 | allwinner,pull = <0>; |
| 248 | }; | 420 | }; |
| 421 | |||
| 422 | clk_out_a_pins_a: clk_out_a@0 { | ||
| 423 | allwinner,pins = "PI12"; | ||
| 424 | allwinner,function = "clk_out_a"; | ||
| 425 | allwinner,drive = <0>; | ||
| 426 | allwinner,pull = <0>; | ||
| 427 | }; | ||
| 428 | |||
| 429 | clk_out_b_pins_a: clk_out_b@0 { | ||
| 430 | allwinner,pins = "PI13"; | ||
| 431 | allwinner,function = "clk_out_b"; | ||
| 432 | allwinner,drive = <0>; | ||
| 433 | allwinner,pull = <0>; | ||
| 434 | }; | ||
| 249 | }; | 435 | }; |
| 250 | 436 | ||
| 251 | timer@01c20c00 { | 437 | timer@01c20c00 { |
| @@ -265,11 +451,23 @@ | |||
| 265 | reg = <0x01c20c90 0x10>; | 451 | reg = <0x01c20c90 0x10>; |
| 266 | }; | 452 | }; |
| 267 | 453 | ||
| 454 | rtc: rtc@01c20d00 { | ||
| 455 | compatible = "allwinner,sun7i-a20-rtc"; | ||
| 456 | reg = <0x01c20d00 0x20>; | ||
| 457 | interrupts = <0 24 1>; | ||
| 458 | }; | ||
| 459 | |||
| 268 | sid: eeprom@01c23800 { | 460 | sid: eeprom@01c23800 { |
| 269 | compatible = "allwinner,sun7i-a20-sid"; | 461 | compatible = "allwinner,sun7i-a20-sid"; |
| 270 | reg = <0x01c23800 0x200>; | 462 | reg = <0x01c23800 0x200>; |
| 271 | }; | 463 | }; |
| 272 | 464 | ||
| 465 | rtp: rtp@01c25000 { | ||
| 466 | compatible = "allwinner,sun4i-ts"; | ||
| 467 | reg = <0x01c25000 0x100>; | ||
| 468 | interrupts = <0 29 4>; | ||
| 469 | }; | ||
| 470 | |||
| 273 | uart0: serial@01c28000 { | 471 | uart0: serial@01c28000 { |
| 274 | compatible = "snps,dw-apb-uart"; | 472 | compatible = "snps,dw-apb-uart"; |
| 275 | reg = <0x01c28000 0x400>; | 473 | reg = <0x01c28000 0x400>; |
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts index cb5ec23b03a7..73aecfb57ccb 100644 --- a/arch/arm/boot/dts/tegra114-dalmore.dts +++ b/arch/arm/boot/dts/tegra114-dalmore.dts | |||
| @@ -7,11 +7,42 @@ | |||
| 7 | model = "NVIDIA Tegra114 Dalmore evaluation board"; | 7 | model = "NVIDIA Tegra114 Dalmore evaluation board"; |
| 8 | compatible = "nvidia,dalmore", "nvidia,tegra114"; | 8 | compatible = "nvidia,dalmore", "nvidia,tegra114"; |
| 9 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/tps65913@58"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 10 | memory { | 15 | memory { |
| 11 | reg = <0x80000000 0x40000000>; | 16 | reg = <0x80000000 0x40000000>; |
| 12 | }; | 17 | }; |
| 13 | 18 | ||
| 14 | pinmux { | 19 | host1x@50000000 { |
| 20 | hdmi@54280000 { | ||
| 21 | status = "okay"; | ||
| 22 | |||
| 23 | vdd-supply = <&vdd_hdmi_reg>; | ||
| 24 | pll-supply = <&palmas_smps3_reg>; | ||
| 25 | |||
| 26 | nvidia,ddc-i2c-bus = <&hdmi_ddc>; | ||
| 27 | nvidia,hpd-gpio = | ||
| 28 | <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; | ||
| 29 | }; | ||
| 30 | |||
| 31 | dsi@54300000 { | ||
| 32 | status = "okay"; | ||
| 33 | |||
| 34 | panel@0 { | ||
| 35 | compatible = "panasonic,vvx10f004b00", | ||
| 36 | "simple-panel"; | ||
| 37 | reg = <0>; | ||
| 38 | |||
| 39 | power-supply = <&avdd_lcd_reg>; | ||
| 40 | backlight = <&backlight>; | ||
| 41 | }; | ||
| 42 | }; | ||
| 43 | }; | ||
| 44 | |||
| 45 | pinmux@70000868 { | ||
| 15 | pinctrl-names = "default"; | 46 | pinctrl-names = "default"; |
| 16 | pinctrl-0 = <&state_default>; | 47 | pinctrl-0 = <&state_default>; |
| 17 | 48 | ||
| @@ -19,41 +50,41 @@ | |||
| 19 | clk1_out_pw4 { | 50 | clk1_out_pw4 { |
| 20 | nvidia,pins = "clk1_out_pw4"; | 51 | nvidia,pins = "clk1_out_pw4"; |
| 21 | nvidia,function = "extperiph1"; | 52 | nvidia,function = "extperiph1"; |
| 22 | nvidia,pull = <0>; | 53 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 23 | nvidia,tristate = <0>; | 54 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 24 | nvidia,enable-input = <0>; | 55 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 25 | }; | 56 | }; |
| 26 | dap1_din_pn1 { | 57 | dap1_din_pn1 { |
| 27 | nvidia,pins = "dap1_din_pn1"; | 58 | nvidia,pins = "dap1_din_pn1"; |
| 28 | nvidia,function = "i2s0"; | 59 | nvidia,function = "i2s0"; |
| 29 | nvidia,pull = <0>; | 60 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 30 | nvidia,tristate = <1>; | 61 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 31 | nvidia,enable-input = <1>; | 62 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 32 | }; | 63 | }; |
| 33 | dap1_dout_pn2 { | 64 | dap1_dout_pn2 { |
| 34 | nvidia,pins = "dap1_dout_pn2", | 65 | nvidia,pins = "dap1_dout_pn2", |
| 35 | "dap1_fs_pn0", | 66 | "dap1_fs_pn0", |
| 36 | "dap1_sclk_pn3"; | 67 | "dap1_sclk_pn3"; |
| 37 | nvidia,function = "i2s0"; | 68 | nvidia,function = "i2s0"; |
| 38 | nvidia,pull = <0>; | 69 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 39 | nvidia,tristate = <0>; | 70 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 40 | nvidia,enable-input = <1>; | 71 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 41 | }; | 72 | }; |
| 42 | dap2_din_pa4 { | 73 | dap2_din_pa4 { |
| 43 | nvidia,pins = "dap2_din_pa4"; | 74 | nvidia,pins = "dap2_din_pa4"; |
| 44 | nvidia,function = "i2s1"; | 75 | nvidia,function = "i2s1"; |
| 45 | nvidia,pull = <0>; | 76 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 46 | nvidia,tristate = <1>; | 77 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 47 | nvidia,enable-input = <1>; | 78 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 48 | }; | 79 | }; |
| 49 | dap2_dout_pa5 { | 80 | dap2_dout_pa5 { |
| 50 | nvidia,pins = "dap2_dout_pa5", | 81 | nvidia,pins = "dap2_dout_pa5", |
| 51 | "dap2_fs_pa2", | 82 | "dap2_fs_pa2", |
| 52 | "dap2_sclk_pa3"; | 83 | "dap2_sclk_pa3"; |
| 53 | nvidia,function = "i2s1"; | 84 | nvidia,function = "i2s1"; |
| 54 | nvidia,pull = <0>; | 85 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 55 | nvidia,tristate = <0>; | 86 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 56 | nvidia,enable-input = <1>; | 87 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 57 | }; | 88 | }; |
| 58 | dap4_din_pp5 { | 89 | dap4_din_pp5 { |
| 59 | nvidia,pins = "dap4_din_pp5", | 90 | nvidia,pins = "dap4_din_pp5", |
| @@ -61,17 +92,17 @@ | |||
| 61 | "dap4_fs_pp4", | 92 | "dap4_fs_pp4", |
| 62 | "dap4_sclk_pp7"; | 93 | "dap4_sclk_pp7"; |
| 63 | nvidia,function = "i2s3"; | 94 | nvidia,function = "i2s3"; |
| 64 | nvidia,pull = <0>; | 95 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 65 | nvidia,tristate = <0>; | 96 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 66 | nvidia,enable-input = <1>; | 97 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 67 | }; | 98 | }; |
| 68 | dvfs_pwm_px0 { | 99 | dvfs_pwm_px0 { |
| 69 | nvidia,pins = "dvfs_pwm_px0", | 100 | nvidia,pins = "dvfs_pwm_px0", |
| 70 | "dvfs_clk_px2"; | 101 | "dvfs_clk_px2"; |
| 71 | nvidia,function = "cldvfs"; | 102 | nvidia,function = "cldvfs"; |
| 72 | nvidia,pull = <0>; | 103 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 73 | nvidia,tristate = <0>; | 104 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 74 | nvidia,enable-input = <0>; | 105 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 75 | }; | 106 | }; |
| 76 | ulpi_clk_py0 { | 107 | ulpi_clk_py0 { |
| 77 | nvidia,pins = "ulpi_clk_py0", | 108 | nvidia,pins = "ulpi_clk_py0", |
| @@ -84,128 +115,128 @@ | |||
| 84 | "ulpi_data6_po7", | 115 | "ulpi_data6_po7", |
| 85 | "ulpi_data7_po0"; | 116 | "ulpi_data7_po0"; |
| 86 | nvidia,function = "ulpi"; | 117 | nvidia,function = "ulpi"; |
| 87 | nvidia,pull = <0>; | 118 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 88 | nvidia,tristate = <0>; | 119 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 89 | nvidia,enable-input = <1>; | 120 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 90 | }; | 121 | }; |
| 91 | ulpi_dir_py1 { | 122 | ulpi_dir_py1 { |
| 92 | nvidia,pins = "ulpi_dir_py1", | 123 | nvidia,pins = "ulpi_dir_py1", |
| 93 | "ulpi_nxt_py2"; | 124 | "ulpi_nxt_py2"; |
| 94 | nvidia,function = "ulpi"; | 125 | nvidia,function = "ulpi"; |
| 95 | nvidia,pull = <0>; | 126 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 96 | nvidia,tristate = <1>; | 127 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 97 | nvidia,enable-input = <1>; | 128 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 98 | }; | 129 | }; |
| 99 | ulpi_stp_py3 { | 130 | ulpi_stp_py3 { |
| 100 | nvidia,pins = "ulpi_stp_py3"; | 131 | nvidia,pins = "ulpi_stp_py3"; |
| 101 | nvidia,function = "ulpi"; | 132 | nvidia,function = "ulpi"; |
| 102 | nvidia,pull = <0>; | 133 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 103 | nvidia,tristate = <0>; | 134 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 104 | nvidia,enable-input = <0>; | 135 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 105 | }; | 136 | }; |
| 106 | cam_i2c_scl_pbb1 { | 137 | cam_i2c_scl_pbb1 { |
| 107 | nvidia,pins = "cam_i2c_scl_pbb1", | 138 | nvidia,pins = "cam_i2c_scl_pbb1", |
| 108 | "cam_i2c_sda_pbb2"; | 139 | "cam_i2c_sda_pbb2"; |
| 109 | nvidia,function = "i2c3"; | 140 | nvidia,function = "i2c3"; |
| 110 | nvidia,pull = <0>; | 141 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 111 | nvidia,tristate = <0>; | 142 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 112 | nvidia,enable-input = <1>; | 143 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 113 | nvidia,lock = <0>; | 144 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 114 | nvidia,open-drain = <0>; | 145 | nvidia,open-drain = <TEGRA_PIN_DISABLE>; |
| 115 | }; | 146 | }; |
| 116 | cam_mclk_pcc0 { | 147 | cam_mclk_pcc0 { |
| 117 | nvidia,pins = "cam_mclk_pcc0", | 148 | nvidia,pins = "cam_mclk_pcc0", |
| 118 | "pbb0"; | 149 | "pbb0"; |
| 119 | nvidia,function = "vi_alt3"; | 150 | nvidia,function = "vi_alt3"; |
| 120 | nvidia,pull = <0>; | 151 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 121 | nvidia,tristate = <0>; | 152 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 122 | nvidia,enable-input = <0>; | 153 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 123 | nvidia,lock = <0>; | 154 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 124 | }; | 155 | }; |
| 125 | gen2_i2c_scl_pt5 { | 156 | gen2_i2c_scl_pt5 { |
| 126 | nvidia,pins = "gen2_i2c_scl_pt5", | 157 | nvidia,pins = "gen2_i2c_scl_pt5", |
| 127 | "gen2_i2c_sda_pt6"; | 158 | "gen2_i2c_sda_pt6"; |
| 128 | nvidia,function = "i2c2"; | 159 | nvidia,function = "i2c2"; |
| 129 | nvidia,pull = <0>; | 160 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 130 | nvidia,tristate = <0>; | 161 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 131 | nvidia,enable-input = <1>; | 162 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 132 | nvidia,lock = <0>; | 163 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 133 | nvidia,open-drain = <0>; | 164 | nvidia,open-drain = <TEGRA_PIN_DISABLE>; |
| 134 | }; | 165 | }; |
| 135 | gmi_a16_pj7 { | 166 | gmi_a16_pj7 { |
| 136 | nvidia,pins = "gmi_a16_pj7"; | 167 | nvidia,pins = "gmi_a16_pj7"; |
| 137 | nvidia,function = "uartd"; | 168 | nvidia,function = "uartd"; |
| 138 | nvidia,pull = <0>; | 169 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 139 | nvidia,tristate = <0>; | 170 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 140 | nvidia,enable-input = <0>; | 171 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 141 | }; | 172 | }; |
| 142 | gmi_a17_pb0 { | 173 | gmi_a17_pb0 { |
| 143 | nvidia,pins = "gmi_a17_pb0", | 174 | nvidia,pins = "gmi_a17_pb0", |
| 144 | "gmi_a18_pb1"; | 175 | "gmi_a18_pb1"; |
| 145 | nvidia,function = "uartd"; | 176 | nvidia,function = "uartd"; |
| 146 | nvidia,pull = <0>; | 177 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 147 | nvidia,tristate = <1>; | 178 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 148 | nvidia,enable-input = <1>; | 179 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 149 | }; | 180 | }; |
| 150 | gmi_a19_pk7 { | 181 | gmi_a19_pk7 { |
| 151 | nvidia,pins = "gmi_a19_pk7"; | 182 | nvidia,pins = "gmi_a19_pk7"; |
| 152 | nvidia,function = "uartd"; | 183 | nvidia,function = "uartd"; |
| 153 | nvidia,pull = <0>; | 184 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 154 | nvidia,tristate = <0>; | 185 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 155 | nvidia,enable-input = <0>; | 186 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 156 | }; | 187 | }; |
| 157 | gmi_ad5_pg5 { | 188 | gmi_ad5_pg5 { |
| 158 | nvidia,pins = "gmi_ad5_pg5", | 189 | nvidia,pins = "gmi_ad5_pg5", |
| 159 | "gmi_cs6_n_pi3", | 190 | "gmi_cs6_n_pi3", |
| 160 | "gmi_wr_n_pi0"; | 191 | "gmi_wr_n_pi0"; |
| 161 | nvidia,function = "spi4"; | 192 | nvidia,function = "spi4"; |
| 162 | nvidia,pull = <0>; | 193 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 163 | nvidia,tristate = <0>; | 194 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 164 | nvidia,enable-input = <1>; | 195 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 165 | }; | 196 | }; |
| 166 | gmi_ad6_pg6 { | 197 | gmi_ad6_pg6 { |
| 167 | nvidia,pins = "gmi_ad6_pg6", | 198 | nvidia,pins = "gmi_ad6_pg6", |
| 168 | "gmi_ad7_pg7"; | 199 | "gmi_ad7_pg7"; |
| 169 | nvidia,function = "spi4"; | 200 | nvidia,function = "spi4"; |
| 170 | nvidia,pull = <2>; | 201 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 171 | nvidia,tristate = <0>; | 202 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 172 | nvidia,enable-input = <1>; | 203 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 173 | }; | 204 | }; |
| 174 | gmi_ad12_ph4 { | 205 | gmi_ad12_ph4 { |
| 175 | nvidia,pins = "gmi_ad12_ph4"; | 206 | nvidia,pins = "gmi_ad12_ph4"; |
| 176 | nvidia,function = "rsvd4"; | 207 | nvidia,function = "rsvd4"; |
| 177 | nvidia,pull = <0>; | 208 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 178 | nvidia,tristate = <0>; | 209 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 179 | nvidia,enable-input = <0>; | 210 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 180 | }; | 211 | }; |
| 181 | gmi_ad9_ph1 { | 212 | gmi_ad9_ph1 { |
| 182 | nvidia,pins = "gmi_ad9_ph1"; | 213 | nvidia,pins = "gmi_ad9_ph1"; |
| 183 | nvidia,function = "pwm1"; | 214 | nvidia,function = "pwm1"; |
| 184 | nvidia,pull = <0>; | 215 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 185 | nvidia,tristate = <0>; | 216 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 186 | nvidia,enable-input = <0>; | 217 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 187 | }; | 218 | }; |
| 188 | gmi_cs1_n_pj2 { | 219 | gmi_cs1_n_pj2 { |
| 189 | nvidia,pins = "gmi_cs1_n_pj2", | 220 | nvidia,pins = "gmi_cs1_n_pj2", |
| 190 | "gmi_oe_n_pi1"; | 221 | "gmi_oe_n_pi1"; |
| 191 | nvidia,function = "soc"; | 222 | nvidia,function = "soc"; |
| 192 | nvidia,pull = <0>; | 223 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 193 | nvidia,tristate = <1>; | 224 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 194 | nvidia,enable-input = <1>; | 225 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 195 | }; | 226 | }; |
| 196 | clk2_out_pw5 { | 227 | clk2_out_pw5 { |
| 197 | nvidia,pins = "clk2_out_pw5"; | 228 | nvidia,pins = "clk2_out_pw5"; |
| 198 | nvidia,function = "extperiph2"; | 229 | nvidia,function = "extperiph2"; |
| 199 | nvidia,pull = <0>; | 230 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 200 | nvidia,tristate = <0>; | 231 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 201 | nvidia,enable-input = <0>; | 232 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 202 | }; | 233 | }; |
| 203 | sdmmc1_clk_pz0 { | 234 | sdmmc1_clk_pz0 { |
| 204 | nvidia,pins = "sdmmc1_clk_pz0"; | 235 | nvidia,pins = "sdmmc1_clk_pz0"; |
| 205 | nvidia,function = "sdmmc1"; | 236 | nvidia,function = "sdmmc1"; |
| 206 | nvidia,pull = <0>; | 237 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 207 | nvidia,tristate = <0>; | 238 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 208 | nvidia,enable-input = <1>; | 239 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 209 | }; | 240 | }; |
| 210 | sdmmc1_cmd_pz1 { | 241 | sdmmc1_cmd_pz1 { |
| 211 | nvidia,pins = "sdmmc1_cmd_pz1", | 242 | nvidia,pins = "sdmmc1_cmd_pz1", |
| @@ -214,23 +245,23 @@ | |||
| 214 | "sdmmc1_dat2_py5", | 245 | "sdmmc1_dat2_py5", |
| 215 | "sdmmc1_dat3_py4"; | 246 | "sdmmc1_dat3_py4"; |
| 216 | nvidia,function = "sdmmc1"; | 247 | nvidia,function = "sdmmc1"; |
| 217 | nvidia,pull = <2>; | 248 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 218 | nvidia,tristate = <0>; | 249 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 219 | nvidia,enable-input = <1>; | 250 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 220 | }; | 251 | }; |
| 221 | sdmmc1_wp_n_pv3 { | 252 | sdmmc1_wp_n_pv3 { |
| 222 | nvidia,pins = "sdmmc1_wp_n_pv3"; | 253 | nvidia,pins = "sdmmc1_wp_n_pv3"; |
| 223 | nvidia,function = "spi4"; | 254 | nvidia,function = "spi4"; |
| 224 | nvidia,pull = <2>; | 255 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 225 | nvidia,tristate = <0>; | 256 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 226 | nvidia,enable-input = <0>; | 257 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 227 | }; | 258 | }; |
| 228 | sdmmc3_clk_pa6 { | 259 | sdmmc3_clk_pa6 { |
| 229 | nvidia,pins = "sdmmc3_clk_pa6"; | 260 | nvidia,pins = "sdmmc3_clk_pa6"; |
| 230 | nvidia,function = "sdmmc3"; | 261 | nvidia,function = "sdmmc3"; |
| 231 | nvidia,pull = <0>; | 262 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 232 | nvidia,tristate = <0>; | 263 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 233 | nvidia,enable-input = <1>; | 264 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 234 | }; | 265 | }; |
| 235 | sdmmc3_cmd_pa7 { | 266 | sdmmc3_cmd_pa7 { |
| 236 | nvidia,pins = "sdmmc3_cmd_pa7", | 267 | nvidia,pins = "sdmmc3_cmd_pa7", |
| @@ -242,16 +273,16 @@ | |||
| 242 | "sdmmc3_clk_lb_out_pee4", | 273 | "sdmmc3_clk_lb_out_pee4", |
| 243 | "sdmmc3_clk_lb_in_pee5"; | 274 | "sdmmc3_clk_lb_in_pee5"; |
| 244 | nvidia,function = "sdmmc3"; | 275 | nvidia,function = "sdmmc3"; |
| 245 | nvidia,pull = <2>; | 276 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 246 | nvidia,tristate = <0>; | 277 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 247 | nvidia,enable-input = <1>; | 278 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 248 | }; | 279 | }; |
| 249 | sdmmc4_clk_pcc4 { | 280 | sdmmc4_clk_pcc4 { |
| 250 | nvidia,pins = "sdmmc4_clk_pcc4"; | 281 | nvidia,pins = "sdmmc4_clk_pcc4"; |
| 251 | nvidia,function = "sdmmc4"; | 282 | nvidia,function = "sdmmc4"; |
| 252 | nvidia,pull = <0>; | 283 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 253 | nvidia,tristate = <0>; | 284 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 254 | nvidia,enable-input = <1>; | 285 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 255 | }; | 286 | }; |
| 256 | sdmmc4_cmd_pt7 { | 287 | sdmmc4_cmd_pt7 { |
| 257 | nvidia,pins = "sdmmc4_cmd_pt7", | 288 | nvidia,pins = "sdmmc4_cmd_pt7", |
| @@ -264,16 +295,16 @@ | |||
| 264 | "sdmmc4_dat6_paa6", | 295 | "sdmmc4_dat6_paa6", |
| 265 | "sdmmc4_dat7_paa7"; | 296 | "sdmmc4_dat7_paa7"; |
| 266 | nvidia,function = "sdmmc4"; | 297 | nvidia,function = "sdmmc4"; |
| 267 | nvidia,pull = <2>; | 298 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 268 | nvidia,tristate = <0>; | 299 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 269 | nvidia,enable-input = <1>; | 300 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 270 | }; | 301 | }; |
| 271 | clk_32k_out_pa0 { | 302 | clk_32k_out_pa0 { |
| 272 | nvidia,pins = "clk_32k_out_pa0"; | 303 | nvidia,pins = "clk_32k_out_pa0"; |
| 273 | nvidia,function = "blink"; | 304 | nvidia,function = "blink"; |
| 274 | nvidia,pull = <0>; | 305 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 275 | nvidia,tristate = <0>; | 306 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 276 | nvidia,enable-input = <0>; | 307 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 277 | }; | 308 | }; |
| 278 | kb_col0_pq0 { | 309 | kb_col0_pq0 { |
| 279 | nvidia,pins = "kb_col0_pq0", | 310 | nvidia,pins = "kb_col0_pq0", |
| @@ -283,265 +314,265 @@ | |||
| 283 | "kb_row1_pr1", | 314 | "kb_row1_pr1", |
| 284 | "kb_row2_pr2"; | 315 | "kb_row2_pr2"; |
| 285 | nvidia,function = "kbc"; | 316 | nvidia,function = "kbc"; |
| 286 | nvidia,pull = <2>; | 317 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 287 | nvidia,tristate = <0>; | 318 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 288 | nvidia,enable-input = <1>; | 319 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 289 | }; | 320 | }; |
| 290 | dap3_din_pp1 { | 321 | dap3_din_pp1 { |
| 291 | nvidia,pins = "dap3_din_pp1", | 322 | nvidia,pins = "dap3_din_pp1", |
| 292 | "dap3_sclk_pp3"; | 323 | "dap3_sclk_pp3"; |
| 293 | nvidia,function = "displayb"; | 324 | nvidia,function = "displayb"; |
| 294 | nvidia,pull = <0>; | 325 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 295 | nvidia,tristate = <1>; | 326 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 296 | nvidia,enable-input = <0>; | 327 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 297 | }; | 328 | }; |
| 298 | pv0 { | 329 | pv0 { |
| 299 | nvidia,pins = "pv0"; | 330 | nvidia,pins = "pv0"; |
| 300 | nvidia,function = "rsvd4"; | 331 | nvidia,function = "rsvd4"; |
| 301 | nvidia,pull = <0>; | 332 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 302 | nvidia,tristate = <1>; | 333 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 303 | nvidia,enable-input = <0>; | 334 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 304 | }; | 335 | }; |
| 305 | kb_row7_pr7 { | 336 | kb_row7_pr7 { |
| 306 | nvidia,pins = "kb_row7_pr7"; | 337 | nvidia,pins = "kb_row7_pr7"; |
| 307 | nvidia,function = "rsvd2"; | 338 | nvidia,function = "rsvd2"; |
| 308 | nvidia,pull = <2>; | 339 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 309 | nvidia,tristate = <0>; | 340 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 310 | nvidia,enable-input = <1>; | 341 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 311 | }; | 342 | }; |
| 312 | kb_row10_ps2 { | 343 | kb_row10_ps2 { |
| 313 | nvidia,pins = "kb_row10_ps2"; | 344 | nvidia,pins = "kb_row10_ps2"; |
| 314 | nvidia,function = "uarta"; | 345 | nvidia,function = "uarta"; |
| 315 | nvidia,pull = <0>; | 346 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 316 | nvidia,tristate = <1>; | 347 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 317 | nvidia,enable-input = <1>; | 348 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 318 | }; | 349 | }; |
| 319 | kb_row9_ps1 { | 350 | kb_row9_ps1 { |
| 320 | nvidia,pins = "kb_row9_ps1"; | 351 | nvidia,pins = "kb_row9_ps1"; |
| 321 | nvidia,function = "uarta"; | 352 | nvidia,function = "uarta"; |
| 322 | nvidia,pull = <0>; | 353 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 323 | nvidia,tristate = <0>; | 354 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 324 | nvidia,enable-input = <0>; | 355 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 325 | }; | 356 | }; |
| 326 | pwr_i2c_scl_pz6 { | 357 | pwr_i2c_scl_pz6 { |
| 327 | nvidia,pins = "pwr_i2c_scl_pz6", | 358 | nvidia,pins = "pwr_i2c_scl_pz6", |
| 328 | "pwr_i2c_sda_pz7"; | 359 | "pwr_i2c_sda_pz7"; |
| 329 | nvidia,function = "i2cpwr"; | 360 | nvidia,function = "i2cpwr"; |
| 330 | nvidia,pull = <0>; | 361 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 331 | nvidia,tristate = <0>; | 362 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 332 | nvidia,enable-input = <1>; | 363 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 333 | nvidia,lock = <0>; | 364 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 334 | nvidia,open-drain = <0>; | 365 | nvidia,open-drain = <TEGRA_PIN_DISABLE>; |
| 335 | }; | 366 | }; |
| 336 | sys_clk_req_pz5 { | 367 | sys_clk_req_pz5 { |
| 337 | nvidia,pins = "sys_clk_req_pz5"; | 368 | nvidia,pins = "sys_clk_req_pz5"; |
| 338 | nvidia,function = "sysclk"; | 369 | nvidia,function = "sysclk"; |
| 339 | nvidia,pull = <0>; | 370 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 340 | nvidia,tristate = <0>; | 371 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 341 | nvidia,enable-input = <0>; | 372 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 342 | }; | 373 | }; |
| 343 | core_pwr_req { | 374 | core_pwr_req { |
| 344 | nvidia,pins = "core_pwr_req"; | 375 | nvidia,pins = "core_pwr_req"; |
| 345 | nvidia,function = "pwron"; | 376 | nvidia,function = "pwron"; |
| 346 | nvidia,pull = <0>; | 377 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 347 | nvidia,tristate = <0>; | 378 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 348 | nvidia,enable-input = <0>; | 379 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 349 | }; | 380 | }; |
| 350 | cpu_pwr_req { | 381 | cpu_pwr_req { |
| 351 | nvidia,pins = "cpu_pwr_req"; | 382 | nvidia,pins = "cpu_pwr_req"; |
| 352 | nvidia,function = "cpu"; | 383 | nvidia,function = "cpu"; |
| 353 | nvidia,pull = <0>; | 384 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 354 | nvidia,tristate = <0>; | 385 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 355 | nvidia,enable-input = <0>; | 386 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 356 | }; | 387 | }; |
| 357 | pwr_int_n { | 388 | pwr_int_n { |
| 358 | nvidia,pins = "pwr_int_n"; | 389 | nvidia,pins = "pwr_int_n"; |
| 359 | nvidia,function = "pmi"; | 390 | nvidia,function = "pmi"; |
| 360 | nvidia,pull = <0>; | 391 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 361 | nvidia,tristate = <1>; | 392 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 362 | nvidia,enable-input = <1>; | 393 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 363 | }; | 394 | }; |
| 364 | reset_out_n { | 395 | reset_out_n { |
| 365 | nvidia,pins = "reset_out_n"; | 396 | nvidia,pins = "reset_out_n"; |
| 366 | nvidia,function = "reset_out_n"; | 397 | nvidia,function = "reset_out_n"; |
| 367 | nvidia,pull = <0>; | 398 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 368 | nvidia,tristate = <0>; | 399 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 369 | nvidia,enable-input = <0>; | 400 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 370 | }; | 401 | }; |
| 371 | clk3_out_pee0 { | 402 | clk3_out_pee0 { |
| 372 | nvidia,pins = "clk3_out_pee0"; | 403 | nvidia,pins = "clk3_out_pee0"; |
| 373 | nvidia,function = "extperiph3"; | 404 | nvidia,function = "extperiph3"; |
| 374 | nvidia,pull = <0>; | 405 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 375 | nvidia,tristate = <0>; | 406 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 376 | nvidia,enable-input = <0>; | 407 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 377 | }; | 408 | }; |
| 378 | gen1_i2c_scl_pc4 { | 409 | gen1_i2c_scl_pc4 { |
| 379 | nvidia,pins = "gen1_i2c_scl_pc4", | 410 | nvidia,pins = "gen1_i2c_scl_pc4", |
| 380 | "gen1_i2c_sda_pc5"; | 411 | "gen1_i2c_sda_pc5"; |
| 381 | nvidia,function = "i2c1"; | 412 | nvidia,function = "i2c1"; |
| 382 | nvidia,pull = <0>; | 413 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 383 | nvidia,tristate = <0>; | 414 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 384 | nvidia,enable-input = <1>; | 415 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 385 | nvidia,lock = <0>; | 416 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 386 | nvidia,open-drain = <0>; | 417 | nvidia,open-drain = <TEGRA_PIN_DISABLE>; |
| 387 | }; | 418 | }; |
| 388 | uart2_cts_n_pj5 { | 419 | uart2_cts_n_pj5 { |
| 389 | nvidia,pins = "uart2_cts_n_pj5"; | 420 | nvidia,pins = "uart2_cts_n_pj5"; |
| 390 | nvidia,function = "uartb"; | 421 | nvidia,function = "uartb"; |
| 391 | nvidia,pull = <0>; | 422 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 392 | nvidia,tristate = <1>; | 423 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 393 | nvidia,enable-input = <1>; | 424 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 394 | }; | 425 | }; |
| 395 | uart2_rts_n_pj6 { | 426 | uart2_rts_n_pj6 { |
| 396 | nvidia,pins = "uart2_rts_n_pj6"; | 427 | nvidia,pins = "uart2_rts_n_pj6"; |
| 397 | nvidia,function = "uartb"; | 428 | nvidia,function = "uartb"; |
| 398 | nvidia,pull = <0>; | 429 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 399 | nvidia,tristate = <0>; | 430 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 400 | nvidia,enable-input = <0>; | 431 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 401 | }; | 432 | }; |
| 402 | uart2_rxd_pc3 { | 433 | uart2_rxd_pc3 { |
| 403 | nvidia,pins = "uart2_rxd_pc3"; | 434 | nvidia,pins = "uart2_rxd_pc3"; |
| 404 | nvidia,function = "irda"; | 435 | nvidia,function = "irda"; |
| 405 | nvidia,pull = <0>; | 436 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 406 | nvidia,tristate = <1>; | 437 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 407 | nvidia,enable-input = <1>; | 438 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 408 | }; | 439 | }; |
| 409 | uart2_txd_pc2 { | 440 | uart2_txd_pc2 { |
| 410 | nvidia,pins = "uart2_txd_pc2"; | 441 | nvidia,pins = "uart2_txd_pc2"; |
| 411 | nvidia,function = "irda"; | 442 | nvidia,function = "irda"; |
| 412 | nvidia,pull = <0>; | 443 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 413 | nvidia,tristate = <0>; | 444 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 414 | nvidia,enable-input = <0>; | 445 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 415 | }; | 446 | }; |
| 416 | uart3_cts_n_pa1 { | 447 | uart3_cts_n_pa1 { |
| 417 | nvidia,pins = "uart3_cts_n_pa1", | 448 | nvidia,pins = "uart3_cts_n_pa1", |
| 418 | "uart3_rxd_pw7"; | 449 | "uart3_rxd_pw7"; |
| 419 | nvidia,function = "uartc"; | 450 | nvidia,function = "uartc"; |
| 420 | nvidia,pull = <0>; | 451 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 421 | nvidia,tristate = <1>; | 452 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 422 | nvidia,enable-input = <1>; | 453 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 423 | }; | 454 | }; |
| 424 | uart3_rts_n_pc0 { | 455 | uart3_rts_n_pc0 { |
| 425 | nvidia,pins = "uart3_rts_n_pc0", | 456 | nvidia,pins = "uart3_rts_n_pc0", |
| 426 | "uart3_txd_pw6"; | 457 | "uart3_txd_pw6"; |
| 427 | nvidia,function = "uartc"; | 458 | nvidia,function = "uartc"; |
| 428 | nvidia,pull = <0>; | 459 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 429 | nvidia,tristate = <0>; | 460 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 430 | nvidia,enable-input = <0>; | 461 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 431 | }; | 462 | }; |
| 432 | owr { | 463 | owr { |
| 433 | nvidia,pins = "owr"; | 464 | nvidia,pins = "owr"; |
| 434 | nvidia,function = "owr"; | 465 | nvidia,function = "owr"; |
| 435 | nvidia,pull = <0>; | 466 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 436 | nvidia,tristate = <0>; | 467 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 437 | nvidia,enable-input = <1>; | 468 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 438 | }; | 469 | }; |
| 439 | hdmi_cec_pee3 { | 470 | hdmi_cec_pee3 { |
| 440 | nvidia,pins = "hdmi_cec_pee3"; | 471 | nvidia,pins = "hdmi_cec_pee3"; |
| 441 | nvidia,function = "cec"; | 472 | nvidia,function = "cec"; |
| 442 | nvidia,pull = <0>; | 473 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 443 | nvidia,tristate = <0>; | 474 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 444 | nvidia,enable-input = <1>; | 475 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 445 | nvidia,lock = <0>; | 476 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 446 | nvidia,open-drain = <0>; | 477 | nvidia,open-drain = <TEGRA_PIN_DISABLE>; |
| 447 | }; | 478 | }; |
| 448 | ddc_scl_pv4 { | 479 | ddc_scl_pv4 { |
| 449 | nvidia,pins = "ddc_scl_pv4", | 480 | nvidia,pins = "ddc_scl_pv4", |
| 450 | "ddc_sda_pv5"; | 481 | "ddc_sda_pv5"; |
| 451 | nvidia,function = "i2c4"; | 482 | nvidia,function = "i2c4"; |
| 452 | nvidia,pull = <0>; | 483 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 453 | nvidia,tristate = <0>; | 484 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 454 | nvidia,enable-input = <1>; | 485 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 455 | nvidia,lock = <0>; | 486 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 456 | nvidia,rcv-sel = <1>; | 487 | nvidia,rcv-sel = <TEGRA_PIN_ENABLE>; |
| 457 | }; | 488 | }; |
| 458 | spdif_in_pk6 { | 489 | spdif_in_pk6 { |
| 459 | nvidia,pins = "spdif_in_pk6"; | 490 | nvidia,pins = "spdif_in_pk6"; |
| 460 | nvidia,function = "usb"; | 491 | nvidia,function = "usb"; |
| 461 | nvidia,pull = <2>; | 492 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 462 | nvidia,tristate = <0>; | 493 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 463 | nvidia,enable-input = <1>; | 494 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 464 | nvidia,lock = <0>; | 495 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 465 | }; | 496 | }; |
| 466 | usb_vbus_en0_pn4 { | 497 | usb_vbus_en0_pn4 { |
| 467 | nvidia,pins = "usb_vbus_en0_pn4"; | 498 | nvidia,pins = "usb_vbus_en0_pn4"; |
| 468 | nvidia,function = "usb"; | 499 | nvidia,function = "usb"; |
| 469 | nvidia,pull = <2>; | 500 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 470 | nvidia,tristate = <0>; | 501 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 471 | nvidia,enable-input = <1>; | 502 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 472 | nvidia,lock = <0>; | 503 | nvidia,lock = <TEGRA_PIN_DISABLE>; |
| 473 | nvidia,open-drain = <1>; | 504 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; |
| 474 | }; | 505 | }; |
| 475 | gpio_x6_aud_px6 { | 506 | gpio_x6_aud_px6 { |
| 476 | nvidia,pins = "gpio_x6_aud_px6"; | 507 | nvidia,pins = "gpio_x6_aud_px6"; |
| 477 | nvidia,function = "spi6"; | 508 | nvidia,function = "spi6"; |
| 478 | nvidia,pull = <2>; | 509 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 479 | nvidia,tristate = <1>; | 510 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 480 | nvidia,enable-input = <1>; | 511 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 481 | }; | 512 | }; |
| 482 | gpio_x4_aud_px4 { | 513 | gpio_x4_aud_px4 { |
| 483 | nvidia,pins = "gpio_x4_aud_px4", | 514 | nvidia,pins = "gpio_x4_aud_px4", |
| 484 | "gpio_x7_aud_px7"; | 515 | "gpio_x7_aud_px7"; |
| 485 | nvidia,function = "rsvd1"; | 516 | nvidia,function = "rsvd1"; |
| 486 | nvidia,pull = <1>; | 517 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 487 | nvidia,tristate = <0>; | 518 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 488 | nvidia,enable-input = <0>; | 519 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 489 | }; | 520 | }; |
| 490 | gpio_x5_aud_px5 { | 521 | gpio_x5_aud_px5 { |
| 491 | nvidia,pins = "gpio_x5_aud_px5"; | 522 | nvidia,pins = "gpio_x5_aud_px5"; |
| 492 | nvidia,function = "rsvd1"; | 523 | nvidia,function = "rsvd1"; |
| 493 | nvidia,pull = <2>; | 524 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 494 | nvidia,tristate = <0>; | 525 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 495 | nvidia,enable-input = <1>; | 526 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 496 | }; | 527 | }; |
| 497 | gpio_w2_aud_pw2 { | 528 | gpio_w2_aud_pw2 { |
| 498 | nvidia,pins = "gpio_w2_aud_pw2"; | 529 | nvidia,pins = "gpio_w2_aud_pw2"; |
| 499 | nvidia,function = "rsvd2"; | 530 | nvidia,function = "rsvd2"; |
| 500 | nvidia,pull = <2>; | 531 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 501 | nvidia,tristate = <0>; | 532 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 502 | nvidia,enable-input = <1>; | 533 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 503 | }; | 534 | }; |
| 504 | gpio_w3_aud_pw3 { | 535 | gpio_w3_aud_pw3 { |
| 505 | nvidia,pins = "gpio_w3_aud_pw3"; | 536 | nvidia,pins = "gpio_w3_aud_pw3"; |
| 506 | nvidia,function = "spi6"; | 537 | nvidia,function = "spi6"; |
| 507 | nvidia,pull = <2>; | 538 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 508 | nvidia,tristate = <0>; | 539 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 509 | nvidia,enable-input = <1>; | 540 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 510 | }; | 541 | }; |
| 511 | gpio_x1_aud_px1 { | 542 | gpio_x1_aud_px1 { |
| 512 | nvidia,pins = "gpio_x1_aud_px1"; | 543 | nvidia,pins = "gpio_x1_aud_px1"; |
| 513 | nvidia,function = "rsvd4"; | 544 | nvidia,function = "rsvd4"; |
| 514 | nvidia,pull = <1>; | 545 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 515 | nvidia,tristate = <0>; | 546 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 516 | nvidia,enable-input = <1>; | 547 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 517 | }; | 548 | }; |
| 518 | gpio_x3_aud_px3 { | 549 | gpio_x3_aud_px3 { |
| 519 | nvidia,pins = "gpio_x3_aud_px3"; | 550 | nvidia,pins = "gpio_x3_aud_px3"; |
| 520 | nvidia,function = "rsvd4"; | 551 | nvidia,function = "rsvd4"; |
| 521 | nvidia,pull = <2>; | 552 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 522 | nvidia,tristate = <0>; | 553 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 523 | nvidia,enable-input = <1>; | 554 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 524 | }; | 555 | }; |
| 525 | dap3_fs_pp0 { | 556 | dap3_fs_pp0 { |
| 526 | nvidia,pins = "dap3_fs_pp0"; | 557 | nvidia,pins = "dap3_fs_pp0"; |
| 527 | nvidia,function = "i2s2"; | 558 | nvidia,function = "i2s2"; |
| 528 | nvidia,pull = <1>; | 559 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 529 | nvidia,tristate = <0>; | 560 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 530 | nvidia,enable-input = <0>; | 561 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 531 | }; | 562 | }; |
| 532 | dap3_dout_pp2 { | 563 | dap3_dout_pp2 { |
| 533 | nvidia,pins = "dap3_dout_pp2"; | 564 | nvidia,pins = "dap3_dout_pp2"; |
| 534 | nvidia,function = "i2s2"; | 565 | nvidia,function = "i2s2"; |
| 535 | nvidia,pull = <1>; | 566 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 536 | nvidia,tristate = <0>; | 567 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 537 | nvidia,enable-input = <0>; | 568 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 538 | }; | 569 | }; |
| 539 | pv1 { | 570 | pv1 { |
| 540 | nvidia,pins = "pv1"; | 571 | nvidia,pins = "pv1"; |
| 541 | nvidia,function = "rsvd1"; | 572 | nvidia,function = "rsvd1"; |
| 542 | nvidia,pull = <0>; | 573 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 543 | nvidia,tristate = <0>; | 574 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 544 | nvidia,enable-input = <1>; | 575 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 545 | }; | 576 | }; |
| 546 | pbb3 { | 577 | pbb3 { |
| 547 | nvidia,pins = "pbb3", | 578 | nvidia,pins = "pbb3", |
| @@ -549,25 +580,25 @@ | |||
| 549 | "pbb6", | 580 | "pbb6", |
| 550 | "pbb7"; | 581 | "pbb7"; |
| 551 | nvidia,function = "rsvd4"; | 582 | nvidia,function = "rsvd4"; |
| 552 | nvidia,pull = <1>; | 583 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 553 | nvidia,tristate = <0>; | 584 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 554 | nvidia,enable-input = <0>; | 585 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 555 | }; | 586 | }; |
| 556 | pcc1 { | 587 | pcc1 { |
| 557 | nvidia,pins = "pcc1", | 588 | nvidia,pins = "pcc1", |
| 558 | "pcc2"; | 589 | "pcc2"; |
| 559 | nvidia,function = "rsvd4"; | 590 | nvidia,function = "rsvd4"; |
| 560 | nvidia,pull = <1>; | 591 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 561 | nvidia,tristate = <0>; | 592 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 562 | nvidia,enable-input = <1>; | 593 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 563 | }; | 594 | }; |
| 564 | gmi_ad0_pg0 { | 595 | gmi_ad0_pg0 { |
| 565 | nvidia,pins = "gmi_ad0_pg0", | 596 | nvidia,pins = "gmi_ad0_pg0", |
| 566 | "gmi_ad1_pg1"; | 597 | "gmi_ad1_pg1"; |
| 567 | nvidia,function = "gmi"; | 598 | nvidia,function = "gmi"; |
| 568 | nvidia,pull = <0>; | 599 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 569 | nvidia,tristate = <0>; | 600 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 570 | nvidia,enable-input = <0>; | 601 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 571 | }; | 602 | }; |
| 572 | gmi_ad10_ph2 { | 603 | gmi_ad10_ph2 { |
| 573 | nvidia,pins = "gmi_ad10_ph2", | 604 | nvidia,pins = "gmi_ad10_ph2", |
| @@ -576,17 +607,17 @@ | |||
| 576 | "gmi_ad8_ph0", | 607 | "gmi_ad8_ph0", |
| 577 | "gmi_clk_pk1"; | 608 | "gmi_clk_pk1"; |
| 578 | nvidia,function = "gmi"; | 609 | nvidia,function = "gmi"; |
| 579 | nvidia,pull = <1>; | 610 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 580 | nvidia,tristate = <0>; | 611 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 581 | nvidia,enable-input = <0>; | 612 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 582 | }; | 613 | }; |
| 583 | gmi_ad2_pg2 { | 614 | gmi_ad2_pg2 { |
| 584 | nvidia,pins = "gmi_ad2_pg2", | 615 | nvidia,pins = "gmi_ad2_pg2", |
| 585 | "gmi_ad3_pg3"; | 616 | "gmi_ad3_pg3"; |
| 586 | nvidia,function = "gmi"; | 617 | nvidia,function = "gmi"; |
| 587 | nvidia,pull = <0>; | 618 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 588 | nvidia,tristate = <0>; | 619 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 589 | nvidia,enable-input = <1>; | 620 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 590 | }; | 621 | }; |
| 591 | gmi_adv_n_pk0 { | 622 | gmi_adv_n_pk0 { |
| 592 | nvidia,pins = "gmi_adv_n_pk0", | 623 | nvidia,pins = "gmi_adv_n_pk0", |
| @@ -598,39 +629,39 @@ | |||
| 598 | "gmi_iordy_pi5", | 629 | "gmi_iordy_pi5", |
| 599 | "gmi_wp_n_pc7"; | 630 | "gmi_wp_n_pc7"; |
| 600 | nvidia,function = "gmi"; | 631 | nvidia,function = "gmi"; |
| 601 | nvidia,pull = <2>; | 632 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 602 | nvidia,tristate = <0>; | 633 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 603 | nvidia,enable-input = <1>; | 634 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 604 | }; | 635 | }; |
| 605 | gmi_cs3_n_pk4 { | 636 | gmi_cs3_n_pk4 { |
| 606 | nvidia,pins = "gmi_cs3_n_pk4"; | 637 | nvidia,pins = "gmi_cs3_n_pk4"; |
| 607 | nvidia,function = "gmi"; | 638 | nvidia,function = "gmi"; |
| 608 | nvidia,pull = <2>; | 639 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 609 | nvidia,tristate = <0>; | 640 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 610 | nvidia,enable-input = <0>; | 641 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 611 | }; | 642 | }; |
| 612 | clk2_req_pcc5 { | 643 | clk2_req_pcc5 { |
| 613 | nvidia,pins = "clk2_req_pcc5"; | 644 | nvidia,pins = "clk2_req_pcc5"; |
| 614 | nvidia,function = "rsvd4"; | 645 | nvidia,function = "rsvd4"; |
| 615 | nvidia,pull = <0>; | 646 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 616 | nvidia,tristate = <0>; | 647 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 617 | nvidia,enable-input = <0>; | 648 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 618 | }; | 649 | }; |
| 619 | kb_col3_pq3 { | 650 | kb_col3_pq3 { |
| 620 | nvidia,pins = "kb_col3_pq3", | 651 | nvidia,pins = "kb_col3_pq3", |
| 621 | "kb_col6_pq6", | 652 | "kb_col6_pq6", |
| 622 | "kb_col7_pq7"; | 653 | "kb_col7_pq7"; |
| 623 | nvidia,function = "kbc"; | 654 | nvidia,function = "kbc"; |
| 624 | nvidia,pull = <2>; | 655 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 625 | nvidia,tristate = <0>; | 656 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 626 | nvidia,enable-input = <0>; | 657 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 627 | }; | 658 | }; |
| 628 | kb_col5_pq5 { | 659 | kb_col5_pq5 { |
| 629 | nvidia,pins = "kb_col5_pq5"; | 660 | nvidia,pins = "kb_col5_pq5"; |
| 630 | nvidia,function = "kbc"; | 661 | nvidia,function = "kbc"; |
| 631 | nvidia,pull = <2>; | 662 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 632 | nvidia,tristate = <0>; | 663 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 633 | nvidia,enable-input = <1>; | 664 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 634 | }; | 665 | }; |
| 635 | kb_row3_pr3 { | 666 | kb_row3_pr3 { |
| 636 | nvidia,pins = "kb_row3_pr3", | 667 | nvidia,pins = "kb_row3_pr3", |
| @@ -638,77 +669,77 @@ | |||
| 638 | "kb_row6_pr6", | 669 | "kb_row6_pr6", |
| 639 | "kb_row8_ps0"; | 670 | "kb_row8_ps0"; |
| 640 | nvidia,function = "kbc"; | 671 | nvidia,function = "kbc"; |
| 641 | nvidia,pull = <1>; | 672 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 642 | nvidia,tristate = <0>; | 673 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 643 | nvidia,enable-input = <1>; | 674 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 644 | }; | 675 | }; |
| 645 | clk3_req_pee1 { | 676 | clk3_req_pee1 { |
| 646 | nvidia,pins = "clk3_req_pee1"; | 677 | nvidia,pins = "clk3_req_pee1"; |
| 647 | nvidia,function = "rsvd4"; | 678 | nvidia,function = "rsvd4"; |
| 648 | nvidia,pull = <0>; | 679 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 649 | nvidia,tristate = <0>; | 680 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 650 | nvidia,enable-input = <0>; | 681 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 651 | }; | 682 | }; |
| 652 | pu4 { | 683 | pu4 { |
| 653 | nvidia,pins = "pu4"; | 684 | nvidia,pins = "pu4"; |
| 654 | nvidia,function = "displayb"; | 685 | nvidia,function = "displayb"; |
| 655 | nvidia,pull = <0>; | 686 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 656 | nvidia,tristate = <0>; | 687 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 657 | nvidia,enable-input = <0>; | 688 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 658 | }; | 689 | }; |
| 659 | pu5 { | 690 | pu5 { |
| 660 | nvidia,pins = "pu5", | 691 | nvidia,pins = "pu5", |
| 661 | "pu6"; | 692 | "pu6"; |
| 662 | nvidia,function = "displayb"; | 693 | nvidia,function = "displayb"; |
| 663 | nvidia,pull = <0>; | 694 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 664 | nvidia,tristate = <0>; | 695 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 665 | nvidia,enable-input = <1>; | 696 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 666 | }; | 697 | }; |
| 667 | hdmi_int_pn7 { | 698 | hdmi_int_pn7 { |
| 668 | nvidia,pins = "hdmi_int_pn7"; | 699 | nvidia,pins = "hdmi_int_pn7"; |
| 669 | nvidia,function = "rsvd1"; | 700 | nvidia,function = "rsvd1"; |
| 670 | nvidia,pull = <1>; | 701 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 671 | nvidia,tristate = <0>; | 702 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 672 | nvidia,enable-input = <1>; | 703 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; |
| 673 | }; | 704 | }; |
| 674 | clk1_req_pee2 { | 705 | clk1_req_pee2 { |
| 675 | nvidia,pins = "clk1_req_pee2", | 706 | nvidia,pins = "clk1_req_pee2", |
| 676 | "usb_vbus_en1_pn5"; | 707 | "usb_vbus_en1_pn5"; |
| 677 | nvidia,function = "rsvd4"; | 708 | nvidia,function = "rsvd4"; |
| 678 | nvidia,pull = <1>; | 709 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 679 | nvidia,tristate = <1>; | 710 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 680 | nvidia,enable-input = <0>; | 711 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; |
| 681 | }; | 712 | }; |
| 682 | 713 | ||
| 683 | drive_sdio1 { | 714 | drive_sdio1 { |
| 684 | nvidia,pins = "drive_sdio1"; | 715 | nvidia,pins = "drive_sdio1"; |
| 685 | nvidia,high-speed-mode = <1>; | 716 | nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; |
| 686 | nvidia,schmitt = <0>; | 717 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; |
| 687 | nvidia,low-power-mode = <3>; | 718 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; |
| 688 | nvidia,pull-down-strength = <36>; | 719 | nvidia,pull-down-strength = <36>; |
| 689 | nvidia,pull-up-strength = <20>; | 720 | nvidia,pull-up-strength = <20>; |
| 690 | nvidia,slew-rate-rising = <2>; | 721 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOW>; |
| 691 | nvidia,slew-rate-falling = <2>; | 722 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOW>; |
| 692 | }; | 723 | }; |
| 693 | drive_sdio3 { | 724 | drive_sdio3 { |
| 694 | nvidia,pins = "drive_sdio3"; | 725 | nvidia,pins = "drive_sdio3"; |
| 695 | nvidia,high-speed-mode = <1>; | 726 | nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; |
| 696 | nvidia,schmitt = <0>; | 727 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; |
| 697 | nvidia,low-power-mode = <3>; | 728 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; |
| 698 | nvidia,pull-down-strength = <22>; | 729 | nvidia,pull-down-strength = <22>; |
| 699 | nvidia,pull-up-strength = <36>; | 730 | nvidia,pull-up-strength = <36>; |
| 700 | nvidia,slew-rate-rising = <0>; | 731 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; |
| 701 | nvidia,slew-rate-falling = <0>; | 732 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; |
| 702 | }; | 733 | }; |
| 703 | drive_gma { | 734 | drive_gma { |
| 704 | nvidia,pins = "drive_gma"; | 735 | nvidia,pins = "drive_gma"; |
| 705 | nvidia,high-speed-mode = <1>; | 736 | nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; |
| 706 | nvidia,schmitt = <0>; | 737 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; |
| 707 | nvidia,low-power-mode = <3>; | 738 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; |
| 708 | nvidia,pull-down-strength = <2>; | 739 | nvidia,pull-down-strength = <2>; |
| 709 | nvidia,pull-up-strength = <1>; | 740 | nvidia,pull-up-strength = <1>; |
| 710 | nvidia,slew-rate-rising = <0>; | 741 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; |
| 711 | nvidia,slew-rate-falling = <0>; | 742 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; |
| 712 | nvidia,drive-type = <1>; | 743 | nvidia,drive-type = <1>; |
| 713 | }; | 744 | }; |
| 714 | }; | 745 | }; |
| @@ -718,11 +749,15 @@ | |||
| 718 | status = "okay"; | 749 | status = "okay"; |
| 719 | }; | 750 | }; |
| 720 | 751 | ||
| 752 | pwm@7000a000 { | ||
| 753 | status = "okay"; | ||
| 754 | }; | ||
| 755 | |||
| 721 | i2c@7000c000 { | 756 | i2c@7000c000 { |
| 722 | status = "okay"; | 757 | status = "okay"; |
| 723 | clock-frequency = <100000>; | 758 | clock-frequency = <100000>; |
| 724 | 759 | ||
| 725 | battery: smart-battery { | 760 | battery: smart-battery@b { |
| 726 | compatible = "ti,bq20z45", "sbs,sbs-battery"; | 761 | compatible = "ti,bq20z45", "sbs,sbs-battery"; |
| 727 | reg = <0xb>; | 762 | reg = <0xb>; |
| 728 | battery-name = "battery"; | 763 | battery-name = "battery"; |
| @@ -731,7 +766,7 @@ | |||
| 731 | power-supplies = <&charger>; | 766 | power-supplies = <&charger>; |
| 732 | }; | 767 | }; |
| 733 | 768 | ||
| 734 | rt5640: rt5640 { | 769 | rt5640: rt5640@1c { |
| 735 | compatible = "realtek,rt5640"; | 770 | compatible = "realtek,rt5640"; |
| 736 | reg = <0x1c>; | 771 | reg = <0x1c>; |
| 737 | interrupt-parent = <&gpio>; | 772 | interrupt-parent = <&gpio>; |
| @@ -749,11 +784,15 @@ | |||
| 749 | }; | 784 | }; |
| 750 | }; | 785 | }; |
| 751 | 786 | ||
| 787 | hdmi_ddc: i2c@7000c700 { | ||
| 788 | status = "okay"; | ||
| 789 | }; | ||
| 790 | |||
| 752 | i2c@7000d000 { | 791 | i2c@7000d000 { |
| 753 | status = "okay"; | 792 | status = "okay"; |
| 754 | clock-frequency = <400000>; | 793 | clock-frequency = <400000>; |
| 755 | 794 | ||
| 756 | tps51632 { | 795 | tps51632@43 { |
| 757 | compatible = "ti,tps51632"; | 796 | compatible = "ti,tps51632"; |
| 758 | reg = <0x43>; | 797 | reg = <0x43>; |
| 759 | regulator-name = "vdd-cpu"; | 798 | regulator-name = "vdd-cpu"; |
| @@ -763,7 +802,7 @@ | |||
| 763 | regulator-always-on; | 802 | regulator-always-on; |
| 764 | }; | 803 | }; |
| 765 | 804 | ||
| 766 | tps65090 { | 805 | tps65090@48 { |
| 767 | compatible = "ti,tps65090"; | 806 | compatible = "ti,tps65090"; |
| 768 | reg = <0x48>; | 807 | reg = <0x48>; |
| 769 | interrupt-parent = <&gpio>; | 808 | interrupt-parent = <&gpio>; |
| @@ -806,7 +845,7 @@ | |||
| 806 | regulator-boot-on; | 845 | regulator-boot-on; |
| 807 | }; | 846 | }; |
| 808 | 847 | ||
| 809 | fet1 { | 848 | vdd_bl_reg: fet1 { |
| 810 | regulator-name = "vdd-lcd-bl"; | 849 | regulator-name = "vdd-lcd-bl"; |
| 811 | }; | 850 | }; |
| 812 | 851 | ||
| @@ -814,7 +853,7 @@ | |||
| 814 | regulator-name = "vdd-modem-3v3"; | 853 | regulator-name = "vdd-modem-3v3"; |
| 815 | }; | 854 | }; |
| 816 | 855 | ||
| 817 | fet4 { | 856 | avdd_lcd_reg: fet4 { |
| 818 | regulator-name = "avdd-lcd"; | 857 | regulator-name = "avdd-lcd"; |
| 819 | }; | 858 | }; |
| 820 | 859 | ||
| @@ -846,7 +885,7 @@ | |||
| 846 | }; | 885 | }; |
| 847 | }; | 886 | }; |
| 848 | 887 | ||
| 849 | palmas: tps65913 { | 888 | palmas: tps65913@58 { |
| 850 | compatible = "ti,palmas"; | 889 | compatible = "ti,palmas"; |
| 851 | reg = <0x58>; | 890 | reg = <0x58>; |
| 852 | interrupts = <0 86 IRQ_TYPE_LEVEL_LOW>; | 891 | interrupts = <0 86 IRQ_TYPE_LEVEL_LOW>; |
| @@ -1046,7 +1085,7 @@ | |||
| 1046 | }; | 1085 | }; |
| 1047 | }; | 1086 | }; |
| 1048 | 1087 | ||
| 1049 | pmc { | 1088 | pmc@7000e400 { |
| 1050 | nvidia,invert-interrupt; | 1089 | nvidia,invert-interrupt; |
| 1051 | nvidia,suspend-mode = <1>; | 1090 | nvidia,suspend-mode = <1>; |
| 1052 | nvidia,cpu-pwr-good-time = <500>; | 1091 | nvidia,cpu-pwr-good-time = <500>; |
| @@ -1057,7 +1096,7 @@ | |||
| 1057 | nvidia,sys-clock-req-active-high; | 1096 | nvidia,sys-clock-req-active-high; |
| 1058 | }; | 1097 | }; |
| 1059 | 1098 | ||
| 1060 | ahub { | 1099 | ahub@70080000 { |
| 1061 | i2s@70080400 { | 1100 | i2s@70080400 { |
| 1062 | status = "okay"; | 1101 | status = "okay"; |
| 1063 | }; | 1102 | }; |
| @@ -1084,12 +1123,23 @@ | |||
| 1084 | vbus-supply = <&usb3_vbus_reg>; | 1123 | vbus-supply = <&usb3_vbus_reg>; |
| 1085 | }; | 1124 | }; |
| 1086 | 1125 | ||
| 1126 | backlight: backlight { | ||
| 1127 | compatible = "pwm-backlight"; | ||
| 1128 | |||
| 1129 | enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>; | ||
| 1130 | power-supply = <&vdd_bl_reg>; | ||
| 1131 | pwms = <&pwm 1 1000000>; | ||
| 1132 | |||
| 1133 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
| 1134 | default-brightness-level = <6>; | ||
| 1135 | }; | ||
| 1136 | |||
| 1087 | clocks { | 1137 | clocks { |
| 1088 | compatible = "simple-bus"; | 1138 | compatible = "simple-bus"; |
| 1089 | #address-cells = <1>; | 1139 | #address-cells = <1>; |
| 1090 | #size-cells = <0>; | 1140 | #size-cells = <0>; |
| 1091 | 1141 | ||
| 1092 | clk32k_in: clock { | 1142 | clk32k_in: clock@0 { |
| 1093 | compatible = "fixed-clock"; | 1143 | compatible = "fixed-clock"; |
| 1094 | reg=<0>; | 1144 | reg=<0>; |
| 1095 | #clock-cells = <0>; | 1145 | #clock-cells = <0>; |
| @@ -1150,16 +1200,6 @@ | |||
| 1150 | gpio = <&gpio TEGRA_GPIO(H, 5) GPIO_ACTIVE_HIGH>; | 1200 | gpio = <&gpio TEGRA_GPIO(H, 5) GPIO_ACTIVE_HIGH>; |
| 1151 | }; | 1201 | }; |
| 1152 | 1202 | ||
| 1153 | lcd_bl_en_reg: regulator@2 { | ||
| 1154 | compatible = "regulator-fixed"; | ||
| 1155 | reg = <2>; | ||
| 1156 | regulator-name = "lcd_bl_en"; | ||
| 1157 | regulator-min-microvolt = <5000000>; | ||
| 1158 | regulator-max-microvolt = <5000000>; | ||
| 1159 | enable-active-high; | ||
| 1160 | gpio = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>; | ||
| 1161 | }; | ||
| 1162 | |||
| 1163 | usb1_vbus_reg: regulator@3 { | 1203 | usb1_vbus_reg: regulator@3 { |
| 1164 | compatible = "regulator-fixed"; | 1204 | compatible = "regulator-fixed"; |
| 1165 | reg = <3>; | 1205 | reg = <3>; |
diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi index 731249fbe206..389e987ec281 100644 --- a/arch/arm/boot/dts/tegra114.dtsi +++ b/arch/arm/boot/dts/tegra114.dtsi | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | #include <dt-bindings/clock/tegra114-car.h> | 1 | #include <dt-bindings/clock/tegra114-car.h> |
| 2 | #include <dt-bindings/gpio/tegra-gpio.h> | 2 | #include <dt-bindings/gpio/tegra-gpio.h> |
| 3 | #include <dt-bindings/pinctrl/pinctrl-tegra.h> | ||
| 3 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 4 | 5 | ||
| 5 | #include "skeleton.dtsi" | 6 | #include "skeleton.dtsi" |
| @@ -15,7 +16,113 @@ | |||
| 15 | serial3 = &uartd; | 16 | serial3 = &uartd; |
| 16 | }; | 17 | }; |
| 17 | 18 | ||
| 18 | gic: interrupt-controller { | 19 | host1x@50000000 { |
| 20 | compatible = "nvidia,tegra114-host1x", "simple-bus"; | ||
| 21 | reg = <0x50000000 0x00028000>; | ||
| 22 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ | ||
| 23 | <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */ | ||
| 24 | clocks = <&tegra_car TEGRA114_CLK_HOST1X>; | ||
| 25 | resets = <&tegra_car 28>; | ||
| 26 | reset-names = "host1x"; | ||
| 27 | |||
| 28 | #address-cells = <1>; | ||
| 29 | #size-cells = <1>; | ||
| 30 | |||
| 31 | ranges = <0x54000000 0x54000000 0x01000000>; | ||
| 32 | |||
| 33 | gr2d@54140000 { | ||
| 34 | compatible = "nvidia,tegra114-gr2d", "nvidia,tegra20-gr2d"; | ||
| 35 | reg = <0x54140000 0x00040000>; | ||
| 36 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; | ||
| 37 | clocks = <&tegra_car TEGRA114_CLK_GR2D>; | ||
| 38 | resets = <&tegra_car 21>; | ||
| 39 | reset-names = "2d"; | ||
| 40 | }; | ||
| 41 | |||
| 42 | gr3d@54180000 { | ||
| 43 | compatible = "nvidia,tegra114-gr3d", "nvidia,tegra20-gr3d"; | ||
| 44 | reg = <0x54180000 0x00040000>; | ||
| 45 | clocks = <&tegra_car TEGRA114_CLK_GR3D>; | ||
| 46 | resets = <&tegra_car 24>; | ||
| 47 | reset-names = "3d"; | ||
| 48 | }; | ||
| 49 | |||
| 50 | dc@54200000 { | ||
| 51 | compatible = "nvidia,tegra114-dc", "nvidia,tegra20-dc"; | ||
| 52 | reg = <0x54200000 0x00040000>; | ||
| 53 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
| 54 | clocks = <&tegra_car TEGRA114_CLK_DISP1>, | ||
| 55 | <&tegra_car TEGRA114_CLK_PLL_P>; | ||
| 56 | clock-names = "dc", "parent"; | ||
| 57 | resets = <&tegra_car 27>; | ||
| 58 | reset-names = "dc"; | ||
| 59 | |||
| 60 | rgb { | ||
| 61 | status = "disabled"; | ||
| 62 | }; | ||
| 63 | }; | ||
| 64 | |||
| 65 | dc@54240000 { | ||
| 66 | compatible = "nvidia,tegra114-dc", "nvidia,tegra20-dc"; | ||
| 67 | reg = <0x54240000 0x00040000>; | ||
| 68 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | ||
| 69 | clocks = <&tegra_car TEGRA114_CLK_DISP2>, | ||
| 70 | <&tegra_car TEGRA114_CLK_PLL_P>; | ||
| 71 | clock-names = "dc", "parent"; | ||
| 72 | resets = <&tegra_car 26>; | ||
| 73 | reset-names = "dc"; | ||
| 74 | |||
| 75 | rgb { | ||
| 76 | status = "disabled"; | ||
| 77 | }; | ||
| 78 | }; | ||
| 79 | |||
| 80 | hdmi@54280000 { | ||
| 81 | compatible = "nvidia,tegra114-hdmi"; | ||
| 82 | reg = <0x54280000 0x00040000>; | ||
| 83 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | ||
| 84 | clocks = <&tegra_car TEGRA114_CLK_HDMI>, | ||
| 85 | <&tegra_car TEGRA114_CLK_PLL_D2_OUT0>; | ||
| 86 | clock-names = "hdmi", "parent"; | ||
| 87 | resets = <&tegra_car 51>; | ||
| 88 | reset-names = "hdmi"; | ||
| 89 | status = "disabled"; | ||
| 90 | }; | ||
| 91 | |||
| 92 | dsi@54300000 { | ||
| 93 | compatible = "nvidia,tegra114-dsi"; | ||
| 94 | reg = <0x54300000 0x00040000>; | ||
| 95 | clocks = <&tegra_car TEGRA114_CLK_DSIA>, | ||
| 96 | <&tegra_car TEGRA114_CLK_DSIALP>, | ||
| 97 | <&tegra_car TEGRA114_CLK_PLL_D_OUT0>; | ||
| 98 | clock-names = "dsi", "lp", "parent"; | ||
| 99 | resets = <&tegra_car 48>; | ||
| 100 | reset-names = "dsi"; | ||
| 101 | nvidia,mipi-calibrate = <&mipi 0x060>; /* DSIA & DSIB pads */ | ||
| 102 | status = "disabled"; | ||
| 103 | |||
| 104 | #address-cells = <1>; | ||
| 105 | #size-cells = <0>; | ||
| 106 | }; | ||
| 107 | |||
| 108 | dsi@54400000 { | ||
| 109 | compatible = "nvidia,tegra114-dsi"; | ||
| 110 | reg = <0x54400000 0x00040000>; | ||
| 111 | clocks = <&tegra_car TEGRA114_CLK_DSIB>, | ||
| 112 | <&tegra_car TEGRA114_CLK_DSIBLP>, | ||
| 113 | <&tegra_car TEGRA114_CLK_PLL_D2_OUT0>; | ||
| 114 | clock-names = "dsi", "lp", "parent"; | ||
| 115 | resets = <&tegra_car 82>; | ||
| 116 | reset-names = "dsi"; | ||
| 117 | nvidia,mipi-calibrate = <&mipi 0x180>; /* DSIC & DSID pads */ | ||
| 118 | status = "disabled"; | ||
| 119 | |||
| 120 | #address-cells = <1>; | ||
| 121 | #size-cells = <0>; | ||
| 122 | }; | ||
| 123 | }; | ||
| 124 | |||
| 125 | gic: interrupt-controller@50041000 { | ||
| 19 | compatible = "arm,cortex-a15-gic"; | 126 | compatible = "arm,cortex-a15-gic"; |
| 20 | #interrupt-cells = <3>; | 127 | #interrupt-cells = <3>; |
| 21 | interrupt-controller; | 128 | interrupt-controller; |
| @@ -39,14 +146,14 @@ | |||
| 39 | clocks = <&tegra_car TEGRA114_CLK_TIMER>; | 146 | clocks = <&tegra_car TEGRA114_CLK_TIMER>; |
| 40 | }; | 147 | }; |
| 41 | 148 | ||
| 42 | tegra_car: clock { | 149 | tegra_car: clock@60006000 { |
| 43 | compatible = "nvidia,tegra114-car"; | 150 | compatible = "nvidia,tegra114-car"; |
| 44 | reg = <0x60006000 0x1000>; | 151 | reg = <0x60006000 0x1000>; |
| 45 | #clock-cells = <1>; | 152 | #clock-cells = <1>; |
| 46 | #reset-cells = <1>; | 153 | #reset-cells = <1>; |
| 47 | }; | 154 | }; |
| 48 | 155 | ||
| 49 | apbdma: dma { | 156 | apbdma: dma@6000a000 { |
| 50 | compatible = "nvidia,tegra114-apbdma"; | 157 | compatible = "nvidia,tegra114-apbdma"; |
| 51 | reg = <0x6000a000 0x1400>; | 158 | reg = <0x6000a000 0x1400>; |
| 52 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, | 159 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -87,12 +194,12 @@ | |||
| 87 | #dma-cells = <1>; | 194 | #dma-cells = <1>; |
| 88 | }; | 195 | }; |
| 89 | 196 | ||
| 90 | ahb: ahb { | 197 | ahb: ahb@6000c004 { |
| 91 | compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb"; | 198 | compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb"; |
| 92 | reg = <0x6000c004 0x14c>; | 199 | reg = <0x6000c004 0x14c>; |
| 93 | }; | 200 | }; |
| 94 | 201 | ||
| 95 | gpio: gpio { | 202 | gpio: gpio@6000d000 { |
| 96 | compatible = "nvidia,tegra114-gpio", "nvidia,tegra30-gpio"; | 203 | compatible = "nvidia,tegra114-gpio", "nvidia,tegra30-gpio"; |
| 97 | reg = <0x6000d000 0x1000>; | 204 | reg = <0x6000d000 0x1000>; |
| 98 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, | 205 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -109,7 +216,7 @@ | |||
| 109 | interrupt-controller; | 216 | interrupt-controller; |
| 110 | }; | 217 | }; |
| 111 | 218 | ||
| 112 | pinmux: pinmux { | 219 | pinmux: pinmux@70000868 { |
| 113 | compatible = "nvidia,tegra114-pinmux"; | 220 | compatible = "nvidia,tegra114-pinmux"; |
| 114 | reg = <0x70000868 0x148 /* Pad control registers */ | 221 | reg = <0x70000868 0x148 /* Pad control registers */ |
| 115 | 0x70003000 0x40c>; /* Mux registers */ | 222 | 0x70003000 0x40c>; /* Mux registers */ |
| @@ -175,7 +282,7 @@ | |||
| 175 | status = "disabled"; | 282 | status = "disabled"; |
| 176 | }; | 283 | }; |
| 177 | 284 | ||
| 178 | pwm: pwm { | 285 | pwm: pwm@7000a000 { |
| 179 | compatible = "nvidia,tegra114-pwm", "nvidia,tegra20-pwm"; | 286 | compatible = "nvidia,tegra114-pwm", "nvidia,tegra20-pwm"; |
| 180 | reg = <0x7000a000 0x100>; | 287 | reg = <0x7000a000 0x100>; |
| 181 | #pwm-cells = <2>; | 288 | #pwm-cells = <2>; |
| @@ -350,14 +457,14 @@ | |||
| 350 | status = "disabled"; | 457 | status = "disabled"; |
| 351 | }; | 458 | }; |
| 352 | 459 | ||
| 353 | rtc { | 460 | rtc@7000e000 { |
| 354 | compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc"; | 461 | compatible = "nvidia,tegra114-rtc", "nvidia,tegra20-rtc"; |
| 355 | reg = <0x7000e000 0x100>; | 462 | reg = <0x7000e000 0x100>; |
| 356 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | 463 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; |
| 357 | clocks = <&tegra_car TEGRA114_CLK_RTC>; | 464 | clocks = <&tegra_car TEGRA114_CLK_RTC>; |
| 358 | }; | 465 | }; |
| 359 | 466 | ||
| 360 | kbc { | 467 | kbc@7000e200 { |
| 361 | compatible = "nvidia,tegra114-kbc"; | 468 | compatible = "nvidia,tegra114-kbc"; |
| 362 | reg = <0x7000e200 0x100>; | 469 | reg = <0x7000e200 0x100>; |
| 363 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | 470 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -367,14 +474,14 @@ | |||
| 367 | status = "disabled"; | 474 | status = "disabled"; |
| 368 | }; | 475 | }; |
| 369 | 476 | ||
| 370 | pmc { | 477 | pmc@7000e400 { |
| 371 | compatible = "nvidia,tegra114-pmc"; | 478 | compatible = "nvidia,tegra114-pmc"; |
| 372 | reg = <0x7000e400 0x400>; | 479 | reg = <0x7000e400 0x400>; |
| 373 | clocks = <&tegra_car TEGRA114_CLK_PCLK>, <&clk32k_in>; | 480 | clocks = <&tegra_car TEGRA114_CLK_PCLK>, <&clk32k_in>; |
| 374 | clock-names = "pclk", "clk32k_in"; | 481 | clock-names = "pclk", "clk32k_in"; |
| 375 | }; | 482 | }; |
| 376 | 483 | ||
| 377 | iommu { | 484 | iommu@70019010 { |
| 378 | compatible = "nvidia,tegra114-smmu", "nvidia,tegra30-smmu"; | 485 | compatible = "nvidia,tegra114-smmu", "nvidia,tegra30-smmu"; |
| 379 | reg = <0x70019010 0x02c | 486 | reg = <0x70019010 0x02c |
| 380 | 0x700191f0 0x010 | 487 | 0x700191f0 0x010 |
| @@ -385,7 +492,7 @@ | |||
| 385 | nvidia,ahb = <&ahb>; | 492 | nvidia,ahb = <&ahb>; |
| 386 | }; | 493 | }; |
| 387 | 494 | ||
| 388 | ahub { | 495 | ahub@70080000 { |
| 389 | compatible = "nvidia,tegra114-ahub"; | 496 | compatible = "nvidia,tegra114-ahub"; |
| 390 | reg = <0x70080000 0x200>, | 497 | reg = <0x70080000 0x200>, |
| 391 | <0x70080200 0x100>, | 498 | <0x70080200 0x100>, |
| @@ -479,6 +586,13 @@ | |||
| 479 | }; | 586 | }; |
| 480 | }; | 587 | }; |
| 481 | 588 | ||
| 589 | mipi: mipi@700e3000 { | ||
| 590 | compatible = "nvidia,tegra114-mipi"; | ||
| 591 | reg = <0x700e3000 0x100>; | ||
| 592 | clocks = <&tegra_car TEGRA114_CLK_MIPI_CAL>; | ||
| 593 | #nvidia,mipi-calibrate-cells = <1>; | ||
| 594 | }; | ||
| 595 | |||
| 482 | sdhci@78000000 { | 596 | sdhci@78000000 { |
| 483 | compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci"; | 597 | compatible = "nvidia,tegra114-sdhci", "nvidia,tegra30-sdhci"; |
| 484 | reg = <0x78000000 0x200>; | 598 | reg = <0x78000000 0x200>; |
diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts index 431d67a2b413..c6dcef513e5d 100644 --- a/arch/arm/boot/dts/tegra124-venice2.dts +++ b/arch/arm/boot/dts/tegra124-venice2.dts | |||
| @@ -1,19 +1,917 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra124.dtsi" | 4 | #include "tegra124.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "NVIDIA Tegra124 Venice2"; | 7 | model = "NVIDIA Tegra124 Venice2"; |
| 7 | compatible = "nvidia,venice2", "nvidia,tegra124"; | 8 | compatible = "nvidia,venice2", "nvidia,tegra124"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/as3722@40"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x80000000 0x80000000>; | 16 | reg = <0x80000000 0x80000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 19 | pinmux: pinmux@70000868 { | ||
| 20 | pinctrl-names = "default"; | ||
| 21 | pinctrl-0 = <&pinmux_default>; | ||
| 22 | |||
| 23 | pinmux_default: common { | ||
| 24 | dap_mclk1_pw4 { | ||
| 25 | nvidia,pins = "dap_mclk1_pw4"; | ||
| 26 | nvidia,function = "extperiph1"; | ||
| 27 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 28 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 29 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 30 | }; | ||
| 31 | dap1_din_pn1 { | ||
| 32 | nvidia,pins = "dap1_din_pn1"; | ||
| 33 | nvidia,function = "i2s0"; | ||
| 34 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 35 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 36 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 37 | }; | ||
| 38 | dap1_dout_pn2 { | ||
| 39 | nvidia,pins = "dap1_dout_pn2", | ||
| 40 | "dap1_fs_pn0", | ||
| 41 | "dap1_sclk_pn3"; | ||
| 42 | nvidia,function = "i2s0"; | ||
| 43 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 44 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 45 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 46 | }; | ||
| 47 | dap2_din_pa4 { | ||
| 48 | nvidia,pins = "dap2_din_pa4"; | ||
| 49 | nvidia,function = "i2s1"; | ||
| 50 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 51 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 52 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 53 | }; | ||
| 54 | dap2_dout_pa5 { | ||
| 55 | nvidia,pins = "dap2_dout_pa5", | ||
| 56 | "dap2_fs_pa2", | ||
| 57 | "dap2_sclk_pa3"; | ||
| 58 | nvidia,function = "i2s1"; | ||
| 59 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 60 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 61 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 62 | }; | ||
| 63 | dvfs_pwm_px0 { | ||
| 64 | nvidia,pins = "dvfs_pwm_px0", | ||
| 65 | "dvfs_clk_px2"; | ||
| 66 | nvidia,function = "cldvfs"; | ||
| 67 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 68 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 69 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 70 | }; | ||
| 71 | ulpi_clk_py0 { | ||
| 72 | nvidia,pins = "ulpi_clk_py0", | ||
| 73 | "ulpi_nxt_py2", | ||
| 74 | "ulpi_stp_py3"; | ||
| 75 | nvidia,function = "spi1"; | ||
| 76 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 77 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 78 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 79 | }; | ||
| 80 | ulpi_dir_py1 { | ||
| 81 | nvidia,pins = "ulpi_dir_py1"; | ||
| 82 | nvidia,function = "spi1"; | ||
| 83 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 84 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 85 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 86 | }; | ||
| 87 | cam_i2c_scl_pbb1 { | ||
| 88 | nvidia,pins = "cam_i2c_scl_pbb1", | ||
| 89 | "cam_i2c_sda_pbb2"; | ||
| 90 | nvidia,function = "i2c3"; | ||
| 91 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 92 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 93 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 94 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 95 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; | ||
| 96 | }; | ||
| 97 | gen2_i2c_scl_pt5 { | ||
| 98 | nvidia,pins = "gen2_i2c_scl_pt5", | ||
| 99 | "gen2_i2c_sda_pt6"; | ||
| 100 | nvidia,function = "i2c2"; | ||
| 101 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 102 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 103 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 104 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 105 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; | ||
| 106 | }; | ||
| 107 | pg4 { | ||
| 108 | nvidia,pins = "pg4", | ||
| 109 | "pg5", | ||
| 110 | "pg6", | ||
| 111 | "pi3"; | ||
| 112 | nvidia,function = "spi4"; | ||
| 113 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 114 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 115 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 116 | }; | ||
| 117 | pg7 { | ||
| 118 | nvidia,pins = "pg7"; | ||
| 119 | nvidia,function = "spi4"; | ||
| 120 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 121 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 122 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 123 | }; | ||
| 124 | ph1 { | ||
| 125 | nvidia,pins = "ph1"; | ||
| 126 | nvidia,function = "pwm1"; | ||
| 127 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 128 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 129 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 130 | }; | ||
| 131 | pk0 { | ||
| 132 | nvidia,pins = "pk0", | ||
| 133 | "kb_row15_ps7", | ||
| 134 | "clk_32k_out_pa0"; | ||
| 135 | nvidia,function = "soc"; | ||
| 136 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 137 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 138 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 139 | }; | ||
| 140 | sdmmc1_clk_pz0 { | ||
| 141 | nvidia,pins = "sdmmc1_clk_pz0", | ||
| 142 | "sdmmc1_cmd_pz1", | ||
| 143 | "sdmmc1_dat0_py7", | ||
| 144 | "sdmmc1_dat1_py6", | ||
| 145 | "sdmmc1_dat2_py5", | ||
| 146 | "sdmmc1_dat3_py4"; | ||
| 147 | nvidia,function = "sdmmc1"; | ||
| 148 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 149 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 150 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 151 | }; | ||
| 152 | sdmmc1_cmd_pz1 { | ||
| 153 | nvidia,pins = "sdmmc1_cmd_pz1", | ||
| 154 | "sdmmc1_dat0_py7", | ||
| 155 | "sdmmc1_dat1_py6", | ||
| 156 | "sdmmc1_dat2_py5", | ||
| 157 | "sdmmc1_dat3_py4"; | ||
| 158 | nvidia,function = "sdmmc1"; | ||
| 159 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 160 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 161 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 162 | }; | ||
| 163 | sdmmc3_clk_pa6 { | ||
| 164 | nvidia,pins = "sdmmc3_clk_pa6"; | ||
| 165 | nvidia,function = "sdmmc3"; | ||
| 166 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 167 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 168 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 169 | }; | ||
| 170 | sdmmc3_cmd_pa7 { | ||
| 171 | nvidia,pins = "sdmmc3_cmd_pa7", | ||
| 172 | "sdmmc3_dat0_pb7", | ||
| 173 | "sdmmc3_dat1_pb6", | ||
| 174 | "sdmmc3_dat2_pb5", | ||
| 175 | "sdmmc3_dat3_pb4", | ||
| 176 | "sdmmc3_clk_lb_out_pee4", | ||
| 177 | "sdmmc3_clk_lb_in_pee5"; | ||
| 178 | nvidia,function = "sdmmc3"; | ||
| 179 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 180 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 181 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 182 | }; | ||
| 183 | sdmmc4_clk_pcc4 { | ||
| 184 | nvidia,pins = "sdmmc4_clk_pcc4"; | ||
| 185 | nvidia,function = "sdmmc4"; | ||
| 186 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 187 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 188 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 189 | }; | ||
| 190 | sdmmc4_cmd_pt7 { | ||
| 191 | nvidia,pins = "sdmmc4_cmd_pt7", | ||
| 192 | "sdmmc4_dat0_paa0", | ||
| 193 | "sdmmc4_dat1_paa1", | ||
| 194 | "sdmmc4_dat2_paa2", | ||
| 195 | "sdmmc4_dat3_paa3", | ||
| 196 | "sdmmc4_dat4_paa4", | ||
| 197 | "sdmmc4_dat5_paa5", | ||
| 198 | "sdmmc4_dat6_paa6", | ||
| 199 | "sdmmc4_dat7_paa7"; | ||
| 200 | nvidia,function = "sdmmc4"; | ||
| 201 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 202 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 203 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 204 | }; | ||
| 205 | pwr_i2c_scl_pz6 { | ||
| 206 | nvidia,pins = "pwr_i2c_scl_pz6", | ||
| 207 | "pwr_i2c_sda_pz7"; | ||
| 208 | nvidia,function = "i2cpwr"; | ||
| 209 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 210 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 211 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 212 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 213 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; | ||
| 214 | }; | ||
| 215 | jtag_rtck { | ||
| 216 | nvidia,pins = "jtag_rtck"; | ||
| 217 | nvidia,function = "rtck"; | ||
| 218 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 219 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 220 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 221 | }; | ||
| 222 | clk_32k_in { | ||
| 223 | nvidia,pins = "clk_32k_in"; | ||
| 224 | nvidia,function = "clk"; | ||
| 225 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 226 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 227 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 228 | }; | ||
| 229 | core_pwr_req { | ||
| 230 | nvidia,pins = "core_pwr_req"; | ||
| 231 | nvidia,function = "pwron"; | ||
| 232 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 233 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 234 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 235 | }; | ||
| 236 | cpu_pwr_req { | ||
| 237 | nvidia,pins = "cpu_pwr_req"; | ||
| 238 | nvidia,function = "cpu"; | ||
| 239 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 240 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 241 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 242 | }; | ||
| 243 | pwr_int_n { | ||
| 244 | nvidia,pins = "pwr_int_n"; | ||
| 245 | nvidia,function = "pmi"; | ||
| 246 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 247 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 248 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 249 | }; | ||
| 250 | reset_out_n { | ||
| 251 | nvidia,pins = "reset_out_n"; | ||
| 252 | nvidia,function = "reset_out_n"; | ||
| 253 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 254 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 255 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 256 | }; | ||
| 257 | clk3_out_pee0 { | ||
| 258 | nvidia,pins = "clk3_out_pee0"; | ||
| 259 | nvidia,function = "extperiph3"; | ||
| 260 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 261 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 262 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 263 | }; | ||
| 264 | dap4_din_pp5 { | ||
| 265 | nvidia,pins = "dap4_din_pp5"; | ||
| 266 | nvidia,function = "i2s3"; | ||
| 267 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 268 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 269 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 270 | }; | ||
| 271 | dap4_dout_pp6 { | ||
| 272 | nvidia,pins = "dap4_dout_pp6", | ||
| 273 | "dap4_fs_pp4", | ||
| 274 | "dap4_sclk_pp7"; | ||
| 275 | nvidia,function = "i2s3"; | ||
| 276 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 277 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 278 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 279 | }; | ||
| 280 | gen1_i2c_sda_pc5 { | ||
| 281 | nvidia,pins = "gen1_i2c_sda_pc5", | ||
| 282 | "gen1_i2c_scl_pc4"; | ||
| 283 | nvidia,function = "i2c1"; | ||
| 284 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 285 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 286 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 287 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 288 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; | ||
| 289 | }; | ||
| 290 | uart2_cts_n_pj5 { | ||
| 291 | nvidia,pins = "uart2_cts_n_pj5"; | ||
| 292 | nvidia,function = "uartb"; | ||
| 293 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 294 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 295 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 296 | }; | ||
| 297 | uart2_rts_n_pj6 { | ||
| 298 | nvidia,pins = "uart2_rts_n_pj6"; | ||
| 299 | nvidia,function = "uartb"; | ||
| 300 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 301 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 302 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 303 | }; | ||
| 304 | uart2_rxd_pc3 { | ||
| 305 | nvidia,pins = "uart2_rxd_pc3"; | ||
| 306 | nvidia,function = "irda"; | ||
| 307 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 308 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 309 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 310 | }; | ||
| 311 | uart2_txd_pc2 { | ||
| 312 | nvidia,pins = "uart2_txd_pc2"; | ||
| 313 | nvidia,function = "irda"; | ||
| 314 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 315 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 316 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 317 | }; | ||
| 318 | uart3_cts_n_pa1 { | ||
| 319 | nvidia,pins = "uart3_cts_n_pa1", | ||
| 320 | "uart3_rxd_pw7"; | ||
| 321 | nvidia,function = "uartc"; | ||
| 322 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 323 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 324 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 325 | }; | ||
| 326 | uart3_rts_n_pc0 { | ||
| 327 | nvidia,pins = "uart3_rts_n_pc0", | ||
| 328 | "uart3_txd_pw6"; | ||
| 329 | nvidia,function = "uartc"; | ||
| 330 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 331 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 332 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 333 | }; | ||
| 334 | hdmi_cec_pee3 { | ||
| 335 | nvidia,pins = "hdmi_cec_pee3"; | ||
| 336 | nvidia,function = "cec"; | ||
| 337 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 338 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 339 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 340 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 341 | nvidia,open-drain = <TEGRA_PIN_DISABLE>; | ||
| 342 | }; | ||
| 343 | hdmi_int_pn7 { | ||
| 344 | nvidia,pins = "hdmi_int_pn7"; | ||
| 345 | nvidia,function = "rsvd1"; | ||
| 346 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 347 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; | ||
| 348 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 349 | }; | ||
| 350 | ddc_scl_pv4 { | ||
| 351 | nvidia,pins = "ddc_scl_pv4", | ||
| 352 | "ddc_sda_pv5"; | ||
| 353 | nvidia,function = "i2c4"; | ||
| 354 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 355 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 356 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 357 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 358 | nvidia,rcv-sel = <TEGRA_PIN_ENABLE>; | ||
| 359 | }; | ||
| 360 | pj7 { | ||
| 361 | nvidia,pins = "pj7", | ||
| 362 | "pk7"; | ||
| 363 | nvidia,function = "uartd"; | ||
| 364 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 365 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 366 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 367 | }; | ||
| 368 | pb0 { | ||
| 369 | nvidia,pins = "pb0", | ||
| 370 | "pb1"; | ||
| 371 | nvidia,function = "uartd"; | ||
| 372 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 373 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 374 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 375 | }; | ||
| 376 | ph0 { | ||
| 377 | nvidia,pins = "ph0"; | ||
| 378 | nvidia,function = "pwm0"; | ||
| 379 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 380 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 381 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 382 | }; | ||
| 383 | kb_row10_ps2 { | ||
| 384 | nvidia,pins = "kb_row10_ps2"; | ||
| 385 | nvidia,function = "uarta"; | ||
| 386 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 387 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 388 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 389 | }; | ||
| 390 | kb_row9_ps1 { | ||
| 391 | nvidia,pins = "kb_row9_ps1"; | ||
| 392 | nvidia,function = "uarta"; | ||
| 393 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 394 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 395 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 396 | }; | ||
| 397 | kb_row6_pr6 { | ||
| 398 | nvidia,pins = "kb_row6_pr6"; | ||
| 399 | nvidia,function = "displaya_alt"; | ||
| 400 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; | ||
| 401 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 402 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 403 | }; | ||
| 404 | usb_vbus_en0_pn4 { | ||
| 405 | nvidia,pins = "usb_vbus_en0_pn4"; | ||
| 406 | nvidia,function = "usb"; | ||
| 407 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 408 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 409 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 410 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 411 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; | ||
| 412 | }; | ||
| 413 | usb_vbus_en1_pn5 { | ||
| 414 | nvidia,pins = "usb_vbus_en1_pn5"; | ||
| 415 | nvidia,function = "usb"; | ||
| 416 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 417 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 418 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 419 | nvidia,lock = <TEGRA_PIN_DISABLE>; | ||
| 420 | nvidia,open-drain = <TEGRA_PIN_ENABLE>; | ||
| 421 | }; | ||
| 422 | drive_sdio1 { | ||
| 423 | nvidia,pins = "drive_sdio1"; | ||
| 424 | nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; | ||
| 425 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; | ||
| 426 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; | ||
| 427 | nvidia,pull-down-strength = <32>; | ||
| 428 | nvidia,pull-up-strength = <42>; | ||
| 429 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; | ||
| 430 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; | ||
| 431 | }; | ||
| 432 | drive_sdio3 { | ||
| 433 | nvidia,pins = "drive_sdio3"; | ||
| 434 | nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; | ||
| 435 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; | ||
| 436 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; | ||
| 437 | nvidia,pull-down-strength = <20>; | ||
| 438 | nvidia,pull-up-strength = <36>; | ||
| 439 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; | ||
| 440 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; | ||
| 441 | }; | ||
| 442 | drive_gma { | ||
| 443 | nvidia,pins = "drive_gma"; | ||
| 444 | nvidia,high-speed-mode = <TEGRA_PIN_ENABLE>; | ||
| 445 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; | ||
| 446 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; | ||
| 447 | nvidia,pull-down-strength = <1>; | ||
| 448 | nvidia,pull-up-strength = <2>; | ||
| 449 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; | ||
| 450 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; | ||
| 451 | nvidia,drive-type = <1>; | ||
| 452 | }; | ||
| 453 | als_irq_l { | ||
| 454 | nvidia,pins = "gpio_x3_aud_px3"; | ||
| 455 | nvidia,function = "gmi"; | ||
| 456 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 457 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 458 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 459 | }; | ||
| 460 | codec_irq_l { | ||
| 461 | nvidia,pins = "ph4"; | ||
| 462 | nvidia,function = "gmi"; | ||
| 463 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 464 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 465 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 466 | }; | ||
| 467 | lcd_bl_en { | ||
| 468 | nvidia,pins = "ph2"; | ||
| 469 | nvidia,function = "gmi"; | ||
| 470 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; | ||
| 471 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 472 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 473 | }; | ||
| 474 | touch_irq_l { | ||
| 475 | nvidia,pins = "gpio_w3_aud_pw3"; | ||
| 476 | nvidia,function = "spi6"; | ||
| 477 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 478 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 479 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 480 | }; | ||
| 481 | tpm_davint_l { | ||
| 482 | nvidia,pins = "ph6"; | ||
| 483 | nvidia,function = "gmi"; | ||
| 484 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 485 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 486 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 487 | }; | ||
| 488 | ts_irq_l { | ||
| 489 | nvidia,pins = "pk2"; | ||
| 490 | nvidia,function = "gmi"; | ||
| 491 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 492 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 493 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 494 | }; | ||
| 495 | ts_reset_l { | ||
| 496 | nvidia,pins = "pk4"; | ||
| 497 | nvidia,function = "gmi"; | ||
| 498 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; | ||
| 499 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 500 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 501 | }; | ||
| 502 | ts_shdn_l { | ||
| 503 | nvidia,pins = "pk1"; | ||
| 504 | nvidia,function = "gmi"; | ||
| 505 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 506 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 507 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 508 | }; | ||
| 509 | ph7 { | ||
| 510 | nvidia,pins = "ph7"; | ||
| 511 | nvidia,function = "gmi"; | ||
| 512 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 513 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 514 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 515 | }; | ||
| 516 | kb_col0_ap { | ||
| 517 | nvidia,pins = "kb_col0_pq0"; | ||
| 518 | nvidia,function = "rsvd4"; | ||
| 519 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 520 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 521 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 522 | }; | ||
| 523 | lid_open { | ||
| 524 | nvidia,pins = "kb_row4_pr4"; | ||
| 525 | nvidia,function = "rsvd3"; | ||
| 526 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 527 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 528 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 529 | }; | ||
| 530 | en_vdd_sd { | ||
| 531 | nvidia,pins = "kb_row0_pr0"; | ||
| 532 | nvidia,function = "rsvd4"; | ||
| 533 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 534 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 535 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 536 | }; | ||
| 537 | ac_ok { | ||
| 538 | nvidia,pins = "pj0"; | ||
| 539 | nvidia,function = "gmi"; | ||
| 540 | nvidia,pull = <TEGRA_PIN_PULL_UP>; | ||
| 541 | nvidia,tristate = <TEGRA_PIN_ENABLE>; | ||
| 542 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 543 | }; | ||
| 544 | sensor_irq_l { | ||
| 545 | nvidia,pins = "pi6"; | ||
| 546 | nvidia,function = "gmi"; | ||
| 547 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 548 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 549 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 550 | }; | ||
| 551 | wifi_en { | ||
| 552 | nvidia,pins = "gpio_x7_aud_px7"; | ||
| 553 | nvidia,function = "rsvd4"; | ||
| 554 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 555 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 556 | nvidia,enable-input = <TEGRA_PIN_DISABLE>; | ||
| 557 | }; | ||
| 558 | wifi_rst_l { | ||
| 559 | nvidia,pins = "clk2_req_pcc5"; | ||
| 560 | nvidia,function = "dap"; | ||
| 561 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 562 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 563 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 564 | }; | ||
| 565 | hp_det_l { | ||
| 566 | nvidia,pins = "ulpi_data1_po2"; | ||
| 567 | nvidia,function = "spi3"; | ||
| 568 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; | ||
| 569 | nvidia,tristate = <TEGRA_PIN_DISABLE>; | ||
| 570 | nvidia,enable-input = <TEGRA_PIN_ENABLE>; | ||
| 571 | }; | ||
| 572 | }; | ||
| 573 | }; | ||
| 574 | |||
| 13 | serial@70006000 { | 575 | serial@70006000 { |
| 14 | status = "okay"; | 576 | status = "okay"; |
| 15 | }; | 577 | }; |
| 16 | 578 | ||
| 579 | pwm: pwm@7000a000 { | ||
| 580 | status = "okay"; | ||
| 581 | }; | ||
| 582 | |||
| 583 | i2c@7000c000 { | ||
| 584 | status = "okay"; | ||
| 585 | clock-frequency = <100000>; | ||
| 586 | |||
| 587 | acodec: audio-codec@10 { | ||
| 588 | compatible = "maxim,max98090"; | ||
| 589 | reg = <0x10>; | ||
| 590 | interrupt-parent = <&gpio>; | ||
| 591 | interrupts = <TEGRA_GPIO(H, 4) GPIO_ACTIVE_HIGH>; | ||
| 592 | }; | ||
| 593 | }; | ||
| 594 | |||
| 595 | i2c@7000c400 { | ||
| 596 | status = "okay"; | ||
| 597 | clock-frequency = <100000>; | ||
| 598 | }; | ||
| 599 | |||
| 600 | i2c@7000c500 { | ||
| 601 | status = "okay"; | ||
| 602 | clock-frequency = <100000>; | ||
| 603 | }; | ||
| 604 | |||
| 605 | i2c@7000c700 { | ||
| 606 | status = "okay"; | ||
| 607 | clock-frequency = <100000>; | ||
| 608 | }; | ||
| 609 | |||
| 610 | i2c@7000d000 { | ||
| 611 | status = "okay"; | ||
| 612 | clock-frequency = <400000>; | ||
| 613 | |||
| 614 | as3722: as3722@40 { | ||
| 615 | compatible = "ams,as3722"; | ||
| 616 | reg = <0x40>; | ||
| 617 | interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; | ||
| 618 | |||
| 619 | #interrupt-cells = <2>; | ||
| 620 | interrupt-controller; | ||
| 621 | |||
| 622 | gpio-controller; | ||
| 623 | #gpio-cells = <2>; | ||
| 624 | |||
| 625 | pinctrl-names = "default"; | ||
| 626 | pinctrl-0 = <&as3722_default>; | ||
| 627 | |||
| 628 | as3722_default: pinmux { | ||
| 629 | gpio0 { | ||
| 630 | pins = "gpio0"; | ||
| 631 | function = "gpio"; | ||
| 632 | bias-pull-down; | ||
| 633 | }; | ||
| 634 | |||
| 635 | gpio1_2_4_7 { | ||
| 636 | pins = "gpio1", "gpio2", "gpio4", "gpio7"; | ||
| 637 | function = "gpio"; | ||
| 638 | bias-pull-up; | ||
| 639 | }; | ||
| 640 | |||
| 641 | gpio3_6 { | ||
| 642 | pins = "gpio3", "gpio6"; | ||
| 643 | bias-high-impedance; | ||
| 644 | }; | ||
| 645 | |||
| 646 | gpio5 { | ||
| 647 | pins = "gpio5"; | ||
| 648 | function = "clk32k-out"; | ||
| 649 | }; | ||
| 650 | }; | ||
| 651 | |||
| 652 | regulators { | ||
| 653 | vsup-sd2-supply = <&vdd_ac_bat_reg>; | ||
| 654 | vsup-sd3-supply = <&vdd_ac_bat_reg>; | ||
| 655 | vsup-sd4-supply = <&vdd_ac_bat_reg>; | ||
| 656 | vsup-sd5-supply = <&vdd_ac_bat_reg>; | ||
| 657 | vin-ldo0-supply = <&as3722_sd2>; | ||
| 658 | vin-ldo1-6-supply = <&vdd_ac_bat_reg>; | ||
| 659 | vin-ldo2-5-7-supply = <&as3722_sd5>; | ||
| 660 | vin-ldo3-4-supply = <&vdd_ac_bat_reg>; | ||
| 661 | vin-ldo9-10-supply = <&vdd_ac_bat_reg>; | ||
| 662 | vin-ldo11-supply = <&vdd_ac_bat_reg>; | ||
| 663 | |||
| 664 | sd0 { | ||
| 665 | regulator-name = "vdd-cpu"; | ||
| 666 | regulator-min-microvolt = <700000>; | ||
| 667 | regulator-max-microvolt = <1400000>; | ||
| 668 | regulator-min-microamp = <3500000>; | ||
| 669 | regulator-max-microamp = <3500000>; | ||
| 670 | regulator-always-on; | ||
| 671 | regulator-boot-on; | ||
| 672 | ams,external-control = <2>; | ||
| 673 | }; | ||
| 674 | |||
| 675 | sd1 { | ||
| 676 | regulator-name = "vdd-core"; | ||
| 677 | regulator-min-microvolt = <700000>; | ||
| 678 | regulator-max-microvolt = <1350000>; | ||
| 679 | regulator-min-microamp = <2500000>; | ||
| 680 | regulator-max-microamp = <2500000>; | ||
| 681 | regulator-always-on; | ||
| 682 | regulator-boot-on; | ||
| 683 | ams,external-control = <1>; | ||
| 684 | }; | ||
| 685 | |||
| 686 | as3722_sd2: sd2 { | ||
| 687 | regulator-name = "vddio-ddr"; | ||
| 688 | regulator-min-microvolt = <1350000>; | ||
| 689 | regulator-max-microvolt = <1350000>; | ||
| 690 | regulator-always-on; | ||
| 691 | regulator-boot-on; | ||
| 692 | }; | ||
| 693 | |||
| 694 | sd3 { | ||
| 695 | regulator-name = "vddio-ddr-2phase"; | ||
| 696 | regulator-min-microvolt = <1350000>; | ||
| 697 | regulator-max-microvolt = <1350000>; | ||
| 698 | regulator-always-on; | ||
| 699 | regulator-boot-on; | ||
| 700 | }; | ||
| 701 | |||
| 702 | sd4 { | ||
| 703 | regulator-name = "avdd-pex-sata"; | ||
| 704 | regulator-min-microvolt = <1050000>; | ||
| 705 | regulator-max-microvolt = <1050000>; | ||
| 706 | regulator-boot-on; | ||
| 707 | regulator-always-on; | ||
| 708 | }; | ||
| 709 | |||
| 710 | as3722_sd5: sd5 { | ||
| 711 | regulator-name = "vddio-sys"; | ||
| 712 | regulator-min-microvolt = <1800000>; | ||
| 713 | regulator-max-microvolt = <1800000>; | ||
| 714 | regulator-boot-on; | ||
| 715 | regulator-always-on; | ||
| 716 | }; | ||
| 717 | |||
| 718 | sd6 { | ||
| 719 | regulator-name = "vdd-gpu"; | ||
| 720 | regulator-min-microvolt = <650000>; | ||
| 721 | regulator-max-microvolt = <1200000>; | ||
| 722 | regulator-min-microamp = <3500000>; | ||
| 723 | regulator-max-microamp = <3500000>; | ||
| 724 | regulator-boot-on; | ||
| 725 | regulator-always-on; | ||
| 726 | }; | ||
| 727 | |||
| 728 | ldo0 { | ||
| 729 | regulator-name = "avdd_pll"; | ||
| 730 | regulator-min-microvolt = <1050000>; | ||
| 731 | regulator-max-microvolt = <1050000>; | ||
| 732 | regulator-boot-on; | ||
| 733 | regulator-always-on; | ||
| 734 | ams,external-control = <1>; | ||
| 735 | }; | ||
| 736 | |||
| 737 | ldo1 { | ||
| 738 | regulator-name = "run-cam-1.8"; | ||
| 739 | regulator-min-microvolt = <1800000>; | ||
| 740 | regulator-max-microvolt = <1800000>; | ||
| 741 | }; | ||
| 742 | |||
| 743 | ldo2 { | ||
| 744 | regulator-name = "gen-avdd,vddio-hsic"; | ||
| 745 | regulator-min-microvolt = <1200000>; | ||
| 746 | regulator-max-microvolt = <1200000>; | ||
| 747 | regulator-boot-on; | ||
| 748 | regulator-always-on; | ||
| 749 | }; | ||
| 750 | |||
| 751 | ldo3 { | ||
| 752 | regulator-name = "vdd-rtc"; | ||
| 753 | regulator-min-microvolt = <1000000>; | ||
| 754 | regulator-max-microvolt = <1000000>; | ||
| 755 | regulator-boot-on; | ||
| 756 | regulator-always-on; | ||
| 757 | ams,enable-tracking; | ||
| 758 | }; | ||
| 759 | |||
| 760 | ldo4 { | ||
| 761 | regulator-name = "vdd-cam"; | ||
| 762 | regulator-min-microvolt = <2800000>; | ||
| 763 | regulator-max-microvolt = <2800000>; | ||
| 764 | regulator-boot-on; | ||
| 765 | regulator-always-on; | ||
| 766 | }; | ||
| 767 | |||
| 768 | ldo5 { | ||
| 769 | regulator-name = "vdd-cam-front"; | ||
| 770 | regulator-min-microvolt = <1200000>; | ||
| 771 | regulator-max-microvolt = <1200000>; | ||
| 772 | }; | ||
| 773 | |||
| 774 | ldo6 { | ||
| 775 | regulator-name = "vddio-sdmmc3"; | ||
| 776 | regulator-min-microvolt = <1800000>; | ||
| 777 | regulator-max-microvolt = <3300000>; | ||
| 778 | regulator-boot-on; | ||
| 779 | regulator-always-on; | ||
| 780 | }; | ||
| 781 | |||
| 782 | ldo7 { | ||
| 783 | regulator-name = "vdd-cam-rear"; | ||
| 784 | regulator-min-microvolt = <1050000>; | ||
| 785 | regulator-max-microvolt = <1050000>; | ||
| 786 | }; | ||
| 787 | |||
| 788 | ldo9 { | ||
| 789 | regulator-name = "vdd-touch"; | ||
| 790 | regulator-min-microvolt = <2800000>; | ||
| 791 | regulator-max-microvolt = <2800000>; | ||
| 792 | }; | ||
| 793 | |||
| 794 | ldo10 { | ||
| 795 | regulator-name = "vdd-cam-af"; | ||
| 796 | regulator-min-microvolt = <2800000>; | ||
| 797 | regulator-max-microvolt = <2800000>; | ||
| 798 | }; | ||
| 799 | |||
| 800 | ldo11 { | ||
| 801 | regulator-name = "vpp-fuse"; | ||
| 802 | regulator-min-microvolt = <1800000>; | ||
| 803 | regulator-max-microvolt = <1800000>; | ||
| 804 | }; | ||
| 805 | }; | ||
| 806 | }; | ||
| 807 | }; | ||
| 808 | |||
| 809 | spi@7000d400 { | ||
| 810 | status = "okay"; | ||
| 811 | |||
| 812 | cros-ec@0 { | ||
| 813 | compatible = "google,cros-ec-spi"; | ||
| 814 | spi-max-frequency = <4000000>; | ||
| 815 | interrupt-parent = <&gpio>; | ||
| 816 | interrupts = <TEGRA_GPIO(C, 7) IRQ_TYPE_LEVEL_LOW>; | ||
| 817 | reg = <0>; | ||
| 818 | |||
| 819 | google,cros-ec-spi-msg-delay = <2000>; | ||
| 820 | |||
| 821 | cros-ec-keyb { | ||
| 822 | compatible = "google,cros-ec-keyb"; | ||
| 823 | keypad,num-rows = <8>; | ||
| 824 | keypad,num-columns = <13>; | ||
| 825 | google,needs-ghost-filter; | ||
| 826 | |||
| 827 | linux,keymap = < | ||
| 828 | MATRIX_KEY(0x00, 0x01, KEY_LEFTMETA) | ||
| 829 | MATRIX_KEY(0x00, 0x02, KEY_F1) | ||
| 830 | MATRIX_KEY(0x00, 0x03, KEY_B) | ||
| 831 | MATRIX_KEY(0x00, 0x04, KEY_F10) | ||
| 832 | MATRIX_KEY(0x00, 0x06, KEY_N) | ||
| 833 | MATRIX_KEY(0x00, 0x08, KEY_EQUAL) | ||
| 834 | MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT) | ||
| 835 | |||
| 836 | MATRIX_KEY(0x01, 0x01, KEY_ESC) | ||
| 837 | MATRIX_KEY(0x01, 0x02, KEY_F4) | ||
| 838 | MATRIX_KEY(0x01, 0x03, KEY_G) | ||
| 839 | MATRIX_KEY(0x01, 0x04, KEY_F7) | ||
| 840 | MATRIX_KEY(0x01, 0x06, KEY_H) | ||
| 841 | MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE) | ||
| 842 | MATRIX_KEY(0x01, 0x09, KEY_F9) | ||
| 843 | MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE) | ||
| 844 | |||
| 845 | MATRIX_KEY(0x02, 0x00, KEY_LEFTCTRL) | ||
| 846 | MATRIX_KEY(0x02, 0x01, KEY_TAB) | ||
| 847 | MATRIX_KEY(0x02, 0x02, KEY_F3) | ||
| 848 | MATRIX_KEY(0x02, 0x03, KEY_T) | ||
| 849 | MATRIX_KEY(0x02, 0x04, KEY_F6) | ||
| 850 | MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE) | ||
| 851 | MATRIX_KEY(0x02, 0x06, KEY_Y) | ||
| 852 | MATRIX_KEY(0x02, 0x07, KEY_102ND) | ||
| 853 | MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE) | ||
| 854 | MATRIX_KEY(0x02, 0x09, KEY_F8) | ||
| 855 | |||
| 856 | MATRIX_KEY(0x03, 0x01, KEY_GRAVE) | ||
| 857 | MATRIX_KEY(0x03, 0x02, KEY_F2) | ||
| 858 | MATRIX_KEY(0x03, 0x03, KEY_5) | ||
| 859 | MATRIX_KEY(0x03, 0x04, KEY_F5) | ||
| 860 | MATRIX_KEY(0x03, 0x06, KEY_6) | ||
| 861 | MATRIX_KEY(0x03, 0x08, KEY_MINUS) | ||
| 862 | MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH) | ||
| 863 | |||
| 864 | MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL) | ||
| 865 | MATRIX_KEY(0x04, 0x01, KEY_A) | ||
| 866 | MATRIX_KEY(0x04, 0x02, KEY_D) | ||
| 867 | MATRIX_KEY(0x04, 0x03, KEY_F) | ||
| 868 | MATRIX_KEY(0x04, 0x04, KEY_S) | ||
| 869 | MATRIX_KEY(0x04, 0x05, KEY_K) | ||
| 870 | MATRIX_KEY(0x04, 0x06, KEY_J) | ||
| 871 | MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON) | ||
| 872 | MATRIX_KEY(0x04, 0x09, KEY_L) | ||
| 873 | MATRIX_KEY(0x04, 0x0a, KEY_BACKSLASH) | ||
| 874 | MATRIX_KEY(0x04, 0x0b, KEY_ENTER) | ||
| 875 | |||
| 876 | MATRIX_KEY(0x05, 0x01, KEY_Z) | ||
| 877 | MATRIX_KEY(0x05, 0x02, KEY_C) | ||
| 878 | MATRIX_KEY(0x05, 0x03, KEY_V) | ||
| 879 | MATRIX_KEY(0x05, 0x04, KEY_X) | ||
| 880 | MATRIX_KEY(0x05, 0x05, KEY_COMMA) | ||
| 881 | MATRIX_KEY(0x05, 0x06, KEY_M) | ||
| 882 | MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT) | ||
| 883 | MATRIX_KEY(0x05, 0x08, KEY_SLASH) | ||
| 884 | MATRIX_KEY(0x05, 0x09, KEY_DOT) | ||
| 885 | MATRIX_KEY(0x05, 0x0b, KEY_SPACE) | ||
| 886 | |||
| 887 | MATRIX_KEY(0x06, 0x01, KEY_1) | ||
| 888 | MATRIX_KEY(0x06, 0x02, KEY_3) | ||
| 889 | MATRIX_KEY(0x06, 0x03, KEY_4) | ||
| 890 | MATRIX_KEY(0x06, 0x04, KEY_2) | ||
| 891 | MATRIX_KEY(0x06, 0x05, KEY_8) | ||
| 892 | MATRIX_KEY(0x06, 0x06, KEY_7) | ||
| 893 | MATRIX_KEY(0x06, 0x08, KEY_0) | ||
| 894 | MATRIX_KEY(0x06, 0x09, KEY_9) | ||
| 895 | MATRIX_KEY(0x06, 0x0a, KEY_LEFTALT) | ||
| 896 | MATRIX_KEY(0x06, 0x0b, KEY_DOWN) | ||
| 897 | MATRIX_KEY(0x06, 0x0c, KEY_RIGHT) | ||
| 898 | |||
| 899 | MATRIX_KEY(0x07, 0x01, KEY_Q) | ||
| 900 | MATRIX_KEY(0x07, 0x02, KEY_E) | ||
| 901 | MATRIX_KEY(0x07, 0x03, KEY_R) | ||
| 902 | MATRIX_KEY(0x07, 0x04, KEY_W) | ||
| 903 | MATRIX_KEY(0x07, 0x05, KEY_I) | ||
| 904 | MATRIX_KEY(0x07, 0x06, KEY_U) | ||
| 905 | MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT) | ||
| 906 | MATRIX_KEY(0x07, 0x08, KEY_P) | ||
| 907 | MATRIX_KEY(0x07, 0x09, KEY_O) | ||
| 908 | MATRIX_KEY(0x07, 0x0b, KEY_UP) | ||
| 909 | MATRIX_KEY(0x07, 0x0c, KEY_LEFT) | ||
| 910 | >; | ||
| 911 | }; | ||
| 912 | }; | ||
| 913 | }; | ||
| 914 | |||
| 17 | pmc@7000e400 { | 915 | pmc@7000e400 { |
| 18 | nvidia,invert-interrupt; | 916 | nvidia,invert-interrupt; |
| 19 | nvidia,suspend-mode = <1>; | 917 | nvidia,suspend-mode = <1>; |
| @@ -24,4 +922,170 @@ | |||
| 24 | nvidia,core-power-req-active-high; | 922 | nvidia,core-power-req-active-high; |
| 25 | nvidia,sys-clock-req-active-high; | 923 | nvidia,sys-clock-req-active-high; |
| 26 | }; | 924 | }; |
| 925 | |||
| 926 | sdhci@700b0400 { | ||
| 927 | cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; | ||
| 928 | power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>; | ||
| 929 | status = "okay"; | ||
| 930 | bus-width = <4>; | ||
| 931 | }; | ||
| 932 | |||
| 933 | sdhci@700b0600 { | ||
| 934 | status = "okay"; | ||
| 935 | bus-width = <8>; | ||
| 936 | }; | ||
| 937 | |||
| 938 | ahub@70300000 { | ||
| 939 | i2s@70301100 { | ||
| 940 | status = "okay"; | ||
| 941 | }; | ||
| 942 | }; | ||
| 943 | |||
| 944 | clocks { | ||
| 945 | compatible = "simple-bus"; | ||
| 946 | #address-cells = <1>; | ||
| 947 | #size-cells = <0>; | ||
| 948 | |||
| 949 | clk32k_in: clock@0 { | ||
| 950 | compatible = "fixed-clock"; | ||
| 951 | reg=<0>; | ||
| 952 | #clock-cells = <0>; | ||
| 953 | clock-frequency = <32768>; | ||
| 954 | }; | ||
| 955 | }; | ||
| 956 | |||
| 957 | gpio-keys { | ||
| 958 | compatible = "gpio-keys"; | ||
| 959 | |||
| 960 | power { | ||
| 961 | label = "Power"; | ||
| 962 | gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; | ||
| 963 | linux,code = <KEY_POWER>; | ||
| 964 | debounce-interval = <10>; | ||
| 965 | gpio-key,wakeup; | ||
| 966 | }; | ||
| 967 | }; | ||
| 968 | |||
| 969 | regulators { | ||
| 970 | compatible = "simple-bus"; | ||
| 971 | #address-cells = <1>; | ||
| 972 | #size-cells = <0>; | ||
| 973 | |||
| 974 | vdd_ac_bat_reg: regulator@0 { | ||
| 975 | compatible = "regulator-fixed"; | ||
| 976 | reg = <0>; | ||
| 977 | regulator-name = "vdd_ac_bat"; | ||
| 978 | regulator-min-microvolt = <5000000>; | ||
| 979 | regulator-max-microvolt = <5000000>; | ||
| 980 | regulator-always-on; | ||
| 981 | }; | ||
| 982 | |||
| 983 | vdd_3v3_reg: regulator@1 { | ||
| 984 | compatible = "regulator-fixed"; | ||
| 985 | reg = <1>; | ||
| 986 | regulator-name = "vdd_3v3"; | ||
| 987 | regulator-min-microvolt = <3300000>; | ||
| 988 | regulator-max-microvolt = <3300000>; | ||
| 989 | regulator-always-on; | ||
| 990 | regulator-boot-on; | ||
| 991 | enable-active-high; | ||
| 992 | gpio = <&as3722 1 GPIO_ACTIVE_HIGH>; | ||
| 993 | }; | ||
| 994 | |||
| 995 | vdd_3v3_modem_reg: regulator@2 { | ||
| 996 | compatible = "regulator-fixed"; | ||
| 997 | reg = <2>; | ||
| 998 | regulator-name = "vdd-modem-3v3"; | ||
| 999 | regulator-min-microvolt = <3300000>; | ||
| 1000 | regulator-max-microvolt = <3300000>; | ||
| 1001 | enable-active-high; | ||
| 1002 | gpio = <&as3722 2 GPIO_ACTIVE_HIGH>; | ||
| 1003 | }; | ||
| 1004 | |||
| 1005 | vdd_hdmi_5v0_reg: regulator@3 { | ||
| 1006 | compatible = "regulator-fixed"; | ||
| 1007 | reg = <3>; | ||
| 1008 | regulator-name = "vdd-hdmi-5v0"; | ||
| 1009 | regulator-min-microvolt = <5000000>; | ||
| 1010 | regulator-max-microvolt = <5000000>; | ||
| 1011 | enable-active-high; | ||
| 1012 | gpio = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>; | ||
| 1013 | }; | ||
| 1014 | |||
| 1015 | vdd_bl_reg: regulator@4 { | ||
| 1016 | compatible = "regulator-fixed"; | ||
| 1017 | reg = <4>; | ||
| 1018 | regulator-name = "vdd-bl"; | ||
| 1019 | regulator-min-microvolt = <3300000>; | ||
| 1020 | regulator-max-microvolt = <3300000>; | ||
| 1021 | gpio = <&gpio TEGRA_GPIO(P, 2) GPIO_ACTIVE_LOW>; | ||
| 1022 | }; | ||
| 1023 | |||
| 1024 | vdd_ts_sw_5v0: regulator@5 { | ||
| 1025 | compatible = "regulator-fixed"; | ||
| 1026 | reg = <5>; | ||
| 1027 | regulator-name = "vdd_ts_sw"; | ||
| 1028 | regulator-min-microvolt = <5000000>; | ||
| 1029 | regulator-max-microvolt = <5000000>; | ||
| 1030 | enable-active-high; | ||
| 1031 | regulator-boot-on; | ||
| 1032 | gpio = <&gpio TEGRA_GPIO(K, 1) GPIO_ACTIVE_LOW>; | ||
| 1033 | }; | ||
| 1034 | |||
| 1035 | usb1_vbus_reg: regulator@6 { | ||
| 1036 | compatible = "regulator-fixed"; | ||
| 1037 | reg = <6>; | ||
| 1038 | regulator-name = "usb1_vbus"; | ||
| 1039 | regulator-min-microvolt = <5000000>; | ||
| 1040 | regulator-max-microvolt = <5000000>; | ||
| 1041 | regulator-boot-on; | ||
| 1042 | enable-active-high; | ||
| 1043 | gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>; | ||
| 1044 | gpio-open-drain; | ||
| 1045 | }; | ||
| 1046 | |||
| 1047 | usb3_vbus_reg: regulator@7 { | ||
| 1048 | compatible = "regulator-fixed"; | ||
| 1049 | reg = <7>; | ||
| 1050 | regulator-name = "usb3_vbus"; | ||
| 1051 | regulator-min-microvolt = <5000000>; | ||
| 1052 | regulator-max-microvolt = <5000000>; | ||
| 1053 | regulator-boot-on; | ||
| 1054 | enable-active-high; | ||
| 1055 | gpio = <&gpio TEGRA_GPIO(N, 5) GPIO_ACTIVE_HIGH>; | ||
| 1056 | gpio-open-drain; | ||
| 1057 | }; | ||
| 1058 | |||
| 1059 | panel_3v3_reg: regulator@8 { | ||
| 1060 | compatible = "regulator-fixed"; | ||
| 1061 | reg = <8>; | ||
| 1062 | regulator-name = "panel_3v3"; | ||
| 1063 | regulator-min-microvolt = <3300000>; | ||
| 1064 | regulator-max-microvolt = <3300000>; | ||
| 1065 | enable-active-high; | ||
| 1066 | gpio = <&as3722 4 GPIO_ACTIVE_HIGH>; | ||
| 1067 | }; | ||
| 1068 | }; | ||
| 1069 | |||
| 1070 | sound { | ||
| 1071 | compatible = "nvidia,tegra-audio-max98090-venice2", | ||
| 1072 | "nvidia,tegra-audio-max98090"; | ||
| 1073 | nvidia,model = "NVIDIA Tegra Venice2"; | ||
| 1074 | |||
| 1075 | nvidia,audio-routing = | ||
| 1076 | "Headphones", "HPR", | ||
| 1077 | "Headphones", "HPL", | ||
| 1078 | "Speakers", "SPKR", | ||
| 1079 | "Speakers", "SPKL", | ||
| 1080 | "Mic Jack", "MICBIAS", | ||
| 1081 | "IN34", "Mic Jack"; | ||
| 1082 | |||
| 1083 | nvidia,i2s-controller = <&tegra_i2s1>; | ||
| 1084 | nvidia,audio-codec = <&acodec>; | ||
| 1085 | |||
| 1086 | clocks = <&tegra_car TEGRA124_CLK_PLL_A>, | ||
| 1087 | <&tegra_car TEGRA124_CLK_PLL_A_OUT0>, | ||
| 1088 | <&tegra_car TEGRA124_CLK_EXTERN1>; | ||
| 1089 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
| 1090 | }; | ||
| 27 | }; | 1091 | }; |
diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi index b7413004ee77..ec0698a8354a 100644 --- a/arch/arm/boot/dts/tegra124.dtsi +++ b/arch/arm/boot/dts/tegra124.dtsi | |||
| @@ -1,4 +1,6 @@ | |||
| 1 | #include <dt-bindings/clock/tegra124-car.h> | ||
| 1 | #include <dt-bindings/gpio/tegra-gpio.h> | 2 | #include <dt-bindings/gpio/tegra-gpio.h> |
| 3 | #include <dt-bindings/pinctrl/pinctrl-tegra.h> | ||
| 2 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 3 | 5 | ||
| 4 | #include "skeleton.dtsi" | 6 | #include "skeleton.dtsi" |
| @@ -28,6 +30,14 @@ | |||
| 28 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | 30 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, |
| 29 | <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, | 31 | <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, |
| 30 | <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | 32 | <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; |
| 33 | clocks = <&tegra_car TEGRA124_CLK_TIMER>; | ||
| 34 | }; | ||
| 35 | |||
| 36 | tegra_car: clock@60006000 { | ||
| 37 | compatible = "nvidia,tegra124-car"; | ||
| 38 | reg = <0x60006000 0x1000>; | ||
| 39 | #clock-cells = <1>; | ||
| 40 | #reset-cells = <1>; | ||
| 31 | }; | 41 | }; |
| 32 | 42 | ||
| 33 | gpio: gpio@6000d000 { | 43 | gpio: gpio@6000d000 { |
| @@ -47,6 +57,53 @@ | |||
| 47 | interrupt-controller; | 57 | interrupt-controller; |
| 48 | }; | 58 | }; |
| 49 | 59 | ||
| 60 | apbdma: dma@60020000 { | ||
| 61 | compatible = "nvidia,tegra124-apbdma", "nvidia,tegra148-apbdma"; | ||
| 62 | reg = <0x60020000 0x1400>; | ||
| 63 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, | ||
| 64 | <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, | ||
| 65 | <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, | ||
| 66 | <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, | ||
| 67 | <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, | ||
| 68 | <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, | ||
| 69 | <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, | ||
| 70 | <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, | ||
| 71 | <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, | ||
| 72 | <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, | ||
| 73 | <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, | ||
| 74 | <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, | ||
| 75 | <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, | ||
| 76 | <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, | ||
| 77 | <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, | ||
| 78 | <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, | ||
| 79 | <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, | ||
| 80 | <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>, | ||
| 81 | <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>, | ||
| 82 | <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>, | ||
| 83 | <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>, | ||
| 84 | <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>, | ||
| 85 | <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, | ||
| 86 | <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>, | ||
| 87 | <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, | ||
| 88 | <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, | ||
| 89 | <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, | ||
| 90 | <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>, | ||
| 91 | <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>, | ||
| 92 | <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, | ||
| 93 | <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, | ||
| 94 | <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; | ||
| 95 | clocks = <&tegra_car TEGRA124_CLK_APBDMA>; | ||
| 96 | resets = <&tegra_car 34>; | ||
| 97 | reset-names = "dma"; | ||
| 98 | #dma-cells = <1>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | pinmux: pinmux@70000868 { | ||
| 102 | compatible = "nvidia,tegra124-pinmux"; | ||
| 103 | reg = <0x70000868 0x164>, /* Pad control registers */ | ||
| 104 | <0x70003000 0x434>; /* Mux registers */ | ||
| 105 | }; | ||
| 106 | |||
| 50 | /* | 107 | /* |
| 51 | * There are two serial driver i.e. 8250 based simple serial | 108 | * There are two serial driver i.e. 8250 based simple serial |
| 52 | * driver and APB DMA based serial driver for higher baudrate | 109 | * driver and APB DMA based serial driver for higher baudrate |
| @@ -60,6 +117,11 @@ | |||
| 60 | reg = <0x70006000 0x40>; | 117 | reg = <0x70006000 0x40>; |
| 61 | reg-shift = <2>; | 118 | reg-shift = <2>; |
| 62 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | 119 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; |
| 120 | clocks = <&tegra_car TEGRA124_CLK_UARTA>; | ||
| 121 | resets = <&tegra_car 6>; | ||
| 122 | reset-names = "serial"; | ||
| 123 | dmas = <&apbdma 8>, <&apbdma 8>; | ||
| 124 | dma-names = "rx", "tx"; | ||
| 63 | status = "disabled"; | 125 | status = "disabled"; |
| 64 | }; | 126 | }; |
| 65 | 127 | ||
| @@ -68,6 +130,11 @@ | |||
| 68 | reg = <0x70006040 0x40>; | 130 | reg = <0x70006040 0x40>; |
| 69 | reg-shift = <2>; | 131 | reg-shift = <2>; |
| 70 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; | 132 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; |
| 133 | clocks = <&tegra_car TEGRA124_CLK_UARTB>; | ||
| 134 | resets = <&tegra_car 7>; | ||
| 135 | reset-names = "serial"; | ||
| 136 | dmas = <&apbdma 9>, <&apbdma 9>; | ||
| 137 | dma-names = "rx", "tx"; | ||
| 71 | status = "disabled"; | 138 | status = "disabled"; |
| 72 | }; | 139 | }; |
| 73 | 140 | ||
| @@ -76,6 +143,11 @@ | |||
| 76 | reg = <0x70006200 0x40>; | 143 | reg = <0x70006200 0x40>; |
| 77 | reg-shift = <2>; | 144 | reg-shift = <2>; |
| 78 | interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; | 145 | interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; |
| 146 | clocks = <&tegra_car TEGRA124_CLK_UARTC>; | ||
| 147 | resets = <&tegra_car 55>; | ||
| 148 | reset-names = "serial"; | ||
| 149 | dmas = <&apbdma 10>, <&apbdma 10>; | ||
| 150 | dma-names = "rx", "tx"; | ||
| 79 | status = "disabled"; | 151 | status = "disabled"; |
| 80 | }; | 152 | }; |
| 81 | 153 | ||
| @@ -84,6 +156,11 @@ | |||
| 84 | reg = <0x70006300 0x40>; | 156 | reg = <0x70006300 0x40>; |
| 85 | reg-shift = <2>; | 157 | reg-shift = <2>; |
| 86 | interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; | 158 | interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; |
| 159 | clocks = <&tegra_car TEGRA124_CLK_UARTD>; | ||
| 160 | resets = <&tegra_car 65>; | ||
| 161 | reset-names = "serial"; | ||
| 162 | dmas = <&apbdma 19>, <&apbdma 19>; | ||
| 163 | dma-names = "rx", "tx"; | ||
| 87 | status = "disabled"; | 164 | status = "disabled"; |
| 88 | }; | 165 | }; |
| 89 | 166 | ||
| @@ -92,6 +169,201 @@ | |||
| 92 | reg = <0x70006400 0x40>; | 169 | reg = <0x70006400 0x40>; |
| 93 | reg-shift = <2>; | 170 | reg-shift = <2>; |
| 94 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; | 171 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; |
| 172 | clocks = <&tegra_car TEGRA124_CLK_UARTE>; | ||
| 173 | resets = <&tegra_car 66>; | ||
| 174 | reset-names = "serial"; | ||
| 175 | dmas = <&apbdma 20>, <&apbdma 20>; | ||
| 176 | dma-names = "rx", "tx"; | ||
| 177 | status = "disabled"; | ||
| 178 | }; | ||
| 179 | |||
| 180 | pwm@7000a000 { | ||
| 181 | compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm"; | ||
| 182 | reg = <0x7000a000 0x100>; | ||
| 183 | #pwm-cells = <2>; | ||
| 184 | clocks = <&tegra_car TEGRA124_CLK_PWM>; | ||
| 185 | resets = <&tegra_car 17>; | ||
| 186 | reset-names = "pwm"; | ||
| 187 | status = "disabled"; | ||
| 188 | }; | ||
| 189 | |||
| 190 | i2c@7000c000 { | ||
| 191 | compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; | ||
| 192 | reg = <0x7000c000 0x100>; | ||
| 193 | interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; | ||
| 194 | #address-cells = <1>; | ||
| 195 | #size-cells = <0>; | ||
| 196 | clocks = <&tegra_car TEGRA124_CLK_I2C1>; | ||
| 197 | clock-names = "div-clk"; | ||
| 198 | resets = <&tegra_car 12>; | ||
| 199 | reset-names = "i2c"; | ||
| 200 | dmas = <&apbdma 21>, <&apbdma 21>; | ||
| 201 | dma-names = "rx", "tx"; | ||
| 202 | status = "disabled"; | ||
| 203 | }; | ||
| 204 | |||
| 205 | i2c@7000c400 { | ||
| 206 | compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; | ||
| 207 | reg = <0x7000c400 0x100>; | ||
| 208 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; | ||
| 209 | #address-cells = <1>; | ||
| 210 | #size-cells = <0>; | ||
| 211 | clocks = <&tegra_car TEGRA124_CLK_I2C2>; | ||
| 212 | clock-names = "div-clk"; | ||
| 213 | resets = <&tegra_car 54>; | ||
| 214 | reset-names = "i2c"; | ||
| 215 | dmas = <&apbdma 22>, <&apbdma 22>; | ||
| 216 | dma-names = "rx", "tx"; | ||
| 217 | status = "disabled"; | ||
| 218 | }; | ||
| 219 | |||
| 220 | i2c@7000c500 { | ||
| 221 | compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; | ||
| 222 | reg = <0x7000c500 0x100>; | ||
| 223 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; | ||
| 224 | #address-cells = <1>; | ||
| 225 | #size-cells = <0>; | ||
| 226 | clocks = <&tegra_car TEGRA124_CLK_I2C3>; | ||
| 227 | clock-names = "div-clk"; | ||
| 228 | resets = <&tegra_car 67>; | ||
| 229 | reset-names = "i2c"; | ||
| 230 | dmas = <&apbdma 23>, <&apbdma 23>; | ||
| 231 | dma-names = "rx", "tx"; | ||
| 232 | status = "disabled"; | ||
| 233 | }; | ||
| 234 | |||
| 235 | i2c@7000c700 { | ||
| 236 | compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; | ||
| 237 | reg = <0x7000c700 0x100>; | ||
| 238 | interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | ||
| 239 | #address-cells = <1>; | ||
| 240 | #size-cells = <0>; | ||
| 241 | clocks = <&tegra_car TEGRA124_CLK_I2C4>; | ||
| 242 | clock-names = "div-clk"; | ||
| 243 | resets = <&tegra_car 103>; | ||
| 244 | reset-names = "i2c"; | ||
| 245 | dmas = <&apbdma 26>, <&apbdma 26>; | ||
| 246 | dma-names = "rx", "tx"; | ||
| 247 | status = "disabled"; | ||
| 248 | }; | ||
| 249 | |||
| 250 | i2c@7000d000 { | ||
| 251 | compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; | ||
| 252 | reg = <0x7000d000 0x100>; | ||
| 253 | interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; | ||
| 254 | #address-cells = <1>; | ||
| 255 | #size-cells = <0>; | ||
| 256 | clocks = <&tegra_car TEGRA124_CLK_I2C5>; | ||
| 257 | clock-names = "div-clk"; | ||
| 258 | resets = <&tegra_car 47>; | ||
| 259 | reset-names = "i2c"; | ||
| 260 | dmas = <&apbdma 24>, <&apbdma 24>; | ||
| 261 | dma-names = "rx", "tx"; | ||
| 262 | status = "disabled"; | ||
| 263 | }; | ||
| 264 | |||
| 265 | i2c@7000d100 { | ||
| 266 | compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; | ||
| 267 | reg = <0x7000d100 0x100>; | ||
| 268 | interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
| 269 | #address-cells = <1>; | ||
| 270 | #size-cells = <0>; | ||
| 271 | clocks = <&tegra_car TEGRA124_CLK_I2C6>; | ||
| 272 | clock-names = "div-clk"; | ||
| 273 | resets = <&tegra_car 166>; | ||
| 274 | reset-names = "i2c"; | ||
| 275 | dmas = <&apbdma 30>, <&apbdma 30>; | ||
| 276 | dma-names = "rx", "tx"; | ||
| 277 | status = "disabled"; | ||
| 278 | }; | ||
| 279 | |||
| 280 | spi@7000d400 { | ||
| 281 | compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; | ||
| 282 | reg = <0x7000d400 0x200>; | ||
| 283 | interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | ||
| 284 | #address-cells = <1>; | ||
| 285 | #size-cells = <0>; | ||
| 286 | clocks = <&tegra_car TEGRA124_CLK_SBC1>; | ||
| 287 | clock-names = "spi"; | ||
| 288 | resets = <&tegra_car 41>; | ||
| 289 | reset-names = "spi"; | ||
| 290 | dmas = <&apbdma 15>, <&apbdma 15>; | ||
| 291 | dma-names = "rx", "tx"; | ||
| 292 | status = "disabled"; | ||
| 293 | }; | ||
| 294 | |||
| 295 | spi@7000d600 { | ||
| 296 | compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; | ||
| 297 | reg = <0x7000d600 0x200>; | ||
| 298 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; | ||
| 299 | #address-cells = <1>; | ||
| 300 | #size-cells = <0>; | ||
| 301 | clocks = <&tegra_car TEGRA124_CLK_SBC2>; | ||
| 302 | clock-names = "spi"; | ||
| 303 | resets = <&tegra_car 44>; | ||
| 304 | reset-names = "spi"; | ||
| 305 | dmas = <&apbdma 16>, <&apbdma 16>; | ||
| 306 | dma-names = "rx", "tx"; | ||
| 307 | status = "disabled"; | ||
| 308 | }; | ||
| 309 | |||
| 310 | spi@7000d800 { | ||
| 311 | compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; | ||
| 312 | reg = <0x7000d800 0x200>; | ||
| 313 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
| 314 | #address-cells = <1>; | ||
| 315 | #size-cells = <0>; | ||
| 316 | clocks = <&tegra_car TEGRA124_CLK_SBC3>; | ||
| 317 | clock-names = "spi"; | ||
| 318 | resets = <&tegra_car 46>; | ||
| 319 | reset-names = "spi"; | ||
| 320 | dmas = <&apbdma 17>, <&apbdma 17>; | ||
| 321 | dma-names = "rx", "tx"; | ||
| 322 | status = "disabled"; | ||
| 323 | }; | ||
| 324 | |||
| 325 | spi@7000da00 { | ||
| 326 | compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; | ||
| 327 | reg = <0x7000da00 0x200>; | ||
| 328 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
| 329 | #address-cells = <1>; | ||
| 330 | #size-cells = <0>; | ||
| 331 | clocks = <&tegra_car TEGRA124_CLK_SBC4>; | ||
| 332 | clock-names = "spi"; | ||
| 333 | resets = <&tegra_car 68>; | ||
| 334 | reset-names = "spi"; | ||
| 335 | dmas = <&apbdma 18>, <&apbdma 18>; | ||
| 336 | dma-names = "rx", "tx"; | ||
| 337 | status = "disabled"; | ||
| 338 | }; | ||
| 339 | |||
| 340 | spi@7000dc00 { | ||
| 341 | compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; | ||
| 342 | reg = <0x7000dc00 0x200>; | ||
| 343 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; | ||
| 344 | #address-cells = <1>; | ||
| 345 | #size-cells = <0>; | ||
| 346 | clocks = <&tegra_car TEGRA124_CLK_SBC5>; | ||
| 347 | clock-names = "spi"; | ||
| 348 | resets = <&tegra_car 104>; | ||
| 349 | reset-names = "spi"; | ||
| 350 | dmas = <&apbdma 27>, <&apbdma 27>; | ||
| 351 | dma-names = "rx", "tx"; | ||
| 352 | status = "disabled"; | ||
| 353 | }; | ||
| 354 | |||
| 355 | spi@7000de00 { | ||
| 356 | compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; | ||
| 357 | reg = <0x7000de00 0x200>; | ||
| 358 | interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; | ||
| 359 | #address-cells = <1>; | ||
| 360 | #size-cells = <0>; | ||
| 361 | clocks = <&tegra_car TEGRA124_CLK_SBC6>; | ||
| 362 | clock-names = "spi"; | ||
| 363 | resets = <&tegra_car 105>; | ||
| 364 | reset-names = "spi"; | ||
| 365 | dmas = <&apbdma 28>, <&apbdma 28>; | ||
| 366 | dma-names = "rx", "tx"; | ||
| 95 | status = "disabled"; | 367 | status = "disabled"; |
| 96 | }; | 368 | }; |
| 97 | 369 | ||
| @@ -99,11 +371,157 @@ | |||
| 99 | compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; | 371 | compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; |
| 100 | reg = <0x7000e000 0x100>; | 372 | reg = <0x7000e000 0x100>; |
| 101 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | 373 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; |
| 374 | clocks = <&tegra_car TEGRA124_CLK_RTC>; | ||
| 102 | }; | 375 | }; |
| 103 | 376 | ||
| 104 | pmc@7000e400 { | 377 | pmc@7000e400 { |
| 105 | compatible = "nvidia,tegra124-pmc"; | 378 | compatible = "nvidia,tegra124-pmc"; |
| 106 | reg = <0x7000e400 0x400>; | 379 | reg = <0x7000e400 0x400>; |
| 380 | clocks = <&tegra_car TEGRA124_CLK_PCLK>, <&clk32k_in>; | ||
| 381 | clock-names = "pclk", "clk32k_in"; | ||
| 382 | }; | ||
| 383 | |||
| 384 | sdhci@700b0000 { | ||
| 385 | compatible = "nvidia,tegra124-sdhci"; | ||
| 386 | reg = <0x700b0000 0x200>; | ||
| 387 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
| 388 | clocks = <&tegra_car TEGRA124_CLK_SDMMC1>; | ||
| 389 | resets = <&tegra_car 14>; | ||
| 390 | reset-names = "sdhci"; | ||
| 391 | status = "disable"; | ||
| 392 | }; | ||
| 393 | |||
| 394 | sdhci@700b0200 { | ||
| 395 | compatible = "nvidia,tegra124-sdhci"; | ||
| 396 | reg = <0x700b0200 0x200>; | ||
| 397 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
| 398 | clocks = <&tegra_car TEGRA124_CLK_SDMMC2>; | ||
| 399 | resets = <&tegra_car 9>; | ||
| 400 | reset-names = "sdhci"; | ||
| 401 | status = "disable"; | ||
| 402 | }; | ||
| 403 | |||
| 404 | sdhci@700b0400 { | ||
| 405 | compatible = "nvidia,tegra124-sdhci"; | ||
| 406 | reg = <0x700b0400 0x200>; | ||
| 407 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | ||
| 408 | clocks = <&tegra_car TEGRA124_CLK_SDMMC3>; | ||
| 409 | resets = <&tegra_car 69>; | ||
| 410 | reset-names = "sdhci"; | ||
| 411 | status = "disable"; | ||
| 412 | }; | ||
| 413 | |||
| 414 | sdhci@700b0600 { | ||
| 415 | compatible = "nvidia,tegra124-sdhci"; | ||
| 416 | reg = <0x700b0600 0x200>; | ||
| 417 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | ||
| 418 | clocks = <&tegra_car TEGRA124_CLK_SDMMC4>; | ||
| 419 | resets = <&tegra_car 15>; | ||
| 420 | reset-names = "sdhci"; | ||
| 421 | status = "disable"; | ||
| 422 | }; | ||
| 423 | |||
| 424 | ahub@70300000 { | ||
| 425 | compatible = "nvidia,tegra124-ahub"; | ||
| 426 | reg = <0x70300000 0x200>, | ||
| 427 | <0x70300800 0x800>, | ||
| 428 | <0x70300200 0x600>; | ||
| 429 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | ||
| 430 | clocks = <&tegra_car TEGRA124_CLK_D_AUDIO>, | ||
| 431 | <&tegra_car TEGRA124_CLK_APBIF>; | ||
| 432 | clock-names = "d_audio", "apbif"; | ||
| 433 | resets = <&tegra_car 106>, /* d_audio */ | ||
| 434 | <&tegra_car 107>, /* apbif */ | ||
| 435 | <&tegra_car 30>, /* i2s0 */ | ||
| 436 | <&tegra_car 11>, /* i2s1 */ | ||
| 437 | <&tegra_car 18>, /* i2s2 */ | ||
| 438 | <&tegra_car 101>, /* i2s3 */ | ||
| 439 | <&tegra_car 102>, /* i2s4 */ | ||
| 440 | <&tegra_car 108>, /* dam0 */ | ||
| 441 | <&tegra_car 109>, /* dam1 */ | ||
| 442 | <&tegra_car 110>, /* dam2 */ | ||
| 443 | <&tegra_car 10>, /* spdif */ | ||
| 444 | <&tegra_car 153>, /* amx */ | ||
| 445 | <&tegra_car 185>, /* amx1 */ | ||
| 446 | <&tegra_car 154>, /* adx */ | ||
| 447 | <&tegra_car 180>, /* adx1 */ | ||
| 448 | <&tegra_car 186>, /* afc0 */ | ||
| 449 | <&tegra_car 187>, /* afc1 */ | ||
| 450 | <&tegra_car 188>, /* afc2 */ | ||
| 451 | <&tegra_car 189>, /* afc3 */ | ||
| 452 | <&tegra_car 190>, /* afc4 */ | ||
| 453 | <&tegra_car 191>; /* afc5 */ | ||
| 454 | reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2", | ||
| 455 | "i2s3", "i2s4", "dam0", "dam1", "dam2", | ||
| 456 | "spdif", "amx", "amx1", "adx", "adx1", | ||
| 457 | "afc0", "afc1", "afc2", "afc3", "afc4", "afc5"; | ||
| 458 | dmas = <&apbdma 1>, <&apbdma 1>, | ||
| 459 | <&apbdma 2>, <&apbdma 2>, | ||
| 460 | <&apbdma 3>, <&apbdma 3>, | ||
| 461 | <&apbdma 4>, <&apbdma 4>, | ||
| 462 | <&apbdma 6>, <&apbdma 6>, | ||
| 463 | <&apbdma 7>, <&apbdma 7>, | ||
| 464 | <&apbdma 12>, <&apbdma 12>, | ||
| 465 | <&apbdma 13>, <&apbdma 13>, | ||
| 466 | <&apbdma 14>, <&apbdma 14>, | ||
| 467 | <&apbdma 29>, <&apbdma 29>; | ||
| 468 | dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2", | ||
| 469 | "rx3", "tx3", "rx4", "tx4", "rx5", "tx5", | ||
| 470 | "rx6", "tx6", "rx7", "tx7", "rx8", "tx8", | ||
| 471 | "rx9", "tx9"; | ||
| 472 | ranges; | ||
| 473 | #address-cells = <1>; | ||
| 474 | #size-cells = <1>; | ||
| 475 | |||
| 476 | tegra_i2s0: i2s@70301000 { | ||
| 477 | compatible = "nvidia,tegra124-i2s"; | ||
| 478 | reg = <0x70301000 0x100>; | ||
| 479 | nvidia,ahub-cif-ids = <4 4>; | ||
| 480 | clocks = <&tegra_car TEGRA124_CLK_I2S0>; | ||
| 481 | resets = <&tegra_car 30>; | ||
| 482 | reset-names = "i2s"; | ||
| 483 | status = "disabled"; | ||
| 484 | }; | ||
| 485 | |||
| 486 | tegra_i2s1: i2s@70301100 { | ||
| 487 | compatible = "nvidia,tegra124-i2s"; | ||
| 488 | reg = <0x70301100 0x100>; | ||
| 489 | nvidia,ahub-cif-ids = <5 5>; | ||
| 490 | clocks = <&tegra_car TEGRA124_CLK_I2S1>; | ||
| 491 | resets = <&tegra_car 11>; | ||
| 492 | reset-names = "i2s"; | ||
| 493 | status = "disabled"; | ||
| 494 | }; | ||
| 495 | |||
| 496 | tegra_i2s2: i2s@70301200 { | ||
| 497 | compatible = "nvidia,tegra124-i2s"; | ||
| 498 | reg = <0x70301200 0x100>; | ||
| 499 | nvidia,ahub-cif-ids = <6 6>; | ||
| 500 | clocks = <&tegra_car TEGRA124_CLK_I2S2>; | ||
| 501 | resets = <&tegra_car 18>; | ||
| 502 | reset-names = "i2s"; | ||
| 503 | status = "disabled"; | ||
| 504 | }; | ||
| 505 | |||
| 506 | tegra_i2s3: i2s@70301300 { | ||
| 507 | compatible = "nvidia,tegra124-i2s"; | ||
| 508 | reg = <0x70301300 0x100>; | ||
| 509 | nvidia,ahub-cif-ids = <7 7>; | ||
| 510 | clocks = <&tegra_car TEGRA124_CLK_I2S3>; | ||
| 511 | resets = <&tegra_car 101>; | ||
| 512 | reset-names = "i2s"; | ||
| 513 | status = "disabled"; | ||
| 514 | }; | ||
| 515 | |||
| 516 | tegra_i2s4: i2s@70301400 { | ||
| 517 | compatible = "nvidia,tegra124-i2s"; | ||
| 518 | reg = <0x70301400 0x100>; | ||
| 519 | nvidia,ahub-cif-ids = <8 8>; | ||
| 520 | clocks = <&tegra_car TEGRA124_CLK_I2S4>; | ||
| 521 | resets = <&tegra_car 102>; | ||
| 522 | reset-names = "i2s"; | ||
| 523 | status = "disabled"; | ||
| 524 | }; | ||
| 107 | }; | 525 | }; |
| 108 | 526 | ||
| 109 | cpus { | 527 | cpus { |
diff --git a/arch/arm/boot/dts/tegra20-colibri-512.dtsi b/arch/arm/boot/dts/tegra20-colibri-512.dtsi index cbe89ff10686..8e0066ad9628 100644 --- a/arch/arm/boot/dts/tegra20-colibri-512.dtsi +++ b/arch/arm/boot/dts/tegra20-colibri-512.dtsi | |||
| @@ -4,12 +4,17 @@ | |||
| 4 | model = "Toradex Colibri T20 512MB"; | 4 | model = "Toradex Colibri T20 512MB"; |
| 5 | compatible = "toradex,colibri_t20-512", "nvidia,tegra20"; | 5 | compatible = "toradex,colibri_t20-512", "nvidia,tegra20"; |
| 6 | 6 | ||
| 7 | aliases { | ||
| 8 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 9 | rtc1 = "/rtc@7000e000"; | ||
| 10 | }; | ||
| 11 | |||
| 7 | memory { | 12 | memory { |
| 8 | reg = <0x00000000 0x20000000>; | 13 | reg = <0x00000000 0x20000000>; |
| 9 | }; | 14 | }; |
| 10 | 15 | ||
| 11 | host1x { | 16 | host1x@50000000 { |
| 12 | hdmi { | 17 | hdmi@54280000 { |
| 13 | vdd-supply = <&hdmi_vdd_reg>; | 18 | vdd-supply = <&hdmi_vdd_reg>; |
| 14 | pll-supply = <&hdmi_pll_reg>; | 19 | pll-supply = <&hdmi_pll_reg>; |
| 15 | 20 | ||
| @@ -19,7 +24,7 @@ | |||
| 19 | }; | 24 | }; |
| 20 | }; | 25 | }; |
| 21 | 26 | ||
| 22 | pinmux { | 27 | pinmux@70000014 { |
| 23 | pinctrl-names = "default"; | 28 | pinctrl-names = "default"; |
| 24 | pinctrl-0 = <&state_default>; | 29 | pinctrl-0 = <&state_default>; |
| 25 | 30 | ||
| @@ -27,20 +32,20 @@ | |||
| 27 | audio_refclk { | 32 | audio_refclk { |
| 28 | nvidia,pins = "cdev1"; | 33 | nvidia,pins = "cdev1"; |
| 29 | nvidia,function = "plla_out"; | 34 | nvidia,function = "plla_out"; |
| 30 | nvidia,pull = <0>; | 35 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 31 | nvidia,tristate = <0>; | 36 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 32 | }; | 37 | }; |
| 33 | crt { | 38 | crt { |
| 34 | nvidia,pins = "crtp"; | 39 | nvidia,pins = "crtp"; |
| 35 | nvidia,function = "crt"; | 40 | nvidia,function = "crt"; |
| 36 | nvidia,pull = <0>; | 41 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 37 | nvidia,tristate = <1>; | 42 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 38 | }; | 43 | }; |
| 39 | dap3 { | 44 | dap3 { |
| 40 | nvidia,pins = "dap3"; | 45 | nvidia,pins = "dap3"; |
| 41 | nvidia,function = "dap3"; | 46 | nvidia,function = "dap3"; |
| 42 | nvidia,pull = <0>; | 47 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 43 | nvidia,tristate = <0>; | 48 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 44 | }; | 49 | }; |
| 45 | displaya { | 50 | displaya { |
| 46 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", | 51 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", |
| @@ -50,155 +55,163 @@ | |||
| 50 | "lhs", "lpw0", "lpw2", "lsc0", | 55 | "lhs", "lpw0", "lpw2", "lsc0", |
| 51 | "lsc1", "lsck", "lsda", "lspi", "lvs"; | 56 | "lsc1", "lsck", "lsda", "lspi", "lvs"; |
| 52 | nvidia,function = "displaya"; | 57 | nvidia,function = "displaya"; |
| 53 | nvidia,tristate = <1>; | 58 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 54 | }; | 59 | }; |
| 55 | gpio_dte { | 60 | gpio_dte { |
| 56 | nvidia,pins = "dte"; | 61 | nvidia,pins = "dte"; |
| 57 | nvidia,function = "rsvd1"; | 62 | nvidia,function = "rsvd1"; |
| 58 | nvidia,pull = <0>; | 63 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 59 | nvidia,tristate = <0>; | 64 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 60 | }; | 65 | }; |
| 61 | gpio_gmi { | 66 | gpio_gmi { |
| 62 | nvidia,pins = "ata", "atc", "atd", "ate", | 67 | nvidia,pins = "ata", "atc", "atd", "ate", |
| 63 | "dap1", "dap2", "dap4", "gpu", "irrx", | 68 | "dap1", "dap2", "dap4", "gpu", "irrx", |
| 64 | "irtx", "spia", "spib", "spic"; | 69 | "irtx", "spia", "spib", "spic"; |
| 65 | nvidia,function = "gmi"; | 70 | nvidia,function = "gmi"; |
| 66 | nvidia,pull = <0>; | 71 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 67 | nvidia,tristate = <0>; | 72 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 68 | }; | 73 | }; |
| 69 | gpio_pta { | 74 | gpio_pta { |
| 70 | nvidia,pins = "pta"; | 75 | nvidia,pins = "pta"; |
| 71 | nvidia,function = "rsvd4"; | 76 | nvidia,function = "rsvd4"; |
| 72 | nvidia,pull = <0>; | 77 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 73 | nvidia,tristate = <0>; | 78 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 74 | }; | 79 | }; |
| 75 | gpio_uac { | 80 | gpio_uac { |
| 76 | nvidia,pins = "uac"; | 81 | nvidia,pins = "uac"; |
| 77 | nvidia,function = "rsvd2"; | 82 | nvidia,function = "rsvd2"; |
| 78 | nvidia,pull = <0>; | 83 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 79 | nvidia,tristate = <0>; | 84 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 80 | }; | 85 | }; |
| 81 | hdint { | 86 | hdint { |
| 82 | nvidia,pins = "hdint"; | 87 | nvidia,pins = "hdint"; |
| 83 | nvidia,function = "hdmi"; | 88 | nvidia,function = "hdmi"; |
| 84 | nvidia,tristate = <1>; | 89 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 85 | }; | 90 | }; |
| 86 | i2c1 { | 91 | i2c1 { |
| 87 | nvidia,pins = "rm"; | 92 | nvidia,pins = "rm"; |
| 88 | nvidia,function = "i2c1"; | 93 | nvidia,function = "i2c1"; |
| 89 | nvidia,pull = <0>; | 94 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 90 | nvidia,tristate = <1>; | 95 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 91 | }; | 96 | }; |
| 92 | i2c3 { | 97 | i2c3 { |
| 93 | nvidia,pins = "dtf"; | 98 | nvidia,pins = "dtf"; |
| 94 | nvidia,function = "i2c3"; | 99 | nvidia,function = "i2c3"; |
| 95 | nvidia,pull = <0>; | 100 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 96 | nvidia,tristate = <1>; | 101 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 97 | }; | 102 | }; |
| 98 | i2cddc { | 103 | i2cddc { |
| 99 | nvidia,pins = "ddc"; | 104 | nvidia,pins = "ddc"; |
| 100 | nvidia,function = "i2c2"; | 105 | nvidia,function = "i2c2"; |
| 101 | nvidia,pull = <2>; | 106 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 102 | nvidia,tristate = <1>; | 107 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 103 | }; | 108 | }; |
| 104 | i2cp { | 109 | i2cp { |
| 105 | nvidia,pins = "i2cp"; | 110 | nvidia,pins = "i2cp"; |
| 106 | nvidia,function = "i2cp"; | 111 | nvidia,function = "i2cp"; |
| 107 | nvidia,pull = <0>; | 112 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 108 | nvidia,tristate = <0>; | 113 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 109 | }; | 114 | }; |
| 110 | irda { | 115 | irda { |
| 111 | nvidia,pins = "uad"; | 116 | nvidia,pins = "uad"; |
| 112 | nvidia,function = "irda"; | 117 | nvidia,function = "irda"; |
| 113 | nvidia,pull = <0>; | 118 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 114 | nvidia,tristate = <1>; | 119 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 115 | }; | 120 | }; |
| 116 | nand { | 121 | nand { |
| 117 | nvidia,pins = "kbca", "kbcc", "kbcd", | 122 | nvidia,pins = "kbca", "kbcc", "kbcd", |
| 118 | "kbce", "kbcf"; | 123 | "kbce", "kbcf"; |
| 119 | nvidia,function = "nand"; | 124 | nvidia,function = "nand"; |
| 120 | nvidia,pull = <0>; | 125 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 121 | nvidia,tristate = <0>; | 126 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 122 | }; | 127 | }; |
| 123 | owc { | 128 | owc { |
| 124 | nvidia,pins = "owc"; | 129 | nvidia,pins = "owc"; |
| 125 | nvidia,function = "owr"; | 130 | nvidia,function = "owr"; |
| 126 | nvidia,pull = <0>; | 131 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 127 | nvidia,tristate = <1>; | 132 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 128 | }; | 133 | }; |
| 129 | pmc { | 134 | pmc { |
| 130 | nvidia,pins = "pmc"; | 135 | nvidia,pins = "pmc"; |
| 131 | nvidia,function = "pwr_on"; | 136 | nvidia,function = "pwr_on"; |
| 132 | nvidia,tristate = <0>; | 137 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 133 | }; | 138 | }; |
| 134 | pwm { | 139 | pwm { |
| 135 | nvidia,pins = "sdb", "sdc", "sdd"; | 140 | nvidia,pins = "sdb", "sdc", "sdd"; |
| 136 | nvidia,function = "pwm"; | 141 | nvidia,function = "pwm"; |
| 137 | nvidia,tristate = <1>; | 142 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 138 | }; | 143 | }; |
| 139 | sdio4 { | 144 | sdio4 { |
| 140 | nvidia,pins = "atb", "gma", "gme"; | 145 | nvidia,pins = "atb", "gma", "gme"; |
| 141 | nvidia,function = "sdio4"; | 146 | nvidia,function = "sdio4"; |
| 142 | nvidia,pull = <0>; | 147 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 143 | nvidia,tristate = <1>; | 148 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 144 | }; | 149 | }; |
| 145 | spi1 { | 150 | spi1 { |
| 146 | nvidia,pins = "spid", "spie", "spif"; | 151 | nvidia,pins = "spid", "spie", "spif"; |
| 147 | nvidia,function = "spi1"; | 152 | nvidia,function = "spi1"; |
| 148 | nvidia,pull = <0>; | 153 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 149 | nvidia,tristate = <1>; | 154 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 150 | }; | 155 | }; |
| 151 | spi4 { | 156 | spi4 { |
| 152 | nvidia,pins = "slxa", "slxc", "slxd", "slxk"; | 157 | nvidia,pins = "slxa", "slxc", "slxd", "slxk"; |
| 153 | nvidia,function = "spi4"; | 158 | nvidia,function = "spi4"; |
| 154 | nvidia,pull = <0>; | 159 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 155 | nvidia,tristate = <1>; | 160 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 156 | }; | 161 | }; |
| 157 | uarta { | 162 | uarta { |
| 158 | nvidia,pins = "sdio1"; | 163 | nvidia,pins = "sdio1"; |
| 159 | nvidia,function = "uarta"; | 164 | nvidia,function = "uarta"; |
| 160 | nvidia,pull = <0>; | 165 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 161 | nvidia,tristate = <1>; | 166 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 162 | }; | 167 | }; |
| 163 | uartd { | 168 | uartd { |
| 164 | nvidia,pins = "gmc"; | 169 | nvidia,pins = "gmc"; |
| 165 | nvidia,function = "uartd"; | 170 | nvidia,function = "uartd"; |
| 166 | nvidia,pull = <0>; | 171 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 167 | nvidia,tristate = <1>; | 172 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 168 | }; | 173 | }; |
| 169 | ulpi { | 174 | ulpi { |
| 170 | nvidia,pins = "uaa", "uab", "uda"; | 175 | nvidia,pins = "uaa", "uab", "uda"; |
| 171 | nvidia,function = "ulpi"; | 176 | nvidia,function = "ulpi"; |
| 172 | nvidia,pull = <0>; | 177 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 173 | nvidia,tristate = <0>; | 178 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 174 | }; | 179 | }; |
| 175 | ulpi_refclk { | 180 | ulpi_refclk { |
| 176 | nvidia,pins = "cdev2"; | 181 | nvidia,pins = "cdev2"; |
| 177 | nvidia,function = "pllp_out4"; | 182 | nvidia,function = "pllp_out4"; |
| 178 | nvidia,pull = <0>; | 183 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 179 | nvidia,tristate = <0>; | 184 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 180 | }; | 185 | }; |
| 181 | usb_gpio { | 186 | usb_gpio { |
| 182 | nvidia,pins = "spig", "spih"; | 187 | nvidia,pins = "spig", "spih"; |
| 183 | nvidia,function = "spi2_alt"; | 188 | nvidia,function = "spi2_alt"; |
| 184 | nvidia,pull = <0>; | 189 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 185 | nvidia,tristate = <0>; | 190 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 186 | }; | 191 | }; |
| 187 | vi { | 192 | vi { |
| 188 | nvidia,pins = "dta", "dtb", "dtc", "dtd"; | 193 | nvidia,pins = "dta", "dtb", "dtc", "dtd"; |
| 189 | nvidia,function = "vi"; | 194 | nvidia,function = "vi"; |
| 190 | nvidia,pull = <0>; | 195 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 191 | nvidia,tristate = <1>; | 196 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 192 | }; | 197 | }; |
| 193 | vi_sc { | 198 | vi_sc { |
| 194 | nvidia,pins = "csus"; | 199 | nvidia,pins = "csus"; |
| 195 | nvidia,function = "vi_sensor_clk"; | 200 | nvidia,function = "vi_sensor_clk"; |
| 196 | nvidia,pull = <0>; | 201 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 197 | nvidia,tristate = <1>; | 202 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 198 | }; | 203 | }; |
| 199 | }; | 204 | }; |
| 200 | }; | 205 | }; |
| 201 | 206 | ||
| 207 | ac97: ac97@70002000 { | ||
| 208 | status = "okay"; | ||
| 209 | nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0) | ||
| 210 | GPIO_ACTIVE_HIGH>; | ||
| 211 | nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0) | ||
| 212 | GPIO_ACTIVE_HIGH>; | ||
| 213 | }; | ||
| 214 | |||
| 202 | i2c@7000c000 { | 215 | i2c@7000c000 { |
| 203 | clock-frequency = <400000>; | 216 | clock-frequency = <400000>; |
| 204 | }; | 217 | }; |
| @@ -225,15 +238,15 @@ | |||
| 225 | #gpio-cells = <2>; | 238 | #gpio-cells = <2>; |
| 226 | gpio-controller; | 239 | gpio-controller; |
| 227 | 240 | ||
| 228 | sys-supply = <&vdd_5v0_reg>; | 241 | sys-supply = <&vdd_3v3_reg>; |
| 229 | vin-sm0-supply = <&sys_reg>; | 242 | vin-sm0-supply = <&sys_reg>; |
| 230 | vin-sm1-supply = <&sys_reg>; | 243 | vin-sm1-supply = <&sys_reg>; |
| 231 | vin-sm2-supply = <&sys_reg>; | 244 | vin-sm2-supply = <&sys_reg>; |
| 232 | vinldo01-supply = <&sm2_reg>; | 245 | vinldo01-supply = <&sm2_reg>; |
| 233 | vinldo23-supply = <&sm2_reg>; | 246 | vinldo23-supply = <&vdd_3v3_reg>; |
| 234 | vinldo4-supply = <&sm2_reg>; | 247 | vinldo4-supply = <&vdd_3v3_reg>; |
| 235 | vinldo678-supply = <&sm2_reg>; | 248 | vinldo678-supply = <&vdd_3v3_reg>; |
| 236 | vinldo9-supply = <&sm2_reg>; | 249 | vinldo9-supply = <&vdd_3v3_reg>; |
| 237 | 250 | ||
| 238 | regulators { | 251 | regulators { |
| 239 | #address-cells = <1>; | 252 | #address-cells = <1>; |
| @@ -250,8 +263,8 @@ | |||
| 250 | reg = <1>; | 263 | reg = <1>; |
| 251 | regulator-compatible = "sm0"; | 264 | regulator-compatible = "sm0"; |
| 252 | regulator-name = "vdd_sm0,vdd_core"; | 265 | regulator-name = "vdd_sm0,vdd_core"; |
| 253 | regulator-min-microvolt = <1275000>; | 266 | regulator-min-microvolt = <1200000>; |
| 254 | regulator-max-microvolt = <1275000>; | 267 | regulator-max-microvolt = <1200000>; |
| 255 | regulator-always-on; | 268 | regulator-always-on; |
| 256 | }; | 269 | }; |
| 257 | 270 | ||
| @@ -259,8 +272,8 @@ | |||
| 259 | reg = <2>; | 272 | reg = <2>; |
| 260 | regulator-compatible = "sm1"; | 273 | regulator-compatible = "sm1"; |
| 261 | regulator-name = "vdd_sm1,vdd_cpu"; | 274 | regulator-name = "vdd_sm1,vdd_cpu"; |
| 262 | regulator-min-microvolt = <1100000>; | 275 | regulator-min-microvolt = <1000000>; |
| 263 | regulator-max-microvolt = <1100000>; | 276 | regulator-max-microvolt = <1000000>; |
| 264 | regulator-always-on; | 277 | regulator-always-on; |
| 265 | }; | 278 | }; |
| 266 | 279 | ||
| @@ -316,8 +329,8 @@ | |||
| 316 | reg = <10>; | 329 | reg = <10>; |
| 317 | regulator-compatible = "ldo6"; | 330 | regulator-compatible = "ldo6"; |
| 318 | regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam"; | 331 | regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam"; |
| 319 | regulator-min-microvolt = <1800000>; | 332 | regulator-min-microvolt = <2850000>; |
| 320 | regulator-max-microvolt = <1800000>; | 333 | regulator-max-microvolt = <2850000>; |
| 321 | }; | 334 | }; |
| 322 | 335 | ||
| 323 | hdmi_vdd_reg: regulator@11 { | 336 | hdmi_vdd_reg: regulator@11 { |
| @@ -362,7 +375,7 @@ | |||
| 362 | }; | 375 | }; |
| 363 | }; | 376 | }; |
| 364 | 377 | ||
| 365 | pmc { | 378 | pmc@7000e400 { |
| 366 | nvidia,suspend-mode = <1>; | 379 | nvidia,suspend-mode = <1>; |
| 367 | nvidia,cpu-pwr-good-time = <5000>; | 380 | nvidia,cpu-pwr-good-time = <5000>; |
| 368 | nvidia,cpu-pwr-off-time = <5000>; | 381 | nvidia,cpu-pwr-off-time = <5000>; |
| @@ -442,14 +455,6 @@ | |||
| 442 | }; | 455 | }; |
| 443 | }; | 456 | }; |
| 444 | 457 | ||
| 445 | ac97: ac97 { | ||
| 446 | status = "okay"; | ||
| 447 | nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0) | ||
| 448 | GPIO_ACTIVE_HIGH>; | ||
| 449 | nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0) | ||
| 450 | GPIO_ACTIVE_HIGH>; | ||
| 451 | }; | ||
| 452 | |||
| 453 | usb@c5004000 { | 458 | usb@c5004000 { |
| 454 | status = "okay"; | 459 | status = "okay"; |
| 455 | nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1) | 460 | nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1) |
| @@ -471,7 +476,7 @@ | |||
| 471 | #address-cells = <1>; | 476 | #address-cells = <1>; |
| 472 | #size-cells = <0>; | 477 | #size-cells = <0>; |
| 473 | 478 | ||
| 474 | clk32k_in: clock { | 479 | clk32k_in: clock@0 { |
| 475 | compatible = "fixed-clock"; | 480 | compatible = "fixed-clock"; |
| 476 | reg=<0>; | 481 | reg=<0>; |
| 477 | #clock-cells = <0>; | 482 | #clock-cells = <0>; |
| @@ -479,37 +484,17 @@ | |||
| 479 | }; | 484 | }; |
| 480 | }; | 485 | }; |
| 481 | 486 | ||
| 482 | sound { | ||
| 483 | compatible = "nvidia,tegra-audio-wm9712-colibri_t20", | ||
| 484 | "nvidia,tegra-audio-wm9712"; | ||
| 485 | nvidia,model = "Colibri T20 AC97 Audio"; | ||
| 486 | |||
| 487 | nvidia,audio-routing = | ||
| 488 | "Headphone", "HPOUTL", | ||
| 489 | "Headphone", "HPOUTR", | ||
| 490 | "LineIn", "LINEINL", | ||
| 491 | "LineIn", "LINEINR", | ||
| 492 | "Mic", "MIC1"; | ||
| 493 | |||
| 494 | nvidia,ac97-controller = <&ac97>; | ||
| 495 | |||
| 496 | clocks = <&tegra_car TEGRA20_CLK_PLL_A>, | ||
| 497 | <&tegra_car TEGRA20_CLK_PLL_A_OUT0>, | ||
| 498 | <&tegra_car TEGRA20_CLK_CDEV1>; | ||
| 499 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
| 500 | }; | ||
| 501 | |||
| 502 | regulators { | 487 | regulators { |
| 503 | compatible = "simple-bus"; | 488 | compatible = "simple-bus"; |
| 504 | #address-cells = <1>; | 489 | #address-cells = <1>; |
| 505 | #size-cells = <0>; | 490 | #size-cells = <0>; |
| 506 | 491 | ||
| 507 | vdd_5v0_reg: regulator@100 { | 492 | vdd_3v3_reg: regulator@100 { |
| 508 | compatible = "regulator-fixed"; | 493 | compatible = "regulator-fixed"; |
| 509 | reg = <100>; | 494 | reg = <100>; |
| 510 | regulator-name = "vdd_5v0"; | 495 | regulator-name = "vdd_3v3"; |
| 511 | regulator-min-microvolt = <5000000>; | 496 | regulator-min-microvolt = <3300000>; |
| 512 | regulator-max-microvolt = <5000000>; | 497 | regulator-max-microvolt = <3300000>; |
| 513 | regulator-always-on; | 498 | regulator-always-on; |
| 514 | }; | 499 | }; |
| 515 | 500 | ||
| @@ -525,4 +510,24 @@ | |||
| 525 | gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>; | 510 | gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>; |
| 526 | }; | 511 | }; |
| 527 | }; | 512 | }; |
| 513 | |||
| 514 | sound { | ||
| 515 | compatible = "nvidia,tegra-audio-wm9712-colibri_t20", | ||
| 516 | "nvidia,tegra-audio-wm9712"; | ||
| 517 | nvidia,model = "Colibri T20 AC97 Audio"; | ||
| 518 | |||
| 519 | nvidia,audio-routing = | ||
| 520 | "Headphone", "HPOUTL", | ||
| 521 | "Headphone", "HPOUTR", | ||
| 522 | "LineIn", "LINEINL", | ||
| 523 | "LineIn", "LINEINR", | ||
| 524 | "Mic", "MIC1"; | ||
| 525 | |||
| 526 | nvidia,ac97-controller = <&ac97>; | ||
| 527 | |||
| 528 | clocks = <&tegra_car TEGRA20_CLK_PLL_A>, | ||
| 529 | <&tegra_car TEGRA20_CLK_PLL_A_OUT0>, | ||
| 530 | <&tegra_car TEGRA20_CLK_CDEV1>; | ||
| 531 | clock-names = "pll_a", "pll_a_out0", "mclk"; | ||
| 532 | }; | ||
| 528 | }; | 533 | }; |
diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts index e156ab30e763..3fb1f50f6d46 100644 --- a/arch/arm/boot/dts/tegra20-harmony.dts +++ b/arch/arm/boot/dts/tegra20-harmony.dts | |||
| @@ -1,17 +1,31 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra20.dtsi" | 4 | #include "tegra20.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "NVIDIA Tegra20 Harmony evaluation board"; | 7 | model = "NVIDIA Tegra20 Harmony evaluation board"; |
| 7 | compatible = "nvidia,harmony", "nvidia,tegra20"; | 8 | compatible = "nvidia,harmony", "nvidia,tegra20"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x00000000 0x40000000>; | 16 | reg = <0x00000000 0x40000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 13 | host1x { | 19 | host1x@50000000 { |
| 14 | hdmi { | 20 | dc@54200000 { |
| 21 | rgb { | ||
| 22 | status = "okay"; | ||
| 23 | |||
| 24 | nvidia,panel = <&panel>; | ||
| 25 | }; | ||
| 26 | }; | ||
| 27 | |||
| 28 | hdmi@54280000 { | ||
| 15 | status = "okay"; | 29 | status = "okay"; |
| 16 | 30 | ||
| 17 | vdd-supply = <&hdmi_vdd_reg>; | 31 | vdd-supply = <&hdmi_vdd_reg>; |
| @@ -23,7 +37,7 @@ | |||
| 23 | }; | 37 | }; |
| 24 | }; | 38 | }; |
| 25 | 39 | ||
| 26 | pinmux { | 40 | pinmux@70000014 { |
| 27 | pinctrl-names = "default"; | 41 | pinctrl-names = "default"; |
| 28 | pinctrl-0 = <&state_default>; | 42 | pinctrl-0 = <&state_default>; |
| 29 | 43 | ||
| @@ -184,50 +198,50 @@ | |||
| 184 | "gmb", "gmc", "gmd", "gme", "gpu7", | 198 | "gmb", "gmc", "gmd", "gme", "gpu7", |
| 185 | "gpv", "i2cp", "pta", "rm", "slxa", | 199 | "gpv", "i2cp", "pta", "rm", "slxa", |
| 186 | "slxk", "spia", "spib", "uac"; | 200 | "slxk", "spia", "spib", "uac"; |
| 187 | nvidia,pull = <0>; | 201 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 188 | nvidia,tristate = <0>; | 202 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 189 | }; | 203 | }; |
| 190 | conf_ck32 { | 204 | conf_ck32 { |
| 191 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", | 205 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", |
| 192 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; | 206 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; |
| 193 | nvidia,pull = <0>; | 207 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 194 | }; | 208 | }; |
| 195 | conf_csus { | 209 | conf_csus { |
| 196 | nvidia,pins = "csus", "spid", "spif"; | 210 | nvidia,pins = "csus", "spid", "spif"; |
| 197 | nvidia,pull = <1>; | 211 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 198 | nvidia,tristate = <1>; | 212 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 199 | }; | 213 | }; |
| 200 | conf_crtp { | 214 | conf_crtp { |
| 201 | nvidia,pins = "crtp", "dap2", "dap3", "dap4", | 215 | nvidia,pins = "crtp", "dap2", "dap3", "dap4", |
| 202 | "dtc", "dte", "dtf", "gpu", "sdio1", | 216 | "dtc", "dte", "dtf", "gpu", "sdio1", |
| 203 | "slxc", "slxd", "spdi", "spdo", "spig", | 217 | "slxc", "slxd", "spdi", "spdo", "spig", |
| 204 | "uda"; | 218 | "uda"; |
| 205 | nvidia,pull = <0>; | 219 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 206 | nvidia,tristate = <1>; | 220 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 207 | }; | 221 | }; |
| 208 | conf_ddc { | 222 | conf_ddc { |
| 209 | nvidia,pins = "ddc", "dta", "dtd", "kbca", | 223 | nvidia,pins = "ddc", "dta", "dtd", "kbca", |
| 210 | "kbcb", "kbcc", "kbcd", "kbce", "kbcf", | 224 | "kbcb", "kbcc", "kbcd", "kbce", "kbcf", |
| 211 | "sdc"; | 225 | "sdc"; |
| 212 | nvidia,pull = <2>; | 226 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 213 | nvidia,tristate = <0>; | 227 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 214 | }; | 228 | }; |
| 215 | conf_hdint { | 229 | conf_hdint { |
| 216 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", | 230 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", |
| 217 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", | 231 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", |
| 218 | "lvp0", "owc", "sdb"; | 232 | "lvp0", "owc", "sdb"; |
| 219 | nvidia,tristate = <1>; | 233 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 220 | }; | 234 | }; |
| 221 | conf_irrx { | 235 | conf_irrx { |
| 222 | nvidia,pins = "irrx", "irtx", "sdd", "spic", | 236 | nvidia,pins = "irrx", "irtx", "sdd", "spic", |
| 223 | "spie", "spih", "uaa", "uab", "uad", | 237 | "spie", "spih", "uaa", "uab", "uad", |
| 224 | "uca", "ucb"; | 238 | "uca", "ucb"; |
| 225 | nvidia,pull = <2>; | 239 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 226 | nvidia,tristate = <1>; | 240 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 227 | }; | 241 | }; |
| 228 | conf_lc { | 242 | conf_lc { |
| 229 | nvidia,pins = "lc", "ls"; | 243 | nvidia,pins = "lc", "ls"; |
| 230 | nvidia,pull = <2>; | 244 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 231 | }; | 245 | }; |
| 232 | conf_ld0 { | 246 | conf_ld0 { |
| 233 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", | 247 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", |
| @@ -237,12 +251,12 @@ | |||
| 237 | "lhp1", "lhp2", "lhs", "lm0", "lpp", | 251 | "lhp1", "lhp2", "lhs", "lm0", "lpp", |
| 238 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", | 252 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", |
| 239 | "lvs", "pmc"; | 253 | "lvs", "pmc"; |
| 240 | nvidia,tristate = <0>; | 254 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 241 | }; | 255 | }; |
| 242 | conf_ld17_0 { | 256 | conf_ld17_0 { |
| 243 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 257 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 244 | "ld23_22"; | 258 | "ld23_22"; |
| 245 | nvidia,pull = <1>; | 259 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 246 | }; | 260 | }; |
| 247 | }; | 261 | }; |
| 248 | }; | 262 | }; |
| @@ -255,6 +269,10 @@ | |||
| 255 | status = "okay"; | 269 | status = "okay"; |
| 256 | }; | 270 | }; |
| 257 | 271 | ||
| 272 | pwm: pwm@7000a000 { | ||
| 273 | status = "okay"; | ||
| 274 | }; | ||
| 275 | |||
| 258 | i2c@7000c000 { | 276 | i2c@7000c000 { |
| 259 | status = "okay"; | 277 | status = "okay"; |
| 260 | clock-frequency = <400000>; | 278 | clock-frequency = <400000>; |
| @@ -415,7 +433,124 @@ | |||
| 415 | }; | 433 | }; |
| 416 | }; | 434 | }; |
| 417 | 435 | ||
| 418 | pmc { | 436 | kbc@7000e200 { |
| 437 | status = "okay"; | ||
| 438 | nvidia,debounce-delay-ms = <2>; | ||
| 439 | nvidia,repeat-delay-ms = <160>; | ||
| 440 | nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; | ||
| 441 | nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>; | ||
| 442 | linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_W) | ||
| 443 | MATRIX_KEY(0x00, 0x03, KEY_S) | ||
| 444 | MATRIX_KEY(0x00, 0x04, KEY_A) | ||
| 445 | MATRIX_KEY(0x00, 0x05, KEY_Z) | ||
| 446 | MATRIX_KEY(0x00, 0x07, KEY_FN) | ||
| 447 | MATRIX_KEY(0x01, 0x07, KEY_MENU) | ||
| 448 | MATRIX_KEY(0x02, 0x06, KEY_LEFTALT) | ||
| 449 | MATRIX_KEY(0x02, 0x07, KEY_RIGHTALT) | ||
| 450 | MATRIX_KEY(0x03, 0x00, KEY_5) | ||
| 451 | MATRIX_KEY(0x03, 0x01, KEY_4) | ||
| 452 | MATRIX_KEY(0x03, 0x02, KEY_R) | ||
| 453 | MATRIX_KEY(0x03, 0x03, KEY_E) | ||
| 454 | MATRIX_KEY(0x03, 0x04, KEY_F) | ||
| 455 | MATRIX_KEY(0x03, 0x05, KEY_D) | ||
| 456 | MATRIX_KEY(0x03, 0x06, KEY_X) | ||
| 457 | MATRIX_KEY(0x04, 0x00, KEY_7) | ||
| 458 | MATRIX_KEY(0x04, 0x01, KEY_6) | ||
| 459 | MATRIX_KEY(0x04, 0x02, KEY_T) | ||
| 460 | MATRIX_KEY(0x04, 0x03, KEY_H) | ||
| 461 | MATRIX_KEY(0x04, 0x04, KEY_G) | ||
| 462 | MATRIX_KEY(0x04, 0x05, KEY_V) | ||
| 463 | MATRIX_KEY(0x04, 0x06, KEY_C) | ||
| 464 | MATRIX_KEY(0x04, 0x07, KEY_SPACE) | ||
| 465 | MATRIX_KEY(0x05, 0x00, KEY_9) | ||
| 466 | MATRIX_KEY(0x05, 0x01, KEY_8) | ||
| 467 | MATRIX_KEY(0x05, 0x02, KEY_U) | ||
| 468 | MATRIX_KEY(0x05, 0x03, KEY_Y) | ||
| 469 | MATRIX_KEY(0x05, 0x04, KEY_J) | ||
| 470 | MATRIX_KEY(0x05, 0x05, KEY_N) | ||
| 471 | MATRIX_KEY(0x05, 0x06, KEY_B) | ||
| 472 | MATRIX_KEY(0x05, 0x07, KEY_BACKSLASH) | ||
| 473 | MATRIX_KEY(0x06, 0x00, KEY_MINUS) | ||
| 474 | MATRIX_KEY(0x06, 0x01, KEY_0) | ||
| 475 | MATRIX_KEY(0x06, 0x02, KEY_O) | ||
| 476 | MATRIX_KEY(0x06, 0x03, KEY_I) | ||
| 477 | MATRIX_KEY(0x06, 0x04, KEY_L) | ||
| 478 | MATRIX_KEY(0x06, 0x05, KEY_K) | ||
| 479 | MATRIX_KEY(0x06, 0x06, KEY_COMMA) | ||
| 480 | MATRIX_KEY(0x06, 0x07, KEY_M) | ||
| 481 | MATRIX_KEY(0x07, 0x01, KEY_EQUAL) | ||
| 482 | MATRIX_KEY(0x07, 0x02, KEY_RIGHTBRACE) | ||
| 483 | MATRIX_KEY(0x07, 0x03, KEY_ENTER) | ||
| 484 | MATRIX_KEY(0x07, 0x07, KEY_MENU) | ||
| 485 | MATRIX_KEY(0x08, 0x04, KEY_LEFTSHIFT) | ||
| 486 | MATRIX_KEY(0x08, 0x05, KEY_RIGHTSHIFT) | ||
| 487 | MATRIX_KEY(0x09, 0x05, KEY_LEFTCTRL) | ||
| 488 | MATRIX_KEY(0x09, 0x07, KEY_RIGHTCTRL) | ||
| 489 | MATRIX_KEY(0x0B, 0x00, KEY_LEFTBRACE) | ||
| 490 | MATRIX_KEY(0x0B, 0x01, KEY_P) | ||
| 491 | MATRIX_KEY(0x0B, 0x02, KEY_APOSTROPHE) | ||
| 492 | MATRIX_KEY(0x0B, 0x03, KEY_SEMICOLON) | ||
| 493 | MATRIX_KEY(0x0B, 0x04, KEY_SLASH) | ||
| 494 | MATRIX_KEY(0x0B, 0x05, KEY_DOT) | ||
| 495 | MATRIX_KEY(0x0C, 0x00, KEY_F10) | ||
| 496 | MATRIX_KEY(0x0C, 0x01, KEY_F9) | ||
| 497 | MATRIX_KEY(0x0C, 0x02, KEY_BACKSPACE) | ||
| 498 | MATRIX_KEY(0x0C, 0x03, KEY_3) | ||
| 499 | MATRIX_KEY(0x0C, 0x04, KEY_2) | ||
| 500 | MATRIX_KEY(0x0C, 0x05, KEY_UP) | ||
| 501 | MATRIX_KEY(0x0C, 0x06, KEY_PRINT) | ||
| 502 | MATRIX_KEY(0x0C, 0x07, KEY_PAUSE) | ||
| 503 | MATRIX_KEY(0x0D, 0x00, KEY_INSERT) | ||
| 504 | MATRIX_KEY(0x0D, 0x01, KEY_DELETE) | ||
| 505 | MATRIX_KEY(0x0D, 0x03, KEY_PAGEUP ) | ||
| 506 | MATRIX_KEY(0x0D, 0x04, KEY_PAGEDOWN) | ||
| 507 | MATRIX_KEY(0x0D, 0x05, KEY_RIGHT) | ||
| 508 | MATRIX_KEY(0x0D, 0x06, KEY_DOWN) | ||
| 509 | MATRIX_KEY(0x0D, 0x07, KEY_LEFT) | ||
| 510 | MATRIX_KEY(0x0E, 0x00, KEY_F11) | ||
| 511 | MATRIX_KEY(0x0E, 0x01, KEY_F12) | ||
| 512 | MATRIX_KEY(0x0E, 0x02, KEY_F8) | ||
| 513 | MATRIX_KEY(0x0E, 0x03, KEY_Q) | ||
| 514 | MATRIX_KEY(0x0E, 0x04, KEY_F4) | ||
| 515 | MATRIX_KEY(0x0E, 0x05, KEY_F3) | ||
| 516 | MATRIX_KEY(0x0E, 0x06, KEY_1) | ||
| 517 | MATRIX_KEY(0x0E, 0x07, KEY_F7) | ||
| 518 | MATRIX_KEY(0x0F, 0x00, KEY_ESC) | ||
| 519 | MATRIX_KEY(0x0F, 0x01, KEY_GRAVE) | ||
| 520 | MATRIX_KEY(0x0F, 0x02, KEY_F5) | ||
| 521 | MATRIX_KEY(0x0F, 0x03, KEY_TAB) | ||
| 522 | MATRIX_KEY(0x0F, 0x04, KEY_F1) | ||
| 523 | MATRIX_KEY(0x0F, 0x05, KEY_F2) | ||
| 524 | MATRIX_KEY(0x0F, 0x06, KEY_CAPSLOCK) | ||
| 525 | MATRIX_KEY(0x0F, 0x07, KEY_F6) | ||
| 526 | MATRIX_KEY(0x14, 0x00, KEY_KP7) | ||
| 527 | MATRIX_KEY(0x15, 0x00, KEY_KP9) | ||
| 528 | MATRIX_KEY(0x15, 0x01, KEY_KP8) | ||
| 529 | MATRIX_KEY(0x15, 0x02, KEY_KP4) | ||
| 530 | MATRIX_KEY(0x15, 0x04, KEY_KP1) | ||
| 531 | MATRIX_KEY(0x16, 0x01, KEY_KPSLASH) | ||
| 532 | MATRIX_KEY(0x16, 0x02, KEY_KP6) | ||
| 533 | MATRIX_KEY(0x16, 0x03, KEY_KP5) | ||
| 534 | MATRIX_KEY(0x16, 0x04, KEY_KP3) | ||
| 535 | MATRIX_KEY(0x16, 0x05, KEY_KP2) | ||
| 536 | MATRIX_KEY(0x16, 0x07, KEY_KP0) | ||
| 537 | MATRIX_KEY(0x1B, 0x01, KEY_KPASTERISK) | ||
| 538 | MATRIX_KEY(0x1B, 0x03, KEY_KPMINUS) | ||
| 539 | MATRIX_KEY(0x1B, 0x04, KEY_KPPLUS) | ||
| 540 | MATRIX_KEY(0x1B, 0x05, KEY_KPDOT) | ||
| 541 | MATRIX_KEY(0x1C, 0x05, KEY_VOLUMEUP) | ||
| 542 | MATRIX_KEY(0x1D, 0x03, KEY_HOME) | ||
| 543 | MATRIX_KEY(0x1D, 0x04, KEY_END) | ||
| 544 | MATRIX_KEY(0x1D, 0x05, KEY_BRIGHTNESSUP) | ||
| 545 | MATRIX_KEY(0x1D, 0x06, KEY_VOLUMEDOWN) | ||
| 546 | MATRIX_KEY(0x1D, 0x07, KEY_BRIGHTNESSDOWN) | ||
| 547 | MATRIX_KEY(0x1E, 0x00, KEY_NUMLOCK) | ||
| 548 | MATRIX_KEY(0x1E, 0x01, KEY_SCROLLLOCK) | ||
| 549 | MATRIX_KEY(0x1E, 0x02, KEY_MUTE) | ||
| 550 | MATRIX_KEY(0x1F, 0x04, KEY_QUESTION)>; | ||
| 551 | }; | ||
| 552 | |||
| 553 | pmc@7000e400 { | ||
| 419 | nvidia,invert-interrupt; | 554 | nvidia,invert-interrupt; |
| 420 | nvidia,suspend-mode = <1>; | 555 | nvidia,suspend-mode = <1>; |
| 421 | nvidia,cpu-pwr-good-time = <5000>; | 556 | nvidia,cpu-pwr-good-time = <5000>; |
| @@ -425,7 +560,7 @@ | |||
| 425 | nvidia,sys-clock-req-active-high; | 560 | nvidia,sys-clock-req-active-high; |
| 426 | }; | 561 | }; |
| 427 | 562 | ||
| 428 | pcie-controller { | 563 | pcie-controller@80003000 { |
| 429 | pex-clk-supply = <&pci_clk_reg>; | 564 | pex-clk-supply = <&pci_clk_reg>; |
| 430 | vdd-supply = <&pci_vdd_reg>; | 565 | vdd-supply = <&pci_vdd_reg>; |
| 431 | status = "okay"; | 566 | status = "okay"; |
| @@ -483,12 +618,23 @@ | |||
| 483 | bus-width = <8>; | 618 | bus-width = <8>; |
| 484 | }; | 619 | }; |
| 485 | 620 | ||
| 621 | backlight: backlight { | ||
| 622 | compatible = "pwm-backlight"; | ||
| 623 | |||
| 624 | enable-gpios = <&gpio TEGRA_GPIO(B, 5) GPIO_ACTIVE_HIGH>; | ||
| 625 | power-supply = <&vdd_bl_reg>; | ||
| 626 | pwms = <&pwm 0 5000000>; | ||
| 627 | |||
| 628 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
| 629 | default-brightness-level = <6>; | ||
| 630 | }; | ||
| 631 | |||
| 486 | clocks { | 632 | clocks { |
| 487 | compatible = "simple-bus"; | 633 | compatible = "simple-bus"; |
| 488 | #address-cells = <1>; | 634 | #address-cells = <1>; |
| 489 | #size-cells = <0>; | 635 | #size-cells = <0>; |
| 490 | 636 | ||
| 491 | clk32k_in: clock { | 637 | clk32k_in: clock@0 { |
| 492 | compatible = "fixed-clock"; | 638 | compatible = "fixed-clock"; |
| 493 | reg=<0>; | 639 | reg=<0>; |
| 494 | #clock-cells = <0>; | 640 | #clock-cells = <0>; |
| @@ -502,126 +648,18 @@ | |||
| 502 | power { | 648 | power { |
| 503 | label = "Power"; | 649 | label = "Power"; |
| 504 | gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; | 650 | gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; |
| 505 | linux,code = <116>; /* KEY_POWER */ | 651 | linux,code = <KEY_POWER>; |
| 506 | gpio-key,wakeup; | 652 | gpio-key,wakeup; |
| 507 | }; | 653 | }; |
| 508 | }; | 654 | }; |
| 509 | 655 | ||
| 510 | kbc { | 656 | panel: panel { |
| 511 | status = "okay"; | 657 | compatible = "auo,b101aw03", "simple-panel"; |
| 512 | nvidia,debounce-delay-ms = <2>; | 658 | |
| 513 | nvidia,repeat-delay-ms = <160>; | 659 | power-supply = <&vdd_pnl_reg>; |
| 514 | nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; | 660 | enable-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_HIGH>; |
| 515 | nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>; | 661 | |
| 516 | linux,keymap = <0x00020011 /* KEY_W */ | 662 | backlight = <&backlight>; |
| 517 | 0x0003001F /* KEY_S */ | ||
| 518 | 0x0004001E /* KEY_A */ | ||
| 519 | 0x0005002C /* KEY_Z */ | ||
| 520 | 0x000701D0 /* KEY_FN */ | ||
| 521 | 0x0107008B /* KEY_MENU */ | ||
| 522 | 0x02060038 /* KEY_LEFTALT */ | ||
| 523 | 0x02070064 /* KEY_RIGHTALT */ | ||
| 524 | 0x03000006 /* KEY_5 */ | ||
| 525 | 0x03010005 /* KEY_4 */ | ||
| 526 | 0x03020013 /* KEY_R */ | ||
| 527 | 0x03030012 /* KEY_E */ | ||
| 528 | 0x03040021 /* KEY_F */ | ||
| 529 | 0x03050020 /* KEY_D */ | ||
| 530 | 0x0306002D /* KEY_X */ | ||
| 531 | 0x04000008 /* KEY_7 */ | ||
| 532 | 0x04010007 /* KEY_6 */ | ||
| 533 | 0x04020014 /* KEY_T */ | ||
| 534 | 0x04030023 /* KEY_H */ | ||
| 535 | 0x04040022 /* KEY_G */ | ||
| 536 | 0x0405002F /* KEY_V */ | ||
| 537 | 0x0406002E /* KEY_C */ | ||
| 538 | 0x04070039 /* KEY_SPACE */ | ||
| 539 | 0x0500000A /* KEY_9 */ | ||
| 540 | 0x05010009 /* KEY_8 */ | ||
| 541 | 0x05020016 /* KEY_U */ | ||
| 542 | 0x05030015 /* KEY_Y */ | ||
| 543 | 0x05040024 /* KEY_J */ | ||
| 544 | 0x05050031 /* KEY_N */ | ||
| 545 | 0x05060030 /* KEY_B */ | ||
| 546 | 0x0507002B /* KEY_BACKSLASH */ | ||
| 547 | 0x0600000C /* KEY_MINUS */ | ||
| 548 | 0x0601000B /* KEY_0 */ | ||
| 549 | 0x06020018 /* KEY_O */ | ||
| 550 | 0x06030017 /* KEY_I */ | ||
| 551 | 0x06040026 /* KEY_L */ | ||
| 552 | 0x06050025 /* KEY_K */ | ||
| 553 | 0x06060033 /* KEY_COMMA */ | ||
| 554 | 0x06070032 /* KEY_M */ | ||
| 555 | 0x0701000D /* KEY_EQUAL */ | ||
| 556 | 0x0702001B /* KEY_RIGHTBRACE */ | ||
| 557 | 0x0703001C /* KEY_ENTER */ | ||
| 558 | 0x0707008B /* KEY_MENU */ | ||
| 559 | 0x0804002A /* KEY_LEFTSHIFT */ | ||
| 560 | 0x08050036 /* KEY_RIGHTSHIFT */ | ||
| 561 | 0x0905001D /* KEY_LEFTCTRL */ | ||
| 562 | 0x09070061 /* KEY_RIGHTCTRL */ | ||
| 563 | 0x0B00001A /* KEY_LEFTBRACE */ | ||
| 564 | 0x0B010019 /* KEY_P */ | ||
| 565 | 0x0B020028 /* KEY_APOSTROPHE */ | ||
| 566 | 0x0B030027 /* KEY_SEMICOLON */ | ||
| 567 | 0x0B040035 /* KEY_SLASH */ | ||
| 568 | 0x0B050034 /* KEY_DOT */ | ||
| 569 | 0x0C000044 /* KEY_F10 */ | ||
| 570 | 0x0C010043 /* KEY_F9 */ | ||
| 571 | 0x0C02000E /* KEY_BACKSPACE */ | ||
| 572 | 0x0C030004 /* KEY_3 */ | ||
| 573 | 0x0C040003 /* KEY_2 */ | ||
| 574 | 0x0C050067 /* KEY_UP */ | ||
| 575 | 0x0C0600D2 /* KEY_PRINT */ | ||
| 576 | 0x0C070077 /* KEY_PAUSE */ | ||
| 577 | 0x0D00006E /* KEY_INSERT */ | ||
| 578 | 0x0D01006F /* KEY_DELETE */ | ||
| 579 | 0x0D030068 /* KEY_PAGEUP */ | ||
| 580 | 0x0D04006D /* KEY_PAGEDOWN */ | ||
| 581 | 0x0D05006A /* KEY_RIGHT */ | ||
| 582 | 0x0D06006C /* KEY_DOWN */ | ||
| 583 | 0x0D070069 /* KEY_LEFT */ | ||
| 584 | 0x0E000057 /* KEY_F11 */ | ||
| 585 | 0x0E010058 /* KEY_F12 */ | ||
| 586 | 0x0E020042 /* KEY_F8 */ | ||
| 587 | 0x0E030010 /* KEY_Q */ | ||
| 588 | 0x0E04003E /* KEY_F4 */ | ||
| 589 | 0x0E05003D /* KEY_F3 */ | ||
| 590 | 0x0E060002 /* KEY_1 */ | ||
| 591 | 0x0E070041 /* KEY_F7 */ | ||
| 592 | 0x0F000001 /* KEY_ESC */ | ||
| 593 | 0x0F010029 /* KEY_GRAVE */ | ||
| 594 | 0x0F02003F /* KEY_F5 */ | ||
| 595 | 0x0F03000F /* KEY_TAB */ | ||
| 596 | 0x0F04003B /* KEY_F1 */ | ||
| 597 | 0x0F05003C /* KEY_F2 */ | ||
| 598 | 0x0F06003A /* KEY_CAPSLOCK */ | ||
| 599 | 0x0F070040 /* KEY_F6 */ | ||
| 600 | 0x14000047 /* KEY_KP7 */ | ||
| 601 | 0x15000049 /* KEY_KP9 */ | ||
| 602 | 0x15010048 /* KEY_KP8 */ | ||
| 603 | 0x1502004B /* KEY_KP4 */ | ||
| 604 | 0x1504004F /* KEY_KP1 */ | ||
| 605 | 0x1601004E /* KEY_KPSLASH */ | ||
| 606 | 0x1602004D /* KEY_KP6 */ | ||
| 607 | 0x1603004C /* KEY_KP5 */ | ||
| 608 | 0x16040051 /* KEY_KP3 */ | ||
| 609 | 0x16050050 /* KEY_KP2 */ | ||
| 610 | 0x16070052 /* KEY_KP0 */ | ||
| 611 | 0x1B010037 /* KEY_KPASTERISK */ | ||
| 612 | 0x1B03004A /* KEY_KPMINUS */ | ||
| 613 | 0x1B04004E /* KEY_KPPLUS */ | ||
| 614 | 0x1B050053 /* KEY_KPDOT */ | ||
| 615 | 0x1C050073 /* KEY_VOLUMEUP */ | ||
| 616 | 0x1D030066 /* KEY_HOME */ | ||
| 617 | 0x1D04006B /* KEY_END */ | ||
| 618 | 0x1D0500E1 /* KEY_BRIGHTNESSUP */ | ||
| 619 | 0x1D060072 /* KEY_VOLUMEDOWN */ | ||
| 620 | 0x1D0700E0 /* KEY_BRIGHTNESSDOWN */ | ||
| 621 | 0x1E000045 /* KEY_NUMLOCK */ | ||
| 622 | 0x1E010046 /* KEY_SCROLLLOCK */ | ||
| 623 | 0x1E020071 /* KEY_MUTE */ | ||
| 624 | 0x1F0400D6>; /* KEY_QUESTION */ | ||
| 625 | }; | 663 | }; |
| 626 | 664 | ||
| 627 | regulators { | 665 | regulators { |
| @@ -667,7 +705,7 @@ | |||
| 667 | enable-active-high; | 705 | enable-active-high; |
| 668 | }; | 706 | }; |
| 669 | 707 | ||
| 670 | regulator@4 { | 708 | vdd_pnl_reg: regulator@4 { |
| 671 | compatible = "regulator-fixed"; | 709 | compatible = "regulator-fixed"; |
| 672 | reg = <4>; | 710 | reg = <4>; |
| 673 | regulator-name = "vdd_pnl"; | 711 | regulator-name = "vdd_pnl"; |
| @@ -677,7 +715,7 @@ | |||
| 677 | enable-active-high; | 715 | enable-active-high; |
| 678 | }; | 716 | }; |
| 679 | 717 | ||
| 680 | regulator@5 { | 718 | vdd_bl_reg: regulator@5 { |
| 681 | compatible = "regulator-fixed"; | 719 | compatible = "regulator-fixed"; |
| 682 | reg = <5>; | 720 | reg = <5>; |
| 683 | regulator-name = "vdd_bl"; | 721 | regulator-name = "vdd_bl"; |
diff --git a/arch/arm/boot/dts/tegra20-iris-512.dts b/arch/arm/boot/dts/tegra20-iris-512.dts index f2222bd74eab..8cfb83f42e1f 100644 --- a/arch/arm/boot/dts/tegra20-iris-512.dts +++ b/arch/arm/boot/dts/tegra20-iris-512.dts | |||
| @@ -6,61 +6,61 @@ | |||
| 6 | model = "Toradex Colibri T20 512MB on Iris"; | 6 | model = "Toradex Colibri T20 512MB on Iris"; |
| 7 | compatible = "toradex,iris", "toradex,colibri_t20-512", "nvidia,tegra20"; | 7 | compatible = "toradex,iris", "toradex,colibri_t20-512", "nvidia,tegra20"; |
| 8 | 8 | ||
| 9 | host1x { | 9 | host1x@50000000 { |
| 10 | hdmi { | 10 | hdmi@54280000 { |
| 11 | status = "okay"; | 11 | status = "okay"; |
| 12 | }; | 12 | }; |
| 13 | }; | 13 | }; |
| 14 | 14 | ||
| 15 | pinmux { | 15 | pinmux@70000014 { |
| 16 | state_default: pinmux { | 16 | state_default: pinmux { |
| 17 | hdint { | 17 | hdint { |
| 18 | nvidia,tristate = <0>; | 18 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| 21 | i2cddc { | 21 | i2cddc { |
| 22 | nvidia,tristate = <0>; | 22 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 23 | }; | 23 | }; |
| 24 | 24 | ||
| 25 | sdio4 { | 25 | sdio4 { |
| 26 | nvidia,tristate = <0>; | 26 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | uarta { | 29 | uarta { |
| 30 | nvidia,tristate = <0>; | 30 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | uartd { | 33 | uartd { |
| 34 | nvidia,tristate = <0>; | 34 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 35 | }; | 35 | }; |
| 36 | }; | 36 | }; |
| 37 | }; | 37 | }; |
| 38 | 38 | ||
| 39 | usb@c5000000 { | 39 | serial@70006000 { |
| 40 | status = "okay"; | 40 | status = "okay"; |
| 41 | }; | 41 | }; |
| 42 | 42 | ||
| 43 | usb-phy@c5000000 { | 43 | serial@70006300 { |
| 44 | status = "okay"; | 44 | status = "okay"; |
| 45 | }; | 45 | }; |
| 46 | 46 | ||
| 47 | usb@c5008000 { | 47 | i2c_ddc: i2c@7000c400 { |
| 48 | status = "okay"; | 48 | status = "okay"; |
| 49 | }; | 49 | }; |
| 50 | 50 | ||
| 51 | usb-phy@c5008000 { | 51 | usb@c5000000 { |
| 52 | status = "okay"; | 52 | status = "okay"; |
| 53 | }; | 53 | }; |
| 54 | 54 | ||
| 55 | serial@70006000 { | 55 | usb-phy@c5000000 { |
| 56 | status = "okay"; | 56 | status = "okay"; |
| 57 | }; | 57 | }; |
| 58 | 58 | ||
| 59 | serial@70006300 { | 59 | usb@c5008000 { |
| 60 | status = "okay"; | 60 | status = "okay"; |
| 61 | }; | 61 | }; |
| 62 | 62 | ||
| 63 | i2c_ddc: i2c@7000c400 { | 63 | usb-phy@c5008000 { |
| 64 | status = "okay"; | 64 | status = "okay"; |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
diff --git a/arch/arm/boot/dts/tegra20-medcom-wide.dts b/arch/arm/boot/dts/tegra20-medcom-wide.dts index 7580578903cf..6d3a4cbc36cc 100644 --- a/arch/arm/boot/dts/tegra20-medcom-wide.dts +++ b/arch/arm/boot/dts/tegra20-medcom-wide.dts | |||
| @@ -6,7 +6,7 @@ | |||
| 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 { | 9 | pwm@7000a000 { |
| 10 | status = "okay"; | 10 | status = "okay"; |
| 11 | }; | 11 | }; |
| 12 | 12 | ||
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts index e57fb3aefc2a..c7cd8e6802d7 100644 --- a/arch/arm/boot/dts/tegra20-paz00.dts +++ b/arch/arm/boot/dts/tegra20-paz00.dts | |||
| @@ -1,17 +1,23 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra20.dtsi" | 4 | #include "tegra20.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "Toshiba AC100 / Dynabook AZ"; | 7 | model = "Toshiba AC100 / Dynabook AZ"; |
| 7 | compatible = "compal,paz00", "nvidia,tegra20"; | 8 | compatible = "compal,paz00", "nvidia,tegra20"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x00000000 0x20000000>; | 16 | reg = <0x00000000 0x20000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 13 | host1x { | 19 | host1x@50000000 { |
| 14 | hdmi { | 20 | hdmi@54280000 { |
| 15 | status = "okay"; | 21 | status = "okay"; |
| 16 | 22 | ||
| 17 | vdd-supply = <&hdmi_vdd_reg>; | 23 | vdd-supply = <&hdmi_vdd_reg>; |
| @@ -23,7 +29,7 @@ | |||
| 23 | }; | 29 | }; |
| 24 | }; | 30 | }; |
| 25 | 31 | ||
| 26 | pinmux { | 32 | pinmux@70000014 { |
| 27 | pinctrl-names = "default"; | 33 | pinctrl-names = "default"; |
| 28 | pinctrl-0 = <&state_default>; | 34 | pinctrl-0 = <&state_default>; |
| 29 | 35 | ||
| @@ -177,39 +183,39 @@ | |||
| 177 | "gpu", "gpu7", "gpv", "i2cp", "pta", | 183 | "gpu", "gpu7", "gpv", "i2cp", "pta", |
| 178 | "rm", "sdio1", "slxk", "spdo", "uac", | 184 | "rm", "sdio1", "slxk", "spdo", "uac", |
| 179 | "uda"; | 185 | "uda"; |
| 180 | nvidia,pull = <0>; | 186 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 181 | nvidia,tristate = <0>; | 187 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 182 | }; | 188 | }; |
| 183 | conf_ck32 { | 189 | conf_ck32 { |
| 184 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", | 190 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", |
| 185 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; | 191 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; |
| 186 | nvidia,pull = <0>; | 192 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 187 | }; | 193 | }; |
| 188 | conf_crtp { | 194 | conf_crtp { |
| 189 | nvidia,pins = "crtp", "dap3", "dap4", "dtb", | 195 | nvidia,pins = "crtp", "dap3", "dap4", "dtb", |
| 190 | "dtc", "dte", "slxa", "slxc", "slxd", | 196 | "dtc", "dte", "slxa", "slxc", "slxd", |
| 191 | "spdi"; | 197 | "spdi"; |
| 192 | nvidia,pull = <0>; | 198 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 193 | nvidia,tristate = <1>; | 199 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 194 | }; | 200 | }; |
| 195 | conf_csus { | 201 | conf_csus { |
| 196 | nvidia,pins = "csus", "spia", "spib", "spid", | 202 | nvidia,pins = "csus", "spia", "spib", "spid", |
| 197 | "spif"; | 203 | "spif"; |
| 198 | nvidia,pull = <1>; | 204 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 199 | nvidia,tristate = <1>; | 205 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 200 | }; | 206 | }; |
| 201 | conf_ddc { | 207 | conf_ddc { |
| 202 | nvidia,pins = "ddc", "irrx", "irtx", "kbca", | 208 | nvidia,pins = "ddc", "irrx", "irtx", "kbca", |
| 203 | "kbcb", "kbcc", "kbcd", "kbce", "kbcf", | 209 | "kbcb", "kbcc", "kbcd", "kbce", "kbcf", |
| 204 | "spic", "spig", "uaa", "uab"; | 210 | "spic", "spig", "uaa", "uab"; |
| 205 | nvidia,pull = <2>; | 211 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 206 | nvidia,tristate = <0>; | 212 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 207 | }; | 213 | }; |
| 208 | conf_dta { | 214 | conf_dta { |
| 209 | nvidia,pins = "dta", "dtd", "owc", "sdc", "sdd", | 215 | nvidia,pins = "dta", "dtd", "owc", "sdc", "sdd", |
| 210 | "spie", "spih", "uad", "uca", "ucb"; | 216 | "spie", "spih", "uad", "uca", "ucb"; |
| 211 | nvidia,pull = <2>; | 217 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 212 | nvidia,tristate = <1>; | 218 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 213 | }; | 219 | }; |
| 214 | conf_hdint { | 220 | conf_hdint { |
| 215 | nvidia,pins = "hdint", "ld0", "ld1", "ld2", | 221 | nvidia,pins = "hdint", "ld0", "ld1", "ld2", |
| @@ -218,23 +224,23 @@ | |||
| 218 | "ld13", "ld14", "ld15", "ld16", "ld17", | 224 | "ld13", "ld14", "ld15", "ld16", "ld17", |
| 219 | "ldc", "ldi", "lhs", "lsc0", "lspi", | 225 | "ldc", "ldi", "lhs", "lsc0", "lspi", |
| 220 | "lvs", "pmc"; | 226 | "lvs", "pmc"; |
| 221 | nvidia,tristate = <0>; | 227 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 222 | }; | 228 | }; |
| 223 | conf_lc { | 229 | conf_lc { |
| 224 | nvidia,pins = "lc", "ls"; | 230 | nvidia,pins = "lc", "ls"; |
| 225 | nvidia,pull = <2>; | 231 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 226 | }; | 232 | }; |
| 227 | conf_lcsn { | 233 | conf_lcsn { |
| 228 | nvidia,pins = "lcsn", "lhp0", "lhp1", "lhp2", | 234 | nvidia,pins = "lcsn", "lhp0", "lhp1", "lhp2", |
| 229 | "lm0", "lm1", "lpp", "lpw0", "lpw1", | 235 | "lm0", "lm1", "lpp", "lpw0", "lpw1", |
| 230 | "lpw2", "lsc1", "lsck", "lsda", "lsdi", | 236 | "lpw2", "lsc1", "lsck", "lsda", "lsdi", |
| 231 | "lvp0", "lvp1", "sdb"; | 237 | "lvp0", "lvp1", "sdb"; |
| 232 | nvidia,tristate = <1>; | 238 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 233 | }; | 239 | }; |
| 234 | conf_ld17_0 { | 240 | conf_ld17_0 { |
| 235 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 241 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 236 | "ld23_22"; | 242 | "ld23_22"; |
| 237 | nvidia,pull = <1>; | 243 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 238 | }; | 244 | }; |
| 239 | }; | 245 | }; |
| 240 | }; | 246 | }; |
| @@ -268,7 +274,7 @@ | |||
| 268 | clock-frequency = <100000>; | 274 | clock-frequency = <100000>; |
| 269 | }; | 275 | }; |
| 270 | 276 | ||
| 271 | nvec { | 277 | nvec@7000c500 { |
| 272 | compatible = "nvidia,nvec"; | 278 | compatible = "nvidia,nvec"; |
| 273 | reg = <0x7000c500 0x100>; | 279 | reg = <0x7000c500 0x100>; |
| 274 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; | 280 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -417,7 +423,7 @@ | |||
| 417 | }; | 423 | }; |
| 418 | }; | 424 | }; |
| 419 | 425 | ||
| 420 | pmc { | 426 | pmc@7000e400 { |
| 421 | nvidia,invert-interrupt; | 427 | nvidia,invert-interrupt; |
| 422 | nvidia,suspend-mode = <1>; | 428 | nvidia,suspend-mode = <1>; |
| 423 | nvidia,cpu-pwr-good-time = <2000>; | 429 | nvidia,cpu-pwr-good-time = <2000>; |
| @@ -474,7 +480,7 @@ | |||
| 474 | #address-cells = <1>; | 480 | #address-cells = <1>; |
| 475 | #size-cells = <0>; | 481 | #size-cells = <0>; |
| 476 | 482 | ||
| 477 | clk32k_in: clock { | 483 | clk32k_in: clock@0 { |
| 478 | compatible = "fixed-clock"; | 484 | compatible = "fixed-clock"; |
| 479 | reg=<0>; | 485 | reg=<0>; |
| 480 | #clock-cells = <0>; | 486 | #clock-cells = <0>; |
| @@ -488,7 +494,7 @@ | |||
| 488 | power { | 494 | power { |
| 489 | label = "Power"; | 495 | label = "Power"; |
| 490 | gpios = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_LOW>; | 496 | gpios = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_LOW>; |
| 491 | linux,code = <116>; /* KEY_POWER */ | 497 | linux,code = <KEY_POWER>; |
| 492 | gpio-key,wakeup; | 498 | gpio-key,wakeup; |
| 493 | }; | 499 | }; |
| 494 | }; | 500 | }; |
diff --git a/arch/arm/boot/dts/tegra20-plutux.dts b/arch/arm/boot/dts/tegra20-plutux.dts index d7a358a6a647..29051a2ae0ae 100644 --- a/arch/arm/boot/dts/tegra20-plutux.dts +++ b/arch/arm/boot/dts/tegra20-plutux.dts | |||
| @@ -6,8 +6,8 @@ | |||
| 6 | model = "Avionic Design Plutux board"; | 6 | model = "Avionic Design Plutux board"; |
| 7 | compatible = "ad,plutux", "ad,tamonten", "nvidia,tegra20"; | 7 | compatible = "ad,plutux", "ad,tamonten", "nvidia,tegra20"; |
| 8 | 8 | ||
| 9 | host1x { | 9 | host1x@50000000 { |
| 10 | hdmi { | 10 | hdmi@54280000 { |
| 11 | status = "okay"; | 11 | status = "okay"; |
| 12 | }; | 12 | }; |
| 13 | }; | 13 | }; |
diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts index 315aae26c3cd..a11b6e7b4759 100644 --- a/arch/arm/boot/dts/tegra20-seaboard.dts +++ b/arch/arm/boot/dts/tegra20-seaboard.dts | |||
| @@ -1,17 +1,23 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra20.dtsi" | 4 | #include "tegra20.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "NVIDIA Seaboard"; | 7 | model = "NVIDIA Seaboard"; |
| 7 | compatible = "nvidia,seaboard", "nvidia,tegra20"; | 8 | compatible = "nvidia,seaboard", "nvidia,tegra20"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x00000000 0x40000000>; | 16 | reg = <0x00000000 0x40000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 13 | host1x { | 19 | host1x@50000000 { |
| 14 | hdmi { | 20 | hdmi@54280000 { |
| 15 | status = "okay"; | 21 | status = "okay"; |
| 16 | 22 | ||
| 17 | vdd-supply = <&hdmi_vdd_reg>; | 23 | vdd-supply = <&hdmi_vdd_reg>; |
| @@ -23,7 +29,7 @@ | |||
| 23 | }; | 29 | }; |
| 24 | }; | 30 | }; |
| 25 | 31 | ||
| 26 | pinmux { | 32 | pinmux@70000014 { |
| 27 | pinctrl-names = "default"; | 33 | pinctrl-names = "default"; |
| 28 | pinctrl-0 = <&state_default>; | 34 | pinctrl-0 = <&state_default>; |
| 29 | 35 | ||
| @@ -189,53 +195,53 @@ | |||
| 189 | "irtx", "pta", "rm", "sdc", "sdd", | 195 | "irtx", "pta", "rm", "sdc", "sdd", |
| 190 | "slxd", "slxk", "spdi", "spdo", "uac", | 196 | "slxd", "slxk", "spdi", "spdo", "uac", |
| 191 | "uad", "uca", "ucb", "uda"; | 197 | "uad", "uca", "ucb", "uda"; |
| 192 | nvidia,pull = <0>; | 198 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 193 | nvidia,tristate = <0>; | 199 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 194 | }; | 200 | }; |
| 195 | conf_ate { | 201 | conf_ate { |
| 196 | nvidia,pins = "ate", "csus", "dap3", | 202 | nvidia,pins = "ate", "csus", "dap3", |
| 197 | "gpv", "owc", "slxc", "spib", "spid", | 203 | "gpv", "owc", "slxc", "spib", "spid", |
| 198 | "spie"; | 204 | "spie"; |
| 199 | nvidia,pull = <0>; | 205 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 200 | nvidia,tristate = <1>; | 206 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 201 | }; | 207 | }; |
| 202 | conf_ck32 { | 208 | conf_ck32 { |
| 203 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", | 209 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", |
| 204 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; | 210 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; |
| 205 | nvidia,pull = <0>; | 211 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 206 | }; | 212 | }; |
| 207 | conf_crtp { | 213 | conf_crtp { |
| 208 | nvidia,pins = "crtp", "gmb", "slxa", "spia", | 214 | nvidia,pins = "crtp", "gmb", "slxa", "spia", |
| 209 | "spig", "spih"; | 215 | "spig", "spih"; |
| 210 | nvidia,pull = <2>; | 216 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 211 | nvidia,tristate = <1>; | 217 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 212 | }; | 218 | }; |
| 213 | conf_dta { | 219 | conf_dta { |
| 214 | nvidia,pins = "dta", "dtb", "dtc", "dtd"; | 220 | nvidia,pins = "dta", "dtb", "dtc", "dtd"; |
| 215 | nvidia,pull = <1>; | 221 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 216 | nvidia,tristate = <0>; | 222 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 217 | }; | 223 | }; |
| 218 | conf_dte { | 224 | conf_dte { |
| 219 | nvidia,pins = "dte", "spif"; | 225 | nvidia,pins = "dte", "spif"; |
| 220 | nvidia,pull = <1>; | 226 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 221 | nvidia,tristate = <1>; | 227 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 222 | }; | 228 | }; |
| 223 | conf_hdint { | 229 | conf_hdint { |
| 224 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", | 230 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", |
| 225 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", | 231 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", |
| 226 | "lvp0"; | 232 | "lvp0"; |
| 227 | nvidia,tristate = <1>; | 233 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 228 | }; | 234 | }; |
| 229 | conf_kbca { | 235 | conf_kbca { |
| 230 | nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd", | 236 | nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd", |
| 231 | "kbce", "kbcf", "sdio1", "spic", "uaa", | 237 | "kbce", "kbcf", "sdio1", "spic", "uaa", |
| 232 | "uab"; | 238 | "uab"; |
| 233 | nvidia,pull = <2>; | 239 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 234 | nvidia,tristate = <0>; | 240 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 235 | }; | 241 | }; |
| 236 | conf_lc { | 242 | conf_lc { |
| 237 | nvidia,pins = "lc", "ls"; | 243 | nvidia,pins = "lc", "ls"; |
| 238 | nvidia,pull = <2>; | 244 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 239 | }; | 245 | }; |
| 240 | conf_ld0 { | 246 | conf_ld0 { |
| 241 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", | 247 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", |
| @@ -245,22 +251,22 @@ | |||
| 245 | "lhp1", "lhp2", "lhs", "lm0", "lpp", | 251 | "lhp1", "lhp2", "lhs", "lm0", "lpp", |
| 246 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", | 252 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", |
| 247 | "lvs", "pmc", "sdb"; | 253 | "lvs", "pmc", "sdb"; |
| 248 | nvidia,tristate = <0>; | 254 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 249 | }; | 255 | }; |
| 250 | conf_ld17_0 { | 256 | conf_ld17_0 { |
| 251 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 257 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 252 | "ld23_22"; | 258 | "ld23_22"; |
| 253 | nvidia,pull = <1>; | 259 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 254 | }; | 260 | }; |
| 255 | drive_sdio1 { | 261 | drive_sdio1 { |
| 256 | nvidia,pins = "drive_sdio1"; | 262 | nvidia,pins = "drive_sdio1"; |
| 257 | nvidia,high-speed-mode = <0>; | 263 | nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; |
| 258 | nvidia,schmitt = <0>; | 264 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; |
| 259 | nvidia,low-power-mode = <3>; | 265 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; |
| 260 | nvidia,pull-down-strength = <31>; | 266 | nvidia,pull-down-strength = <31>; |
| 261 | nvidia,pull-up-strength = <31>; | 267 | nvidia,pull-up-strength = <31>; |
| 262 | nvidia,slew-rate-rising = <3>; | 268 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>; |
| 263 | nvidia,slew-rate-falling = <3>; | 269 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>; |
| 264 | }; | 270 | }; |
| 265 | }; | 271 | }; |
| 266 | 272 | ||
| @@ -386,6 +392,13 @@ | |||
| 386 | status = "okay"; | 392 | status = "okay"; |
| 387 | clock-frequency = <400000>; | 393 | clock-frequency = <400000>; |
| 388 | 394 | ||
| 395 | magnetometer@c { | ||
| 396 | compatible = "ak,ak8975"; | ||
| 397 | reg = <0xc>; | ||
| 398 | interrupt-parent = <&gpio>; | ||
| 399 | interrupts = <TEGRA_GPIO(N, 5) IRQ_TYPE_LEVEL_HIGH>; | ||
| 400 | }; | ||
| 401 | |||
| 389 | pmic: tps6586x@34 { | 402 | pmic: tps6586x@34 { |
| 390 | compatible = "ti,tps6586x"; | 403 | compatible = "ti,tps6586x"; |
| 391 | reg = <0x34>; | 404 | reg = <0x34>; |
| @@ -507,16 +520,149 @@ | |||
| 507 | compatible = "onnn,nct1008"; | 520 | compatible = "onnn,nct1008"; |
| 508 | reg = <0x4c>; | 521 | reg = <0x4c>; |
| 509 | }; | 522 | }; |
| 523 | }; | ||
| 510 | 524 | ||
| 511 | magnetometer@c { | 525 | kbc@7000e200 { |
| 512 | compatible = "ak,ak8975"; | 526 | status = "okay"; |
| 513 | reg = <0xc>; | 527 | nvidia,debounce-delay-ms = <32>; |
| 514 | interrupt-parent = <&gpio>; | 528 | nvidia,repeat-delay-ms = <160>; |
| 515 | interrupts = <TEGRA_GPIO(N, 5) IRQ_TYPE_LEVEL_HIGH>; | 529 | nvidia,ghost-filter; |
| 516 | }; | 530 | nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; |
| 531 | nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>; | ||
| 532 | linux,keymap = <MATRIX_KEY(0x00, 0x02, KEY_W) | ||
| 533 | MATRIX_KEY(0x00, 0x03, KEY_S) | ||
| 534 | MATRIX_KEY(0x00, 0x04, KEY_A) | ||
| 535 | MATRIX_KEY(0x00, 0x05, KEY_Z) | ||
| 536 | MATRIX_KEY(0x00, 0x07, KEY_FN) | ||
| 537 | |||
| 538 | MATRIX_KEY(0x01, 0x07, KEY_LEFTMETA) | ||
| 539 | MATRIX_KEY(0x02, 0x06, KEY_RIGHTALT) | ||
| 540 | MATRIX_KEY(0x02, 0x07, KEY_LEFTALT) | ||
| 541 | |||
| 542 | MATRIX_KEY(0x03, 0x00, KEY_5) | ||
| 543 | MATRIX_KEY(0x03, 0x01, KEY_4) | ||
| 544 | MATRIX_KEY(0x03, 0x02, KEY_R) | ||
| 545 | MATRIX_KEY(0x03, 0x03, KEY_E) | ||
| 546 | MATRIX_KEY(0x03, 0x04, KEY_F) | ||
| 547 | MATRIX_KEY(0x03, 0x05, KEY_D) | ||
| 548 | MATRIX_KEY(0x03, 0x06, KEY_X) | ||
| 549 | |||
| 550 | MATRIX_KEY(0x04, 0x00, KEY_7) | ||
| 551 | MATRIX_KEY(0x04, 0x01, KEY_6) | ||
| 552 | MATRIX_KEY(0x04, 0x02, KEY_T) | ||
| 553 | MATRIX_KEY(0x04, 0x03, KEY_H) | ||
| 554 | MATRIX_KEY(0x04, 0x04, KEY_G) | ||
| 555 | MATRIX_KEY(0x04, 0x05, KEY_V) | ||
| 556 | MATRIX_KEY(0x04, 0x06, KEY_C) | ||
| 557 | MATRIX_KEY(0x04, 0x07, KEY_SPACE) | ||
| 558 | |||
| 559 | MATRIX_KEY(0x05, 0x00, KEY_9) | ||
| 560 | MATRIX_KEY(0x05, 0x01, KEY_8) | ||
| 561 | MATRIX_KEY(0x05, 0x02, KEY_U) | ||
| 562 | MATRIX_KEY(0x05, 0x03, KEY_Y) | ||
| 563 | MATRIX_KEY(0x05, 0x04, KEY_J) | ||
| 564 | MATRIX_KEY(0x05, 0x05, KEY_N) | ||
| 565 | MATRIX_KEY(0x05, 0x06, KEY_B) | ||
| 566 | MATRIX_KEY(0x05, 0x07, KEY_BACKSLASH) | ||
| 567 | |||
| 568 | MATRIX_KEY(0x06, 0x00, KEY_MINUS) | ||
| 569 | MATRIX_KEY(0x06, 0x01, KEY_0) | ||
| 570 | MATRIX_KEY(0x06, 0x02, KEY_O) | ||
| 571 | MATRIX_KEY(0x06, 0x03, KEY_I) | ||
| 572 | MATRIX_KEY(0x06, 0x04, KEY_L) | ||
| 573 | MATRIX_KEY(0x06, 0x05, KEY_K) | ||
| 574 | MATRIX_KEY(0x06, 0x06, KEY_COMMA) | ||
| 575 | MATRIX_KEY(0x06, 0x07, KEY_M) | ||
| 576 | |||
| 577 | MATRIX_KEY(0x07, 0x01, KEY_EQUAL) | ||
| 578 | MATRIX_KEY(0x07, 0x02, KEY_RIGHTBRACE) | ||
| 579 | MATRIX_KEY(0x07, 0x03, KEY_ENTER) | ||
| 580 | MATRIX_KEY(0x07, 0x07, KEY_MENU) | ||
| 581 | |||
| 582 | MATRIX_KEY(0x08, 0x04, KEY_RIGHTSHIFT) | ||
| 583 | MATRIX_KEY(0x08, 0x05, KEY_LEFTSHIFT) | ||
| 584 | |||
| 585 | MATRIX_KEY(0x09, 0x05, KEY_RIGHTCTRL) | ||
| 586 | MATRIX_KEY(0x09, 0x07, KEY_LEFTCTRL) | ||
| 587 | |||
| 588 | MATRIX_KEY(0x0B, 0x00, KEY_LEFTBRACE) | ||
| 589 | MATRIX_KEY(0x0B, 0x01, KEY_P) | ||
| 590 | MATRIX_KEY(0x0B, 0x02, KEY_APOSTROPHE) | ||
| 591 | MATRIX_KEY(0x0B, 0x03, KEY_SEMICOLON) | ||
| 592 | MATRIX_KEY(0x0B, 0x04, KEY_SLASH) | ||
| 593 | MATRIX_KEY(0x0B, 0x05, KEY_DOT) | ||
| 594 | |||
| 595 | MATRIX_KEY(0x0C, 0x00, KEY_F10) | ||
| 596 | MATRIX_KEY(0x0C, 0x01, KEY_F9) | ||
| 597 | MATRIX_KEY(0x0C, 0x02, KEY_BACKSPACE) | ||
| 598 | MATRIX_KEY(0x0C, 0x03, KEY_3) | ||
| 599 | MATRIX_KEY(0x0C, 0x04, KEY_2) | ||
| 600 | MATRIX_KEY(0x0C, 0x05, KEY_UP) | ||
| 601 | MATRIX_KEY(0x0C, 0x06, KEY_PRINT) | ||
| 602 | MATRIX_KEY(0x0C, 0x07, KEY_PAUSE) | ||
| 603 | |||
| 604 | MATRIX_KEY(0x0D, 0x00, KEY_INSERT) | ||
| 605 | MATRIX_KEY(0x0D, 0x01, KEY_DELETE) | ||
| 606 | MATRIX_KEY(0x0D, 0x03, KEY_PAGEUP ) | ||
| 607 | MATRIX_KEY(0x0D, 0x04, KEY_PAGEDOWN) | ||
| 608 | MATRIX_KEY(0x0D, 0x05, KEY_RIGHT) | ||
| 609 | MATRIX_KEY(0x0D, 0x06, KEY_DOWN) | ||
| 610 | MATRIX_KEY(0x0D, 0x07, KEY_LEFT) | ||
| 611 | |||
| 612 | MATRIX_KEY(0x0E, 0x00, KEY_F11) | ||
| 613 | MATRIX_KEY(0x0E, 0x01, KEY_F12) | ||
| 614 | MATRIX_KEY(0x0E, 0x02, KEY_F8) | ||
| 615 | MATRIX_KEY(0x0E, 0x03, KEY_Q) | ||
| 616 | MATRIX_KEY(0x0E, 0x04, KEY_F4) | ||
| 617 | MATRIX_KEY(0x0E, 0x05, KEY_F3) | ||
| 618 | MATRIX_KEY(0x0E, 0x06, KEY_1) | ||
| 619 | MATRIX_KEY(0x0E, 0x07, KEY_F7) | ||
| 620 | |||
| 621 | MATRIX_KEY(0x0F, 0x00, KEY_ESC) | ||
| 622 | MATRIX_KEY(0x0F, 0x01, KEY_GRAVE) | ||
| 623 | MATRIX_KEY(0x0F, 0x02, KEY_F5) | ||
| 624 | MATRIX_KEY(0x0F, 0x03, KEY_TAB) | ||
| 625 | MATRIX_KEY(0x0F, 0x04, KEY_F1) | ||
| 626 | MATRIX_KEY(0x0F, 0x05, KEY_F2) | ||
| 627 | MATRIX_KEY(0x0F, 0x06, KEY_CAPSLOCK) | ||
| 628 | MATRIX_KEY(0x0F, 0x07, KEY_F6) | ||
| 629 | |||
| 630 | /* Software Handled Function Keys */ | ||
| 631 | MATRIX_KEY(0x14, 0x00, KEY_KP7) | ||
| 632 | |||
| 633 | MATRIX_KEY(0x15, 0x00, KEY_KP9) | ||
| 634 | MATRIX_KEY(0x15, 0x01, KEY_KP8) | ||
| 635 | MATRIX_KEY(0x15, 0x02, KEY_KP4) | ||
| 636 | MATRIX_KEY(0x15, 0x04, KEY_KP1) | ||
| 637 | |||
| 638 | MATRIX_KEY(0x16, 0x01, KEY_KPSLASH) | ||
| 639 | MATRIX_KEY(0x16, 0x02, KEY_KP6) | ||
| 640 | MATRIX_KEY(0x16, 0x03, KEY_KP5) | ||
| 641 | MATRIX_KEY(0x16, 0x04, KEY_KP3) | ||
| 642 | MATRIX_KEY(0x16, 0x05, KEY_KP2) | ||
| 643 | MATRIX_KEY(0x16, 0x07, KEY_KP0) | ||
| 644 | |||
| 645 | MATRIX_KEY(0x1B, 0x01, KEY_KPASTERISK) | ||
| 646 | MATRIX_KEY(0x1B, 0x03, KEY_KPMINUS) | ||
| 647 | MATRIX_KEY(0x1B, 0x04, KEY_KPPLUS) | ||
| 648 | MATRIX_KEY(0x1B, 0x05, KEY_KPDOT) | ||
| 649 | |||
| 650 | MATRIX_KEY(0x1C, 0x05, KEY_VOLUMEUP) | ||
| 651 | |||
| 652 | MATRIX_KEY(0x1D, 0x03, KEY_HOME) | ||
| 653 | MATRIX_KEY(0x1D, 0x04, KEY_END) | ||
| 654 | MATRIX_KEY(0x1D, 0x05, KEY_BRIGHTNESSDOWN) | ||
| 655 | MATRIX_KEY(0x1D, 0x06, KEY_VOLUMEDOWN) | ||
| 656 | MATRIX_KEY(0x1D, 0x07, KEY_BRIGHTNESSUP) | ||
| 657 | |||
| 658 | MATRIX_KEY(0x1E, 0x00, KEY_NUMLOCK) | ||
| 659 | MATRIX_KEY(0x1E, 0x01, KEY_SCROLLLOCK) | ||
| 660 | MATRIX_KEY(0x1E, 0x02, KEY_MUTE) | ||
| 661 | |||
| 662 | MATRIX_KEY(0x1F, 0x04, KEY_HELP)>; | ||
| 517 | }; | 663 | }; |
| 518 | 664 | ||
| 519 | pmc { | 665 | pmc@7000e400 { |
| 520 | nvidia,invert-interrupt; | 666 | nvidia,invert-interrupt; |
| 521 | nvidia,suspend-mode = <1>; | 667 | nvidia,suspend-mode = <1>; |
| 522 | nvidia,cpu-pwr-good-time = <5000>; | 668 | nvidia,cpu-pwr-good-time = <5000>; |
| @@ -621,7 +767,7 @@ | |||
| 621 | #address-cells = <1>; | 767 | #address-cells = <1>; |
| 622 | #size-cells = <0>; | 768 | #size-cells = <0>; |
| 623 | 769 | ||
| 624 | clk32k_in: clock { | 770 | clk32k_in: clock@0 { |
| 625 | compatible = "fixed-clock"; | 771 | compatible = "fixed-clock"; |
| 626 | reg=<0>; | 772 | reg=<0>; |
| 627 | #clock-cells = <0>; | 773 | #clock-cells = <0>; |
| @@ -635,7 +781,7 @@ | |||
| 635 | power { | 781 | power { |
| 636 | label = "Power"; | 782 | label = "Power"; |
| 637 | gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; | 783 | gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; |
| 638 | linux,code = <116>; /* KEY_POWER */ | 784 | linux,code = <KEY_POWER>; |
| 639 | gpio-key,wakeup; | 785 | gpio-key,wakeup; |
| 640 | }; | 786 | }; |
| 641 | 787 | ||
| @@ -649,145 +795,6 @@ | |||
| 649 | }; | 795 | }; |
| 650 | }; | 796 | }; |
| 651 | 797 | ||
| 652 | kbc { | ||
| 653 | status = "okay"; | ||
| 654 | nvidia,debounce-delay-ms = <32>; | ||
| 655 | nvidia,repeat-delay-ms = <160>; | ||
| 656 | nvidia,ghost-filter; | ||
| 657 | nvidia,kbc-row-pins = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15>; | ||
| 658 | nvidia,kbc-col-pins = <16 17 18 19 20 21 22 23>; | ||
| 659 | linux,keymap = <0x00020011 /* KEY_W */ | ||
| 660 | 0x0003001F /* KEY_S */ | ||
| 661 | 0x0004001E /* KEY_A */ | ||
| 662 | 0x0005002C /* KEY_Z */ | ||
| 663 | 0x000701d0 /* KEY_FN */ | ||
| 664 | |||
| 665 | 0x0107007D /* KEY_LEFTMETA */ | ||
| 666 | 0x02060064 /* KEY_RIGHTALT */ | ||
| 667 | 0x02070038 /* KEY_LEFTALT */ | ||
| 668 | |||
| 669 | 0x03000006 /* KEY_5 */ | ||
| 670 | 0x03010005 /* KEY_4 */ | ||
| 671 | 0x03020013 /* KEY_R */ | ||
| 672 | 0x03030012 /* KEY_E */ | ||
| 673 | 0x03040021 /* KEY_F */ | ||
| 674 | 0x03050020 /* KEY_D */ | ||
| 675 | 0x0306002D /* KEY_X */ | ||
| 676 | |||
| 677 | 0x04000008 /* KEY_7 */ | ||
| 678 | 0x04010007 /* KEY_6 */ | ||
| 679 | 0x04020014 /* KEY_T */ | ||
| 680 | 0x04030023 /* KEY_H */ | ||
| 681 | 0x04040022 /* KEY_G */ | ||
| 682 | 0x0405002F /* KEY_V */ | ||
| 683 | 0x0406002E /* KEY_C */ | ||
| 684 | 0x04070039 /* KEY_SPACE */ | ||
| 685 | |||
| 686 | 0x0500000A /* KEY_9 */ | ||
| 687 | 0x05010009 /* KEY_8 */ | ||
| 688 | 0x05020016 /* KEY_U */ | ||
| 689 | 0x05030015 /* KEY_Y */ | ||
| 690 | 0x05040024 /* KEY_J */ | ||
| 691 | 0x05050031 /* KEY_N */ | ||
| 692 | 0x05060030 /* KEY_B */ | ||
| 693 | 0x0507002B /* KEY_BACKSLASH */ | ||
| 694 | |||
| 695 | 0x0600000C /* KEY_MINUS */ | ||
| 696 | 0x0601000B /* KEY_0 */ | ||
| 697 | 0x06020018 /* KEY_O */ | ||
| 698 | 0x06030017 /* KEY_I */ | ||
| 699 | 0x06040026 /* KEY_L */ | ||
| 700 | 0x06050025 /* KEY_K */ | ||
| 701 | 0x06060033 /* KEY_COMMA */ | ||
| 702 | 0x06070032 /* KEY_M */ | ||
| 703 | |||
| 704 | 0x0701000D /* KEY_EQUAL */ | ||
| 705 | 0x0702001B /* KEY_RIGHTBRACE */ | ||
| 706 | 0x0703001C /* KEY_ENTER */ | ||
| 707 | 0x0707008B /* KEY_MENU */ | ||
| 708 | |||
| 709 | 0x08040036 /* KEY_RIGHTSHIFT */ | ||
| 710 | 0x0805002A /* KEY_LEFTSHIFT */ | ||
| 711 | |||
| 712 | 0x09050061 /* KEY_RIGHTCTRL */ | ||
| 713 | 0x0907001D /* KEY_LEFTCTRL */ | ||
| 714 | |||
| 715 | 0x0B00001A /* KEY_LEFTBRACE */ | ||
| 716 | 0x0B010019 /* KEY_P */ | ||
| 717 | 0x0B020028 /* KEY_APOSTROPHE */ | ||
| 718 | 0x0B030027 /* KEY_SEMICOLON */ | ||
| 719 | 0x0B040035 /* KEY_SLASH */ | ||
| 720 | 0x0B050034 /* KEY_DOT */ | ||
| 721 | |||
| 722 | 0x0C000044 /* KEY_F10 */ | ||
| 723 | 0x0C010043 /* KEY_F9 */ | ||
| 724 | 0x0C02000E /* KEY_BACKSPACE */ | ||
| 725 | 0x0C030004 /* KEY_3 */ | ||
| 726 | 0x0C040003 /* KEY_2 */ | ||
| 727 | 0x0C050067 /* KEY_UP */ | ||
| 728 | 0x0C0600D2 /* KEY_PRINT */ | ||
| 729 | 0x0C070077 /* KEY_PAUSE */ | ||
| 730 | |||
| 731 | 0x0D00006E /* KEY_INSERT */ | ||
| 732 | 0x0D01006F /* KEY_DELETE */ | ||
| 733 | 0x0D030068 /* KEY_PAGEUP */ | ||
| 734 | 0x0D04006D /* KEY_PAGEDOWN */ | ||
| 735 | 0x0D05006A /* KEY_RIGHT */ | ||
| 736 | 0x0D06006C /* KEY_DOWN */ | ||
| 737 | 0x0D070069 /* KEY_LEFT */ | ||
| 738 | |||
| 739 | 0x0E000057 /* KEY_F11 */ | ||
| 740 | 0x0E010058 /* KEY_F12 */ | ||
| 741 | 0x0E020042 /* KEY_F8 */ | ||
| 742 | 0x0E030010 /* KEY_Q */ | ||
| 743 | 0x0E04003E /* KEY_F4 */ | ||
| 744 | 0x0E05003D /* KEY_F3 */ | ||
| 745 | 0x0E060002 /* KEY_1 */ | ||
| 746 | 0x0E070041 /* KEY_F7 */ | ||
| 747 | |||
| 748 | 0x0F000001 /* KEY_ESC */ | ||
| 749 | 0x0F010029 /* KEY_GRAVE */ | ||
| 750 | 0x0F02003F /* KEY_F5 */ | ||
| 751 | 0x0F03000F /* KEY_TAB */ | ||
| 752 | 0x0F04003B /* KEY_F1 */ | ||
| 753 | 0x0F05003C /* KEY_F2 */ | ||
| 754 | 0x0F06003A /* KEY_CAPSLOCK */ | ||
| 755 | 0x0F070040 /* KEY_F6 */ | ||
| 756 | |||
| 757 | /* Software Handled Function Keys */ | ||
| 758 | 0x14000047 /* KEY_KP7 */ | ||
| 759 | |||
| 760 | 0x15000049 /* KEY_KP9 */ | ||
| 761 | 0x15010048 /* KEY_KP8 */ | ||
| 762 | 0x1502004B /* KEY_KP4 */ | ||
| 763 | 0x1504004F /* KEY_KP1 */ | ||
| 764 | |||
| 765 | 0x1601004E /* KEY_KPSLASH */ | ||
| 766 | 0x1602004D /* KEY_KP6 */ | ||
| 767 | 0x1603004C /* KEY_KP5 */ | ||
| 768 | 0x16040051 /* KEY_KP3 */ | ||
| 769 | 0x16050050 /* KEY_KP2 */ | ||
| 770 | 0x16070052 /* KEY_KP0 */ | ||
| 771 | |||
| 772 | 0x1B010037 /* KEY_KPASTERISK */ | ||
| 773 | 0x1B03004A /* KEY_KPMINUS */ | ||
| 774 | 0x1B04004E /* KEY_KPPLUS */ | ||
| 775 | 0x1B050053 /* KEY_KPDOT */ | ||
| 776 | |||
| 777 | 0x1C050073 /* KEY_VOLUMEUP */ | ||
| 778 | |||
| 779 | 0x1D030066 /* KEY_HOME */ | ||
| 780 | 0x1D04006B /* KEY_END */ | ||
| 781 | 0x1D0500E0 /* KEY_BRIGHTNESSDOWN */ | ||
| 782 | 0x1D060072 /* KEY_VOLUMEDOWN */ | ||
| 783 | 0x1D0700E1 /* KEY_BRIGHTNESSUP */ | ||
| 784 | |||
| 785 | 0x1E000045 /* KEY_NUMLOCK */ | ||
| 786 | 0x1E010046 /* KEY_SCROLLLOCK */ | ||
| 787 | 0x1E020071 /* KEY_MUTE */ | ||
| 788 | |||
| 789 | 0x1F04008A>; /* KEY_HELP */ | ||
| 790 | }; | ||
| 791 | regulators { | 798 | regulators { |
| 792 | compatible = "simple-bus"; | 799 | compatible = "simple-bus"; |
| 793 | #address-cells = <1>; | 800 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi index 7726dab3d08d..a1b0d965757f 100644 --- a/arch/arm/boot/dts/tegra20-tamonten.dtsi +++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi | |||
| @@ -4,12 +4,17 @@ | |||
| 4 | model = "Avionic Design Tamonten SOM"; | 4 | model = "Avionic Design Tamonten SOM"; |
| 5 | compatible = "ad,tamonten", "nvidia,tegra20"; | 5 | compatible = "ad,tamonten", "nvidia,tegra20"; |
| 6 | 6 | ||
| 7 | aliases { | ||
| 8 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 9 | rtc1 = "/rtc@7000e000"; | ||
| 10 | }; | ||
| 11 | |||
| 7 | memory { | 12 | memory { |
| 8 | reg = <0x00000000 0x20000000>; | 13 | reg = <0x00000000 0x20000000>; |
| 9 | }; | 14 | }; |
| 10 | 15 | ||
| 11 | host1x { | 16 | host1x@50000000 { |
| 12 | hdmi { | 17 | hdmi@54280000 { |
| 13 | vdd-supply = <&hdmi_vdd_reg>; | 18 | vdd-supply = <&hdmi_vdd_reg>; |
| 14 | pll-supply = <&hdmi_pll_reg>; | 19 | pll-supply = <&hdmi_pll_reg>; |
| 15 | 20 | ||
| @@ -19,7 +24,7 @@ | |||
| 19 | }; | 24 | }; |
| 20 | }; | 25 | }; |
| 21 | 26 | ||
| 22 | pinmux { | 27 | pinmux@70000014 { |
| 23 | pinctrl-names = "default"; | 28 | pinctrl-names = "default"; |
| 24 | pinctrl-0 = <&state_default>; | 29 | pinctrl-0 = <&state_default>; |
| 25 | 30 | ||
| @@ -176,50 +181,50 @@ | |||
| 176 | "gmb", "gmc", "gmd", "gme", "gpu7", | 181 | "gmb", "gmc", "gmd", "gme", "gpu7", |
| 177 | "gpv", "i2cp", "pta", "rm", "slxa", | 182 | "gpv", "i2cp", "pta", "rm", "slxa", |
| 178 | "slxk", "spia", "spib", "uac"; | 183 | "slxk", "spia", "spib", "uac"; |
| 179 | nvidia,pull = <0>; | 184 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 180 | nvidia,tristate = <0>; | 185 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 181 | }; | 186 | }; |
| 182 | conf_ck32 { | 187 | conf_ck32 { |
| 183 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", | 188 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", |
| 184 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; | 189 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; |
| 185 | nvidia,pull = <0>; | 190 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 186 | }; | 191 | }; |
| 187 | conf_csus { | 192 | conf_csus { |
| 188 | nvidia,pins = "csus", "spid", "spif"; | 193 | nvidia,pins = "csus", "spid", "spif"; |
| 189 | nvidia,pull = <1>; | 194 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 190 | nvidia,tristate = <1>; | 195 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 191 | }; | 196 | }; |
| 192 | conf_crtp { | 197 | conf_crtp { |
| 193 | nvidia,pins = "crtp", "dap2", "dap3", "dap4", | 198 | nvidia,pins = "crtp", "dap2", "dap3", "dap4", |
| 194 | "dtc", "dte", "dtf", "gpu", "sdio1", | 199 | "dtc", "dte", "dtf", "gpu", "sdio1", |
| 195 | "slxc", "slxd", "spdi", "spdo", "spig", | 200 | "slxc", "slxd", "spdi", "spdo", "spig", |
| 196 | "uda"; | 201 | "uda"; |
| 197 | nvidia,pull = <0>; | 202 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 198 | nvidia,tristate = <1>; | 203 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 199 | }; | 204 | }; |
| 200 | conf_ddc { | 205 | conf_ddc { |
| 201 | nvidia,pins = "ddc", "dta", "dtd", "kbca", | 206 | nvidia,pins = "ddc", "dta", "dtd", "kbca", |
| 202 | "kbcb", "kbcc", "kbcd", "kbce", "kbcf", | 207 | "kbcb", "kbcc", "kbcd", "kbce", "kbcf", |
| 203 | "sdc"; | 208 | "sdc"; |
| 204 | nvidia,pull = <2>; | 209 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 205 | nvidia,tristate = <0>; | 210 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 206 | }; | 211 | }; |
| 207 | conf_hdint { | 212 | conf_hdint { |
| 208 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", | 213 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", |
| 209 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", | 214 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", |
| 210 | "lvp0", "owc", "sdb"; | 215 | "lvp0", "owc", "sdb"; |
| 211 | nvidia,tristate = <1>; | 216 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 212 | }; | 217 | }; |
| 213 | conf_irrx { | 218 | conf_irrx { |
| 214 | nvidia,pins = "irrx", "irtx", "sdd", "spic", | 219 | nvidia,pins = "irrx", "irtx", "sdd", "spic", |
| 215 | "spie", "spih", "uaa", "uab", "uad", | 220 | "spie", "spih", "uaa", "uab", "uad", |
| 216 | "uca", "ucb"; | 221 | "uca", "ucb"; |
| 217 | nvidia,pull = <2>; | 222 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 218 | nvidia,tristate = <1>; | 223 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 219 | }; | 224 | }; |
| 220 | conf_lc { | 225 | conf_lc { |
| 221 | nvidia,pins = "lc", "ls"; | 226 | nvidia,pins = "lc", "ls"; |
| 222 | nvidia,pull = <2>; | 227 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 223 | }; | 228 | }; |
| 224 | conf_ld0 { | 229 | conf_ld0 { |
| 225 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", | 230 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", |
| @@ -229,12 +234,12 @@ | |||
| 229 | "lhp1", "lhp2", "lhs", "lm0", "lpp", | 234 | "lhp1", "lhp2", "lhs", "lm0", "lpp", |
| 230 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", | 235 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", |
| 231 | "lvs", "pmc"; | 236 | "lvs", "pmc"; |
| 232 | nvidia,tristate = <0>; | 237 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 233 | }; | 238 | }; |
| 234 | conf_ld17_0 { | 239 | conf_ld17_0 { |
| 235 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 240 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 236 | "ld23_22"; | 241 | "ld23_22"; |
| 237 | nvidia,pull = <1>; | 242 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 238 | }; | 243 | }; |
| 239 | }; | 244 | }; |
| 240 | 245 | ||
| @@ -457,7 +462,7 @@ | |||
| 457 | }; | 462 | }; |
| 458 | }; | 463 | }; |
| 459 | 464 | ||
| 460 | pmc { | 465 | pmc@7000e400 { |
| 461 | nvidia,invert-interrupt; | 466 | nvidia,invert-interrupt; |
| 462 | nvidia,suspend-mode = <1>; | 467 | nvidia,suspend-mode = <1>; |
| 463 | nvidia,cpu-pwr-good-time = <5000>; | 468 | nvidia,cpu-pwr-good-time = <5000>; |
| @@ -467,7 +472,7 @@ | |||
| 467 | nvidia,sys-clock-req-active-high; | 472 | nvidia,sys-clock-req-active-high; |
| 468 | }; | 473 | }; |
| 469 | 474 | ||
| 470 | pcie-controller { | 475 | pcie-controller@80003000 { |
| 471 | pex-clk-supply = <&pci_clk_reg>; | 476 | pex-clk-supply = <&pci_clk_reg>; |
| 472 | vdd-supply = <&pci_vdd_reg>; | 477 | vdd-supply = <&pci_vdd_reg>; |
| 473 | }; | 478 | }; |
| @@ -492,7 +497,7 @@ | |||
| 492 | #address-cells = <1>; | 497 | #address-cells = <1>; |
| 493 | #size-cells = <0>; | 498 | #size-cells = <0>; |
| 494 | 499 | ||
| 495 | clk32k_in: clock { | 500 | clk32k_in: clock@0 { |
| 496 | compatible = "fixed-clock"; | 501 | compatible = "fixed-clock"; |
| 497 | reg=<0>; | 502 | reg=<0>; |
| 498 | #clock-cells = <0>; | 503 | #clock-cells = <0>; |
diff --git a/arch/arm/boot/dts/tegra20-tec.dts b/arch/arm/boot/dts/tegra20-tec.dts index 3ada3cb67f07..890562c667fb 100644 --- a/arch/arm/boot/dts/tegra20-tec.dts +++ b/arch/arm/boot/dts/tegra20-tec.dts | |||
| @@ -6,8 +6,8 @@ | |||
| 6 | model = "Avionic Design Tamonten Evaluation Carrier"; | 6 | model = "Avionic Design Tamonten Evaluation Carrier"; |
| 7 | compatible = "ad,tec", "ad,tamonten", "nvidia,tegra20"; | 7 | compatible = "ad,tec", "ad,tamonten", "nvidia,tegra20"; |
| 8 | 8 | ||
| 9 | host1x { | 9 | host1x@50000000 { |
| 10 | hdmi { | 10 | hdmi@54280000 { |
| 11 | status = "okay"; | 11 | status = "okay"; |
| 12 | }; | 12 | }; |
| 13 | }; | 13 | }; |
| @@ -32,7 +32,7 @@ | |||
| 32 | }; | 32 | }; |
| 33 | }; | 33 | }; |
| 34 | 34 | ||
| 35 | pcie-controller { | 35 | pcie-controller@80003000 { |
| 36 | status = "okay"; | 36 | status = "okay"; |
| 37 | 37 | ||
| 38 | pci@1,0 { | 38 | pci@1,0 { |
diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts index 78deea5c0d21..216fa6d50c65 100644 --- a/arch/arm/boot/dts/tegra20-trimslice.dts +++ b/arch/arm/boot/dts/tegra20-trimslice.dts | |||
| @@ -1,17 +1,23 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra20.dtsi" | 4 | #include "tegra20.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "Compulab TrimSlice board"; | 7 | model = "Compulab TrimSlice board"; |
| 7 | compatible = "compulab,trimslice", "nvidia,tegra20"; | 8 | compatible = "compulab,trimslice", "nvidia,tegra20"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000c500/rtc@56"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x00000000 0x40000000>; | 16 | reg = <0x00000000 0x40000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 13 | host1x { | 19 | host1x@50000000 { |
| 14 | hdmi { | 20 | hdmi@54280000 { |
| 15 | status = "okay"; | 21 | status = "okay"; |
| 16 | 22 | ||
| 17 | vdd-supply = <&hdmi_vdd_reg>; | 23 | vdd-supply = <&hdmi_vdd_reg>; |
| @@ -23,7 +29,7 @@ | |||
| 23 | }; | 29 | }; |
| 24 | }; | 30 | }; |
| 25 | 31 | ||
| 26 | pinmux { | 32 | pinmux@70000014 { |
| 27 | pinctrl-names = "default"; | 33 | pinctrl-names = "default"; |
| 28 | pinctrl-0 = <&state_default>; | 34 | pinctrl-0 = <&state_default>; |
| 29 | 35 | ||
| @@ -191,49 +197,49 @@ | |||
| 191 | "dtb", "dtc", "dtd", "dte", "gmb", | 197 | "dtb", "dtc", "dtd", "dte", "gmb", |
| 192 | "gme", "i2cp", "pta", "slxc", "slxd", | 198 | "gme", "i2cp", "pta", "slxc", "slxd", |
| 193 | "spdi", "spdo", "uda"; | 199 | "spdi", "spdo", "uda"; |
| 194 | nvidia,pull = <0>; | 200 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 195 | nvidia,tristate = <1>; | 201 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 196 | }; | 202 | }; |
| 197 | conf_atb { | 203 | conf_atb { |
| 198 | nvidia,pins = "atb", "cdev1", "cdev2", "dap1", | 204 | nvidia,pins = "atb", "cdev1", "cdev2", "dap1", |
| 199 | "gma", "gmc", "gmd", "gpu", "gpu7", | 205 | "gma", "gmc", "gmd", "gpu", "gpu7", |
| 200 | "gpv", "sdio1", "slxa", "slxk", "uac"; | 206 | "gpv", "sdio1", "slxa", "slxk", "uac"; |
| 201 | nvidia,pull = <0>; | 207 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 202 | nvidia,tristate = <0>; | 208 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 203 | }; | 209 | }; |
| 204 | conf_ck32 { | 210 | conf_ck32 { |
| 205 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", | 211 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", |
| 206 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; | 212 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; |
| 207 | nvidia,pull = <0>; | 213 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 208 | }; | 214 | }; |
| 209 | conf_csus { | 215 | conf_csus { |
| 210 | nvidia,pins = "csus", "spia", "spib", | 216 | nvidia,pins = "csus", "spia", "spib", |
| 211 | "spid", "spif"; | 217 | "spid", "spif"; |
| 212 | nvidia,pull = <1>; | 218 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 213 | nvidia,tristate = <1>; | 219 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 214 | }; | 220 | }; |
| 215 | conf_ddc { | 221 | conf_ddc { |
| 216 | nvidia,pins = "ddc", "dtf", "rm", "sdc", "sdd"; | 222 | nvidia,pins = "ddc", "dtf", "rm", "sdc", "sdd"; |
| 217 | nvidia,pull = <2>; | 223 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 218 | nvidia,tristate = <0>; | 224 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 219 | }; | 225 | }; |
| 220 | conf_hdint { | 226 | conf_hdint { |
| 221 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", | 227 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", |
| 222 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", | 228 | "lpw1", "lsc1", "lsck", "lsda", "lsdi", |
| 223 | "lvp0", "pmc"; | 229 | "lvp0", "pmc"; |
| 224 | nvidia,tristate = <1>; | 230 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 225 | }; | 231 | }; |
| 226 | conf_irrx { | 232 | conf_irrx { |
| 227 | nvidia,pins = "irrx", "irtx", "kbca", "kbcb", | 233 | nvidia,pins = "irrx", "irtx", "kbca", "kbcb", |
| 228 | "kbcc", "kbcd", "kbce", "kbcf", "owc", | 234 | "kbcc", "kbcd", "kbce", "kbcf", "owc", |
| 229 | "spic", "spie", "spig", "spih", "uaa", | 235 | "spic", "spie", "spig", "spih", "uaa", |
| 230 | "uab", "uad", "uca", "ucb"; | 236 | "uab", "uad", "uca", "ucb"; |
| 231 | nvidia,pull = <2>; | 237 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 232 | nvidia,tristate = <1>; | 238 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 233 | }; | 239 | }; |
| 234 | conf_lc { | 240 | conf_lc { |
| 235 | nvidia,pins = "lc", "ls"; | 241 | nvidia,pins = "lc", "ls"; |
| 236 | nvidia,pull = <2>; | 242 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 237 | }; | 243 | }; |
| 238 | conf_ld0 { | 244 | conf_ld0 { |
| 239 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", | 245 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", |
| @@ -243,17 +249,17 @@ | |||
| 243 | "lhp1", "lhp2", "lhs", "lm0", "lpp", | 249 | "lhp1", "lhp2", "lhs", "lm0", "lpp", |
| 244 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", | 250 | "lpw0", "lpw2", "lsc0", "lspi", "lvp1", |
| 245 | "lvs", "sdb"; | 251 | "lvs", "sdb"; |
| 246 | nvidia,tristate = <0>; | 252 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 247 | }; | 253 | }; |
| 248 | conf_ld17_0 { | 254 | conf_ld17_0 { |
| 249 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 255 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 250 | "ld23_22"; | 256 | "ld23_22"; |
| 251 | nvidia,pull = <1>; | 257 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 252 | }; | 258 | }; |
| 253 | conf_spif { | 259 | conf_spif { |
| 254 | nvidia,pins = "spif"; | 260 | nvidia,pins = "spif"; |
| 255 | nvidia,pull = <1>; | 261 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 256 | nvidia,tristate = <0>; | 262 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 257 | }; | 263 | }; |
| 258 | }; | 264 | }; |
| 259 | }; | 265 | }; |
| @@ -301,7 +307,7 @@ | |||
| 301 | }; | 307 | }; |
| 302 | }; | 308 | }; |
| 303 | 309 | ||
| 304 | pmc { | 310 | pmc@7000e400 { |
| 305 | nvidia,suspend-mode = <1>; | 311 | nvidia,suspend-mode = <1>; |
| 306 | nvidia,cpu-pwr-good-time = <5000>; | 312 | nvidia,cpu-pwr-good-time = <5000>; |
| 307 | nvidia,cpu-pwr-off-time = <5000>; | 313 | nvidia,cpu-pwr-off-time = <5000>; |
| @@ -310,7 +316,7 @@ | |||
| 310 | nvidia,sys-clock-req-active-high; | 316 | nvidia,sys-clock-req-active-high; |
| 311 | }; | 317 | }; |
| 312 | 318 | ||
| 313 | pcie-controller { | 319 | pcie-controller@80003000 { |
| 314 | status = "okay"; | 320 | status = "okay"; |
| 315 | pex-clk-supply = <&pci_clk_reg>; | 321 | pex-clk-supply = <&pci_clk_reg>; |
| 316 | vdd-supply = <&pci_vdd_reg>; | 322 | vdd-supply = <&pci_vdd_reg>; |
| @@ -366,7 +372,7 @@ | |||
| 366 | #address-cells = <1>; | 372 | #address-cells = <1>; |
| 367 | #size-cells = <0>; | 373 | #size-cells = <0>; |
| 368 | 374 | ||
| 369 | clk32k_in: clock { | 375 | clk32k_in: clock@0 { |
| 370 | compatible = "fixed-clock"; | 376 | compatible = "fixed-clock"; |
| 371 | reg=<0>; | 377 | reg=<0>; |
| 372 | #clock-cells = <0>; | 378 | #clock-cells = <0>; |
| @@ -380,7 +386,7 @@ | |||
| 380 | power { | 386 | power { |
| 381 | label = "Power"; | 387 | label = "Power"; |
| 382 | gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>; | 388 | gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>; |
| 383 | linux,code = <116>; /* KEY_POWER */ | 389 | linux,code = <KEY_POWER>; |
| 384 | gpio-key,wakeup; | 390 | gpio-key,wakeup; |
| 385 | }; | 391 | }; |
| 386 | }; | 392 | }; |
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts index aab872cd0530..571d12e6ac2d 100644 --- a/arch/arm/boot/dts/tegra20-ventana.dts +++ b/arch/arm/boot/dts/tegra20-ventana.dts | |||
| @@ -1,17 +1,23 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra20.dtsi" | 4 | #include "tegra20.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "NVIDIA Tegra20 Ventana evaluation board"; | 7 | model = "NVIDIA Tegra20 Ventana evaluation board"; |
| 7 | compatible = "nvidia,ventana", "nvidia,tegra20"; | 8 | compatible = "nvidia,ventana", "nvidia,tegra20"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x00000000 0x40000000>; | 16 | reg = <0x00000000 0x40000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 13 | host1x { | 19 | host1x@50000000 { |
| 14 | hdmi { | 20 | hdmi@54280000 { |
| 15 | status = "okay"; | 21 | status = "okay"; |
| 16 | 22 | ||
| 17 | vdd-supply = <&hdmi_vdd_reg>; | 23 | vdd-supply = <&hdmi_vdd_reg>; |
| @@ -23,7 +29,7 @@ | |||
| 23 | }; | 29 | }; |
| 24 | }; | 30 | }; |
| 25 | 31 | ||
| 26 | pinmux { | 32 | pinmux@70000014 { |
| 27 | pinctrl-names = "default"; | 33 | pinctrl-names = "default"; |
| 28 | pinctrl-0 = <&state_default>; | 34 | pinctrl-0 = <&state_default>; |
| 29 | 35 | ||
| @@ -189,50 +195,50 @@ | |||
| 189 | "irtx", "pta", "rm", "sdc", "sdd", | 195 | "irtx", "pta", "rm", "sdc", "sdd", |
| 190 | "slxc", "slxd", "slxk", "spdi", "spdo", | 196 | "slxc", "slxd", "slxk", "spdi", "spdo", |
| 191 | "uac", "uad", "uca", "ucb", "uda"; | 197 | "uac", "uad", "uca", "ucb", "uda"; |
| 192 | nvidia,pull = <0>; | 198 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 193 | nvidia,tristate = <0>; | 199 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 194 | }; | 200 | }; |
| 195 | conf_ate { | 201 | conf_ate { |
| 196 | nvidia,pins = "ate", "csus", "dap3", "gmd", | 202 | nvidia,pins = "ate", "csus", "dap3", "gmd", |
| 197 | "gpv", "owc", "spia", "spib", "spic", | 203 | "gpv", "owc", "spia", "spib", "spic", |
| 198 | "spid", "spie", "spig"; | 204 | "spid", "spie", "spig"; |
| 199 | nvidia,pull = <0>; | 205 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 200 | nvidia,tristate = <1>; | 206 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 201 | }; | 207 | }; |
| 202 | conf_ck32 { | 208 | conf_ck32 { |
| 203 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", | 209 | nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", |
| 204 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; | 210 | "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; |
| 205 | nvidia,pull = <0>; | 211 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 206 | }; | 212 | }; |
| 207 | conf_crtp { | 213 | conf_crtp { |
| 208 | nvidia,pins = "crtp", "gmb", "slxa", "spih"; | 214 | nvidia,pins = "crtp", "gmb", "slxa", "spih"; |
| 209 | nvidia,pull = <2>; | 215 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 210 | nvidia,tristate = <1>; | 216 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 211 | }; | 217 | }; |
| 212 | conf_dta { | 218 | conf_dta { |
| 213 | nvidia,pins = "dta", "dtb", "dtc", "dtd"; | 219 | nvidia,pins = "dta", "dtb", "dtc", "dtd"; |
| 214 | nvidia,pull = <1>; | 220 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 215 | nvidia,tristate = <0>; | 221 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 216 | }; | 222 | }; |
| 217 | conf_dte { | 223 | conf_dte { |
| 218 | nvidia,pins = "dte", "spif"; | 224 | nvidia,pins = "dte", "spif"; |
| 219 | nvidia,pull = <1>; | 225 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 220 | nvidia,tristate = <1>; | 226 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 221 | }; | 227 | }; |
| 222 | conf_hdint { | 228 | conf_hdint { |
| 223 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", | 229 | nvidia,pins = "hdint", "lcsn", "ldc", "lm1", |
| 224 | "lpw1", "lsck", "lsda", "lsdi", "lvp0"; | 230 | "lpw1", "lsck", "lsda", "lsdi", "lvp0"; |
| 225 | nvidia,tristate = <1>; | 231 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 226 | }; | 232 | }; |
| 227 | conf_kbca { | 233 | conf_kbca { |
| 228 | nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd", | 234 | nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd", |
| 229 | "kbce", "kbcf", "sdio1", "uaa", "uab"; | 235 | "kbce", "kbcf", "sdio1", "uaa", "uab"; |
| 230 | nvidia,pull = <2>; | 236 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 231 | nvidia,tristate = <0>; | 237 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 232 | }; | 238 | }; |
| 233 | conf_lc { | 239 | conf_lc { |
| 234 | nvidia,pins = "lc", "ls"; | 240 | nvidia,pins = "lc", "ls"; |
| 235 | nvidia,pull = <2>; | 241 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 236 | }; | 242 | }; |
| 237 | conf_ld0 { | 243 | conf_ld0 { |
| 238 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", | 244 | nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", |
| @@ -242,22 +248,22 @@ | |||
| 242 | "lhp1", "lhp2", "lhs", "lm0", "lpp", | 248 | "lhp1", "lhp2", "lhs", "lm0", "lpp", |
| 243 | "lpw0", "lpw2", "lsc0", "lsc1", "lspi", | 249 | "lpw0", "lpw2", "lsc0", "lsc1", "lspi", |
| 244 | "lvp1", "lvs", "pmc", "sdb"; | 250 | "lvp1", "lvs", "pmc", "sdb"; |
| 245 | nvidia,tristate = <0>; | 251 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 246 | }; | 252 | }; |
| 247 | conf_ld17_0 { | 253 | conf_ld17_0 { |
| 248 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 254 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 249 | "ld23_22"; | 255 | "ld23_22"; |
| 250 | nvidia,pull = <1>; | 256 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 251 | }; | 257 | }; |
| 252 | drive_sdio1 { | 258 | drive_sdio1 { |
| 253 | nvidia,pins = "drive_sdio1"; | 259 | nvidia,pins = "drive_sdio1"; |
| 254 | nvidia,high-speed-mode = <0>; | 260 | nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; |
| 255 | nvidia,schmitt = <1>; | 261 | nvidia,schmitt = <TEGRA_PIN_ENABLE>; |
| 256 | nvidia,low-power-mode = <3>; | 262 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; |
| 257 | nvidia,pull-down-strength = <31>; | 263 | nvidia,pull-down-strength = <31>; |
| 258 | nvidia,pull-up-strength = <31>; | 264 | nvidia,pull-up-strength = <31>; |
| 259 | nvidia,slew-rate-rising = <3>; | 265 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>; |
| 260 | nvidia,slew-rate-falling = <3>; | 266 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>; |
| 261 | }; | 267 | }; |
| 262 | }; | 268 | }; |
| 263 | 269 | ||
| @@ -492,7 +498,7 @@ | |||
| 492 | }; | 498 | }; |
| 493 | }; | 499 | }; |
| 494 | 500 | ||
| 495 | pmc { | 501 | pmc@7000e400 { |
| 496 | nvidia,invert-interrupt; | 502 | nvidia,invert-interrupt; |
| 497 | nvidia,suspend-mode = <1>; | 503 | nvidia,suspend-mode = <1>; |
| 498 | nvidia,cpu-pwr-good-time = <2000>; | 504 | nvidia,cpu-pwr-good-time = <2000>; |
| @@ -556,7 +562,7 @@ | |||
| 556 | #address-cells = <1>; | 562 | #address-cells = <1>; |
| 557 | #size-cells = <0>; | 563 | #size-cells = <0>; |
| 558 | 564 | ||
| 559 | clk32k_in: clock { | 565 | clk32k_in: clock@0 { |
| 560 | compatible = "fixed-clock"; | 566 | compatible = "fixed-clock"; |
| 561 | reg=<0>; | 567 | reg=<0>; |
| 562 | #clock-cells = <0>; | 568 | #clock-cells = <0>; |
| @@ -570,7 +576,7 @@ | |||
| 570 | power { | 576 | power { |
| 571 | label = "Power"; | 577 | label = "Power"; |
| 572 | gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; | 578 | gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; |
| 573 | linux,code = <116>; /* KEY_POWER */ | 579 | linux,code = <KEY_POWER>; |
| 574 | gpio-key,wakeup; | 580 | gpio-key,wakeup; |
| 575 | }; | 581 | }; |
| 576 | }; | 582 | }; |
diff --git a/arch/arm/boot/dts/tegra20-whistler.dts b/arch/arm/boot/dts/tegra20-whistler.dts index d33a73cf167c..1843725785c9 100644 --- a/arch/arm/boot/dts/tegra20-whistler.dts +++ b/arch/arm/boot/dts/tegra20-whistler.dts | |||
| @@ -1,17 +1,23 @@ | |||
| 1 | /dts-v1/; | 1 | /dts-v1/; |
| 2 | 2 | ||
| 3 | #include <dt-bindings/input/input.h> | ||
| 3 | #include "tegra20.dtsi" | 4 | #include "tegra20.dtsi" |
| 4 | 5 | ||
| 5 | / { | 6 | / { |
| 6 | model = "NVIDIA Tegra20 Whistler evaluation board"; | 7 | model = "NVIDIA Tegra20 Whistler evaluation board"; |
| 7 | compatible = "nvidia,whistler", "nvidia,tegra20"; | 8 | compatible = "nvidia,whistler", "nvidia,tegra20"; |
| 8 | 9 | ||
| 10 | aliases { | ||
| 11 | rtc0 = "/i2c@7000d000/max8907@3c"; | ||
| 12 | rtc1 = "/rtc@7000e000"; | ||
| 13 | }; | ||
| 14 | |||
| 9 | memory { | 15 | memory { |
| 10 | reg = <0x00000000 0x20000000>; | 16 | reg = <0x00000000 0x20000000>; |
| 11 | }; | 17 | }; |
| 12 | 18 | ||
| 13 | host1x { | 19 | host1x@50000000 { |
| 14 | hdmi { | 20 | hdmi@54280000 { |
| 15 | status = "okay"; | 21 | status = "okay"; |
| 16 | 22 | ||
| 17 | vdd-supply = <&hdmi_vdd_reg>; | 23 | vdd-supply = <&hdmi_vdd_reg>; |
| @@ -23,7 +29,7 @@ | |||
| 23 | }; | 29 | }; |
| 24 | }; | 30 | }; |
| 25 | 31 | ||
| 26 | pinmux { | 32 | pinmux@70000014 { |
| 27 | pinctrl-names = "default"; | 33 | pinctrl-names = "default"; |
| 28 | pinctrl-0 = <&state_default>; | 34 | pinctrl-0 = <&state_default>; |
| 29 | 35 | ||
| @@ -189,8 +195,8 @@ | |||
| 189 | "kbcf", "sdc", "sdd", "spie", "spig", | 195 | "kbcf", "sdc", "sdd", "spie", "spig", |
| 190 | "spih", "uaa", "uab", "uad", "uca", | 196 | "spih", "uaa", "uab", "uad", "uca", |
| 191 | "ucb"; | 197 | "ucb"; |
| 192 | nvidia,pull = <2>; | 198 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 193 | nvidia,tristate = <0>; | 199 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 194 | }; | 200 | }; |
| 195 | conf_atd { | 201 | conf_atd { |
| 196 | nvidia,pins = "atd", "ate", "cdev1", "csus", | 202 | nvidia,pins = "atd", "ate", "cdev1", "csus", |
| @@ -198,54 +204,54 @@ | |||
| 198 | "dtf", "gpu", "gpu7", "gpv", "i2cp", | 204 | "dtf", "gpu", "gpu7", "gpv", "i2cp", |
| 199 | "rm", "sdio1", "slxa", "slxc", "slxd", | 205 | "rm", "sdio1", "slxa", "slxc", "slxd", |
| 200 | "slxk", "spdi", "spdo", "uac", "uda"; | 206 | "slxk", "spdi", "spdo", "uac", "uda"; |
| 201 | nvidia,pull = <0>; | 207 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 202 | nvidia,tristate = <0>; | 208 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 203 | }; | 209 | }; |
| 204 | conf_cdev2 { | 210 | conf_cdev2 { |
| 205 | nvidia,pins = "cdev2", "spia", "spib"; | 211 | nvidia,pins = "cdev2", "spia", "spib"; |
| 206 | nvidia,pull = <1>; | 212 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 207 | nvidia,tristate = <1>; | 213 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 208 | }; | 214 | }; |
| 209 | conf_ck32 { | 215 | conf_ck32 { |
| 210 | nvidia,pins = "ck32", "ddrc", "lc", "pmca", | 216 | nvidia,pins = "ck32", "ddrc", "lc", "pmca", |
| 211 | "pmcb", "pmcc", "pmcd", "xm2c", | 217 | "pmcb", "pmcc", "pmcd", "xm2c", |
| 212 | "xm2d"; | 218 | "xm2d"; |
| 213 | nvidia,pull = <0>; | 219 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 214 | }; | 220 | }; |
| 215 | conf_crtp { | 221 | conf_crtp { |
| 216 | nvidia,pins = "crtp"; | 222 | nvidia,pins = "crtp"; |
| 217 | nvidia,pull = <0>; | 223 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 218 | nvidia,tristate = <1>; | 224 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 219 | }; | 225 | }; |
| 220 | conf_dta { | 226 | conf_dta { |
| 221 | nvidia,pins = "dta", "dtb", "dtc", "dtd", | 227 | nvidia,pins = "dta", "dtb", "dtc", "dtd", |
| 222 | "spid", "spif"; | 228 | "spid", "spif"; |
| 223 | nvidia,pull = <1>; | 229 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 224 | nvidia,tristate = <0>; | 230 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 225 | }; | 231 | }; |
| 226 | conf_gme { | 232 | conf_gme { |
| 227 | nvidia,pins = "gme", "owc", "pta", "spic"; | 233 | nvidia,pins = "gme", "owc", "pta", "spic"; |
| 228 | nvidia,pull = <2>; | 234 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 229 | nvidia,tristate = <1>; | 235 | nvidia,tristate = <TEGRA_PIN_ENABLE>; |
| 230 | }; | 236 | }; |
| 231 | conf_ld17_0 { | 237 | conf_ld17_0 { |
| 232 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", | 238 | nvidia,pins = "ld17_0", "ld19_18", "ld21_20", |
| 233 | "ld23_22"; | 239 | "ld23_22"; |
| 234 | nvidia,pull = <1>; | 240 | nvidia,pull = <TEGRA_PIN_PULL_DOWN>; |
| 235 | }; | 241 | }; |
| 236 | conf_ls { | 242 | conf_ls { |
| 237 | nvidia,pins = "ls", "pmce"; | 243 | nvidia,pins = "ls", "pmce"; |
| 238 | nvidia,pull = <2>; | 244 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 239 | }; | 245 | }; |
| 240 | drive_dap1 { | 246 | drive_dap1 { |
| 241 | nvidia,pins = "drive_dap1"; | 247 | nvidia,pins = "drive_dap1"; |
| 242 | nvidia,high-speed-mode = <0>; | 248 | nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; |
| 243 | nvidia,schmitt = <1>; | 249 | nvidia,schmitt = <TEGRA_PIN_ENABLE>; |
| 244 | nvidia,low-power-mode = <0>; | 250 | nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_8>; |
| 245 | nvidia,pull-down-strength = <0>; | 251 | nvidia,pull-down-strength = <0>; |
| 246 | nvidia,pull-up-strength = <0>; | 252 | nvidia,pull-up-strength = <0>; |
| 247 | nvidia,slew-rate-rising = <0>; | 253 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FASTEST>; |
| 248 | nvidia,slew-rate-falling = <0>; | 254 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FASTEST>; |
| 249 | }; | 255 | }; |
| 250 | }; | 256 | }; |
| 251 | }; | 257 | }; |
| @@ -495,7 +501,20 @@ | |||
| 495 | }; | 501 | }; |
| 496 | }; | 502 | }; |
| 497 | 503 | ||
| 498 | pmc { | 504 | kbc@7000e200 { |
| 505 | status = "okay"; | ||
| 506 | nvidia,debounce-delay-ms = <20>; | ||
| 507 | nvidia,repeat-delay-ms = <160>; | ||
| 508 | nvidia,kbc-row-pins = <0 1 2>; | ||
| 509 | nvidia,kbc-col-pins = <16 17>; | ||
| 510 | nvidia,wakeup-source; | ||
| 511 | linux,keymap = <MATRIX_KEY(0x00, 0x00, KEY_POWER) | ||
| 512 | MATRIX_KEY(0x01, 0x00, KEY_HOME) | ||
| 513 | MATRIX_KEY(0x01, 0x01, KEY_BACK) | ||
| 514 | MATRIX_KEY(0x02, 0x01, KEY_MENU)>; | ||
| 515 | }; | ||
| 516 | |||
| 517 | pmc@7000e400 { | ||
| 499 | nvidia,invert-interrupt; | 518 | nvidia,invert-interrupt; |
| 500 | nvidia,suspend-mode = <1>; | 519 | nvidia,suspend-mode = <1>; |
| 501 | nvidia,cpu-pwr-good-time = <2000>; | 520 | nvidia,cpu-pwr-good-time = <2000>; |
| @@ -543,7 +562,7 @@ | |||
| 543 | #address-cells = <1>; | 562 | #address-cells = <1>; |
| 544 | #size-cells = <0>; | 563 | #size-cells = <0>; |
| 545 | 564 | ||
| 546 | clk32k_in: clock { | 565 | clk32k_in: clock@0 { |
| 547 | compatible = "fixed-clock"; | 566 | compatible = "fixed-clock"; |
| 548 | reg=<0>; | 567 | reg=<0>; |
| 549 | #clock-cells = <0>; | 568 | #clock-cells = <0>; |
| @@ -551,25 +570,12 @@ | |||
| 551 | }; | 570 | }; |
| 552 | }; | 571 | }; |
| 553 | 572 | ||
| 554 | kbc { | ||
| 555 | status = "okay"; | ||
| 556 | nvidia,debounce-delay-ms = <20>; | ||
| 557 | nvidia,repeat-delay-ms = <160>; | ||
| 558 | nvidia,kbc-row-pins = <0 1 2>; | ||
| 559 | nvidia,kbc-col-pins = <16 17>; | ||
| 560 | nvidia,wakeup-source; | ||
| 561 | linux,keymap = <0x00000074 /* KEY_POWER */ | ||
| 562 | 0x01000066 /* KEY_HOME */ | ||
| 563 | 0x0101009E /* KEY_BACK */ | ||
| 564 | 0x0201008B>; /* KEY_MENU */ | ||
| 565 | }; | ||
| 566 | |||
| 567 | regulators { | 573 | regulators { |
| 568 | compatible = "simple-bus"; | 574 | compatible = "simple-bus"; |
| 569 | #address-cells = <1>; | 575 | #address-cells = <1>; |
| 570 | #size-cells = <0>; | 576 | #size-cells = <0>; |
| 571 | 577 | ||
| 572 | usb0_vbus_reg: regulator { | 578 | usb0_vbus_reg: regulator@0 { |
| 573 | compatible = "regulator-fixed"; | 579 | compatible = "regulator-fixed"; |
| 574 | reg = <0>; | 580 | reg = <0>; |
| 575 | regulator-name = "usb0_vbus"; | 581 | regulator-name = "usb0_vbus"; |
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi index c90d0aac3afe..480ecda3416b 100644 --- a/arch/arm/boot/dts/tegra20.dtsi +++ b/arch/arm/boot/dts/tegra20.dtsi | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | #include <dt-bindings/clock/tegra20-car.h> | 1 | #include <dt-bindings/clock/tegra20-car.h> |
| 2 | #include <dt-bindings/gpio/tegra-gpio.h> | 2 | #include <dt-bindings/gpio/tegra-gpio.h> |
| 3 | #include <dt-bindings/pinctrl/pinctrl-tegra.h> | ||
| 3 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 4 | 5 | ||
| 5 | #include "skeleton.dtsi" | 6 | #include "skeleton.dtsi" |
| @@ -16,7 +17,7 @@ | |||
| 16 | serial4 = &uarte; | 17 | serial4 = &uarte; |
| 17 | }; | 18 | }; |
| 18 | 19 | ||
| 19 | host1x { | 20 | host1x@50000000 { |
| 20 | compatible = "nvidia,tegra20-host1x", "simple-bus"; | 21 | compatible = "nvidia,tegra20-host1x", "simple-bus"; |
| 21 | reg = <0x50000000 0x00024000>; | 22 | reg = <0x50000000 0x00024000>; |
| 22 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ | 23 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ |
| @@ -30,7 +31,7 @@ | |||
| 30 | 31 | ||
| 31 | ranges = <0x54000000 0x54000000 0x04000000>; | 32 | ranges = <0x54000000 0x54000000 0x04000000>; |
| 32 | 33 | ||
| 33 | mpe { | 34 | mpe@54040000 { |
| 34 | compatible = "nvidia,tegra20-mpe"; | 35 | compatible = "nvidia,tegra20-mpe"; |
| 35 | reg = <0x54040000 0x00040000>; | 36 | reg = <0x54040000 0x00040000>; |
| 36 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; | 37 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -39,7 +40,7 @@ | |||
| 39 | reset-names = "mpe"; | 40 | reset-names = "mpe"; |
| 40 | }; | 41 | }; |
| 41 | 42 | ||
| 42 | vi { | 43 | vi@54080000 { |
| 43 | compatible = "nvidia,tegra20-vi"; | 44 | compatible = "nvidia,tegra20-vi"; |
| 44 | reg = <0x54080000 0x00040000>; | 45 | reg = <0x54080000 0x00040000>; |
| 45 | interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | 46 | interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -48,7 +49,7 @@ | |||
| 48 | reset-names = "vi"; | 49 | reset-names = "vi"; |
| 49 | }; | 50 | }; |
| 50 | 51 | ||
| 51 | epp { | 52 | epp@540c0000 { |
| 52 | compatible = "nvidia,tegra20-epp"; | 53 | compatible = "nvidia,tegra20-epp"; |
| 53 | reg = <0x540c0000 0x00040000>; | 54 | reg = <0x540c0000 0x00040000>; |
| 54 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | 55 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -57,7 +58,7 @@ | |||
| 57 | reset-names = "epp"; | 58 | reset-names = "epp"; |
| 58 | }; | 59 | }; |
| 59 | 60 | ||
| 60 | isp { | 61 | isp@54100000 { |
| 61 | compatible = "nvidia,tegra20-isp"; | 62 | compatible = "nvidia,tegra20-isp"; |
| 62 | reg = <0x54100000 0x00040000>; | 63 | reg = <0x54100000 0x00040000>; |
| 63 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | 64 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -66,7 +67,7 @@ | |||
| 66 | reset-names = "isp"; | 67 | reset-names = "isp"; |
| 67 | }; | 68 | }; |
| 68 | 69 | ||
| 69 | gr2d { | 70 | gr2d@54140000 { |
| 70 | compatible = "nvidia,tegra20-gr2d"; | 71 | compatible = "nvidia,tegra20-gr2d"; |
| 71 | reg = <0x54140000 0x00040000>; | 72 | reg = <0x54140000 0x00040000>; |
| 72 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; | 73 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -75,9 +76,9 @@ | |||
| 75 | reset-names = "2d"; | 76 | reset-names = "2d"; |
| 76 | }; | 77 | }; |
| 77 | 78 | ||
| 78 | gr3d { | 79 | gr3d@54140000 { |
| 79 | compatible = "nvidia,tegra20-gr3d"; | 80 | compatible = "nvidia,tegra20-gr3d"; |
| 80 | reg = <0x54180000 0x00040000>; | 81 | reg = <0x54140000 0x00040000>; |
| 81 | clocks = <&tegra_car TEGRA20_CLK_GR3D>; | 82 | clocks = <&tegra_car TEGRA20_CLK_GR3D>; |
| 82 | resets = <&tegra_car 24>; | 83 | resets = <&tegra_car 24>; |
| 83 | reset-names = "3d"; | 84 | reset-names = "3d"; |
| @@ -113,7 +114,7 @@ | |||
| 113 | }; | 114 | }; |
| 114 | }; | 115 | }; |
| 115 | 116 | ||
| 116 | hdmi { | 117 | hdmi@54280000 { |
| 117 | compatible = "nvidia,tegra20-hdmi"; | 118 | compatible = "nvidia,tegra20-hdmi"; |
| 118 | reg = <0x54280000 0x00040000>; | 119 | reg = <0x54280000 0x00040000>; |
| 119 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | 120 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -125,7 +126,7 @@ | |||
| 125 | status = "disabled"; | 126 | status = "disabled"; |
| 126 | }; | 127 | }; |
| 127 | 128 | ||
| 128 | tvo { | 129 | tvo@542c0000 { |
| 129 | compatible = "nvidia,tegra20-tvo"; | 130 | compatible = "nvidia,tegra20-tvo"; |
| 130 | reg = <0x542c0000 0x00040000>; | 131 | reg = <0x542c0000 0x00040000>; |
| 131 | interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; | 132 | interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -133,9 +134,9 @@ | |||
| 133 | status = "disabled"; | 134 | status = "disabled"; |
| 134 | }; | 135 | }; |
| 135 | 136 | ||
| 136 | dsi { | 137 | dsi@542c0000 { |
| 137 | compatible = "nvidia,tegra20-dsi"; | 138 | compatible = "nvidia,tegra20-dsi"; |
| 138 | reg = <0x54300000 0x00040000>; | 139 | reg = <0x542c0000 0x00040000>; |
| 139 | clocks = <&tegra_car TEGRA20_CLK_DSI>; | 140 | clocks = <&tegra_car TEGRA20_CLK_DSI>; |
| 140 | resets = <&tegra_car 48>; | 141 | resets = <&tegra_car 48>; |
| 141 | reset-names = "dsi"; | 142 | reset-names = "dsi"; |
| @@ -151,7 +152,7 @@ | |||
| 151 | clocks = <&tegra_car TEGRA20_CLK_TWD>; | 152 | clocks = <&tegra_car TEGRA20_CLK_TWD>; |
| 152 | }; | 153 | }; |
| 153 | 154 | ||
| 154 | intc: interrupt-controller { | 155 | intc: interrupt-controller@50041000 { |
| 155 | compatible = "arm,cortex-a9-gic"; | 156 | compatible = "arm,cortex-a9-gic"; |
| 156 | reg = <0x50041000 0x1000 | 157 | reg = <0x50041000 0x1000 |
| 157 | 0x50040100 0x0100>; | 158 | 0x50040100 0x0100>; |
| @@ -159,7 +160,7 @@ | |||
| 159 | #interrupt-cells = <3>; | 160 | #interrupt-cells = <3>; |
| 160 | }; | 161 | }; |
| 161 | 162 | ||
| 162 | cache-controller { | 163 | cache-controller@50043000 { |
| 163 | compatible = "arm,pl310-cache"; | 164 | compatible = "arm,pl310-cache"; |
| 164 | reg = <0x50043000 0x1000>; | 165 | reg = <0x50043000 0x1000>; |
| 165 | arm,data-latency = <5 5 2>; | 166 | arm,data-latency = <5 5 2>; |
| @@ -178,14 +179,14 @@ | |||
| 178 | clocks = <&tegra_car TEGRA20_CLK_TIMER>; | 179 | clocks = <&tegra_car TEGRA20_CLK_TIMER>; |
| 179 | }; | 180 | }; |
| 180 | 181 | ||
| 181 | tegra_car: clock { | 182 | tegra_car: clock@60006000 { |
| 182 | compatible = "nvidia,tegra20-car"; | 183 | compatible = "nvidia,tegra20-car"; |
| 183 | reg = <0x60006000 0x1000>; | 184 | reg = <0x60006000 0x1000>; |
| 184 | #clock-cells = <1>; | 185 | #clock-cells = <1>; |
| 185 | #reset-cells = <1>; | 186 | #reset-cells = <1>; |
| 186 | }; | 187 | }; |
| 187 | 188 | ||
| 188 | apbdma: dma { | 189 | apbdma: dma@6000a000 { |
| 189 | compatible = "nvidia,tegra20-apbdma"; | 190 | compatible = "nvidia,tegra20-apbdma"; |
| 190 | reg = <0x6000a000 0x1200>; | 191 | reg = <0x6000a000 0x1200>; |
| 191 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, | 192 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -210,12 +211,12 @@ | |||
| 210 | #dma-cells = <1>; | 211 | #dma-cells = <1>; |
| 211 | }; | 212 | }; |
| 212 | 213 | ||
| 213 | ahb { | 214 | ahb@6000c004 { |
| 214 | compatible = "nvidia,tegra20-ahb"; | 215 | compatible = "nvidia,tegra20-ahb"; |
| 215 | reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */ | 216 | reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */ |
| 216 | }; | 217 | }; |
| 217 | 218 | ||
| 218 | gpio: gpio { | 219 | gpio: gpio@6000d000 { |
| 219 | compatible = "nvidia,tegra20-gpio"; | 220 | compatible = "nvidia,tegra20-gpio"; |
| 220 | reg = <0x6000d000 0x1000>; | 221 | reg = <0x6000d000 0x1000>; |
| 221 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, | 222 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -231,7 +232,7 @@ | |||
| 231 | interrupt-controller; | 232 | interrupt-controller; |
| 232 | }; | 233 | }; |
| 233 | 234 | ||
| 234 | pinmux: pinmux { | 235 | pinmux: pinmux@70000014 { |
| 235 | compatible = "nvidia,tegra20-pinmux"; | 236 | compatible = "nvidia,tegra20-pinmux"; |
| 236 | reg = <0x70000014 0x10 /* Tri-state registers */ | 237 | reg = <0x70000014 0x10 /* Tri-state registers */ |
| 237 | 0x70000080 0x20 /* Mux registers */ | 238 | 0x70000080 0x20 /* Mux registers */ |
| @@ -239,12 +240,12 @@ | |||
| 239 | 0x70000868 0xa8>; /* Pad control registers */ | 240 | 0x70000868 0xa8>; /* Pad control registers */ |
| 240 | }; | 241 | }; |
| 241 | 242 | ||
| 242 | das { | 243 | das@70000c00 { |
| 243 | compatible = "nvidia,tegra20-das"; | 244 | compatible = "nvidia,tegra20-das"; |
| 244 | reg = <0x70000c00 0x80>; | 245 | reg = <0x70000c00 0x80>; |
| 245 | }; | 246 | }; |
| 246 | 247 | ||
| 247 | tegra_ac97: ac97 { | 248 | tegra_ac97: ac97@70002000 { |
| 248 | compatible = "nvidia,tegra20-ac97"; | 249 | compatible = "nvidia,tegra20-ac97"; |
| 249 | reg = <0x70002000 0x200>; | 250 | reg = <0x70002000 0x200>; |
| 250 | interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; | 251 | interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -352,7 +353,7 @@ | |||
| 352 | status = "disabled"; | 353 | status = "disabled"; |
| 353 | }; | 354 | }; |
| 354 | 355 | ||
| 355 | pwm: pwm { | 356 | pwm: pwm@7000a000 { |
| 356 | compatible = "nvidia,tegra20-pwm"; | 357 | compatible = "nvidia,tegra20-pwm"; |
| 357 | reg = <0x7000a000 0x100>; | 358 | reg = <0x7000a000 0x100>; |
| 358 | #pwm-cells = <2>; | 359 | #pwm-cells = <2>; |
| @@ -362,7 +363,7 @@ | |||
| 362 | status = "disabled"; | 363 | status = "disabled"; |
| 363 | }; | 364 | }; |
| 364 | 365 | ||
| 365 | rtc { | 366 | rtc@7000e000 { |
| 366 | compatible = "nvidia,tegra20-rtc"; | 367 | compatible = "nvidia,tegra20-rtc"; |
| 367 | reg = <0x7000e000 0x100>; | 368 | reg = <0x7000e000 0x100>; |
| 368 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | 369 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -503,7 +504,7 @@ | |||
| 503 | status = "disabled"; | 504 | status = "disabled"; |
| 504 | }; | 505 | }; |
| 505 | 506 | ||
| 506 | kbc { | 507 | kbc@7000e200 { |
| 507 | compatible = "nvidia,tegra20-kbc"; | 508 | compatible = "nvidia,tegra20-kbc"; |
| 508 | reg = <0x7000e200 0x100>; | 509 | reg = <0x7000e200 0x100>; |
| 509 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | 510 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -513,7 +514,7 @@ | |||
| 513 | status = "disabled"; | 514 | status = "disabled"; |
| 514 | }; | 515 | }; |
| 515 | 516 | ||
| 516 | pmc { | 517 | pmc@7000e400 { |
| 517 | compatible = "nvidia,tegra20-pmc"; | 518 | compatible = "nvidia,tegra20-pmc"; |
| 518 | reg = <0x7000e400 0x400>; | 519 | reg = <0x7000e400 0x400>; |
| 519 | clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>; | 520 | clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>; |
| @@ -527,7 +528,7 @@ | |||
| 527 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; | 528 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; |
| 528 | }; | 529 | }; |
| 529 | 530 | ||
| 530 | iommu { | 531 | iommu@7000f024 { |
| 531 | compatible = "nvidia,tegra20-gart"; | 532 | compatible = "nvidia,tegra20-gart"; |
| 532 | reg = <0x7000f024 0x00000018 /* controller registers */ | 533 | reg = <0x7000f024 0x00000018 /* controller registers */ |
| 533 | 0x58000000 0x02000000>; /* GART aperture */ | 534 | 0x58000000 0x02000000>; /* GART aperture */ |
| @@ -540,7 +541,7 @@ | |||
| 540 | #size-cells = <0>; | 541 | #size-cells = <0>; |
| 541 | }; | 542 | }; |
| 542 | 543 | ||
| 543 | pcie-controller { | 544 | pcie-controller@80003000 { |
| 544 | compatible = "nvidia,tegra20-pcie"; | 545 | compatible = "nvidia,tegra20-pcie"; |
| 545 | device_type = "pci"; | 546 | device_type = "pci"; |
| 546 | reg = <0x80003000 0x00000800 /* PADS registers */ | 547 | reg = <0x80003000 0x00000800 /* PADS registers */ |
diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts index 08cad696e89f..e93fe45b7803 100644 --- a/arch/arm/boot/dts/tegra30-beaver.dts +++ b/arch/arm/boot/dts/tegra30-beaver.dts | |||
| @@ -6,11 +6,16 @@ | |||
| 6 | model = "NVIDIA Tegra30 Beaver evaluation board"; | 6 | model = "NVIDIA Tegra30 Beaver evaluation board"; |
| 7 | compatible = "nvidia,beaver", "nvidia,tegra30"; | 7 | compatible = "nvidia,beaver", "nvidia,tegra30"; |
| 8 | 8 | ||
| 9 | aliases { | ||
| 10 | rtc0 = "/i2c@7000d000/tps65911@2d"; | ||
| 11 | rtc1 = "/rtc@7000e000"; | ||
| 12 | }; | ||
| 13 | |||
| 9 | memory { | 14 | memory { |
| 10 | reg = <0x80000000 0x7ff00000>; | 15 | reg = <0x80000000 0x7ff00000>; |
| 11 | }; | 16 | }; |
| 12 | 17 | ||
| 13 | pcie-controller { | 18 | pcie-controller@00003000 { |
| 14 | status = "okay"; | 19 | status = "okay"; |
| 15 | pex-clk-supply = <&sys_3v3_pexs_reg>; | 20 | pex-clk-supply = <&sys_3v3_pexs_reg>; |
| 16 | vdd-supply = <&ldo1_reg>; | 21 | vdd-supply = <&ldo1_reg>; |
| @@ -31,8 +36,8 @@ | |||
| 31 | }; | 36 | }; |
| 32 | }; | 37 | }; |
| 33 | 38 | ||
| 34 | host1x { | 39 | host1x@50000000 { |
| 35 | hdmi { | 40 | hdmi@54280000 { |
| 36 | status = "okay"; | 41 | status = "okay"; |
| 37 | 42 | ||
| 38 | vdd-supply = <&sys_3v3_reg>; | 43 | vdd-supply = <&sys_3v3_reg>; |
| @@ -44,7 +49,7 @@ | |||
| 44 | }; | 49 | }; |
| 45 | }; | 50 | }; |
| 46 | 51 | ||
| 47 | pinmux { | 52 | pinmux@70000868 { |
| 48 | pinctrl-names = "default"; | 53 | pinctrl-names = "default"; |
| 49 | pinctrl-0 = <&state_default>; | 54 | pinctrl-0 = <&state_default>; |
| 50 | 55 | ||
| @@ -52,8 +57,8 @@ | |||
| 52 | sdmmc1_clk_pz0 { | 57 | sdmmc1_clk_pz0 { |
| 53 | nvidia,pins = "sdmmc1_clk_pz0"; | 58 | nvidia,pins = "sdmmc1_clk_pz0"; |
| 54 | nvidia,function = "sdmmc1"; | 59 | nvidia,function = "sdmmc1"; |
| 55 | nvidia,pull = <0>; | 60 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 56 | nvidia,tristate = <0>; | 61 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 57 | }; | 62 | }; |
| 58 | sdmmc1_cmd_pz1 { | 63 | sdmmc1_cmd_pz1 { |
| 59 | nvidia,pins = "sdmmc1_cmd_pz1", | 64 | nvidia,pins = "sdmmc1_cmd_pz1", |
| @@ -62,14 +67,14 @@ | |||
| 62 | "sdmmc1_dat2_py5", | 67 | "sdmmc1_dat2_py5", |
| 63 | "sdmmc1_dat3_py4"; | 68 | "sdmmc1_dat3_py4"; |
| 64 | nvidia,function = "sdmmc1"; | 69 | nvidia,function = "sdmmc1"; |
| 65 | nvidia,pull = <2>; | 70 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 66 | nvidia,tristate = <0>; | 71 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 67 | }; | 72 | }; |
| 68 | sdmmc3_clk_pa6 { | 73 | sdmmc3_clk_pa6 { |
| 69 | nvidia,pins = "sdmmc3_clk_pa6"; | 74 | nvidia,pins = "sdmmc3_clk_pa6"; |
| 70 | nvidia,function = "sdmmc3"; | 75 | nvidia,function = "sdmmc3"; |
| 71 | nvidia,pull = <0>; | 76 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 72 | nvidia,tristate = <0>; | 77 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 73 | }; | 78 | }; |
| 74 | sdmmc3_cmd_pa7 { | 79 | sdmmc3_cmd_pa7 { |
| 75 | nvidia,pins = "sdmmc3_cmd_pa7", | 80 | nvidia,pins = "sdmmc3_cmd_pa7", |
| @@ -78,15 +83,15 @@ | |||
| 78 | "sdmmc3_dat2_pb5", | 83 | "sdmmc3_dat2_pb5", |
| 79 | "sdmmc3_dat3_pb4"; | 84 | "sdmmc3_dat3_pb4"; |
| 80 | nvidia,function = "sdmmc3"; | 85 | nvidia,function = "sdmmc3"; |
| 81 | nvidia,pull = <2>; | 86 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 82 | nvidia,tristate = <0>; | 87 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 83 | }; | 88 | }; |
| 84 | sdmmc4_clk_pcc4 { | 89 | sdmmc4_clk_pcc4 { |
| 85 | nvidia,pins = "sdmmc4_clk_pcc4", | 90 | nvidia,pins = "sdmmc4_clk_pcc4", |
| 86 | "sdmmc4_rst_n_pcc3"; | 91 | "sdmmc4_rst_n_pcc3"; |
| 87 | nvidia,function = "sdmmc4"; | 92 | nvidia,function = "sdmmc4"; |
| 88 | nvidia,pull = <0>; | 93 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 89 | nvidia,tristate = <0>; | 94 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 90 | }; | 95 | }; |
| 91 | sdmmc4_dat0_paa0 { | 96 | sdmmc4_dat0_paa0 { |
| 92 | nvidia,pins = "sdmmc4_dat0_paa0", | 97 | nvidia,pins = "sdmmc4_dat0_paa0", |
| @@ -98,8 +103,8 @@ | |||
| 98 | "sdmmc4_dat6_paa6", | 103 | "sdmmc4_dat6_paa6", |
| 99 | "sdmmc4_dat7_paa7"; | 104 | "sdmmc4_dat7_paa7"; |
| 100 | nvidia,function = "sdmmc4"; | 105 | nvidia,function = "sdmmc4"; |
| 101 | nvidia,pull = <2>; | 106 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 102 | nvidia,tristate = <0>; | 107 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 103 | }; | 108 | }; |
| 104 | dap2_fs_pa2 { | 109 | dap2_fs_pa2 { |
| 105 | nvidia,pins = "dap2_fs_pa2", | 110 | nvidia,pins = "dap2_fs_pa2", |
| @@ -107,18 +112,18 @@ | |||
| 107 | "dap2_din_pa4", | 112 | "dap2_din_pa4", |
| 108 | "dap2_dout_pa5"; | 113 | "dap2_dout_pa5"; |
| 109 | nvidia,function = "i2s1"; | 114 | nvidia,function = "i2s1"; |
| 110 | nvidia,pull = <0>; | 115 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 111 | nvidia,tristate = <0>; | 116 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 112 | }; | 117 | }; |
| 113 | pex_l1_prsnt_n_pdd4 { | 118 | pex_l1_prsnt_n_pdd4 { |
| 114 | nvidia,pins = "pex_l1_prsnt_n_pdd4", | 119 | nvidia,pins = "pex_l1_prsnt_n_pdd4", |
| 115 | "pex_l1_clkreq_n_pdd6"; | 120 | "pex_l1_clkreq_n_pdd6"; |
| 116 | nvidia,pull = <2>; | 121 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 117 | }; | 122 | }; |
| 118 | sdio3 { | 123 | sdio3 { |
| 119 | nvidia,pins = "drive_sdio3"; | 124 | nvidia,pins = "drive_sdio3"; |
| 120 | nvidia,high-speed-mode = <0>; | 125 | nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; |
| 121 | nvidia,schmitt = <0>; | 126 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; |
| 122 | nvidia,pull-down-strength = <46>; | 127 | nvidia,pull-down-strength = <46>; |
| 123 | nvidia,pull-up-strength = <42>; | 128 | nvidia,pull-up-strength = <42>; |
| 124 | nvidia,slew-rate-rising = <1>; | 129 | nvidia,slew-rate-rising = <1>; |
| @@ -159,7 +164,7 @@ | |||
| 159 | status = "okay"; | 164 | status = "okay"; |
| 160 | clock-frequency = <100000>; | 165 | clock-frequency = <100000>; |
| 161 | 166 | ||
| 162 | rt5640: rt5640 { | 167 | rt5640: rt5640@1c { |
| 163 | compatible = "realtek,rt5640"; | 168 | compatible = "realtek,rt5640"; |
| 164 | reg = <0x1c>; | 169 | reg = <0x1c>; |
| 165 | interrupt-parent = <&gpio>; | 170 | interrupt-parent = <&gpio>; |
| @@ -168,19 +173,6 @@ | |||
| 168 | <&gpio TEGRA_GPIO(X, 2) GPIO_ACTIVE_HIGH>; | 173 | <&gpio TEGRA_GPIO(X, 2) GPIO_ACTIVE_HIGH>; |
| 169 | }; | 174 | }; |
| 170 | 175 | ||
| 171 | tps62361 { | ||
| 172 | compatible = "ti,tps62361"; | ||
| 173 | reg = <0x60>; | ||
| 174 | |||
| 175 | regulator-name = "tps62361-vout"; | ||
| 176 | regulator-min-microvolt = <500000>; | ||
| 177 | regulator-max-microvolt = <1500000>; | ||
| 178 | regulator-boot-on; | ||
| 179 | regulator-always-on; | ||
| 180 | ti,vsel0-state-high; | ||
| 181 | ti,vsel1-state-high; | ||
| 182 | }; | ||
| 183 | |||
| 184 | pmic: tps65911@2d { | 176 | pmic: tps65911@2d { |
| 185 | compatible = "ti,tps65911"; | 177 | compatible = "ti,tps65911"; |
| 186 | reg = <0x2d>; | 178 | reg = <0x2d>; |
| @@ -284,6 +276,19 @@ | |||
| 284 | }; | 276 | }; |
| 285 | }; | 277 | }; |
| 286 | }; | 278 | }; |
| 279 | |||
| 280 | tps62361@60 { | ||
| 281 | compatible = "ti,tps62361"; | ||
| 282 | reg = <0x60>; | ||
| 283 | |||
| 284 | regulator-name = "tps62361-vout"; | ||
| 285 | regulator-min-microvolt = <500000>; | ||
| 286 | regulator-max-microvolt = <1500000>; | ||
| 287 | regulator-boot-on; | ||
| 288 | regulator-always-on; | ||
| 289 | ti,vsel0-state-high; | ||
| 290 | ti,vsel1-state-high; | ||
| 291 | }; | ||
| 287 | }; | 292 | }; |
| 288 | 293 | ||
| 289 | spi@7000da00 { | 294 | spi@7000da00 { |
| @@ -296,13 +301,7 @@ | |||
| 296 | }; | 301 | }; |
| 297 | }; | 302 | }; |
| 298 | 303 | ||
| 299 | ahub { | 304 | pmc@7000e400 { |
| 300 | i2s@70080400 { | ||
| 301 | status = "okay"; | ||
| 302 | }; | ||
| 303 | }; | ||
| 304 | |||
| 305 | pmc { | ||
| 306 | status = "okay"; | 305 | status = "okay"; |
| 307 | nvidia,invert-interrupt; | 306 | nvidia,invert-interrupt; |
| 308 | nvidia,suspend-mode = <1>; | 307 | nvidia,suspend-mode = <1>; |
| @@ -314,6 +313,12 @@ | |||
| 314 | nvidia,sys-clock-req-active-high; | 313 | nvidia,sys-clock-req-active-high; |
| 315 | }; | 314 | }; |
| 316 | 315 | ||
| 316 | ahub@70080000 { | ||
| 317 | i2s@70080400 { | ||
| 318 | status = "okay"; | ||
| 319 | }; | ||
| 320 | }; | ||
| 321 | |||
| 317 | sdhci@78000000 { | 322 | sdhci@78000000 { |
| 318 | status = "okay"; | 323 | status = "okay"; |
| 319 | cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; | 324 | cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; |
| @@ -328,6 +333,15 @@ | |||
| 328 | non-removable; | 333 | non-removable; |
| 329 | }; | 334 | }; |
| 330 | 335 | ||
| 336 | usb@7d004000 { | ||
| 337 | status = "okay"; | ||
| 338 | }; | ||
| 339 | |||
| 340 | phy2: usb-phy@7d004000 { | ||
| 341 | vbus-supply = <&sys_3v3_reg>; | ||
| 342 | status = "okay"; | ||
| 343 | }; | ||
| 344 | |||
| 331 | usb@7d008000 { | 345 | usb@7d008000 { |
| 332 | status = "okay"; | 346 | status = "okay"; |
| 333 | }; | 347 | }; |
| @@ -342,7 +356,7 @@ | |||
| 342 | #address-cells = <1>; | 356 | #address-cells = <1>; |
| 343 | #size-cells = <0>; | 357 | #size-cells = <0>; |
| 344 | 358 | ||
| 345 | clk32k_in: clock { | 359 | clk32k_in: clock@0 { |
| 346 | compatible = "fixed-clock"; | 360 | compatible = "fixed-clock"; |
| 347 | reg=<0>; | 361 | reg=<0>; |
| 348 | #clock-cells = <0>; | 362 | #clock-cells = <0>; |
| @@ -350,6 +364,19 @@ | |||
| 350 | }; | 364 | }; |
| 351 | }; | 365 | }; |
| 352 | 366 | ||
| 367 | gpio-leds { | ||
| 368 | compatible = "gpio-leds"; | ||
| 369 | |||
| 370 | gpled1 { | ||
| 371 | label = "LED1"; /* CR5A1 (blue) */ | ||
| 372 | gpios = <&gpio TEGRA_GPIO(L, 1) GPIO_ACTIVE_HIGH>; | ||
| 373 | }; | ||
| 374 | gpled2 { | ||
| 375 | label = "LED2"; /* CR4A2 (green) */ | ||
| 376 | gpios = <&gpio TEGRA_GPIO(L, 0) GPIO_ACTIVE_HIGH>; | ||
| 377 | }; | ||
| 378 | }; | ||
| 379 | |||
| 353 | regulators { | 380 | regulators { |
| 354 | compatible = "simple-bus"; | 381 | compatible = "simple-bus"; |
| 355 | #address-cells = <1>; | 382 | #address-cells = <1>; |
| @@ -453,19 +480,6 @@ | |||
| 453 | }; | 480 | }; |
| 454 | }; | 481 | }; |
| 455 | 482 | ||
| 456 | gpio-leds { | ||
| 457 | compatible = "gpio-leds"; | ||
| 458 | |||
| 459 | gpled1 { | ||
| 460 | label = "LED1"; /* CR5A1 (blue) */ | ||
| 461 | gpios = <&gpio TEGRA_GPIO(L, 1) GPIO_ACTIVE_HIGH>; | ||
| 462 | }; | ||
| 463 | gpled2 { | ||
| 464 | label = "LED2"; /* CR4A2 (green) */ | ||
| 465 | gpios = <&gpio TEGRA_GPIO(L, 0) GPIO_ACTIVE_HIGH>; | ||
| 466 | }; | ||
| 467 | }; | ||
| 468 | |||
| 469 | sound { | 483 | sound { |
| 470 | compatible = "nvidia,tegra-audio-rt5640-beaver", | 484 | compatible = "nvidia,tegra-audio-rt5640-beaver", |
| 471 | "nvidia,tegra-audio-rt5640"; | 485 | "nvidia,tegra-audio-rt5640"; |
diff --git a/arch/arm/boot/dts/tegra30-cardhu-a02.dts b/arch/arm/boot/dts/tegra30-cardhu-a02.dts index 1082c5ed90d1..c9bfedcca6ed 100644 --- a/arch/arm/boot/dts/tegra30-cardhu-a02.dts +++ b/arch/arm/boot/dts/tegra30-cardhu-a02.dts | |||
| @@ -8,6 +8,13 @@ | |||
| 8 | model = "NVIDIA Tegra30 Cardhu A02 evaluation board"; | 8 | model = "NVIDIA Tegra30 Cardhu A02 evaluation board"; |
| 9 | compatible = "nvidia,cardhu-a02", "nvidia,cardhu", "nvidia,tegra30"; | 9 | compatible = "nvidia,cardhu-a02", "nvidia,cardhu", "nvidia,tegra30"; |
| 10 | 10 | ||
| 11 | sdhci@78000400 { | ||
| 12 | status = "okay"; | ||
| 13 | power-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>; | ||
| 14 | bus-width = <4>; | ||
| 15 | keep-power-in-suspend; | ||
| 16 | }; | ||
| 17 | |||
| 11 | regulators { | 18 | regulators { |
| 12 | compatible = "simple-bus"; | 19 | compatible = "simple-bus"; |
| 13 | #address-cells = <1>; | 20 | #address-cells = <1>; |
| @@ -83,12 +90,5 @@ | |||
| 83 | gpio = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>; | 90 | gpio = <&gpio TEGRA_GPIO(K, 3) GPIO_ACTIVE_HIGH>; |
| 84 | }; | 91 | }; |
| 85 | }; | 92 | }; |
| 86 | |||
| 87 | sdhci@78000400 { | ||
| 88 | status = "okay"; | ||
| 89 | power-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>; | ||
| 90 | bus-width = <4>; | ||
| 91 | keep-power-in-suspend; | ||
| 92 | }; | ||
| 93 | }; | 93 | }; |
| 94 | 94 | ||
diff --git a/arch/arm/boot/dts/tegra30-cardhu-a04.dts b/arch/arm/boot/dts/tegra30-cardhu-a04.dts index bf012bddaafb..fadf55e46b2b 100644 --- a/arch/arm/boot/dts/tegra30-cardhu-a04.dts +++ b/arch/arm/boot/dts/tegra30-cardhu-a04.dts | |||
| @@ -8,6 +8,13 @@ | |||
| 8 | model = "NVIDIA Tegra30 Cardhu A04 (A05, A06, A07) evaluation board"; | 8 | model = "NVIDIA Tegra30 Cardhu A04 (A05, A06, A07) evaluation board"; |
| 9 | compatible = "nvidia,cardhu-a04", "nvidia,cardhu", "nvidia,tegra30"; | 9 | compatible = "nvidia,cardhu-a04", "nvidia,cardhu", "nvidia,tegra30"; |
| 10 | 10 | ||
| 11 | sdhci@78000400 { | ||
| 12 | status = "okay"; | ||
| 13 | power-gpios = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_HIGH>; | ||
| 14 | bus-width = <4>; | ||
| 15 | keep-power-in-suspend; | ||
| 16 | }; | ||
| 17 | |||
| 11 | regulators { | 18 | regulators { |
| 12 | compatible = "simple-bus"; | 19 | compatible = "simple-bus"; |
| 13 | #address-cells = <1>; | 20 | #address-cells = <1>; |
| @@ -95,11 +102,4 @@ | |||
| 95 | gpio = <&gpio TEGRA_GPIO(DD, 0) GPIO_ACTIVE_HIGH>; | 102 | gpio = <&gpio TEGRA_GPIO(DD, 0) GPIO_ACTIVE_HIGH>; |
| 96 | }; | 103 | }; |
| 97 | }; | 104 | }; |
| 98 | |||
| 99 | sdhci@78000400 { | ||
| 100 | status = "okay"; | ||
| 101 | power-gpios = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_HIGH>; | ||
| 102 | bus-width = <4>; | ||
| 103 | keep-power-in-suspend; | ||
| 104 | }; | ||
| 105 | }; | 105 | }; |
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi index 5ea7dfa4d9fa..9104224124ee 100644 --- a/arch/arm/boot/dts/tegra30-cardhu.dtsi +++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi | |||
| @@ -27,11 +27,16 @@ | |||
| 27 | model = "NVIDIA Tegra30 Cardhu evaluation board"; | 27 | model = "NVIDIA Tegra30 Cardhu evaluation board"; |
| 28 | compatible = "nvidia,cardhu", "nvidia,tegra30"; | 28 | compatible = "nvidia,cardhu", "nvidia,tegra30"; |
| 29 | 29 | ||
| 30 | aliases { | ||
| 31 | rtc0 = "/i2c@7000d000/tps6586x@34"; | ||
| 32 | rtc1 = "/rtc@7000e000"; | ||
| 33 | }; | ||
| 34 | |||
| 30 | memory { | 35 | memory { |
| 31 | reg = <0x80000000 0x40000000>; | 36 | reg = <0x80000000 0x40000000>; |
| 32 | }; | 37 | }; |
| 33 | 38 | ||
| 34 | pcie-controller { | 39 | pcie-controller@00003000 { |
| 35 | status = "okay"; | 40 | status = "okay"; |
| 36 | pex-clk-supply = <&pex_hvdd_3v3_reg>; | 41 | pex-clk-supply = <&pex_hvdd_3v3_reg>; |
| 37 | vdd-supply = <&ldo1_reg>; | 42 | vdd-supply = <&ldo1_reg>; |
| @@ -51,7 +56,17 @@ | |||
| 51 | }; | 56 | }; |
| 52 | }; | 57 | }; |
| 53 | 58 | ||
| 54 | pinmux { | 59 | host1x@50000000 { |
| 60 | dc@54200000 { | ||
| 61 | rgb { | ||
| 62 | status = "okay"; | ||
| 63 | |||
| 64 | nvidia,panel = <&panel>; | ||
| 65 | }; | ||
| 66 | }; | ||
| 67 | }; | ||
| 68 | |||
| 69 | pinmux@70000868 { | ||
| 55 | pinctrl-names = "default"; | 70 | pinctrl-names = "default"; |
| 56 | pinctrl-0 = <&state_default>; | 71 | pinctrl-0 = <&state_default>; |
| 57 | 72 | ||
| @@ -59,8 +74,8 @@ | |||
| 59 | sdmmc1_clk_pz0 { | 74 | sdmmc1_clk_pz0 { |
| 60 | nvidia,pins = "sdmmc1_clk_pz0"; | 75 | nvidia,pins = "sdmmc1_clk_pz0"; |
| 61 | nvidia,function = "sdmmc1"; | 76 | nvidia,function = "sdmmc1"; |
| 62 | nvidia,pull = <0>; | 77 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 63 | nvidia,tristate = <0>; | 78 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 64 | }; | 79 | }; |
| 65 | sdmmc1_cmd_pz1 { | 80 | sdmmc1_cmd_pz1 { |
| 66 | nvidia,pins = "sdmmc1_cmd_pz1", | 81 | nvidia,pins = "sdmmc1_cmd_pz1", |
| @@ -69,14 +84,14 @@ | |||
| 69 | "sdmmc1_dat2_py5", | 84 | "sdmmc1_dat2_py5", |
| 70 | "sdmmc1_dat3_py4"; | 85 | "sdmmc1_dat3_py4"; |
| 71 | nvidia,function = "sdmmc1"; | 86 | nvidia,function = "sdmmc1"; |
| 72 | nvidia,pull = <2>; | 87 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 73 | nvidia,tristate = <0>; | 88 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 74 | }; | 89 | }; |
| 75 | sdmmc3_clk_pa6 { | 90 | sdmmc3_clk_pa6 { |
| 76 | nvidia,pins = "sdmmc3_clk_pa6"; | 91 | nvidia,pins = "sdmmc3_clk_pa6"; |
| 77 | nvidia,function = "sdmmc3"; | 92 | nvidia,function = "sdmmc3"; |
| 78 | nvidia,pull = <0>; | 93 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 79 | nvidia,tristate = <0>; | 94 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 80 | }; | 95 | }; |
| 81 | sdmmc3_cmd_pa7 { | 96 | sdmmc3_cmd_pa7 { |
| 82 | nvidia,pins = "sdmmc3_cmd_pa7", | 97 | nvidia,pins = "sdmmc3_cmd_pa7", |
| @@ -85,15 +100,15 @@ | |||
| 85 | "sdmmc3_dat2_pb5", | 100 | "sdmmc3_dat2_pb5", |
| 86 | "sdmmc3_dat3_pb4"; | 101 | "sdmmc3_dat3_pb4"; |
| 87 | nvidia,function = "sdmmc3"; | 102 | nvidia,function = "sdmmc3"; |
| 88 | nvidia,pull = <2>; | 103 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 89 | nvidia,tristate = <0>; | 104 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 90 | }; | 105 | }; |
| 91 | sdmmc4_clk_pcc4 { | 106 | sdmmc4_clk_pcc4 { |
| 92 | nvidia,pins = "sdmmc4_clk_pcc4", | 107 | nvidia,pins = "sdmmc4_clk_pcc4", |
| 93 | "sdmmc4_rst_n_pcc3"; | 108 | "sdmmc4_rst_n_pcc3"; |
| 94 | nvidia,function = "sdmmc4"; | 109 | nvidia,function = "sdmmc4"; |
| 95 | nvidia,pull = <0>; | 110 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 96 | nvidia,tristate = <0>; | 111 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 97 | }; | 112 | }; |
| 98 | sdmmc4_dat0_paa0 { | 113 | sdmmc4_dat0_paa0 { |
| 99 | nvidia,pins = "sdmmc4_dat0_paa0", | 114 | nvidia,pins = "sdmmc4_dat0_paa0", |
| @@ -105,8 +120,8 @@ | |||
| 105 | "sdmmc4_dat6_paa6", | 120 | "sdmmc4_dat6_paa6", |
| 106 | "sdmmc4_dat7_paa7"; | 121 | "sdmmc4_dat7_paa7"; |
| 107 | nvidia,function = "sdmmc4"; | 122 | nvidia,function = "sdmmc4"; |
| 108 | nvidia,pull = <2>; | 123 | nvidia,pull = <TEGRA_PIN_PULL_UP>; |
| 109 | nvidia,tristate = <0>; | 124 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 110 | }; | 125 | }; |
| 111 | dap2_fs_pa2 { | 126 | dap2_fs_pa2 { |
| 112 | nvidia,pins = "dap2_fs_pa2", | 127 | nvidia,pins = "dap2_fs_pa2", |
| @@ -114,17 +129,17 @@ | |||
| 114 | "dap2_din_pa4", | 129 | "dap2_din_pa4", |
| 115 | "dap2_dout_pa5"; | 130 | "dap2_dout_pa5"; |
| 116 | nvidia,function = "i2s1"; | 131 | nvidia,function = "i2s1"; |
| 117 | nvidia,pull = <0>; | 132 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 118 | nvidia,tristate = <0>; | 133 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 119 | }; | 134 | }; |
| 120 | sdio3 { | 135 | sdio3 { |
| 121 | nvidia,pins = "drive_sdio3"; | 136 | nvidia,pins = "drive_sdio3"; |
| 122 | nvidia,high-speed-mode = <0>; | 137 | nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; |
| 123 | nvidia,schmitt = <0>; | 138 | nvidia,schmitt = <TEGRA_PIN_DISABLE>; |
| 124 | nvidia,pull-down-strength = <46>; | 139 | nvidia,pull-down-strength = <46>; |
| 125 | nvidia,pull-up-strength = <42>; | 140 | nvidia,pull-up-strength = <42>; |
| 126 | nvidia,slew-rate-rising = <1>; | 141 | nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>; |
| 127 | nvidia,slew-rate-falling = <1>; | 142 | nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>; |
| 128 | }; | 143 | }; |
| 129 | uart3_txd_pw6 { | 144 | uart3_txd_pw6 { |
| 130 | nvidia,pins = "uart3_txd_pw6", | 145 | nvidia,pins = "uart3_txd_pw6", |
| @@ -132,8 +147,8 @@ | |||
| 132 | "uart3_rts_n_pc0", | 147 | "uart3_rts_n_pc0", |
| 133 | "uart3_rxd_pw7"; | 148 | "uart3_rxd_pw7"; |
| 134 | nvidia,function = "uartc"; | 149 | nvidia,function = "uartc"; |
| 135 | nvidia,pull = <0>; | 150 | nvidia,pull = <TEGRA_PIN_PULL_NONE>; |
| 136 | nvidia,tristate = <0>; | 151 | nvidia,tristate = <TEGRA_PIN_DISABLE>; |
| 137 | }; | 152 | }; |
| 138 | }; | 153 | }; |
| 139 | }; | 154 | }; |
| @@ -147,7 +162,11 @@ | |||
| 147 | status = "okay"; | 162 | status = "okay"; |
| 148 | }; | 163 | }; |
| 149 | 164 | ||
| 150 | i2c@7000c000 { | 165 | pwm@7000a000 { |
| 166 | status = "okay"; | ||
| 167 | }; | ||
| 168 | |||
| 169 | panelddc: i2c@7000c000 { | ||
| 151 | status = "okay"; | 170 | status = "okay"; |
| 152 | clock-frequency = <100000>; | 171 | clock-frequency = <100000>; |
| 153 | }; | 172 | }; |
| @@ -302,7 +321,7 @@ | |||
| 302 | interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>; | 321 | interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_LEVEL_LOW>; |
| 303 | }; | 322 | }; |
| 304 | 323 | ||
| 305 | tps62361 { | 324 | tps62361@60 { |
| 306 | compatible = "ti,tps62361"; | 325 | compatible = "ti,tps62361"; |
| 307 | reg = <0x60>; | 326 | reg = <0x60>; |
| 308 | 327 | ||
| @@ -326,13 +345,7 @@ | |||
| 326 | }; | 345 | }; |
| 327 | }; | 346 | }; |
| 328 | 347 | ||
| 329 | ahub { | 348 | pmc@7000e400 { |
| 330 | i2s@70080400 { | ||
| 331 | status = "okay"; | ||
| 332 | }; | ||
| 333 | }; | ||
| 334 | |||
| 335 | pmc { | ||
| 336 | status = "okay"; | 349 | status = "okay"; |
| 337 | nvidia,invert-interrupt; | 350 | nvidia,invert-interrupt; |
| 338 | nvidia,suspend-mode = <1>; | 351 | nvidia,suspend-mode = <1>; |
| @@ -344,6 +357,12 @@ | |||
| 344 | nvidia,sys-clock-req-active-high; | 357 | nvidia,sys-clock-req-active-high; |
| 345 | }; | 358 | }; |
| 346 | 359 | ||
| 360 | ahub@70080000 { | ||
| 361 | i2s@70080400 { | ||
| 362 | status = "okay"; | ||
| 363 | }; | ||
| 364 | }; | ||
| 365 | |||
| 347 | sdhci@78000000 { | 366 | sdhci@78000000 { |
| 348 | status = "okay"; | 367 | status = "okay"; |
| 349 | cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; | 368 | cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; |
| @@ -367,12 +386,23 @@ | |||
| 367 | status = "okay"; | 386 | status = "okay"; |
| 368 | }; | 387 | }; |
| 369 | 388 | ||
| 389 | backlight: backlight { | ||
| 390 | compatible = "pwm-backlight"; | ||
| 391 | |||
| 392 | enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>; | ||
| 393 | power-supply = <&vdd_bl_reg>; | ||
| 394 | pwms = <&pwm 0 5000000>; | ||
| 395 | |||
| 396 | brightness-levels = <0 4 8 16 32 64 128 255>; | ||
| 397 | default-brightness-level = <6>; | ||
| 398 | }; | ||
| 399 | |||
| 370 | clocks { | 400 | clocks { |
| 371 | compatible = "simple-bus"; | 401 | compatible = "simple-bus"; |
| 372 | #address-cells = <1>; | 402 | #address-cells = <1>; |
| 373 | #size-cells = <0>; | 403 | #size-cells = <0>; |
| 374 | 404 | ||
| 375 | clk32k_in: clock { | 405 | clk32k_in: clock@0 { |
| 376 | compatible = "fixed-clock"; | 406 | compatible = "fixed-clock"; |
| 377 | reg=<0>; | 407 | reg=<0>; |
| 378 | #clock-cells = <0>; | 408 | #clock-cells = <0>; |
| @@ -380,6 +410,16 @@ | |||
| 380 | }; | 410 | }; |
| 381 | }; | 411 | }; |
| 382 | 412 | ||
| 413 | panel: panel { | ||
| 414 | compatible = "chunghwa,claa101wb01", "simple-panel"; | ||
| 415 | ddc-i2c-bus = <&panelddc>; | ||
| 416 | |||
| 417 | power-supply = <&vdd_pnl1_reg>; | ||
| 418 | enable-gpios = <&gpio TEGRA_GPIO(L, 2) GPIO_ACTIVE_HIGH>; | ||
| 419 | |||
| 420 | backlight = <&backlight>; | ||
| 421 | }; | ||
| 422 | |||
| 383 | regulators { | 423 | regulators { |
| 384 | compatible = "simple-bus"; | 424 | compatible = "simple-bus"; |
| 385 | #address-cells = <1>; | 425 | #address-cells = <1>; |
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi index 31259b09e7cc..ed8e7700b46d 100644 --- a/arch/arm/boot/dts/tegra30.dtsi +++ b/arch/arm/boot/dts/tegra30.dtsi | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | #include <dt-bindings/clock/tegra30-car.h> | 1 | #include <dt-bindings/clock/tegra30-car.h> |
| 2 | #include <dt-bindings/gpio/tegra-gpio.h> | 2 | #include <dt-bindings/gpio/tegra-gpio.h> |
| 3 | #include <dt-bindings/pinctrl/pinctrl-tegra.h> | ||
| 3 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 4 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 4 | 5 | ||
| 5 | #include "skeleton.dtsi" | 6 | #include "skeleton.dtsi" |
| @@ -16,7 +17,7 @@ | |||
| 16 | serial4 = &uarte; | 17 | serial4 = &uarte; |
| 17 | }; | 18 | }; |
| 18 | 19 | ||
| 19 | pcie-controller { | 20 | pcie-controller@00003000 { |
| 20 | compatible = "nvidia,tegra30-pcie"; | 21 | compatible = "nvidia,tegra30-pcie"; |
| 21 | device_type = "pci"; | 22 | device_type = "pci"; |
| 22 | reg = <0x00003000 0x00000800 /* PADS registers */ | 23 | reg = <0x00003000 0x00000800 /* PADS registers */ |
| @@ -89,7 +90,7 @@ | |||
| 89 | }; | 90 | }; |
| 90 | }; | 91 | }; |
| 91 | 92 | ||
| 92 | host1x { | 93 | host1x@50000000 { |
| 93 | compatible = "nvidia,tegra30-host1x", "simple-bus"; | 94 | compatible = "nvidia,tegra30-host1x", "simple-bus"; |
| 94 | reg = <0x50000000 0x00024000>; | 95 | reg = <0x50000000 0x00024000>; |
| 95 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ | 96 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ |
| @@ -103,7 +104,7 @@ | |||
| 103 | 104 | ||
| 104 | ranges = <0x54000000 0x54000000 0x04000000>; | 105 | ranges = <0x54000000 0x54000000 0x04000000>; |
| 105 | 106 | ||
| 106 | mpe { | 107 | mpe@54040000 { |
| 107 | compatible = "nvidia,tegra30-mpe"; | 108 | compatible = "nvidia,tegra30-mpe"; |
| 108 | reg = <0x54040000 0x00040000>; | 109 | reg = <0x54040000 0x00040000>; |
| 109 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; | 110 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -112,7 +113,7 @@ | |||
| 112 | reset-names = "mpe"; | 113 | reset-names = "mpe"; |
| 113 | }; | 114 | }; |
| 114 | 115 | ||
| 115 | vi { | 116 | vi@54080000 { |
| 116 | compatible = "nvidia,tegra30-vi"; | 117 | compatible = "nvidia,tegra30-vi"; |
| 117 | reg = <0x54080000 0x00040000>; | 118 | reg = <0x54080000 0x00040000>; |
| 118 | interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | 119 | interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -121,7 +122,7 @@ | |||
| 121 | reset-names = "vi"; | 122 | reset-names = "vi"; |
| 122 | }; | 123 | }; |
| 123 | 124 | ||
| 124 | epp { | 125 | epp@540c0000 { |
| 125 | compatible = "nvidia,tegra30-epp"; | 126 | compatible = "nvidia,tegra30-epp"; |
| 126 | reg = <0x540c0000 0x00040000>; | 127 | reg = <0x540c0000 0x00040000>; |
| 127 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | 128 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -130,7 +131,7 @@ | |||
| 130 | reset-names = "epp"; | 131 | reset-names = "epp"; |
| 131 | }; | 132 | }; |
| 132 | 133 | ||
| 133 | isp { | 134 | isp@54100000 { |
| 134 | compatible = "nvidia,tegra30-isp"; | 135 | compatible = "nvidia,tegra30-isp"; |
| 135 | reg = <0x54100000 0x00040000>; | 136 | reg = <0x54100000 0x00040000>; |
| 136 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | 137 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -139,7 +140,7 @@ | |||
| 139 | reset-names = "isp"; | 140 | reset-names = "isp"; |
| 140 | }; | 141 | }; |
| 141 | 142 | ||
| 142 | gr2d { | 143 | gr2d@54140000 { |
| 143 | compatible = "nvidia,tegra30-gr2d"; | 144 | compatible = "nvidia,tegra30-gr2d"; |
| 144 | reg = <0x54140000 0x00040000>; | 145 | reg = <0x54140000 0x00040000>; |
| 145 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; | 146 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -148,7 +149,7 @@ | |||
| 148 | clocks = <&tegra_car TEGRA30_CLK_GR2D>; | 149 | clocks = <&tegra_car TEGRA30_CLK_GR2D>; |
| 149 | }; | 150 | }; |
| 150 | 151 | ||
| 151 | gr3d { | 152 | gr3d@54180000 { |
| 152 | compatible = "nvidia,tegra30-gr3d"; | 153 | compatible = "nvidia,tegra30-gr3d"; |
| 153 | reg = <0x54180000 0x00040000>; | 154 | reg = <0x54180000 0x00040000>; |
| 154 | clocks = <&tegra_car TEGRA30_CLK_GR3D | 155 | clocks = <&tegra_car TEGRA30_CLK_GR3D |
| @@ -189,7 +190,7 @@ | |||
| 189 | }; | 190 | }; |
| 190 | }; | 191 | }; |
| 191 | 192 | ||
| 192 | hdmi { | 193 | hdmi@54280000 { |
| 193 | compatible = "nvidia,tegra30-hdmi"; | 194 | compatible = "nvidia,tegra30-hdmi"; |
| 194 | reg = <0x54280000 0x00040000>; | 195 | reg = <0x54280000 0x00040000>; |
| 195 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | 196 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -201,7 +202,7 @@ | |||
| 201 | status = "disabled"; | 202 | status = "disabled"; |
| 202 | }; | 203 | }; |
| 203 | 204 | ||
| 204 | tvo { | 205 | tvo@542c0000 { |
| 205 | compatible = "nvidia,tegra30-tvo"; | 206 | compatible = "nvidia,tegra30-tvo"; |
| 206 | reg = <0x542c0000 0x00040000>; | 207 | reg = <0x542c0000 0x00040000>; |
| 207 | interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; | 208 | interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -209,7 +210,7 @@ | |||
| 209 | status = "disabled"; | 210 | status = "disabled"; |
| 210 | }; | 211 | }; |
| 211 | 212 | ||
| 212 | dsi { | 213 | dsi@54300000 { |
| 213 | compatible = "nvidia,tegra30-dsi"; | 214 | compatible = "nvidia,tegra30-dsi"; |
| 214 | reg = <0x54300000 0x00040000>; | 215 | reg = <0x54300000 0x00040000>; |
| 215 | clocks = <&tegra_car TEGRA30_CLK_DSIA>; | 216 | clocks = <&tegra_car TEGRA30_CLK_DSIA>; |
| @@ -227,7 +228,7 @@ | |||
| 227 | clocks = <&tegra_car TEGRA30_CLK_TWD>; | 228 | clocks = <&tegra_car TEGRA30_CLK_TWD>; |
| 228 | }; | 229 | }; |
| 229 | 230 | ||
| 230 | intc: interrupt-controller { | 231 | intc: interrupt-controller@50041000 { |
| 231 | compatible = "arm,cortex-a9-gic"; | 232 | compatible = "arm,cortex-a9-gic"; |
| 232 | reg = <0x50041000 0x1000 | 233 | reg = <0x50041000 0x1000 |
| 233 | 0x50040100 0x0100>; | 234 | 0x50040100 0x0100>; |
| @@ -235,7 +236,7 @@ | |||
| 235 | #interrupt-cells = <3>; | 236 | #interrupt-cells = <3>; |
| 236 | }; | 237 | }; |
| 237 | 238 | ||
| 238 | cache-controller { | 239 | cache-controller@50043000 { |
| 239 | compatible = "arm,pl310-cache"; | 240 | compatible = "arm,pl310-cache"; |
| 240 | reg = <0x50043000 0x1000>; | 241 | reg = <0x50043000 0x1000>; |
| 241 | arm,data-latency = <6 6 2>; | 242 | arm,data-latency = <6 6 2>; |
| @@ -256,14 +257,14 @@ | |||
| 256 | clocks = <&tegra_car TEGRA30_CLK_TIMER>; | 257 | clocks = <&tegra_car TEGRA30_CLK_TIMER>; |
| 257 | }; | 258 | }; |
| 258 | 259 | ||
| 259 | tegra_car: clock { | 260 | tegra_car: clock@60006000 { |
| 260 | compatible = "nvidia,tegra30-car"; | 261 | compatible = "nvidia,tegra30-car"; |
| 261 | reg = <0x60006000 0x1000>; | 262 | reg = <0x60006000 0x1000>; |
| 262 | #clock-cells = <1>; | 263 | #clock-cells = <1>; |
| 263 | #reset-cells = <1>; | 264 | #reset-cells = <1>; |
| 264 | }; | 265 | }; |
| 265 | 266 | ||
| 266 | apbdma: dma { | 267 | apbdma: dma@6000a000 { |
| 267 | compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; | 268 | compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; |
| 268 | reg = <0x6000a000 0x1400>; | 269 | reg = <0x6000a000 0x1400>; |
| 269 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, | 270 | interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -304,12 +305,12 @@ | |||
| 304 | #dma-cells = <1>; | 305 | #dma-cells = <1>; |
| 305 | }; | 306 | }; |
| 306 | 307 | ||
| 307 | ahb: ahb { | 308 | ahb: ahb@6000c004 { |
| 308 | compatible = "nvidia,tegra30-ahb"; | 309 | compatible = "nvidia,tegra30-ahb"; |
| 309 | reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */ | 310 | reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */ |
| 310 | }; | 311 | }; |
| 311 | 312 | ||
| 312 | gpio: gpio { | 313 | gpio: gpio@6000d000 { |
| 313 | compatible = "nvidia,tegra30-gpio"; | 314 | compatible = "nvidia,tegra30-gpio"; |
| 314 | reg = <0x6000d000 0x1000>; | 315 | reg = <0x6000d000 0x1000>; |
| 315 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, | 316 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, |
| @@ -326,7 +327,7 @@ | |||
| 326 | interrupt-controller; | 327 | interrupt-controller; |
| 327 | }; | 328 | }; |
| 328 | 329 | ||
| 329 | pinmux: pinmux { | 330 | pinmux: pinmux@70000868 { |
| 330 | compatible = "nvidia,tegra30-pinmux"; | 331 | compatible = "nvidia,tegra30-pinmux"; |
| 331 | reg = <0x70000868 0xd4 /* Pad control registers */ | 332 | reg = <0x70000868 0xd4 /* Pad control registers */ |
| 332 | 0x70003000 0x3e4>; /* Mux registers */ | 333 | 0x70003000 0x3e4>; /* Mux registers */ |
| @@ -405,7 +406,7 @@ | |||
| 405 | status = "disabled"; | 406 | status = "disabled"; |
| 406 | }; | 407 | }; |
| 407 | 408 | ||
| 408 | pwm: pwm { | 409 | pwm: pwm@7000a000 { |
| 409 | compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm"; | 410 | compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm"; |
| 410 | reg = <0x7000a000 0x100>; | 411 | reg = <0x7000a000 0x100>; |
| 411 | #pwm-cells = <2>; | 412 | #pwm-cells = <2>; |
| @@ -415,7 +416,7 @@ | |||
| 415 | status = "disabled"; | 416 | status = "disabled"; |
| 416 | }; | 417 | }; |
| 417 | 418 | ||
| 418 | rtc { | 419 | rtc@7000e000 { |
| 419 | compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc"; | 420 | compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc"; |
| 420 | reg = <0x7000e000 0x100>; | 421 | reg = <0x7000e000 0x100>; |
| 421 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | 422 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -586,7 +587,7 @@ | |||
| 586 | status = "disabled"; | 587 | status = "disabled"; |
| 587 | }; | 588 | }; |
| 588 | 589 | ||
| 589 | kbc { | 590 | kbc@7000e200 { |
| 590 | compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc"; | 591 | compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc"; |
| 591 | reg = <0x7000e200 0x100>; | 592 | reg = <0x7000e200 0x100>; |
| 592 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | 593 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; |
| @@ -596,14 +597,14 @@ | |||
| 596 | status = "disabled"; | 597 | status = "disabled"; |
| 597 | }; | 598 | }; |
| 598 | 599 | ||
| 599 | pmc { | 600 | pmc@7000e400 { |
| 600 | compatible = "nvidia,tegra30-pmc"; | 601 | compatible = "nvidia,tegra30-pmc"; |
| 601 | reg = <0x7000e400 0x400>; | 602 | reg = <0x7000e400 0x400>; |
| 602 | clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>; | 603 | clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>; |
| 603 | clock-names = "pclk", "clk32k_in"; | 604 | clock-names = "pclk", "clk32k_in"; |
| 604 | }; | 605 | }; |
| 605 | 606 | ||
| 606 | memory-controller { | 607 | memory-controller@7000f000 { |
| 607 | compatible = "nvidia,tegra30-mc"; | 608 | compatible = "nvidia,tegra30-mc"; |
| 608 | reg = <0x7000f000 0x010 | 609 | reg = <0x7000f000 0x010 |
| 609 | 0x7000f03c 0x1b4 | 610 | 0x7000f03c 0x1b4 |
| @@ -612,7 +613,7 @@ | |||
| 612 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; | 613 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; |
| 613 | }; | 614 | }; |
| 614 | 615 | ||
| 615 | iommu { | 616 | iommu@7000f010 { |
| 616 | compatible = "nvidia,tegra30-smmu"; | 617 | compatible = "nvidia,tegra30-smmu"; |
| 617 | reg = <0x7000f010 0x02c | 618 | reg = <0x7000f010 0x02c |
| 618 | 0x7000f1f0 0x010 | 619 | 0x7000f1f0 0x010 |
| @@ -622,7 +623,7 @@ | |||
| 622 | nvidia,ahb = <&ahb>; | 623 | nvidia,ahb = <&ahb>; |
| 623 | }; | 624 | }; |
| 624 | 625 | ||
| 625 | ahub { | 626 | ahub@70080000 { |
| 626 | compatible = "nvidia,tegra30-ahub"; | 627 | compatible = "nvidia,tegra30-ahub"; |
| 627 | reg = <0x70080000 0x200 | 628 | reg = <0x70080000 0x200 |
| 628 | 0x70080200 0x100>; | 629 | 0x70080200 0x100>; |
| @@ -784,7 +785,7 @@ | |||
| 784 | compatible = "nvidia,tegra30-ehci", "usb-ehci"; | 785 | compatible = "nvidia,tegra30-ehci", "usb-ehci"; |
| 785 | reg = <0x7d004000 0x4000>; | 786 | reg = <0x7d004000 0x4000>; |
| 786 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | 787 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; |
| 787 | phy_type = "ulpi"; | 788 | phy_type = "utmi"; |
| 788 | clocks = <&tegra_car TEGRA30_CLK_USB2>; | 789 | clocks = <&tegra_car TEGRA30_CLK_USB2>; |
| 789 | resets = <&tegra_car 58>; | 790 | resets = <&tegra_car 58>; |
| 790 | reset-names = "usb"; | 791 | reset-names = "usb"; |
| @@ -794,12 +795,23 @@ | |||
| 794 | 795 | ||
| 795 | phy2: usb-phy@7d004000 { | 796 | phy2: usb-phy@7d004000 { |
| 796 | compatible = "nvidia,tegra30-usb-phy"; | 797 | compatible = "nvidia,tegra30-usb-phy"; |
| 797 | reg = <0x7d004000 0x4000>; | 798 | reg = <0x7d004000 0x4000 0x7d000000 0x4000>; |
| 798 | phy_type = "ulpi"; | 799 | phy_type = "utmi"; |
| 799 | clocks = <&tegra_car TEGRA30_CLK_USB2>, | 800 | clocks = <&tegra_car TEGRA30_CLK_USB2>, |
| 800 | <&tegra_car TEGRA30_CLK_PLL_U>, | 801 | <&tegra_car TEGRA30_CLK_PLL_U>, |
| 801 | <&tegra_car TEGRA30_CLK_CDEV2>; | 802 | <&tegra_car TEGRA30_CLK_USBD>; |
| 802 | clock-names = "reg", "pll_u", "ulpi-link"; | 803 | clock-names = "reg", "pll_u", "utmi-pads"; |
| 804 | nvidia,hssync-start-delay = <9>; | ||
| 805 | nvidia,idle-wait-delay = <17>; | ||
| 806 | nvidia,elastic-limit = <16>; | ||
| 807 | nvidia,term-range-adj = <6>; | ||
| 808 | nvidia,xcvr-setup = <51>; | ||
| 809 | nvidia.xcvr-setup-use-fuses; | ||
| 810 | nvidia,xcvr-lsfslew = <2>; | ||
| 811 | nvidia,xcvr-lsrslew = <2>; | ||
| 812 | nvidia,xcvr-hsslew = <32>; | ||
| 813 | nvidia,hssquelch-level = <2>; | ||
| 814 | nvidia,hsdiscon-level = <5>; | ||
| 803 | status = "disabled"; | 815 | status = "disabled"; |
| 804 | }; | 816 | }; |
| 805 | 817 | ||
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi index e7f73b2e4550..5d7681be0580 100644 --- a/arch/arm/boot/dts/zynq-7000.dtsi +++ b/arch/arm/boot/dts/zynq-7000.dtsi | |||
| @@ -15,6 +15,25 @@ | |||
| 15 | / { | 15 | / { |
| 16 | compatible = "xlnx,zynq-7000"; | 16 | compatible = "xlnx,zynq-7000"; |
| 17 | 17 | ||
| 18 | cpus { | ||
| 19 | #address-cells = <1>; | ||
| 20 | #size-cells = <0>; | ||
| 21 | |||
| 22 | cpu@0 { | ||
| 23 | compatible = "arm,cortex-a9"; | ||
| 24 | device_type = "cpu"; | ||
| 25 | reg = <0>; | ||
| 26 | clocks = <&clkc 3>; | ||
| 27 | }; | ||
| 28 | |||
| 29 | cpu@1 { | ||
| 30 | compatible = "arm,cortex-a9"; | ||
| 31 | device_type = "cpu"; | ||
| 32 | reg = <1>; | ||
| 33 | clocks = <&clkc 3>; | ||
| 34 | }; | ||
| 35 | }; | ||
| 36 | |||
| 18 | pmu { | 37 | pmu { |
| 19 | compatible = "arm,cortex-a9-pmu"; | 38 | compatible = "arm,cortex-a9-pmu"; |
| 20 | interrupts = <0 5 4>, <0 6 4>; | 39 | interrupts = <0 5 4>, <0 6 4>; |
| @@ -65,6 +84,24 @@ | |||
| 65 | interrupts = <0 50 4>; | 84 | interrupts = <0 50 4>; |
| 66 | }; | 85 | }; |
| 67 | 86 | ||
| 87 | gem0: ethernet@e000b000 { | ||
| 88 | compatible = "cdns,gem"; | ||
| 89 | reg = <0xe000b000 0x4000>; | ||
| 90 | status = "disabled"; | ||
| 91 | interrupts = <0 22 4>; | ||
| 92 | clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>; | ||
| 93 | clock-names = "pclk", "hclk", "tx_clk"; | ||
| 94 | }; | ||
| 95 | |||
| 96 | gem1: ethernet@e000c000 { | ||
| 97 | compatible = "cdns,gem"; | ||
| 98 | reg = <0xe000c000 0x4000>; | ||
| 99 | status = "disabled"; | ||
| 100 | interrupts = <0 45 4>; | ||
| 101 | clocks = <&clkc 31>, <&clkc 31>, <&clkc 14>; | ||
| 102 | clock-names = "pclk", "hclk", "tx_clk"; | ||
| 103 | }; | ||
| 104 | |||
| 68 | slcr: slcr@f8000000 { | 105 | slcr: slcr@f8000000 { |
| 69 | compatible = "xlnx,zynq-slcr"; | 106 | compatible = "xlnx,zynq-slcr"; |
| 70 | reg = <0xF8000000 0x1000>; | 107 | reg = <0xF8000000 0x1000>; |
| @@ -106,7 +143,6 @@ | |||
| 106 | compatible = "cdns,ttc"; | 143 | compatible = "cdns,ttc"; |
| 107 | clocks = <&clkc 6>; | 144 | clocks = <&clkc 6>; |
| 108 | reg = <0xF8001000 0x1000>; | 145 | reg = <0xF8001000 0x1000>; |
| 109 | clock-ranges; | ||
| 110 | }; | 146 | }; |
| 111 | 147 | ||
| 112 | ttc1: ttc1@f8002000 { | 148 | ttc1: ttc1@f8002000 { |
| @@ -115,7 +151,6 @@ | |||
| 115 | compatible = "cdns,ttc"; | 151 | compatible = "cdns,ttc"; |
| 116 | clocks = <&clkc 6>; | 152 | clocks = <&clkc 6>; |
| 117 | reg = <0xF8002000 0x1000>; | 153 | reg = <0xF8002000 0x1000>; |
| 118 | clock-ranges; | ||
| 119 | }; | 154 | }; |
| 120 | scutimer: scutimer@f8f00600 { | 155 | scutimer: scutimer@f8f00600 { |
| 121 | interrupt-parent = <&intc>; | 156 | interrupt-parent = <&intc>; |
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts index 21aea99a067b..34d680a46b7e 100644 --- a/arch/arm/boot/dts/zynq-zc702.dts +++ b/arch/arm/boot/dts/zynq-zc702.dts | |||
| @@ -29,6 +29,11 @@ | |||
| 29 | 29 | ||
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | &gem0 { | ||
| 33 | status = "okay"; | ||
| 34 | phy-mode = "rgmii"; | ||
| 35 | }; | ||
| 36 | |||
| 32 | &uart1 { | 37 | &uart1 { |
| 33 | status = "okay"; | 38 | status = "okay"; |
| 34 | }; | 39 | }; |
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts index 79009e0b74b9..b2835d5fc09a 100644 --- a/arch/arm/boot/dts/zynq-zc706.dts +++ b/arch/arm/boot/dts/zynq-zc706.dts | |||
| @@ -30,6 +30,11 @@ | |||
| 30 | 30 | ||
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | &gem0 { | ||
| 34 | status = "okay"; | ||
| 35 | phy-mode = "rgmii"; | ||
| 36 | }; | ||
| 37 | |||
| 33 | &uart1 { | 38 | &uart1 { |
| 34 | status = "okay"; | 39 | status = "okay"; |
| 35 | }; | 40 | }; |
diff --git a/arch/arm/boot/dts/zynq-zed.dts b/arch/arm/boot/dts/zynq-zed.dts index d6acf2b1cdf4..2eda06889dfc 100644 --- a/arch/arm/boot/dts/zynq-zed.dts +++ b/arch/arm/boot/dts/zynq-zed.dts | |||
| @@ -30,6 +30,11 @@ | |||
| 30 | 30 | ||
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | &gem0 { | ||
| 34 | status = "okay"; | ||
| 35 | phy-mode = "rgmii"; | ||
| 36 | }; | ||
| 37 | |||
| 33 | &uart1 { | 38 | &uart1 { |
| 34 | status = "okay"; | 39 | status = "okay"; |
| 35 | }; | 40 | }; |
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c index 473e21b87364..17c0fe627435 100644 --- a/arch/arm/mach-integrator/integrator_ap.c +++ b/arch/arm/mach-integrator/integrator_ap.c | |||
| @@ -63,6 +63,9 @@ | |||
| 63 | 63 | ||
| 64 | /* Base address to the AP system controller */ | 64 | /* Base address to the AP system controller */ |
| 65 | void __iomem *ap_syscon_base; | 65 | void __iomem *ap_syscon_base; |
| 66 | /* Base address to the external bus interface */ | ||
| 67 | static void __iomem *ebi_base; | ||
| 68 | |||
| 66 | 69 | ||
| 67 | /* | 70 | /* |
| 68 | * All IO addresses are mapped onto VA 0xFFFx.xxxx, where x.xxxx | 71 | * All IO addresses are mapped onto VA 0xFFFx.xxxx, where x.xxxx |
| @@ -72,15 +75,11 @@ void __iomem *ap_syscon_base; | |||
| 72 | * just for now). | 75 | * just for now). |
| 73 | */ | 76 | */ |
| 74 | #define VA_IC_BASE __io_address(INTEGRATOR_IC_BASE) | 77 | #define VA_IC_BASE __io_address(INTEGRATOR_IC_BASE) |
| 75 | #define VA_EBI_BASE __io_address(INTEGRATOR_EBI_BASE) | ||
| 76 | #define VA_CMIC_BASE __io_address(INTEGRATOR_HDR_IC) | ||
| 77 | 78 | ||
| 78 | /* | 79 | /* |
| 79 | * Logical Physical | 80 | * Logical Physical |
| 80 | * ef000000 Cache flush | 81 | * ef000000 Cache flush |
| 81 | * f1000000 10000000 Core module registers | ||
| 82 | * f1100000 11000000 System controller registers | 82 | * f1100000 11000000 System controller registers |
| 83 | * f1200000 12000000 EBI registers | ||
| 84 | * f1300000 13000000 Counter/Timer | 83 | * f1300000 13000000 Counter/Timer |
| 85 | * f1400000 14000000 Interrupt controller | 84 | * f1400000 14000000 Interrupt controller |
| 86 | * f1600000 16000000 UART 0 | 85 | * f1600000 16000000 UART 0 |
| @@ -91,16 +90,6 @@ void __iomem *ap_syscon_base; | |||
| 91 | 90 | ||
| 92 | static struct map_desc ap_io_desc[] __initdata __maybe_unused = { | 91 | static struct map_desc ap_io_desc[] __initdata __maybe_unused = { |
| 93 | { | 92 | { |
| 94 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), | ||
| 95 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), | ||
| 96 | .length = SZ_4K, | ||
| 97 | .type = MT_DEVICE | ||
| 98 | }, { | ||
| 99 | .virtual = IO_ADDRESS(INTEGRATOR_EBI_BASE), | ||
| 100 | .pfn = __phys_to_pfn(INTEGRATOR_EBI_BASE), | ||
| 101 | .length = SZ_4K, | ||
| 102 | .type = MT_DEVICE | ||
| 103 | }, { | ||
| 104 | .virtual = IO_ADDRESS(INTEGRATOR_CT_BASE), | 93 | .virtual = IO_ADDRESS(INTEGRATOR_CT_BASE), |
| 105 | .pfn = __phys_to_pfn(INTEGRATOR_CT_BASE), | 94 | .pfn = __phys_to_pfn(INTEGRATOR_CT_BASE), |
| 106 | .length = SZ_4K, | 95 | .length = SZ_4K, |
| @@ -174,9 +163,6 @@ device_initcall(irq_syscore_init); | |||
| 174 | /* | 163 | /* |
| 175 | * Flash handling. | 164 | * Flash handling. |
| 176 | */ | 165 | */ |
| 177 | #define EBI_CSR1 (VA_EBI_BASE + INTEGRATOR_EBI_CSR1_OFFSET) | ||
| 178 | #define EBI_LOCK (VA_EBI_BASE + INTEGRATOR_EBI_LOCK_OFFSET) | ||
| 179 | |||
| 180 | static int ap_flash_init(struct platform_device *dev) | 166 | static int ap_flash_init(struct platform_device *dev) |
| 181 | { | 167 | { |
| 182 | u32 tmp; | 168 | u32 tmp; |
| @@ -184,13 +170,15 @@ static int ap_flash_init(struct platform_device *dev) | |||
| 184 | writel(INTEGRATOR_SC_CTRL_nFLVPPEN | INTEGRATOR_SC_CTRL_nFLWP, | 170 | writel(INTEGRATOR_SC_CTRL_nFLVPPEN | INTEGRATOR_SC_CTRL_nFLWP, |
| 185 | ap_syscon_base + INTEGRATOR_SC_CTRLC_OFFSET); | 171 | ap_syscon_base + INTEGRATOR_SC_CTRLC_OFFSET); |
| 186 | 172 | ||
| 187 | tmp = readl(EBI_CSR1) | INTEGRATOR_EBI_WRITE_ENABLE; | 173 | tmp = readl(ebi_base + INTEGRATOR_EBI_CSR1_OFFSET) | |
| 188 | writel(tmp, EBI_CSR1); | 174 | INTEGRATOR_EBI_WRITE_ENABLE; |
| 175 | writel(tmp, ebi_base + INTEGRATOR_EBI_CSR1_OFFSET); | ||
| 189 | 176 | ||
| 190 | if (!(readl(EBI_CSR1) & INTEGRATOR_EBI_WRITE_ENABLE)) { | 177 | if (!(readl(ebi_base + INTEGRATOR_EBI_CSR1_OFFSET) |
| 191 | writel(0xa05f, EBI_LOCK); | 178 | & INTEGRATOR_EBI_WRITE_ENABLE)) { |
| 192 | writel(tmp, EBI_CSR1); | 179 | writel(0xa05f, ebi_base + INTEGRATOR_EBI_LOCK_OFFSET); |
| 193 | writel(0, EBI_LOCK); | 180 | writel(tmp, ebi_base + INTEGRATOR_EBI_CSR1_OFFSET); |
| 181 | writel(0, ebi_base + INTEGRATOR_EBI_LOCK_OFFSET); | ||
| 194 | } | 182 | } |
| 195 | return 0; | 183 | return 0; |
| 196 | } | 184 | } |
| @@ -202,13 +190,15 @@ static void ap_flash_exit(struct platform_device *dev) | |||
| 202 | writel(INTEGRATOR_SC_CTRL_nFLVPPEN | INTEGRATOR_SC_CTRL_nFLWP, | 190 | writel(INTEGRATOR_SC_CTRL_nFLVPPEN | INTEGRATOR_SC_CTRL_nFLWP, |
| 203 | ap_syscon_base + INTEGRATOR_SC_CTRLC_OFFSET); | 191 | ap_syscon_base + INTEGRATOR_SC_CTRLC_OFFSET); |
| 204 | 192 | ||
| 205 | tmp = readl(EBI_CSR1) & ~INTEGRATOR_EBI_WRITE_ENABLE; | 193 | tmp = readl(ebi_base + INTEGRATOR_EBI_CSR1_OFFSET) & |
| 206 | writel(tmp, EBI_CSR1); | 194 | ~INTEGRATOR_EBI_WRITE_ENABLE; |
| 195 | writel(tmp, ebi_base + INTEGRATOR_EBI_CSR1_OFFSET); | ||
| 207 | 196 | ||
| 208 | if (readl(EBI_CSR1) & INTEGRATOR_EBI_WRITE_ENABLE) { | 197 | if (readl(ebi_base + INTEGRATOR_EBI_CSR1_OFFSET) & |
| 209 | writel(0xa05f, EBI_LOCK); | 198 | INTEGRATOR_EBI_WRITE_ENABLE) { |
| 210 | writel(tmp, EBI_CSR1); | 199 | writel(0xa05f, ebi_base + INTEGRATOR_EBI_LOCK_OFFSET); |
| 211 | writel(0, EBI_LOCK); | 200 | writel(tmp, ebi_base + INTEGRATOR_EBI_CSR1_OFFSET); |
| 201 | writel(0, ebi_base + INTEGRATOR_EBI_LOCK_OFFSET); | ||
| 212 | } | 202 | } |
| 213 | } | 203 | } |
| 214 | 204 | ||
| @@ -475,11 +465,17 @@ static const struct of_device_id ap_syscon_match[] = { | |||
| 475 | { }, | 465 | { }, |
| 476 | }; | 466 | }; |
| 477 | 467 | ||
| 468 | static const struct of_device_id ebi_match[] = { | ||
| 469 | { .compatible = "arm,external-bus-interface"}, | ||
| 470 | { }, | ||
| 471 | }; | ||
| 472 | |||
| 478 | static void __init ap_init_of(void) | 473 | static void __init ap_init_of(void) |
| 479 | { | 474 | { |
| 480 | unsigned long sc_dec; | 475 | unsigned long sc_dec; |
| 481 | struct device_node *root; | 476 | struct device_node *root; |
| 482 | struct device_node *syscon; | 477 | struct device_node *syscon; |
| 478 | struct device_node *ebi; | ||
| 483 | struct device *parent; | 479 | struct device *parent; |
| 484 | struct soc_device *soc_dev; | 480 | struct soc_device *soc_dev; |
| 485 | struct soc_device_attribute *soc_dev_attr; | 481 | struct soc_device_attribute *soc_dev_attr; |
| @@ -495,10 +491,16 @@ static void __init ap_init_of(void) | |||
| 495 | syscon = of_find_matching_node(root, ap_syscon_match); | 491 | syscon = of_find_matching_node(root, ap_syscon_match); |
| 496 | if (!syscon) | 492 | if (!syscon) |
| 497 | return; | 493 | return; |
| 494 | ebi = of_find_matching_node(root, ebi_match); | ||
| 495 | if (!ebi) | ||
| 496 | return; | ||
| 498 | 497 | ||
| 499 | ap_syscon_base = of_iomap(syscon, 0); | 498 | ap_syscon_base = of_iomap(syscon, 0); |
| 500 | if (!ap_syscon_base) | 499 | if (!ap_syscon_base) |
| 501 | return; | 500 | return; |
| 501 | ebi_base = of_iomap(ebi, 0); | ||
| 502 | if (!ebi_base) | ||
| 503 | return; | ||
| 502 | 504 | ||
| 503 | ap_sc_id = readl(ap_syscon_base); | 505 | ap_sc_id = readl(ap_syscon_base); |
| 504 | 506 | ||
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 4fc0a195de01..5e84149d1790 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
| @@ -64,9 +64,6 @@ static void __iomem *intcp_con_base; | |||
| 64 | 64 | ||
| 65 | /* | 65 | /* |
| 66 | * Logical Physical | 66 | * Logical Physical |
| 67 | * f1000000 10000000 Core module registers | ||
| 68 | * f1100000 11000000 System controller registers | ||
| 69 | * f1200000 12000000 EBI registers | ||
| 70 | * f1300000 13000000 Counter/Timer | 67 | * f1300000 13000000 Counter/Timer |
| 71 | * f1400000 14000000 Interrupt controller | 68 | * f1400000 14000000 Interrupt controller |
| 72 | * f1600000 16000000 UART 0 | 69 | * f1600000 16000000 UART 0 |
| @@ -74,21 +71,10 @@ static void __iomem *intcp_con_base; | |||
| 74 | * f1a00000 1a000000 Debug LEDs | 71 | * f1a00000 1a000000 Debug LEDs |
| 75 | * fc900000 c9000000 GPIO | 72 | * fc900000 c9000000 GPIO |
| 76 | * fca00000 ca000000 SIC | 73 | * fca00000 ca000000 SIC |
| 77 | * fcb00000 cb000000 CP system control | ||
| 78 | */ | 74 | */ |
| 79 | 75 | ||
| 80 | static struct map_desc intcp_io_desc[] __initdata __maybe_unused = { | 76 | static struct map_desc intcp_io_desc[] __initdata __maybe_unused = { |
| 81 | { | 77 | { |
| 82 | .virtual = IO_ADDRESS(INTEGRATOR_HDR_BASE), | ||
| 83 | .pfn = __phys_to_pfn(INTEGRATOR_HDR_BASE), | ||
| 84 | .length = SZ_4K, | ||
| 85 | .type = MT_DEVICE | ||
| 86 | }, { | ||
| 87 | .virtual = IO_ADDRESS(INTEGRATOR_EBI_BASE), | ||
| 88 | .pfn = __phys_to_pfn(INTEGRATOR_EBI_BASE), | ||
| 89 | .length = SZ_4K, | ||
| 90 | .type = MT_DEVICE | ||
| 91 | }, { | ||
| 92 | .virtual = IO_ADDRESS(INTEGRATOR_CT_BASE), | 78 | .virtual = IO_ADDRESS(INTEGRATOR_CT_BASE), |
| 93 | .pfn = __phys_to_pfn(INTEGRATOR_CT_BASE), | 79 | .pfn = __phys_to_pfn(INTEGRATOR_CT_BASE), |
| 94 | .length = SZ_4K, | 80 | .length = SZ_4K, |
diff --git a/arch/arm/mach-nomadik/cpu-8815.c b/arch/arm/mach-nomadik/cpu-8815.c index cce2c9dfb5d1..4a1065e41e9c 100644 --- a/arch/arm/mach-nomadik/cpu-8815.c +++ b/arch/arm/mach-nomadik/cpu-8815.c | |||
| @@ -110,38 +110,6 @@ static void cpu8815_restart(enum reboot_mode mode, const char *cmd) | |||
| 110 | } | 110 | } |
| 111 | 111 | ||
| 112 | /* | 112 | /* |
| 113 | * The SMSC911x IRQ is connected to a GPIO pin, but the driver expects | ||
| 114 | * to simply request an IRQ passed as a resource. So the GPIO pin needs | ||
| 115 | * to be requested by this hog and set as input. | ||
| 116 | */ | ||
| 117 | static int __init cpu8815_eth_init(void) | ||
| 118 | { | ||
| 119 | struct device_node *eth; | ||
| 120 | int gpio, irq, err; | ||
| 121 | |||
| 122 | eth = of_find_node_by_path("/usb-s8815/ethernet-gpio"); | ||
| 123 | if (!eth) { | ||
| 124 | pr_info("could not find any ethernet GPIO\n"); | ||
| 125 | return 0; | ||
| 126 | } | ||
| 127 | gpio = of_get_gpio(eth, 0); | ||
| 128 | err = gpio_request(gpio, "eth_irq"); | ||
| 129 | if (err) { | ||
| 130 | pr_info("failed to request ethernet GPIO\n"); | ||
| 131 | return -ENODEV; | ||
| 132 | } | ||
| 133 | err = gpio_direction_input(gpio); | ||
| 134 | if (err) { | ||
| 135 | pr_info("failed to set ethernet GPIO as input\n"); | ||
| 136 | return -ENODEV; | ||
| 137 | } | ||
| 138 | irq = gpio_to_irq(gpio); | ||
| 139 | pr_info("enabled USB-S8815 ethernet GPIO %d, IRQ %d\n", gpio, irq); | ||
| 140 | return 0; | ||
| 141 | } | ||
| 142 | device_initcall(cpu8815_eth_init); | ||
| 143 | |||
| 144 | /* | ||
| 145 | * This GPIO pin turns on a line that is used to detect card insertion | 113 | * This GPIO pin turns on a line that is used to detect card insertion |
| 146 | * on this board. | 114 | * on this board. |
| 147 | */ | 115 | */ |
diff --git a/arch/arm/mach-shmobile/board-bockw-reference.c b/arch/arm/mach-shmobile/board-bockw-reference.c index 1687df9b267f..875cf3f3f503 100644 --- a/arch/arm/mach-shmobile/board-bockw-reference.c +++ b/arch/arm/mach-shmobile/board-bockw-reference.c | |||
| @@ -27,14 +27,6 @@ | |||
| 27 | * see board-bock.c for checking detail of dip-switch | 27 | * see board-bock.c for checking detail of dip-switch |
| 28 | */ | 28 | */ |
| 29 | 29 | ||
| 30 | static const struct pinctrl_map bockw_pinctrl_map[] = { | ||
| 31 | /* SCIF0 */ | ||
| 32 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778", | ||
| 33 | "scif0_data_a", "scif0"), | ||
| 34 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.0", "pfc-r8a7778", | ||
| 35 | "scif0_ctrl", "scif0"), | ||
| 36 | }; | ||
| 37 | |||
| 38 | #define FPGA 0x18200000 | 30 | #define FPGA 0x18200000 |
| 39 | #define IRQ0MR 0x30 | 31 | #define IRQ0MR 0x30 |
| 40 | #define COMCTLR 0x101c | 32 | #define COMCTLR 0x101c |
| @@ -44,10 +36,6 @@ static void __init bockw_init(void) | |||
| 44 | 36 | ||
| 45 | r8a7778_clock_init(); | 37 | r8a7778_clock_init(); |
| 46 | r8a7778_init_irq_extpin_dt(1); | 38 | r8a7778_init_irq_extpin_dt(1); |
| 47 | |||
| 48 | pinctrl_register_mappings(bockw_pinctrl_map, | ||
| 49 | ARRAY_SIZE(bockw_pinctrl_map)); | ||
| 50 | r8a7778_pinmux_init(); | ||
| 51 | r8a7778_add_dt_devices(); | 39 | r8a7778_add_dt_devices(); |
| 52 | 40 | ||
| 53 | fpga = ioremap_nocache(FPGA, SZ_1M); | 41 | fpga = ioremap_nocache(FPGA, SZ_1M); |
diff --git a/arch/arm/mach-shmobile/board-marzen.c b/arch/arm/mach-shmobile/board-marzen.c index 4f9e3ec42ddc..d832a4477b4b 100644 --- a/arch/arm/mach-shmobile/board-marzen.c +++ b/arch/arm/mach-shmobile/board-marzen.c | |||
| @@ -347,8 +347,6 @@ static const struct pinctrl_map marzen_pinctrl_map[] = { | |||
| 347 | "sdhi0_ctrl", "sdhi0"), | 347 | "sdhi0_ctrl", "sdhi0"), |
| 348 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", | 348 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", |
| 349 | "sdhi0_cd", "sdhi0"), | 349 | "sdhi0_cd", "sdhi0"), |
| 350 | PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779", | ||
| 351 | "sdhi0_wp", "sdhi0"), | ||
| 352 | /* SMSC */ | 350 | /* SMSC */ |
| 353 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779", | 351 | PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779", |
| 354 | "intc_irq1_b", "intc"), | 352 | "intc_irq1_b", "intc"), |
diff --git a/arch/arm/mach-shmobile/clock-r8a73a4.c b/arch/arm/mach-shmobile/clock-r8a73a4.c index 571409b611d3..7348d58f500e 100644 --- a/arch/arm/mach-shmobile/clock-r8a73a4.c +++ b/arch/arm/mach-shmobile/clock-r8a73a4.c | |||
| @@ -584,15 +584,15 @@ static struct clk_lookup lookups[] = { | |||
| 584 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), | 584 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), |
| 585 | CLKDEV_DEV_ID("e6520000.i2c", &mstp_clks[MSTP300]), | 585 | CLKDEV_DEV_ID("e6520000.i2c", &mstp_clks[MSTP300]), |
| 586 | CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), | 586 | CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), |
| 587 | CLKDEV_DEV_ID("ee220000.mmcif", &mstp_clks[MSTP305]), | 587 | CLKDEV_DEV_ID("ee220000.mmc", &mstp_clks[MSTP305]), |
| 588 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), | 588 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), |
| 589 | CLKDEV_DEV_ID("ee140000.sdhi", &mstp_clks[MSTP312]), | 589 | CLKDEV_DEV_ID("ee140000.sd", &mstp_clks[MSTP312]), |
| 590 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), | 590 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), |
| 591 | CLKDEV_DEV_ID("ee120000.sdhi", &mstp_clks[MSTP313]), | 591 | CLKDEV_DEV_ID("ee120000.sd", &mstp_clks[MSTP313]), |
| 592 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), | 592 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), |
| 593 | CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), | 593 | CLKDEV_DEV_ID("ee100000.sd", &mstp_clks[MSTP314]), |
| 594 | CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), | 594 | CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), |
| 595 | CLKDEV_DEV_ID("ee200000.mmcif", &mstp_clks[MSTP315]), | 595 | CLKDEV_DEV_ID("ee200000.mmc", &mstp_clks[MSTP315]), |
| 596 | CLKDEV_DEV_ID("e6550000.i2c", &mstp_clks[MSTP316]), | 596 | CLKDEV_DEV_ID("e6550000.i2c", &mstp_clks[MSTP316]), |
| 597 | CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]), | 597 | CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]), |
| 598 | CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]), | 598 | CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]), |
diff --git a/arch/arm/mach-shmobile/clock-r8a7740.c b/arch/arm/mach-shmobile/clock-r8a7740.c index e9a3c6401845..dd989f93498f 100644 --- a/arch/arm/mach-shmobile/clock-r8a7740.c +++ b/arch/arm/mach-shmobile/clock-r8a7740.c | |||
| @@ -590,18 +590,18 @@ static struct clk_lookup lookups[] = { | |||
| 590 | CLKDEV_DEV_ID("e6c20000.i2c", &mstp_clks[MSTP323]), | 590 | CLKDEV_DEV_ID("e6c20000.i2c", &mstp_clks[MSTP323]), |
| 591 | CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP320]), | 591 | CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP320]), |
| 592 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), | 592 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), |
| 593 | CLKDEV_DEV_ID("e6850000.sdhi", &mstp_clks[MSTP314]), | 593 | CLKDEV_DEV_ID("e6850000.sd", &mstp_clks[MSTP314]), |
| 594 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), | 594 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), |
| 595 | CLKDEV_DEV_ID("e6860000.sdhi", &mstp_clks[MSTP313]), | 595 | CLKDEV_DEV_ID("e6860000.sd", &mstp_clks[MSTP313]), |
| 596 | CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP312]), | 596 | CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP312]), |
| 597 | CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), | 597 | CLKDEV_DEV_ID("e6bd0000.mmc", &mstp_clks[MSTP312]), |
| 598 | CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]), | 598 | CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]), |
| 599 | CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]), | 599 | CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]), |
| 600 | CLKDEV_DEV_ID("renesas-tpu-pwm", &mstp_clks[MSTP304]), | 600 | CLKDEV_DEV_ID("renesas-tpu-pwm", &mstp_clks[MSTP304]), |
| 601 | CLKDEV_DEV_ID("e6600000.pwm", &mstp_clks[MSTP304]), | 601 | CLKDEV_DEV_ID("e6600000.pwm", &mstp_clks[MSTP304]), |
| 602 | 602 | ||
| 603 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]), | 603 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]), |
| 604 | CLKDEV_DEV_ID("e6870000.sdhi", &mstp_clks[MSTP415]), | 604 | CLKDEV_DEV_ID("e6870000.sd", &mstp_clks[MSTP415]), |
| 605 | 605 | ||
| 606 | /* ICK */ | 606 | /* ICK */ |
| 607 | CLKDEV_ICK_ID("host", "renesas_usbhs", &mstp_clks[MSTP416]), | 607 | CLKDEV_ICK_ID("host", "renesas_usbhs", &mstp_clks[MSTP416]), |
diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c index dfb0fff4d24c..9783945f8bc7 100644 --- a/arch/arm/mach-shmobile/clock-r8a7778.c +++ b/arch/arm/mach-shmobile/clock-r8a7778.c | |||
| @@ -184,13 +184,13 @@ static struct clk_lookup lookups[] = { | |||
| 184 | 184 | ||
| 185 | /* MSTP32 clocks */ | 185 | /* MSTP32 clocks */ |
| 186 | CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP331]), /* MMC */ | 186 | CLKDEV_DEV_ID("sh_mmcif", &mstp_clks[MSTP331]), /* MMC */ |
| 187 | CLKDEV_DEV_ID("ffe4e000.mmcif", &mstp_clks[MSTP331]), /* MMC */ | 187 | CLKDEV_DEV_ID("ffe4e000.mmc", &mstp_clks[MSTP331]), /* MMC */ |
| 188 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */ | 188 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */ |
| 189 | CLKDEV_DEV_ID("ffe4c000.sdhi", &mstp_clks[MSTP323]), /* SDHI0 */ | 189 | CLKDEV_DEV_ID("ffe4c000.sd", &mstp_clks[MSTP323]), /* SDHI0 */ |
| 190 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */ | 190 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */ |
| 191 | CLKDEV_DEV_ID("ffe4d000.sdhi", &mstp_clks[MSTP322]), /* SDHI1 */ | 191 | CLKDEV_DEV_ID("ffe4d000.sd", &mstp_clks[MSTP322]), /* SDHI1 */ |
| 192 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */ | 192 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */ |
| 193 | CLKDEV_DEV_ID("ffe4f000.sdhi", &mstp_clks[MSTP321]), /* SDHI2 */ | 193 | CLKDEV_DEV_ID("ffe4f000.sd", &mstp_clks[MSTP321]), /* SDHI2 */ |
| 194 | CLKDEV_DEV_ID("r8a777x-ether", &mstp_clks[MSTP114]), /* Ether */ | 194 | CLKDEV_DEV_ID("r8a777x-ether", &mstp_clks[MSTP114]), /* Ether */ |
| 195 | CLKDEV_DEV_ID("r8a7778-vin.0", &mstp_clks[MSTP110]), /* VIN0 */ | 195 | CLKDEV_DEV_ID("r8a7778-vin.0", &mstp_clks[MSTP110]), /* VIN0 */ |
| 196 | CLKDEV_DEV_ID("r8a7778-vin.1", &mstp_clks[MSTP109]), /* VIN1 */ | 196 | CLKDEV_DEV_ID("r8a7778-vin.1", &mstp_clks[MSTP109]), /* VIN1 */ |
diff --git a/arch/arm/mach-shmobile/clock-r8a7779.c b/arch/arm/mach-shmobile/clock-r8a7779.c index b545c8dbb818..f1fb89b76786 100644 --- a/arch/arm/mach-shmobile/clock-r8a7779.c +++ b/arch/arm/mach-shmobile/clock-r8a7779.c | |||
| @@ -204,13 +204,13 @@ static struct clk_lookup lookups[] = { | |||
| 204 | CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */ | 204 | CLKDEV_DEV_ID("sh-hspi.2", &mstp_clks[MSTP007]), /* HSPI2 */ |
| 205 | CLKDEV_DEV_ID("fffc6000.spi", &mstp_clks[MSTP007]), /* HSPI2 */ | 205 | CLKDEV_DEV_ID("fffc6000.spi", &mstp_clks[MSTP007]), /* HSPI2 */ |
| 206 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */ | 206 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP323]), /* SDHI0 */ |
| 207 | CLKDEV_DEV_ID("ffe4c000.sdhi", &mstp_clks[MSTP323]), /* SDHI0 */ | 207 | CLKDEV_DEV_ID("ffe4c000.sd", &mstp_clks[MSTP323]), /* SDHI0 */ |
| 208 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */ | 208 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP322]), /* SDHI1 */ |
| 209 | CLKDEV_DEV_ID("ffe4d000.sdhi", &mstp_clks[MSTP322]), /* SDHI1 */ | 209 | CLKDEV_DEV_ID("ffe4d000.sd", &mstp_clks[MSTP322]), /* SDHI1 */ |
| 210 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */ | 210 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP321]), /* SDHI2 */ |
| 211 | CLKDEV_DEV_ID("ffe4e000.sdhi", &mstp_clks[MSTP321]), /* SDHI2 */ | 211 | CLKDEV_DEV_ID("ffe4e000.sd", &mstp_clks[MSTP321]), /* SDHI2 */ |
| 212 | CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP320]), /* SDHI3 */ | 212 | CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP320]), /* SDHI3 */ |
| 213 | CLKDEV_DEV_ID("ffe4f000.sdhi", &mstp_clks[MSTP320]), /* SDHI3 */ | 213 | CLKDEV_DEV_ID("ffe4f000.sd", &mstp_clks[MSTP320]), /* SDHI3 */ |
| 214 | CLKDEV_DEV_ID("rcar-du-r8a7779", &mstp_clks[MSTP103]), /* DU */ | 214 | CLKDEV_DEV_ID("rcar-du-r8a7779", &mstp_clks[MSTP103]), /* DU */ |
| 215 | }; | 215 | }; |
| 216 | 216 | ||
diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c index 30552448b056..f44987a92ad4 100644 --- a/arch/arm/mach-shmobile/clock-r8a7790.c +++ b/arch/arm/mach-shmobile/clock-r8a7790.c | |||
| @@ -302,17 +302,17 @@ static struct clk_lookup lookups[] = { | |||
| 302 | CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), | 302 | CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), |
| 303 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), | 303 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), |
| 304 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), | 304 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), |
| 305 | CLKDEV_DEV_ID("ee200000.mmcif", &mstp_clks[MSTP315]), | 305 | CLKDEV_DEV_ID("ee200000.mmc", &mstp_clks[MSTP315]), |
| 306 | CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), | 306 | CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP315]), |
| 307 | CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), | 307 | CLKDEV_DEV_ID("ee100000.sd", &mstp_clks[MSTP314]), |
| 308 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), | 308 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), |
| 309 | CLKDEV_DEV_ID("ee120000.sdhi", &mstp_clks[MSTP313]), | 309 | CLKDEV_DEV_ID("ee120000.sd", &mstp_clks[MSTP313]), |
| 310 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), | 310 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), |
| 311 | CLKDEV_DEV_ID("ee140000.sdhi", &mstp_clks[MSTP312]), | 311 | CLKDEV_DEV_ID("ee140000.sd", &mstp_clks[MSTP312]), |
| 312 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), | 312 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), |
| 313 | CLKDEV_DEV_ID("ee160000.sdhi", &mstp_clks[MSTP311]), | 313 | CLKDEV_DEV_ID("ee160000.sd", &mstp_clks[MSTP311]), |
| 314 | CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP311]), | 314 | CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP311]), |
| 315 | CLKDEV_DEV_ID("ee220000.mmcif", &mstp_clks[MSTP305]), | 315 | CLKDEV_DEV_ID("ee220000.mmc", &mstp_clks[MSTP305]), |
| 316 | CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), | 316 | CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), |
| 317 | CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), | 317 | CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), |
| 318 | CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]), | 318 | CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]), |
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c index 87e349ddba7c..23edf8360c27 100644 --- a/arch/arm/mach-shmobile/clock-sh73a0.c +++ b/arch/arm/mach-shmobile/clock-sh73a0.c | |||
| @@ -658,13 +658,13 @@ static struct clk_lookup lookups[] = { | |||
| 658 | CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ | 658 | CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ |
| 659 | CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP322]), /* USB */ | 659 | CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP322]), /* USB */ |
| 660 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), /* SDHI0 */ | 660 | CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), /* SDHI0 */ |
| 661 | CLKDEV_DEV_ID("ee100000.sdhi", &mstp_clks[MSTP314]), /* SDHI0 */ | 661 | CLKDEV_DEV_ID("ee100000.sd", &mstp_clks[MSTP314]), /* SDHI0 */ |
| 662 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), /* SDHI1 */ | 662 | CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP313]), /* SDHI1 */ |
| 663 | CLKDEV_DEV_ID("ee120000.sdhi", &mstp_clks[MSTP313]), /* SDHI1 */ | 663 | CLKDEV_DEV_ID("ee120000.sd", &mstp_clks[MSTP313]), /* SDHI1 */ |
| 664 | CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */ | 664 | CLKDEV_DEV_ID("sh_mmcif.0", &mstp_clks[MSTP312]), /* MMCIF0 */ |
| 665 | CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), /* MMCIF0 */ | 665 | CLKDEV_DEV_ID("e6bd0000.mmc", &mstp_clks[MSTP312]), /* MMCIF0 */ |
| 666 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]), /* SDHI2 */ | 666 | CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]), /* SDHI2 */ |
| 667 | CLKDEV_DEV_ID("ee140000.sdhi", &mstp_clks[MSTP311]), /* SDHI2 */ | 667 | CLKDEV_DEV_ID("ee140000.sd", &mstp_clks[MSTP311]), /* SDHI2 */ |
| 668 | CLKDEV_DEV_ID("renesas-tpu-pwm.0", &mstp_clks[MSTP304]), /* TPU0 */ | 668 | CLKDEV_DEV_ID("renesas-tpu-pwm.0", &mstp_clks[MSTP304]), /* TPU0 */ |
| 669 | CLKDEV_DEV_ID("renesas-tpu-pwm.1", &mstp_clks[MSTP303]), /* TPU1 */ | 669 | CLKDEV_DEV_ID("renesas-tpu-pwm.1", &mstp_clks[MSTP303]), /* TPU1 */ |
| 670 | CLKDEV_DEV_ID("renesas-tpu-pwm.2", &mstp_clks[MSTP302]), /* TPU2 */ | 670 | CLKDEV_DEV_ID("renesas-tpu-pwm.2", &mstp_clks[MSTP302]), /* TPU2 */ |
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index 616b96e86ad4..d05ba759da30 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile | |||
| @@ -2,10 +2,10 @@ | |||
| 2 | # Makefile for the linux kernel, U8500 machine. | 2 | # Makefile for the linux kernel, U8500 machine. |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | obj-y := cpu.o devices.o id.o timer.o pm.o | 5 | obj-y := cpu.o id.o timer.o pm.o |
| 6 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | 6 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o |
| 7 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o | 7 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o |
| 8 | obj-$(CONFIG_MACH_MOP500) += board-mop500.o board-mop500-sdi.o \ | 8 | obj-$(CONFIG_MACH_MOP500) += board-mop500-sdi.o \ |
| 9 | board-mop500-regulators.o \ | 9 | board-mop500-regulators.o \ |
| 10 | board-mop500-pins.o \ | 10 | board-mop500-pins.o \ |
| 11 | board-mop500-audio.o | 11 | board-mop500-audio.o |
diff --git a/arch/arm/mach-ux500/board-mop500-audio.c b/arch/arm/mach-ux500/board-mop500-audio.c index 43d6cb8c381d..9309ad4cbd09 100644 --- a/arch/arm/mach-ux500/board-mop500-audio.c +++ b/arch/arm/mach-ux500/board-mop500-audio.c | |||
| @@ -7,16 +7,13 @@ | |||
| 7 | #include <linux/platform_device.h> | 7 | #include <linux/platform_device.h> |
| 8 | #include <linux/init.h> | 8 | #include <linux/init.h> |
| 9 | #include <linux/gpio.h> | 9 | #include <linux/gpio.h> |
| 10 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 11 | #include <linux/platform_data/dma-ste-dma40.h> | 10 | #include <linux/platform_data/dma-ste-dma40.h> |
| 12 | 11 | ||
| 13 | #include "devices.h" | ||
| 14 | #include "irqs.h" | 12 | #include "irqs.h" |
| 15 | #include <linux/platform_data/asoc-ux500-msp.h> | 13 | #include <linux/platform_data/asoc-ux500-msp.h> |
| 16 | 14 | ||
| 17 | #include "ste-dma40-db8500.h" | 15 | #include "ste-dma40-db8500.h" |
| 18 | #include "board-mop500.h" | 16 | #include "board-mop500.h" |
| 19 | #include "devices-db8500.h" | ||
| 20 | 17 | ||
| 21 | static struct stedma40_chan_cfg msp0_dma_rx = { | 18 | static struct stedma40_chan_cfg msp0_dma_rx = { |
| 22 | .high_priority = true, | 19 | .high_priority = true, |
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c index 0efb1560fc35..f63619b69113 100644 --- a/arch/arm/mach-ux500/board-mop500-pins.c +++ b/arch/arm/mach-ux500/board-mop500-pins.c | |||
| @@ -10,94 +10,18 @@ | |||
| 10 | #include <linux/string.h> | 10 | #include <linux/string.h> |
| 11 | #include <linux/pinctrl/machine.h> | 11 | #include <linux/pinctrl/machine.h> |
| 12 | #include <linux/pinctrl/pinconf-generic.h> | 12 | #include <linux/pinctrl/pinconf-generic.h> |
| 13 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 14 | 13 | ||
| 15 | #include <asm/mach-types.h> | 14 | #include <asm/mach-types.h> |
| 16 | 15 | ||
| 17 | #include "board-mop500.h" | 16 | #include "board-mop500.h" |
| 18 | 17 | ||
| 19 | enum custom_pin_cfg_t { | ||
| 20 | PINS_FOR_DEFAULT, | ||
| 21 | PINS_FOR_U9500, | ||
| 22 | }; | ||
| 23 | |||
| 24 | static enum custom_pin_cfg_t pinsfor; | ||
| 25 | |||
| 26 | /* These simply sets bias for pins */ | 18 | /* These simply sets bias for pins */ |
| 27 | #define BIAS(a,b) static unsigned long a[] = { b } | 19 | #define BIAS(a,b) static unsigned long a[] = { b } |
| 28 | 20 | ||
| 29 | BIAS(pd, PIN_PULL_DOWN); | ||
| 30 | BIAS(in_nopull, PIN_INPUT_NOPULL); | ||
| 31 | BIAS(in_nopull_slpm_nowkup, PIN_INPUT_NOPULL|PIN_SLPM_WAKEUP_DISABLE); | ||
| 32 | BIAS(in_pu, PIN_INPUT_PULLUP); | ||
| 33 | BIAS(in_pd, PIN_INPUT_PULLDOWN); | ||
| 34 | BIAS(out_hi, PIN_OUTPUT_HIGH); | ||
| 35 | BIAS(out_lo, PIN_OUTPUT_LOW); | ||
| 36 | BIAS(out_lo_slpm_nowkup, PIN_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE); | ||
| 37 | |||
| 38 | BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); | 21 | BIAS(abx500_out_lo, PIN_CONF_PACKED(PIN_CONFIG_OUTPUT, 0)); |
| 39 | BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1)); | 22 | BIAS(abx500_in_pd, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 1)); |
| 40 | BIAS(abx500_in_nopull, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 0)); | 23 | BIAS(abx500_in_nopull, PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 0)); |
| 41 | 24 | ||
| 42 | /* These also force them into GPIO mode */ | ||
| 43 | BIAS(gpio_in_pu, PIN_INPUT_PULLUP|PIN_GPIOMODE_ENABLED); | ||
| 44 | BIAS(gpio_in_pd, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED); | ||
| 45 | BIAS(gpio_in_pu_slpm_gpio_nopull, PIN_INPUT_PULLUP|PIN_GPIOMODE_ENABLED|PIN_SLPM_GPIO|PIN_SLPM_INPUT_NOPULL); | ||
| 46 | BIAS(gpio_in_pd_slpm_gpio_nopull, PIN_INPUT_PULLDOWN|PIN_GPIOMODE_ENABLED|PIN_SLPM_GPIO|PIN_SLPM_INPUT_NOPULL); | ||
| 47 | BIAS(gpio_out_hi, PIN_OUTPUT_HIGH|PIN_GPIOMODE_ENABLED); | ||
| 48 | BIAS(gpio_out_lo, PIN_OUTPUT_LOW|PIN_GPIOMODE_ENABLED); | ||
| 49 | /* Sleep modes */ | ||
| 50 | BIAS(slpm_in_wkup_pdis, PIN_SLEEPMODE_ENABLED| | ||
| 51 | PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 52 | BIAS(slpm_in_wkup_pdis_en, PIN_SLEEPMODE_ENABLED| | ||
| 53 | PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED); | ||
| 54 | BIAS(slpm_wkup_pdis, PIN_SLEEPMODE_ENABLED| | ||
| 55 | PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 56 | BIAS(slpm_wkup_pdis_en, PIN_SLEEPMODE_ENABLED| | ||
| 57 | PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED); | ||
| 58 | BIAS(slpm_out_lo_pdis, PIN_SLEEPMODE_ENABLED| | ||
| 59 | PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_DISABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 60 | BIAS(slpm_out_lo_wkup_pdis, PIN_SLEEPMODE_ENABLED| | ||
| 61 | PIN_SLPM_OUTPUT_LOW|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 62 | BIAS(slpm_out_hi_wkup_pdis, PIN_SLEEPMODE_ENABLED|PIN_SLPM_OUTPUT_HIGH| | ||
| 63 | PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 64 | BIAS(slpm_in_nopull_wkup_pdis, PIN_SLEEPMODE_ENABLED| | ||
| 65 | PIN_SLPM_INPUT_NOPULL|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 66 | BIAS(slpm_in_pu_wkup_pdis_en, PIN_SLEEPMODE_ENABLED|PIN_SLPM_INPUT_PULLUP| | ||
| 67 | PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_ENABLED); | ||
| 68 | BIAS(slpm_out_wkup_pdis, PIN_SLEEPMODE_ENABLED| | ||
| 69 | PIN_SLPM_DIR_OUTPUT|PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 70 | BIAS(out_lo_wkup_pdis, PIN_SLPM_OUTPUT_LOW| | ||
| 71 | PIN_SLPM_WAKEUP_ENABLE|PIN_SLPM_PDIS_DISABLED); | ||
| 72 | BIAS(in_wkup_pdis_en, PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE| | ||
| 73 | PIN_SLPM_PDIS_ENABLED); | ||
| 74 | BIAS(in_wkup_pdis, PIN_SLPM_DIR_INPUT|PIN_SLPM_WAKEUP_ENABLE| | ||
| 75 | PIN_SLPM_PDIS_DISABLED); | ||
| 76 | BIAS(out_wkup_pdis, PIN_SLPM_DIR_OUTPUT|PIN_SLPM_WAKEUP_ENABLE| | ||
| 77 | PIN_SLPM_PDIS_DISABLED); | ||
| 78 | |||
| 79 | /* We use these to define hog settings that are always done on boot */ | ||
| 80 | #define DB8500_MUX_HOG(group,func) \ | ||
| 81 | PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-db8500", group, func) | ||
| 82 | #define DB8500_PIN_HOG(pin,conf) \ | ||
| 83 | PIN_MAP_CONFIGS_PIN_HOG_DEFAULT("pinctrl-db8500", pin, conf) | ||
| 84 | |||
| 85 | /* These are default states associated with device and changed runtime */ | ||
| 86 | #define DB8500_MUX(group,func,dev) \ | ||
| 87 | PIN_MAP_MUX_GROUP_DEFAULT(dev, "pinctrl-db8500", group, func) | ||
| 88 | #define DB8500_PIN(pin,conf,dev) \ | ||
| 89 | PIN_MAP_CONFIGS_PIN_DEFAULT(dev, "pinctrl-db8500", pin, conf) | ||
| 90 | #define DB8500_PIN_IDLE(pin, conf, dev) \ | ||
| 91 | PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_IDLE, "pinctrl-db8500", \ | ||
| 92 | pin, conf) | ||
| 93 | #define DB8500_PIN_SLEEP(pin, conf, dev) \ | ||
| 94 | PIN_MAP_CONFIGS_PIN(dev, PINCTRL_STATE_SLEEP, "pinctrl-db8500", \ | ||
| 95 | pin, conf) | ||
| 96 | #define DB8500_MUX_STATE(group, func, dev, state) \ | ||
| 97 | PIN_MAP_MUX_GROUP(dev, state, "pinctrl-db8500", group, func) | ||
| 98 | #define DB8500_PIN_STATE(pin, conf, dev, state) \ | ||
| 99 | PIN_MAP_CONFIGS_PIN(dev, state, "pinctrl-db8500", pin, conf) | ||
| 100 | |||
| 101 | #define AB8500_MUX_HOG(group, func) \ | 25 | #define AB8500_MUX_HOG(group, func) \ |
| 102 | PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-ab8500.0", group, func) | 26 | PIN_MAP_MUX_GROUP_HOG_DEFAULT("pinctrl-ab8500.0", group, func) |
| 103 | #define AB8500_PIN_HOG(pin, conf) \ | 27 | #define AB8500_PIN_HOG(pin, conf) \ |
| @@ -344,725 +268,8 @@ static struct pinctrl_map __initdata ab8505_pinmap[] = { | |||
| 344 | AB8505_PIN_HOG("GPIO53_D15", in_pd), | 268 | AB8505_PIN_HOG("GPIO53_D15", in_pd), |
| 345 | }; | 269 | }; |
| 346 | 270 | ||
| 347 | /* Pin control settings */ | ||
| 348 | static struct pinctrl_map __initdata mop500_family_pinmap[] = { | ||
| 349 | /* | ||
| 350 | * uMSP0, mux in 4 pins, regular placement of RX/TX | ||
| 351 | * explicitly set the pins to no pull | ||
| 352 | */ | ||
| 353 | DB8500_MUX_HOG("msp0txrx_a_1", "msp0"), | ||
| 354 | DB8500_MUX_HOG("msp0tfstck_a_1", "msp0"), | ||
| 355 | DB8500_PIN_HOG("GPIO12_AC4", in_nopull), /* TXD */ | ||
| 356 | DB8500_PIN_HOG("GPIO15_AC3", in_nopull), /* RXD */ | ||
| 357 | DB8500_PIN_HOG("GPIO13_AF3", in_nopull), /* TFS */ | ||
| 358 | DB8500_PIN_HOG("GPIO14_AE3", in_nopull), /* TCK */ | ||
| 359 | /* MSP2 for HDMI, pull down TXD, TCK, TFS */ | ||
| 360 | DB8500_MUX_HOG("msp2_a_1", "msp2"), | ||
| 361 | DB8500_PIN_HOG("GPIO193_AH27", in_pd), /* TXD */ | ||
| 362 | DB8500_PIN_HOG("GPIO194_AF27", in_pd), /* TCK */ | ||
| 363 | DB8500_PIN_HOG("GPIO195_AG28", in_pd), /* TFS */ | ||
| 364 | DB8500_PIN_HOG("GPIO196_AG26", out_lo), /* RXD */ | ||
| 365 | /* | ||
| 366 | * LCD, set TE0 (using LCD VSI0) and D14 (touch screen interrupt) to | ||
| 367 | * pull-up | ||
| 368 | * TODO: is this really correct? Snowball doesn't have a LCD. | ||
| 369 | */ | ||
| 370 | DB8500_MUX_HOG("lcdvsi0_a_1", "lcd"), | ||
| 371 | DB8500_PIN_HOG("GPIO68_E1", in_pu), | ||
| 372 | DB8500_PIN_HOG("GPIO84_C2", gpio_in_pu), | ||
| 373 | /* | ||
| 374 | * STMPE1601/tc35893 keypad IRQ GPIO 218 | ||
| 375 | * TODO: set for snowball and HREF really?? | ||
| 376 | */ | ||
| 377 | DB8500_PIN_HOG("GPIO218_AH11", gpio_in_pu), | ||
| 378 | /* | ||
| 379 | * UART0, we do not mux in u0 here. | ||
| 380 | * uart-0 pins gpio configuration should be kept intact to prevent | ||
| 381 | * a glitch in tx line when the tty dev is opened. Later these pins | ||
| 382 | * are configured by uart driver | ||
| 383 | */ | ||
| 384 | DB8500_PIN_HOG("GPIO0_AJ5", in_pu), /* CTS */ | ||
| 385 | DB8500_PIN_HOG("GPIO1_AJ3", out_hi), /* RTS */ | ||
| 386 | DB8500_PIN_HOG("GPIO2_AH4", in_pu), /* RXD */ | ||
| 387 | DB8500_PIN_HOG("GPIO3_AH3", out_hi), /* TXD */ | ||
| 388 | /* | ||
| 389 | * Mux in UART2 on altfunction C and set pull-ups. | ||
| 390 | * TODO: is this used on U8500 variants and Snowball really? | ||
| 391 | * The setting on GPIO31 conflicts with magnetometer use on hrefv60 | ||
| 392 | */ | ||
| 393 | /* default state for UART2 */ | ||
| 394 | DB8500_MUX("u2rxtx_c_1", "u2", "uart2"), | ||
| 395 | DB8500_PIN("GPIO29_W2", in_pu, "uart2"), /* RXD */ | ||
| 396 | DB8500_PIN("GPIO30_W3", out_hi, "uart2"), /* TXD */ | ||
| 397 | /* Sleep state for UART2 */ | ||
| 398 | DB8500_PIN_SLEEP("GPIO29_W2", in_wkup_pdis, "uart2"), | ||
| 399 | DB8500_PIN_SLEEP("GPIO30_W3", out_wkup_pdis, "uart2"), | ||
| 400 | /* | ||
| 401 | * The following pin sets were known as "runtime pins" before being | ||
| 402 | * converted to the pinctrl model. Here we model them as "default" | ||
| 403 | * states. | ||
| 404 | */ | ||
| 405 | /* Mux in UART0 after initialization */ | ||
| 406 | DB8500_MUX("u0_a_1", "u0", "uart0"), | ||
| 407 | DB8500_PIN("GPIO0_AJ5", in_pu, "uart0"), /* CTS */ | ||
| 408 | DB8500_PIN("GPIO1_AJ3", out_hi, "uart0"), /* RTS */ | ||
| 409 | DB8500_PIN("GPIO2_AH4", in_pu, "uart0"), /* RXD */ | ||
| 410 | DB8500_PIN("GPIO3_AH3", out_hi, "uart0"), /* TXD */ | ||
| 411 | /* Sleep state for UART0 */ | ||
| 412 | DB8500_PIN_SLEEP("GPIO0_AJ5", slpm_in_wkup_pdis, "uart0"), | ||
| 413 | DB8500_PIN_SLEEP("GPIO1_AJ3", slpm_out_hi_wkup_pdis, "uart0"), | ||
| 414 | DB8500_PIN_SLEEP("GPIO2_AH4", slpm_in_wkup_pdis, "uart0"), | ||
| 415 | DB8500_PIN_SLEEP("GPIO3_AH3", slpm_out_wkup_pdis, "uart0"), | ||
| 416 | /* Mux in UART1 after initialization */ | ||
| 417 | DB8500_MUX("u1rxtx_a_1", "u1", "uart1"), | ||
| 418 | DB8500_PIN("GPIO4_AH6", in_pu, "uart1"), /* RXD */ | ||
| 419 | DB8500_PIN("GPIO5_AG6", out_hi, "uart1"), /* TXD */ | ||
| 420 | /* Sleep state for UART1 */ | ||
| 421 | DB8500_PIN_SLEEP("GPIO4_AH6", slpm_in_wkup_pdis, "uart1"), | ||
| 422 | DB8500_PIN_SLEEP("GPIO5_AG6", slpm_out_wkup_pdis, "uart1"), | ||
| 423 | /* MSP1 for ALSA codec */ | ||
| 424 | DB8500_MUX_HOG("msp1txrx_a_1", "msp1"), | ||
| 425 | DB8500_MUX_HOG("msp1_a_1", "msp1"), | ||
| 426 | DB8500_PIN_HOG("GPIO33_AF2", out_lo_slpm_nowkup), | ||
| 427 | DB8500_PIN_HOG("GPIO34_AE1", in_nopull_slpm_nowkup), | ||
| 428 | DB8500_PIN_HOG("GPIO35_AE2", in_nopull_slpm_nowkup), | ||
| 429 | DB8500_PIN_HOG("GPIO36_AG2", in_nopull_slpm_nowkup), | ||
| 430 | /* Mux in LCD data lines 8 thru 11 and LCDA CLK for MCDE TVOUT */ | ||
| 431 | DB8500_MUX("lcd_d8_d11_a_1", "lcd", "mcde-tvout"), | ||
| 432 | DB8500_MUX("lcdaclk_b_1", "lcda", "mcde-tvout"), | ||
| 433 | /* Mux in LCD VSI1 and pull it up for MCDE HDMI output */ | ||
| 434 | DB8500_MUX("lcdvsi1_a_1", "lcd", "0-0070"), | ||
| 435 | DB8500_PIN("GPIO69_E2", in_pu, "0-0070"), | ||
| 436 | /* LCD VSI1 sleep state */ | ||
| 437 | DB8500_PIN_SLEEP("GPIO69_E2", slpm_in_wkup_pdis, "0-0070"), | ||
| 438 | /* Mux in i2c0 block, default state */ | ||
| 439 | DB8500_MUX("i2c0_a_1", "i2c0", "nmk-i2c.0"), | ||
| 440 | /* i2c0 sleep state */ | ||
| 441 | DB8500_PIN_SLEEP("GPIO147_C15", slpm_in_nopull_wkup_pdis, "nmk-i2c.0"), /* SDA */ | ||
| 442 | DB8500_PIN_SLEEP("GPIO148_B16", slpm_in_nopull_wkup_pdis, "nmk-i2c.0"), /* SCL */ | ||
| 443 | /* Mux in i2c1 block, default state */ | ||
| 444 | DB8500_MUX("i2c1_b_2", "i2c1", "nmk-i2c.1"), | ||
| 445 | /* i2c1 sleep state */ | ||
| 446 | DB8500_PIN_SLEEP("GPIO16_AD3", slpm_in_nopull_wkup_pdis, "nmk-i2c.1"), /* SDA */ | ||
| 447 | DB8500_PIN_SLEEP("GPIO17_AD4", slpm_in_nopull_wkup_pdis, "nmk-i2c.1"), /* SCL */ | ||
| 448 | /* Mux in i2c2 block, default state */ | ||
| 449 | DB8500_MUX("i2c2_b_2", "i2c2", "nmk-i2c.2"), | ||
| 450 | /* i2c2 sleep state */ | ||
| 451 | DB8500_PIN_SLEEP("GPIO10_AF5", slpm_in_nopull_wkup_pdis, "nmk-i2c.2"), /* SDA */ | ||
| 452 | DB8500_PIN_SLEEP("GPIO11_AG4", slpm_in_nopull_wkup_pdis, "nmk-i2c.2"), /* SCL */ | ||
| 453 | /* Mux in i2c3 block, default state */ | ||
| 454 | DB8500_MUX("i2c3_c_2", "i2c3", "nmk-i2c.3"), | ||
| 455 | /* i2c3 sleep state */ | ||
| 456 | DB8500_PIN_SLEEP("GPIO229_AG7", slpm_in_nopull_wkup_pdis, "nmk-i2c.3"), /* SDA */ | ||
| 457 | DB8500_PIN_SLEEP("GPIO230_AF7", slpm_in_nopull_wkup_pdis, "nmk-i2c.3"), /* SCL */ | ||
| 458 | /* Mux in SDI0 (here called MC0) used for removable MMC/SD/SDIO cards */ | ||
| 459 | DB8500_MUX("mc0_a_1", "mc0", "sdi0"), | ||
| 460 | DB8500_PIN("GPIO18_AC2", out_hi, "sdi0"), /* CMDDIR */ | ||
| 461 | DB8500_PIN("GPIO19_AC1", out_hi, "sdi0"), /* DAT0DIR */ | ||
| 462 | DB8500_PIN("GPIO20_AB4", out_hi, "sdi0"), /* DAT2DIR */ | ||
| 463 | DB8500_PIN("GPIO22_AA3", in_nopull, "sdi0"), /* FBCLK */ | ||
| 464 | DB8500_PIN("GPIO23_AA4", out_lo, "sdi0"), /* CLK */ | ||
| 465 | DB8500_PIN("GPIO24_AB2", in_pu, "sdi0"), /* CMD */ | ||
| 466 | DB8500_PIN("GPIO25_Y4", in_pu, "sdi0"), /* DAT0 */ | ||
| 467 | DB8500_PIN("GPIO26_Y2", in_pu, "sdi0"), /* DAT1 */ | ||
| 468 | DB8500_PIN("GPIO27_AA2", in_pu, "sdi0"), /* DAT2 */ | ||
| 469 | DB8500_PIN("GPIO28_AA1", in_pu, "sdi0"), /* DAT3 */ | ||
| 470 | /* SDI0 sleep state */ | ||
| 471 | DB8500_PIN_SLEEP("GPIO18_AC2", slpm_out_hi_wkup_pdis, "sdi0"), | ||
| 472 | DB8500_PIN_SLEEP("GPIO19_AC1", slpm_out_hi_wkup_pdis, "sdi0"), | ||
| 473 | DB8500_PIN_SLEEP("GPIO20_AB4", slpm_out_hi_wkup_pdis, "sdi0"), | ||
| 474 | DB8500_PIN_SLEEP("GPIO22_AA3", slpm_in_wkup_pdis, "sdi0"), | ||
| 475 | DB8500_PIN_SLEEP("GPIO23_AA4", slpm_out_lo_wkup_pdis, "sdi0"), | ||
| 476 | DB8500_PIN_SLEEP("GPIO24_AB2", slpm_in_wkup_pdis, "sdi0"), | ||
| 477 | DB8500_PIN_SLEEP("GPIO25_Y4", slpm_in_wkup_pdis, "sdi0"), | ||
| 478 | DB8500_PIN_SLEEP("GPIO26_Y2", slpm_in_wkup_pdis, "sdi0"), | ||
| 479 | DB8500_PIN_SLEEP("GPIO27_AA2", slpm_in_wkup_pdis, "sdi0"), | ||
| 480 | DB8500_PIN_SLEEP("GPIO28_AA1", slpm_in_wkup_pdis, "sdi0"), | ||
| 481 | |||
| 482 | /* Mux in SDI1 (here called MC1) used for SDIO for CW1200 WLAN */ | ||
| 483 | DB8500_MUX("mc1_a_1", "mc1", "sdi1"), | ||
| 484 | DB8500_PIN("GPIO208_AH16", out_lo, "sdi1"), /* CLK */ | ||
| 485 | DB8500_PIN("GPIO209_AG15", in_nopull, "sdi1"), /* FBCLK */ | ||
| 486 | DB8500_PIN("GPIO210_AJ15", in_pu, "sdi1"), /* CMD */ | ||
| 487 | DB8500_PIN("GPIO211_AG14", in_pu, "sdi1"), /* DAT0 */ | ||
| 488 | DB8500_PIN("GPIO212_AF13", in_pu, "sdi1"), /* DAT1 */ | ||
| 489 | DB8500_PIN("GPIO213_AG13", in_pu, "sdi1"), /* DAT2 */ | ||
| 490 | DB8500_PIN("GPIO214_AH15", in_pu, "sdi1"), /* DAT3 */ | ||
| 491 | /* SDI1 sleep state */ | ||
| 492 | DB8500_PIN_SLEEP("GPIO208_AH16", slpm_out_lo_wkup_pdis, "sdi1"), /* CLK */ | ||
| 493 | DB8500_PIN_SLEEP("GPIO209_AG15", slpm_in_wkup_pdis, "sdi1"), /* FBCLK */ | ||
| 494 | DB8500_PIN_SLEEP("GPIO210_AJ15", slpm_in_wkup_pdis, "sdi1"), /* CMD */ | ||
| 495 | DB8500_PIN_SLEEP("GPIO211_AG14", slpm_in_wkup_pdis, "sdi1"), /* DAT0 */ | ||
| 496 | DB8500_PIN_SLEEP("GPIO212_AF13", slpm_in_wkup_pdis, "sdi1"), /* DAT1 */ | ||
| 497 | DB8500_PIN_SLEEP("GPIO213_AG13", slpm_in_wkup_pdis, "sdi1"), /* DAT2 */ | ||
| 498 | DB8500_PIN_SLEEP("GPIO214_AH15", slpm_in_wkup_pdis, "sdi1"), /* DAT3 */ | ||
| 499 | |||
| 500 | /* Mux in SDI2 (here called MC2) used for for PoP eMMC */ | ||
| 501 | DB8500_MUX("mc2_a_1", "mc2", "sdi2"), | ||
| 502 | DB8500_PIN("GPIO128_A5", out_lo, "sdi2"), /* CLK */ | ||
| 503 | DB8500_PIN("GPIO129_B4", in_pu, "sdi2"), /* CMD */ | ||
| 504 | DB8500_PIN("GPIO130_C8", in_nopull, "sdi2"), /* FBCLK */ | ||
| 505 | DB8500_PIN("GPIO131_A12", in_pu, "sdi2"), /* DAT0 */ | ||
| 506 | DB8500_PIN("GPIO132_C10", in_pu, "sdi2"), /* DAT1 */ | ||
| 507 | DB8500_PIN("GPIO133_B10", in_pu, "sdi2"), /* DAT2 */ | ||
| 508 | DB8500_PIN("GPIO134_B9", in_pu, "sdi2"), /* DAT3 */ | ||
| 509 | DB8500_PIN("GPIO135_A9", in_pu, "sdi2"), /* DAT4 */ | ||
| 510 | DB8500_PIN("GPIO136_C7", in_pu, "sdi2"), /* DAT5 */ | ||
| 511 | DB8500_PIN("GPIO137_A7", in_pu, "sdi2"), /* DAT6 */ | ||
| 512 | DB8500_PIN("GPIO138_C5", in_pu, "sdi2"), /* DAT7 */ | ||
| 513 | /* SDI2 sleep state */ | ||
| 514 | DB8500_PIN_SLEEP("GPIO128_A5", out_lo_wkup_pdis, "sdi2"), /* CLK */ | ||
| 515 | DB8500_PIN_SLEEP("GPIO129_B4", in_wkup_pdis_en, "sdi2"), /* CMD */ | ||
| 516 | DB8500_PIN_SLEEP("GPIO130_C8", in_wkup_pdis_en, "sdi2"), /* FBCLK */ | ||
| 517 | DB8500_PIN_SLEEP("GPIO131_A12", in_wkup_pdis, "sdi2"), /* DAT0 */ | ||
| 518 | DB8500_PIN_SLEEP("GPIO132_C10", in_wkup_pdis, "sdi2"), /* DAT1 */ | ||
| 519 | DB8500_PIN_SLEEP("GPIO133_B10", in_wkup_pdis, "sdi2"), /* DAT2 */ | ||
| 520 | DB8500_PIN_SLEEP("GPIO134_B9", in_wkup_pdis, "sdi2"), /* DAT3 */ | ||
| 521 | DB8500_PIN_SLEEP("GPIO135_A9", in_wkup_pdis, "sdi2"), /* DAT4 */ | ||
| 522 | DB8500_PIN_SLEEP("GPIO136_C7", in_wkup_pdis, "sdi2"), /* DAT5 */ | ||
| 523 | DB8500_PIN_SLEEP("GPIO137_A7", in_wkup_pdis, "sdi2"), /* DAT6 */ | ||
| 524 | DB8500_PIN_SLEEP("GPIO138_C5", in_wkup_pdis, "sdi2"), /* DAT7 */ | ||
| 525 | |||
| 526 | /* Mux in SDI4 (here called MC4) used for for PCB-mounted eMMC */ | ||
| 527 | DB8500_MUX("mc4_a_1", "mc4", "sdi4"), | ||
| 528 | DB8500_PIN("GPIO197_AH24", in_pu, "sdi4"), /* DAT3 */ | ||
| 529 | DB8500_PIN("GPIO198_AG25", in_pu, "sdi4"), /* DAT2 */ | ||
| 530 | DB8500_PIN("GPIO199_AH23", in_pu, "sdi4"), /* DAT1 */ | ||
| 531 | DB8500_PIN("GPIO200_AH26", in_pu, "sdi4"), /* DAT0 */ | ||
| 532 | DB8500_PIN("GPIO201_AF24", in_pu, "sdi4"), /* CMD */ | ||
| 533 | DB8500_PIN("GPIO202_AF25", in_nopull, "sdi4"), /* FBCLK */ | ||
| 534 | DB8500_PIN("GPIO203_AE23", out_lo, "sdi4"), /* CLK */ | ||
| 535 | DB8500_PIN("GPIO204_AF23", in_pu, "sdi4"), /* DAT7 */ | ||
| 536 | DB8500_PIN("GPIO205_AG23", in_pu, "sdi4"), /* DAT6 */ | ||
| 537 | DB8500_PIN("GPIO206_AG24", in_pu, "sdi4"), /* DAT5 */ | ||
| 538 | DB8500_PIN("GPIO207_AJ23", in_pu, "sdi4"), /* DAT4 */ | ||
| 539 | /*SDI4 sleep state */ | ||
| 540 | DB8500_PIN_SLEEP("GPIO197_AH24", slpm_in_wkup_pdis, "sdi4"), /* DAT3 */ | ||
| 541 | DB8500_PIN_SLEEP("GPIO198_AG25", slpm_in_wkup_pdis, "sdi4"), /* DAT2 */ | ||
| 542 | DB8500_PIN_SLEEP("GPIO199_AH23", slpm_in_wkup_pdis, "sdi4"), /* DAT1 */ | ||
| 543 | DB8500_PIN_SLEEP("GPIO200_AH26", slpm_in_wkup_pdis, "sdi4"), /* DAT0 */ | ||
| 544 | DB8500_PIN_SLEEP("GPIO201_AF24", slpm_in_wkup_pdis, "sdi4"), /* CMD */ | ||
| 545 | DB8500_PIN_SLEEP("GPIO202_AF25", slpm_in_wkup_pdis, "sdi4"), /* FBCLK */ | ||
| 546 | DB8500_PIN_SLEEP("GPIO203_AE23", slpm_out_lo_wkup_pdis, "sdi4"), /* CLK */ | ||
| 547 | DB8500_PIN_SLEEP("GPIO204_AF23", slpm_in_wkup_pdis, "sdi4"), /* DAT7 */ | ||
| 548 | DB8500_PIN_SLEEP("GPIO205_AG23", slpm_in_wkup_pdis, "sdi4"), /* DAT6 */ | ||
| 549 | DB8500_PIN_SLEEP("GPIO206_AG24", slpm_in_wkup_pdis, "sdi4"), /* DAT5 */ | ||
| 550 | DB8500_PIN_SLEEP("GPIO207_AJ23", slpm_in_wkup_pdis, "sdi4"), /* DAT4 */ | ||
| 551 | |||
| 552 | /* Mux in USB pins, drive STP high */ | ||
| 553 | /* USB default state */ | ||
| 554 | DB8500_MUX("usb_a_1", "usb", "ab8500-usb.0"), | ||
| 555 | DB8500_PIN("GPIO257_AE29", out_hi, "ab8500-usb.0"), /* STP */ | ||
| 556 | /* USB sleep state */ | ||
| 557 | DB8500_PIN_SLEEP("GPIO256_AF28", slpm_wkup_pdis_en, "ab8500-usb.0"), /* NXT */ | ||
| 558 | DB8500_PIN_SLEEP("GPIO257_AE29", slpm_out_hi_wkup_pdis, "ab8500-usb.0"), /* STP */ | ||
| 559 | DB8500_PIN_SLEEP("GPIO258_AD29", slpm_wkup_pdis_en, "ab8500-usb.0"), /* XCLK */ | ||
| 560 | DB8500_PIN_SLEEP("GPIO259_AC29", slpm_wkup_pdis_en, "ab8500-usb.0"), /* DIR */ | ||
| 561 | DB8500_PIN_SLEEP("GPIO260_AD28", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT7 */ | ||
| 562 | DB8500_PIN_SLEEP("GPIO261_AD26", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT6 */ | ||
| 563 | DB8500_PIN_SLEEP("GPIO262_AE26", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT5 */ | ||
| 564 | DB8500_PIN_SLEEP("GPIO263_AG29", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT4 */ | ||
| 565 | DB8500_PIN_SLEEP("GPIO264_AE27", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT3 */ | ||
| 566 | DB8500_PIN_SLEEP("GPIO265_AD27", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT2 */ | ||
| 567 | DB8500_PIN_SLEEP("GPIO266_AC28", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT1 */ | ||
| 568 | DB8500_PIN_SLEEP("GPIO267_AC27", slpm_in_wkup_pdis_en, "ab8500-usb.0"), /* DAT0 */ | ||
| 569 | |||
| 570 | /* Mux in SPI2 pins on the "other C1" altfunction */ | ||
| 571 | DB8500_MUX("spi2_oc1_2", "spi2", "spi2"), | ||
| 572 | DB8500_PIN("GPIO216_AG12", gpio_out_hi, "spi2"), /* FRM */ | ||
| 573 | DB8500_PIN("GPIO218_AH11", in_pd, "spi2"), /* RXD */ | ||
| 574 | DB8500_PIN("GPIO215_AH13", out_lo, "spi2"), /* TXD */ | ||
| 575 | DB8500_PIN("GPIO217_AH12", out_lo, "spi2"), /* CLK */ | ||
| 576 | /* SPI2 idle state */ | ||
| 577 | DB8500_PIN_IDLE("GPIO218_AH11", slpm_in_wkup_pdis, "spi2"), /* RXD */ | ||
| 578 | DB8500_PIN_IDLE("GPIO215_AH13", slpm_out_lo_wkup_pdis, "spi2"), /* TXD */ | ||
| 579 | DB8500_PIN_IDLE("GPIO217_AH12", slpm_wkup_pdis, "spi2"), /* CLK */ | ||
| 580 | /* SPI2 sleep state */ | ||
| 581 | DB8500_PIN_SLEEP("GPIO216_AG12", slpm_in_wkup_pdis, "spi2"), /* FRM */ | ||
| 582 | DB8500_PIN_SLEEP("GPIO218_AH11", slpm_in_wkup_pdis, "spi2"), /* RXD */ | ||
| 583 | DB8500_PIN_SLEEP("GPIO215_AH13", slpm_out_lo_wkup_pdis, "spi2"), /* TXD */ | ||
| 584 | DB8500_PIN_SLEEP("GPIO217_AH12", slpm_wkup_pdis, "spi2"), /* CLK */ | ||
| 585 | |||
| 586 | /* ske default state */ | ||
| 587 | DB8500_MUX("kp_a_2", "kp", "nmk-ske-keypad"), | ||
| 588 | DB8500_PIN("GPIO153_B17", in_pd, "nmk-ske-keypad"), /* I7 */ | ||
| 589 | DB8500_PIN("GPIO154_C16", in_pd, "nmk-ske-keypad"), /* I6 */ | ||
| 590 | DB8500_PIN("GPIO155_C19", in_pd, "nmk-ske-keypad"), /* I5 */ | ||
| 591 | DB8500_PIN("GPIO156_C17", in_pd, "nmk-ske-keypad"), /* I4 */ | ||
| 592 | DB8500_PIN("GPIO161_D21", in_pd, "nmk-ske-keypad"), /* I3 */ | ||
| 593 | DB8500_PIN("GPIO162_D20", in_pd, "nmk-ske-keypad"), /* I2 */ | ||
| 594 | DB8500_PIN("GPIO163_C20", in_pd, "nmk-ske-keypad"), /* I1 */ | ||
| 595 | DB8500_PIN("GPIO164_B21", in_pd, "nmk-ske-keypad"), /* I0 */ | ||
| 596 | DB8500_PIN("GPIO157_A18", out_lo, "nmk-ske-keypad"), /* O7 */ | ||
| 597 | DB8500_PIN("GPIO158_C18", out_lo, "nmk-ske-keypad"), /* O6 */ | ||
| 598 | DB8500_PIN("GPIO159_B19", out_lo, "nmk-ske-keypad"), /* O5 */ | ||
| 599 | DB8500_PIN("GPIO160_B20", out_lo, "nmk-ske-keypad"), /* O4 */ | ||
| 600 | DB8500_PIN("GPIO165_C21", out_lo, "nmk-ske-keypad"), /* O3 */ | ||
| 601 | DB8500_PIN("GPIO166_A22", out_lo, "nmk-ske-keypad"), /* O2 */ | ||
| 602 | DB8500_PIN("GPIO167_B24", out_lo, "nmk-ske-keypad"), /* O1 */ | ||
| 603 | DB8500_PIN("GPIO168_C22", out_lo, "nmk-ske-keypad"), /* O0 */ | ||
| 604 | /* ske sleep state */ | ||
| 605 | DB8500_PIN_SLEEP("GPIO153_B17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I7 */ | ||
| 606 | DB8500_PIN_SLEEP("GPIO154_C16", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I6 */ | ||
| 607 | DB8500_PIN_SLEEP("GPIO155_C19", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I5 */ | ||
| 608 | DB8500_PIN_SLEEP("GPIO156_C17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I4 */ | ||
| 609 | DB8500_PIN_SLEEP("GPIO161_D21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I3 */ | ||
| 610 | DB8500_PIN_SLEEP("GPIO162_D20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I2 */ | ||
| 611 | DB8500_PIN_SLEEP("GPIO163_C20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I1 */ | ||
| 612 | DB8500_PIN_SLEEP("GPIO164_B21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I0 */ | ||
| 613 | DB8500_PIN_SLEEP("GPIO157_A18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O7 */ | ||
| 614 | DB8500_PIN_SLEEP("GPIO158_C18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O6 */ | ||
| 615 | DB8500_PIN_SLEEP("GPIO159_B19", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O5 */ | ||
| 616 | DB8500_PIN_SLEEP("GPIO160_B20", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O4 */ | ||
| 617 | DB8500_PIN_SLEEP("GPIO165_C21", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O3 */ | ||
| 618 | DB8500_PIN_SLEEP("GPIO166_A22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O2 */ | ||
| 619 | DB8500_PIN_SLEEP("GPIO167_B24", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O1 */ | ||
| 620 | DB8500_PIN_SLEEP("GPIO168_C22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O0 */ | ||
| 621 | |||
| 622 | /* STM APE pins states */ | ||
| 623 | DB8500_MUX_STATE("stmape_c_1", "stmape", | ||
| 624 | "stm", "ape_mipi34"), | ||
| 625 | DB8500_PIN_STATE("GPIO70_G5", in_nopull, | ||
| 626 | "stm", "ape_mipi34"), /* clk */ | ||
| 627 | DB8500_PIN_STATE("GPIO71_G4", in_nopull, | ||
| 628 | "stm", "ape_mipi34"), /* dat3 */ | ||
| 629 | DB8500_PIN_STATE("GPIO72_H4", in_nopull, | ||
| 630 | "stm", "ape_mipi34"), /* dat2 */ | ||
| 631 | DB8500_PIN_STATE("GPIO73_H3", in_nopull, | ||
| 632 | "stm", "ape_mipi34"), /* dat1 */ | ||
| 633 | DB8500_PIN_STATE("GPIO74_J3", in_nopull, | ||
| 634 | "stm", "ape_mipi34"), /* dat0 */ | ||
| 635 | |||
| 636 | DB8500_PIN_STATE("GPIO70_G5", slpm_out_lo_pdis, | ||
| 637 | "stm", "ape_mipi34_sleep"), /* clk */ | ||
| 638 | DB8500_PIN_STATE("GPIO71_G4", slpm_out_lo_pdis, | ||
| 639 | "stm", "ape_mipi34_sleep"), /* dat3 */ | ||
| 640 | DB8500_PIN_STATE("GPIO72_H4", slpm_out_lo_pdis, | ||
| 641 | "stm", "ape_mipi34_sleep"), /* dat2 */ | ||
| 642 | DB8500_PIN_STATE("GPIO73_H3", slpm_out_lo_pdis, | ||
| 643 | "stm", "ape_mipi34_sleep"), /* dat1 */ | ||
| 644 | DB8500_PIN_STATE("GPIO74_J3", slpm_out_lo_pdis, | ||
| 645 | "stm", "ape_mipi34_sleep"), /* dat0 */ | ||
| 646 | |||
| 647 | DB8500_MUX_STATE("stmape_oc1_1", "stmape", | ||
| 648 | "stm", "ape_microsd"), | ||
| 649 | DB8500_PIN_STATE("GPIO23_AA4", in_nopull, | ||
| 650 | "stm", "ape_microsd"), /* clk */ | ||
| 651 | DB8500_PIN_STATE("GPIO25_Y4", in_nopull, | ||
| 652 | "stm", "ape_microsd"), /* dat0 */ | ||
| 653 | DB8500_PIN_STATE("GPIO26_Y2", in_nopull, | ||
| 654 | "stm", "ape_microsd"), /* dat1 */ | ||
| 655 | DB8500_PIN_STATE("GPIO27_AA2", in_nopull, | ||
| 656 | "stm", "ape_microsd"), /* dat2 */ | ||
| 657 | DB8500_PIN_STATE("GPIO28_AA1", in_nopull, | ||
| 658 | "stm", "ape_microsd"), /* dat3 */ | ||
| 659 | |||
| 660 | DB8500_PIN_STATE("GPIO23_AA4", slpm_out_lo_wkup_pdis, | ||
| 661 | "stm", "ape_microsd_sleep"), /* clk */ | ||
| 662 | DB8500_PIN_STATE("GPIO25_Y4", slpm_in_wkup_pdis, | ||
| 663 | "stm", "ape_microsd_sleep"), /* dat0 */ | ||
| 664 | DB8500_PIN_STATE("GPIO26_Y2", slpm_in_wkup_pdis, | ||
| 665 | "stm", "ape_microsd_sleep"), /* dat1 */ | ||
| 666 | DB8500_PIN_STATE("GPIO27_AA2", slpm_in_wkup_pdis, | ||
| 667 | "stm", "ape_microsd_sleep"), /* dat2 */ | ||
| 668 | DB8500_PIN_STATE("GPIO28_AA1", slpm_in_wkup_pdis, | ||
| 669 | "stm", "ape_microsd_sleep"), /* dat3 */ | ||
| 670 | |||
| 671 | /* STM Modem pins states */ | ||
| 672 | DB8500_MUX_STATE("stmmod_oc3_2", "stmmod", | ||
| 673 | "stm", "mod_mipi34"), | ||
| 674 | DB8500_MUX_STATE("uartmodrx_oc3_1", "uartmod", | ||
| 675 | "stm", "mod_mipi34"), | ||
| 676 | DB8500_MUX_STATE("uartmodtx_oc3_1", "uartmod", | ||
| 677 | "stm", "mod_mipi34"), | ||
| 678 | DB8500_PIN_STATE("GPIO70_G5", in_nopull, | ||
| 679 | "stm", "mod_mipi34"), /* clk */ | ||
| 680 | DB8500_PIN_STATE("GPIO71_G4", in_nopull, | ||
| 681 | "stm", "mod_mipi34"), /* dat3 */ | ||
| 682 | DB8500_PIN_STATE("GPIO72_H4", in_nopull, | ||
| 683 | "stm", "mod_mipi34"), /* dat2 */ | ||
| 684 | DB8500_PIN_STATE("GPIO73_H3", in_nopull, | ||
| 685 | "stm", "mod_mipi34"), /* dat1 */ | ||
| 686 | DB8500_PIN_STATE("GPIO74_J3", in_nopull, | ||
| 687 | "stm", "mod_mipi34"), /* dat0 */ | ||
| 688 | DB8500_PIN_STATE("GPIO75_H2", in_pu, | ||
| 689 | "stm", "mod_mipi34"), /* uartmod rx */ | ||
| 690 | DB8500_PIN_STATE("GPIO76_J2", out_lo, | ||
| 691 | "stm", "mod_mipi34"), /* uartmod tx */ | ||
| 692 | |||
| 693 | DB8500_PIN_STATE("GPIO70_G5", slpm_out_lo_pdis, | ||
| 694 | "stm", "mod_mipi34_sleep"), /* clk */ | ||
| 695 | DB8500_PIN_STATE("GPIO71_G4", slpm_out_lo_pdis, | ||
| 696 | "stm", "mod_mipi34_sleep"), /* dat3 */ | ||
| 697 | DB8500_PIN_STATE("GPIO72_H4", slpm_out_lo_pdis, | ||
| 698 | "stm", "mod_mipi34_sleep"), /* dat2 */ | ||
| 699 | DB8500_PIN_STATE("GPIO73_H3", slpm_out_lo_pdis, | ||
| 700 | "stm", "mod_mipi34_sleep"), /* dat1 */ | ||
| 701 | DB8500_PIN_STATE("GPIO74_J3", slpm_out_lo_pdis, | ||
| 702 | "stm", "mod_mipi34_sleep"), /* dat0 */ | ||
| 703 | DB8500_PIN_STATE("GPIO75_H2", slpm_in_wkup_pdis, | ||
| 704 | "stm", "mod_mipi34_sleep"), /* uartmod rx */ | ||
| 705 | DB8500_PIN_STATE("GPIO76_J2", slpm_out_lo_wkup_pdis, | ||
| 706 | "stm", "mod_mipi34_sleep"), /* uartmod tx */ | ||
| 707 | |||
| 708 | DB8500_MUX_STATE("stmmod_b_1", "stmmod", | ||
| 709 | "stm", "mod_microsd"), | ||
| 710 | DB8500_MUX_STATE("uartmodrx_oc3_1", "uartmod", | ||
| 711 | "stm", "mod_microsd"), | ||
| 712 | DB8500_MUX_STATE("uartmodtx_oc3_1", "uartmod", | ||
| 713 | "stm", "mod_microsd"), | ||
| 714 | DB8500_PIN_STATE("GPIO23_AA4", in_nopull, | ||
| 715 | "stm", "mod_microsd"), /* clk */ | ||
| 716 | DB8500_PIN_STATE("GPIO25_Y4", in_nopull, | ||
| 717 | "stm", "mod_microsd"), /* dat0 */ | ||
| 718 | DB8500_PIN_STATE("GPIO26_Y2", in_nopull, | ||
| 719 | "stm", "mod_microsd"), /* dat1 */ | ||
| 720 | DB8500_PIN_STATE("GPIO27_AA2", in_nopull, | ||
| 721 | "stm", "mod_microsd"), /* dat2 */ | ||
| 722 | DB8500_PIN_STATE("GPIO28_AA1", in_nopull, | ||
| 723 | "stm", "mod_microsd"), /* dat3 */ | ||
| 724 | DB8500_PIN_STATE("GPIO75_H2", in_pu, | ||
| 725 | "stm", "mod_microsd"), /* uartmod rx */ | ||
| 726 | DB8500_PIN_STATE("GPIO76_J2", out_lo, | ||
| 727 | "stm", "mod_microsd"), /* uartmod tx */ | ||
| 728 | |||
| 729 | DB8500_PIN_STATE("GPIO23_AA4", slpm_out_lo_wkup_pdis, | ||
| 730 | "stm", "mod_microsd_sleep"), /* clk */ | ||
| 731 | DB8500_PIN_STATE("GPIO25_Y4", slpm_in_wkup_pdis, | ||
| 732 | "stm", "mod_microsd_sleep"), /* dat0 */ | ||
| 733 | DB8500_PIN_STATE("GPIO26_Y2", slpm_in_wkup_pdis, | ||
| 734 | "stm", "mod_microsd_sleep"), /* dat1 */ | ||
| 735 | DB8500_PIN_STATE("GPIO27_AA2", slpm_in_wkup_pdis, | ||
| 736 | "stm", "mod_microsd_sleep"), /* dat2 */ | ||
| 737 | DB8500_PIN_STATE("GPIO28_AA1", slpm_in_wkup_pdis, | ||
| 738 | "stm", "mod_microsd_sleep"), /* dat3 */ | ||
| 739 | DB8500_PIN_STATE("GPIO75_H2", slpm_in_wkup_pdis, | ||
| 740 | "stm", "mod_microsd_sleep"), /* uartmod rx */ | ||
| 741 | DB8500_PIN_STATE("GPIO76_J2", slpm_out_lo_wkup_pdis, | ||
| 742 | "stm", "mod_microsd_sleep"), /* uartmod tx */ | ||
| 743 | |||
| 744 | /* STM dual Modem/APE pins state */ | ||
| 745 | DB8500_MUX_STATE("stmmod_oc3_2", "stmmod", | ||
| 746 | "stm", "mod_mipi34_ape_mipi60"), | ||
| 747 | DB8500_MUX_STATE("stmape_c_2", "stmape", | ||
| 748 | "stm", "mod_mipi34_ape_mipi60"), | ||
| 749 | DB8500_MUX_STATE("uartmodrx_oc3_1", "uartmod", | ||
| 750 | "stm", "mod_mipi34_ape_mipi60"), | ||
| 751 | DB8500_MUX_STATE("uartmodtx_oc3_1", "uartmod", | ||
| 752 | "stm", "mod_mipi34_ape_mipi60"), | ||
| 753 | DB8500_PIN_STATE("GPIO70_G5", in_nopull, | ||
| 754 | "stm", "mod_mipi34_ape_mipi60"), /* clk */ | ||
| 755 | DB8500_PIN_STATE("GPIO71_G4", in_nopull, | ||
| 756 | "stm", "mod_mipi34_ape_mipi60"), /* dat3 */ | ||
| 757 | DB8500_PIN_STATE("GPIO72_H4", in_nopull, | ||
| 758 | "stm", "mod_mipi34_ape_mipi60"), /* dat2 */ | ||
| 759 | DB8500_PIN_STATE("GPIO73_H3", in_nopull, | ||
| 760 | "stm", "mod_mipi34_ape_mipi60"), /* dat1 */ | ||
| 761 | DB8500_PIN_STATE("GPIO74_J3", in_nopull, | ||
| 762 | "stm", "mod_mipi34_ape_mipi60"), /* dat0 */ | ||
| 763 | DB8500_PIN_STATE("GPIO75_H2", in_pu, | ||
| 764 | "stm", "mod_mipi34_ape_mipi60"), /* uartmod rx */ | ||
| 765 | DB8500_PIN_STATE("GPIO76_J2", out_lo, | ||
| 766 | "stm", "mod_mipi34_ape_mipi60"), /* uartmod tx */ | ||
| 767 | DB8500_PIN_STATE("GPIO155_C19", in_nopull, | ||
| 768 | "stm", "mod_mipi34_ape_mipi60"), /* clk */ | ||
| 769 | DB8500_PIN_STATE("GPIO156_C17", in_nopull, | ||
| 770 | "stm", "mod_mipi34_ape_mipi60"), /* dat3 */ | ||
| 771 | DB8500_PIN_STATE("GPIO157_A18", in_nopull, | ||
| 772 | "stm", "mod_mipi34_ape_mipi60"), /* dat2 */ | ||
| 773 | DB8500_PIN_STATE("GPIO158_C18", in_nopull, | ||
| 774 | "stm", "mod_mipi34_ape_mipi60"), /* dat1 */ | ||
| 775 | DB8500_PIN_STATE("GPIO159_B19", in_nopull, | ||
| 776 | "stm", "mod_mipi34_ape_mipi60"), /* dat0 */ | ||
| 777 | |||
| 778 | DB8500_PIN_STATE("GPIO70_G5", slpm_out_lo_pdis, | ||
| 779 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* clk */ | ||
| 780 | DB8500_PIN_STATE("GPIO71_G4", slpm_out_lo_pdis, | ||
| 781 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat3 */ | ||
| 782 | DB8500_PIN_STATE("GPIO72_H4", slpm_out_lo_pdis, | ||
| 783 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat2 */ | ||
| 784 | DB8500_PIN_STATE("GPIO73_H3", slpm_out_lo_pdis, | ||
| 785 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat1 */ | ||
| 786 | DB8500_PIN_STATE("GPIO74_J3", slpm_out_lo_pdis, | ||
| 787 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat0 */ | ||
| 788 | DB8500_PIN_STATE("GPIO75_H2", slpm_in_wkup_pdis, | ||
| 789 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* uartmod rx */ | ||
| 790 | DB8500_PIN_STATE("GPIO76_J2", slpm_out_lo_wkup_pdis, | ||
| 791 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* uartmod tx */ | ||
| 792 | DB8500_PIN_STATE("GPIO155_C19", slpm_in_wkup_pdis, | ||
| 793 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* clk */ | ||
| 794 | DB8500_PIN_STATE("GPIO156_C17", slpm_in_wkup_pdis, | ||
| 795 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat3 */ | ||
| 796 | DB8500_PIN_STATE("GPIO157_A18", slpm_in_wkup_pdis, | ||
| 797 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat2 */ | ||
| 798 | DB8500_PIN_STATE("GPIO158_C18", slpm_in_wkup_pdis, | ||
| 799 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat1 */ | ||
| 800 | DB8500_PIN_STATE("GPIO159_B19", slpm_in_wkup_pdis, | ||
| 801 | "stm", "mod_mipi34_ape_mipi60_sleep"), /* dat0 */ | ||
| 802 | }; | ||
| 803 | |||
| 804 | /* | ||
| 805 | * These are specifically for the MOP500 and HREFP (pre-v60) version of the | ||
| 806 | * board, which utilized a TC35892 GPIO expander instead of using a lot of | ||
| 807 | * on-chip pins as the HREFv60 and later does. | ||
| 808 | */ | ||
| 809 | static struct pinctrl_map __initdata mop500_pinmap[] = { | ||
| 810 | /* Mux in SSP0, pull down RXD pin */ | ||
| 811 | DB8500_MUX_HOG("ssp0_a_1", "ssp0"), | ||
| 812 | DB8500_PIN_HOG("GPIO145_C13", pd), | ||
| 813 | /* | ||
| 814 | * XENON Flashgun on image processor GPIO (controlled from image | ||
| 815 | * processor firmware), mux in these image processor GPIO lines 0 | ||
| 816 | * (XENON_FLASH_ID) and 1 (XENON_READY) on altfunction C and pull up | ||
| 817 | * the pins. | ||
| 818 | */ | ||
| 819 | DB8500_MUX_HOG("ipgpio0_c_1", "ipgpio"), | ||
| 820 | DB8500_MUX_HOG("ipgpio1_c_1", "ipgpio"), | ||
| 821 | DB8500_PIN_HOG("GPIO6_AF6", in_pu), | ||
| 822 | DB8500_PIN_HOG("GPIO7_AG5", in_pu), | ||
| 823 | /* TC35892 IRQ, pull up the line, let the driver mux in the pin */ | ||
| 824 | DB8500_PIN_HOG("GPIO217_AH12", gpio_in_pu), | ||
| 825 | /* Mux in UART1 and set the pull-ups */ | ||
| 826 | DB8500_MUX_HOG("u1rxtx_a_1", "u1"), | ||
| 827 | DB8500_PIN_HOG("GPIO4_AH6", in_pu), /* RXD */ | ||
| 828 | DB8500_PIN_HOG("GPIO5_AG6", out_hi), /* TXD */ | ||
| 829 | /* | ||
| 830 | * Runtime stuff: make it possible to mux in the SKE keypad | ||
| 831 | * and bias the pins | ||
| 832 | */ | ||
| 833 | /* ske default state */ | ||
| 834 | DB8500_MUX("kp_a_2", "kp", "nmk-ske-keypad"), | ||
| 835 | DB8500_PIN("GPIO153_B17", in_pu, "nmk-ske-keypad"), /* I7 */ | ||
| 836 | DB8500_PIN("GPIO154_C16", in_pu, "nmk-ske-keypad"), /* I6 */ | ||
| 837 | DB8500_PIN("GPIO155_C19", in_pu, "nmk-ske-keypad"), /* I5 */ | ||
| 838 | DB8500_PIN("GPIO156_C17", in_pu, "nmk-ske-keypad"), /* I4 */ | ||
| 839 | DB8500_PIN("GPIO161_D21", in_pu, "nmk-ske-keypad"), /* I3 */ | ||
| 840 | DB8500_PIN("GPIO162_D20", in_pu, "nmk-ske-keypad"), /* I2 */ | ||
| 841 | DB8500_PIN("GPIO163_C20", in_pu, "nmk-ske-keypad"), /* I1 */ | ||
| 842 | DB8500_PIN("GPIO164_B21", in_pu, "nmk-ske-keypad"), /* I0 */ | ||
| 843 | DB8500_PIN("GPIO157_A18", out_lo, "nmk-ske-keypad"), /* O7 */ | ||
| 844 | DB8500_PIN("GPIO158_C18", out_lo, "nmk-ske-keypad"), /* O6 */ | ||
| 845 | DB8500_PIN("GPIO159_B19", out_lo, "nmk-ske-keypad"), /* O5 */ | ||
| 846 | DB8500_PIN("GPIO160_B20", out_lo, "nmk-ske-keypad"), /* O4 */ | ||
| 847 | DB8500_PIN("GPIO165_C21", out_lo, "nmk-ske-keypad"), /* O3 */ | ||
| 848 | DB8500_PIN("GPIO166_A22", out_lo, "nmk-ske-keypad"), /* O2 */ | ||
| 849 | DB8500_PIN("GPIO167_B24", out_lo, "nmk-ske-keypad"), /* O1 */ | ||
| 850 | DB8500_PIN("GPIO168_C22", out_lo, "nmk-ske-keypad"), /* O0 */ | ||
| 851 | /* ske sleep state */ | ||
| 852 | DB8500_PIN_SLEEP("GPIO153_B17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I7 */ | ||
| 853 | DB8500_PIN_SLEEP("GPIO154_C16", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I6 */ | ||
| 854 | DB8500_PIN_SLEEP("GPIO155_C19", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I5 */ | ||
| 855 | DB8500_PIN_SLEEP("GPIO156_C17", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I4 */ | ||
| 856 | DB8500_PIN_SLEEP("GPIO161_D21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I3 */ | ||
| 857 | DB8500_PIN_SLEEP("GPIO162_D20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I2 */ | ||
| 858 | DB8500_PIN_SLEEP("GPIO163_C20", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I1 */ | ||
| 859 | DB8500_PIN_SLEEP("GPIO164_B21", slpm_in_pu_wkup_pdis_en, "nmk-ske-keypad"), /* I0 */ | ||
| 860 | DB8500_PIN_SLEEP("GPIO157_A18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O7 */ | ||
| 861 | DB8500_PIN_SLEEP("GPIO158_C18", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O6 */ | ||
| 862 | DB8500_PIN_SLEEP("GPIO159_B19", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O5 */ | ||
| 863 | DB8500_PIN_SLEEP("GPIO160_B20", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O4 */ | ||
| 864 | DB8500_PIN_SLEEP("GPIO165_C21", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O3 */ | ||
| 865 | DB8500_PIN_SLEEP("GPIO166_A22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O2 */ | ||
| 866 | DB8500_PIN_SLEEP("GPIO167_B24", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O1 */ | ||
| 867 | DB8500_PIN_SLEEP("GPIO168_C22", slpm_out_lo_pdis, "nmk-ske-keypad"), /* O0 */ | ||
| 868 | |||
| 869 | /* Mux in and drive the SDI0 DAT31DIR line high at runtime */ | ||
| 870 | DB8500_MUX("mc0dat31dir_a_1", "mc0", "sdi0"), | ||
| 871 | DB8500_PIN("GPIO21_AB3", out_hi, "sdi0"), | ||
| 872 | }; | ||
| 873 | |||
| 874 | /* | ||
| 875 | * The HREFv60 series of platforms is using available pins on the DB8500 | ||
| 876 | * insteaf of the Toshiba I2C GPIO expander, reusing some pins like the SSP0 | ||
| 877 | * and SSP1 ports (previously connected to the AB8500) as generic GPIO lines. | ||
| 878 | */ | ||
| 879 | static struct pinctrl_map __initdata hrefv60_pinmap[] = { | ||
| 880 | /* Drive WLAN_ENA low */ | ||
| 881 | DB8500_PIN_HOG("GPIO85_D5", gpio_out_lo), /* WLAN_ENA */ | ||
| 882 | /* | ||
| 883 | * XENON Flashgun on image processor GPIO (controlled from image | ||
| 884 | * processor firmware), mux in these image processor GPIO lines 0 | ||
| 885 | * (XENON_FLASH_ID), 1 (XENON_READY) and there is an assistant | ||
| 886 | * LED on IP GPIO 4 (XENON_EN2) on altfunction C, that need bias | ||
| 887 | * from GPIO21 so pull up 0, 1 and drive 4 and GPIO21 low as output. | ||
| 888 | */ | ||
| 889 | DB8500_MUX_HOG("ipgpio0_c_1", "ipgpio"), | ||
| 890 | DB8500_MUX_HOG("ipgpio1_c_1", "ipgpio"), | ||
| 891 | DB8500_MUX_HOG("ipgpio4_c_1", "ipgpio"), | ||
| 892 | DB8500_PIN_HOG("GPIO6_AF6", in_pu), /* XENON_FLASH_ID */ | ||
| 893 | DB8500_PIN_HOG("GPIO7_AG5", in_pu), /* XENON_READY */ | ||
| 894 | DB8500_PIN_HOG("GPIO21_AB3", gpio_out_lo), /* XENON_EN1 */ | ||
| 895 | DB8500_PIN_HOG("GPIO64_F3", out_lo), /* XENON_EN2 */ | ||
| 896 | /* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */ | ||
| 897 | DB8500_PIN_HOG("GPIO31_V3", gpio_in_pu), /* EN1 */ | ||
| 898 | DB8500_PIN_HOG("GPIO32_V2", gpio_in_pd), /* DRDY */ | ||
| 899 | /* | ||
| 900 | * Display Interface 1 uses GPIO 65 for RST (reset). | ||
| 901 | * Display Interface 2 uses GPIO 66 for RST (reset). | ||
| 902 | * Drive DISP1 reset high (not reset), driver DISP2 reset low (reset) | ||
| 903 | */ | ||
| 904 | DB8500_PIN_HOG("GPIO65_F1", gpio_out_hi), /* DISP1 NO RST */ | ||
| 905 | DB8500_PIN_HOG("GPIO66_G3", gpio_out_lo), /* DISP2 RST */ | ||
| 906 | /* | ||
| 907 | * Touch screen uses GPIO 143 for RST1, GPIO 146 for RST2 and | ||
| 908 | * GPIO 67 for interrupts. Pull-up the IRQ line and drive both | ||
| 909 | * reset signals low. | ||
| 910 | */ | ||
| 911 | DB8500_PIN_HOG("GPIO143_D12", gpio_out_lo), /* TOUCH_RST1 */ | ||
| 912 | DB8500_PIN_HOG("GPIO67_G2", gpio_in_pu), /* TOUCH_INT2 */ | ||
| 913 | DB8500_PIN_HOG("GPIO146_D13", gpio_out_lo), /* TOUCH_RST2 */ | ||
| 914 | /* | ||
| 915 | * Drive D19-D23 for the ETM PTM trace interface low, | ||
| 916 | * (presumably pins are unconnected therefore grounded here, | ||
| 917 | * the "other alt C1" setting enables these pins) | ||
| 918 | */ | ||
| 919 | DB8500_PIN_HOG("GPIO70_G5", gpio_out_lo), | ||
| 920 | DB8500_PIN_HOG("GPIO71_G4", gpio_out_lo), | ||
| 921 | DB8500_PIN_HOG("GPIO72_H4", gpio_out_lo), | ||
| 922 | DB8500_PIN_HOG("GPIO73_H3", gpio_out_lo), | ||
| 923 | DB8500_PIN_HOG("GPIO74_J3", gpio_out_lo), | ||
| 924 | /* NAHJ CTRL on GPIO 76 to low, CTRL_INV on GPIO216 to high */ | ||
| 925 | DB8500_PIN_HOG("GPIO76_J2", gpio_out_lo), /* CTRL */ | ||
| 926 | DB8500_PIN_HOG("GPIO216_AG12", gpio_out_hi), /* CTRL_INV */ | ||
| 927 | /* NFC ENA and RESET to low, pulldown IRQ line */ | ||
| 928 | DB8500_PIN_HOG("GPIO77_H1", gpio_out_lo), /* NFC_ENA */ | ||
| 929 | DB8500_PIN_HOG("GPIO144_B13", gpio_in_pd), /* NFC_IRQ */ | ||
| 930 | DB8500_PIN_HOG("GPIO142_C11", gpio_out_lo), /* NFC_RESET */ | ||
| 931 | /* | ||
| 932 | * SKE keyboard partly on alt A and partly on "Other alt C1" | ||
| 933 | * Driver KP_O1,2,3,6,7 low and pull up KP_I 0,2,3 for three | ||
| 934 | * rows of 6 keys, then pull up force sensing interrup and | ||
| 935 | * drive reset and force sensing WU low. | ||
| 936 | */ | ||
| 937 | DB8500_MUX_HOG("kp_a_1", "kp"), | ||
| 938 | DB8500_MUX_HOG("kp_oc1_1", "kp"), | ||
| 939 | DB8500_PIN_HOG("GPIO90_A3", out_lo), /* KP_O1 */ | ||
| 940 | DB8500_PIN_HOG("GPIO87_B3", out_lo), /* KP_O2 */ | ||
| 941 | DB8500_PIN_HOG("GPIO86_C6", out_lo), /* KP_O3 */ | ||
| 942 | DB8500_PIN_HOG("GPIO96_D8", out_lo), /* KP_O6 */ | ||
| 943 | DB8500_PIN_HOG("GPIO94_D7", out_lo), /* KP_O7 */ | ||
| 944 | DB8500_PIN_HOG("GPIO93_B7", in_pu), /* KP_I0 */ | ||
| 945 | DB8500_PIN_HOG("GPIO89_E6", in_pu), /* KP_I2 */ | ||
| 946 | DB8500_PIN_HOG("GPIO88_C4", in_pu), /* KP_I3 */ | ||
| 947 | DB8500_PIN_HOG("GPIO91_B6", gpio_in_pu), /* FORCE_SENSING_INT */ | ||
| 948 | DB8500_PIN_HOG("GPIO92_D6", gpio_out_lo), /* FORCE_SENSING_RST */ | ||
| 949 | DB8500_PIN_HOG("GPIO97_D9", gpio_out_lo), /* FORCE_SENSING_WU */ | ||
| 950 | /* DiPro Sensor interrupt */ | ||
| 951 | DB8500_PIN_HOG("GPIO139_C9", gpio_in_pu), /* DIPRO_INT */ | ||
| 952 | /* Audio Amplifier HF enable */ | ||
| 953 | DB8500_PIN_HOG("GPIO149_B14", gpio_out_hi), /* VAUDIO_HF_EN, enable MAX8968 */ | ||
| 954 | /* GBF interface, pull low to reset state */ | ||
| 955 | DB8500_PIN_HOG("GPIO171_D23", gpio_out_lo), /* GBF_ENA_RESET */ | ||
| 956 | /* MSP : HDTV INTERFACE GPIO line */ | ||
| 957 | DB8500_PIN_HOG("GPIO192_AJ27", gpio_in_pd), | ||
| 958 | /* Accelerometer interrupt lines */ | ||
| 959 | DB8500_PIN_HOG("GPIO82_C1", gpio_in_pu), /* ACC_INT1 */ | ||
| 960 | DB8500_PIN_HOG("GPIO83_D3", gpio_in_pu), /* ACC_INT2 */ | ||
| 961 | /* SD card detect GPIO pin */ | ||
| 962 | DB8500_PIN_HOG("GPIO95_E8", gpio_in_pu), | ||
| 963 | /* | ||
| 964 | * Runtime stuff | ||
| 965 | * Pull up/down of some sensor GPIO pins, for proximity, HAL sensor | ||
| 966 | * etc. | ||
| 967 | */ | ||
| 968 | DB8500_PIN("GPIO217_AH12", gpio_in_pu_slpm_gpio_nopull, "gpio-keys.0"), | ||
| 969 | DB8500_PIN("GPIO145_C13", gpio_in_pd_slpm_gpio_nopull, "gpio-keys.0"), | ||
| 970 | DB8500_PIN("GPIO139_C9", gpio_in_pu_slpm_gpio_nopull, "gpio-keys.0"), | ||
| 971 | }; | ||
| 972 | |||
| 973 | static struct pinctrl_map __initdata u9500_pinmap[] = { | ||
| 974 | /* Mux in UART1 (just RX/TX) and set the pull-ups */ | ||
| 975 | DB8500_MUX_HOG("u1rxtx_a_1", "u1"), | ||
| 976 | DB8500_PIN_HOG("GPIO4_AH6", in_pu), | ||
| 977 | DB8500_PIN_HOG("GPIO5_AG6", out_hi), | ||
| 978 | /* WLAN_IRQ line */ | ||
| 979 | DB8500_PIN_HOG("GPIO144_B13", gpio_in_pu), | ||
| 980 | /* HSI */ | ||
| 981 | DB8500_MUX_HOG("hsir_a_1", "hsi"), | ||
| 982 | DB8500_MUX_HOG("hsit_a_2", "hsi"), | ||
| 983 | DB8500_PIN_HOG("GPIO219_AG10", in_pd), /* RX FLA0 */ | ||
| 984 | DB8500_PIN_HOG("GPIO220_AH10", in_pd), /* RX DAT0 */ | ||
| 985 | DB8500_PIN_HOG("GPIO221_AJ11", out_lo), /* RX RDY0 */ | ||
| 986 | DB8500_PIN_HOG("GPIO222_AJ9", out_lo), /* TX FLA0 */ | ||
| 987 | DB8500_PIN_HOG("GPIO223_AH9", out_lo), /* TX DAT0 */ | ||
| 988 | DB8500_PIN_HOG("GPIO224_AG9", in_pd), /* TX RDY0 */ | ||
| 989 | DB8500_PIN_HOG("GPIO225_AG8", in_pd), /* CAWAKE0 */ | ||
| 990 | DB8500_PIN_HOG("GPIO226_AF8", gpio_out_hi), /* ACWAKE0 */ | ||
| 991 | }; | ||
| 992 | |||
| 993 | static struct pinctrl_map __initdata u8500_pinmap[] = { | ||
| 994 | DB8500_PIN_HOG("GPIO226_AF8", gpio_out_lo), /* WLAN_PMU_EN */ | ||
| 995 | DB8500_PIN_HOG("GPIO4_AH6", gpio_in_pu), /* WLAN_IRQ */ | ||
| 996 | }; | ||
| 997 | |||
| 998 | static struct pinctrl_map __initdata snowball_pinmap[] = { | ||
| 999 | /* Mux in SSP0 connected to AB8500, pull down RXD pin */ | ||
| 1000 | DB8500_MUX_HOG("ssp0_a_1", "ssp0"), | ||
| 1001 | DB8500_PIN_HOG("GPIO145_C13", pd), | ||
| 1002 | /* Always drive the MC0 DAT31DIR line high on these boards */ | ||
| 1003 | DB8500_PIN_HOG("GPIO21_AB3", out_hi), | ||
| 1004 | /* Mux in "SM" which is used for the SMSC911x Ethernet adapter */ | ||
| 1005 | DB8500_MUX_HOG("sm_b_1", "sm"), | ||
| 1006 | /* User LED */ | ||
| 1007 | DB8500_PIN_HOG("GPIO142_C11", gpio_out_hi), | ||
| 1008 | /* Drive RSTn_LAN high */ | ||
| 1009 | DB8500_PIN_HOG("GPIO141_C12", gpio_out_hi), | ||
| 1010 | /* Accelerometer/Magnetometer */ | ||
| 1011 | DB8500_PIN_HOG("GPIO163_C20", gpio_in_pu), /* ACCEL_IRQ1 */ | ||
| 1012 | DB8500_PIN_HOG("GPIO164_B21", gpio_in_pu), /* ACCEL_IRQ2 */ | ||
| 1013 | DB8500_PIN_HOG("GPIO165_C21", gpio_in_pu), /* MAG_DRDY */ | ||
| 1014 | /* WLAN/GBF */ | ||
| 1015 | DB8500_PIN_HOG("GPIO161_D21", gpio_out_lo), /* WLAN_PMU_EN */ | ||
| 1016 | DB8500_PIN_HOG("GPIO171_D23", gpio_out_hi), /* GBF_ENA */ | ||
| 1017 | DB8500_PIN_HOG("GPIO215_AH13", gpio_out_lo), /* WLAN_ENA */ | ||
| 1018 | DB8500_PIN_HOG("GPIO216_AG12", gpio_in_pu), /* WLAN_IRQ */ | ||
| 1019 | }; | ||
| 1020 | |||
| 1021 | /* | ||
| 1022 | * passing "pinsfor=" in kernel cmdline allows for custom | ||
| 1023 | * configuration of GPIOs on u8500 derived boards. | ||
| 1024 | */ | ||
| 1025 | static int __init early_pinsfor(char *p) | ||
| 1026 | { | ||
| 1027 | pinsfor = PINS_FOR_DEFAULT; | ||
| 1028 | |||
| 1029 | if (strcmp(p, "u9500-21") == 0) | ||
| 1030 | pinsfor = PINS_FOR_U9500; | ||
| 1031 | |||
| 1032 | return 0; | ||
| 1033 | } | ||
| 1034 | early_param("pinsfor", early_pinsfor); | ||
| 1035 | |||
| 1036 | int pins_for_u9500(void) | ||
| 1037 | { | ||
| 1038 | if (pinsfor == PINS_FOR_U9500) | ||
| 1039 | return 1; | ||
| 1040 | |||
| 1041 | return 0; | ||
| 1042 | } | ||
| 1043 | |||
| 1044 | static void __init mop500_href_family_pinmaps_init(void) | ||
| 1045 | { | ||
| 1046 | switch (pinsfor) { | ||
| 1047 | case PINS_FOR_U9500: | ||
| 1048 | pinctrl_register_mappings(u9500_pinmap, | ||
| 1049 | ARRAY_SIZE(u9500_pinmap)); | ||
| 1050 | break; | ||
| 1051 | case PINS_FOR_DEFAULT: | ||
| 1052 | pinctrl_register_mappings(u8500_pinmap, | ||
| 1053 | ARRAY_SIZE(u8500_pinmap)); | ||
| 1054 | default: | ||
| 1055 | break; | ||
| 1056 | } | ||
| 1057 | } | ||
| 1058 | |||
| 1059 | void __init mop500_pinmaps_init(void) | 271 | void __init mop500_pinmaps_init(void) |
| 1060 | { | 272 | { |
| 1061 | pinctrl_register_mappings(mop500_family_pinmap, | ||
| 1062 | ARRAY_SIZE(mop500_family_pinmap)); | ||
| 1063 | pinctrl_register_mappings(mop500_pinmap, | ||
| 1064 | ARRAY_SIZE(mop500_pinmap)); | ||
| 1065 | mop500_href_family_pinmaps_init(); | ||
| 1066 | if (machine_is_u8520()) | 273 | if (machine_is_u8520()) |
| 1067 | pinctrl_register_mappings(ab8505_pinmap, | 274 | pinctrl_register_mappings(ab8505_pinmap, |
| 1068 | ARRAY_SIZE(ab8505_pinmap)); | 275 | ARRAY_SIZE(ab8505_pinmap)); |
| @@ -1073,23 +280,12 @@ void __init mop500_pinmaps_init(void) | |||
| 1073 | 280 | ||
| 1074 | void __init snowball_pinmaps_init(void) | 281 | void __init snowball_pinmaps_init(void) |
| 1075 | { | 282 | { |
| 1076 | pinctrl_register_mappings(mop500_family_pinmap, | ||
| 1077 | ARRAY_SIZE(mop500_family_pinmap)); | ||
| 1078 | pinctrl_register_mappings(snowball_pinmap, | ||
| 1079 | ARRAY_SIZE(snowball_pinmap)); | ||
| 1080 | pinctrl_register_mappings(u8500_pinmap, | ||
| 1081 | ARRAY_SIZE(u8500_pinmap)); | ||
| 1082 | pinctrl_register_mappings(ab8500_pinmap, | 283 | pinctrl_register_mappings(ab8500_pinmap, |
| 1083 | ARRAY_SIZE(ab8500_pinmap)); | 284 | ARRAY_SIZE(ab8500_pinmap)); |
| 1084 | } | 285 | } |
| 1085 | 286 | ||
| 1086 | void __init hrefv60_pinmaps_init(void) | 287 | void __init hrefv60_pinmaps_init(void) |
| 1087 | { | 288 | { |
| 1088 | pinctrl_register_mappings(mop500_family_pinmap, | ||
| 1089 | ARRAY_SIZE(mop500_family_pinmap)); | ||
| 1090 | pinctrl_register_mappings(hrefv60_pinmap, | ||
| 1091 | ARRAY_SIZE(hrefv60_pinmap)); | ||
| 1092 | mop500_href_family_pinmaps_init(); | ||
| 1093 | pinctrl_register_mappings(ab8500_pinmap, | 289 | pinctrl_register_mappings(ab8500_pinmap, |
| 1094 | ARRAY_SIZE(ab8500_pinmap)); | 290 | ARRAY_SIZE(ab8500_pinmap)); |
| 1095 | } | 291 | } |
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c b/arch/arm/mach-ux500/board-mop500-regulators.c index 0dc44c683427..a4e139aa2441 100644 --- a/arch/arm/mach-ux500/board-mop500-regulators.c +++ b/arch/arm/mach-ux500/board-mop500-regulators.c | |||
| @@ -30,20 +30,6 @@ struct regulator_init_data gpio_en_3v3_regulator = { | |||
| 30 | .consumer_supplies = gpio_en_3v3_consumers, | 30 | .consumer_supplies = gpio_en_3v3_consumers, |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | static struct regulator_consumer_supply sdi0_reg_consumers[] = { | ||
| 34 | REGULATOR_SUPPLY("vqmmc", "sdi0"), | ||
| 35 | }; | ||
| 36 | |||
| 37 | struct regulator_init_data sdi0_reg_init_data = { | ||
| 38 | .constraints = { | ||
| 39 | .min_uV = 1800000, | ||
| 40 | .max_uV = 2900000, | ||
| 41 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE|REGULATOR_CHANGE_STATUS, | ||
| 42 | }, | ||
| 43 | .num_consumer_supplies = ARRAY_SIZE(sdi0_reg_consumers), | ||
| 44 | .consumer_supplies = sdi0_reg_consumers, | ||
| 45 | }; | ||
| 46 | |||
| 47 | /* | 33 | /* |
| 48 | * TPS61052 regulator | 34 | * TPS61052 regulator |
| 49 | */ | 35 | */ |
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.h b/arch/arm/mach-ux500/board-mop500-regulators.h index 039f5132c370..9bece38fe933 100644 --- a/arch/arm/mach-ux500/board-mop500-regulators.h +++ b/arch/arm/mach-ux500/board-mop500-regulators.h | |||
| @@ -18,7 +18,6 @@ extern struct ab8500_regulator_platform_data ab8500_regulator_plat_data; | |||
| 18 | extern struct ab8500_regulator_platform_data ab8505_regulator_plat_data; | 18 | extern struct ab8500_regulator_platform_data ab8505_regulator_plat_data; |
| 19 | extern struct regulator_init_data tps61052_regulator; | 19 | extern struct regulator_init_data tps61052_regulator; |
| 20 | extern struct regulator_init_data gpio_en_3v3_regulator; | 20 | extern struct regulator_init_data gpio_en_3v3_regulator; |
| 21 | extern struct regulator_init_data sdi0_reg_init_data; | ||
| 22 | 21 | ||
| 23 | void mop500_regulator_init(void); | 22 | void mop500_regulator_init(void); |
| 24 | 23 | ||
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index 26600a1c5319..fcbf3a13a539 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
| @@ -14,10 +14,8 @@ | |||
| 14 | #include <linux/platform_data/dma-ste-dma40.h> | 14 | #include <linux/platform_data/dma-ste-dma40.h> |
| 15 | 15 | ||
| 16 | #include <asm/mach-types.h> | 16 | #include <asm/mach-types.h> |
| 17 | #include "devices.h" | ||
| 18 | 17 | ||
| 19 | #include "db8500-regs.h" | 18 | #include "db8500-regs.h" |
| 20 | #include "devices-db8500.h" | ||
| 21 | #include "board-mop500.h" | 19 | #include "board-mop500.h" |
| 22 | #include "ste-dma40-db8500.h" | 20 | #include "ste-dma40-db8500.h" |
| 23 | 21 | ||
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c deleted file mode 100644 index 514d40b625a4..000000000000 --- a/arch/arm/mach-ux500/board-mop500.c +++ /dev/null | |||
| @@ -1,78 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2008-2012 ST-Ericsson | ||
| 3 | * | ||
| 4 | * Author: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2, as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | * | ||
| 10 | */ | ||
| 11 | #include <linux/kernel.h> | ||
| 12 | #include <linux/init.h> | ||
| 13 | #include <linux/interrupt.h> | ||
| 14 | #include <linux/platform_device.h> | ||
| 15 | #include <linux/clk.h> | ||
| 16 | #include <linux/io.h> | ||
| 17 | #include <linux/platform_data/db8500_thermal.h> | ||
| 18 | #include <linux/amba/bus.h> | ||
| 19 | #include <linux/amba/pl022.h> | ||
| 20 | #include <linux/mfd/abx500/ab8500.h> | ||
| 21 | #include <linux/regulator/ab8500.h> | ||
| 22 | #include <linux/regulator/fixed.h> | ||
| 23 | #include <linux/regulator/driver.h> | ||
| 24 | #include <linux/mfd/tps6105x.h> | ||
| 25 | #include <linux/platform_data/leds-lp55xx.h> | ||
| 26 | #include <linux/input.h> | ||
| 27 | #include <linux/delay.h> | ||
| 28 | #include <linux/leds.h> | ||
| 29 | #include <linux/pinctrl/consumer.h> | ||
| 30 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 31 | #include <linux/platform_data/dma-ste-dma40.h> | ||
| 32 | |||
| 33 | #include <asm/mach-types.h> | ||
| 34 | |||
| 35 | #include "setup.h" | ||
| 36 | #include "devices.h" | ||
| 37 | #include "irqs.h" | ||
| 38 | |||
| 39 | #include "ste-dma40-db8500.h" | ||
| 40 | #include "db8500-regs.h" | ||
| 41 | #include "devices-db8500.h" | ||
| 42 | #include "board-mop500.h" | ||
| 43 | #include "board-mop500-regulators.h" | ||
| 44 | |||
| 45 | struct ab8500_platform_data ab8500_platdata = { | ||
| 46 | .irq_base = MOP500_AB8500_IRQ_BASE, | ||
| 47 | .regulator = &ab8500_regulator_plat_data, | ||
| 48 | }; | ||
| 49 | |||
| 50 | #ifdef CONFIG_STE_DMA40 | ||
| 51 | static struct stedma40_chan_cfg ssp0_dma_cfg_rx = { | ||
| 52 | .mode = STEDMA40_MODE_LOGICAL, | ||
| 53 | .dir = DMA_DEV_TO_MEM, | ||
| 54 | .dev_type = DB8500_DMA_DEV8_SSP0, | ||
| 55 | }; | ||
| 56 | |||
| 57 | static struct stedma40_chan_cfg ssp0_dma_cfg_tx = { | ||
| 58 | .mode = STEDMA40_MODE_LOGICAL, | ||
| 59 | .dir = DMA_MEM_TO_DEV, | ||
| 60 | .dev_type = DB8500_DMA_DEV8_SSP0, | ||
| 61 | }; | ||
| 62 | #endif | ||
| 63 | |||
| 64 | struct pl022_ssp_controller ssp0_plat = { | ||
| 65 | .bus_id = 0, | ||
| 66 | #ifdef CONFIG_STE_DMA40 | ||
| 67 | .enable_dma = 1, | ||
| 68 | .dma_filter = stedma40_filter, | ||
| 69 | .dma_rx_param = &ssp0_dma_cfg_rx, | ||
| 70 | .dma_tx_param = &ssp0_dma_cfg_tx, | ||
| 71 | #else | ||
| 72 | .enable_dma = 0, | ||
| 73 | #endif | ||
| 74 | /* on this platform, gpio 31,142,144,214 & | ||
| 75 | * 224 are connected as chip selects | ||
| 76 | */ | ||
| 77 | .num_chipselect = 5, | ||
| 78 | }; | ||
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h index 511d6febbe99..d48e8662c676 100644 --- a/arch/arm/mach-ux500/board-mop500.h +++ b/arch/arm/mach-ux500/board-mop500.h | |||
| @@ -87,7 +87,6 @@ extern struct msp_i2s_platform_data msp0_platform_data; | |||
| 87 | extern struct msp_i2s_platform_data msp1_platform_data; | 87 | extern struct msp_i2s_platform_data msp1_platform_data; |
| 88 | extern struct msp_i2s_platform_data msp2_platform_data; | 88 | extern struct msp_i2s_platform_data msp2_platform_data; |
| 89 | extern struct msp_i2s_platform_data msp3_platform_data; | 89 | extern struct msp_i2s_platform_data msp3_platform_data; |
| 90 | extern struct pl022_ssp_controller ssp0_plat; | ||
| 91 | 90 | ||
| 92 | void __init mop500_pinmaps_init(void); | 91 | void __init mop500_pinmaps_init(void); |
| 93 | void __init snowball_pinmaps_init(void); | 92 | void __init snowball_pinmaps_init(void); |
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c index 12c7e5c03ea4..bc8a6183560d 100644 --- a/arch/arm/mach-ux500/cpu-db8500.c +++ b/arch/arm/mach-ux500/cpu-db8500.c | |||
| @@ -21,21 +21,32 @@ | |||
| 21 | #include <linux/of.h> | 21 | #include <linux/of.h> |
| 22 | #include <linux/of_platform.h> | 22 | #include <linux/of_platform.h> |
| 23 | #include <linux/regulator/machine.h> | 23 | #include <linux/regulator/machine.h> |
| 24 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 25 | #include <linux/random.h> | 24 | #include <linux/random.h> |
| 26 | 25 | ||
| 27 | #include <asm/pmu.h> | 26 | #include <asm/pmu.h> |
| 28 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
| 29 | 28 | ||
| 30 | #include "setup.h" | 29 | #include "setup.h" |
| 31 | #include "devices.h" | ||
| 32 | #include "irqs.h" | 30 | #include "irqs.h" |
| 33 | 31 | ||
| 34 | #include "devices-db8500.h" | 32 | #include "board-mop500-regulators.h" |
| 35 | #include "db8500-regs.h" | ||
| 36 | #include "board-mop500.h" | 33 | #include "board-mop500.h" |
| 34 | #include "db8500-regs.h" | ||
| 37 | #include "id.h" | 35 | #include "id.h" |
| 38 | 36 | ||
| 37 | struct ab8500_platform_data ab8500_platdata = { | ||
| 38 | .irq_base = MOP500_AB8500_IRQ_BASE, | ||
| 39 | .regulator = &ab8500_regulator_plat_data, | ||
| 40 | }; | ||
| 41 | |||
| 42 | struct prcmu_pdata db8500_prcmu_pdata = { | ||
| 43 | .ab_platdata = &ab8500_platdata, | ||
| 44 | .ab_irq = IRQ_DB8500_AB8500, | ||
| 45 | .irq_base = IRQ_PRCMU_BASE, | ||
| 46 | .version_offset = DB8500_PRCMU_FW_VERSION_OFFSET, | ||
| 47 | .legacy_offset = DB8500_PRCMU_LEGACY_OFFSET, | ||
| 48 | }; | ||
| 49 | |||
| 39 | /* minimum static i/o mapping required to boot U8500 platforms */ | 50 | /* minimum static i/o mapping required to boot U8500 platforms */ |
| 40 | static struct map_desc u8500_uart_io_desc[] __initdata = { | 51 | static struct map_desc u8500_uart_io_desc[] __initdata = { |
| 41 | __IO_DEV_DESC(U8500_UART0_BASE, SZ_4K), | 52 | __IO_DEV_DESC(U8500_UART0_BASE, SZ_4K), |
| @@ -159,17 +170,10 @@ static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { | |||
| 159 | OF_DEV_AUXDATA("stericsson,ux500-hash", 0xa03c2000, "hash1", NULL), | 170 | OF_DEV_AUXDATA("stericsson,ux500-hash", 0xa03c2000, "hash1", NULL), |
| 160 | OF_DEV_AUXDATA("stericsson,snd-soc-mop500", 0, "snd-soc-mop500.0", | 171 | OF_DEV_AUXDATA("stericsson,snd-soc-mop500", 0, "snd-soc-mop500.0", |
| 161 | NULL), | 172 | NULL), |
| 162 | /* Requires device name bindings. */ | ||
| 163 | OF_DEV_AUXDATA("stericsson,db8500-pinctrl", U8500_PRCMU_BASE, | ||
| 164 | "pinctrl-db8500", NULL), | ||
| 165 | {}, | 173 | {}, |
| 166 | }; | 174 | }; |
| 167 | 175 | ||
| 168 | static struct of_dev_auxdata u8540_auxdata_lookup[] __initdata = { | 176 | static struct of_dev_auxdata u8540_auxdata_lookup[] __initdata = { |
| 169 | /* Requires DMA bindings. */ | ||
| 170 | OF_DEV_AUXDATA("arm,pl011", 0x80120000, "uart0", NULL), | ||
| 171 | OF_DEV_AUXDATA("arm,pl011", 0x80121000, "uart1", NULL), | ||
| 172 | OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", NULL), | ||
| 173 | OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu", | 177 | OF_DEV_AUXDATA("stericsson,db8500-prcmu", 0x80157000, "db8500-prcmu", |
| 174 | &db8500_prcmu_pdata), | 178 | &db8500_prcmu_pdata), |
| 175 | {}, | 179 | {}, |
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index f84d4397896b..d11ac4bf336c 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
| @@ -25,7 +25,6 @@ | |||
| 25 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
| 26 | 26 | ||
| 27 | #include "setup.h" | 27 | #include "setup.h" |
| 28 | #include "devices.h" | ||
| 29 | 28 | ||
| 30 | #include "board-mop500.h" | 29 | #include "board-mop500.h" |
| 31 | #include "db8500-regs.h" | 30 | #include "db8500-regs.h" |
| @@ -64,12 +63,7 @@ void __init ux500_init_irq(void) | |||
| 64 | } else | 63 | } else |
| 65 | ux500_unknown_soc(); | 64 | ux500_unknown_soc(); |
| 66 | 65 | ||
| 67 | #ifdef CONFIG_OF | 66 | irqchip_init(); |
| 68 | if (of_have_populated_dt()) | ||
| 69 | irqchip_init(); | ||
| 70 | else | ||
| 71 | #endif | ||
| 72 | gic_init(0, 29, dist_base, cpu_base); | ||
| 73 | 67 | ||
| 74 | /* | 68 | /* |
| 75 | * Init clocks here so that they are available for system timer | 69 | * Init clocks here so that they are available for system timer |
| @@ -79,16 +73,11 @@ void __init ux500_init_irq(void) | |||
| 79 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); | 73 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); |
| 80 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); | 74 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); |
| 81 | 75 | ||
| 82 | if (of_have_populated_dt()) | 76 | u8500_of_clk_init(U8500_CLKRST1_BASE, |
| 83 | u8500_of_clk_init(U8500_CLKRST1_BASE, | 77 | U8500_CLKRST2_BASE, |
| 84 | U8500_CLKRST2_BASE, | 78 | U8500_CLKRST3_BASE, |
| 85 | U8500_CLKRST3_BASE, | 79 | U8500_CLKRST5_BASE, |
| 86 | U8500_CLKRST5_BASE, | 80 | U8500_CLKRST6_BASE); |
| 87 | U8500_CLKRST6_BASE); | ||
| 88 | else | ||
| 89 | u8500_clk_init(U8500_CLKRST1_BASE, U8500_CLKRST2_BASE, | ||
| 90 | U8500_CLKRST3_BASE, U8500_CLKRST5_BASE, | ||
| 91 | U8500_CLKRST6_BASE); | ||
| 92 | } else if (cpu_is_u9540()) { | 81 | } else if (cpu_is_u9540()) { |
| 93 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); | 82 | prcmu_early_init(U8500_PRCMU_BASE, SZ_8K - 1); |
| 94 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); | 83 | ux500_pm_init(U8500_PRCMU_BASE, SZ_8K - 1); |
diff --git a/arch/arm/mach-ux500/devices-db8500.c b/arch/arm/mach-ux500/devices-db8500.c deleted file mode 100644 index c59f89d058ff..000000000000 --- a/arch/arm/mach-ux500/devices-db8500.c +++ /dev/null | |||
| @@ -1,28 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) ST-Ericsson SA 2010 | ||
| 3 | * | ||
| 4 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | ||
| 5 | * License terms: GNU General Public License (GPL) version 2 | ||
| 6 | */ | ||
| 7 | |||
| 8 | #include <linux/kernel.h> | ||
| 9 | #include <linux/platform_device.h> | ||
| 10 | #include <linux/interrupt.h> | ||
| 11 | #include <linux/io.h> | ||
| 12 | #include <linux/amba/bus.h> | ||
| 13 | #include <linux/amba/pl022.h> | ||
| 14 | #include <linux/mfd/dbx500-prcmu.h> | ||
| 15 | |||
| 16 | #include "setup.h" | ||
| 17 | #include "irqs.h" | ||
| 18 | |||
| 19 | #include "db8500-regs.h" | ||
| 20 | #include "devices-db8500.h" | ||
| 21 | |||
| 22 | struct prcmu_pdata db8500_prcmu_pdata = { | ||
| 23 | .ab_platdata = &ab8500_platdata, | ||
| 24 | .ab_irq = IRQ_DB8500_AB8500, | ||
| 25 | .irq_base = IRQ_PRCMU_BASE, | ||
| 26 | .version_offset = DB8500_PRCMU_FW_VERSION_OFFSET, | ||
| 27 | .legacy_offset = DB8500_PRCMU_LEGACY_OFFSET, | ||
| 28 | }; | ||
diff --git a/arch/arm/mach-ux500/devices-db8500.h b/arch/arm/mach-ux500/devices-db8500.h deleted file mode 100644 index b8ffc9979bb2..000000000000 --- a/arch/arm/mach-ux500/devices-db8500.h +++ /dev/null | |||
| @@ -1,19 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) ST-Ericsson SA 2010 | ||
| 3 | * | ||
| 4 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | ||
| 5 | * License terms: GNU General Public License (GPL), version 2. | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef __DEVICES_DB8500_H | ||
| 9 | #define __DEVICES_DB8500_H | ||
| 10 | |||
| 11 | #include "irqs.h" | ||
| 12 | #include "db8500-regs.h" | ||
| 13 | |||
| 14 | struct platform_device; | ||
| 15 | |||
| 16 | extern struct ab8500_platform_data ab8500_platdata; | ||
| 17 | extern struct prcmu_pdata db8500_prcmu_pdata; | ||
| 18 | |||
| 19 | #endif | ||
diff --git a/arch/arm/mach-ux500/devices.c b/arch/arm/mach-ux500/devices.c deleted file mode 100644 index 0f9e52b95935..000000000000 --- a/arch/arm/mach-ux500/devices.c +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) ST-Ericsson SA 2010 | ||
| 3 | * | ||
| 4 | * Author: Rabin Vincent <rabin.vincent@stericsson.com> for ST-Ericsson | ||
| 5 | * License terms: GNU General Public License (GPL) version 2 | ||
| 6 | */ | ||
| 7 | |||
| 8 | #include <linux/kernel.h> | ||
| 9 | #include <linux/platform_device.h> | ||
| 10 | #include <linux/interrupt.h> | ||
| 11 | #include <linux/io.h> | ||
| 12 | #include <linux/amba/bus.h> | ||
| 13 | |||
| 14 | #include "setup.h" | ||
| 15 | |||
| 16 | #include "db8500-regs.h" | ||
| 17 | |||
| 18 | void __init amba_add_devices(struct amba_device *devs[], int num) | ||
| 19 | { | ||
| 20 | int i; | ||
| 21 | |||
| 22 | for (i = 0; i < num; i++) { | ||
| 23 | struct amba_device *d = devs[i]; | ||
| 24 | amba_device_register(d, &iomem_resource); | ||
| 25 | } | ||
| 26 | } | ||
diff --git a/arch/arm/mach-ux500/devices.h b/arch/arm/mach-ux500/devices.h deleted file mode 100644 index 5bca7c605cd6..000000000000 --- a/arch/arm/mach-ux500/devices.h +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) ST-Ericsson SA 2010 | ||
| 3 | * | ||
| 4 | * License terms: GNU General Public License (GPL) version 2 | ||
| 5 | */ | ||
| 6 | |||
| 7 | #ifndef __ASM_ARCH_DEVICES_H__ | ||
| 8 | #define __ASM_ARCH_DEVICES_H__ | ||
| 9 | |||
| 10 | struct platform_device; | ||
| 11 | struct amba_device; | ||
| 12 | |||
| 13 | extern struct amba_device ux500_pl031_device; | ||
| 14 | |||
| 15 | #endif | ||
diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h index b1dd8584bed4..2dea8b59d222 100644 --- a/arch/arm/mach-ux500/setup.h +++ b/arch/arm/mach-ux500/setup.h | |||
| @@ -19,17 +19,11 @@ | |||
| 19 | void ux500_restart(enum reboot_mode mode, const char *cmd); | 19 | void ux500_restart(enum reboot_mode mode, const char *cmd); |
| 20 | 20 | ||
| 21 | void __init ux500_map_io(void); | 21 | void __init ux500_map_io(void); |
| 22 | extern void __init u8500_map_io(void); | ||
| 23 | |||
| 24 | extern struct device * __init u8500_init_devices(void); | ||
| 25 | 22 | ||
| 26 | extern void __init ux500_init_irq(void); | 23 | extern void __init ux500_init_irq(void); |
| 27 | 24 | ||
| 28 | extern struct device *ux500_soc_device_init(const char *soc_id); | 25 | extern struct device *ux500_soc_device_init(const char *soc_id); |
| 29 | 26 | ||
| 30 | struct amba_device; | ||
| 31 | extern void __init amba_add_devices(struct amba_device *devs[], int num); | ||
| 32 | |||
| 33 | extern void ux500_timer_init(void); | 27 | extern void ux500_timer_init(void); |
| 34 | 28 | ||
| 35 | #define __IO_DEV_DESC(x, sz) { \ | 29 | #define __IO_DEV_DESC(x, sz) { \ |
diff --git a/arch/arm/mach-ux500/timer.c b/arch/arm/mach-ux500/timer.c index 05a4ff78b3bd..87efda0aa348 100644 --- a/arch/arm/mach-ux500/timer.c +++ b/arch/arm/mach-ux500/timer.c | |||
| @@ -10,40 +10,12 @@ | |||
| 10 | #include <linux/clocksource.h> | 10 | #include <linux/clocksource.h> |
| 11 | #include <linux/of.h> | 11 | #include <linux/of.h> |
| 12 | #include <linux/of_address.h> | 12 | #include <linux/of_address.h> |
| 13 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | ||
| 14 | |||
| 15 | #include <asm/smp_twd.h> | ||
| 16 | 13 | ||
| 17 | #include "setup.h" | 14 | #include "setup.h" |
| 18 | #include "irqs.h" | ||
| 19 | 15 | ||
| 20 | #include "db8500-regs.h" | 16 | #include "db8500-regs.h" |
| 21 | #include "id.h" | 17 | #include "id.h" |
| 22 | 18 | ||
| 23 | #ifdef CONFIG_HAVE_ARM_TWD | ||
| 24 | static DEFINE_TWD_LOCAL_TIMER(u8500_twd_local_timer, | ||
| 25 | U8500_TWD_BASE, IRQ_LOCALTIMER); | ||
| 26 | |||
| 27 | static void __init ux500_twd_init(void) | ||
| 28 | { | ||
| 29 | struct twd_local_timer *twd_local_timer; | ||
| 30 | int err; | ||
| 31 | |||
| 32 | /* Use this to switch local timer base if changed in new ASICs */ | ||
| 33 | twd_local_timer = &u8500_twd_local_timer; | ||
| 34 | |||
| 35 | if (of_have_populated_dt()) | ||
| 36 | clocksource_of_init(); | ||
| 37 | else { | ||
| 38 | err = twd_local_timer_register(twd_local_timer); | ||
| 39 | if (err) | ||
| 40 | pr_err("twd_local_timer_register failed %d\n", err); | ||
| 41 | } | ||
| 42 | } | ||
| 43 | #else | ||
| 44 | #define ux500_twd_init() do { } while(0) | ||
| 45 | #endif | ||
| 46 | |||
| 47 | const static struct of_device_id prcmu_timer_of_match[] __initconst = { | 19 | const static struct of_device_id prcmu_timer_of_match[] __initconst = { |
| 48 | { .compatible = "stericsson,db8500-prcmu-timer-4", }, | 20 | { .compatible = "stericsson,db8500-prcmu-timer-4", }, |
| 49 | { }, | 21 | { }, |
| @@ -51,54 +23,26 @@ const static struct of_device_id prcmu_timer_of_match[] __initconst = { | |||
| 51 | 23 | ||
| 52 | void __init ux500_timer_init(void) | 24 | void __init ux500_timer_init(void) |
| 53 | { | 25 | { |
| 54 | void __iomem *mtu_timer_base; | ||
| 55 | void __iomem *prcmu_timer_base; | 26 | void __iomem *prcmu_timer_base; |
| 56 | void __iomem *tmp_base; | 27 | void __iomem *tmp_base; |
| 57 | struct device_node *np; | 28 | struct device_node *np; |
| 58 | 29 | ||
| 59 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) { | 30 | if (cpu_is_u8500_family() || cpu_is_ux540_family()) |
| 60 | mtu_timer_base = __io_address(U8500_MTU0_BASE); | ||
| 61 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); | 31 | prcmu_timer_base = __io_address(U8500_PRCMU_TIMER_4_BASE); |
| 62 | } else { | 32 | else |
| 63 | ux500_unknown_soc(); | 33 | ux500_unknown_soc(); |
| 64 | } | ||
| 65 | 34 | ||
| 66 | /* TODO: Once MTU has been DT:ed place code above into else. */ | 35 | np = of_find_matching_node(NULL, prcmu_timer_of_match); |
| 67 | if (of_have_populated_dt()) { | 36 | if (!np) |
| 68 | #ifdef CONFIG_OF | 37 | goto dt_fail; |
| 69 | np = of_find_matching_node(NULL, prcmu_timer_of_match); | ||
| 70 | if (!np) | ||
| 71 | #endif | ||
| 72 | goto dt_fail; | ||
| 73 | 38 | ||
| 74 | tmp_base = of_iomap(np, 0); | 39 | tmp_base = of_iomap(np, 0); |
| 75 | if (!tmp_base) | 40 | if (!tmp_base) |
| 76 | goto dt_fail; | 41 | goto dt_fail; |
| 77 | 42 | ||
| 78 | prcmu_timer_base = tmp_base; | 43 | prcmu_timer_base = tmp_base; |
| 79 | } | ||
| 80 | 44 | ||
| 81 | dt_fail: | 45 | dt_fail: |
| 82 | /* Doing it the old fashioned way. */ | ||
| 83 | |||
| 84 | /* | ||
| 85 | * Here we register the timerblocks active in the system. | ||
| 86 | * Localtimers (twd) is started when both cpu is up and running. | ||
| 87 | * MTU register a clocksource, clockevent and sched_clock. | ||
| 88 | * Since the MTU is located in the VAPE power domain | ||
| 89 | * it will be cleared in sleep which makes it unsuitable. | ||
| 90 | * We however need it as a timer tick (clockevent) | ||
| 91 | * during boot to calibrate delay until twd is started. | ||
| 92 | * RTC-RTT have problems as timer tick during boot since it is | ||
| 93 | * depending on delay which is not yet calibrated. RTC-RTT is in the | ||
| 94 | * always-on powerdomain and is used as clockevent instead of twd when | ||
| 95 | * sleeping. | ||
| 96 | * The PRCMU timer 4 register a clocksource and | ||
| 97 | * sched_clock with higher rating then MTU since is always-on. | ||
| 98 | * | ||
| 99 | */ | ||
| 100 | if (!of_have_populated_dt()) | ||
| 101 | nmdk_timer_init(mtu_timer_base, IRQ_MTU0); | ||
| 102 | clksrc_dbx500_prcmu_init(prcmu_timer_base); | 46 | clksrc_dbx500_prcmu_init(prcmu_timer_base); |
| 103 | ux500_twd_init(); | 47 | clocksource_of_init(); |
| 104 | } | 48 | } |
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index ace7309c4369..a3b7c5dd3c16 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile | |||
| @@ -36,6 +36,7 @@ obj-$(CONFIG_PLAT_SAMSUNG) += samsung/ | |||
| 36 | obj-$(CONFIG_COMMON_CLK_XGENE) += clk-xgene.o | 36 | obj-$(CONFIG_COMMON_CLK_XGENE) += clk-xgene.o |
| 37 | obj-$(CONFIG_COMMON_CLK_KEYSTONE) += keystone/ | 37 | obj-$(CONFIG_COMMON_CLK_KEYSTONE) += keystone/ |
| 38 | obj-$(CONFIG_COMMON_CLK_AT91) += at91/ | 38 | obj-$(CONFIG_COMMON_CLK_AT91) += at91/ |
| 39 | obj-$(CONFIG_ARCH_SHMOBILE_MULTI) += shmobile/ | ||
| 39 | 40 | ||
| 40 | obj-$(CONFIG_X86) += x86/ | 41 | obj-$(CONFIG_X86) += x86/ |
| 41 | 42 | ||
diff --git a/drivers/clk/shmobile/Makefile b/drivers/clk/shmobile/Makefile new file mode 100644 index 000000000000..706adc6ae70c --- /dev/null +++ b/drivers/clk/shmobile/Makefile | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | obj-$(CONFIG_ARCH_R8A7790) += clk-rcar-gen2.o | ||
| 2 | obj-$(CONFIG_ARCH_R8A7791) += clk-rcar-gen2.o | ||
| 3 | obj-$(CONFIG_ARCH_SHMOBILE_MULTI) += clk-div6.o | ||
| 4 | obj-$(CONFIG_ARCH_SHMOBILE_MULTI) += clk-mstp.o | ||
| 5 | |||
| 6 | # for emply built-in.o | ||
| 7 | obj-n := dummy | ||
diff --git a/drivers/clk/shmobile/clk-div6.c b/drivers/clk/shmobile/clk-div6.c new file mode 100644 index 000000000000..aac4756ec52e --- /dev/null +++ b/drivers/clk/shmobile/clk-div6.c | |||
| @@ -0,0 +1,185 @@ | |||
| 1 | /* | ||
| 2 | * r8a7790 Common Clock Framework support | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
| 5 | * | ||
| 6 | * Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License as published by | ||
| 10 | * the Free Software Foundation; version 2 of the License. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <linux/clk-provider.h> | ||
| 14 | #include <linux/clkdev.h> | ||
| 15 | #include <linux/init.h> | ||
| 16 | #include <linux/io.h> | ||
| 17 | #include <linux/kernel.h> | ||
| 18 | #include <linux/of.h> | ||
| 19 | #include <linux/of_address.h> | ||
| 20 | |||
| 21 | #define CPG_DIV6_CKSTP BIT(8) | ||
| 22 | #define CPG_DIV6_DIV(d) ((d) & 0x3f) | ||
| 23 | #define CPG_DIV6_DIV_MASK 0x3f | ||
| 24 | |||
| 25 | /** | ||
| 26 | * struct div6_clock - MSTP gating clock | ||
| 27 | * @hw: handle between common and hardware-specific interfaces | ||
| 28 | * @reg: IO-remapped register | ||
| 29 | * @div: divisor value (1-64) | ||
| 30 | */ | ||
| 31 | struct div6_clock { | ||
| 32 | struct clk_hw hw; | ||
| 33 | void __iomem *reg; | ||
| 34 | unsigned int div; | ||
| 35 | }; | ||
| 36 | |||
| 37 | #define to_div6_clock(_hw) container_of(_hw, struct div6_clock, hw) | ||
| 38 | |||
| 39 | static int cpg_div6_clock_enable(struct clk_hw *hw) | ||
| 40 | { | ||
| 41 | struct div6_clock *clock = to_div6_clock(hw); | ||
| 42 | |||
| 43 | clk_writel(CPG_DIV6_DIV(clock->div - 1), clock->reg); | ||
| 44 | |||
| 45 | return 0; | ||
| 46 | } | ||
| 47 | |||
| 48 | static void cpg_div6_clock_disable(struct clk_hw *hw) | ||
| 49 | { | ||
| 50 | struct div6_clock *clock = to_div6_clock(hw); | ||
| 51 | |||
| 52 | /* DIV6 clocks require the divisor field to be non-zero when stopping | ||
| 53 | * the clock. | ||
| 54 | */ | ||
| 55 | clk_writel(CPG_DIV6_CKSTP | CPG_DIV6_DIV(CPG_DIV6_DIV_MASK), | ||
| 56 | clock->reg); | ||
| 57 | } | ||
| 58 | |||
| 59 | static int cpg_div6_clock_is_enabled(struct clk_hw *hw) | ||
| 60 | { | ||
| 61 | struct div6_clock *clock = to_div6_clock(hw); | ||
| 62 | |||
| 63 | return !(clk_readl(clock->reg) & CPG_DIV6_CKSTP); | ||
| 64 | } | ||
| 65 | |||
| 66 | static unsigned long cpg_div6_clock_recalc_rate(struct clk_hw *hw, | ||
| 67 | unsigned long parent_rate) | ||
| 68 | { | ||
| 69 | struct div6_clock *clock = to_div6_clock(hw); | ||
| 70 | unsigned int div = (clk_readl(clock->reg) & CPG_DIV6_DIV_MASK) + 1; | ||
| 71 | |||
| 72 | return parent_rate / div; | ||
| 73 | } | ||
| 74 | |||
| 75 | static unsigned int cpg_div6_clock_calc_div(unsigned long rate, | ||
| 76 | unsigned long parent_rate) | ||
| 77 | { | ||
| 78 | unsigned int div; | ||
| 79 | |||
| 80 | div = DIV_ROUND_CLOSEST(parent_rate, rate); | ||
| 81 | return clamp_t(unsigned int, div, 1, 64); | ||
| 82 | } | ||
| 83 | |||
| 84 | static long cpg_div6_clock_round_rate(struct clk_hw *hw, unsigned long rate, | ||
| 85 | unsigned long *parent_rate) | ||
| 86 | { | ||
| 87 | unsigned int div = cpg_div6_clock_calc_div(rate, *parent_rate); | ||
| 88 | |||
| 89 | return *parent_rate / div; | ||
| 90 | } | ||
| 91 | |||
| 92 | static int cpg_div6_clock_set_rate(struct clk_hw *hw, unsigned long rate, | ||
| 93 | unsigned long parent_rate) | ||
| 94 | { | ||
| 95 | struct div6_clock *clock = to_div6_clock(hw); | ||
| 96 | unsigned int div = cpg_div6_clock_calc_div(rate, parent_rate); | ||
| 97 | |||
| 98 | clock->div = div; | ||
| 99 | |||
| 100 | /* Only program the new divisor if the clock isn't stopped. */ | ||
| 101 | if (!(clk_readl(clock->reg) & CPG_DIV6_CKSTP)) | ||
| 102 | clk_writel(CPG_DIV6_DIV(clock->div - 1), clock->reg); | ||
| 103 | |||
| 104 | return 0; | ||
| 105 | } | ||
| 106 | |||
| 107 | static const struct clk_ops cpg_div6_clock_ops = { | ||
| 108 | .enable = cpg_div6_clock_enable, | ||
| 109 | .disable = cpg_div6_clock_disable, | ||
| 110 | .is_enabled = cpg_div6_clock_is_enabled, | ||
| 111 | .recalc_rate = cpg_div6_clock_recalc_rate, | ||
| 112 | .round_rate = cpg_div6_clock_round_rate, | ||
| 113 | .set_rate = cpg_div6_clock_set_rate, | ||
| 114 | }; | ||
| 115 | |||
| 116 | static void __init cpg_div6_clock_init(struct device_node *np) | ||
| 117 | { | ||
| 118 | struct clk_init_data init; | ||
| 119 | struct div6_clock *clock; | ||
| 120 | const char *parent_name; | ||
| 121 | const char *name; | ||
| 122 | struct clk *clk; | ||
| 123 | int ret; | ||
| 124 | |||
| 125 | clock = kzalloc(sizeof(*clock), GFP_KERNEL); | ||
| 126 | if (!clock) { | ||
| 127 | pr_err("%s: failed to allocate %s DIV6 clock\n", | ||
| 128 | __func__, np->name); | ||
| 129 | return; | ||
| 130 | } | ||
| 131 | |||
| 132 | /* Remap the clock register and read the divisor. Disabling the | ||
| 133 | * clock overwrites the divisor, so we need to cache its value for the | ||
| 134 | * enable operation. | ||
| 135 | */ | ||
| 136 | clock->reg = of_iomap(np, 0); | ||
| 137 | if (clock->reg == NULL) { | ||
| 138 | pr_err("%s: failed to map %s DIV6 clock register\n", | ||
| 139 | __func__, np->name); | ||
| 140 | goto error; | ||
| 141 | } | ||
| 142 | |||
| 143 | clock->div = (clk_readl(clock->reg) & CPG_DIV6_DIV_MASK) + 1; | ||
| 144 | |||
| 145 | /* Parse the DT properties. */ | ||
| 146 | ret = of_property_read_string(np, "clock-output-names", &name); | ||
| 147 | if (ret < 0) { | ||
| 148 | pr_err("%s: failed to get %s DIV6 clock output name\n", | ||
| 149 | __func__, np->name); | ||
| 150 | goto error; | ||
| 151 | } | ||
| 152 | |||
| 153 | parent_name = of_clk_get_parent_name(np, 0); | ||
| 154 | if (parent_name == NULL) { | ||
| 155 | pr_err("%s: failed to get %s DIV6 clock parent name\n", | ||
| 156 | __func__, np->name); | ||
| 157 | goto error; | ||
| 158 | } | ||
| 159 | |||
| 160 | /* Register the clock. */ | ||
| 161 | init.name = name; | ||
| 162 | init.ops = &cpg_div6_clock_ops; | ||
| 163 | init.flags = CLK_IS_BASIC; | ||
| 164 | init.parent_names = &parent_name; | ||
| 165 | init.num_parents = 1; | ||
| 166 | |||
| 167 | clock->hw.init = &init; | ||
| 168 | |||
| 169 | clk = clk_register(NULL, &clock->hw); | ||
| 170 | if (IS_ERR(clk)) { | ||
| 171 | pr_err("%s: failed to register %s DIV6 clock (%ld)\n", | ||
| 172 | __func__, np->name, PTR_ERR(clk)); | ||
| 173 | goto error; | ||
| 174 | } | ||
| 175 | |||
| 176 | of_clk_add_provider(np, of_clk_src_simple_get, clk); | ||
| 177 | |||
| 178 | return; | ||
| 179 | |||
| 180 | error: | ||
| 181 | if (clock->reg) | ||
| 182 | iounmap(clock->reg); | ||
| 183 | kfree(clock); | ||
| 184 | } | ||
| 185 | CLK_OF_DECLARE(cpg_div6_clk, "renesas,cpg-div6-clock", cpg_div6_clock_init); | ||
diff --git a/drivers/clk/shmobile/clk-mstp.c b/drivers/clk/shmobile/clk-mstp.c new file mode 100644 index 000000000000..e576b60de20e --- /dev/null +++ b/drivers/clk/shmobile/clk-mstp.c | |||
| @@ -0,0 +1,229 @@ | |||
| 1 | /* | ||
| 2 | * R-Car MSTP clocks | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Ideas On Board SPRL | ||
| 5 | * | ||
| 6 | * Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License as published by | ||
| 10 | * the Free Software Foundation; version 2 of the License. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <linux/clk-provider.h> | ||
| 14 | #include <linux/clkdev.h> | ||
| 15 | #include <linux/io.h> | ||
| 16 | #include <linux/of.h> | ||
| 17 | #include <linux/of_address.h> | ||
| 18 | #include <linux/spinlock.h> | ||
| 19 | |||
| 20 | /* | ||
| 21 | * MSTP clocks. We can't use standard gate clocks as we need to poll on the | ||
| 22 | * status register when enabling the clock. | ||
| 23 | */ | ||
| 24 | |||
| 25 | #define MSTP_MAX_CLOCKS 32 | ||
| 26 | |||
| 27 | /** | ||
| 28 | * struct mstp_clock_group - MSTP gating clocks group | ||
| 29 | * | ||
| 30 | * @data: clocks in this group | ||
| 31 | * @smstpcr: module stop control register | ||
| 32 | * @mstpsr: module stop status register (optional) | ||
| 33 | * @lock: protects writes to SMSTPCR | ||
| 34 | */ | ||
| 35 | struct mstp_clock_group { | ||
| 36 | struct clk_onecell_data data; | ||
| 37 | void __iomem *smstpcr; | ||
| 38 | void __iomem *mstpsr; | ||
| 39 | spinlock_t lock; | ||
| 40 | }; | ||
| 41 | |||
| 42 | /** | ||
| 43 | * struct mstp_clock - MSTP gating clock | ||
| 44 | * @hw: handle between common and hardware-specific interfaces | ||
| 45 | * @bit_index: control bit index | ||
| 46 | * @group: MSTP clocks group | ||
| 47 | */ | ||
| 48 | struct mstp_clock { | ||
| 49 | struct clk_hw hw; | ||
| 50 | u32 bit_index; | ||
| 51 | struct mstp_clock_group *group; | ||
| 52 | }; | ||
| 53 | |||
| 54 | #define to_mstp_clock(_hw) container_of(_hw, struct mstp_clock, hw) | ||
| 55 | |||
| 56 | static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable) | ||
| 57 | { | ||
| 58 | struct mstp_clock *clock = to_mstp_clock(hw); | ||
| 59 | struct mstp_clock_group *group = clock->group; | ||
| 60 | u32 bitmask = BIT(clock->bit_index); | ||
| 61 | unsigned long flags; | ||
| 62 | unsigned int i; | ||
| 63 | u32 value; | ||
| 64 | |||
| 65 | spin_lock_irqsave(&group->lock, flags); | ||
| 66 | |||
| 67 | value = clk_readl(group->smstpcr); | ||
| 68 | if (enable) | ||
| 69 | value &= ~bitmask; | ||
| 70 | else | ||
| 71 | value |= bitmask; | ||
| 72 | clk_writel(value, group->smstpcr); | ||
| 73 | |||
| 74 | spin_unlock_irqrestore(&group->lock, flags); | ||
| 75 | |||
| 76 | if (!enable || !group->mstpsr) | ||
| 77 | return 0; | ||
| 78 | |||
| 79 | for (i = 1000; i > 0; --i) { | ||
| 80 | if (!(clk_readl(group->mstpsr) & bitmask)) | ||
| 81 | break; | ||
| 82 | cpu_relax(); | ||
| 83 | } | ||
| 84 | |||
| 85 | if (!i) { | ||
| 86 | pr_err("%s: failed to enable %p[%d]\n", __func__, | ||
| 87 | group->smstpcr, clock->bit_index); | ||
| 88 | return -ETIMEDOUT; | ||
| 89 | } | ||
| 90 | |||
| 91 | return 0; | ||
| 92 | } | ||
| 93 | |||
| 94 | static int cpg_mstp_clock_enable(struct clk_hw *hw) | ||
| 95 | { | ||
| 96 | return cpg_mstp_clock_endisable(hw, true); | ||
| 97 | } | ||
| 98 | |||
| 99 | static void cpg_mstp_clock_disable(struct clk_hw *hw) | ||
| 100 | { | ||
| 101 | cpg_mstp_clock_endisable(hw, false); | ||
| 102 | } | ||
| 103 | |||
| 104 | static int cpg_mstp_clock_is_enabled(struct clk_hw *hw) | ||
| 105 | { | ||
| 106 | struct mstp_clock *clock = to_mstp_clock(hw); | ||
| 107 | struct mstp_clock_group *group = clock->group; | ||
| 108 | u32 value; | ||
| 109 | |||
| 110 | if (group->mstpsr) | ||
| 111 | value = clk_readl(group->mstpsr); | ||
| 112 | else | ||
| 113 | value = clk_readl(group->smstpcr); | ||
| 114 | |||
| 115 | return !!(value & BIT(clock->bit_index)); | ||
| 116 | } | ||
| 117 | |||
| 118 | static const struct clk_ops cpg_mstp_clock_ops = { | ||
| 119 | .enable = cpg_mstp_clock_enable, | ||
| 120 | .disable = cpg_mstp_clock_disable, | ||
| 121 | .is_enabled = cpg_mstp_clock_is_enabled, | ||
| 122 | }; | ||
| 123 | |||
| 124 | static struct clk * __init | ||
| 125 | cpg_mstp_clock_register(const char *name, const char *parent_name, | ||
| 126 | unsigned int index, struct mstp_clock_group *group) | ||
| 127 | { | ||
| 128 | struct clk_init_data init; | ||
| 129 | struct mstp_clock *clock; | ||
| 130 | struct clk *clk; | ||
| 131 | |||
| 132 | clock = kzalloc(sizeof(*clock), GFP_KERNEL); | ||
| 133 | if (!clock) { | ||
| 134 | pr_err("%s: failed to allocate MSTP clock.\n", __func__); | ||
| 135 | return ERR_PTR(-ENOMEM); | ||
| 136 | } | ||
| 137 | |||
| 138 | init.name = name; | ||
| 139 | init.ops = &cpg_mstp_clock_ops; | ||
| 140 | init.flags = CLK_IS_BASIC; | ||
| 141 | init.parent_names = &parent_name; | ||
| 142 | init.num_parents = 1; | ||
| 143 | |||
| 144 | clock->bit_index = index; | ||
| 145 | clock->group = group; | ||
| 146 | clock->hw.init = &init; | ||
| 147 | |||
| 148 | clk = clk_register(NULL, &clock->hw); | ||
| 149 | |||
| 150 | if (IS_ERR(clk)) | ||
| 151 | kfree(clock); | ||
| 152 | |||
| 153 | return clk; | ||
| 154 | } | ||
| 155 | |||
| 156 | static void __init cpg_mstp_clocks_init(struct device_node *np) | ||
| 157 | { | ||
| 158 | struct mstp_clock_group *group; | ||
| 159 | struct clk **clks; | ||
| 160 | unsigned int i; | ||
| 161 | |||
| 162 | group = kzalloc(sizeof(*group), GFP_KERNEL); | ||
| 163 | clks = kzalloc(MSTP_MAX_CLOCKS * sizeof(*clks), GFP_KERNEL); | ||
| 164 | if (group == NULL || clks == NULL) { | ||
| 165 | kfree(group); | ||
| 166 | kfree(clks); | ||
| 167 | pr_err("%s: failed to allocate group\n", __func__); | ||
| 168 | return; | ||
| 169 | } | ||
| 170 | |||
| 171 | spin_lock_init(&group->lock); | ||
| 172 | group->data.clks = clks; | ||
| 173 | |||
| 174 | group->smstpcr = of_iomap(np, 0); | ||
| 175 | group->mstpsr = of_iomap(np, 1); | ||
| 176 | |||
| 177 | if (group->smstpcr == NULL) { | ||
| 178 | pr_err("%s: failed to remap SMSTPCR\n", __func__); | ||
| 179 | kfree(group); | ||
| 180 | kfree(clks); | ||
| 181 | return; | ||
| 182 | } | ||
| 183 | |||
| 184 | for (i = 0; i < MSTP_MAX_CLOCKS; ++i) { | ||
| 185 | const char *parent_name; | ||
| 186 | const char *name; | ||
| 187 | u32 clkidx; | ||
| 188 | int ret; | ||
| 189 | |||
| 190 | /* Skip clocks with no name. */ | ||
| 191 | ret = of_property_read_string_index(np, "clock-output-names", | ||
| 192 | i, &name); | ||
| 193 | if (ret < 0 || strlen(name) == 0) | ||
| 194 | continue; | ||
| 195 | |||
| 196 | parent_name = of_clk_get_parent_name(np, i); | ||
| 197 | ret = of_property_read_u32_index(np, "renesas,clock-indices", i, | ||
| 198 | &clkidx); | ||
| 199 | if (parent_name == NULL || ret < 0) | ||
| 200 | break; | ||
| 201 | |||
| 202 | if (clkidx >= MSTP_MAX_CLOCKS) { | ||
| 203 | pr_err("%s: invalid clock %s %s index %u)\n", | ||
| 204 | __func__, np->name, name, clkidx); | ||
| 205 | continue; | ||
| 206 | } | ||
| 207 | |||
| 208 | clks[clkidx] = cpg_mstp_clock_register(name, parent_name, i, | ||
| 209 | group); | ||
| 210 | if (!IS_ERR(clks[clkidx])) { | ||
| 211 | group->data.clk_num = max(group->data.clk_num, clkidx); | ||
| 212 | /* | ||
| 213 | * Register a clkdev to let board code retrieve the | ||
| 214 | * clock by name and register aliases for non-DT | ||
| 215 | * devices. | ||
| 216 | * | ||
| 217 | * FIXME: Remove this when all devices that require a | ||
| 218 | * clock will be instantiated from DT. | ||
| 219 | */ | ||
| 220 | clk_register_clkdev(clks[clkidx], name, NULL); | ||
| 221 | } else { | ||
| 222 | pr_err("%s: failed to register %s %s clock (%ld)\n", | ||
| 223 | __func__, np->name, name, PTR_ERR(clks[clkidx])); | ||
| 224 | } | ||
| 225 | } | ||
| 226 | |||
| 227 | of_clk_add_provider(np, of_clk_src_onecell_get, &group->data); | ||
| 228 | } | ||
| 229 | CLK_OF_DECLARE(cpg_mstp_clks, "renesas,cpg-mstp-clocks", cpg_mstp_clocks_init); | ||
diff --git a/drivers/clk/shmobile/clk-rcar-gen2.c b/drivers/clk/shmobile/clk-rcar-gen2.c new file mode 100644 index 000000000000..a59ec217a124 --- /dev/null +++ b/drivers/clk/shmobile/clk-rcar-gen2.c | |||
| @@ -0,0 +1,298 @@ | |||
| 1 | /* | ||
| 2 | * rcar_gen2 Core CPG Clocks | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Ideas On Board SPRL | ||
| 5 | * | ||
| 6 | * Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License as published by | ||
| 10 | * the Free Software Foundation; version 2 of the License. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #include <linux/clk-provider.h> | ||
| 14 | #include <linux/clkdev.h> | ||
| 15 | #include <linux/clk/shmobile.h> | ||
| 16 | #include <linux/init.h> | ||
| 17 | #include <linux/kernel.h> | ||
| 18 | #include <linux/math64.h> | ||
| 19 | #include <linux/of.h> | ||
| 20 | #include <linux/of_address.h> | ||
| 21 | #include <linux/spinlock.h> | ||
| 22 | |||
| 23 | struct rcar_gen2_cpg { | ||
| 24 | struct clk_onecell_data data; | ||
| 25 | spinlock_t lock; | ||
| 26 | void __iomem *reg; | ||
| 27 | }; | ||
| 28 | |||
| 29 | #define CPG_SDCKCR 0x00000074 | ||
| 30 | #define CPG_PLL0CR 0x000000d8 | ||
| 31 | #define CPG_FRQCRC 0x000000e0 | ||
| 32 | #define CPG_FRQCRC_ZFC_MASK (0x1f << 8) | ||
| 33 | #define CPG_FRQCRC_ZFC_SHIFT 8 | ||
| 34 | |||
| 35 | /* ----------------------------------------------------------------------------- | ||
| 36 | * Z Clock | ||
| 37 | * | ||
| 38 | * Traits of this clock: | ||
| 39 | * prepare - clk_prepare only ensures that parents are prepared | ||
| 40 | * enable - clk_enable only ensures that parents are enabled | ||
| 41 | * rate - rate is adjustable. clk->rate = parent->rate * mult / 32 | ||
| 42 | * parent - fixed parent. No clk_set_parent support | ||
| 43 | */ | ||
| 44 | |||
| 45 | struct cpg_z_clk { | ||
| 46 | struct clk_hw hw; | ||
| 47 | void __iomem *reg; | ||
| 48 | }; | ||
| 49 | |||
| 50 | #define to_z_clk(_hw) container_of(_hw, struct cpg_z_clk, hw) | ||
| 51 | |||
| 52 | static unsigned long cpg_z_clk_recalc_rate(struct clk_hw *hw, | ||
| 53 | unsigned long parent_rate) | ||
| 54 | { | ||
| 55 | struct cpg_z_clk *zclk = to_z_clk(hw); | ||
| 56 | unsigned int mult; | ||
| 57 | unsigned int val; | ||
| 58 | |||
| 59 | val = (clk_readl(zclk->reg) & CPG_FRQCRC_ZFC_MASK) | ||
| 60 | >> CPG_FRQCRC_ZFC_SHIFT; | ||
| 61 | mult = 32 - val; | ||
| 62 | |||
| 63 | return div_u64((u64)parent_rate * mult, 32); | ||
| 64 | } | ||
| 65 | |||
| 66 | static long cpg_z_clk_round_rate(struct clk_hw *hw, unsigned long rate, | ||
| 67 | unsigned long *parent_rate) | ||
| 68 | { | ||
| 69 | unsigned long prate = *parent_rate; | ||
| 70 | unsigned int mult; | ||
| 71 | |||
| 72 | if (!prate) | ||
| 73 | prate = 1; | ||
| 74 | |||
| 75 | mult = div_u64((u64)rate * 32, prate); | ||
| 76 | mult = clamp(mult, 1U, 32U); | ||
| 77 | |||
| 78 | return *parent_rate / 32 * mult; | ||
| 79 | } | ||
| 80 | |||
| 81 | static int cpg_z_clk_set_rate(struct clk_hw *hw, unsigned long rate, | ||
| 82 | unsigned long parent_rate) | ||
| 83 | { | ||
| 84 | struct cpg_z_clk *zclk = to_z_clk(hw); | ||
| 85 | unsigned int mult; | ||
| 86 | u32 val; | ||
| 87 | |||
| 88 | mult = div_u64((u64)rate * 32, parent_rate); | ||
| 89 | mult = clamp(mult, 1U, 32U); | ||
| 90 | |||
| 91 | val = clk_readl(zclk->reg); | ||
| 92 | val &= ~CPG_FRQCRC_ZFC_MASK; | ||
| 93 | val |= (32 - mult) << CPG_FRQCRC_ZFC_SHIFT; | ||
| 94 | clk_writel(val, zclk->reg); | ||
| 95 | |||
| 96 | return 0; | ||
| 97 | } | ||
| 98 | |||
| 99 | static const struct clk_ops cpg_z_clk_ops = { | ||
| 100 | .recalc_rate = cpg_z_clk_recalc_rate, | ||
| 101 | .round_rate = cpg_z_clk_round_rate, | ||
| 102 | .set_rate = cpg_z_clk_set_rate, | ||
| 103 | }; | ||
| 104 | |||
| 105 | static struct clk * __init cpg_z_clk_register(struct rcar_gen2_cpg *cpg) | ||
| 106 | { | ||
| 107 | static const char *parent_name = "pll0"; | ||
| 108 | struct clk_init_data init; | ||
| 109 | struct cpg_z_clk *zclk; | ||
| 110 | struct clk *clk; | ||
| 111 | |||
| 112 | zclk = kzalloc(sizeof(*zclk), GFP_KERNEL); | ||
| 113 | if (!zclk) | ||
| 114 | return ERR_PTR(-ENOMEM); | ||
| 115 | |||
| 116 | init.name = "z"; | ||
| 117 | init.ops = &cpg_z_clk_ops; | ||
| 118 | init.flags = 0; | ||
| 119 | init.parent_names = &parent_name; | ||
| 120 | init.num_parents = 1; | ||
| 121 | |||
| 122 | zclk->reg = cpg->reg + CPG_FRQCRC; | ||
| 123 | zclk->hw.init = &init; | ||
| 124 | |||
| 125 | clk = clk_register(NULL, &zclk->hw); | ||
| 126 | if (IS_ERR(clk)) | ||
| 127 | kfree(zclk); | ||
| 128 | |||
| 129 | return clk; | ||
| 130 | } | ||
| 131 | |||
| 132 | /* ----------------------------------------------------------------------------- | ||
| 133 | * CPG Clock Data | ||
| 134 | */ | ||
| 135 | |||
| 136 | /* | ||
| 137 | * MD EXTAL PLL0 PLL1 PLL3 | ||
| 138 | * 14 13 19 (MHz) *1 *1 | ||
| 139 | *--------------------------------------------------- | ||
| 140 | * 0 0 0 15 x 1 x172/2 x208/2 x106 | ||
| 141 | * 0 0 1 15 x 1 x172/2 x208/2 x88 | ||
| 142 | * 0 1 0 20 x 1 x130/2 x156/2 x80 | ||
| 143 | * 0 1 1 20 x 1 x130/2 x156/2 x66 | ||
| 144 | * 1 0 0 26 / 2 x200/2 x240/2 x122 | ||
| 145 | * 1 0 1 26 / 2 x200/2 x240/2 x102 | ||
| 146 | * 1 1 0 30 / 2 x172/2 x208/2 x106 | ||
| 147 | * 1 1 1 30 / 2 x172/2 x208/2 x88 | ||
| 148 | * | ||
| 149 | * *1 : Table 7.6 indicates VCO ouput (PLLx = VCO/2) | ||
| 150 | */ | ||
| 151 | #define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 12) | \ | ||
| 152 | (((md) & BIT(13)) >> 12) | \ | ||
| 153 | (((md) & BIT(19)) >> 19)) | ||
| 154 | struct cpg_pll_config { | ||
| 155 | unsigned int extal_div; | ||
| 156 | unsigned int pll1_mult; | ||
| 157 | unsigned int pll3_mult; | ||
| 158 | }; | ||
| 159 | |||
| 160 | static const struct cpg_pll_config cpg_pll_configs[8] __initconst = { | ||
| 161 | { 1, 208, 106 }, { 1, 208, 88 }, { 1, 156, 80 }, { 1, 156, 66 }, | ||
| 162 | { 2, 240, 122 }, { 2, 240, 102 }, { 2, 208, 106 }, { 2, 208, 88 }, | ||
| 163 | }; | ||
| 164 | |||
| 165 | /* SDHI divisors */ | ||
| 166 | static const struct clk_div_table cpg_sdh_div_table[] = { | ||
| 167 | { 0, 2 }, { 1, 3 }, { 2, 4 }, { 3, 6 }, | ||
| 168 | { 4, 8 }, { 5, 12 }, { 6, 16 }, { 7, 18 }, | ||
| 169 | { 8, 24 }, { 10, 36 }, { 11, 48 }, { 0, 0 }, | ||
| 170 | }; | ||
| 171 | |||
| 172 | static const struct clk_div_table cpg_sd01_div_table[] = { | ||
| 173 | { 5, 12 }, { 6, 16 }, { 7, 18 }, { 8, 24 }, | ||
| 174 | { 10, 36 }, { 11, 48 }, { 12, 10 }, { 0, 0 }, | ||
| 175 | }; | ||
| 176 | |||
| 177 | /* ----------------------------------------------------------------------------- | ||
| 178 | * Initialization | ||
| 179 | */ | ||
| 180 | |||
| 181 | static u32 cpg_mode __initdata; | ||
| 182 | |||
| 183 | static struct clk * __init | ||
| 184 | rcar_gen2_cpg_register_clock(struct device_node *np, struct rcar_gen2_cpg *cpg, | ||
| 185 | const struct cpg_pll_config *config, | ||
| 186 | const char *name) | ||
| 187 | { | ||
| 188 | const struct clk_div_table *table = NULL; | ||
| 189 | const char *parent_name = "main"; | ||
| 190 | unsigned int shift; | ||
| 191 | unsigned int mult = 1; | ||
| 192 | unsigned int div = 1; | ||
| 193 | |||
| 194 | if (!strcmp(name, "main")) { | ||
| 195 | parent_name = of_clk_get_parent_name(np, 0); | ||
| 196 | div = config->extal_div; | ||
| 197 | } else if (!strcmp(name, "pll0")) { | ||
| 198 | /* PLL0 is a configurable multiplier clock. Register it as a | ||
| 199 | * fixed factor clock for now as there's no generic multiplier | ||
| 200 | * clock implementation and we currently have no need to change | ||
| 201 | * the multiplier value. | ||
| 202 | */ | ||
| 203 | u32 value = clk_readl(cpg->reg + CPG_PLL0CR); | ||
| 204 | mult = ((value >> 24) & ((1 << 7) - 1)) + 1; | ||
| 205 | } else if (!strcmp(name, "pll1")) { | ||
| 206 | mult = config->pll1_mult / 2; | ||
| 207 | } else if (!strcmp(name, "pll3")) { | ||
| 208 | mult = config->pll3_mult; | ||
| 209 | } else if (!strcmp(name, "lb")) { | ||
| 210 | div = cpg_mode & BIT(18) ? 36 : 24; | ||
| 211 | } else if (!strcmp(name, "qspi")) { | ||
| 212 | div = (cpg_mode & (BIT(3) | BIT(2) | BIT(1))) == BIT(2) | ||
| 213 | ? 16 : 20; | ||
| 214 | } else if (!strcmp(name, "sdh")) { | ||
| 215 | table = cpg_sdh_div_table; | ||
| 216 | shift = 8; | ||
| 217 | } else if (!strcmp(name, "sd0")) { | ||
| 218 | table = cpg_sd01_div_table; | ||
| 219 | shift = 4; | ||
| 220 | } else if (!strcmp(name, "sd1")) { | ||
| 221 | table = cpg_sd01_div_table; | ||
| 222 | shift = 0; | ||
| 223 | } else if (!strcmp(name, "z")) { | ||
| 224 | return cpg_z_clk_register(cpg); | ||
| 225 | } else { | ||
| 226 | return ERR_PTR(-EINVAL); | ||
| 227 | } | ||
| 228 | |||
| 229 | if (!table) | ||
| 230 | return clk_register_fixed_factor(NULL, name, parent_name, 0, | ||
| 231 | mult, div); | ||
| 232 | else | ||
| 233 | return clk_register_divider_table(NULL, name, parent_name, 0, | ||
| 234 | cpg->reg + CPG_SDCKCR, shift, | ||
| 235 | 4, 0, table, &cpg->lock); | ||
| 236 | } | ||
| 237 | |||
| 238 | static void __init rcar_gen2_cpg_clocks_init(struct device_node *np) | ||
| 239 | { | ||
| 240 | const struct cpg_pll_config *config; | ||
| 241 | struct rcar_gen2_cpg *cpg; | ||
| 242 | struct clk **clks; | ||
| 243 | unsigned int i; | ||
| 244 | int num_clks; | ||
| 245 | |||
| 246 | num_clks = of_property_count_strings(np, "clock-output-names"); | ||
| 247 | if (num_clks < 0) { | ||
| 248 | pr_err("%s: failed to count clocks\n", __func__); | ||
| 249 | return; | ||
| 250 | } | ||
| 251 | |||
| 252 | cpg = kzalloc(sizeof(*cpg), GFP_KERNEL); | ||
| 253 | clks = kzalloc(num_clks * sizeof(*clks), GFP_KERNEL); | ||
| 254 | if (cpg == NULL || clks == NULL) { | ||
| 255 | /* We're leaking memory on purpose, there's no point in cleaning | ||
| 256 | * up as the system won't boot anyway. | ||
| 257 | */ | ||
| 258 | pr_err("%s: failed to allocate cpg\n", __func__); | ||
| 259 | return; | ||
| 260 | } | ||
| 261 | |||
| 262 | spin_lock_init(&cpg->lock); | ||
| 263 | |||
| 264 | cpg->data.clks = clks; | ||
| 265 | cpg->data.clk_num = num_clks; | ||
| 266 | |||
| 267 | cpg->reg = of_iomap(np, 0); | ||
| 268 | if (WARN_ON(cpg->reg == NULL)) | ||
| 269 | return; | ||
| 270 | |||
| 271 | config = &cpg_pll_configs[CPG_PLL_CONFIG_INDEX(cpg_mode)]; | ||
| 272 | |||
| 273 | for (i = 0; i < num_clks; ++i) { | ||
| 274 | const char *name; | ||
| 275 | struct clk *clk; | ||
| 276 | |||
| 277 | of_property_read_string_index(np, "clock-output-names", i, | ||
| 278 | &name); | ||
| 279 | |||
| 280 | clk = rcar_gen2_cpg_register_clock(np, cpg, config, name); | ||
| 281 | if (IS_ERR(clk)) | ||
| 282 | pr_err("%s: failed to register %s %s clock (%ld)\n", | ||
| 283 | __func__, np->name, name, PTR_ERR(clk)); | ||
| 284 | else | ||
| 285 | cpg->data.clks[i] = clk; | ||
| 286 | } | ||
| 287 | |||
| 288 | of_clk_add_provider(np, of_clk_src_onecell_get, &cpg->data); | ||
| 289 | } | ||
| 290 | CLK_OF_DECLARE(rcar_gen2_cpg_clks, "renesas,rcar-gen2-cpg-clocks", | ||
| 291 | rcar_gen2_cpg_clocks_init); | ||
| 292 | |||
| 293 | void __init rcar_gen2_clocks_init(u32 mode) | ||
| 294 | { | ||
| 295 | cpg_mode = mode; | ||
| 296 | |||
| 297 | of_clk_init(NULL); | ||
| 298 | } | ||
diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index 62b0de6a1837..48f76bc05da0 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c | |||
| @@ -71,6 +71,10 @@ enum { | |||
| 71 | MCT_L1_IRQ, | 71 | MCT_L1_IRQ, |
| 72 | MCT_L2_IRQ, | 72 | MCT_L2_IRQ, |
| 73 | MCT_L3_IRQ, | 73 | MCT_L3_IRQ, |
| 74 | MCT_L4_IRQ, | ||
| 75 | MCT_L5_IRQ, | ||
| 76 | MCT_L6_IRQ, | ||
| 77 | MCT_L7_IRQ, | ||
| 74 | MCT_NR_IRQS, | 78 | MCT_NR_IRQS, |
| 75 | }; | 79 | }; |
| 76 | 80 | ||
diff --git a/drivers/clocksource/nomadik-mtu.c b/drivers/clocksource/nomadik-mtu.c index 152a3f3875ee..a709cfa49d85 100644 --- a/drivers/clocksource/nomadik-mtu.c +++ b/drivers/clocksource/nomadik-mtu.c | |||
| @@ -20,7 +20,6 @@ | |||
| 20 | #include <linux/jiffies.h> | 20 | #include <linux/jiffies.h> |
| 21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
| 22 | #include <linux/err.h> | 22 | #include <linux/err.h> |
| 23 | #include <linux/platform_data/clocksource-nomadik-mtu.h> | ||
| 24 | #include <linux/sched_clock.h> | 23 | #include <linux/sched_clock.h> |
| 25 | #include <asm/mach/time.h> | 24 | #include <asm/mach/time.h> |
| 26 | 25 | ||
| @@ -103,7 +102,7 @@ static int nmdk_clkevt_next(unsigned long evt, struct clock_event_device *ev) | |||
| 103 | return 0; | 102 | return 0; |
| 104 | } | 103 | } |
| 105 | 104 | ||
| 106 | void nmdk_clkevt_reset(void) | 105 | static void nmdk_clkevt_reset(void) |
| 107 | { | 106 | { |
| 108 | if (clkevt_periodic) { | 107 | if (clkevt_periodic) { |
| 109 | /* Timer: configure load and background-load, and fire it up */ | 108 | /* Timer: configure load and background-load, and fire it up */ |
| @@ -144,7 +143,7 @@ static void nmdk_clkevt_mode(enum clock_event_mode mode, | |||
| 144 | } | 143 | } |
| 145 | } | 144 | } |
| 146 | 145 | ||
| 147 | void nmdk_clksrc_reset(void) | 146 | static void nmdk_clksrc_reset(void) |
| 148 | { | 147 | { |
| 149 | /* Disable */ | 148 | /* Disable */ |
| 150 | writel(0, mtu_base + MTU_CR(0)); | 149 | writel(0, mtu_base + MTU_CR(0)); |
| @@ -192,8 +191,8 @@ static struct irqaction nmdk_timer_irq = { | |||
| 192 | .dev_id = &nmdk_clkevt, | 191 | .dev_id = &nmdk_clkevt, |
| 193 | }; | 192 | }; |
| 194 | 193 | ||
| 195 | static void __init __nmdk_timer_init(void __iomem *base, int irq, | 194 | static void __init nmdk_timer_init(void __iomem *base, int irq, |
| 196 | struct clk *pclk, struct clk *clk) | 195 | struct clk *pclk, struct clk *clk) |
| 197 | { | 196 | { |
| 198 | unsigned long rate; | 197 | unsigned long rate; |
| 199 | 198 | ||
| @@ -245,18 +244,6 @@ static void __init __nmdk_timer_init(void __iomem *base, int irq, | |||
| 245 | register_current_timer_delay(&mtu_delay_timer); | 244 | register_current_timer_delay(&mtu_delay_timer); |
| 246 | } | 245 | } |
| 247 | 246 | ||
| 248 | void __init nmdk_timer_init(void __iomem *base, int irq) | ||
| 249 | { | ||
| 250 | struct clk *clk0, *pclk0; | ||
| 251 | |||
| 252 | pclk0 = clk_get_sys("mtu0", "apb_pclk"); | ||
| 253 | BUG_ON(IS_ERR(pclk0)); | ||
| 254 | clk0 = clk_get_sys("mtu0", NULL); | ||
| 255 | BUG_ON(IS_ERR(clk0)); | ||
| 256 | |||
| 257 | __nmdk_timer_init(base, irq, pclk0, clk0); | ||
| 258 | } | ||
| 259 | |||
| 260 | static void __init nmdk_timer_of_init(struct device_node *node) | 247 | static void __init nmdk_timer_of_init(struct device_node *node) |
| 261 | { | 248 | { |
| 262 | struct clk *pclk; | 249 | struct clk *pclk; |
| @@ -280,7 +267,7 @@ static void __init nmdk_timer_of_init(struct device_node *node) | |||
| 280 | if (irq <= 0) | 267 | if (irq <= 0) |
| 281 | panic("Can't parse IRQ"); | 268 | panic("Can't parse IRQ"); |
| 282 | 269 | ||
| 283 | __nmdk_timer_init(base, irq, pclk, clk); | 270 | nmdk_timer_init(base, irq, pclk, clk); |
| 284 | } | 271 | } |
| 285 | CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu", | 272 | CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu", |
| 286 | nmdk_timer_of_init); | 273 | nmdk_timer_of_init); |
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index b8c031b7de4e..00a2de957b23 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c | |||
| @@ -2409,6 +2409,7 @@ static void d40_set_prio_realtime(struct d40_chan *d40c) | |||
| 2409 | #define D40_DT_FLAGS_DIR(flags) ((flags >> 1) & 0x1) | 2409 | #define D40_DT_FLAGS_DIR(flags) ((flags >> 1) & 0x1) |
| 2410 | #define D40_DT_FLAGS_BIG_ENDIAN(flags) ((flags >> 2) & 0x1) | 2410 | #define D40_DT_FLAGS_BIG_ENDIAN(flags) ((flags >> 2) & 0x1) |
| 2411 | #define D40_DT_FLAGS_FIXED_CHAN(flags) ((flags >> 3) & 0x1) | 2411 | #define D40_DT_FLAGS_FIXED_CHAN(flags) ((flags >> 3) & 0x1) |
| 2412 | #define D40_DT_FLAGS_HIGH_PRIO(flags) ((flags >> 4) & 0x1) | ||
| 2412 | 2413 | ||
| 2413 | static struct dma_chan *d40_xlate(struct of_phandle_args *dma_spec, | 2414 | static struct dma_chan *d40_xlate(struct of_phandle_args *dma_spec, |
| 2414 | struct of_dma *ofdma) | 2415 | struct of_dma *ofdma) |
| @@ -2446,6 +2447,9 @@ static struct dma_chan *d40_xlate(struct of_phandle_args *dma_spec, | |||
| 2446 | cfg.use_fixed_channel = true; | 2447 | cfg.use_fixed_channel = true; |
| 2447 | } | 2448 | } |
| 2448 | 2449 | ||
| 2450 | if (D40_DT_FLAGS_HIGH_PRIO(flags)) | ||
| 2451 | cfg.high_priority = true; | ||
| 2452 | |||
| 2449 | return dma_request_channel(cap, stedma40_filter, &cfg); | 2453 | return dma_request_channel(cap, stedma40_filter, &cfg); |
| 2450 | } | 2454 | } |
| 2451 | 2455 | ||
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c index cd2b1a1c9275..53a11114927f 100644 --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | * Copyright (C) 2008,2009 STMicroelectronics | 4 | * Copyright (C) 2008,2009 STMicroelectronics |
| 5 | * Copyright (C) 2009 Alessandro Rubini <rubini@unipv.it> | 5 | * Copyright (C) 2009 Alessandro Rubini <rubini@unipv.it> |
| 6 | * Rewritten based on work by Prafulla WADASKAR <prafulla.wadaskar@st.com> | 6 | * Rewritten based on work by Prafulla WADASKAR <prafulla.wadaskar@st.com> |
| 7 | * Copyright (C) 2011 Linus Walleij <linus.walleij@linaro.org> | 7 | * Copyright (C) 2011-2013 Linus Walleij <linus.walleij@linaro.org> |
| 8 | * | 8 | * |
| 9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
| 10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
| @@ -33,7 +33,6 @@ | |||
| 33 | #include <linux/pinctrl/pinconf.h> | 33 | #include <linux/pinctrl/pinconf.h> |
| 34 | /* Since we request GPIOs from ourself */ | 34 | /* Since we request GPIOs from ourself */ |
| 35 | #include <linux/pinctrl/consumer.h> | 35 | #include <linux/pinctrl/consumer.h> |
| 36 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 37 | #include "pinctrl-nomadik.h" | 36 | #include "pinctrl-nomadik.h" |
| 38 | #include "core.h" | 37 | #include "core.h" |
| 39 | 38 | ||
| @@ -45,6 +44,221 @@ | |||
| 45 | * Symbols in this file are called "nmk_gpio" for "nomadik gpio" | 44 | * Symbols in this file are called "nmk_gpio" for "nomadik gpio" |
| 46 | */ | 45 | */ |
| 47 | 46 | ||
| 47 | /* | ||
| 48 | * pin configurations are represented by 32-bit integers: | ||
| 49 | * | ||
| 50 | * bit 0.. 8 - Pin Number (512 Pins Maximum) | ||
| 51 | * bit 9..10 - Alternate Function Selection | ||
| 52 | * bit 11..12 - Pull up/down state | ||
| 53 | * bit 13 - Sleep mode behaviour | ||
| 54 | * bit 14 - Direction | ||
| 55 | * bit 15 - Value (if output) | ||
| 56 | * bit 16..18 - SLPM pull up/down state | ||
| 57 | * bit 19..20 - SLPM direction | ||
| 58 | * bit 21..22 - SLPM Value (if output) | ||
| 59 | * bit 23..25 - PDIS value (if input) | ||
| 60 | * bit 26 - Gpio mode | ||
| 61 | * bit 27 - Sleep mode | ||
| 62 | * | ||
| 63 | * to facilitate the definition, the following macros are provided | ||
| 64 | * | ||
| 65 | * PIN_CFG_DEFAULT - default config (0): | ||
| 66 | * pull up/down = disabled | ||
| 67 | * sleep mode = input/wakeup | ||
| 68 | * direction = input | ||
| 69 | * value = low | ||
| 70 | * SLPM direction = same as normal | ||
| 71 | * SLPM pull = same as normal | ||
| 72 | * SLPM value = same as normal | ||
| 73 | * | ||
| 74 | * PIN_CFG - default config with alternate function | ||
| 75 | */ | ||
| 76 | |||
| 77 | typedef unsigned long pin_cfg_t; | ||
| 78 | |||
| 79 | #define PIN_NUM_MASK 0x1ff | ||
| 80 | #define PIN_NUM(x) ((x) & PIN_NUM_MASK) | ||
| 81 | |||
| 82 | #define PIN_ALT_SHIFT 9 | ||
| 83 | #define PIN_ALT_MASK (0x3 << PIN_ALT_SHIFT) | ||
| 84 | #define PIN_ALT(x) (((x) & PIN_ALT_MASK) >> PIN_ALT_SHIFT) | ||
| 85 | #define PIN_GPIO (NMK_GPIO_ALT_GPIO << PIN_ALT_SHIFT) | ||
| 86 | #define PIN_ALT_A (NMK_GPIO_ALT_A << PIN_ALT_SHIFT) | ||
| 87 | #define PIN_ALT_B (NMK_GPIO_ALT_B << PIN_ALT_SHIFT) | ||
| 88 | #define PIN_ALT_C (NMK_GPIO_ALT_C << PIN_ALT_SHIFT) | ||
| 89 | |||
| 90 | #define PIN_PULL_SHIFT 11 | ||
| 91 | #define PIN_PULL_MASK (0x3 << PIN_PULL_SHIFT) | ||
| 92 | #define PIN_PULL(x) (((x) & PIN_PULL_MASK) >> PIN_PULL_SHIFT) | ||
| 93 | #define PIN_PULL_NONE (NMK_GPIO_PULL_NONE << PIN_PULL_SHIFT) | ||
| 94 | #define PIN_PULL_UP (NMK_GPIO_PULL_UP << PIN_PULL_SHIFT) | ||
| 95 | #define PIN_PULL_DOWN (NMK_GPIO_PULL_DOWN << PIN_PULL_SHIFT) | ||
| 96 | |||
| 97 | #define PIN_SLPM_SHIFT 13 | ||
| 98 | #define PIN_SLPM_MASK (0x1 << PIN_SLPM_SHIFT) | ||
| 99 | #define PIN_SLPM(x) (((x) & PIN_SLPM_MASK) >> PIN_SLPM_SHIFT) | ||
| 100 | #define PIN_SLPM_MAKE_INPUT (NMK_GPIO_SLPM_INPUT << PIN_SLPM_SHIFT) | ||
| 101 | #define PIN_SLPM_NOCHANGE (NMK_GPIO_SLPM_NOCHANGE << PIN_SLPM_SHIFT) | ||
| 102 | /* These two replace the above in DB8500v2+ */ | ||
| 103 | #define PIN_SLPM_WAKEUP_ENABLE (NMK_GPIO_SLPM_WAKEUP_ENABLE << PIN_SLPM_SHIFT) | ||
| 104 | #define PIN_SLPM_WAKEUP_DISABLE (NMK_GPIO_SLPM_WAKEUP_DISABLE << PIN_SLPM_SHIFT) | ||
| 105 | #define PIN_SLPM_USE_MUX_SETTINGS_IN_SLEEP PIN_SLPM_WAKEUP_DISABLE | ||
| 106 | |||
| 107 | #define PIN_SLPM_GPIO PIN_SLPM_WAKEUP_ENABLE /* In SLPM, pin is a gpio */ | ||
| 108 | #define PIN_SLPM_ALTFUNC PIN_SLPM_WAKEUP_DISABLE /* In SLPM, pin is altfunc */ | ||
| 109 | |||
| 110 | #define PIN_DIR_SHIFT 14 | ||
| 111 | #define PIN_DIR_MASK (0x1 << PIN_DIR_SHIFT) | ||
| 112 | #define PIN_DIR(x) (((x) & PIN_DIR_MASK) >> PIN_DIR_SHIFT) | ||
| 113 | #define PIN_DIR_INPUT (0 << PIN_DIR_SHIFT) | ||
| 114 | #define PIN_DIR_OUTPUT (1 << PIN_DIR_SHIFT) | ||
| 115 | |||
| 116 | #define PIN_VAL_SHIFT 15 | ||
| 117 | #define PIN_VAL_MASK (0x1 << PIN_VAL_SHIFT) | ||
| 118 | #define PIN_VAL(x) (((x) & PIN_VAL_MASK) >> PIN_VAL_SHIFT) | ||
| 119 | #define PIN_VAL_LOW (0 << PIN_VAL_SHIFT) | ||
| 120 | #define PIN_VAL_HIGH (1 << PIN_VAL_SHIFT) | ||
| 121 | |||
| 122 | #define PIN_SLPM_PULL_SHIFT 16 | ||
| 123 | #define PIN_SLPM_PULL_MASK (0x7 << PIN_SLPM_PULL_SHIFT) | ||
| 124 | #define PIN_SLPM_PULL(x) \ | ||
| 125 | (((x) & PIN_SLPM_PULL_MASK) >> PIN_SLPM_PULL_SHIFT) | ||
| 126 | #define PIN_SLPM_PULL_NONE \ | ||
| 127 | ((1 + NMK_GPIO_PULL_NONE) << PIN_SLPM_PULL_SHIFT) | ||
| 128 | #define PIN_SLPM_PULL_UP \ | ||
| 129 | ((1 + NMK_GPIO_PULL_UP) << PIN_SLPM_PULL_SHIFT) | ||
| 130 | #define PIN_SLPM_PULL_DOWN \ | ||
| 131 | ((1 + NMK_GPIO_PULL_DOWN) << PIN_SLPM_PULL_SHIFT) | ||
| 132 | |||
| 133 | #define PIN_SLPM_DIR_SHIFT 19 | ||
| 134 | #define PIN_SLPM_DIR_MASK (0x3 << PIN_SLPM_DIR_SHIFT) | ||
| 135 | #define PIN_SLPM_DIR(x) \ | ||
| 136 | (((x) & PIN_SLPM_DIR_MASK) >> PIN_SLPM_DIR_SHIFT) | ||
| 137 | #define PIN_SLPM_DIR_INPUT ((1 + 0) << PIN_SLPM_DIR_SHIFT) | ||
| 138 | #define PIN_SLPM_DIR_OUTPUT ((1 + 1) << PIN_SLPM_DIR_SHIFT) | ||
| 139 | |||
| 140 | #define PIN_SLPM_VAL_SHIFT 21 | ||
| 141 | #define PIN_SLPM_VAL_MASK (0x3 << PIN_SLPM_VAL_SHIFT) | ||
| 142 | #define PIN_SLPM_VAL(x) \ | ||
| 143 | (((x) & PIN_SLPM_VAL_MASK) >> PIN_SLPM_VAL_SHIFT) | ||
| 144 | #define PIN_SLPM_VAL_LOW ((1 + 0) << PIN_SLPM_VAL_SHIFT) | ||
| 145 | #define PIN_SLPM_VAL_HIGH ((1 + 1) << PIN_SLPM_VAL_SHIFT) | ||
| 146 | |||
| 147 | #define PIN_SLPM_PDIS_SHIFT 23 | ||
| 148 | #define PIN_SLPM_PDIS_MASK (0x3 << PIN_SLPM_PDIS_SHIFT) | ||
| 149 | #define PIN_SLPM_PDIS(x) \ | ||
| 150 | (((x) & PIN_SLPM_PDIS_MASK) >> PIN_SLPM_PDIS_SHIFT) | ||
| 151 | #define PIN_SLPM_PDIS_NO_CHANGE (0 << PIN_SLPM_PDIS_SHIFT) | ||
| 152 | #define PIN_SLPM_PDIS_DISABLED (1 << PIN_SLPM_PDIS_SHIFT) | ||
| 153 | #define PIN_SLPM_PDIS_ENABLED (2 << PIN_SLPM_PDIS_SHIFT) | ||
| 154 | |||
| 155 | #define PIN_LOWEMI_SHIFT 25 | ||
| 156 | #define PIN_LOWEMI_MASK (0x1 << PIN_LOWEMI_SHIFT) | ||
| 157 | #define PIN_LOWEMI(x) (((x) & PIN_LOWEMI_MASK) >> PIN_LOWEMI_SHIFT) | ||
| 158 | #define PIN_LOWEMI_DISABLED (0 << PIN_LOWEMI_SHIFT) | ||
| 159 | #define PIN_LOWEMI_ENABLED (1 << PIN_LOWEMI_SHIFT) | ||
| 160 | |||
| 161 | #define PIN_GPIOMODE_SHIFT 26 | ||
| 162 | #define PIN_GPIOMODE_MASK (0x1 << PIN_GPIOMODE_SHIFT) | ||
| 163 | #define PIN_GPIOMODE(x) (((x) & PIN_GPIOMODE_MASK) >> PIN_GPIOMODE_SHIFT) | ||
| 164 | #define PIN_GPIOMODE_DISABLED (0 << PIN_GPIOMODE_SHIFT) | ||
| 165 | #define PIN_GPIOMODE_ENABLED (1 << PIN_GPIOMODE_SHIFT) | ||
| 166 | |||
| 167 | #define PIN_SLEEPMODE_SHIFT 27 | ||
| 168 | #define PIN_SLEEPMODE_MASK (0x1 << PIN_SLEEPMODE_SHIFT) | ||
| 169 | #define PIN_SLEEPMODE(x) (((x) & PIN_SLEEPMODE_MASK) >> PIN_SLEEPMODE_SHIFT) | ||
| 170 | #define PIN_SLEEPMODE_DISABLED (0 << PIN_SLEEPMODE_SHIFT) | ||
| 171 | #define PIN_SLEEPMODE_ENABLED (1 << PIN_SLEEPMODE_SHIFT) | ||
| 172 | |||
| 173 | |||
| 174 | /* Shortcuts. Use these instead of separate DIR, PULL, and VAL. */ | ||
| 175 | #define PIN_INPUT_PULLDOWN (PIN_DIR_INPUT | PIN_PULL_DOWN) | ||
| 176 | #define PIN_INPUT_PULLUP (PIN_DIR_INPUT | PIN_PULL_UP) | ||
| 177 | #define PIN_INPUT_NOPULL (PIN_DIR_INPUT | PIN_PULL_NONE) | ||
| 178 | #define PIN_OUTPUT_LOW (PIN_DIR_OUTPUT | PIN_VAL_LOW) | ||
| 179 | #define PIN_OUTPUT_HIGH (PIN_DIR_OUTPUT | PIN_VAL_HIGH) | ||
| 180 | |||
| 181 | #define PIN_SLPM_INPUT_PULLDOWN (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_DOWN) | ||
| 182 | #define PIN_SLPM_INPUT_PULLUP (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_UP) | ||
| 183 | #define PIN_SLPM_INPUT_NOPULL (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_NONE) | ||
| 184 | #define PIN_SLPM_OUTPUT_LOW (PIN_SLPM_DIR_OUTPUT | PIN_SLPM_VAL_LOW) | ||
| 185 | #define PIN_SLPM_OUTPUT_HIGH (PIN_SLPM_DIR_OUTPUT | PIN_SLPM_VAL_HIGH) | ||
| 186 | |||
| 187 | #define PIN_CFG_DEFAULT (0) | ||
| 188 | |||
| 189 | #define PIN_CFG(num, alt) \ | ||
| 190 | (PIN_CFG_DEFAULT |\ | ||
| 191 | (PIN_NUM(num) | PIN_##alt)) | ||
| 192 | |||
| 193 | #define PIN_CFG_INPUT(num, alt, pull) \ | ||
| 194 | (PIN_CFG_DEFAULT |\ | ||
| 195 | (PIN_NUM(num) | PIN_##alt | PIN_INPUT_##pull)) | ||
| 196 | |||
| 197 | #define PIN_CFG_OUTPUT(num, alt, val) \ | ||
| 198 | (PIN_CFG_DEFAULT |\ | ||
| 199 | (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) | ||
| 200 | |||
| 201 | /* | ||
| 202 | * "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving | ||
| 203 | * the "gpio" namespace for generic and cross-machine functions | ||
| 204 | */ | ||
| 205 | |||
| 206 | #define GPIO_BLOCK_SHIFT 5 | ||
| 207 | #define NMK_GPIO_PER_CHIP (1 << GPIO_BLOCK_SHIFT) | ||
| 208 | |||
| 209 | /* Register in the logic block */ | ||
| 210 | #define NMK_GPIO_DAT 0x00 | ||
| 211 | #define NMK_GPIO_DATS 0x04 | ||
| 212 | #define NMK_GPIO_DATC 0x08 | ||
| 213 | #define NMK_GPIO_PDIS 0x0c | ||
| 214 | #define NMK_GPIO_DIR 0x10 | ||
| 215 | #define NMK_GPIO_DIRS 0x14 | ||
| 216 | #define NMK_GPIO_DIRC 0x18 | ||
| 217 | #define NMK_GPIO_SLPC 0x1c | ||
| 218 | #define NMK_GPIO_AFSLA 0x20 | ||
| 219 | #define NMK_GPIO_AFSLB 0x24 | ||
| 220 | #define NMK_GPIO_LOWEMI 0x28 | ||
| 221 | |||
| 222 | #define NMK_GPIO_RIMSC 0x40 | ||
| 223 | #define NMK_GPIO_FIMSC 0x44 | ||
| 224 | #define NMK_GPIO_IS 0x48 | ||
| 225 | #define NMK_GPIO_IC 0x4c | ||
| 226 | #define NMK_GPIO_RWIMSC 0x50 | ||
| 227 | #define NMK_GPIO_FWIMSC 0x54 | ||
| 228 | #define NMK_GPIO_WKS 0x58 | ||
| 229 | /* These appear in DB8540 and later ASICs */ | ||
| 230 | #define NMK_GPIO_EDGELEVEL 0x5C | ||
| 231 | #define NMK_GPIO_LEVEL 0x60 | ||
| 232 | |||
| 233 | |||
| 234 | /* Pull up/down values */ | ||
| 235 | enum nmk_gpio_pull { | ||
| 236 | NMK_GPIO_PULL_NONE, | ||
| 237 | NMK_GPIO_PULL_UP, | ||
| 238 | NMK_GPIO_PULL_DOWN, | ||
| 239 | }; | ||
| 240 | |||
| 241 | /* Sleep mode */ | ||
| 242 | enum nmk_gpio_slpm { | ||
| 243 | NMK_GPIO_SLPM_INPUT, | ||
| 244 | NMK_GPIO_SLPM_WAKEUP_ENABLE = NMK_GPIO_SLPM_INPUT, | ||
| 245 | NMK_GPIO_SLPM_NOCHANGE, | ||
| 246 | NMK_GPIO_SLPM_WAKEUP_DISABLE = NMK_GPIO_SLPM_NOCHANGE, | ||
| 247 | }; | ||
| 248 | |||
| 249 | /* | ||
| 250 | * Platform data to register a block: only the initial gpio/irq number. | ||
| 251 | */ | ||
| 252 | struct nmk_gpio_platform_data { | ||
| 253 | char *name; | ||
| 254 | int first_gpio; | ||
| 255 | int first_irq; | ||
| 256 | int num_gpio; | ||
| 257 | u32 (*get_secondary_status)(unsigned int bank); | ||
| 258 | void (*set_ioforce)(bool enable); | ||
| 259 | bool supports_sleepmode; | ||
| 260 | }; | ||
| 261 | |||
| 48 | struct nmk_gpio_chip { | 262 | struct nmk_gpio_chip { |
| 49 | struct gpio_chip chip; | 263 | struct gpio_chip chip; |
| 50 | struct irq_domain *domain; | 264 | struct irq_domain *domain; |
| @@ -1026,7 +1240,7 @@ static const struct irq_domain_ops nmk_gpio_irq_simple_ops = { | |||
| 1026 | 1240 | ||
| 1027 | static int nmk_gpio_probe(struct platform_device *dev) | 1241 | static int nmk_gpio_probe(struct platform_device *dev) |
| 1028 | { | 1242 | { |
| 1029 | struct nmk_gpio_platform_data *pdata = dev->dev.platform_data; | 1243 | struct nmk_gpio_platform_data *pdata; |
| 1030 | struct device_node *np = dev->dev.of_node; | 1244 | struct device_node *np = dev->dev.of_node; |
| 1031 | struct nmk_gpio_chip *nmk_chip; | 1245 | struct nmk_gpio_chip *nmk_chip; |
| 1032 | struct gpio_chip *chip; | 1246 | struct gpio_chip *chip; |
| @@ -1034,32 +1248,24 @@ static int nmk_gpio_probe(struct platform_device *dev) | |||
| 1034 | struct clk *clk; | 1248 | struct clk *clk; |
| 1035 | int secondary_irq; | 1249 | int secondary_irq; |
| 1036 | void __iomem *base; | 1250 | void __iomem *base; |
| 1037 | int irq_start = 0; | ||
| 1038 | int irq; | 1251 | int irq; |
| 1039 | int ret; | 1252 | int ret; |
| 1040 | 1253 | ||
| 1041 | if (!pdata && !np) { | 1254 | pdata = devm_kzalloc(&dev->dev, sizeof(*pdata), GFP_KERNEL); |
| 1042 | dev_err(&dev->dev, "No platform data or device tree found\n"); | 1255 | if (!pdata) |
| 1043 | return -ENODEV; | 1256 | return -ENOMEM; |
| 1044 | } | ||
| 1045 | |||
| 1046 | if (np) { | ||
| 1047 | pdata = devm_kzalloc(&dev->dev, sizeof(*pdata), GFP_KERNEL); | ||
| 1048 | if (!pdata) | ||
| 1049 | return -ENOMEM; | ||
| 1050 | |||
| 1051 | if (of_get_property(np, "st,supports-sleepmode", NULL)) | ||
| 1052 | pdata->supports_sleepmode = true; | ||
| 1053 | 1257 | ||
| 1054 | if (of_property_read_u32(np, "gpio-bank", &dev->id)) { | 1258 | if (of_get_property(np, "st,supports-sleepmode", NULL)) |
| 1055 | dev_err(&dev->dev, "gpio-bank property not found\n"); | 1259 | pdata->supports_sleepmode = true; |
| 1056 | return -EINVAL; | ||
| 1057 | } | ||
| 1058 | 1260 | ||
| 1059 | pdata->first_gpio = dev->id * NMK_GPIO_PER_CHIP; | 1261 | if (of_property_read_u32(np, "gpio-bank", &dev->id)) { |
| 1060 | pdata->num_gpio = NMK_GPIO_PER_CHIP; | 1262 | dev_err(&dev->dev, "gpio-bank property not found\n"); |
| 1263 | return -EINVAL; | ||
| 1061 | } | 1264 | } |
| 1062 | 1265 | ||
| 1266 | pdata->first_gpio = dev->id * NMK_GPIO_PER_CHIP; | ||
| 1267 | pdata->num_gpio = NMK_GPIO_PER_CHIP; | ||
| 1268 | |||
| 1063 | irq = platform_get_irq(dev, 0); | 1269 | irq = platform_get_irq(dev, 0); |
| 1064 | if (irq < 0) | 1270 | if (irq < 0) |
| 1065 | return irq; | 1271 | return irq; |
| @@ -1107,10 +1313,7 @@ static int nmk_gpio_probe(struct platform_device *dev) | |||
| 1107 | clk_enable(nmk_chip->clk); | 1313 | clk_enable(nmk_chip->clk); |
| 1108 | nmk_chip->lowemi = readl_relaxed(nmk_chip->addr + NMK_GPIO_LOWEMI); | 1314 | nmk_chip->lowemi = readl_relaxed(nmk_chip->addr + NMK_GPIO_LOWEMI); |
| 1109 | clk_disable(nmk_chip->clk); | 1315 | clk_disable(nmk_chip->clk); |
| 1110 | |||
| 1111 | #ifdef CONFIG_OF_GPIO | ||
| 1112 | chip->of_node = np; | 1316 | chip->of_node = np; |
| 1113 | #endif | ||
| 1114 | 1317 | ||
| 1115 | ret = gpiochip_add(&nmk_chip->chip); | 1318 | ret = gpiochip_add(&nmk_chip->chip); |
| 1116 | if (ret) | 1319 | if (ret) |
| @@ -1122,10 +1325,8 @@ static int nmk_gpio_probe(struct platform_device *dev) | |||
| 1122 | 1325 | ||
| 1123 | platform_set_drvdata(dev, nmk_chip); | 1326 | platform_set_drvdata(dev, nmk_chip); |
| 1124 | 1327 | ||
| 1125 | if (!np) | ||
| 1126 | irq_start = pdata->first_irq; | ||
| 1127 | nmk_chip->domain = irq_domain_add_simple(np, | 1328 | nmk_chip->domain = irq_domain_add_simple(np, |
| 1128 | NMK_GPIO_PER_CHIP, irq_start, | 1329 | NMK_GPIO_PER_CHIP, 0, |
| 1129 | &nmk_gpio_irq_simple_ops, nmk_chip); | 1330 | &nmk_gpio_irq_simple_ops, nmk_chip); |
| 1130 | if (!nmk_chip->domain) { | 1331 | if (!nmk_chip->domain) { |
| 1131 | dev_err(&dev->dev, "failed to create irqdomain\n"); | 1332 | dev_err(&dev->dev, "failed to create irqdomain\n"); |
| @@ -1858,11 +2059,10 @@ static int nmk_pinctrl_resume(struct platform_device *pdev) | |||
| 1858 | 2059 | ||
| 1859 | static int nmk_pinctrl_probe(struct platform_device *pdev) | 2060 | static int nmk_pinctrl_probe(struct platform_device *pdev) |
| 1860 | { | 2061 | { |
| 1861 | const struct platform_device_id *platid = platform_get_device_id(pdev); | 2062 | const struct of_device_id *match; |
| 1862 | struct device_node *np = pdev->dev.of_node; | 2063 | struct device_node *np = pdev->dev.of_node; |
| 1863 | struct device_node *prcm_np; | 2064 | struct device_node *prcm_np; |
| 1864 | struct nmk_pinctrl *npct; | 2065 | struct nmk_pinctrl *npct; |
| 1865 | struct resource *res; | ||
| 1866 | unsigned int version = 0; | 2066 | unsigned int version = 0; |
| 1867 | int i; | 2067 | int i; |
| 1868 | 2068 | ||
| @@ -1870,16 +2070,10 @@ static int nmk_pinctrl_probe(struct platform_device *pdev) | |||
| 1870 | if (!npct) | 2070 | if (!npct) |
| 1871 | return -ENOMEM; | 2071 | return -ENOMEM; |
| 1872 | 2072 | ||
| 1873 | if (platid) | 2073 | match = of_match_device(nmk_pinctrl_match, &pdev->dev); |
| 1874 | version = platid->driver_data; | 2074 | if (!match) |
| 1875 | else if (np) { | 2075 | return -ENODEV; |
| 1876 | const struct of_device_id *match; | 2076 | version = (unsigned int) match->data; |
| 1877 | |||
| 1878 | match = of_match_device(nmk_pinctrl_match, &pdev->dev); | ||
| 1879 | if (!match) | ||
| 1880 | return -ENODEV; | ||
| 1881 | version = (unsigned int) match->data; | ||
| 1882 | } | ||
| 1883 | 2077 | ||
| 1884 | /* Poke in other ASIC variants here */ | 2078 | /* Poke in other ASIC variants here */ |
| 1885 | if (version == PINCTRL_NMK_STN8815) | 2079 | if (version == PINCTRL_NMK_STN8815) |
| @@ -1889,17 +2083,9 @@ static int nmk_pinctrl_probe(struct platform_device *pdev) | |||
| 1889 | if (version == PINCTRL_NMK_DB8540) | 2083 | if (version == PINCTRL_NMK_DB8540) |
| 1890 | nmk_pinctrl_db8540_init(&npct->soc); | 2084 | nmk_pinctrl_db8540_init(&npct->soc); |
| 1891 | 2085 | ||
| 1892 | if (np) { | 2086 | prcm_np = of_parse_phandle(np, "prcm", 0); |
| 1893 | prcm_np = of_parse_phandle(np, "prcm", 0); | 2087 | if (prcm_np) |
| 1894 | if (prcm_np) | 2088 | npct->prcm_base = of_iomap(prcm_np, 0); |
| 1895 | npct->prcm_base = of_iomap(prcm_np, 0); | ||
| 1896 | } | ||
| 1897 | |||
| 1898 | /* Allow platform passed information to over-write DT. */ | ||
| 1899 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
| 1900 | if (res) | ||
| 1901 | npct->prcm_base = devm_ioremap(&pdev->dev, res->start, | ||
| 1902 | resource_size(res)); | ||
| 1903 | if (!npct->prcm_base) { | 2089 | if (!npct->prcm_base) { |
| 1904 | if (version == PINCTRL_NMK_STN8815) { | 2090 | if (version == PINCTRL_NMK_STN8815) { |
| 1905 | dev_info(&pdev->dev, | 2091 | dev_info(&pdev->dev, |
| @@ -1958,13 +2144,6 @@ static struct platform_driver nmk_gpio_driver = { | |||
| 1958 | .probe = nmk_gpio_probe, | 2144 | .probe = nmk_gpio_probe, |
| 1959 | }; | 2145 | }; |
| 1960 | 2146 | ||
| 1961 | static const struct platform_device_id nmk_pinctrl_id[] = { | ||
| 1962 | { "pinctrl-stn8815", PINCTRL_NMK_STN8815 }, | ||
| 1963 | { "pinctrl-db8500", PINCTRL_NMK_DB8500 }, | ||
| 1964 | { "pinctrl-db8540", PINCTRL_NMK_DB8540 }, | ||
| 1965 | { } | ||
| 1966 | }; | ||
| 1967 | |||
| 1968 | static struct platform_driver nmk_pinctrl_driver = { | 2147 | static struct platform_driver nmk_pinctrl_driver = { |
| 1969 | .driver = { | 2148 | .driver = { |
| 1970 | .owner = THIS_MODULE, | 2149 | .owner = THIS_MODULE, |
| @@ -1972,7 +2151,6 @@ static struct platform_driver nmk_pinctrl_driver = { | |||
| 1972 | .of_match_table = nmk_pinctrl_match, | 2151 | .of_match_table = nmk_pinctrl_match, |
| 1973 | }, | 2152 | }, |
| 1974 | .probe = nmk_pinctrl_probe, | 2153 | .probe = nmk_pinctrl_probe, |
| 1975 | .id_table = nmk_pinctrl_id, | ||
| 1976 | #ifdef CONFIG_PM | 2154 | #ifdef CONFIG_PM |
| 1977 | .suspend = nmk_pinctrl_suspend, | 2155 | .suspend = nmk_pinctrl_suspend, |
| 1978 | .resume = nmk_pinctrl_resume, | 2156 | .resume = nmk_pinctrl_resume, |
diff --git a/drivers/pinctrl/pinctrl-nomadik.h b/drivers/pinctrl/pinctrl-nomadik.h index bcd4191e10ea..d8215f1e70c7 100644 --- a/drivers/pinctrl/pinctrl-nomadik.h +++ b/drivers/pinctrl/pinctrl-nomadik.h | |||
| @@ -1,13 +1,23 @@ | |||
| 1 | #ifndef PINCTRL_PINCTRL_NOMADIK_H | 1 | #ifndef PINCTRL_PINCTRL_NOMADIK_H |
| 2 | #define PINCTRL_PINCTRL_NOMADIK_H | 2 | #define PINCTRL_PINCTRL_NOMADIK_H |
| 3 | 3 | ||
| 4 | #include <linux/platform_data/pinctrl-nomadik.h> | ||
| 5 | |||
| 6 | /* Package definitions */ | 4 | /* Package definitions */ |
| 7 | #define PINCTRL_NMK_STN8815 0 | 5 | #define PINCTRL_NMK_STN8815 0 |
| 8 | #define PINCTRL_NMK_DB8500 1 | 6 | #define PINCTRL_NMK_DB8500 1 |
| 9 | #define PINCTRL_NMK_DB8540 2 | 7 | #define PINCTRL_NMK_DB8540 2 |
| 10 | 8 | ||
| 9 | /* Alternate functions: function C is set in hw by setting both A and B */ | ||
| 10 | #define NMK_GPIO_ALT_GPIO 0 | ||
| 11 | #define NMK_GPIO_ALT_A 1 | ||
| 12 | #define NMK_GPIO_ALT_B 2 | ||
| 13 | #define NMK_GPIO_ALT_C (NMK_GPIO_ALT_A | NMK_GPIO_ALT_B) | ||
| 14 | |||
| 15 | #define NMK_GPIO_ALT_CX_SHIFT 2 | ||
| 16 | #define NMK_GPIO_ALT_C1 ((1<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 17 | #define NMK_GPIO_ALT_C2 ((2<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 18 | #define NMK_GPIO_ALT_C3 ((3<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 19 | #define NMK_GPIO_ALT_C4 ((4<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 20 | |||
| 11 | #define PRCM_GPIOCR_ALTCX(pin_num,\ | 21 | #define PRCM_GPIOCR_ALTCX(pin_num,\ |
| 12 | altc1_used, altc1_ri, altc1_cb,\ | 22 | altc1_used, altc1_ri, altc1_cb,\ |
| 13 | altc2_used, altc2_ri, altc2_cb,\ | 23 | altc2_used, altc2_ri, altc2_cb,\ |
diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h index 420f0b00ae1e..859e9be511d9 100644 --- a/include/dt-bindings/clock/r8a7790-clock.h +++ b/include/dt-bindings/clock/r8a7790-clock.h | |||
| @@ -22,6 +22,9 @@ | |||
| 22 | #define R8A7790_CLK_SD1 8 | 22 | #define R8A7790_CLK_SD1 8 |
| 23 | #define R8A7790_CLK_Z 9 | 23 | #define R8A7790_CLK_Z 9 |
| 24 | 24 | ||
| 25 | /* MSTP0 */ | ||
| 26 | #define R8A7790_CLK_MSIOF0 0 | ||
| 27 | |||
| 25 | /* MSTP1 */ | 28 | /* MSTP1 */ |
| 26 | #define R8A7790_CLK_TMU1 11 | 29 | #define R8A7790_CLK_TMU1 11 |
| 27 | #define R8A7790_CLK_TMU3 21 | 30 | #define R8A7790_CLK_TMU3 21 |
| @@ -37,8 +40,11 @@ | |||
| 37 | #define R8A7790_CLK_SCIFA2 2 | 40 | #define R8A7790_CLK_SCIFA2 2 |
| 38 | #define R8A7790_CLK_SCIFA1 3 | 41 | #define R8A7790_CLK_SCIFA1 3 |
| 39 | #define R8A7790_CLK_SCIFA0 4 | 42 | #define R8A7790_CLK_SCIFA0 4 |
| 43 | #define R8A7790_CLK_MSIOF2 5 | ||
| 40 | #define R8A7790_CLK_SCIFB0 6 | 44 | #define R8A7790_CLK_SCIFB0 6 |
| 41 | #define R8A7790_CLK_SCIFB1 7 | 45 | #define R8A7790_CLK_SCIFB1 7 |
| 46 | #define R8A7790_CLK_MSIOF1 8 | ||
| 47 | #define R8A7790_CLK_MSIOF3 15 | ||
| 42 | #define R8A7790_CLK_SCIFB2 16 | 48 | #define R8A7790_CLK_SCIFB2 16 |
| 43 | #define R8A7790_CLK_SYS_DMAC0 18 | 49 | #define R8A7790_CLK_SYS_DMAC0 18 |
| 44 | #define R8A7790_CLK_SYS_DMAC1 19 | 50 | #define R8A7790_CLK_SYS_DMAC1 19 |
| @@ -91,6 +97,7 @@ | |||
| 91 | #define R8A7790_CLK_GPIO0 12 | 97 | #define R8A7790_CLK_GPIO0 12 |
| 92 | #define R8A7790_CLK_RCAN1 15 | 98 | #define R8A7790_CLK_RCAN1 15 |
| 93 | #define R8A7790_CLK_RCAN0 16 | 99 | #define R8A7790_CLK_RCAN0 16 |
| 100 | #define R8A7790_CLK_QSPI_MOD 17 | ||
| 94 | #define R8A7790_CLK_IICDVFS 26 | 101 | #define R8A7790_CLK_IICDVFS 26 |
| 95 | #define R8A7790_CLK_I2C3 28 | 102 | #define R8A7790_CLK_I2C3 28 |
| 96 | #define R8A7790_CLK_I2C2 29 | 103 | #define R8A7790_CLK_I2C2 29 |
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h index df1715b77f96..30f82f286e29 100644 --- a/include/dt-bindings/clock/r8a7791-clock.h +++ b/include/dt-bindings/clock/r8a7791-clock.h | |||
| @@ -21,6 +21,9 @@ | |||
| 21 | #define R8A7791_CLK_SD0 7 | 21 | #define R8A7791_CLK_SD0 7 |
| 22 | #define R8A7791_CLK_Z 8 | 22 | #define R8A7791_CLK_Z 8 |
| 23 | 23 | ||
| 24 | /* MSTP0 */ | ||
| 25 | #define R8A7791_CLK_MSIOF0 0 | ||
| 26 | |||
| 24 | /* MSTP1 */ | 27 | /* MSTP1 */ |
| 25 | #define R8A7791_CLK_TMU1 11 | 28 | #define R8A7791_CLK_TMU1 11 |
| 26 | #define R8A7791_CLK_TMU3 21 | 29 | #define R8A7791_CLK_TMU3 21 |
| @@ -35,8 +38,10 @@ | |||
| 35 | #define R8A7791_CLK_SCIFA2 2 | 38 | #define R8A7791_CLK_SCIFA2 2 |
| 36 | #define R8A7791_CLK_SCIFA1 3 | 39 | #define R8A7791_CLK_SCIFA1 3 |
| 37 | #define R8A7791_CLK_SCIFA0 4 | 40 | #define R8A7791_CLK_SCIFA0 4 |
| 41 | #define R8A7791_CLK_MSIOF2 5 | ||
| 38 | #define R8A7791_CLK_SCIFB0 6 | 42 | #define R8A7791_CLK_SCIFB0 6 |
| 39 | #define R8A7791_CLK_SCIFB1 7 | 43 | #define R8A7791_CLK_SCIFB1 7 |
| 44 | #define R8A7791_CLK_MSIOF1 8 | ||
| 40 | #define R8A7791_CLK_SCIFB2 16 | 45 | #define R8A7791_CLK_SCIFB2 16 |
| 41 | #define R8A7791_CLK_DMAC 18 | 46 | #define R8A7791_CLK_DMAC 18 |
| 42 | 47 | ||
| @@ -89,6 +94,7 @@ | |||
| 89 | #define R8A7791_CLK_GPIO0 12 | 94 | #define R8A7791_CLK_GPIO0 12 |
| 90 | #define R8A7791_CLK_RCAN1 15 | 95 | #define R8A7791_CLK_RCAN1 15 |
| 91 | #define R8A7791_CLK_RCAN0 16 | 96 | #define R8A7791_CLK_RCAN0 16 |
| 97 | #define R8A7791_CLK_QSPI_MOD 17 | ||
| 92 | #define R8A7791_CLK_I2C5 25 | 98 | #define R8A7791_CLK_I2C5 25 |
| 93 | #define R8A7791_CLK_IICDVFS 26 | 99 | #define R8A7791_CLK_IICDVFS 26 |
| 94 | #define R8A7791_CLK_I2C4 27 | 100 | #define R8A7791_CLK_I2C4 27 |
diff --git a/include/dt-bindings/gpio/tegra-gpio.h b/include/dt-bindings/gpio/tegra-gpio.h index 4d179c00f081..197dc28b676e 100644 --- a/include/dt-bindings/gpio/tegra-gpio.h +++ b/include/dt-bindings/gpio/tegra-gpio.h | |||
| @@ -43,6 +43,7 @@ | |||
| 43 | #define TEGRA_GPIO_BANK_ID_CC 28 | 43 | #define TEGRA_GPIO_BANK_ID_CC 28 |
| 44 | #define TEGRA_GPIO_BANK_ID_DD 29 | 44 | #define TEGRA_GPIO_BANK_ID_DD 29 |
| 45 | #define TEGRA_GPIO_BANK_ID_EE 30 | 45 | #define TEGRA_GPIO_BANK_ID_EE 30 |
| 46 | #define TEGRA_GPIO_BANK_ID_FF 31 | ||
| 46 | 47 | ||
| 47 | #define TEGRA_GPIO(bank, offset) \ | 48 | #define TEGRA_GPIO(bank, offset) \ |
| 48 | ((TEGRA_GPIO_BANK_ID_##bank * 8) + offset) | 49 | ((TEGRA_GPIO_BANK_ID_##bank * 8) + offset) |
diff --git a/include/dt-bindings/pinctrl/pinctrl-tegra.h b/include/dt-bindings/pinctrl/pinctrl-tegra.h new file mode 100644 index 000000000000..ebafa498be0f --- /dev/null +++ b/include/dt-bindings/pinctrl/pinctrl-tegra.h | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | /* | ||
| 2 | * This header provides constants for Tegra pinctrl bindings. | ||
| 3 | * | ||
| 4 | * Copyright (c) 2013, NVIDIA CORPORATION. All rights reserved. | ||
| 5 | * | ||
| 6 | * Author: Laxman Dewangan <ldewangan@nvidia.com> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify it | ||
| 9 | * under the terms and conditions of the GNU General Public License, | ||
| 10 | * version 2, as published by the Free Software Foundation. | ||
| 11 | * | ||
| 12 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
| 13 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 14 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
| 15 | * more details. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #ifndef _DT_BINDINGS_PINCTRL_TEGRA_H | ||
| 19 | #define _DT_BINDINGS_PINCTRL_TEGRA_H | ||
| 20 | |||
| 21 | /* | ||
| 22 | * Enable/disable for diffeent dt properties. This is applicable for | ||
| 23 | * properties nvidia,enable-input, nvidia,tristate, nvidia,open-drain, | ||
| 24 | * nvidia,lock, nvidia,rcv-sel, nvidia,high-speed-mode, nvidia,schmitt. | ||
| 25 | */ | ||
| 26 | #define TEGRA_PIN_DISABLE 0 | ||
| 27 | #define TEGRA_PIN_ENABLE 1 | ||
| 28 | |||
| 29 | #define TEGRA_PIN_PULL_NONE 0 | ||
| 30 | #define TEGRA_PIN_PULL_DOWN 1 | ||
| 31 | #define TEGRA_PIN_PULL_UP 2 | ||
| 32 | |||
| 33 | /* Low power mode driver */ | ||
| 34 | #define TEGRA_PIN_LP_DRIVE_DIV_8 0 | ||
| 35 | #define TEGRA_PIN_LP_DRIVE_DIV_4 1 | ||
| 36 | #define TEGRA_PIN_LP_DRIVE_DIV_2 2 | ||
| 37 | #define TEGRA_PIN_LP_DRIVE_DIV_1 3 | ||
| 38 | |||
| 39 | /* Rising/Falling slew rate */ | ||
| 40 | #define TEGRA_PIN_SLEW_RATE_FASTEST 0 | ||
| 41 | #define TEGRA_PIN_SLEW_RATE_FAST 1 | ||
| 42 | #define TEGRA_PIN_SLEW_RATE_SLOW 2 | ||
| 43 | #define TEGRA_PIN_SLEW_RATE_SLOWEST 3 | ||
| 44 | |||
| 45 | #endif | ||
diff --git a/include/linux/clk/shmobile.h b/include/linux/clk/shmobile.h new file mode 100644 index 000000000000..f9bf080a1123 --- /dev/null +++ b/include/linux/clk/shmobile.h | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | /* | ||
| 2 | * Copyright 2013 Ideas On Board SPRL | ||
| 3 | * | ||
| 4 | * Contact: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License as published by | ||
| 8 | * the Free Software Foundation; either version 2 of the License, or | ||
| 9 | * (at your option) any later version. | ||
| 10 | */ | ||
| 11 | |||
| 12 | #ifndef __LINUX_CLK_SHMOBILE_H_ | ||
| 13 | #define __LINUX_CLK_SHMOBILE_H_ | ||
| 14 | |||
| 15 | #include <linux/types.h> | ||
| 16 | |||
| 17 | void rcar_gen2_clocks_init(u32 mode); | ||
| 18 | |||
| 19 | #endif | ||
diff --git a/include/linux/platform_data/clocksource-nomadik-mtu.h b/include/linux/platform_data/clocksource-nomadik-mtu.h deleted file mode 100644 index 80088973b734..000000000000 --- a/include/linux/platform_data/clocksource-nomadik-mtu.h +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | #ifndef __PLAT_MTU_H | ||
| 2 | #define __PLAT_MTU_H | ||
| 3 | |||
| 4 | void nmdk_timer_init(void __iomem *base, int irq); | ||
| 5 | void nmdk_clkevt_reset(void); | ||
| 6 | void nmdk_clksrc_reset(void); | ||
| 7 | |||
| 8 | #endif /* __PLAT_MTU_H */ | ||
| 9 | |||
diff --git a/include/linux/platform_data/pinctrl-nomadik.h b/include/linux/platform_data/pinctrl-nomadik.h deleted file mode 100644 index abf5bed84df3..000000000000 --- a/include/linux/platform_data/pinctrl-nomadik.h +++ /dev/null | |||
| @@ -1,242 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Structures and registers for GPIO access in the Nomadik SoC | ||
| 3 | * | ||
| 4 | * Copyright (C) 2008 STMicroelectronics | ||
| 5 | * Author: Prafulla WADASKAR <prafulla.wadaskar@st.com> | ||
| 6 | * Copyright (C) 2009 Alessandro Rubini <rubini@unipv.it> | ||
| 7 | * | ||
| 8 | * This program is free software; you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 as | ||
| 10 | * published by the Free Software Foundation. | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __PLAT_NOMADIK_GPIO | ||
| 14 | #define __PLAT_NOMADIK_GPIO | ||
| 15 | |||
| 16 | /* | ||
| 17 | * pin configurations are represented by 32-bit integers: | ||
| 18 | * | ||
| 19 | * bit 0.. 8 - Pin Number (512 Pins Maximum) | ||
| 20 | * bit 9..10 - Alternate Function Selection | ||
| 21 | * bit 11..12 - Pull up/down state | ||
| 22 | * bit 13 - Sleep mode behaviour | ||
| 23 | * bit 14 - Direction | ||
| 24 | * bit 15 - Value (if output) | ||
| 25 | * bit 16..18 - SLPM pull up/down state | ||
| 26 | * bit 19..20 - SLPM direction | ||
| 27 | * bit 21..22 - SLPM Value (if output) | ||
| 28 | * bit 23..25 - PDIS value (if input) | ||
| 29 | * bit 26 - Gpio mode | ||
| 30 | * bit 27 - Sleep mode | ||
| 31 | * | ||
| 32 | * to facilitate the definition, the following macros are provided | ||
| 33 | * | ||
| 34 | * PIN_CFG_DEFAULT - default config (0): | ||
| 35 | * pull up/down = disabled | ||
| 36 | * sleep mode = input/wakeup | ||
| 37 | * direction = input | ||
| 38 | * value = low | ||
| 39 | * SLPM direction = same as normal | ||
| 40 | * SLPM pull = same as normal | ||
| 41 | * SLPM value = same as normal | ||
| 42 | * | ||
| 43 | * PIN_CFG - default config with alternate function | ||
| 44 | */ | ||
| 45 | |||
| 46 | typedef unsigned long pin_cfg_t; | ||
| 47 | |||
| 48 | #define PIN_NUM_MASK 0x1ff | ||
| 49 | #define PIN_NUM(x) ((x) & PIN_NUM_MASK) | ||
| 50 | |||
| 51 | #define PIN_ALT_SHIFT 9 | ||
| 52 | #define PIN_ALT_MASK (0x3 << PIN_ALT_SHIFT) | ||
| 53 | #define PIN_ALT(x) (((x) & PIN_ALT_MASK) >> PIN_ALT_SHIFT) | ||
| 54 | #define PIN_GPIO (NMK_GPIO_ALT_GPIO << PIN_ALT_SHIFT) | ||
| 55 | #define PIN_ALT_A (NMK_GPIO_ALT_A << PIN_ALT_SHIFT) | ||
| 56 | #define PIN_ALT_B (NMK_GPIO_ALT_B << PIN_ALT_SHIFT) | ||
| 57 | #define PIN_ALT_C (NMK_GPIO_ALT_C << PIN_ALT_SHIFT) | ||
| 58 | |||
| 59 | #define PIN_PULL_SHIFT 11 | ||
| 60 | #define PIN_PULL_MASK (0x3 << PIN_PULL_SHIFT) | ||
| 61 | #define PIN_PULL(x) (((x) & PIN_PULL_MASK) >> PIN_PULL_SHIFT) | ||
| 62 | #define PIN_PULL_NONE (NMK_GPIO_PULL_NONE << PIN_PULL_SHIFT) | ||
| 63 | #define PIN_PULL_UP (NMK_GPIO_PULL_UP << PIN_PULL_SHIFT) | ||
| 64 | #define PIN_PULL_DOWN (NMK_GPIO_PULL_DOWN << PIN_PULL_SHIFT) | ||
| 65 | |||
| 66 | #define PIN_SLPM_SHIFT 13 | ||
| 67 | #define PIN_SLPM_MASK (0x1 << PIN_SLPM_SHIFT) | ||
| 68 | #define PIN_SLPM(x) (((x) & PIN_SLPM_MASK) >> PIN_SLPM_SHIFT) | ||
| 69 | #define PIN_SLPM_MAKE_INPUT (NMK_GPIO_SLPM_INPUT << PIN_SLPM_SHIFT) | ||
| 70 | #define PIN_SLPM_NOCHANGE (NMK_GPIO_SLPM_NOCHANGE << PIN_SLPM_SHIFT) | ||
| 71 | /* These two replace the above in DB8500v2+ */ | ||
| 72 | #define PIN_SLPM_WAKEUP_ENABLE (NMK_GPIO_SLPM_WAKEUP_ENABLE << PIN_SLPM_SHIFT) | ||
| 73 | #define PIN_SLPM_WAKEUP_DISABLE (NMK_GPIO_SLPM_WAKEUP_DISABLE << PIN_SLPM_SHIFT) | ||
| 74 | #define PIN_SLPM_USE_MUX_SETTINGS_IN_SLEEP PIN_SLPM_WAKEUP_DISABLE | ||
| 75 | |||
| 76 | #define PIN_SLPM_GPIO PIN_SLPM_WAKEUP_ENABLE /* In SLPM, pin is a gpio */ | ||
| 77 | #define PIN_SLPM_ALTFUNC PIN_SLPM_WAKEUP_DISABLE /* In SLPM, pin is altfunc */ | ||
| 78 | |||
| 79 | #define PIN_DIR_SHIFT 14 | ||
| 80 | #define PIN_DIR_MASK (0x1 << PIN_DIR_SHIFT) | ||
| 81 | #define PIN_DIR(x) (((x) & PIN_DIR_MASK) >> PIN_DIR_SHIFT) | ||
| 82 | #define PIN_DIR_INPUT (0 << PIN_DIR_SHIFT) | ||
| 83 | #define PIN_DIR_OUTPUT (1 << PIN_DIR_SHIFT) | ||
| 84 | |||
| 85 | #define PIN_VAL_SHIFT 15 | ||
| 86 | #define PIN_VAL_MASK (0x1 << PIN_VAL_SHIFT) | ||
| 87 | #define PIN_VAL(x) (((x) & PIN_VAL_MASK) >> PIN_VAL_SHIFT) | ||
| 88 | #define PIN_VAL_LOW (0 << PIN_VAL_SHIFT) | ||
| 89 | #define PIN_VAL_HIGH (1 << PIN_VAL_SHIFT) | ||
| 90 | |||
| 91 | #define PIN_SLPM_PULL_SHIFT 16 | ||
| 92 | #define PIN_SLPM_PULL_MASK (0x7 << PIN_SLPM_PULL_SHIFT) | ||
| 93 | #define PIN_SLPM_PULL(x) \ | ||
| 94 | (((x) & PIN_SLPM_PULL_MASK) >> PIN_SLPM_PULL_SHIFT) | ||
| 95 | #define PIN_SLPM_PULL_NONE \ | ||
| 96 | ((1 + NMK_GPIO_PULL_NONE) << PIN_SLPM_PULL_SHIFT) | ||
| 97 | #define PIN_SLPM_PULL_UP \ | ||
| 98 | ((1 + NMK_GPIO_PULL_UP) << PIN_SLPM_PULL_SHIFT) | ||
| 99 | #define PIN_SLPM_PULL_DOWN \ | ||
| 100 | ((1 + NMK_GPIO_PULL_DOWN) << PIN_SLPM_PULL_SHIFT) | ||
| 101 | |||
| 102 | #define PIN_SLPM_DIR_SHIFT 19 | ||
| 103 | #define PIN_SLPM_DIR_MASK (0x3 << PIN_SLPM_DIR_SHIFT) | ||
| 104 | #define PIN_SLPM_DIR(x) \ | ||
| 105 | (((x) & PIN_SLPM_DIR_MASK) >> PIN_SLPM_DIR_SHIFT) | ||
| 106 | #define PIN_SLPM_DIR_INPUT ((1 + 0) << PIN_SLPM_DIR_SHIFT) | ||
| 107 | #define PIN_SLPM_DIR_OUTPUT ((1 + 1) << PIN_SLPM_DIR_SHIFT) | ||
| 108 | |||
| 109 | #define PIN_SLPM_VAL_SHIFT 21 | ||
| 110 | #define PIN_SLPM_VAL_MASK (0x3 << PIN_SLPM_VAL_SHIFT) | ||
| 111 | #define PIN_SLPM_VAL(x) \ | ||
| 112 | (((x) & PIN_SLPM_VAL_MASK) >> PIN_SLPM_VAL_SHIFT) | ||
| 113 | #define PIN_SLPM_VAL_LOW ((1 + 0) << PIN_SLPM_VAL_SHIFT) | ||
| 114 | #define PIN_SLPM_VAL_HIGH ((1 + 1) << PIN_SLPM_VAL_SHIFT) | ||
| 115 | |||
| 116 | #define PIN_SLPM_PDIS_SHIFT 23 | ||
| 117 | #define PIN_SLPM_PDIS_MASK (0x3 << PIN_SLPM_PDIS_SHIFT) | ||
| 118 | #define PIN_SLPM_PDIS(x) \ | ||
| 119 | (((x) & PIN_SLPM_PDIS_MASK) >> PIN_SLPM_PDIS_SHIFT) | ||
| 120 | #define PIN_SLPM_PDIS_NO_CHANGE (0 << PIN_SLPM_PDIS_SHIFT) | ||
| 121 | #define PIN_SLPM_PDIS_DISABLED (1 << PIN_SLPM_PDIS_SHIFT) | ||
| 122 | #define PIN_SLPM_PDIS_ENABLED (2 << PIN_SLPM_PDIS_SHIFT) | ||
| 123 | |||
| 124 | #define PIN_LOWEMI_SHIFT 25 | ||
| 125 | #define PIN_LOWEMI_MASK (0x1 << PIN_LOWEMI_SHIFT) | ||
| 126 | #define PIN_LOWEMI(x) (((x) & PIN_LOWEMI_MASK) >> PIN_LOWEMI_SHIFT) | ||
| 127 | #define PIN_LOWEMI_DISABLED (0 << PIN_LOWEMI_SHIFT) | ||
| 128 | #define PIN_LOWEMI_ENABLED (1 << PIN_LOWEMI_SHIFT) | ||
| 129 | |||
| 130 | #define PIN_GPIOMODE_SHIFT 26 | ||
| 131 | #define PIN_GPIOMODE_MASK (0x1 << PIN_GPIOMODE_SHIFT) | ||
| 132 | #define PIN_GPIOMODE(x) (((x) & PIN_GPIOMODE_MASK) >> PIN_GPIOMODE_SHIFT) | ||
| 133 | #define PIN_GPIOMODE_DISABLED (0 << PIN_GPIOMODE_SHIFT) | ||
| 134 | #define PIN_GPIOMODE_ENABLED (1 << PIN_GPIOMODE_SHIFT) | ||
| 135 | |||
| 136 | #define PIN_SLEEPMODE_SHIFT 27 | ||
| 137 | #define PIN_SLEEPMODE_MASK (0x1 << PIN_SLEEPMODE_SHIFT) | ||
| 138 | #define PIN_SLEEPMODE(x) (((x) & PIN_SLEEPMODE_MASK) >> PIN_SLEEPMODE_SHIFT) | ||
| 139 | #define PIN_SLEEPMODE_DISABLED (0 << PIN_SLEEPMODE_SHIFT) | ||
| 140 | #define PIN_SLEEPMODE_ENABLED (1 << PIN_SLEEPMODE_SHIFT) | ||
| 141 | |||
| 142 | |||
| 143 | /* Shortcuts. Use these instead of separate DIR, PULL, and VAL. */ | ||
| 144 | #define PIN_INPUT_PULLDOWN (PIN_DIR_INPUT | PIN_PULL_DOWN) | ||
| 145 | #define PIN_INPUT_PULLUP (PIN_DIR_INPUT | PIN_PULL_UP) | ||
| 146 | #define PIN_INPUT_NOPULL (PIN_DIR_INPUT | PIN_PULL_NONE) | ||
| 147 | #define PIN_OUTPUT_LOW (PIN_DIR_OUTPUT | PIN_VAL_LOW) | ||
| 148 | #define PIN_OUTPUT_HIGH (PIN_DIR_OUTPUT | PIN_VAL_HIGH) | ||
| 149 | |||
| 150 | #define PIN_SLPM_INPUT_PULLDOWN (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_DOWN) | ||
| 151 | #define PIN_SLPM_INPUT_PULLUP (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_UP) | ||
| 152 | #define PIN_SLPM_INPUT_NOPULL (PIN_SLPM_DIR_INPUT | PIN_SLPM_PULL_NONE) | ||
| 153 | #define PIN_SLPM_OUTPUT_LOW (PIN_SLPM_DIR_OUTPUT | PIN_SLPM_VAL_LOW) | ||
| 154 | #define PIN_SLPM_OUTPUT_HIGH (PIN_SLPM_DIR_OUTPUT | PIN_SLPM_VAL_HIGH) | ||
| 155 | |||
| 156 | #define PIN_CFG_DEFAULT (0) | ||
| 157 | |||
| 158 | #define PIN_CFG(num, alt) \ | ||
| 159 | (PIN_CFG_DEFAULT |\ | ||
| 160 | (PIN_NUM(num) | PIN_##alt)) | ||
| 161 | |||
| 162 | #define PIN_CFG_INPUT(num, alt, pull) \ | ||
| 163 | (PIN_CFG_DEFAULT |\ | ||
| 164 | (PIN_NUM(num) | PIN_##alt | PIN_INPUT_##pull)) | ||
| 165 | |||
| 166 | #define PIN_CFG_OUTPUT(num, alt, val) \ | ||
| 167 | (PIN_CFG_DEFAULT |\ | ||
| 168 | (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) | ||
| 169 | |||
| 170 | /* | ||
| 171 | * "nmk_gpio" and "NMK_GPIO" stand for "Nomadik GPIO", leaving | ||
| 172 | * the "gpio" namespace for generic and cross-machine functions | ||
| 173 | */ | ||
| 174 | |||
| 175 | #define GPIO_BLOCK_SHIFT 5 | ||
| 176 | #define NMK_GPIO_PER_CHIP (1 << GPIO_BLOCK_SHIFT) | ||
| 177 | |||
| 178 | /* Register in the logic block */ | ||
| 179 | #define NMK_GPIO_DAT 0x00 | ||
| 180 | #define NMK_GPIO_DATS 0x04 | ||
| 181 | #define NMK_GPIO_DATC 0x08 | ||
| 182 | #define NMK_GPIO_PDIS 0x0c | ||
| 183 | #define NMK_GPIO_DIR 0x10 | ||
| 184 | #define NMK_GPIO_DIRS 0x14 | ||
| 185 | #define NMK_GPIO_DIRC 0x18 | ||
| 186 | #define NMK_GPIO_SLPC 0x1c | ||
| 187 | #define NMK_GPIO_AFSLA 0x20 | ||
| 188 | #define NMK_GPIO_AFSLB 0x24 | ||
| 189 | #define NMK_GPIO_LOWEMI 0x28 | ||
| 190 | |||
| 191 | #define NMK_GPIO_RIMSC 0x40 | ||
| 192 | #define NMK_GPIO_FIMSC 0x44 | ||
| 193 | #define NMK_GPIO_IS 0x48 | ||
| 194 | #define NMK_GPIO_IC 0x4c | ||
| 195 | #define NMK_GPIO_RWIMSC 0x50 | ||
| 196 | #define NMK_GPIO_FWIMSC 0x54 | ||
| 197 | #define NMK_GPIO_WKS 0x58 | ||
| 198 | /* These appear in DB8540 and later ASICs */ | ||
| 199 | #define NMK_GPIO_EDGELEVEL 0x5C | ||
| 200 | #define NMK_GPIO_LEVEL 0x60 | ||
| 201 | |||
| 202 | /* Alternate functions: function C is set in hw by setting both A and B */ | ||
| 203 | #define NMK_GPIO_ALT_GPIO 0 | ||
| 204 | #define NMK_GPIO_ALT_A 1 | ||
| 205 | #define NMK_GPIO_ALT_B 2 | ||
| 206 | #define NMK_GPIO_ALT_C (NMK_GPIO_ALT_A | NMK_GPIO_ALT_B) | ||
| 207 | |||
| 208 | #define NMK_GPIO_ALT_CX_SHIFT 2 | ||
| 209 | #define NMK_GPIO_ALT_C1 ((1<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 210 | #define NMK_GPIO_ALT_C2 ((2<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 211 | #define NMK_GPIO_ALT_C3 ((3<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 212 | #define NMK_GPIO_ALT_C4 ((4<<NMK_GPIO_ALT_CX_SHIFT) | NMK_GPIO_ALT_C) | ||
| 213 | |||
| 214 | /* Pull up/down values */ | ||
| 215 | enum nmk_gpio_pull { | ||
| 216 | NMK_GPIO_PULL_NONE, | ||
| 217 | NMK_GPIO_PULL_UP, | ||
| 218 | NMK_GPIO_PULL_DOWN, | ||
| 219 | }; | ||
| 220 | |||
| 221 | /* Sleep mode */ | ||
| 222 | enum nmk_gpio_slpm { | ||
| 223 | NMK_GPIO_SLPM_INPUT, | ||
| 224 | NMK_GPIO_SLPM_WAKEUP_ENABLE = NMK_GPIO_SLPM_INPUT, | ||
| 225 | NMK_GPIO_SLPM_NOCHANGE, | ||
| 226 | NMK_GPIO_SLPM_WAKEUP_DISABLE = NMK_GPIO_SLPM_NOCHANGE, | ||
| 227 | }; | ||
| 228 | |||
| 229 | /* | ||
| 230 | * Platform data to register a block: only the initial gpio/irq number. | ||
| 231 | */ | ||
| 232 | struct nmk_gpio_platform_data { | ||
| 233 | char *name; | ||
| 234 | int first_gpio; | ||
| 235 | int first_irq; | ||
| 236 | int num_gpio; | ||
| 237 | u32 (*get_secondary_status)(unsigned int bank); | ||
| 238 | void (*set_ioforce)(bool enable); | ||
| 239 | bool supports_sleepmode; | ||
| 240 | }; | ||
| 241 | |||
| 242 | #endif /* __PLAT_NOMADIK_GPIO */ | ||
