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 */ | ||