diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-15 18:58:28 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-15 18:58:28 -0500 |
commit | 482c3e8835e9e9b325aad295c21bd9e965a11006 (patch) | |
tree | 26eda74bc8740c373100e2601d4dcb1036c01c9b | |
parent | 786a72d79140028537382fa63bea63d5640c27d6 (diff) | |
parent | 09a566514c49b730ac5099549c014180f00be250 (diff) |
Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM 64-bit DT updates from Arnd Bergmann:
"A couple of interesting new SoC platforms are now supported, these are
the respective DTS sources:
- Samsung Exynos5433 mobile phone platform, including an (almost)
fully supported phone reference board.
- Hisilicon Hip07 server platform and D05 board, the latest iteration
of their product line, now with 64 Cortex-A72 cores across two
sockets.
- Allwinner A64 SoC, the first 64-bit chip from their "sunxi" product
line, used in Android tablets and ultra-cheap development boards
- NXP LS1046A Communication processor, improving on the earlier
LS1043A with faster CPU cores
- Qualcomm MSM8992 (Snapdragon 808) and MSM8994 (Snapdragon 810)
mobile phone SoCs
- Early support for the Nvidia Tegra Tegra186 SoC
- Amlogic S905D is a minor variant of their existing Android consumer
product line
- Rockchip PX5 automotive platform, a close relative of their popular
rk3368 Android tablet chips
Aside from the respective evaluation platforms for the above chips,
there are only a few consumer devices and boards added this time:
- Huawei Nexus 6P (Angler) mobile phone
- LG Nexus 5x (Bullhead) mobile phone
- Nexbox A1 and A95X Android TV boxes
- Pine64 development board based on Allwinner A64
- Globalscale Marvell ESPRESSOBin community board based on Armada 3700
- Renesas "R-Car Starter Kit Pro" (M3ULCB) low-cost automotive board
For the existing platforms, we get bug fixes and new peripheral
support for Juno, Renesas, Uniphier, Amlogic, Samsung, Broadcom,
Rockchip, Berlin, and ZTE"
* tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (168 commits)
arm64: dts: fix build errors from missing dependencies
ARM64: dts: meson-gxbb: add SCPI pre-1.0 compatible
ARM64: dts: meson-gxl: Add support for Nexbox A95X
ARM64: dts: meson-gxm: Add support for the Nexbox A1
ARM: dts: artpec: add pcie support
arm64: dts: berlin4ct-dmp: add missing unit name to /memory node
arm64: dts: berlin4ct-stb: add missing unit name to /memory node
arm64: dts: berlin4ct: add missing unit name to /soc node
arm64: dts: qcom: msm8916: Add ddr support to sdhc1
arm64: dts: exynos: Enable HS400 mode for eMMC for TM2
ARM: dts: Add xo to sdhc clock node on qcom platforms
ARM64: dts: Add support for Meson GXM
dt-bindings: add rockchip RK1108 Evaluation board
arm64: dts: NS2: Add PCI PHYs
arm64: dts: NS2: enable sdio1
arm64: dts: exynos: Add the mshc_2 node for supporting T-Flash
arm64: tegra: Add NVIDIA P2771 board support
arm64: tegra: Enable PSCI on P3310
arm64: tegra: Add NVIDIA P3310 processor module support
arm64: tegra: Add GPIO controllers on Tegra186
...
118 files changed, 12147 insertions, 709 deletions
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt index fcc6f6c10803..9b2b41ab6817 100644 --- a/Documentation/devicetree/bindings/arm/amlogic.txt +++ b/Documentation/devicetree/bindings/arm/amlogic.txt | |||
@@ -17,6 +17,18 @@ Boards with the Amlogic Meson GXBaby SoC shall have the following properties: | |||
17 | Required root node property: | 17 | Required root node property: |
18 | compatible: "amlogic,meson-gxbb"; | 18 | compatible: "amlogic,meson-gxbb"; |
19 | 19 | ||
20 | Boards with the Amlogic Meson GXL S905X SoC shall have the following properties: | ||
21 | Required root node property: | ||
22 | compatible: "amlogic,s905x", "amlogic,meson-gxl"; | ||
23 | |||
24 | Boards with the Amlogic Meson GXL S905D SoC shall have the following properties: | ||
25 | Required root node property: | ||
26 | compatible: "amlogic,s905d", "amlogic,meson-gxl"; | ||
27 | |||
28 | Boards with the Amlogic Meson GXM S912 SoC shall have the following properties: | ||
29 | Required root node property: | ||
30 | compatible: "amlogic,s912", "amlogic,meson-gxm"; | ||
31 | |||
20 | Board compatible values: | 32 | Board compatible values: |
21 | - "geniatech,atv1200" (Meson6) | 33 | - "geniatech,atv1200" (Meson6) |
22 | - "minix,neo-x8" (Meson8) | 34 | - "minix,neo-x8" (Meson8) |
@@ -28,3 +40,10 @@ Board compatible values: | |||
28 | - "hardkernel,odroid-c2" (Meson gxbb) | 40 | - "hardkernel,odroid-c2" (Meson gxbb) |
29 | - "amlogic,p200" (Meson gxbb) | 41 | - "amlogic,p200" (Meson gxbb) |
30 | - "amlogic,p201" (Meson gxbb) | 42 | - "amlogic,p201" (Meson gxbb) |
43 | - "amlogic,p212" (Meson gxl s905x) | ||
44 | - "amlogic,p230" (Meson gxl s905d) | ||
45 | - "amlogic,p231" (Meson gxl s905d) | ||
46 | - "amlogic,q200" (Meson gxm s912) | ||
47 | - "amlogic,q201" (Meson gxm s912) | ||
48 | - "nexbox,a95x" (Meson gxbb or Meson gxl s905x) | ||
49 | - "nexbox,a1" (Meson gxm s912) | ||
diff --git a/Documentation/devicetree/bindings/arm/bcm/ns2.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,ns2.txt index 35f056f4a1c3..35f056f4a1c3 100644 --- a/Documentation/devicetree/bindings/arm/bcm/ns2.txt +++ b/Documentation/devicetree/bindings/arm/bcm/brcm,ns2.txt | |||
diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt index dbbc0952021c..d6ee9c6e1dbb 100644 --- a/Documentation/devicetree/bindings/arm/fsl.txt +++ b/Documentation/devicetree/bindings/arm/fsl.txt | |||
@@ -97,7 +97,7 @@ Freescale LS1021A Platform Device Tree Bindings | |||
97 | Required root node compatible properties: | 97 | Required root node compatible properties: |
98 | - compatible = "fsl,ls1021a"; | 98 | - compatible = "fsl,ls1021a"; |
99 | 99 | ||
100 | Freescale LS1021A SoC-specific Device Tree Bindings | 100 | Freescale SoC-specific Device Tree Bindings |
101 | ------------------------------------------- | 101 | ------------------------------------------- |
102 | 102 | ||
103 | Freescale SCFG | 103 | Freescale SCFG |
@@ -105,7 +105,11 @@ Freescale SCFG | |||
105 | configuration and status registers for the chip. Such as getting PEX port | 105 | configuration and status registers for the chip. Such as getting PEX port |
106 | status. | 106 | status. |
107 | Required properties: | 107 | Required properties: |
108 | - compatible: should be "fsl,ls1021a-scfg" | 108 | - compatible: Should contain a chip-specific compatible string, |
109 | Chip-specific strings are of the form "fsl,<chip>-scfg", | ||
110 | The following <chip>s are known to be supported: | ||
111 | ls1021a, ls1043a, ls1046a, ls2080a. | ||
112 | |||
109 | - reg: should contain base address and length of SCFG memory-mapped registers | 113 | - reg: should contain base address and length of SCFG memory-mapped registers |
110 | 114 | ||
111 | Example: | 115 | Example: |
@@ -119,7 +123,11 @@ Freescale DCFG | |||
119 | configuration and status for the device. Such as setting the secondary | 123 | configuration and status for the device. Such as setting the secondary |
120 | core start address and release the secondary core from holdoff and startup. | 124 | core start address and release the secondary core from holdoff and startup. |
121 | Required properties: | 125 | Required properties: |
122 | - compatible: should be "fsl,ls1021a-dcfg" | 126 | - compatible: Should contain a chip-specific compatible string, |
127 | Chip-specific strings are of the form "fsl,<chip>-dcfg", | ||
128 | The following <chip>s are known to be supported: | ||
129 | ls1021a, ls1043a, ls1046a, ls2080a. | ||
130 | |||
123 | - reg : should contain base address and length of DCFG memory-mapped registers | 131 | - reg : should contain base address and length of DCFG memory-mapped registers |
124 | 132 | ||
125 | Example: | 133 | Example: |
@@ -131,6 +139,10 @@ Example: | |||
131 | Freescale ARMv8 based Layerscape SoC family Device Tree Bindings | 139 | Freescale ARMv8 based Layerscape SoC family Device Tree Bindings |
132 | ---------------------------------------------------------------- | 140 | ---------------------------------------------------------------- |
133 | 141 | ||
142 | LS1043A SoC | ||
143 | Required root node properties: | ||
144 | - compatible = "fsl,ls1043a"; | ||
145 | |||
134 | LS1043A ARMv8 based RDB Board | 146 | LS1043A ARMv8 based RDB Board |
135 | Required root node properties: | 147 | Required root node properties: |
136 | - compatible = "fsl,ls1043a-rdb", "fsl,ls1043a"; | 148 | - compatible = "fsl,ls1043a-rdb", "fsl,ls1043a"; |
@@ -139,6 +151,22 @@ LS1043A ARMv8 based QDS Board | |||
139 | Required root node properties: | 151 | Required root node properties: |
140 | - compatible = "fsl,ls1043a-qds", "fsl,ls1043a"; | 152 | - compatible = "fsl,ls1043a-qds", "fsl,ls1043a"; |
141 | 153 | ||
154 | LS1046A SoC | ||
155 | Required root node properties: | ||
156 | - compatible = "fsl,ls1046a"; | ||
157 | |||
158 | LS1046A ARMv8 based QDS Board | ||
159 | Required root node properties: | ||
160 | - compatible = "fsl,ls1046a-qds", "fsl,ls1046a"; | ||
161 | |||
162 | LS1046A ARMv8 based RDB Board | ||
163 | Required root node properties: | ||
164 | - compatible = "fsl,ls1046a-rdb", "fsl,ls1046a"; | ||
165 | |||
166 | LS2080A SoC | ||
167 | Required root node properties: | ||
168 | - compatible = "fsl,ls2080a"; | ||
169 | |||
142 | LS2080A ARMv8 based Simulator model | 170 | LS2080A ARMv8 based Simulator model |
143 | Required root node properties: | 171 | Required root node properties: |
144 | - compatible = "fsl,ls2080a-simu", "fsl,ls2080a"; | 172 | - compatible = "fsl,ls2080a-simu", "fsl,ls2080a"; |
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt index 3f81575aa6be..7df79a715611 100644 --- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt +++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | |||
@@ -28,6 +28,10 @@ HiP06 D03 Board | |||
28 | Required root node properties: | 28 | Required root node properties: |
29 | - compatible = "hisilicon,hip06-d03"; | 29 | - compatible = "hisilicon,hip06-d03"; |
30 | 30 | ||
31 | HiP07 D05 Board | ||
32 | Required root node properties: | ||
33 | - compatible = "hisilicon,hip07-d05"; | ||
34 | |||
31 | Hisilicon system controller | 35 | Hisilicon system controller |
32 | 36 | ||
33 | Required properties: | 37 | Required properties: |
diff --git a/Documentation/devicetree/bindings/arm/qcom.txt b/Documentation/devicetree/bindings/arm/qcom.txt index 43abf4e0a0a5..028d16e72186 100644 --- a/Documentation/devicetree/bindings/arm/qcom.txt +++ b/Documentation/devicetree/bindings/arm/qcom.txt | |||
@@ -21,6 +21,8 @@ The 'SoC' element must be one of the following strings: | |||
21 | apq8096 | 21 | apq8096 |
22 | msm8916 | 22 | msm8916 |
23 | msm8974 | 23 | msm8974 |
24 | msm8992 | ||
25 | msm8994 | ||
24 | msm8996 | 26 | msm8996 |
25 | mdm9615 | 27 | mdm9615 |
26 | 28 | ||
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt index e921f3efac64..cc4ace6397ab 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.txt +++ b/Documentation/devicetree/bindings/arm/rockchip.txt | |||
@@ -103,6 +103,18 @@ Rockchip platforms device tree bindings | |||
103 | Required root node properties: | 103 | Required root node properties: |
104 | - compatible = "mqmaker,miqi", "rockchip,rk3288"; | 104 | - compatible = "mqmaker,miqi", "rockchip,rk3288"; |
105 | 105 | ||
106 | - Rockchip PX3 Evaluation board: | ||
107 | Required root node properties: | ||
108 | - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188"; | ||
109 | |||
110 | - Rockchip PX5 Evaluation board: | ||
111 | Required root node properties: | ||
112 | - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368"; | ||
113 | |||
114 | - Rockchip RK1108 Evaluation board | ||
115 | Required root node properties: | ||
116 | - compatible = "rockchip,rk1108-evb", "rockchip,rk1108"; | ||
117 | |||
106 | - Rockchip RK3368 evb: | 118 | - Rockchip RK3368 evb: |
107 | Required root node properties: | 119 | Required root node properties: |
108 | - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; | 120 | - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; |
diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt index 5160fa5f7b5c..3c551894f621 100644 --- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt | |||
@@ -15,6 +15,8 @@ Required root node properties: | |||
15 | - "samsung,xyref5260" - for Exynos5260-based Samsung board. | 15 | - "samsung,xyref5260" - for Exynos5260-based Samsung board. |
16 | - "samsung,smdk5410" - for Exynos5410-based Samsung SMDK5410 eval board. | 16 | - "samsung,smdk5410" - for Exynos5410-based Samsung SMDK5410 eval board. |
17 | - "samsung,smdk5420" - for Exynos5420-based Samsung SMDK5420 eval board. | 17 | - "samsung,smdk5420" - for Exynos5420-based Samsung SMDK5420 eval board. |
18 | - "samsung,tm2" - for Exynos5433-based Samsung TM2 board. | ||
19 | - "samsung,tm2e" - for Exynos5433-based Samsung TM2E board. | ||
18 | - "samsung,sd5v1" - for Exynos5440-based Samsung board. | 20 | - "samsung,sd5v1" - for Exynos5440-based Samsung board. |
19 | - "samsung,ssdk5440" - for Exynos5440-based Samsung board. | 21 | - "samsung,ssdk5440" - for Exynos5440-based Samsung board. |
20 | 22 | ||
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 3c7acf22957a..5d8229d74a5f 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt | |||
@@ -53,7 +53,7 @@ Boards: | |||
53 | compatible = "renesas,genmai", "renesas,r7s72100" | 53 | compatible = "renesas,genmai", "renesas,r7s72100" |
54 | - Gose (RTP0RC7793SEB00010S) | 54 | - Gose (RTP0RC7793SEB00010S) |
55 | compatible = "renesas,gose", "renesas,r8a7793" | 55 | compatible = "renesas,gose", "renesas,r8a7793" |
56 | - H3ULCB (RTP0RC7795SKB00010S) | 56 | - H3ULCB (R-Car Starter Kit Premier, RTP0RC7795SKB00010S) |
57 | compatible = "renesas,h3ulcb", "renesas,r8a7795"; | 57 | compatible = "renesas,h3ulcb", "renesas,r8a7795"; |
58 | - Henninger | 58 | - Henninger |
59 | compatible = "renesas,henninger", "renesas,r8a7791" | 59 | compatible = "renesas,henninger", "renesas,r8a7791" |
@@ -65,6 +65,8 @@ Boards: | |||
65 | compatible = "renesas,kzm9g", "renesas,sh73a0" | 65 | compatible = "renesas,kzm9g", "renesas,sh73a0" |
66 | - Lager (RTP0RC7790SEB00010S) | 66 | - Lager (RTP0RC7790SEB00010S) |
67 | compatible = "renesas,lager", "renesas,r8a7790" | 67 | compatible = "renesas,lager", "renesas,r8a7790" |
68 | - M3ULCB (R-Car Starter Kit Pro, RTP0RC7796SKB00010S) | ||
69 | compatible = "renesas,m3ulcb", "renesas,r8a7796"; | ||
68 | - Marzen (R0P7779A00010S) | 70 | - Marzen (R0P7779A00010S) |
69 | compatible = "renesas,marzen", "renesas,r8a7779" | 71 | compatible = "renesas,marzen", "renesas,r8a7779" |
70 | - Porter (M2-LCDP) | 72 | - Porter (M2-LCDP) |
diff --git a/Documentation/devicetree/bindings/arm/sunxi.txt b/Documentation/devicetree/bindings/arm/sunxi.txt index 3975d0a0e4c2..4d6467cc2aa2 100644 --- a/Documentation/devicetree/bindings/arm/sunxi.txt +++ b/Documentation/devicetree/bindings/arm/sunxi.txt | |||
@@ -14,4 +14,5 @@ using one of the following compatible strings: | |||
14 | allwinner,sun8i-a83t | 14 | allwinner,sun8i-a83t |
15 | allwinner,sun8i-h3 | 15 | allwinner,sun8i-h3 |
16 | allwinner,sun9i-a80 | 16 | allwinner,sun9i-a80 |
17 | allwinner,sun50i-a64 | ||
17 | nextthing,gr8 | 18 | nextthing,gr8 |
diff --git a/Documentation/devicetree/bindings/ata/ahci-fsl-qoriq.txt b/Documentation/devicetree/bindings/ata/ahci-fsl-qoriq.txt index 032a7606b862..fc33ca01e9ba 100644 --- a/Documentation/devicetree/bindings/ata/ahci-fsl-qoriq.txt +++ b/Documentation/devicetree/bindings/ata/ahci-fsl-qoriq.txt | |||
@@ -3,7 +3,7 @@ Binding for Freescale QorIQ AHCI SATA Controller | |||
3 | Required properties: | 3 | Required properties: |
4 | - reg: Physical base address and size of the controller's register area. | 4 | - reg: Physical base address and size of the controller's register area. |
5 | - compatible: Compatibility string. Must be 'fsl,<chip>-ahci', where | 5 | - compatible: Compatibility string. Must be 'fsl,<chip>-ahci', where |
6 | chip could be ls1021a, ls2080a, ls1043a etc. | 6 | chip could be ls1021a, ls1043a, ls1046a, ls2080a etc. |
7 | - clocks: Input clock specifier. Refer to common clock bindings. | 7 | - clocks: Input clock specifier. Refer to common clock bindings. |
8 | - interrupts: Interrupt specifier. Refer to interrupt binding. | 8 | - interrupts: Interrupt specifier. Refer to interrupt binding. |
9 | 9 | ||
diff --git a/Documentation/devicetree/bindings/clock/qoriq-clock.txt b/Documentation/devicetree/bindings/clock/qoriq-clock.txt index 16a3ec433119..df9cb5ac5f72 100644 --- a/Documentation/devicetree/bindings/clock/qoriq-clock.txt +++ b/Documentation/devicetree/bindings/clock/qoriq-clock.txt | |||
@@ -32,6 +32,9 @@ Required properties: | |||
32 | * "fsl,b4420-clockgen" | 32 | * "fsl,b4420-clockgen" |
33 | * "fsl,b4860-clockgen" | 33 | * "fsl,b4860-clockgen" |
34 | * "fsl,ls1021a-clockgen" | 34 | * "fsl,ls1021a-clockgen" |
35 | * "fsl,ls1043a-clockgen" | ||
36 | * "fsl,ls1046a-clockgen" | ||
37 | * "fsl,ls2080a-clockgen" | ||
35 | Chassis-version clock strings include: | 38 | Chassis-version clock strings include: |
36 | * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks | 39 | * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks |
37 | * "fsl,qoriq-clockgen-2.0": for chassis 2.0 clocks | 40 | * "fsl,qoriq-clockgen-2.0": for chassis 2.0 clocks |
diff --git a/Documentation/devicetree/bindings/i2c/trivial-devices.txt b/Documentation/devicetree/bindings/i2c/trivial-devices.txt index df720ca00fcf..ff86fdcbd353 100644 --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt | |||
@@ -138,6 +138,8 @@ nuvoton,npct501 i2c trusted platform module (TPM) | |||
138 | nuvoton,npct601 i2c trusted platform module (TPM2) | 138 | nuvoton,npct601 i2c trusted platform module (TPM2) |
139 | nxp,pca9556 Octal SMBus and I2C registered interface | 139 | nxp,pca9556 Octal SMBus and I2C registered interface |
140 | nxp,pca9557 8-bit I2C-bus and SMBus I/O port with reset | 140 | nxp,pca9557 8-bit I2C-bus and SMBus I/O port with reset |
141 | nxp,pcf2127 Real-time clock | ||
142 | nxp,pcf2129 Real-time clock | ||
141 | nxp,pcf8563 Real-time clock/calendar | 143 | nxp,pcf8563 Real-time clock/calendar |
142 | nxp,pcf85063 Tiny Real-Time Clock | 144 | nxp,pcf85063 Tiny Real-Time Clock |
143 | oki,ml86v7667 OKI ML86V7667 video decoder | 145 | oki,ml86v7667 OKI ML86V7667 video decoder |
diff --git a/Documentation/devicetree/bindings/media/renesas,fcp.txt b/Documentation/devicetree/bindings/media/renesas,fcp.txt index 27f9b8e459ac..3ec91803ba58 100644 --- a/Documentation/devicetree/bindings/media/renesas,fcp.txt +++ b/Documentation/devicetree/bindings/media/renesas,fcp.txt | |||
@@ -11,15 +11,9 @@ are paired with. These DT bindings currently support the FCPV and FCPF. | |||
11 | 11 | ||
12 | - compatible: Must be one or more of the following | 12 | - compatible: Must be one or more of the following |
13 | 13 | ||
14 | - "renesas,r8a7795-fcpv" for R8A7795 (R-Car H3) compatible 'FCP for VSP' | ||
15 | - "renesas,r8a7795-fcpf" for R8A7795 (R-Car H3) compatible 'FCP for FDP' | ||
16 | - "renesas,fcpv" for generic compatible 'FCP for VSP' | 14 | - "renesas,fcpv" for generic compatible 'FCP for VSP' |
17 | - "renesas,fcpf" for generic compatible 'FCP for FDP' | 15 | - "renesas,fcpf" for generic compatible 'FCP for FDP' |
18 | 16 | ||
19 | When compatible with the generic version, nodes must list the | ||
20 | SoC-specific version corresponding to the platform first, followed by the | ||
21 | family-specific and/or generic versions. | ||
22 | |||
23 | - reg: the register base and size for the device registers | 17 | - reg: the register base and size for the device registers |
24 | - clocks: Reference to the functional clock | 18 | - clocks: Reference to the functional clock |
25 | 19 | ||
@@ -32,7 +26,7 @@ Device node example | |||
32 | ------------------- | 26 | ------------------- |
33 | 27 | ||
34 | fcpvd1: fcp@fea2f000 { | 28 | fcpvd1: fcp@fea2f000 { |
35 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 29 | compatible = "renesas,fcpv"; |
36 | reg = <0 0xfea2f000 0 0x200>; | 30 | reg = <0 0xfea2f000 0 0x200>; |
37 | clocks = <&cpg CPG_MOD 602>; | 31 | clocks = <&cpg CPG_MOD 602>; |
38 | power-domains = <&sysc R8A7795_PD_A3VP>; | 32 | power-domains = <&sysc R8A7795_PD_A3VP>; |
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 448c831753f8..16d3b5e7f5d1 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -197,6 +197,7 @@ neonode Neonode Inc. | |||
197 | netgear NETGEAR | 197 | netgear NETGEAR |
198 | netlogic Broadcom Corporation (formerly NetLogic Microsystems) | 198 | netlogic Broadcom Corporation (formerly NetLogic Microsystems) |
199 | netxeon Shenzhen Netxeon Technology CO., LTD | 199 | netxeon Shenzhen Netxeon Technology CO., LTD |
200 | nexbox Nexbox | ||
200 | newhaven Newhaven Display International | 201 | newhaven Newhaven Display International |
201 | ni National Instruments | 202 | ni National Instruments |
202 | nintendo Nintendo | 203 | nintendo Nintendo |
@@ -222,6 +223,7 @@ parade Parade Technologies Inc. | |||
222 | pericom Pericom Technology Inc. | 223 | pericom Pericom Technology Inc. |
223 | phytec PHYTEC Messtechnik GmbH | 224 | phytec PHYTEC Messtechnik GmbH |
224 | picochip Picochip Ltd | 225 | picochip Picochip Ltd |
226 | pine64 Pine64 | ||
225 | pixcir PIXCIR MICROELECTRONICS Co., Ltd | 227 | pixcir PIXCIR MICROELECTRONICS Co., Ltd |
226 | plathome Plat'Home Co., Ltd. | 228 | plathome Plat'Home Co., Ltd. |
227 | plda PLDA | 229 | plda PLDA |
diff --git a/MAINTAINERS b/MAINTAINERS index 3d7cf9910775..b5f5d5b47774 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -1042,6 +1042,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | |||
1042 | S: Maintained | 1042 | S: Maintained |
1043 | N: sun[x456789]i | 1043 | N: sun[x456789]i |
1044 | F: arch/arm/boot/dts/ntc-gr8* | 1044 | F: arch/arm/boot/dts/ntc-gr8* |
1045 | F: arch/arm64/boot/dts/allwinner/ | ||
1045 | 1046 | ||
1046 | ARM/Allwinner SoC Clock Support | 1047 | ARM/Allwinner SoC Clock Support |
1047 | M: Emilio López <emilio@elopez.com.ar> | 1048 | M: Emilio López <emilio@elopez.com.ar> |
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index 6684f97c2722..080232b0270e 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile | |||
@@ -1,4 +1,5 @@ | |||
1 | dts-dirs += al | 1 | dts-dirs += al |
2 | dts-dirs += allwinner | ||
2 | dts-dirs += altera | 3 | dts-dirs += altera |
3 | dts-dirs += amd | 4 | dts-dirs += amd |
4 | dts-dirs += amlogic | 5 | dts-dirs += amlogic |
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile new file mode 100644 index 000000000000..1e29a5ae8282 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/Makefile | |||
@@ -0,0 +1,5 @@ | |||
1 | dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb | ||
2 | |||
3 | always := $(dtb-y) | ||
4 | subdir-y := $(dts-dirs) | ||
5 | clean-files := *.dtb | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts new file mode 100644 index 000000000000..790d14daaa6a --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts | |||
@@ -0,0 +1,50 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 ARM Ltd. | ||
3 | * | ||
4 | * This file is dual-licensed: you can use it either under the terms | ||
5 | * of the GPL or the X11 license, at your option. Note that this dual | ||
6 | * licensing only applies to this file, and not this project as a | ||
7 | * whole. | ||
8 | * | ||
9 | * a) This library is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License as | ||
11 | * published by the Free Software Foundation; either version 2 of the | ||
12 | * License, or (at your option) any later version. | ||
13 | * | ||
14 | * This library is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * Or, alternatively, | ||
20 | * | ||
21 | * b) Permission is hereby granted, free of charge, to any person | ||
22 | * obtaining a copy of this software and associated documentation | ||
23 | * files (the "Software"), to deal in the Software without | ||
24 | * restriction, including without limitation the rights to use, | ||
25 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
26 | * sell copies of the Software, and to permit persons to whom the | ||
27 | * Software is furnished to do so, subject to the following | ||
28 | * conditions: | ||
29 | * | ||
30 | * The above copyright notice and this permission notice shall be | ||
31 | * included in all copies or substantial portions of the Software. | ||
32 | * | ||
33 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
34 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
35 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
36 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
37 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
38 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
39 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
40 | * OTHER DEALINGS IN THE SOFTWARE. | ||
41 | */ | ||
42 | |||
43 | #include "sun50i-a64-pine64.dts" | ||
44 | |||
45 | / { | ||
46 | model = "Pine64+"; | ||
47 | compatible = "pine64,pine64-plus", "allwinner,sun50i-a64"; | ||
48 | |||
49 | /* TODO: Camera, Ethernet PHY, touchscreen, etc. */ | ||
50 | }; | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts new file mode 100644 index 000000000000..47095909d9d6 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 ARM Ltd. | ||
3 | * | ||
4 | * This file is dual-licensed: you can use it either under the terms | ||
5 | * of the GPL or the X11 license, at your option. Note that this dual | ||
6 | * licensing only applies to this file, and not this project as a | ||
7 | * whole. | ||
8 | * | ||
9 | * a) This library is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License as | ||
11 | * published by the Free Software Foundation; either version 2 of the | ||
12 | * License, or (at your option) any later version. | ||
13 | * | ||
14 | * This library is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * Or, alternatively, | ||
20 | * | ||
21 | * b) Permission is hereby granted, free of charge, to any person | ||
22 | * obtaining a copy of this software and associated documentation | ||
23 | * files (the "Software"), to deal in the Software without | ||
24 | * restriction, including without limitation the rights to use, | ||
25 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
26 | * sell copies of the Software, and to permit persons to whom the | ||
27 | * Software is furnished to do so, subject to the following | ||
28 | * conditions: | ||
29 | * | ||
30 | * The above copyright notice and this permission notice shall be | ||
31 | * included in all copies or substantial portions of the Software. | ||
32 | * | ||
33 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
34 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
35 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
36 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
37 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
38 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
39 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
40 | * OTHER DEALINGS IN THE SOFTWARE. | ||
41 | */ | ||
42 | |||
43 | /dts-v1/; | ||
44 | |||
45 | #include "sun50i-a64.dtsi" | ||
46 | |||
47 | / { | ||
48 | model = "Pine64"; | ||
49 | compatible = "pine64,pine64", "allwinner,sun50i-a64"; | ||
50 | |||
51 | aliases { | ||
52 | serial0 = &uart0; | ||
53 | }; | ||
54 | |||
55 | chosen { | ||
56 | stdout-path = "serial0:115200n8"; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | &uart0 { | ||
61 | pinctrl-names = "default"; | ||
62 | pinctrl-0 = <&uart0_pins_a>; | ||
63 | status = "okay"; | ||
64 | }; | ||
65 | |||
66 | &i2c1 { | ||
67 | pinctrl-names = "default"; | ||
68 | pinctrl-0 = <&i2c1_pins>; | ||
69 | status = "okay"; | ||
70 | }; | ||
71 | |||
72 | &i2c1_pins { | ||
73 | bias-pull-up; | ||
74 | }; | ||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi new file mode 100644 index 000000000000..e0dcab8eb035 --- /dev/null +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | |||
@@ -0,0 +1,261 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2016 ARM Ltd. | ||
3 | * based on the Allwinner H3 dtsi: | ||
4 | * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com> | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This file is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This file is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * Or, alternatively, | ||
22 | * | ||
23 | * b) Permission is hereby granted, free of charge, to any person | ||
24 | * obtaining a copy of this software and associated documentation | ||
25 | * files (the "Software"), to deal in the Software without | ||
26 | * restriction, including without limitation the rights to use, | ||
27 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
28 | * sell copies of the Software, and to permit persons to whom the | ||
29 | * Software is furnished to do so, subject to the following | ||
30 | * conditions: | ||
31 | * | ||
32 | * The above copyright notice and this permission notice shall be | ||
33 | * included in all copies or substantial portions of the Software. | ||
34 | * | ||
35 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
36 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
37 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
38 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
39 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
40 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
41 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
42 | * OTHER DEALINGS IN THE SOFTWARE. | ||
43 | */ | ||
44 | |||
45 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
46 | #include <dt-bindings/pinctrl/sun4i-a10.h> | ||
47 | |||
48 | / { | ||
49 | interrupt-parent = <&gic>; | ||
50 | #address-cells = <1>; | ||
51 | #size-cells = <1>; | ||
52 | |||
53 | cpus { | ||
54 | #address-cells = <1>; | ||
55 | #size-cells = <0>; | ||
56 | |||
57 | cpu0: cpu@0 { | ||
58 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
59 | device_type = "cpu"; | ||
60 | reg = <0>; | ||
61 | enable-method = "psci"; | ||
62 | }; | ||
63 | |||
64 | cpu1: cpu@1 { | ||
65 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
66 | device_type = "cpu"; | ||
67 | reg = <1>; | ||
68 | enable-method = "psci"; | ||
69 | }; | ||
70 | |||
71 | cpu2: cpu@2 { | ||
72 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
73 | device_type = "cpu"; | ||
74 | reg = <2>; | ||
75 | enable-method = "psci"; | ||
76 | }; | ||
77 | |||
78 | cpu3: cpu@3 { | ||
79 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
80 | device_type = "cpu"; | ||
81 | reg = <3>; | ||
82 | enable-method = "psci"; | ||
83 | }; | ||
84 | }; | ||
85 | |||
86 | osc24M: osc24M_clk { | ||
87 | #clock-cells = <0>; | ||
88 | compatible = "fixed-clock"; | ||
89 | clock-frequency = <24000000>; | ||
90 | clock-output-names = "osc24M"; | ||
91 | }; | ||
92 | |||
93 | osc32k: osc32k_clk { | ||
94 | #clock-cells = <0>; | ||
95 | compatible = "fixed-clock"; | ||
96 | clock-frequency = <32768>; | ||
97 | clock-output-names = "osc32k"; | ||
98 | }; | ||
99 | |||
100 | psci { | ||
101 | compatible = "arm,psci-0.2"; | ||
102 | method = "smc"; | ||
103 | }; | ||
104 | |||
105 | timer { | ||
106 | compatible = "arm,armv8-timer"; | ||
107 | interrupts = <GIC_PPI 13 | ||
108 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
109 | <GIC_PPI 14 | ||
110 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
111 | <GIC_PPI 11 | ||
112 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>, | ||
113 | <GIC_PPI 10 | ||
114 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
115 | }; | ||
116 | |||
117 | soc { | ||
118 | compatible = "simple-bus"; | ||
119 | #address-cells = <1>; | ||
120 | #size-cells = <1>; | ||
121 | ranges; | ||
122 | |||
123 | ccu: clock@01c20000 { | ||
124 | compatible = "allwinner,sun50i-a64-ccu"; | ||
125 | reg = <0x01c20000 0x400>; | ||
126 | clocks = <&osc24M>, <&osc32k>; | ||
127 | clock-names = "hosc", "losc"; | ||
128 | #clock-cells = <1>; | ||
129 | #reset-cells = <1>; | ||
130 | }; | ||
131 | |||
132 | pio: pinctrl@1c20800 { | ||
133 | compatible = "allwinner,sun50i-a64-pinctrl"; | ||
134 | reg = <0x01c20800 0x400>; | ||
135 | interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, | ||
136 | <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, | ||
137 | <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | ||
138 | clocks = <&ccu 58>; | ||
139 | gpio-controller; | ||
140 | #gpio-cells = <3>; | ||
141 | interrupt-controller; | ||
142 | #interrupt-cells = <3>; | ||
143 | |||
144 | i2c1_pins: i2c1_pins { | ||
145 | pins = "PH2", "PH3"; | ||
146 | function = "i2c1"; | ||
147 | }; | ||
148 | |||
149 | uart0_pins_a: uart0@0 { | ||
150 | pins = "PB8", "PB9"; | ||
151 | function = "uart0"; | ||
152 | }; | ||
153 | }; | ||
154 | |||
155 | uart0: serial@1c28000 { | ||
156 | compatible = "snps,dw-apb-uart"; | ||
157 | reg = <0x01c28000 0x400>; | ||
158 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; | ||
159 | reg-shift = <2>; | ||
160 | reg-io-width = <4>; | ||
161 | clocks = <&ccu 67>; | ||
162 | resets = <&ccu 46>; | ||
163 | status = "disabled"; | ||
164 | }; | ||
165 | |||
166 | uart1: serial@1c28400 { | ||
167 | compatible = "snps,dw-apb-uart"; | ||
168 | reg = <0x01c28400 0x400>; | ||
169 | interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; | ||
170 | reg-shift = <2>; | ||
171 | reg-io-width = <4>; | ||
172 | clocks = <&ccu 68>; | ||
173 | resets = <&ccu 47>; | ||
174 | status = "disabled"; | ||
175 | }; | ||
176 | |||
177 | uart2: serial@1c28800 { | ||
178 | compatible = "snps,dw-apb-uart"; | ||
179 | reg = <0x01c28800 0x400>; | ||
180 | interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | ||
181 | reg-shift = <2>; | ||
182 | reg-io-width = <4>; | ||
183 | clocks = <&ccu 69>; | ||
184 | resets = <&ccu 48>; | ||
185 | status = "disabled"; | ||
186 | }; | ||
187 | |||
188 | uart3: serial@1c28c00 { | ||
189 | compatible = "snps,dw-apb-uart"; | ||
190 | reg = <0x01c28c00 0x400>; | ||
191 | interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; | ||
192 | reg-shift = <2>; | ||
193 | reg-io-width = <4>; | ||
194 | clocks = <&ccu 70>; | ||
195 | resets = <&ccu 49>; | ||
196 | status = "disabled"; | ||
197 | }; | ||
198 | |||
199 | uart4: serial@1c29000 { | ||
200 | compatible = "snps,dw-apb-uart"; | ||
201 | reg = <0x01c29000 0x400>; | ||
202 | interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; | ||
203 | reg-shift = <2>; | ||
204 | reg-io-width = <4>; | ||
205 | clocks = <&ccu 71>; | ||
206 | resets = <&ccu 50>; | ||
207 | status = "disabled"; | ||
208 | }; | ||
209 | |||
210 | i2c0: i2c@1c2ac00 { | ||
211 | compatible = "allwinner,sun6i-a31-i2c"; | ||
212 | reg = <0x01c2ac00 0x400>; | ||
213 | interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; | ||
214 | clocks = <&ccu 63>; | ||
215 | resets = <&ccu 42>; | ||
216 | status = "disabled"; | ||
217 | #address-cells = <1>; | ||
218 | #size-cells = <0>; | ||
219 | }; | ||
220 | |||
221 | i2c1: i2c@1c2b000 { | ||
222 | compatible = "allwinner,sun6i-a31-i2c"; | ||
223 | reg = <0x01c2b000 0x400>; | ||
224 | interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; | ||
225 | clocks = <&ccu 64>; | ||
226 | resets = <&ccu 43>; | ||
227 | status = "disabled"; | ||
228 | #address-cells = <1>; | ||
229 | #size-cells = <0>; | ||
230 | }; | ||
231 | |||
232 | i2c2: i2c@1c2b400 { | ||
233 | compatible = "allwinner,sun6i-a31-i2c"; | ||
234 | reg = <0x01c2b400 0x400>; | ||
235 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
236 | clocks = <&ccu 65>; | ||
237 | resets = <&ccu 44>; | ||
238 | status = "disabled"; | ||
239 | #address-cells = <1>; | ||
240 | #size-cells = <0>; | ||
241 | }; | ||
242 | |||
243 | gic: interrupt-controller@1c81000 { | ||
244 | compatible = "arm,gic-400"; | ||
245 | reg = <0x01c81000 0x1000>, | ||
246 | <0x01c82000 0x2000>, | ||
247 | <0x01c84000 0x2000>, | ||
248 | <0x01c86000 0x2000>; | ||
249 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
250 | interrupt-controller; | ||
251 | #interrupt-cells = <3>; | ||
252 | }; | ||
253 | |||
254 | rtc: rtc@1f00000 { | ||
255 | compatible = "allwinner,sun6i-a31-rtc"; | ||
256 | reg = <0x01f00000 0x54>; | ||
257 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | ||
258 | <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | ||
259 | }; | ||
260 | }; | ||
261 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile index 47ec703cb230..0d7bfbf7d922 100644 --- a/arch/arm64/boot/dts/amlogic/Makefile +++ b/arch/arm64/boot/dts/amlogic/Makefile | |||
@@ -1,9 +1,17 @@ | |||
1 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb | ||
1 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb | 2 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb |
2 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb | 3 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb |
3 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb | 4 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb |
4 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb | 5 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb |
5 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb | 6 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb |
6 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb | 7 | dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb |
8 | dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb | ||
9 | dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb | ||
10 | dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb | ||
11 | dtb-$(CONFIG_ARCH_MESON) += meson-gxl-nexbox-a95x.dtb | ||
12 | dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-q200.dtb | ||
13 | dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-q201.dtb | ||
14 | dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb | ||
7 | 15 | ||
8 | always := $(dtb-y) | 16 | always := $(dtb-y) |
9 | subdir-y := $(dts-dirs) | 17 | subdir-y := $(dts-dirs) |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi new file mode 100644 index 000000000000..7a078bef04cd --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | |||
@@ -0,0 +1,190 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | /* Common DTSI for same Amlogic Q200/Q201 and P230/P231 boards using either | ||
45 | * the pin-compatible S912 (GXM) or S905D (GXL) SoCs. | ||
46 | */ | ||
47 | |||
48 | / { | ||
49 | aliases { | ||
50 | serial0 = &uart_AO; | ||
51 | }; | ||
52 | |||
53 | chosen { | ||
54 | stdout-path = "serial0:115200n8"; | ||
55 | }; | ||
56 | |||
57 | memory@0 { | ||
58 | device_type = "memory"; | ||
59 | reg = <0x0 0x0 0x0 0x80000000>; | ||
60 | }; | ||
61 | |||
62 | vddio_boot: regulator-vddio_boot { | ||
63 | compatible = "regulator-fixed"; | ||
64 | regulator-name = "VDDIO_BOOT"; | ||
65 | regulator-min-microvolt = <1800000>; | ||
66 | regulator-max-microvolt = <1800000>; | ||
67 | }; | ||
68 | |||
69 | vddao_3v3: regulator-vddao_3v3 { | ||
70 | compatible = "regulator-fixed"; | ||
71 | regulator-name = "VDDAO_3V3"; | ||
72 | regulator-min-microvolt = <3300000>; | ||
73 | regulator-max-microvolt = <3300000>; | ||
74 | }; | ||
75 | |||
76 | vcc_3v3: regulator-vcc_3v3 { | ||
77 | compatible = "regulator-fixed"; | ||
78 | regulator-name = "VCC_3V3"; | ||
79 | regulator-min-microvolt = <3300000>; | ||
80 | regulator-max-microvolt = <3300000>; | ||
81 | }; | ||
82 | |||
83 | emmc_pwrseq: emmc-pwrseq { | ||
84 | compatible = "mmc-pwrseq-emmc"; | ||
85 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
86 | }; | ||
87 | |||
88 | wifi32k: wifi32k { | ||
89 | compatible = "pwm-clock"; | ||
90 | #clock-cells = <0>; | ||
91 | clock-frequency = <32768>; | ||
92 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
93 | }; | ||
94 | |||
95 | sdio_pwrseq: sdio-pwrseq { | ||
96 | compatible = "mmc-pwrseq-simple"; | ||
97 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | ||
98 | clocks = <&wifi32k>; | ||
99 | clock-names = "ext_clock"; | ||
100 | }; | ||
101 | }; | ||
102 | |||
103 | /* This UART is brought out to the DB9 connector */ | ||
104 | &uart_AO { | ||
105 | status = "okay"; | ||
106 | pinctrl-0 = <&uart_ao_a_pins>; | ||
107 | pinctrl-names = "default"; | ||
108 | }; | ||
109 | |||
110 | &ir { | ||
111 | status = "okay"; | ||
112 | pinctrl-0 = <&remote_input_ao_pins>; | ||
113 | pinctrl-names = "default"; | ||
114 | }; | ||
115 | |||
116 | /* Wireless SDIO Module */ | ||
117 | &sd_emmc_a { | ||
118 | status = "okay"; | ||
119 | pinctrl-0 = <&sdio_pins>; | ||
120 | pinctrl-names = "default"; | ||
121 | #address-cells = <1>; | ||
122 | #size-cells = <0>; | ||
123 | |||
124 | bus-width = <4>; | ||
125 | cap-sd-highspeed; | ||
126 | max-frequency = <100000000>; | ||
127 | |||
128 | non-removable; | ||
129 | disable-wp; | ||
130 | |||
131 | mmc-pwrseq = <&sdio_pwrseq>; | ||
132 | |||
133 | vmmc-supply = <&vddao_3v3>; | ||
134 | vqmmc-supply = <&vddio_boot>; | ||
135 | |||
136 | brcmf: bcrmf@1 { | ||
137 | reg = <1>; | ||
138 | compatible = "brcm,bcm4329-fmac"; | ||
139 | }; | ||
140 | }; | ||
141 | |||
142 | /* SD card */ | ||
143 | &sd_emmc_b { | ||
144 | status = "okay"; | ||
145 | pinctrl-0 = <&sdcard_pins>; | ||
146 | pinctrl-names = "default"; | ||
147 | |||
148 | bus-width = <4>; | ||
149 | cap-sd-highspeed; | ||
150 | max-frequency = <100000000>; | ||
151 | disable-wp; | ||
152 | |||
153 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
154 | cd-inverted; | ||
155 | |||
156 | vmmc-supply = <&vddao_3v3>; | ||
157 | vqmmc-supply = <&vddio_boot>; | ||
158 | }; | ||
159 | |||
160 | /* eMMC */ | ||
161 | &sd_emmc_c { | ||
162 | status = "okay"; | ||
163 | pinctrl-0 = <&emmc_pins>; | ||
164 | pinctrl-names = "default"; | ||
165 | |||
166 | bus-width = <8>; | ||
167 | cap-sd-highspeed; | ||
168 | cap-mmc-highspeed; | ||
169 | max-frequency = <200000000>; | ||
170 | non-removable; | ||
171 | disable-wp; | ||
172 | mmc-ddr-1_8v; | ||
173 | mmc-hs200-1_8v; | ||
174 | |||
175 | mmc-pwrseq = <&emmc_pwrseq>; | ||
176 | vmmc-supply = <&vcc_3v3>; | ||
177 | vqmmc-supply = <&vddio_boot>; | ||
178 | }; | ||
179 | |||
180 | &pwm_ef { | ||
181 | status = "okay"; | ||
182 | pinctrl-0 = <&pwm_e_pins>; | ||
183 | pinctrl-names = "default"; | ||
184 | clocks = <&clkc CLKID_FCLK_DIV4>; | ||
185 | clock-names = "clkin0"; | ||
186 | }; | ||
187 | |||
188 | ðmac { | ||
189 | status = "okay"; | ||
190 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi new file mode 100644 index 000000000000..fc033c0d2a0f --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi | |||
@@ -0,0 +1,360 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Andreas Färber | ||
3 | * | ||
4 | * Copyright (c) 2016 BayLibre, SAS. | ||
5 | * Author: Neil Armstrong <narmstrong@baylibre.com> | ||
6 | * | ||
7 | * Copyright (c) 2016 Endless Computers, Inc. | ||
8 | * Author: Carlo Caione <carlo@endlessm.com> | ||
9 | * | ||
10 | * This file is dual-licensed: you can use it either under the terms | ||
11 | * of the GPL or the X11 license, at your option. Note that this dual | ||
12 | * licensing only applies to this file, and not this project as a | ||
13 | * whole. | ||
14 | * | ||
15 | * a) This library is free software; you can redistribute it and/or | ||
16 | * modify it under the terms of the GNU General Public License as | ||
17 | * published by the Free Software Foundation; either version 2 of the | ||
18 | * License, or (at your option) any later version. | ||
19 | * | ||
20 | * This library is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * Or, alternatively, | ||
26 | * | ||
27 | * b) Permission is hereby granted, free of charge, to any person | ||
28 | * obtaining a copy of this software and associated documentation | ||
29 | * files (the "Software"), to deal in the Software without | ||
30 | * restriction, including without limitation the rights to use, | ||
31 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
32 | * sell copies of the Software, and to permit persons to whom the | ||
33 | * Software is furnished to do so, subject to the following | ||
34 | * conditions: | ||
35 | * | ||
36 | * The above copyright notice and this permission notice shall be | ||
37 | * included in all copies or substantial portions of the Software. | ||
38 | * | ||
39 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
40 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
41 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
42 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
43 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
44 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
45 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
46 | * OTHER DEALINGS IN THE SOFTWARE. | ||
47 | */ | ||
48 | |||
49 | #include <dt-bindings/gpio/gpio.h> | ||
50 | #include <dt-bindings/interrupt-controller/irq.h> | ||
51 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
52 | |||
53 | / { | ||
54 | interrupt-parent = <&gic>; | ||
55 | #address-cells = <2>; | ||
56 | #size-cells = <2>; | ||
57 | |||
58 | cpus { | ||
59 | #address-cells = <0x2>; | ||
60 | #size-cells = <0x0>; | ||
61 | |||
62 | cpu0: cpu@0 { | ||
63 | device_type = "cpu"; | ||
64 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
65 | reg = <0x0 0x0>; | ||
66 | enable-method = "psci"; | ||
67 | next-level-cache = <&l2>; | ||
68 | }; | ||
69 | |||
70 | cpu1: cpu@1 { | ||
71 | device_type = "cpu"; | ||
72 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
73 | reg = <0x0 0x1>; | ||
74 | enable-method = "psci"; | ||
75 | next-level-cache = <&l2>; | ||
76 | }; | ||
77 | |||
78 | cpu2: cpu@2 { | ||
79 | device_type = "cpu"; | ||
80 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
81 | reg = <0x0 0x2>; | ||
82 | enable-method = "psci"; | ||
83 | next-level-cache = <&l2>; | ||
84 | }; | ||
85 | |||
86 | cpu3: cpu@3 { | ||
87 | device_type = "cpu"; | ||
88 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
89 | reg = <0x0 0x3>; | ||
90 | enable-method = "psci"; | ||
91 | next-level-cache = <&l2>; | ||
92 | }; | ||
93 | |||
94 | l2: l2-cache0 { | ||
95 | compatible = "cache"; | ||
96 | }; | ||
97 | }; | ||
98 | |||
99 | arm-pmu { | ||
100 | compatible = "arm,cortex-a53-pmu"; | ||
101 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, | ||
102 | <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, | ||
103 | <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, | ||
104 | <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | ||
105 | interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; | ||
106 | }; | ||
107 | |||
108 | psci { | ||
109 | compatible = "arm,psci-0.2"; | ||
110 | method = "smc"; | ||
111 | }; | ||
112 | |||
113 | timer { | ||
114 | compatible = "arm,armv8-timer"; | ||
115 | interrupts = <GIC_PPI 13 | ||
116 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, | ||
117 | <GIC_PPI 14 | ||
118 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, | ||
119 | <GIC_PPI 11 | ||
120 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, | ||
121 | <GIC_PPI 10 | ||
122 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; | ||
123 | }; | ||
124 | |||
125 | xtal: xtal-clk { | ||
126 | compatible = "fixed-clock"; | ||
127 | clock-frequency = <24000000>; | ||
128 | clock-output-names = "xtal"; | ||
129 | #clock-cells = <0>; | ||
130 | }; | ||
131 | |||
132 | firmware { | ||
133 | sm: secure-monitor { | ||
134 | compatible = "amlogic,meson-gx-sm", "amlogic,meson-gxbb-sm"; | ||
135 | }; | ||
136 | }; | ||
137 | |||
138 | efuse: efuse { | ||
139 | compatible = "amlogic,meson-gx-efuse", "amlogic,meson-gxbb-efuse"; | ||
140 | #address-cells = <1>; | ||
141 | #size-cells = <1>; | ||
142 | |||
143 | sn: sn@14 { | ||
144 | reg = <0x14 0x10>; | ||
145 | }; | ||
146 | |||
147 | eth_mac: eth_mac@34 { | ||
148 | reg = <0x34 0x10>; | ||
149 | }; | ||
150 | |||
151 | bid: bid@46 { | ||
152 | reg = <0x46 0x30>; | ||
153 | }; | ||
154 | }; | ||
155 | |||
156 | soc { | ||
157 | compatible = "simple-bus"; | ||
158 | #address-cells = <2>; | ||
159 | #size-cells = <2>; | ||
160 | ranges; | ||
161 | |||
162 | cbus: cbus@c1100000 { | ||
163 | compatible = "simple-bus"; | ||
164 | reg = <0x0 0xc1100000 0x0 0x100000>; | ||
165 | #address-cells = <2>; | ||
166 | #size-cells = <2>; | ||
167 | ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>; | ||
168 | |||
169 | reset: reset-controller@4404 { | ||
170 | compatible = "amlogic,meson-gx-reset", "amlogic,meson-gxbb-reset"; | ||
171 | reg = <0x0 0x04404 0x0 0x20>; | ||
172 | #reset-cells = <1>; | ||
173 | }; | ||
174 | |||
175 | uart_A: serial@84c0 { | ||
176 | compatible = "amlogic,meson-uart"; | ||
177 | reg = <0x0 0x84c0 0x0 0x14>; | ||
178 | interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; | ||
179 | clocks = <&xtal>; | ||
180 | status = "disabled"; | ||
181 | }; | ||
182 | |||
183 | uart_B: serial@84dc { | ||
184 | compatible = "amlogic,meson-uart"; | ||
185 | reg = <0x0 0x84dc 0x0 0x14>; | ||
186 | interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>; | ||
187 | clocks = <&xtal>; | ||
188 | status = "disabled"; | ||
189 | }; | ||
190 | |||
191 | i2c_A: i2c@8500 { | ||
192 | compatible = "amlogic,meson-gxbb-i2c"; | ||
193 | reg = <0x0 0x08500 0x0 0x20>; | ||
194 | interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>; | ||
195 | #address-cells = <1>; | ||
196 | #size-cells = <0>; | ||
197 | status = "disabled"; | ||
198 | }; | ||
199 | |||
200 | pwm_ab: pwm@8550 { | ||
201 | compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm"; | ||
202 | reg = <0x0 0x08550 0x0 0x10>; | ||
203 | #pwm-cells = <3>; | ||
204 | status = "disabled"; | ||
205 | }; | ||
206 | |||
207 | pwm_cd: pwm@8650 { | ||
208 | compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm"; | ||
209 | reg = <0x0 0x08650 0x0 0x10>; | ||
210 | #pwm-cells = <3>; | ||
211 | status = "disabled"; | ||
212 | }; | ||
213 | |||
214 | pwm_ef: pwm@86c0 { | ||
215 | compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm"; | ||
216 | reg = <0x0 0x086c0 0x0 0x10>; | ||
217 | #pwm-cells = <3>; | ||
218 | status = "disabled"; | ||
219 | }; | ||
220 | |||
221 | uart_C: serial@8700 { | ||
222 | compatible = "amlogic,meson-uart"; | ||
223 | reg = <0x0 0x8700 0x0 0x14>; | ||
224 | interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>; | ||
225 | clocks = <&xtal>; | ||
226 | status = "disabled"; | ||
227 | }; | ||
228 | |||
229 | i2c_B: i2c@87c0 { | ||
230 | compatible = "amlogic,meson-gxbb-i2c"; | ||
231 | reg = <0x0 0x087c0 0x0 0x20>; | ||
232 | interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>; | ||
233 | #address-cells = <1>; | ||
234 | #size-cells = <0>; | ||
235 | status = "disabled"; | ||
236 | }; | ||
237 | |||
238 | i2c_C: i2c@87e0 { | ||
239 | compatible = "amlogic,meson-gxbb-i2c"; | ||
240 | reg = <0x0 0x087e0 0x0 0x20>; | ||
241 | interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; | ||
242 | #address-cells = <1>; | ||
243 | #size-cells = <0>; | ||
244 | status = "disabled"; | ||
245 | }; | ||
246 | |||
247 | watchdog@98d0 { | ||
248 | compatible = "amlogic,meson-gx-wdt", "amlogic,meson-gxbb-wdt"; | ||
249 | reg = <0x0 0x098d0 0x0 0x10>; | ||
250 | clocks = <&xtal>; | ||
251 | }; | ||
252 | }; | ||
253 | |||
254 | gic: interrupt-controller@c4301000 { | ||
255 | compatible = "arm,gic-400"; | ||
256 | reg = <0x0 0xc4301000 0 0x1000>, | ||
257 | <0x0 0xc4302000 0 0x2000>, | ||
258 | <0x0 0xc4304000 0 0x2000>, | ||
259 | <0x0 0xc4306000 0 0x2000>; | ||
260 | interrupt-controller; | ||
261 | interrupts = <GIC_PPI 9 | ||
262 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
263 | #interrupt-cells = <3>; | ||
264 | #address-cells = <0>; | ||
265 | }; | ||
266 | |||
267 | aobus: aobus@c8100000 { | ||
268 | compatible = "simple-bus"; | ||
269 | reg = <0x0 0xc8100000 0x0 0x100000>; | ||
270 | #address-cells = <2>; | ||
271 | #size-cells = <2>; | ||
272 | ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>; | ||
273 | |||
274 | uart_AO: serial@4c0 { | ||
275 | compatible = "amlogic,meson-uart"; | ||
276 | reg = <0x0 0x004c0 0x0 0x14>; | ||
277 | interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; | ||
278 | clocks = <&xtal>; | ||
279 | status = "disabled"; | ||
280 | }; | ||
281 | |||
282 | ir: ir@580 { | ||
283 | compatible = "amlogic,meson-gxbb-ir"; | ||
284 | reg = <0x0 0x00580 0x0 0x40>; | ||
285 | interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; | ||
286 | status = "disabled"; | ||
287 | }; | ||
288 | }; | ||
289 | |||
290 | periphs: periphs@c8834000 { | ||
291 | compatible = "simple-bus"; | ||
292 | reg = <0x0 0xc8834000 0x0 0x2000>; | ||
293 | #address-cells = <2>; | ||
294 | #size-cells = <2>; | ||
295 | ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; | ||
296 | |||
297 | rng { | ||
298 | compatible = "amlogic,meson-rng"; | ||
299 | reg = <0x0 0x0 0x0 0x4>; | ||
300 | }; | ||
301 | }; | ||
302 | |||
303 | |||
304 | hiubus: hiubus@c883c000 { | ||
305 | compatible = "simple-bus"; | ||
306 | reg = <0x0 0xc883c000 0x0 0x2000>; | ||
307 | #address-cells = <2>; | ||
308 | #size-cells = <2>; | ||
309 | ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>; | ||
310 | |||
311 | mailbox: mailbox@404 { | ||
312 | compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu"; | ||
313 | reg = <0 0x404 0 0x4c>; | ||
314 | interrupts = <0 208 IRQ_TYPE_EDGE_RISING>, | ||
315 | <0 209 IRQ_TYPE_EDGE_RISING>, | ||
316 | <0 210 IRQ_TYPE_EDGE_RISING>; | ||
317 | #mbox-cells = <1>; | ||
318 | }; | ||
319 | }; | ||
320 | |||
321 | ethmac: ethernet@c9410000 { | ||
322 | compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac"; | ||
323 | reg = <0x0 0xc9410000 0x0 0x10000 | ||
324 | 0x0 0xc8834540 0x0 0x4>; | ||
325 | interrupts = <0 8 1>; | ||
326 | interrupt-names = "macirq"; | ||
327 | phy-mode = "rgmii"; | ||
328 | status = "disabled"; | ||
329 | }; | ||
330 | |||
331 | apb: apb@d0000000 { | ||
332 | compatible = "simple-bus"; | ||
333 | reg = <0x0 0xd0000000 0x0 0x200000>; | ||
334 | #address-cells = <2>; | ||
335 | #size-cells = <2>; | ||
336 | ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>; | ||
337 | |||
338 | sd_emmc_a: mmc@70000 { | ||
339 | compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; | ||
340 | reg = <0x0 0x70000 0x0 0x2000>; | ||
341 | interrupts = <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>; | ||
342 | status = "disabled"; | ||
343 | }; | ||
344 | |||
345 | sd_emmc_b: mmc@72000 { | ||
346 | compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; | ||
347 | reg = <0x0 0x72000 0x0 0x2000>; | ||
348 | interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>; | ||
349 | status = "disabled"; | ||
350 | }; | ||
351 | |||
352 | sd_emmc_c: mmc@74000 { | ||
353 | compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc"; | ||
354 | reg = <0x0 0x74000 0x0 0x2000>; | ||
355 | interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>; | ||
356 | status = "disabled"; | ||
357 | }; | ||
358 | }; | ||
359 | }; | ||
360 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts new file mode 100644 index 000000000000..969682092e0f --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | |||
@@ -0,0 +1,231 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Andreas Färber | ||
3 | * Copyright (c) 2016 BayLibre, Inc. | ||
4 | * Author: Neil Armstrong <narmstrong@kernel.org> | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * Or, alternatively, | ||
22 | * | ||
23 | * b) Permission is hereby granted, free of charge, to any person | ||
24 | * obtaining a copy of this software and associated documentation | ||
25 | * files (the "Software"), to deal in the Software without | ||
26 | * restriction, including without limitation the rights to use, | ||
27 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
28 | * sell copies of the Software, and to permit persons to whom the | ||
29 | * Software is furnished to do so, subject to the following | ||
30 | * conditions: | ||
31 | * | ||
32 | * The above copyright notice and this permission notice shall be | ||
33 | * included in all copies or substantial portions of the Software. | ||
34 | * | ||
35 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
36 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
37 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
38 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
39 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
40 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
41 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
42 | * OTHER DEALINGS IN THE SOFTWARE. | ||
43 | */ | ||
44 | |||
45 | /dts-v1/; | ||
46 | |||
47 | #include "meson-gxbb.dtsi" | ||
48 | #include <dt-bindings/gpio/gpio.h> | ||
49 | #include <dt-bindings/input/input.h> | ||
50 | |||
51 | / { | ||
52 | compatible = "nexbox,a95x", "amlogic,meson-gxbb"; | ||
53 | model = "NEXBOX A95X"; | ||
54 | |||
55 | aliases { | ||
56 | serial0 = &uart_AO; | ||
57 | }; | ||
58 | |||
59 | chosen { | ||
60 | stdout-path = "serial0:115200n8"; | ||
61 | }; | ||
62 | |||
63 | memory@0 { | ||
64 | device_type = "memory"; | ||
65 | reg = <0x0 0x0 0x0 0x40000000>; | ||
66 | }; | ||
67 | |||
68 | leds { | ||
69 | compatible = "gpio-leds"; | ||
70 | blue { | ||
71 | label = "a95x:system-status"; | ||
72 | gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_LOW>; | ||
73 | linux,default-trigger = "heartbeat"; | ||
74 | default-state = "off"; | ||
75 | }; | ||
76 | }; | ||
77 | |||
78 | gpio-keys-polled { | ||
79 | compatible = "gpio-keys-polled"; | ||
80 | #address-cells = <1>; | ||
81 | #size-cells = <0>; | ||
82 | poll-interval = <100>; | ||
83 | |||
84 | button@0 { | ||
85 | label = "reset"; | ||
86 | linux,code = <KEY_RESTART>; | ||
87 | gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | vddio_card: gpio-regulator { | ||
92 | compatible = "regulator-gpio"; | ||
93 | |||
94 | regulator-name = "VDDIO_CARD"; | ||
95 | regulator-min-microvolt = <1800000>; | ||
96 | regulator-max-microvolt = <3300000>; | ||
97 | |||
98 | gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | ||
99 | gpios-states = <1>; | ||
100 | |||
101 | /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ | ||
102 | states = <1800000 0 | ||
103 | 3300000 1>; | ||
104 | }; | ||
105 | |||
106 | vddio_boot: regulator-vddio_boot { | ||
107 | compatible = "regulator-fixed"; | ||
108 | regulator-name = "VDDIO_BOOT"; | ||
109 | regulator-min-microvolt = <1800000>; | ||
110 | regulator-max-microvolt = <1800000>; | ||
111 | }; | ||
112 | |||
113 | vddao_3v3: regulator-vddao_3v3 { | ||
114 | compatible = "regulator-fixed"; | ||
115 | regulator-name = "VDDAO_3V3"; | ||
116 | regulator-min-microvolt = <3300000>; | ||
117 | regulator-max-microvolt = <3300000>; | ||
118 | }; | ||
119 | |||
120 | vcc_3v3: regulator-vcc_3v3 { | ||
121 | compatible = "regulator-fixed"; | ||
122 | regulator-name = "VCC_3V3"; | ||
123 | regulator-min-microvolt = <3300000>; | ||
124 | regulator-max-microvolt = <3300000>; | ||
125 | }; | ||
126 | |||
127 | emmc_pwrseq: emmc-pwrseq { | ||
128 | compatible = "mmc-pwrseq-emmc"; | ||
129 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
130 | }; | ||
131 | |||
132 | wifi32k: wifi32k { | ||
133 | compatible = "pwm-clock"; | ||
134 | #clock-cells = <0>; | ||
135 | clock-frequency = <32768>; | ||
136 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
137 | }; | ||
138 | |||
139 | sdio_pwrseq: sdio-pwrseq { | ||
140 | compatible = "mmc-pwrseq-simple"; | ||
141 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | ||
142 | clocks = <&wifi32k>; | ||
143 | clock-names = "ext_clock"; | ||
144 | }; | ||
145 | }; | ||
146 | |||
147 | &uart_AO { | ||
148 | status = "okay"; | ||
149 | pinctrl-0 = <&uart_ao_a_pins>; | ||
150 | pinctrl-names = "default"; | ||
151 | }; | ||
152 | |||
153 | ðmac { | ||
154 | status = "okay"; | ||
155 | pinctrl-0 = <ð_rmii_pins>; | ||
156 | pinctrl-names = "default"; | ||
157 | phy-mode = "rmii"; | ||
158 | }; | ||
159 | |||
160 | &ir { | ||
161 | status = "okay"; | ||
162 | pinctrl-0 = <&remote_input_ao_pins>; | ||
163 | pinctrl-names = "default"; | ||
164 | }; | ||
165 | |||
166 | /* Wireless SDIO Module */ | ||
167 | &sd_emmc_a { | ||
168 | status = "okay"; | ||
169 | pinctrl-0 = <&sdio_pins>; | ||
170 | pinctrl-names = "default"; | ||
171 | #address-cells = <1>; | ||
172 | #size-cells = <0>; | ||
173 | |||
174 | bus-width = <4>; | ||
175 | cap-sd-highspeed; | ||
176 | max-frequency = <100000000>; | ||
177 | |||
178 | non-removable; | ||
179 | disable-wp; | ||
180 | |||
181 | mmc-pwrseq = <&sdio_pwrseq>; | ||
182 | |||
183 | vmmc-supply = <&vddao_3v3>; | ||
184 | vqmmc-supply = <&vddio_boot>; | ||
185 | }; | ||
186 | |||
187 | /* SD card */ | ||
188 | &sd_emmc_b { | ||
189 | status = "okay"; | ||
190 | pinctrl-0 = <&sdcard_pins>; | ||
191 | pinctrl-names = "default"; | ||
192 | |||
193 | bus-width = <4>; | ||
194 | cap-sd-highspeed; | ||
195 | max-frequency = <100000000>; | ||
196 | disable-wp; | ||
197 | |||
198 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
199 | cd-inverted; | ||
200 | |||
201 | vmmc-supply = <&vddao_3v3>; | ||
202 | vqmmc-supply = <&vddio_card>; | ||
203 | }; | ||
204 | |||
205 | /* eMMC */ | ||
206 | &sd_emmc_c { | ||
207 | status = "okay"; | ||
208 | pinctrl-0 = <&emmc_pins>; | ||
209 | pinctrl-names = "default"; | ||
210 | |||
211 | bus-width = <8>; | ||
212 | cap-sd-highspeed; | ||
213 | cap-mmc-highspeed; | ||
214 | max-frequency = <200000000>; | ||
215 | non-removable; | ||
216 | disable-wp; | ||
217 | mmc-ddr-1_8v; | ||
218 | mmc-hs200-1_8v; | ||
219 | |||
220 | mmc-pwrseq = <&emmc_pwrseq>; | ||
221 | vmmc-supply = <&vcc_3v3>; | ||
222 | vqmmc-supply = <&vddio_boot>; | ||
223 | }; | ||
224 | |||
225 | &pwm_ef { | ||
226 | status = "okay"; | ||
227 | pinctrl-0 = <&pwm_e_pins>; | ||
228 | pinctrl-names = "default"; | ||
229 | clocks = <&clkc CLKID_FCLK_DIV4>; | ||
230 | clock-names = "clkin0"; | ||
231 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts index e6e3491d48a5..238fbeacd330 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | |||
@@ -64,6 +64,18 @@ | |||
64 | reg = <0x0 0x0 0x0 0x80000000>; | 64 | reg = <0x0 0x0 0x0 0x80000000>; |
65 | }; | 65 | }; |
66 | 66 | ||
67 | usb_otg_pwr: regulator-usb-pwrs { | ||
68 | compatible = "regulator-fixed"; | ||
69 | |||
70 | regulator-name = "USB_OTG_PWR"; | ||
71 | |||
72 | regulator-min-microvolt = <5000000>; | ||
73 | regulator-max-microvolt = <5000000>; | ||
74 | |||
75 | gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | ||
76 | enable-active-high; | ||
77 | }; | ||
78 | |||
67 | leds { | 79 | leds { |
68 | compatible = "gpio-leds"; | 80 | compatible = "gpio-leds"; |
69 | blue { | 81 | blue { |
@@ -73,6 +85,56 @@ | |||
73 | default-state = "off"; | 85 | default-state = "off"; |
74 | }; | 86 | }; |
75 | }; | 87 | }; |
88 | |||
89 | tflash_vdd: regulator-tflash_vdd { | ||
90 | /* | ||
91 | * signal name from schematics: TFLASH_VDD_EN | ||
92 | */ | ||
93 | compatible = "regulator-fixed"; | ||
94 | |||
95 | regulator-name = "TFLASH_VDD"; | ||
96 | regulator-min-microvolt = <3300000>; | ||
97 | regulator-max-microvolt = <3300000>; | ||
98 | |||
99 | gpio = <&gpio_ao GPIOAO_12 GPIO_ACTIVE_HIGH>; | ||
100 | enable-active-high; | ||
101 | }; | ||
102 | |||
103 | tf_io: gpio-regulator-tf_io { | ||
104 | compatible = "regulator-gpio"; | ||
105 | |||
106 | regulator-name = "TF_IO"; | ||
107 | regulator-min-microvolt = <1800000>; | ||
108 | regulator-max-microvolt = <3300000>; | ||
109 | |||
110 | /* | ||
111 | * signal name from schematics: TF_3V3N_1V8_EN | ||
112 | */ | ||
113 | gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; | ||
114 | gpios-states = <0>; | ||
115 | |||
116 | states = <3300000 0 | ||
117 | 1800000 1>; | ||
118 | }; | ||
119 | |||
120 | vcc1v8: regulator-vcc1v8 { | ||
121 | compatible = "regulator-fixed"; | ||
122 | regulator-name = "VCC1V8"; | ||
123 | regulator-min-microvolt = <1800000>; | ||
124 | regulator-max-microvolt = <1800000>; | ||
125 | }; | ||
126 | |||
127 | vcc3v3: regulator-vcc3v3 { | ||
128 | compatible = "regulator-fixed"; | ||
129 | regulator-name = "VCC3V3"; | ||
130 | regulator-min-microvolt = <3300000>; | ||
131 | regulator-max-microvolt = <3300000>; | ||
132 | }; | ||
133 | |||
134 | emmc_pwrseq: emmc-pwrseq { | ||
135 | compatible = "mmc-pwrseq-emmc"; | ||
136 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
137 | }; | ||
76 | }; | 138 | }; |
77 | 139 | ||
78 | &uart_AO { | 140 | &uart_AO { |
@@ -83,7 +145,7 @@ | |||
83 | 145 | ||
84 | ðmac { | 146 | ðmac { |
85 | status = "okay"; | 147 | status = "okay"; |
86 | pinctrl-0 = <ð_pins>; | 148 | pinctrl-0 = <ð_rgmii_pins>; |
87 | pinctrl-names = "default"; | 149 | pinctrl-names = "default"; |
88 | }; | 150 | }; |
89 | 151 | ||
@@ -98,3 +160,58 @@ | |||
98 | pinctrl-0 = <&i2c_a_pins>; | 160 | pinctrl-0 = <&i2c_a_pins>; |
99 | pinctrl-names = "default"; | 161 | pinctrl-names = "default"; |
100 | }; | 162 | }; |
163 | |||
164 | &usb0_phy { | ||
165 | status = "okay"; | ||
166 | phy-supply = <&usb_otg_pwr>; | ||
167 | }; | ||
168 | |||
169 | &usb1_phy { | ||
170 | status = "okay"; | ||
171 | }; | ||
172 | |||
173 | &usb0 { | ||
174 | status = "okay"; | ||
175 | }; | ||
176 | |||
177 | &usb1 { | ||
178 | status = "okay"; | ||
179 | }; | ||
180 | |||
181 | /* SD */ | ||
182 | &sd_emmc_b { | ||
183 | status = "okay"; | ||
184 | pinctrl-0 = <&sdcard_pins>; | ||
185 | pinctrl-names = "default"; | ||
186 | |||
187 | bus-width = <4>; | ||
188 | cap-sd-highspeed; | ||
189 | max-frequency = <100000000>; | ||
190 | disable-wp; | ||
191 | |||
192 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
193 | cd-inverted; | ||
194 | |||
195 | vmmc-supply = <&tflash_vdd>; | ||
196 | vqmmc-supply = <&tf_io>; | ||
197 | }; | ||
198 | |||
199 | /* eMMC */ | ||
200 | &sd_emmc_c { | ||
201 | status = "okay"; | ||
202 | pinctrl-0 = <&emmc_pins>; | ||
203 | pinctrl-names = "default"; | ||
204 | |||
205 | bus-width = <8>; | ||
206 | cap-sd-highspeed; | ||
207 | max-frequency = <200000000>; | ||
208 | non-removable; | ||
209 | disable-wp; | ||
210 | cap-mmc-highspeed; | ||
211 | mmc-ddr-1_8v; | ||
212 | mmc-hs200-1_8v; | ||
213 | |||
214 | mmc-pwrseq = <&emmc_pwrseq>; | ||
215 | vmmc-supply = <&vcc3v3>; | ||
216 | vqmmc-supply = <&vcc1v8>; | ||
217 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi index 06a34dc6002f..203be28978d5 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | |||
@@ -70,6 +70,61 @@ | |||
70 | gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; | 70 | gpio = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; |
71 | enable-active-high; | 71 | enable-active-high; |
72 | }; | 72 | }; |
73 | |||
74 | vddio_card: gpio-regulator { | ||
75 | compatible = "regulator-gpio"; | ||
76 | |||
77 | regulator-name = "VDDIO_CARD"; | ||
78 | regulator-min-microvolt = <1800000>; | ||
79 | regulator-max-microvolt = <3300000>; | ||
80 | |||
81 | gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | ||
82 | gpios-states = <1>; | ||
83 | |||
84 | /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ | ||
85 | states = <1800000 0 | ||
86 | 3300000 1>; | ||
87 | }; | ||
88 | |||
89 | vddio_boot: regulator-vddio_boot { | ||
90 | compatible = "regulator-fixed"; | ||
91 | regulator-name = "VDDIO_BOOT"; | ||
92 | regulator-min-microvolt = <1800000>; | ||
93 | regulator-max-microvolt = <1800000>; | ||
94 | }; | ||
95 | |||
96 | vddao_3v3: regulator-vddao_3v3 { | ||
97 | compatible = "regulator-fixed"; | ||
98 | regulator-name = "VDDAO_3V3"; | ||
99 | regulator-min-microvolt = <3300000>; | ||
100 | regulator-max-microvolt = <3300000>; | ||
101 | }; | ||
102 | |||
103 | vcc_3v3: regulator-vcc_3v3 { | ||
104 | compatible = "regulator-fixed"; | ||
105 | regulator-name = "VCC_3V3"; | ||
106 | regulator-min-microvolt = <3300000>; | ||
107 | regulator-max-microvolt = <3300000>; | ||
108 | }; | ||
109 | |||
110 | emmc_pwrseq: emmc-pwrseq { | ||
111 | compatible = "mmc-pwrseq-emmc"; | ||
112 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
113 | }; | ||
114 | |||
115 | wifi32k: wifi32k { | ||
116 | compatible = "pwm-clock"; | ||
117 | #clock-cells = <0>; | ||
118 | clock-frequency = <32768>; | ||
119 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
120 | }; | ||
121 | |||
122 | sdio_pwrseq: sdio-pwrseq { | ||
123 | compatible = "mmc-pwrseq-simple"; | ||
124 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | ||
125 | clocks = <&wifi32k>; | ||
126 | clock-names = "ext_clock"; | ||
127 | }; | ||
73 | }; | 128 | }; |
74 | 129 | ||
75 | /* This UART is brought out to the DB9 connector */ | 130 | /* This UART is brought out to the DB9 connector */ |
@@ -81,7 +136,7 @@ | |||
81 | 136 | ||
82 | ðmac { | 137 | ðmac { |
83 | status = "okay"; | 138 | status = "okay"; |
84 | pinctrl-0 = <ð_pins>; | 139 | pinctrl-0 = <ð_rgmii_pins>; |
85 | pinctrl-names = "default"; | 140 | pinctrl-names = "default"; |
86 | }; | 141 | }; |
87 | 142 | ||
@@ -107,3 +162,75 @@ | |||
107 | &usb1 { | 162 | &usb1 { |
108 | status = "okay"; | 163 | status = "okay"; |
109 | }; | 164 | }; |
165 | |||
166 | /* Wireless SDIO Module */ | ||
167 | &sd_emmc_a { | ||
168 | status = "okay"; | ||
169 | pinctrl-0 = <&sdio_pins>; | ||
170 | pinctrl-names = "default"; | ||
171 | #address-cells = <1>; | ||
172 | #size-cells = <0>; | ||
173 | |||
174 | bus-width = <4>; | ||
175 | cap-sd-highspeed; | ||
176 | max-frequency = <100000000>; | ||
177 | |||
178 | non-removable; | ||
179 | disable-wp; | ||
180 | |||
181 | mmc-pwrseq = <&sdio_pwrseq>; | ||
182 | |||
183 | vmmc-supply = <&vddao_3v3>; | ||
184 | vqmmc-supply = <&vddio_boot>; | ||
185 | |||
186 | brcmf: bcrmf@1 { | ||
187 | reg = <1>; | ||
188 | compatible = "brcm,bcm4329-fmac"; | ||
189 | }; | ||
190 | }; | ||
191 | |||
192 | /* SD card */ | ||
193 | &sd_emmc_b { | ||
194 | status = "okay"; | ||
195 | pinctrl-0 = <&sdcard_pins>; | ||
196 | pinctrl-names = "default"; | ||
197 | |||
198 | bus-width = <4>; | ||
199 | cap-sd-highspeed; | ||
200 | max-frequency = <100000000>; | ||
201 | disable-wp; | ||
202 | |||
203 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
204 | cd-inverted; | ||
205 | |||
206 | vmmc-supply = <&vddao_3v3>; | ||
207 | vqmmc-supply = <&vddio_card>; | ||
208 | }; | ||
209 | |||
210 | /* eMMC */ | ||
211 | &sd_emmc_c { | ||
212 | status = "okay"; | ||
213 | pinctrl-0 = <&emmc_pins>; | ||
214 | pinctrl-names = "default"; | ||
215 | |||
216 | bus-width = <8>; | ||
217 | cap-sd-highspeed; | ||
218 | cap-mmc-highspeed; | ||
219 | max-frequency = <200000000>; | ||
220 | non-removable; | ||
221 | disable-wp; | ||
222 | mmc-ddr-1_8v; | ||
223 | mmc-hs200-1_8v; | ||
224 | |||
225 | mmc-pwrseq = <&emmc_pwrseq>; | ||
226 | vmmc-supply = <&vcc_3v3>; | ||
227 | vqmmc-supply = <&vddio_boot>; | ||
228 | }; | ||
229 | |||
230 | &pwm_ef { | ||
231 | status = "okay"; | ||
232 | pinctrl-0 = <&pwm_e_pins>; | ||
233 | pinctrl-names = "default"; | ||
234 | clocks = <&clkc CLKID_FCLK_DIV4>; | ||
235 | clock-names = "clkin0"; | ||
236 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi index 73f159370188..e59ad308192f 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | |||
@@ -65,6 +65,39 @@ | |||
65 | enable-active-high; | 65 | enable-active-high; |
66 | }; | 66 | }; |
67 | 67 | ||
68 | vcc_3v3: regulator-vcc_3v3 { | ||
69 | compatible = "regulator-fixed"; | ||
70 | regulator-name = "VCC_3V3"; | ||
71 | regulator-min-microvolt = <3300000>; | ||
72 | regulator-max-microvolt = <3300000>; | ||
73 | }; | ||
74 | |||
75 | vcc_1v8: regulator-vcc_1v8 { | ||
76 | compatible = "regulator-fixed"; | ||
77 | regulator-name = "VCC_1V8"; | ||
78 | regulator-min-microvolt = <1800000>; | ||
79 | regulator-max-microvolt = <1800000>; | ||
80 | }; | ||
81 | |||
82 | emmc_pwrseq: emmc-pwrseq { | ||
83 | compatible = "mmc-pwrseq-emmc"; | ||
84 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
85 | }; | ||
86 | |||
87 | wifi32k: wifi32k { | ||
88 | compatible = "pwm-clock"; | ||
89 | #clock-cells = <0>; | ||
90 | clock-frequency = <32768>; | ||
91 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
92 | }; | ||
93 | |||
94 | sdio_pwrseq: sdio-pwrseq { | ||
95 | compatible = "mmc-pwrseq-simple"; | ||
96 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>, | ||
97 | <&gpio GPIOX_20 GPIO_ACTIVE_LOW>; | ||
98 | clocks = <&wifi32k>; | ||
99 | clock-names = "ext_clock"; | ||
100 | }; | ||
68 | }; | 101 | }; |
69 | 102 | ||
70 | &uart_AO { | 103 | &uart_AO { |
@@ -82,7 +115,7 @@ | |||
82 | 115 | ||
83 | ðmac { | 116 | ðmac { |
84 | status = "okay"; | 117 | status = "okay"; |
85 | pinctrl-0 = <ð_pins>; | 118 | pinctrl-0 = <ð_rgmii_pins>; |
86 | pinctrl-names = "default"; | 119 | pinctrl-names = "default"; |
87 | }; | 120 | }; |
88 | 121 | ||
@@ -102,3 +135,74 @@ | |||
102 | &usb1 { | 135 | &usb1 { |
103 | status = "okay"; | 136 | status = "okay"; |
104 | }; | 137 | }; |
138 | |||
139 | /* Wireless SDIO Module */ | ||
140 | &sd_emmc_a { | ||
141 | status = "okay"; | ||
142 | pinctrl-0 = <&sdio_pins &sdio_irq_pins>; | ||
143 | pinctrl-names = "default"; | ||
144 | #address-cells = <1>; | ||
145 | #size-cells = <0>; | ||
146 | |||
147 | bus-width = <4>; | ||
148 | cap-sd-highspeed; | ||
149 | max-frequency = <100000000>; | ||
150 | |||
151 | non-removable; | ||
152 | disable-wp; | ||
153 | |||
154 | mmc-pwrseq = <&sdio_pwrseq>; | ||
155 | |||
156 | vmmc-supply = <&vcc_3v3>; | ||
157 | vqmmc-supply = <&vcc_1v8>; | ||
158 | |||
159 | brcmf: bcrmf@1 { | ||
160 | reg = <1>; | ||
161 | compatible = "brcm,bcm4329-fmac"; | ||
162 | }; | ||
163 | }; | ||
164 | |||
165 | /* SD card */ | ||
166 | &sd_emmc_b { | ||
167 | status = "okay"; | ||
168 | pinctrl-0 = <&sdcard_pins>; | ||
169 | pinctrl-names = "default"; | ||
170 | |||
171 | bus-width = <4>; | ||
172 | cap-sd-highspeed; | ||
173 | max-frequency = <100000000>; | ||
174 | disable-wp; | ||
175 | |||
176 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
177 | cd-inverted; | ||
178 | |||
179 | vmmc-supply = <&vcc_3v3>; | ||
180 | }; | ||
181 | |||
182 | /* eMMC */ | ||
183 | &sd_emmc_c { | ||
184 | status = "okay"; | ||
185 | pinctrl-0 = <&emmc_pins>; | ||
186 | pinctrl-names = "default"; | ||
187 | |||
188 | bus-width = <8>; | ||
189 | cap-sd-highspeed; | ||
190 | cap-mmc-highspeed; | ||
191 | max-frequency = <200000000>; | ||
192 | non-removable; | ||
193 | disable-wp; | ||
194 | mmc-ddr-1_8v; | ||
195 | mmc-hs200-1_8v; | ||
196 | |||
197 | mmc-pwrseq = <&emmc_pwrseq>; | ||
198 | vmmc-supply = <&vcc_3v3>; | ||
199 | vmmcq-sumpply = <&vcc_1v8>; | ||
200 | }; | ||
201 | |||
202 | &pwm_ef { | ||
203 | status = "okay"; | ||
204 | pinctrl-0 = <&pwm_e_pins>; | ||
205 | pinctrl-names = "default"; | ||
206 | clocks = <&clkc CLKID_FCLK_DIV4>; | ||
207 | clock-names = "clkin0"; | ||
208 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi index 610e0e1c3cee..51edd5b5c460 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | |||
@@ -40,9 +40,7 @@ | |||
40 | * OTHER DEALINGS IN THE SOFTWARE. | 40 | * OTHER DEALINGS IN THE SOFTWARE. |
41 | */ | 41 | */ |
42 | 42 | ||
43 | #include <dt-bindings/gpio/gpio.h> | 43 | #include "meson-gx.dtsi" |
44 | #include <dt-bindings/interrupt-controller/irq.h> | ||
45 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
46 | #include <dt-bindings/gpio/meson-gxbb-gpio.h> | 44 | #include <dt-bindings/gpio/meson-gxbb-gpio.h> |
47 | #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> | 45 | #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h> |
48 | #include <dt-bindings/clock/gxbb-clkc.h> | 46 | #include <dt-bindings/clock/gxbb-clkc.h> |
@@ -51,106 +49,30 @@ | |||
51 | 49 | ||
52 | / { | 50 | / { |
53 | compatible = "amlogic,meson-gxbb"; | 51 | compatible = "amlogic,meson-gxbb"; |
54 | interrupt-parent = <&gic>; | ||
55 | #address-cells = <2>; | ||
56 | #size-cells = <2>; | ||
57 | 52 | ||
58 | cpus { | 53 | scpi { |
59 | #address-cells = <0x2>; | 54 | compatible = "amlogic,meson-gxbb-scpi", "arm,scpi-pre-1.0"; |
60 | #size-cells = <0x0>; | 55 | mboxes = <&mailbox 1 &mailbox 2>; |
56 | shmem = <&cpu_scp_lpri &cpu_scp_hpri>; | ||
61 | 57 | ||
62 | cpu0: cpu@0 { | 58 | clocks { |
63 | device_type = "cpu"; | 59 | compatible = "arm,scpi-clocks"; |
64 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
65 | reg = <0x0 0x0>; | ||
66 | enable-method = "psci"; | ||
67 | }; | ||
68 | |||
69 | cpu1: cpu@1 { | ||
70 | device_type = "cpu"; | ||
71 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
72 | reg = <0x0 0x1>; | ||
73 | enable-method = "psci"; | ||
74 | }; | ||
75 | |||
76 | cpu2: cpu@2 { | ||
77 | device_type = "cpu"; | ||
78 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
79 | reg = <0x0 0x2>; | ||
80 | enable-method = "psci"; | ||
81 | }; | ||
82 | |||
83 | cpu3: cpu@3 { | ||
84 | device_type = "cpu"; | ||
85 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
86 | reg = <0x0 0x3>; | ||
87 | enable-method = "psci"; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | arm-pmu { | ||
92 | compatible = "arm,cortex-a53-pmu"; | ||
93 | interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, | ||
94 | <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, | ||
95 | <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, | ||
96 | <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | ||
97 | interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; | ||
98 | }; | ||
99 | 60 | ||
100 | psci { | 61 | scpi_dvfs: scpi_clocks@0 { |
101 | compatible = "arm,psci-0.2"; | 62 | compatible = "arm,scpi-dvfs-clocks"; |
102 | method = "smc"; | 63 | #clock-cells = <1>; |
103 | }; | 64 | clock-indices = <0>; |
104 | 65 | clock-output-names = "vcpu"; | |
105 | firmware { | 66 | }; |
106 | sm: secure-monitor { | ||
107 | compatible = "amlogic,meson-gxbb-sm"; | ||
108 | }; | ||
109 | }; | ||
110 | |||
111 | efuse: efuse { | ||
112 | compatible = "amlogic,meson-gxbb-efuse"; | ||
113 | #address-cells = <1>; | ||
114 | #size-cells = <1>; | ||
115 | |||
116 | sn: sn@14 { | ||
117 | reg = <0x14 0x10>; | ||
118 | }; | ||
119 | |||
120 | eth_mac: eth_mac@34 { | ||
121 | reg = <0x34 0x10>; | ||
122 | }; | 67 | }; |
123 | 68 | ||
124 | bid: bid@46 { | 69 | scpi_sensors: sensors { |
125 | reg = <0x46 0x30>; | 70 | compatible = "arm,scpi-sensors"; |
71 | #thermal-sensor-cells = <1>; | ||
126 | }; | 72 | }; |
127 | }; | 73 | }; |
128 | 74 | ||
129 | timer { | ||
130 | compatible = "arm,armv8-timer"; | ||
131 | interrupts = <GIC_PPI 13 | ||
132 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, | ||
133 | <GIC_PPI 14 | ||
134 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, | ||
135 | <GIC_PPI 11 | ||
136 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, | ||
137 | <GIC_PPI 10 | ||
138 | (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; | ||
139 | }; | ||
140 | |||
141 | xtal: xtal-clk { | ||
142 | compatible = "fixed-clock"; | ||
143 | clock-frequency = <24000000>; | ||
144 | clock-output-names = "xtal"; | ||
145 | #clock-cells = <0>; | ||
146 | }; | ||
147 | |||
148 | soc { | 75 | soc { |
149 | compatible = "simple-bus"; | ||
150 | #address-cells = <2>; | ||
151 | #size-cells = <2>; | ||
152 | ranges; | ||
153 | |||
154 | usb0_phy: phy@c0000000 { | 76 | usb0_phy: phy@c0000000 { |
155 | compatible = "amlogic,meson-gxbb-usb2-phy"; | 77 | compatible = "amlogic,meson-gxbb-usb2-phy"; |
156 | #phy-cells = <0>; | 78 | #phy-cells = <0>; |
@@ -165,505 +87,422 @@ | |||
165 | compatible = "amlogic,meson-gxbb-usb2-phy"; | 87 | compatible = "amlogic,meson-gxbb-usb2-phy"; |
166 | #phy-cells = <0>; | 88 | #phy-cells = <0>; |
167 | reg = <0x0 0xc0000020 0x0 0x20>; | 89 | reg = <0x0 0xc0000020 0x0 0x20>; |
90 | resets = <&reset RESET_USB_OTG>; | ||
168 | clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; | 91 | clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>; |
169 | clock-names = "usb_general", "usb"; | 92 | clock-names = "usb_general", "usb"; |
170 | status = "disabled"; | 93 | status = "disabled"; |
171 | }; | 94 | }; |
172 | 95 | ||
173 | cbus: cbus@c1100000 { | 96 | sram: sram@c8000000 { |
174 | compatible = "simple-bus"; | 97 | compatible = "amlogic,meson-gxbb-sram", "mmio-sram"; |
175 | reg = <0x0 0xc1100000 0x0 0x100000>; | 98 | reg = <0x0 0xc8000000 0x0 0x14000>; |
176 | #address-cells = <2>; | ||
177 | #size-cells = <2>; | ||
178 | ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>; | ||
179 | 99 | ||
180 | reset: reset-controller@4404 { | 100 | #address-cells = <1>; |
181 | compatible = "amlogic,meson-gxbb-reset"; | 101 | #size-cells = <1>; |
182 | reg = <0x0 0x04404 0x0 0x20>; | 102 | ranges = <0 0x0 0xc8000000 0x14000>; |
183 | #reset-cells = <1>; | 103 | |
104 | cpu_scp_lpri: scp-shmem@0 { | ||
105 | compatible = "amlogic,meson-gxbb-scp-shmem"; | ||
106 | reg = <0x13000 0x400>; | ||
107 | }; | ||
108 | |||
109 | cpu_scp_hpri: scp-shmem@200 { | ||
110 | compatible = "amlogic,meson-gxbb-scp-shmem"; | ||
111 | reg = <0x13400 0x400>; | ||
184 | }; | 112 | }; |
113 | }; | ||
114 | |||
115 | usb0: usb@c9000000 { | ||
116 | compatible = "amlogic,meson-gxbb-usb", "snps,dwc2"; | ||
117 | reg = <0x0 0xc9000000 0x0 0x40000>; | ||
118 | interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | ||
119 | clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; | ||
120 | clock-names = "otg"; | ||
121 | phys = <&usb0_phy>; | ||
122 | phy-names = "usb2-phy"; | ||
123 | dr_mode = "host"; | ||
124 | status = "disabled"; | ||
125 | }; | ||
126 | |||
127 | usb1: usb@c9100000 { | ||
128 | compatible = "amlogic,meson-gxbb-usb", "snps,dwc2"; | ||
129 | reg = <0x0 0xc9100000 0x0 0x40000>; | ||
130 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | ||
131 | clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; | ||
132 | clock-names = "otg"; | ||
133 | phys = <&usb1_phy>; | ||
134 | phy-names = "usb2-phy"; | ||
135 | dr_mode = "host"; | ||
136 | status = "disabled"; | ||
137 | }; | ||
138 | }; | ||
139 | }; | ||
140 | |||
141 | &cpu0 { | ||
142 | clocks = <&scpi_dvfs 0>; | ||
143 | }; | ||
144 | |||
145 | &cpu1 { | ||
146 | clocks = <&scpi_dvfs 0>; | ||
147 | }; | ||
148 | |||
149 | &cpu2 { | ||
150 | clocks = <&scpi_dvfs 0>; | ||
151 | }; | ||
152 | |||
153 | &cpu3 { | ||
154 | clocks = <&scpi_dvfs 0>; | ||
155 | }; | ||
156 | |||
157 | &cbus { | ||
158 | spifc: spi@8c80 { | ||
159 | compatible = "amlogic,meson-gxbb-spifc"; | ||
160 | reg = <0x0 0x08c80 0x0 0x80>; | ||
161 | #address-cells = <1>; | ||
162 | #size-cells = <0>; | ||
163 | clocks = <&clkc CLKID_SPI>; | ||
164 | status = "disabled"; | ||
165 | }; | ||
166 | }; | ||
167 | |||
168 | ðmac { | ||
169 | clocks = <&clkc CLKID_ETH>, | ||
170 | <&clkc CLKID_FCLK_DIV2>, | ||
171 | <&clkc CLKID_MPLL2>; | ||
172 | clock-names = "stmmaceth", "clkin0", "clkin1"; | ||
173 | }; | ||
174 | |||
175 | &aobus { | ||
176 | pinctrl_aobus: pinctrl@14 { | ||
177 | compatible = "amlogic,meson-gxbb-aobus-pinctrl"; | ||
178 | #address-cells = <2>; | ||
179 | #size-cells = <2>; | ||
180 | ranges; | ||
181 | |||
182 | gpio_ao: bank@14 { | ||
183 | reg = <0x0 0x00014 0x0 0x8>, | ||
184 | <0x0 0x0002c 0x0 0x4>, | ||
185 | <0x0 0x00024 0x0 0x8>; | ||
186 | reg-names = "mux", "pull", "gpio"; | ||
187 | gpio-controller; | ||
188 | #gpio-cells = <2>; | ||
189 | }; | ||
185 | 190 | ||
186 | uart_A: serial@84c0 { | 191 | uart_ao_a_pins: uart_ao_a { |
187 | compatible = "amlogic,meson-uart"; | 192 | mux { |
188 | reg = <0x0 0x84c0 0x0 0x14>; | 193 | groups = "uart_tx_ao_a", "uart_rx_ao_a"; |
189 | interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; | 194 | function = "uart_ao"; |
190 | clocks = <&xtal>; | ||
191 | status = "disabled"; | ||
192 | }; | 195 | }; |
196 | }; | ||
193 | 197 | ||
194 | uart_B: serial@84dc { | 198 | remote_input_ao_pins: remote_input_ao { |
195 | compatible = "amlogic,meson-uart"; | 199 | mux { |
196 | reg = <0x0 0x84dc 0x0 0x14>; | 200 | groups = "remote_input_ao"; |
197 | interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>; | 201 | function = "remote_input_ao"; |
198 | clocks = <&xtal>; | ||
199 | status = "disabled"; | ||
200 | }; | 202 | }; |
203 | }; | ||
201 | 204 | ||
202 | pwm_ab: pwm@8550 { | 205 | i2c_ao_pins: i2c_ao { |
203 | compatible = "amlogic,meson-gxbb-pwm"; | 206 | mux { |
204 | reg = <0x0 0x08550 0x0 0x10>; | 207 | groups = "i2c_sck_ao", |
205 | #pwm-cells = <3>; | 208 | "i2c_sda_ao"; |
206 | status = "disabled"; | 209 | function = "i2c_ao"; |
207 | }; | 210 | }; |
211 | }; | ||
208 | 212 | ||
209 | pwm_cd: pwm@8650 { | 213 | pwm_ao_a_3_pins: pwm_ao_a_3 { |
210 | compatible = "amlogic,meson-gxbb-pwm"; | 214 | mux { |
211 | reg = <0x0 0x08650 0x0 0x10>; | 215 | groups = "pwm_ao_a_3"; |
212 | #pwm-cells = <3>; | 216 | function = "pwm_ao_a_3"; |
213 | status = "disabled"; | ||
214 | }; | 217 | }; |
218 | }; | ||
215 | 219 | ||
216 | pwm_ef: pwm@86c0 { | 220 | pwm_ao_a_6_pins: pwm_ao_a_6 { |
217 | compatible = "amlogic,meson-gxbb-pwm"; | 221 | mux { |
218 | reg = <0x0 0x086c0 0x0 0x10>; | 222 | groups = "pwm_ao_a_6"; |
219 | #pwm-cells = <3>; | 223 | function = "pwm_ao_a_6"; |
220 | status = "disabled"; | ||
221 | }; | 224 | }; |
225 | }; | ||
222 | 226 | ||
223 | uart_C: serial@8700 { | 227 | pwm_ao_a_12_pins: pwm_ao_a_12 { |
224 | compatible = "amlogic,meson-uart"; | 228 | mux { |
225 | reg = <0x0 0x8700 0x0 0x14>; | 229 | groups = "pwm_ao_a_12"; |
226 | interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>; | 230 | function = "pwm_ao_a_12"; |
227 | clocks = <&xtal>; | ||
228 | status = "disabled"; | ||
229 | }; | 231 | }; |
232 | }; | ||
230 | 233 | ||
231 | watchdog@98d0 { | 234 | pwm_ao_b_pins: pwm_ao_b { |
232 | compatible = "amlogic,meson-gxbb-wdt"; | 235 | mux { |
233 | reg = <0x0 0x098d0 0x0 0x10>; | 236 | groups = "pwm_ao_b"; |
234 | clocks = <&xtal>; | 237 | function = "pwm_ao_b"; |
235 | }; | 238 | }; |
239 | }; | ||
240 | }; | ||
241 | |||
242 | clkc_AO: clock-controller@040 { | ||
243 | compatible = "amlogic,gxbb-aoclkc"; | ||
244 | reg = <0x0 0x00040 0x0 0x4>; | ||
245 | #clock-cells = <1>; | ||
246 | #reset-cells = <1>; | ||
247 | }; | ||
248 | |||
249 | pwm_ab_AO: pwm@550 { | ||
250 | compatible = "amlogic,meson-gxbb-pwm"; | ||
251 | reg = <0x0 0x0550 0x0 0x10>; | ||
252 | #pwm-cells = <3>; | ||
253 | status = "disabled"; | ||
254 | }; | ||
255 | |||
256 | i2c_AO: i2c@500 { | ||
257 | compatible = "amlogic,meson-gxbb-i2c"; | ||
258 | reg = <0x0 0x500 0x0 0x20>; | ||
259 | interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>; | ||
260 | clocks = <&clkc CLKID_AO_I2C>; | ||
261 | #address-cells = <1>; | ||
262 | #size-cells = <0>; | ||
263 | status = "disabled"; | ||
264 | }; | ||
265 | }; | ||
266 | |||
267 | &periphs { | ||
268 | pinctrl_periphs: pinctrl@4b0 { | ||
269 | compatible = "amlogic,meson-gxbb-periphs-pinctrl"; | ||
270 | #address-cells = <2>; | ||
271 | #size-cells = <2>; | ||
272 | ranges; | ||
273 | |||
274 | gpio: bank@4b0 { | ||
275 | reg = <0x0 0x004b0 0x0 0x28>, | ||
276 | <0x0 0x004e8 0x0 0x14>, | ||
277 | <0x0 0x00120 0x0 0x14>, | ||
278 | <0x0 0x00430 0x0 0x40>; | ||
279 | reg-names = "mux", "pull", "pull-enable", "gpio"; | ||
280 | gpio-controller; | ||
281 | #gpio-cells = <2>; | ||
282 | }; | ||
236 | 283 | ||
237 | spifc: spi@8c80 { | 284 | emmc_pins: emmc { |
238 | compatible = "amlogic,meson-gxbb-spifc"; | 285 | mux { |
239 | reg = <0x0 0x08c80 0x0 0x80>; | 286 | groups = "emmc_nand_d07", |
240 | #address-cells = <1>; | 287 | "emmc_cmd", |
241 | #size-cells = <0>; | 288 | "emmc_clk", |
242 | clocks = <&clkc CLKID_SPI>; | 289 | "emmc_ds"; |
243 | status = "disabled"; | 290 | function = "emmc"; |
244 | }; | 291 | }; |
292 | }; | ||
245 | 293 | ||
246 | i2c_A: i2c@8500 { | 294 | nor_pins: nor { |
247 | compatible = "amlogic,meson-gxbb-i2c"; | 295 | mux { |
248 | reg = <0x0 0x08500 0x0 0x20>; | 296 | groups = "nor_d", |
249 | interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>; | 297 | "nor_q", |
250 | clocks = <&clkc CLKID_I2C>; | 298 | "nor_c", |
251 | #address-cells = <1>; | 299 | "nor_cs"; |
252 | #size-cells = <0>; | 300 | function = "nor"; |
253 | status = "disabled"; | ||
254 | }; | 301 | }; |
302 | }; | ||
255 | 303 | ||
256 | i2c_B: i2c@87c0 { | 304 | sdcard_pins: sdcard { |
257 | compatible = "amlogic,meson-gxbb-i2c"; | 305 | mux { |
258 | reg = <0x0 0x087c0 0x0 0x20>; | 306 | groups = "sdcard_d0", |
259 | interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>; | 307 | "sdcard_d1", |
260 | clocks = <&clkc CLKID_I2C>; | 308 | "sdcard_d2", |
261 | #address-cells = <1>; | 309 | "sdcard_d3", |
262 | #size-cells = <0>; | 310 | "sdcard_cmd", |
263 | status = "disabled"; | 311 | "sdcard_clk"; |
312 | function = "sdcard"; | ||
264 | }; | 313 | }; |
314 | }; | ||
265 | 315 | ||
266 | i2c_C: i2c@87e0 { | 316 | sdio_pins: sdio { |
267 | compatible = "amlogic,meson-gxbb-i2c"; | 317 | mux { |
268 | reg = <0x0 0x087e0 0x0 0x20>; | 318 | groups = "sdio_d0", |
269 | interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; | 319 | "sdio_d1", |
270 | clocks = <&clkc CLKID_I2C>; | 320 | "sdio_d2", |
271 | #address-cells = <1>; | 321 | "sdio_d3", |
272 | #size-cells = <0>; | 322 | "sdio_cmd", |
273 | status = "disabled"; | 323 | "sdio_clk"; |
324 | function = "sdio"; | ||
274 | }; | 325 | }; |
275 | }; | 326 | }; |
276 | 327 | ||
277 | gic: interrupt-controller@c4301000 { | 328 | sdio_irq_pins: sdio_irq { |
278 | compatible = "arm,gic-400"; | 329 | mux { |
279 | reg = <0x0 0xc4301000 0 0x1000>, | 330 | groups = "sdio_irq"; |
280 | <0x0 0xc4302000 0 0x2000>, | 331 | function = "sdio"; |
281 | <0x0 0xc4304000 0 0x2000>, | ||
282 | <0x0 0xc4306000 0 0x2000>; | ||
283 | interrupt-controller; | ||
284 | interrupts = <GIC_PPI 9 | ||
285 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
286 | #interrupt-cells = <3>; | ||
287 | #address-cells = <0>; | ||
288 | }; | ||
289 | |||
290 | aobus: aobus@c8100000 { | ||
291 | compatible = "simple-bus"; | ||
292 | reg = <0x0 0xc8100000 0x0 0x100000>; | ||
293 | #address-cells = <2>; | ||
294 | #size-cells = <2>; | ||
295 | ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>; | ||
296 | |||
297 | pinctrl_aobus: pinctrl@14 { | ||
298 | compatible = "amlogic,meson-gxbb-aobus-pinctrl"; | ||
299 | #address-cells = <2>; | ||
300 | #size-cells = <2>; | ||
301 | ranges; | ||
302 | |||
303 | gpio_ao: bank@14 { | ||
304 | reg = <0x0 0x00014 0x0 0x8>, | ||
305 | <0x0 0x0002c 0x0 0x4>, | ||
306 | <0x0 0x00024 0x0 0x8>; | ||
307 | reg-names = "mux", "pull", "gpio"; | ||
308 | gpio-controller; | ||
309 | #gpio-cells = <2>; | ||
310 | }; | ||
311 | |||
312 | uart_ao_a_pins: uart_ao_a { | ||
313 | mux { | ||
314 | groups = "uart_tx_ao_a", "uart_rx_ao_a"; | ||
315 | function = "uart_ao"; | ||
316 | }; | ||
317 | }; | ||
318 | |||
319 | remote_input_ao_pins: remote_input_ao { | ||
320 | mux { | ||
321 | groups = "remote_input_ao"; | ||
322 | function = "remote_input_ao"; | ||
323 | }; | ||
324 | }; | ||
325 | |||
326 | i2c_ao_pins: i2c_ao { | ||
327 | mux { | ||
328 | groups = "i2c_sck_ao", | ||
329 | "i2c_sda_ao"; | ||
330 | function = "i2c_ao"; | ||
331 | }; | ||
332 | }; | ||
333 | |||
334 | pwm_ao_a_3_pins: pwm_ao_a_3 { | ||
335 | mux { | ||
336 | groups = "pwm_ao_a_3"; | ||
337 | function = "pwm_ao_a_3"; | ||
338 | }; | ||
339 | }; | ||
340 | |||
341 | pwm_ao_a_6_pins: pwm_ao_a_6 { | ||
342 | mux { | ||
343 | groups = "pwm_ao_a_6"; | ||
344 | function = "pwm_ao_a_6"; | ||
345 | }; | ||
346 | }; | ||
347 | |||
348 | pwm_ao_a_12_pins: pwm_ao_a_12 { | ||
349 | mux { | ||
350 | groups = "pwm_ao_a_12"; | ||
351 | function = "pwm_ao_a_12"; | ||
352 | }; | ||
353 | }; | ||
354 | |||
355 | pwm_ao_b_pins: pwm_ao_b { | ||
356 | mux { | ||
357 | groups = "pwm_ao_b"; | ||
358 | function = "pwm_ao_b"; | ||
359 | }; | ||
360 | }; | ||
361 | }; | 332 | }; |
333 | }; | ||
362 | 334 | ||
363 | clkc_AO: clock-controller@040 { | 335 | uart_a_pins: uart_a { |
364 | compatible = "amlogic,gxbb-aoclkc"; | 336 | mux { |
365 | reg = <0x0 0x00040 0x0 0x4>; | 337 | groups = "uart_tx_a", |
366 | #clock-cells = <1>; | 338 | "uart_rx_a"; |
367 | #reset-cells = <1>; | 339 | function = "uart_a"; |
368 | }; | 340 | }; |
341 | }; | ||
369 | 342 | ||
370 | uart_AO: serial@4c0 { | 343 | uart_b_pins: uart_b { |
371 | compatible = "amlogic,meson-uart"; | 344 | mux { |
372 | reg = <0x0 0x004c0 0x0 0x14>; | 345 | groups = "uart_tx_b", |
373 | interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; | 346 | "uart_rx_b"; |
374 | clocks = <&xtal>; | 347 | function = "uart_b"; |
375 | status = "disabled"; | ||
376 | }; | 348 | }; |
349 | }; | ||
377 | 350 | ||
378 | ir: ir@580 { | 351 | uart_c_pins: uart_c { |
379 | compatible = "amlogic,meson-gxbb-ir"; | 352 | mux { |
380 | reg = <0x0 0x00580 0x0 0x40>; | 353 | groups = "uart_tx_c", |
381 | interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; | 354 | "uart_rx_c"; |
382 | status = "disabled"; | 355 | function = "uart_c"; |
383 | }; | 356 | }; |
357 | }; | ||
384 | 358 | ||
385 | pwm_ab_AO: pwm@550 { | 359 | i2c_a_pins: i2c_a { |
386 | compatible = "amlogic,meson-gxbb-pwm"; | 360 | mux { |
387 | reg = <0x0 0x0550 0x0 0x10>; | 361 | groups = "i2c_sck_a", |
388 | #pwm-cells = <3>; | 362 | "i2c_sda_a"; |
389 | status = "disabled"; | 363 | function = "i2c_a"; |
390 | }; | 364 | }; |
365 | }; | ||
391 | 366 | ||
392 | i2c_AO: i2c@500 { | 367 | i2c_b_pins: i2c_b { |
393 | compatible = "amlogic,meson-gxbb-i2c"; | 368 | mux { |
394 | reg = <0x0 0x500 0x0 0x20>; | 369 | groups = "i2c_sck_b", |
395 | interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>; | 370 | "i2c_sda_b"; |
396 | clocks = <&clkc CLKID_AO_I2C>; | 371 | function = "i2c_b"; |
397 | #address-cells = <1>; | ||
398 | #size-cells = <0>; | ||
399 | status = "disabled"; | ||
400 | }; | 372 | }; |
401 | }; | 373 | }; |
402 | 374 | ||
403 | periphs: periphs@c8834000 { | 375 | i2c_c_pins: i2c_c { |
404 | compatible = "simple-bus"; | 376 | mux { |
405 | reg = <0x0 0xc8834000 0x0 0x2000>; | 377 | groups = "i2c_sck_c", |
406 | #address-cells = <2>; | 378 | "i2c_sda_c"; |
407 | #size-cells = <2>; | 379 | function = "i2c_c"; |
408 | ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>; | 380 | }; |
381 | }; | ||
409 | 382 | ||
410 | rng { | 383 | eth_rgmii_pins: eth-rgmii { |
411 | compatible = "amlogic,meson-rng"; | 384 | mux { |
412 | reg = <0x0 0x0 0x0 0x4>; | 385 | groups = "eth_mdio", |
386 | "eth_mdc", | ||
387 | "eth_clk_rx_clk", | ||
388 | "eth_rx_dv", | ||
389 | "eth_rxd0", | ||
390 | "eth_rxd1", | ||
391 | "eth_rxd2", | ||
392 | "eth_rxd3", | ||
393 | "eth_rgmii_tx_clk", | ||
394 | "eth_tx_en", | ||
395 | "eth_txd0", | ||
396 | "eth_txd1", | ||
397 | "eth_txd2", | ||
398 | "eth_txd3"; | ||
399 | function = "eth"; | ||
413 | }; | 400 | }; |
401 | }; | ||
414 | 402 | ||
415 | pinctrl_periphs: pinctrl@4b0 { | 403 | eth_rmii_pins: eth-rmii { |
416 | compatible = "amlogic,meson-gxbb-periphs-pinctrl"; | 404 | mux { |
417 | #address-cells = <2>; | 405 | groups = "eth_mdio", |
418 | #size-cells = <2>; | 406 | "eth_mdc", |
419 | ranges; | 407 | "eth_clk_rx_clk", |
420 | 408 | "eth_rx_dv", | |
421 | gpio: bank@4b0 { | 409 | "eth_rxd0", |
422 | reg = <0x0 0x004b0 0x0 0x28>, | 410 | "eth_rxd1", |
423 | <0x0 0x004e8 0x0 0x14>, | 411 | "eth_tx_en", |
424 | <0x0 0x00120 0x0 0x14>, | 412 | "eth_txd0", |
425 | <0x0 0x00430 0x0 0x40>; | 413 | "eth_txd1"; |
426 | reg-names = "mux", "pull", "pull-enable", "gpio"; | 414 | function = "eth"; |
427 | gpio-controller; | ||
428 | #gpio-cells = <2>; | ||
429 | }; | ||
430 | |||
431 | emmc_pins: emmc { | ||
432 | mux { | ||
433 | groups = "emmc_nand_d07", | ||
434 | "emmc_cmd", | ||
435 | "emmc_clk"; | ||
436 | function = "emmc"; | ||
437 | }; | ||
438 | }; | ||
439 | |||
440 | nor_pins: nor { | ||
441 | mux { | ||
442 | groups = "nor_d", | ||
443 | "nor_q", | ||
444 | "nor_c", | ||
445 | "nor_cs"; | ||
446 | function = "nor"; | ||
447 | }; | ||
448 | }; | ||
449 | |||
450 | sdcard_pins: sdcard { | ||
451 | mux { | ||
452 | groups = "sdcard_d0", | ||
453 | "sdcard_d1", | ||
454 | "sdcard_d2", | ||
455 | "sdcard_d3", | ||
456 | "sdcard_cmd", | ||
457 | "sdcard_clk"; | ||
458 | function = "sdcard"; | ||
459 | }; | ||
460 | }; | ||
461 | |||
462 | sdio_pins: sdio { | ||
463 | mux { | ||
464 | groups = "sdio_d0", | ||
465 | "sdio_d1", | ||
466 | "sdio_d2", | ||
467 | "sdio_d3", | ||
468 | "sdio_cmd", | ||
469 | "sdio_clk"; | ||
470 | function = "sdio"; | ||
471 | }; | ||
472 | }; | ||
473 | |||
474 | sdio_irq_pins: sdio_irq { | ||
475 | mux { | ||
476 | groups = "sdio_irq"; | ||
477 | function = "sdio"; | ||
478 | }; | ||
479 | }; | ||
480 | |||
481 | uart_a_pins: uart_a { | ||
482 | mux { | ||
483 | groups = "uart_tx_a", | ||
484 | "uart_rx_a"; | ||
485 | function = "uart_a"; | ||
486 | }; | ||
487 | }; | ||
488 | |||
489 | uart_b_pins: uart_b { | ||
490 | mux { | ||
491 | groups = "uart_tx_b", | ||
492 | "uart_rx_b"; | ||
493 | function = "uart_b"; | ||
494 | }; | ||
495 | }; | ||
496 | |||
497 | uart_c_pins: uart_c { | ||
498 | mux { | ||
499 | groups = "uart_tx_c", | ||
500 | "uart_rx_c"; | ||
501 | function = "uart_c"; | ||
502 | }; | ||
503 | }; | ||
504 | |||
505 | i2c_a_pins: i2c_a { | ||
506 | mux { | ||
507 | groups = "i2c_sck_a", | ||
508 | "i2c_sda_a"; | ||
509 | function = "i2c_a"; | ||
510 | }; | ||
511 | }; | ||
512 | |||
513 | i2c_b_pins: i2c_b { | ||
514 | mux { | ||
515 | groups = "i2c_sck_b", | ||
516 | "i2c_sda_b"; | ||
517 | function = "i2c_b"; | ||
518 | }; | ||
519 | }; | ||
520 | |||
521 | i2c_c_pins: i2c_c { | ||
522 | mux { | ||
523 | groups = "i2c_sck_c", | ||
524 | "i2c_sda_c"; | ||
525 | function = "i2c_c"; | ||
526 | }; | ||
527 | }; | ||
528 | |||
529 | eth_pins: eth_c { | ||
530 | mux { | ||
531 | groups = "eth_mdio", | ||
532 | "eth_mdc", | ||
533 | "eth_clk_rx_clk", | ||
534 | "eth_rx_dv", | ||
535 | "eth_rxd0", | ||
536 | "eth_rxd1", | ||
537 | "eth_rxd2", | ||
538 | "eth_rxd3", | ||
539 | "eth_rgmii_tx_clk", | ||
540 | "eth_tx_en", | ||
541 | "eth_txd0", | ||
542 | "eth_txd1", | ||
543 | "eth_txd2", | ||
544 | "eth_txd3"; | ||
545 | function = "eth"; | ||
546 | }; | ||
547 | }; | ||
548 | |||
549 | pwm_a_x_pins: pwm_a_x { | ||
550 | mux { | ||
551 | groups = "pwm_a_x"; | ||
552 | function = "pwm_a_x"; | ||
553 | }; | ||
554 | }; | ||
555 | |||
556 | pwm_a_y_pins: pwm_a_y { | ||
557 | mux { | ||
558 | groups = "pwm_a_y"; | ||
559 | function = "pwm_a_y"; | ||
560 | }; | ||
561 | }; | ||
562 | |||
563 | pwm_b_pins: pwm_b { | ||
564 | mux { | ||
565 | groups = "pwm_b"; | ||
566 | function = "pwm_b"; | ||
567 | }; | ||
568 | }; | ||
569 | |||
570 | pwm_d_pins: pwm_d { | ||
571 | mux { | ||
572 | groups = "pwm_d"; | ||
573 | function = "pwm_d"; | ||
574 | }; | ||
575 | }; | ||
576 | |||
577 | pwm_e_pins: pwm_e { | ||
578 | mux { | ||
579 | groups = "pwm_e"; | ||
580 | function = "pwm_e"; | ||
581 | }; | ||
582 | }; | ||
583 | |||
584 | pwm_f_x_pins: pwm_f_x { | ||
585 | mux { | ||
586 | groups = "pwm_f_x"; | ||
587 | function = "pwm_f_x"; | ||
588 | }; | ||
589 | }; | ||
590 | |||
591 | pwm_f_y_pins: pwm_f_y { | ||
592 | mux { | ||
593 | groups = "pwm_f_y"; | ||
594 | function = "pwm_f_y"; | ||
595 | }; | ||
596 | }; | ||
597 | }; | 415 | }; |
598 | }; | 416 | }; |
599 | 417 | ||
600 | hiubus: hiubus@c883c000 { | 418 | pwm_a_x_pins: pwm_a_x { |
601 | compatible = "simple-bus"; | 419 | mux { |
602 | reg = <0x0 0xc883c000 0x0 0x2000>; | 420 | groups = "pwm_a_x"; |
603 | #address-cells = <2>; | 421 | function = "pwm_a_x"; |
604 | #size-cells = <2>; | 422 | }; |
605 | ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>; | 423 | }; |
606 | 424 | ||
607 | clkc: clock-controller@0 { | 425 | pwm_a_y_pins: pwm_a_y { |
608 | compatible = "amlogic,gxbb-clkc"; | 426 | mux { |
609 | #clock-cells = <1>; | 427 | groups = "pwm_a_y"; |
610 | reg = <0x0 0x0 0x0 0x3db>; | 428 | function = "pwm_a_y"; |
611 | }; | 429 | }; |
430 | }; | ||
612 | 431 | ||
613 | mailbox: mailbox@404 { | 432 | pwm_b_pins: pwm_b { |
614 | compatible = "amlogic,meson-gxbb-mhu"; | 433 | mux { |
615 | reg = <0 0x404 0 0x4c>; | 434 | groups = "pwm_b"; |
616 | interrupts = <0 208 IRQ_TYPE_EDGE_RISING>, | 435 | function = "pwm_b"; |
617 | <0 209 IRQ_TYPE_EDGE_RISING>, | ||
618 | <0 210 IRQ_TYPE_EDGE_RISING>; | ||
619 | #mbox-cells = <1>; | ||
620 | }; | 436 | }; |
621 | }; | 437 | }; |
622 | 438 | ||
623 | apb: apb@d0000000 { | 439 | pwm_d_pins: pwm_d { |
624 | compatible = "simple-bus"; | 440 | mux { |
625 | reg = <0x0 0xd0000000 0x0 0x200000>; | 441 | groups = "pwm_d"; |
626 | #address-cells = <2>; | 442 | function = "pwm_d"; |
627 | #size-cells = <2>; | 443 | }; |
628 | ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>; | ||
629 | }; | 444 | }; |
630 | 445 | ||
631 | usb0: usb@c9000000 { | 446 | pwm_e_pins: pwm_e { |
632 | compatible = "amlogic,meson-gxbb-usb", "snps,dwc2"; | 447 | mux { |
633 | reg = <0x0 0xc9000000 0x0 0x40000>; | 448 | groups = "pwm_e"; |
634 | interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | 449 | function = "pwm_e"; |
635 | clocks = <&clkc CLKID_USB0_DDR_BRIDGE>; | 450 | }; |
636 | clock-names = "otg"; | ||
637 | phys = <&usb0_phy>; | ||
638 | phy-names = "usb2-phy"; | ||
639 | dr_mode = "host"; | ||
640 | status = "disabled"; | ||
641 | }; | 451 | }; |
642 | 452 | ||
643 | usb1: usb@c9100000 { | 453 | pwm_f_x_pins: pwm_f_x { |
644 | compatible = "amlogic,meson-gxbb-usb", "snps,dwc2"; | 454 | mux { |
645 | reg = <0x0 0xc9100000 0x0 0x40000>; | 455 | groups = "pwm_f_x"; |
646 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | 456 | function = "pwm_f_x"; |
647 | clocks = <&clkc CLKID_USB1_DDR_BRIDGE>; | 457 | }; |
648 | clock-names = "otg"; | ||
649 | phys = <&usb1_phy>; | ||
650 | phy-names = "usb2-phy"; | ||
651 | dr_mode = "host"; | ||
652 | status = "disabled"; | ||
653 | }; | 458 | }; |
654 | 459 | ||
655 | ethmac: ethernet@c9410000 { | 460 | pwm_f_y_pins: pwm_f_y { |
656 | compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac"; | 461 | mux { |
657 | reg = <0x0 0xc9410000 0x0 0x10000 | 462 | groups = "pwm_f_y"; |
658 | 0x0 0xc8834540 0x0 0x4>; | 463 | function = "pwm_f_y"; |
659 | interrupts = <0 8 1>; | 464 | }; |
660 | interrupt-names = "macirq"; | ||
661 | clocks = <&clkc CLKID_ETH>, | ||
662 | <&clkc CLKID_FCLK_DIV2>, | ||
663 | <&clkc CLKID_MPLL2>; | ||
664 | clock-names = "stmmaceth", "clkin0", "clkin1"; | ||
665 | phy-mode = "rgmii"; | ||
666 | status = "disabled"; | ||
667 | }; | 465 | }; |
668 | }; | 466 | }; |
669 | }; | 467 | }; |
468 | |||
469 | &hiubus { | ||
470 | clkc: clock-controller@0 { | ||
471 | compatible = "amlogic,gxbb-clkc"; | ||
472 | #clock-cells = <1>; | ||
473 | reg = <0x0 0x0 0x0 0x3db>; | ||
474 | }; | ||
475 | }; | ||
476 | |||
477 | &i2c_A { | ||
478 | clocks = <&clkc CLKID_I2C>; | ||
479 | }; | ||
480 | |||
481 | &i2c_B { | ||
482 | clocks = <&clkc CLKID_I2C>; | ||
483 | }; | ||
484 | |||
485 | &i2c_C { | ||
486 | clocks = <&clkc CLKID_I2C>; | ||
487 | }; | ||
488 | |||
489 | &sd_emmc_a { | ||
490 | clocks = <&clkc CLKID_SD_EMMC_A>, | ||
491 | <&xtal>, | ||
492 | <&clkc CLKID_FCLK_DIV2>; | ||
493 | clock-names = "core", "clkin0", "clkin1"; | ||
494 | }; | ||
495 | |||
496 | &sd_emmc_b { | ||
497 | clocks = <&clkc CLKID_SD_EMMC_B>, | ||
498 | <&xtal>, | ||
499 | <&clkc CLKID_FCLK_DIV2>; | ||
500 | clock-names = "core", "clkin0", "clkin1"; | ||
501 | }; | ||
502 | |||
503 | &sd_emmc_c { | ||
504 | clocks = <&clkc CLKID_SD_EMMC_C>, | ||
505 | <&xtal>, | ||
506 | <&clkc CLKID_FCLK_DIV2>; | ||
507 | clock-names = "core", "clkin0", "clkin1"; | ||
508 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts new file mode 100644 index 000000000000..e99101ae9664 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts | |||
@@ -0,0 +1,205 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Andreas Färber | ||
3 | * Copyright (c) 2016 BayLibre, Inc. | ||
4 | * Author: Neil Armstrong <narmstrong@kernel.org> | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * Or, alternatively, | ||
22 | * | ||
23 | * b) Permission is hereby granted, free of charge, to any person | ||
24 | * obtaining a copy of this software and associated documentation | ||
25 | * files (the "Software"), to deal in the Software without | ||
26 | * restriction, including without limitation the rights to use, | ||
27 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
28 | * sell copies of the Software, and to permit persons to whom the | ||
29 | * Software is furnished to do so, subject to the following | ||
30 | * conditions: | ||
31 | * | ||
32 | * The above copyright notice and this permission notice shall be | ||
33 | * included in all copies or substantial portions of the Software. | ||
34 | * | ||
35 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
36 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
37 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
38 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
39 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
40 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
41 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
42 | * OTHER DEALINGS IN THE SOFTWARE. | ||
43 | */ | ||
44 | |||
45 | /dts-v1/; | ||
46 | |||
47 | #include "meson-gxl-s905x.dtsi" | ||
48 | |||
49 | / { | ||
50 | compatible = "nexbox,a95x", "amlogic,s905x", "amlogic,meson-gxl"; | ||
51 | model = "NEXBOX A95X (S905X)"; | ||
52 | |||
53 | aliases { | ||
54 | serial0 = &uart_AO; | ||
55 | }; | ||
56 | |||
57 | chosen { | ||
58 | stdout-path = "serial0:115200n8"; | ||
59 | }; | ||
60 | |||
61 | memory@0 { | ||
62 | device_type = "memory"; | ||
63 | reg = <0x0 0x0 0x0 0x80000000>; | ||
64 | }; | ||
65 | |||
66 | vddio_card: gpio-regulator { | ||
67 | compatible = "regulator-gpio"; | ||
68 | |||
69 | regulator-name = "VDDIO_CARD"; | ||
70 | regulator-min-microvolt = <1800000>; | ||
71 | regulator-max-microvolt = <3300000>; | ||
72 | |||
73 | gpios = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>; | ||
74 | gpios-states = <1>; | ||
75 | |||
76 | /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */ | ||
77 | states = <1800000 0 | ||
78 | 3300000 1>; | ||
79 | }; | ||
80 | |||
81 | vddio_boot: regulator-vddio_boot { | ||
82 | compatible = "regulator-fixed"; | ||
83 | regulator-name = "VDDIO_BOOT"; | ||
84 | regulator-min-microvolt = <1800000>; | ||
85 | regulator-max-microvolt = <1800000>; | ||
86 | }; | ||
87 | |||
88 | vddao_3v3: regulator-vddao_3v3 { | ||
89 | compatible = "regulator-fixed"; | ||
90 | regulator-name = "VDDAO_3V3"; | ||
91 | regulator-min-microvolt = <3300000>; | ||
92 | regulator-max-microvolt = <3300000>; | ||
93 | }; | ||
94 | |||
95 | vcc_3v3: regulator-vcc_3v3 { | ||
96 | compatible = "regulator-fixed"; | ||
97 | regulator-name = "VCC_3V3"; | ||
98 | regulator-min-microvolt = <3300000>; | ||
99 | regulator-max-microvolt = <3300000>; | ||
100 | }; | ||
101 | |||
102 | emmc_pwrseq: emmc-pwrseq { | ||
103 | compatible = "mmc-pwrseq-emmc"; | ||
104 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
105 | }; | ||
106 | |||
107 | wifi32k: wifi32k { | ||
108 | compatible = "pwm-clock"; | ||
109 | #clock-cells = <0>; | ||
110 | clock-frequency = <32768>; | ||
111 | pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ | ||
112 | }; | ||
113 | |||
114 | sdio_pwrseq: sdio-pwrseq { | ||
115 | compatible = "mmc-pwrseq-simple"; | ||
116 | reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; | ||
117 | clocks = <&wifi32k>; | ||
118 | clock-names = "ext_clock"; | ||
119 | }; | ||
120 | }; | ||
121 | |||
122 | &uart_AO { | ||
123 | status = "okay"; | ||
124 | pinctrl-0 = <&uart_ao_a_pins>; | ||
125 | pinctrl-names = "default"; | ||
126 | }; | ||
127 | |||
128 | ðmac { | ||
129 | status = "okay"; | ||
130 | phy-mode = "rmii"; | ||
131 | phy-handle = <&internal_phy>; | ||
132 | }; | ||
133 | |||
134 | &ir { | ||
135 | status = "okay"; | ||
136 | pinctrl-0 = <&remote_input_ao_pins>; | ||
137 | pinctrl-names = "default"; | ||
138 | }; | ||
139 | |||
140 | /* Wireless SDIO Module */ | ||
141 | &sd_emmc_a { | ||
142 | status = "okay"; | ||
143 | pinctrl-0 = <&sdio_pins>; | ||
144 | pinctrl-names = "default"; | ||
145 | #address-cells = <1>; | ||
146 | #size-cells = <0>; | ||
147 | |||
148 | bus-width = <4>; | ||
149 | cap-sd-highspeed; | ||
150 | max-frequency = <100000000>; | ||
151 | |||
152 | non-removable; | ||
153 | disable-wp; | ||
154 | |||
155 | mmc-pwrseq = <&sdio_pwrseq>; | ||
156 | |||
157 | vmmc-supply = <&vddao_3v3>; | ||
158 | vqmmc-supply = <&vddio_boot>; | ||
159 | }; | ||
160 | |||
161 | /* SD card */ | ||
162 | &sd_emmc_b { | ||
163 | status = "okay"; | ||
164 | pinctrl-0 = <&sdcard_pins>; | ||
165 | pinctrl-names = "default"; | ||
166 | |||
167 | bus-width = <4>; | ||
168 | cap-sd-highspeed; | ||
169 | max-frequency = <100000000>; | ||
170 | disable-wp; | ||
171 | |||
172 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
173 | cd-inverted; | ||
174 | |||
175 | vmmc-supply = <&vddao_3v3>; | ||
176 | vqmmc-supply = <&vddio_card>; | ||
177 | }; | ||
178 | |||
179 | /* eMMC */ | ||
180 | &sd_emmc_c { | ||
181 | status = "okay"; | ||
182 | pinctrl-0 = <&emmc_pins>; | ||
183 | pinctrl-names = "default"; | ||
184 | |||
185 | bus-width = <8>; | ||
186 | cap-sd-highspeed; | ||
187 | cap-mmc-highspeed; | ||
188 | max-frequency = <200000000>; | ||
189 | non-removable; | ||
190 | disable-wp; | ||
191 | mmc-ddr-1_8v; | ||
192 | mmc-hs200-1_8v; | ||
193 | |||
194 | mmc-pwrseq = <&emmc_pwrseq>; | ||
195 | vmmc-supply = <&vcc_3v3>; | ||
196 | vqmmc-supply = <&vddio_boot>; | ||
197 | }; | ||
198 | |||
199 | &pwm_ef { | ||
200 | status = "okay"; | ||
201 | pinctrl-0 = <&pwm_e_pins>; | ||
202 | pinctrl-names = "default"; | ||
203 | clocks = <&clkc CLKID_FCLK_DIV4>; | ||
204 | clock-names = "clkin0"; | ||
205 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts new file mode 100644 index 000000000000..f66939cacd37 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | |||
@@ -0,0 +1,77 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | /dts-v1/; | ||
45 | |||
46 | #include "meson-gxl-s905d.dtsi" | ||
47 | #include "meson-gx-p23x-q20x.dtsi" | ||
48 | |||
49 | / { | ||
50 | compatible = "amlogic,p230", "amlogic,s905d", "amlogic,meson-gxl"; | ||
51 | model = "Amlogic Meson GXL (S905D) P230 Development Board"; | ||
52 | }; | ||
53 | |||
54 | /* P230 has exclusive choice between internal or external PHY */ | ||
55 | ðmac { | ||
56 | pinctrl-0 = <ð_pins>; | ||
57 | pinctrl-names = "default"; | ||
58 | |||
59 | /* Select external PHY by default */ | ||
60 | phy-handle = <&external_phy>; | ||
61 | |||
62 | /* External PHY reset is shared with internal PHY Led signals */ | ||
63 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
64 | snps,reset-delays-us = <0 10000 1000000>; | ||
65 | snps,reset-active-low; | ||
66 | |||
67 | /* External PHY is in RGMII */ | ||
68 | phy-mode = "rgmii"; | ||
69 | }; | ||
70 | |||
71 | &external_mdio { | ||
72 | external_phy: ethernet-phy@0 { | ||
73 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | ||
74 | reg = <0>; | ||
75 | max-speed = <1000>; | ||
76 | }; | ||
77 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts new file mode 100644 index 000000000000..95992cf1fe61 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | /dts-v1/; | ||
45 | |||
46 | #include "meson-gxl-s905d.dtsi" | ||
47 | #include "meson-gx-p23x-q20x.dtsi" | ||
48 | |||
49 | / { | ||
50 | compatible = "amlogic,p231", "amlogic,s905d", "amlogic,meson-gxl"; | ||
51 | model = "Amlogic Meson GXL (S905D) P231 Development Board"; | ||
52 | }; | ||
53 | |||
54 | /* P231 has only internal PHY port */ | ||
55 | ðmac { | ||
56 | phy-mode = "rmii"; | ||
57 | phy-handle = <&internal_phy>; | ||
58 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d.dtsi new file mode 100644 index 000000000000..615308e55576 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d.dtsi | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | #include "meson-gxl.dtsi" | ||
45 | |||
46 | / { | ||
47 | compatible = "amlogic,s905d", "amlogic,meson-gxl"; | ||
48 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts new file mode 100644 index 000000000000..9639f012b02b --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts | |||
@@ -0,0 +1,69 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | /dts-v1/; | ||
45 | |||
46 | #include "meson-gxl-s905x.dtsi" | ||
47 | |||
48 | / { | ||
49 | compatible = "amlogic,p212", "amlogic,s905x", "amlogic,meson-gxl"; | ||
50 | model = "Amlogic Meson GXL (S905X) P212 Development Board"; | ||
51 | |||
52 | aliases { | ||
53 | serial0 = &uart_AO; | ||
54 | }; | ||
55 | |||
56 | chosen { | ||
57 | stdout-path = "serial0:115200n8"; | ||
58 | }; | ||
59 | |||
60 | memory@0 { | ||
61 | device_type = "memory"; | ||
62 | reg = <0x0 0x0 0x0 0x80000000>; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | /* This UART is brought out to the DB9 connector */ | ||
67 | &uart_AO { | ||
68 | status = "okay"; | ||
69 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x.dtsi new file mode 100644 index 000000000000..08237ee1e362 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x.dtsi | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | #include "meson-gxl.dtsi" | ||
45 | |||
46 | / { | ||
47 | compatible = "amlogic,s905x", "amlogic,meson-gxl"; | ||
48 | }; | ||
49 | |||
50 | /* S905X Only has access to its internal PHY */ | ||
51 | ðmac { | ||
52 | phy-mode = "rmii"; | ||
53 | phy-handle = <&internal_phy>; | ||
54 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi new file mode 100644 index 000000000000..9f89b99c4806 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | |||
@@ -0,0 +1,301 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | #include "meson-gx.dtsi" | ||
45 | #include <dt-bindings/clock/gxbb-clkc.h> | ||
46 | #include <dt-bindings/gpio/meson-gxbb-gpio.h> | ||
47 | |||
48 | / { | ||
49 | compatible = "amlogic,meson-gxl"; | ||
50 | }; | ||
51 | |||
52 | ðmac { | ||
53 | reg = <0x0 0xc9410000 0x0 0x10000 | ||
54 | 0x0 0xc8834540 0x0 0x4>; | ||
55 | |||
56 | clocks = <&clkc CLKID_ETH>, | ||
57 | <&clkc CLKID_FCLK_DIV2>, | ||
58 | <&clkc CLKID_MPLL2>; | ||
59 | clock-names = "stmmaceth", "clkin0", "clkin1"; | ||
60 | |||
61 | mdio0: mdio { | ||
62 | #address-cells = <1>; | ||
63 | #size-cells = <0>; | ||
64 | compatible = "snps,dwmac-mdio"; | ||
65 | }; | ||
66 | }; | ||
67 | |||
68 | &aobus { | ||
69 | pinctrl_aobus: pinctrl@14 { | ||
70 | compatible = "amlogic,meson-gxl-aobus-pinctrl"; | ||
71 | #address-cells = <2>; | ||
72 | #size-cells = <2>; | ||
73 | ranges; | ||
74 | |||
75 | gpio_ao: bank@14 { | ||
76 | reg = <0x0 0x00014 0x0 0x8>, | ||
77 | <0x0 0x0002c 0x0 0x4>, | ||
78 | <0x0 0x00024 0x0 0x8>; | ||
79 | reg-names = "mux", "pull", "gpio"; | ||
80 | gpio-controller; | ||
81 | #gpio-cells = <2>; | ||
82 | }; | ||
83 | |||
84 | uart_ao_a_pins: uart_ao_a { | ||
85 | mux { | ||
86 | groups = "uart_tx_ao_a", "uart_rx_ao_a"; | ||
87 | function = "uart_ao"; | ||
88 | }; | ||
89 | }; | ||
90 | |||
91 | remote_input_ao_pins: remote_input_ao { | ||
92 | mux { | ||
93 | groups = "remote_input_ao"; | ||
94 | function = "remote_input_ao"; | ||
95 | }; | ||
96 | }; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | &periphs { | ||
101 | pinctrl_periphs: pinctrl@4b0 { | ||
102 | compatible = "amlogic,meson-gxl-periphs-pinctrl"; | ||
103 | #address-cells = <2>; | ||
104 | #size-cells = <2>; | ||
105 | ranges; | ||
106 | |||
107 | gpio: bank@4b0 { | ||
108 | reg = <0x0 0x004b0 0x0 0x28>, | ||
109 | <0x0 0x004e8 0x0 0x14>, | ||
110 | <0x0 0x00120 0x0 0x14>, | ||
111 | <0x0 0x00430 0x0 0x40>; | ||
112 | reg-names = "mux", "pull", "pull-enable", "gpio"; | ||
113 | gpio-controller; | ||
114 | #gpio-cells = <2>; | ||
115 | }; | ||
116 | |||
117 | emmc_pins: emmc { | ||
118 | mux { | ||
119 | groups = "emmc_nand_d07", | ||
120 | "emmc_cmd", | ||
121 | "emmc_clk", | ||
122 | "emmc_ds"; | ||
123 | function = "emmc"; | ||
124 | }; | ||
125 | }; | ||
126 | |||
127 | sdcard_pins: sdcard { | ||
128 | mux { | ||
129 | groups = "sdcard_d0", | ||
130 | "sdcard_d1", | ||
131 | "sdcard_d2", | ||
132 | "sdcard_d3", | ||
133 | "sdcard_cmd", | ||
134 | "sdcard_clk"; | ||
135 | function = "sdcard"; | ||
136 | }; | ||
137 | }; | ||
138 | |||
139 | sdio_pins: sdio { | ||
140 | mux { | ||
141 | groups = "sdio_d0", | ||
142 | "sdio_d1", | ||
143 | "sdio_d2", | ||
144 | "sdio_d3", | ||
145 | "sdio_cmd", | ||
146 | "sdio_clk"; | ||
147 | function = "sdio"; | ||
148 | }; | ||
149 | }; | ||
150 | |||
151 | sdio_irq_pins: sdio_irq { | ||
152 | mux { | ||
153 | groups = "sdio_irq"; | ||
154 | function = "sdio"; | ||
155 | }; | ||
156 | }; | ||
157 | |||
158 | uart_a_pins: uart_a { | ||
159 | mux { | ||
160 | groups = "uart_tx_a", | ||
161 | "uart_rx_a"; | ||
162 | function = "uart_a"; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | uart_b_pins: uart_b { | ||
167 | mux { | ||
168 | groups = "uart_tx_b", | ||
169 | "uart_rx_b"; | ||
170 | function = "uart_b"; | ||
171 | }; | ||
172 | }; | ||
173 | |||
174 | uart_c_pins: uart_c { | ||
175 | mux { | ||
176 | groups = "uart_tx_c", | ||
177 | "uart_rx_c"; | ||
178 | function = "uart_c"; | ||
179 | }; | ||
180 | }; | ||
181 | |||
182 | i2c_a_pins: i2c_a { | ||
183 | mux { | ||
184 | groups = "i2c_sck_a", | ||
185 | "i2c_sda_a"; | ||
186 | function = "i2c_a"; | ||
187 | }; | ||
188 | }; | ||
189 | |||
190 | i2c_b_pins: i2c_b { | ||
191 | mux { | ||
192 | groups = "i2c_sck_b", | ||
193 | "i2c_sda_b"; | ||
194 | function = "i2c_b"; | ||
195 | }; | ||
196 | }; | ||
197 | |||
198 | i2c_c_pins: i2c_c { | ||
199 | mux { | ||
200 | groups = "i2c_sck_c", | ||
201 | "i2c_sda_c"; | ||
202 | function = "i2c_c"; | ||
203 | }; | ||
204 | }; | ||
205 | |||
206 | eth_pins: eth_c { | ||
207 | mux { | ||
208 | groups = "eth_mdio", | ||
209 | "eth_mdc", | ||
210 | "eth_clk_rx_clk", | ||
211 | "eth_rx_dv", | ||
212 | "eth_rxd0", | ||
213 | "eth_rxd1", | ||
214 | "eth_rxd2", | ||
215 | "eth_rxd3", | ||
216 | "eth_rgmii_tx_clk", | ||
217 | "eth_tx_en", | ||
218 | "eth_txd0", | ||
219 | "eth_txd1", | ||
220 | "eth_txd2", | ||
221 | "eth_txd3"; | ||
222 | function = "eth"; | ||
223 | }; | ||
224 | }; | ||
225 | |||
226 | pwm_e_pins: pwm_e { | ||
227 | mux { | ||
228 | groups = "pwm_e"; | ||
229 | function = "pwm_e"; | ||
230 | }; | ||
231 | }; | ||
232 | }; | ||
233 | |||
234 | eth-phy-mux { | ||
235 | compatible = "mdio-mux-mmioreg", "mdio-mux"; | ||
236 | #address-cells = <1>; | ||
237 | #size-cells = <0>; | ||
238 | reg = <0x0 0x55c 0x0 0x4>; | ||
239 | mux-mask = <0xffffffff>; | ||
240 | mdio-parent-bus = <&mdio0>; | ||
241 | |||
242 | internal_mdio: mdio@e40908ff { | ||
243 | reg = <0xe40908ff>; | ||
244 | #address-cells = <1>; | ||
245 | #size-cells = <0>; | ||
246 | |||
247 | internal_phy: ethernet-phy@8 { | ||
248 | compatible = "ethernet-phy-id0181.4400", "ethernet-phy-ieee802.3-c22"; | ||
249 | reg = <8>; | ||
250 | max-speed = <100>; | ||
251 | }; | ||
252 | }; | ||
253 | |||
254 | external_mdio: mdio@2009087f { | ||
255 | reg = <0x2009087f>; | ||
256 | #address-cells = <1>; | ||
257 | #size-cells = <0>; | ||
258 | }; | ||
259 | }; | ||
260 | }; | ||
261 | |||
262 | &hiubus { | ||
263 | clkc: clock-controller@0 { | ||
264 | compatible = "amlogic,gxl-clkc", "amlogic,gxbb-clkc"; | ||
265 | #clock-cells = <1>; | ||
266 | reg = <0x0 0x0 0x0 0x3db>; | ||
267 | }; | ||
268 | }; | ||
269 | |||
270 | &i2c_A { | ||
271 | clocks = <&clkc CLKID_I2C>; | ||
272 | }; | ||
273 | |||
274 | &i2c_B { | ||
275 | clocks = <&clkc CLKID_I2C>; | ||
276 | }; | ||
277 | |||
278 | &i2c_C { | ||
279 | clocks = <&clkc CLKID_I2C>; | ||
280 | }; | ||
281 | |||
282 | &sd_emmc_a { | ||
283 | clocks = <&clkc CLKID_SD_EMMC_A>, | ||
284 | <&xtal>, | ||
285 | <&clkc CLKID_FCLK_DIV2>; | ||
286 | clock-names = "core", "clkin0", "clkin1"; | ||
287 | }; | ||
288 | |||
289 | &sd_emmc_b { | ||
290 | clocks = <&clkc CLKID_SD_EMMC_B>, | ||
291 | <&xtal>, | ||
292 | <&clkc CLKID_FCLK_DIV2>; | ||
293 | clock-names = "core", "clkin0", "clkin1"; | ||
294 | }; | ||
295 | |||
296 | &sd_emmc_c { | ||
297 | clocks = <&clkc CLKID_SD_EMMC_C>, | ||
298 | <&xtal>, | ||
299 | <&clkc CLKID_FCLK_DIV2>; | ||
300 | clock-names = "core", "clkin0", "clkin1"; | ||
301 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts new file mode 100644 index 000000000000..f859d75db8bd --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | |||
@@ -0,0 +1,169 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 BayLibre, SAS. | ||
3 | * Author: Neil Armstrong <narmstrong@baylibre.com> | ||
4 | * | ||
5 | * Copyright (c) 2016 Endless Computers, Inc. | ||
6 | * Author: Carlo Caione <carlo@endlessm.com> | ||
7 | * | ||
8 | * This file is dual-licensed: you can use it either under the terms | ||
9 | * of the GPL or the X11 license, at your option. Note that this dual | ||
10 | * licensing only applies to this file, and not this project as a | ||
11 | * whole. | ||
12 | * | ||
13 | * a) This library is free software; you can redistribute it and/or | ||
14 | * modify it under the terms of the GNU General Public License as | ||
15 | * published by the Free Software Foundation; either version 2 of the | ||
16 | * License, or (at your option) any later version. | ||
17 | * | ||
18 | * This library is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | * | ||
23 | * Or, alternatively, | ||
24 | * | ||
25 | * b) Permission is hereby granted, free of charge, to any person | ||
26 | * obtaining a copy of this software and associated documentation | ||
27 | * files (the "Software"), to deal in the Software without | ||
28 | * restriction, including without limitation the rights to use, | ||
29 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
30 | * sell copies of the Software, and to permit persons to whom the | ||
31 | * Software is furnished to do so, subject to the following | ||
32 | * conditions: | ||
33 | * | ||
34 | * The above copyright notice and this permission notice shall be | ||
35 | * included in all copies or substantial portions of the Software. | ||
36 | * | ||
37 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
38 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
39 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
40 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
41 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
42 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
43 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
44 | * OTHER DEALINGS IN THE SOFTWARE. | ||
45 | */ | ||
46 | |||
47 | /dts-v1/; | ||
48 | |||
49 | #include "meson-gxm.dtsi" | ||
50 | |||
51 | / { | ||
52 | compatible = "nexbox,a1", "amlogic,s912", "amlogic,meson-gxm"; | ||
53 | model = "NEXBOX A1"; | ||
54 | |||
55 | aliases { | ||
56 | serial0 = &uart_AO; | ||
57 | }; | ||
58 | |||
59 | chosen { | ||
60 | stdout-path = "serial0:115200n8"; | ||
61 | }; | ||
62 | |||
63 | memory@0 { | ||
64 | device_type = "memory"; | ||
65 | reg = <0x0 0x0 0x0 0x80000000>; | ||
66 | }; | ||
67 | |||
68 | vddio_boot: regulator-vddio-boot { | ||
69 | compatible = "regulator-fixed"; | ||
70 | regulator-name = "VDDIO_BOOT"; | ||
71 | regulator-min-microvolt = <1800000>; | ||
72 | regulator-max-microvolt = <1800000>; | ||
73 | }; | ||
74 | |||
75 | vddao_3v3: regulator-vddao-3v3 { | ||
76 | compatible = "regulator-fixed"; | ||
77 | regulator-name = "VDDAO_3V3"; | ||
78 | regulator-min-microvolt = <3300000>; | ||
79 | regulator-max-microvolt = <3300000>; | ||
80 | }; | ||
81 | |||
82 | vcc_3v3: regulator-vcc-3v3 { | ||
83 | compatible = "regulator-fixed"; | ||
84 | regulator-name = "VCC_3V3"; | ||
85 | regulator-min-microvolt = <3300000>; | ||
86 | regulator-max-microvolt = <3300000>; | ||
87 | }; | ||
88 | |||
89 | emmc_pwrseq: emmc-pwrseq { | ||
90 | compatible = "mmc-pwrseq-emmc"; | ||
91 | reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; | ||
92 | }; | ||
93 | }; | ||
94 | |||
95 | /* This UART is brought out to the DB9 connector */ | ||
96 | &uart_AO { | ||
97 | status = "okay"; | ||
98 | pinctrl-0 = <&uart_ao_a_pins>; | ||
99 | pinctrl-names = "default"; | ||
100 | }; | ||
101 | |||
102 | &ir { | ||
103 | status = "okay"; | ||
104 | pinctrl-0 = <&remote_input_ao_pins>; | ||
105 | pinctrl-names = "default"; | ||
106 | }; | ||
107 | |||
108 | /* SD card */ | ||
109 | &sd_emmc_b { | ||
110 | status = "okay"; | ||
111 | pinctrl-0 = <&sdcard_pins>; | ||
112 | pinctrl-names = "default"; | ||
113 | |||
114 | bus-width = <4>; | ||
115 | cap-sd-highspeed; | ||
116 | max-frequency = <100000000>; | ||
117 | disable-wp; | ||
118 | |||
119 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | ||
120 | cd-inverted; | ||
121 | |||
122 | vmmc-supply = <&vddao_3v3>; | ||
123 | vqmmc-supply = <&vddio_boot>; | ||
124 | }; | ||
125 | |||
126 | /* eMMC */ | ||
127 | &sd_emmc_c { | ||
128 | status = "okay"; | ||
129 | pinctrl-0 = <&emmc_pins>; | ||
130 | pinctrl-names = "default"; | ||
131 | |||
132 | bus-width = <8>; | ||
133 | cap-sd-highspeed; | ||
134 | cap-mmc-highspeed; | ||
135 | max-frequency = <200000000>; | ||
136 | non-removable; | ||
137 | disable-wp; | ||
138 | mmc-ddr-1_8v; | ||
139 | mmc-hs200-1_8v; | ||
140 | |||
141 | mmc-pwrseq = <&emmc_pwrseq>; | ||
142 | vmmc-supply = <&vcc_3v3>; | ||
143 | vqmmc-supply = <&vddio_boot>; | ||
144 | }; | ||
145 | |||
146 | ðmac { | ||
147 | status = "okay"; | ||
148 | |||
149 | pinctrl-0 = <ð_pins>; | ||
150 | pinctrl-names = "default"; | ||
151 | |||
152 | /* Select external PHY by default */ | ||
153 | phy-handle = <&external_phy>; | ||
154 | |||
155 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
156 | snps,reset-delays-us = <0 10000 1000000>; | ||
157 | snps,reset-active-low; | ||
158 | |||
159 | /* External PHY is in RGMII */ | ||
160 | phy-mode = "rgmii"; | ||
161 | }; | ||
162 | |||
163 | &external_mdio { | ||
164 | external_phy: ethernet-phy@0 { | ||
165 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | ||
166 | reg = <0>; | ||
167 | max-speed = <1000>; | ||
168 | }; | ||
169 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-s912-q200.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-s912-q200.dts new file mode 100644 index 000000000000..5dbc66088355 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-s912-q200.dts | |||
@@ -0,0 +1,77 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | /dts-v1/; | ||
45 | |||
46 | #include "meson-gxm.dtsi" | ||
47 | #include "meson-gx-p23x-q20x.dtsi" | ||
48 | |||
49 | / { | ||
50 | compatible = "amlogic,q200", "amlogic,s912", "amlogic,meson-gxm"; | ||
51 | model = "Amlogic Meson GXM (S912) Q200 Development Board"; | ||
52 | }; | ||
53 | |||
54 | /* Q200 has exclusive choice between internal or external PHY */ | ||
55 | ðmac { | ||
56 | pinctrl-0 = <ð_pins>; | ||
57 | pinctrl-names = "default"; | ||
58 | |||
59 | /* Select external PHY by default */ | ||
60 | phy-handle = <&external_phy>; | ||
61 | |||
62 | /* External PHY reset is shared with internal PHY Led signals */ | ||
63 | snps,reset-gpio = <&gpio GPIOZ_14 0>; | ||
64 | snps,reset-delays-us = <0 10000 1000000>; | ||
65 | snps,reset-active-low; | ||
66 | |||
67 | /* External PHY is in RGMII */ | ||
68 | phy-mode = "rgmii"; | ||
69 | }; | ||
70 | |||
71 | &external_mdio { | ||
72 | external_phy: ethernet-phy@0 { | ||
73 | compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; | ||
74 | reg = <0>; | ||
75 | max-speed = <1000>; | ||
76 | }; | ||
77 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-s912-q201.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-s912-q201.dts new file mode 100644 index 000000000000..95e11d7faab8 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-s912-q201.dts | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | /dts-v1/; | ||
45 | |||
46 | #include "meson-gxm.dtsi" | ||
47 | #include "meson-gx-p23x-q20x.dtsi" | ||
48 | |||
49 | / { | ||
50 | compatible = "amlogic,q201", "amlogic,s912", "amlogic,meson-gxm"; | ||
51 | model = "Amlogic Meson GXM (S912) Q201 Development Board"; | ||
52 | }; | ||
53 | |||
54 | /* Q201 has only internal PHY port */ | ||
55 | ðmac { | ||
56 | phy-mode = "rmii"; | ||
57 | phy-handle = <&internal_phy>; | ||
58 | }; | ||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi new file mode 100644 index 000000000000..c1974bbbddea --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi | |||
@@ -0,0 +1,114 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Endless Computers, Inc. | ||
3 | * Author: Carlo Caione <carlo@endlessm.com> | ||
4 | * | ||
5 | * This file is dual-licensed: you can use it either under the terms | ||
6 | * of the GPL or the X11 license, at your option. Note that this dual | ||
7 | * licensing only applies to this file, and not this project as a | ||
8 | * whole. | ||
9 | * | ||
10 | * a) This library is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License as | ||
12 | * published by the Free Software Foundation; either version 2 of the | ||
13 | * License, or (at your option) any later version. | ||
14 | * | ||
15 | * This library is distributed in the hope that it will be useful, | ||
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
18 | * GNU General Public License for more details. | ||
19 | * | ||
20 | * Or, alternatively, | ||
21 | * | ||
22 | * b) Permission is hereby granted, free of charge, to any person | ||
23 | * obtaining a copy of this software and associated documentation | ||
24 | * files (the "Software"), to deal in the Software without | ||
25 | * restriction, including without limitation the rights to use, | ||
26 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the | ||
28 | * Software is furnished to do so, subject to the following | ||
29 | * conditions: | ||
30 | * | ||
31 | * The above copyright notice and this permission notice shall be | ||
32 | * included in all copies or substantial portions of the Software. | ||
33 | * | ||
34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
35 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
36 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
37 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
38 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
39 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
40 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
41 | * OTHER DEALINGS IN THE SOFTWARE. | ||
42 | */ | ||
43 | |||
44 | #include "meson-gxl.dtsi" | ||
45 | |||
46 | / { | ||
47 | compatible = "amlogic,meson-gxm"; | ||
48 | |||
49 | cpus { | ||
50 | cpu-map { | ||
51 | cluster0 { | ||
52 | core0 { | ||
53 | cpu = <&cpu0>; | ||
54 | }; | ||
55 | core1 { | ||
56 | cpu = <&cpu1>; | ||
57 | }; | ||
58 | core2 { | ||
59 | cpu = <&cpu2>; | ||
60 | }; | ||
61 | core3 { | ||
62 | cpu = <&cpu3>; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | cluster1 { | ||
67 | core0 { | ||
68 | cpu = <&cpu4>; | ||
69 | }; | ||
70 | core1 { | ||
71 | cpu = <&cpu5>; | ||
72 | }; | ||
73 | core2 { | ||
74 | cpu = <&cpu6>; | ||
75 | }; | ||
76 | core3 { | ||
77 | cpu = <&cpu7>; | ||
78 | }; | ||
79 | }; | ||
80 | }; | ||
81 | |||
82 | cpu4: cpu@100 { | ||
83 | device_type = "cpu"; | ||
84 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
85 | reg = <0x0 0x100>; | ||
86 | enable-method = "psci"; | ||
87 | next-level-cache = <&l2>; | ||
88 | }; | ||
89 | |||
90 | cpu5: cpu@101 { | ||
91 | device_type = "cpu"; | ||
92 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
93 | reg = <0x0 0x101>; | ||
94 | enable-method = "psci"; | ||
95 | next-level-cache = <&l2>; | ||
96 | }; | ||
97 | |||
98 | cpu6: cpu@102 { | ||
99 | device_type = "cpu"; | ||
100 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
101 | reg = <0x0 0x102>; | ||
102 | enable-method = "psci"; | ||
103 | next-level-cache = <&l2>; | ||
104 | }; | ||
105 | |||
106 | cpu7: cpu@103 { | ||
107 | device_type = "cpu"; | ||
108 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
109 | reg = <0x0 0x103>; | ||
110 | enable-method = "psci"; | ||
111 | next-level-cache = <&l2>; | ||
112 | }; | ||
113 | }; | ||
114 | }; | ||
diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi index 7d3a2acc6a55..7d832247d0db 100644 --- a/arch/arm64/boot/dts/arm/juno-base.dtsi +++ b/arch/arm64/boot/dts/arm/juno-base.dtsi | |||
@@ -29,6 +29,28 @@ | |||
29 | clock-names = "apb_pclk"; | 29 | clock-names = "apb_pclk"; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | smmu_pcie: iommu@2b500000 { | ||
33 | compatible = "arm,mmu-401", "arm,smmu-v1"; | ||
34 | reg = <0x0 0x2b500000 0x0 0x10000>; | ||
35 | interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, | ||
36 | <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; | ||
37 | #iommu-cells = <1>; | ||
38 | #global-interrupts = <1>; | ||
39 | dma-coherent; | ||
40 | status = "disabled"; | ||
41 | }; | ||
42 | |||
43 | smmu_etr: iommu@2b600000 { | ||
44 | compatible = "arm,mmu-401", "arm,smmu-v1"; | ||
45 | reg = <0x0 0x2b600000 0x0 0x10000>; | ||
46 | interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>, | ||
47 | <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; | ||
48 | #iommu-cells = <1>; | ||
49 | #global-interrupts = <1>; | ||
50 | dma-coherent; | ||
51 | status = "disabled"; | ||
52 | }; | ||
53 | |||
32 | gic: interrupt-controller@2c010000 { | 54 | gic: interrupt-controller@2c010000 { |
33 | compatible = "arm,gic-400", "arm,cortex-a15-gic"; | 55 | compatible = "arm,gic-400", "arm,cortex-a15-gic"; |
34 | reg = <0x0 0x2c010000 0 0x1000>, | 56 | reg = <0x0 0x2c010000 0 0x1000>, |
@@ -146,6 +168,7 @@ | |||
146 | etr@20070000 { | 168 | etr@20070000 { |
147 | compatible = "arm,coresight-tmc", "arm,primecell"; | 169 | compatible = "arm,coresight-tmc", "arm,primecell"; |
148 | reg = <0 0x20070000 0 0x1000>; | 170 | reg = <0 0x20070000 0 0x1000>; |
171 | iommus = <&smmu_etr 0>; | ||
149 | 172 | ||
150 | clocks = <&soc_smc50mhz>; | 173 | clocks = <&soc_smc50mhz>; |
151 | clock-names = "apb_pclk"; | 174 | clock-names = "apb_pclk"; |
@@ -404,6 +427,8 @@ | |||
404 | <0 0 0 4 &gic 0 0 0 139 4>; | 427 | <0 0 0 4 &gic 0 0 0 139 4>; |
405 | msi-parent = <&v2m_0>; | 428 | msi-parent = <&v2m_0>; |
406 | status = "disabled"; | 429 | status = "disabled"; |
430 | iommu-map-mask = <0x0>; /* RC has no means to output PCI RID */ | ||
431 | iommu-map = <0x0 &smmu_pcie 0x0 0x1>; | ||
407 | }; | 432 | }; |
408 | 433 | ||
409 | scpi { | 434 | scpi { |
@@ -484,6 +509,48 @@ | |||
484 | 509 | ||
485 | /include/ "juno-clocks.dtsi" | 510 | /include/ "juno-clocks.dtsi" |
486 | 511 | ||
512 | smmu_dma: iommu@7fb00000 { | ||
513 | compatible = "arm,mmu-401", "arm,smmu-v1"; | ||
514 | reg = <0x0 0x7fb00000 0x0 0x10000>; | ||
515 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, | ||
516 | <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
517 | #iommu-cells = <1>; | ||
518 | #global-interrupts = <1>; | ||
519 | dma-coherent; | ||
520 | status = "disabled"; | ||
521 | }; | ||
522 | |||
523 | smmu_hdlcd1: iommu@7fb10000 { | ||
524 | compatible = "arm,mmu-401", "arm,smmu-v1"; | ||
525 | reg = <0x0 0x7fb10000 0x0 0x10000>; | ||
526 | interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, | ||
527 | <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; | ||
528 | #iommu-cells = <1>; | ||
529 | #global-interrupts = <1>; | ||
530 | status = "disabled"; | ||
531 | }; | ||
532 | |||
533 | smmu_hdlcd0: iommu@7fb20000 { | ||
534 | compatible = "arm,mmu-401", "arm,smmu-v1"; | ||
535 | reg = <0x0 0x7fb20000 0x0 0x10000>; | ||
536 | interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, | ||
537 | <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | ||
538 | #iommu-cells = <1>; | ||
539 | #global-interrupts = <1>; | ||
540 | status = "disabled"; | ||
541 | }; | ||
542 | |||
543 | smmu_usb: iommu@7fb30000 { | ||
544 | compatible = "arm,mmu-401", "arm,smmu-v1"; | ||
545 | reg = <0x0 0x7fb30000 0x0 0x10000>; | ||
546 | interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, | ||
547 | <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; | ||
548 | #iommu-cells = <1>; | ||
549 | #global-interrupts = <1>; | ||
550 | dma-coherent; | ||
551 | status = "disabled"; | ||
552 | }; | ||
553 | |||
487 | dma@7ff00000 { | 554 | dma@7ff00000 { |
488 | compatible = "arm,pl330", "arm,primecell"; | 555 | compatible = "arm,pl330", "arm,primecell"; |
489 | reg = <0x0 0x7ff00000 0 0x1000>; | 556 | reg = <0x0 0x7ff00000 0 0x1000>; |
@@ -499,6 +566,15 @@ | |||
499 | <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, | 566 | <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, |
500 | <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, | 567 | <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, |
501 | <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; | 568 | <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; |
569 | iommus = <&smmu_dma 0>, | ||
570 | <&smmu_dma 1>, | ||
571 | <&smmu_dma 2>, | ||
572 | <&smmu_dma 3>, | ||
573 | <&smmu_dma 4>, | ||
574 | <&smmu_dma 5>, | ||
575 | <&smmu_dma 6>, | ||
576 | <&smmu_dma 7>, | ||
577 | <&smmu_dma 8>; | ||
502 | clocks = <&soc_faxiclk>; | 578 | clocks = <&soc_faxiclk>; |
503 | clock-names = "apb_pclk"; | 579 | clock-names = "apb_pclk"; |
504 | }; | 580 | }; |
@@ -507,6 +583,7 @@ | |||
507 | compatible = "arm,hdlcd"; | 583 | compatible = "arm,hdlcd"; |
508 | reg = <0 0x7ff50000 0 0x1000>; | 584 | reg = <0 0x7ff50000 0 0x1000>; |
509 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | 585 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; |
586 | iommus = <&smmu_hdlcd1 0>; | ||
510 | clocks = <&scpi_clk 3>; | 587 | clocks = <&scpi_clk 3>; |
511 | clock-names = "pxlclk"; | 588 | clock-names = "pxlclk"; |
512 | 589 | ||
@@ -521,6 +598,7 @@ | |||
521 | compatible = "arm,hdlcd"; | 598 | compatible = "arm,hdlcd"; |
522 | reg = <0 0x7ff60000 0 0x1000>; | 599 | reg = <0 0x7ff60000 0 0x1000>; |
523 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; | 600 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; |
601 | iommus = <&smmu_hdlcd0 0>; | ||
524 | clocks = <&scpi_clk 3>; | 602 | clocks = <&scpi_clk 3>; |
525 | clock-names = "pxlclk"; | 603 | clock-names = "pxlclk"; |
526 | 604 | ||
@@ -574,6 +652,7 @@ | |||
574 | compatible = "generic-ohci"; | 652 | compatible = "generic-ohci"; |
575 | reg = <0x0 0x7ffb0000 0x0 0x10000>; | 653 | reg = <0x0 0x7ffb0000 0x0 0x10000>; |
576 | interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; | 654 | interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; |
655 | iommus = <&smmu_usb 0>; | ||
577 | clocks = <&soc_usb48mhz>; | 656 | clocks = <&soc_usb48mhz>; |
578 | }; | 657 | }; |
579 | 658 | ||
@@ -581,6 +660,7 @@ | |||
581 | compatible = "generic-ehci"; | 660 | compatible = "generic-ehci"; |
582 | reg = <0x0 0x7ffc0000 0x0 0x10000>; | 661 | reg = <0x0 0x7ffc0000 0x0 0x10000>; |
583 | interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 662 | interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; |
663 | iommus = <&smmu_usb 0>; | ||
584 | clocks = <&soc_usb48mhz>; | 664 | clocks = <&soc_usb48mhz>; |
585 | }; | 665 | }; |
586 | 666 | ||
diff --git a/arch/arm64/boot/dts/arm/juno-r1.dts b/arch/arm64/boot/dts/arm/juno-r1.dts index f0b857d6d73c..eec37feee8fc 100644 --- a/arch/arm64/boot/dts/arm/juno-r1.dts +++ b/arch/arm64/boot/dts/arm/juno-r1.dts | |||
@@ -90,6 +90,7 @@ | |||
90 | next-level-cache = <&A57_L2>; | 90 | next-level-cache = <&A57_L2>; |
91 | clocks = <&scpi_dvfs 0>; | 91 | clocks = <&scpi_dvfs 0>; |
92 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 92 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
93 | capacity-dmips-mhz = <1024>; | ||
93 | }; | 94 | }; |
94 | 95 | ||
95 | A57_1: cpu@1 { | 96 | A57_1: cpu@1 { |
@@ -100,6 +101,7 @@ | |||
100 | next-level-cache = <&A57_L2>; | 101 | next-level-cache = <&A57_L2>; |
101 | clocks = <&scpi_dvfs 0>; | 102 | clocks = <&scpi_dvfs 0>; |
102 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 103 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
104 | capacity-dmips-mhz = <1024>; | ||
103 | }; | 105 | }; |
104 | 106 | ||
105 | A53_0: cpu@100 { | 107 | A53_0: cpu@100 { |
@@ -110,6 +112,7 @@ | |||
110 | next-level-cache = <&A53_L2>; | 112 | next-level-cache = <&A53_L2>; |
111 | clocks = <&scpi_dvfs 1>; | 113 | clocks = <&scpi_dvfs 1>; |
112 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 114 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
115 | capacity-dmips-mhz = <578>; | ||
113 | }; | 116 | }; |
114 | 117 | ||
115 | A53_1: cpu@101 { | 118 | A53_1: cpu@101 { |
@@ -120,6 +123,7 @@ | |||
120 | next-level-cache = <&A53_L2>; | 123 | next-level-cache = <&A53_L2>; |
121 | clocks = <&scpi_dvfs 1>; | 124 | clocks = <&scpi_dvfs 1>; |
122 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 125 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
126 | capacity-dmips-mhz = <578>; | ||
123 | }; | 127 | }; |
124 | 128 | ||
125 | A53_2: cpu@102 { | 129 | A53_2: cpu@102 { |
@@ -130,6 +134,7 @@ | |||
130 | next-level-cache = <&A53_L2>; | 134 | next-level-cache = <&A53_L2>; |
131 | clocks = <&scpi_dvfs 1>; | 135 | clocks = <&scpi_dvfs 1>; |
132 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 136 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
137 | capacity-dmips-mhz = <578>; | ||
133 | }; | 138 | }; |
134 | 139 | ||
135 | A53_3: cpu@103 { | 140 | A53_3: cpu@103 { |
@@ -140,6 +145,7 @@ | |||
140 | next-level-cache = <&A53_L2>; | 145 | next-level-cache = <&A53_L2>; |
141 | clocks = <&scpi_dvfs 1>; | 146 | clocks = <&scpi_dvfs 1>; |
142 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 147 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
148 | capacity-dmips-mhz = <578>; | ||
143 | }; | 149 | }; |
144 | 150 | ||
145 | A57_L2: l2-cache0 { | 151 | A57_L2: l2-cache0 { |
diff --git a/arch/arm64/boot/dts/arm/juno-r2.dts b/arch/arm64/boot/dts/arm/juno-r2.dts index 26aaa6a7670f..28f40ec44090 100644 --- a/arch/arm64/boot/dts/arm/juno-r2.dts +++ b/arch/arm64/boot/dts/arm/juno-r2.dts | |||
@@ -90,6 +90,7 @@ | |||
90 | next-level-cache = <&A72_L2>; | 90 | next-level-cache = <&A72_L2>; |
91 | clocks = <&scpi_dvfs 0>; | 91 | clocks = <&scpi_dvfs 0>; |
92 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 92 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
93 | capacity-dmips-mhz = <1024>; | ||
93 | }; | 94 | }; |
94 | 95 | ||
95 | A72_1: cpu@1 { | 96 | A72_1: cpu@1 { |
@@ -100,6 +101,7 @@ | |||
100 | next-level-cache = <&A72_L2>; | 101 | next-level-cache = <&A72_L2>; |
101 | clocks = <&scpi_dvfs 0>; | 102 | clocks = <&scpi_dvfs 0>; |
102 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 103 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
104 | capacity-dmips-mhz = <1024>; | ||
103 | }; | 105 | }; |
104 | 106 | ||
105 | A53_0: cpu@100 { | 107 | A53_0: cpu@100 { |
@@ -110,6 +112,7 @@ | |||
110 | next-level-cache = <&A53_L2>; | 112 | next-level-cache = <&A53_L2>; |
111 | clocks = <&scpi_dvfs 1>; | 113 | clocks = <&scpi_dvfs 1>; |
112 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 114 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
115 | capacity-dmips-mhz = <485>; | ||
113 | }; | 116 | }; |
114 | 117 | ||
115 | A53_1: cpu@101 { | 118 | A53_1: cpu@101 { |
@@ -120,6 +123,7 @@ | |||
120 | next-level-cache = <&A53_L2>; | 123 | next-level-cache = <&A53_L2>; |
121 | clocks = <&scpi_dvfs 1>; | 124 | clocks = <&scpi_dvfs 1>; |
122 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 125 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
126 | capacity-dmips-mhz = <485>; | ||
123 | }; | 127 | }; |
124 | 128 | ||
125 | A53_2: cpu@102 { | 129 | A53_2: cpu@102 { |
@@ -130,6 +134,7 @@ | |||
130 | next-level-cache = <&A53_L2>; | 134 | next-level-cache = <&A53_L2>; |
131 | clocks = <&scpi_dvfs 1>; | 135 | clocks = <&scpi_dvfs 1>; |
132 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 136 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
137 | capacity-dmips-mhz = <485>; | ||
133 | }; | 138 | }; |
134 | 139 | ||
135 | A53_3: cpu@103 { | 140 | A53_3: cpu@103 { |
@@ -140,6 +145,7 @@ | |||
140 | next-level-cache = <&A53_L2>; | 145 | next-level-cache = <&A53_L2>; |
141 | clocks = <&scpi_dvfs 1>; | 146 | clocks = <&scpi_dvfs 1>; |
142 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 147 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
148 | capacity-dmips-mhz = <485>; | ||
143 | }; | 149 | }; |
144 | 150 | ||
145 | A72_L2: l2-cache0 { | 151 | A72_L2: l2-cache0 { |
diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts index 6e154d948a80..ac5ceb73f45f 100644 --- a/arch/arm64/boot/dts/arm/juno.dts +++ b/arch/arm64/boot/dts/arm/juno.dts | |||
@@ -90,6 +90,7 @@ | |||
90 | next-level-cache = <&A57_L2>; | 90 | next-level-cache = <&A57_L2>; |
91 | clocks = <&scpi_dvfs 0>; | 91 | clocks = <&scpi_dvfs 0>; |
92 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 92 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
93 | capacity-dmips-mhz = <1024>; | ||
93 | }; | 94 | }; |
94 | 95 | ||
95 | A57_1: cpu@1 { | 96 | A57_1: cpu@1 { |
@@ -100,6 +101,7 @@ | |||
100 | next-level-cache = <&A57_L2>; | 101 | next-level-cache = <&A57_L2>; |
101 | clocks = <&scpi_dvfs 0>; | 102 | clocks = <&scpi_dvfs 0>; |
102 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 103 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
104 | capacity-dmips-mhz = <1024>; | ||
103 | }; | 105 | }; |
104 | 106 | ||
105 | A53_0: cpu@100 { | 107 | A53_0: cpu@100 { |
@@ -110,6 +112,7 @@ | |||
110 | next-level-cache = <&A53_L2>; | 112 | next-level-cache = <&A53_L2>; |
111 | clocks = <&scpi_dvfs 1>; | 113 | clocks = <&scpi_dvfs 1>; |
112 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 114 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
115 | capacity-dmips-mhz = <578>; | ||
113 | }; | 116 | }; |
114 | 117 | ||
115 | A53_1: cpu@101 { | 118 | A53_1: cpu@101 { |
@@ -120,6 +123,7 @@ | |||
120 | next-level-cache = <&A53_L2>; | 123 | next-level-cache = <&A53_L2>; |
121 | clocks = <&scpi_dvfs 1>; | 124 | clocks = <&scpi_dvfs 1>; |
122 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 125 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
126 | capacity-dmips-mhz = <578>; | ||
123 | }; | 127 | }; |
124 | 128 | ||
125 | A53_2: cpu@102 { | 129 | A53_2: cpu@102 { |
@@ -130,6 +134,7 @@ | |||
130 | next-level-cache = <&A53_L2>; | 134 | next-level-cache = <&A53_L2>; |
131 | clocks = <&scpi_dvfs 1>; | 135 | clocks = <&scpi_dvfs 1>; |
132 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 136 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
137 | capacity-dmips-mhz = <578>; | ||
133 | }; | 138 | }; |
134 | 139 | ||
135 | A53_3: cpu@103 { | 140 | A53_3: cpu@103 { |
@@ -140,6 +145,7 @@ | |||
140 | next-level-cache = <&A53_L2>; | 145 | next-level-cache = <&A53_L2>; |
141 | clocks = <&scpi_dvfs 1>; | 146 | clocks = <&scpi_dvfs 1>; |
142 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; | 147 | cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>; |
148 | capacity-dmips-mhz = <578>; | ||
143 | }; | 149 | }; |
144 | 150 | ||
145 | A57_L2: l2-cache0 { | 151 | A57_L2: l2-cache0 { |
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts index 7841b724e340..c309633a1e87 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | |||
@@ -2,6 +2,7 @@ | |||
2 | #include "bcm2837.dtsi" | 2 | #include "bcm2837.dtsi" |
3 | #include "bcm2835-rpi.dtsi" | 3 | #include "bcm2835-rpi.dtsi" |
4 | #include "bcm283x-rpi-smsc9514.dtsi" | 4 | #include "bcm283x-rpi-smsc9514.dtsi" |
5 | #include "bcm283x-rpi-usb-host.dtsi" | ||
5 | 6 | ||
6 | / { | 7 | / { |
7 | compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; | 8 | compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; |
@@ -15,13 +16,6 @@ | |||
15 | act { | 16 | act { |
16 | gpios = <&gpio 47 0>; | 17 | gpios = <&gpio 47 0>; |
17 | }; | 18 | }; |
18 | |||
19 | pwr { | ||
20 | label = "PWR"; | ||
21 | gpios = <&gpio 35 0>; | ||
22 | default-state = "keep"; | ||
23 | linux,default-trigger = "default-on"; | ||
24 | }; | ||
25 | }; | 19 | }; |
26 | }; | 20 | }; |
27 | 21 | ||
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi index 8216bbb29fe0..19f2fe620a21 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi | |||
@@ -1,7 +1,7 @@ | |||
1 | #include "bcm283x.dtsi" | 1 | #include "bcm283x.dtsi" |
2 | 2 | ||
3 | / { | 3 | / { |
4 | compatible = "brcm,bcm2836"; | 4 | compatible = "brcm,bcm2837"; |
5 | 5 | ||
6 | soc { | 6 | soc { |
7 | ranges = <0x7e000000 0x3f000000 0x1000000>, | 7 | ranges = <0x7e000000 0x3f000000 0x1000000>, |
@@ -74,3 +74,9 @@ | |||
74 | interrupt-parent = <&local_intc>; | 74 | interrupt-parent = <&local_intc>; |
75 | interrupts = <8>; | 75 | interrupts = <8>; |
76 | }; | 76 | }; |
77 | |||
78 | /* enable thermal sensor with the correct compatible property set */ | ||
79 | &thermal { | ||
80 | compatible = "brcm,bcm2837-thermal"; | ||
81 | status = "okay"; | ||
82 | }; | ||
diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi new file mode 120000 index 000000000000..cbeebe312ff8 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi | |||
@@ -0,0 +1 @@ | |||
../../../../arm/boot/dts/bcm283x-rpi-usb-host.dtsi \ No newline at end of file | |||
diff --git a/arch/arm64/boot/dts/broadcom/ns2-svk.dts b/arch/arm64/boot/dts/broadcom/ns2-svk.dts index c4d544244b19..de8d379f44e2 100644 --- a/arch/arm64/boot/dts/broadcom/ns2-svk.dts +++ b/arch/arm64/boot/dts/broadcom/ns2-svk.dts | |||
@@ -161,6 +161,10 @@ | |||
161 | status = "ok"; | 161 | status = "ok"; |
162 | }; | 162 | }; |
163 | 163 | ||
164 | &sdio1 { | ||
165 | status = "ok"; | ||
166 | }; | ||
167 | |||
164 | &nand { | 168 | &nand { |
165 | nandcs@0 { | 169 | nandcs@0 { |
166 | compatible = "brcm,nandcs"; | 170 | compatible = "brcm,nandcs"; |
@@ -192,3 +196,37 @@ | |||
192 | groups = "nand_grp"; | 196 | groups = "nand_grp"; |
193 | }; | 197 | }; |
194 | }; | 198 | }; |
199 | |||
200 | &qspi { | ||
201 | bspi-sel = <0>; | ||
202 | flash: m25p80@0 { | ||
203 | #address-cells = <1>; | ||
204 | #size-cells = <1>; | ||
205 | compatible = "m25p80"; | ||
206 | reg = <0x0>; | ||
207 | spi-max-frequency = <12500000>; | ||
208 | m25p,fast-read; | ||
209 | spi-cpol; | ||
210 | spi-cpha; | ||
211 | |||
212 | partition@0 { | ||
213 | label = "boot"; | ||
214 | reg = <0x00000000 0x000a0000>; | ||
215 | }; | ||
216 | |||
217 | partition@a0000 { | ||
218 | label = "env"; | ||
219 | reg = <0x000a0000 0x00060000>; | ||
220 | }; | ||
221 | |||
222 | partition@100000 { | ||
223 | label = "system"; | ||
224 | reg = <0x00100000 0x00600000>; | ||
225 | }; | ||
226 | |||
227 | partition@700000 { | ||
228 | label = "rootfs"; | ||
229 | reg = <0x00700000 0x01900000>; | ||
230 | }; | ||
231 | }; | ||
232 | }; | ||
diff --git a/arch/arm64/boot/dts/broadcom/ns2.dtsi b/arch/arm64/boot/dts/broadcom/ns2.dtsi index 773ed593da4d..4fcdeca3a983 100644 --- a/arch/arm64/boot/dts/broadcom/ns2.dtsi +++ b/arch/arm64/boot/dts/broadcom/ns2.dtsi | |||
@@ -133,6 +133,9 @@ | |||
133 | 133 | ||
134 | status = "disabled"; | 134 | status = "disabled"; |
135 | 135 | ||
136 | phys = <&pci_phy0>; | ||
137 | phy-names = "pcie-phy"; | ||
138 | |||
136 | msi-parent = <&msi0>; | 139 | msi-parent = <&msi0>; |
137 | msi0: msi@20020000 { | 140 | msi0: msi@20020000 { |
138 | compatible = "brcm,iproc-msi"; | 141 | compatible = "brcm,iproc-msi"; |
@@ -171,6 +174,9 @@ | |||
171 | 174 | ||
172 | status = "disabled"; | 175 | status = "disabled"; |
173 | 176 | ||
177 | phys = <&pci_phy1>; | ||
178 | phy-names = "pcie-phy"; | ||
179 | |||
174 | msi-parent = <&msi4>; | 180 | msi-parent = <&msi4>; |
175 | msi4: msi@50020000 { | 181 | msi4: msi@50020000 { |
176 | compatible = "brcm,iproc-msi"; | 182 | compatible = "brcm,iproc-msi"; |
@@ -203,6 +209,42 @@ | |||
203 | status = "disabled"; | 209 | status = "disabled"; |
204 | }; | 210 | }; |
205 | 211 | ||
212 | pdc0: iproc-pdc0@612c0000 { | ||
213 | compatible = "brcm,iproc-pdc-mbox"; | ||
214 | reg = <0x612c0000 0x445>; /* PDC FS0 regs */ | ||
215 | interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; | ||
216 | #mbox-cells = <1>; | ||
217 | brcm,rx-status-len = <32>; | ||
218 | brcm,use-bcm-hdr; | ||
219 | }; | ||
220 | |||
221 | pdc1: iproc-pdc1@612e0000 { | ||
222 | compatible = "brcm,iproc-pdc-mbox"; | ||
223 | reg = <0x612e0000 0x445>; /* PDC FS1 regs */ | ||
224 | interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; | ||
225 | #mbox-cells = <1>; | ||
226 | brcm,rx-status-len = <32>; | ||
227 | brcm,use-bcm-hdr; | ||
228 | }; | ||
229 | |||
230 | pdc2: iproc-pdc2@61300000 { | ||
231 | compatible = "brcm,iproc-pdc-mbox"; | ||
232 | reg = <0x61300000 0x445>; /* PDC FS2 regs */ | ||
233 | interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>; | ||
234 | #mbox-cells = <1>; | ||
235 | brcm,rx-status-len = <32>; | ||
236 | brcm,use-bcm-hdr; | ||
237 | }; | ||
238 | |||
239 | pdc3: iproc-pdc3@61320000 { | ||
240 | compatible = "brcm,iproc-pdc-mbox"; | ||
241 | reg = <0x61320000 0x445>; /* PDC FS3 regs */ | ||
242 | interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | ||
243 | #mbox-cells = <1>; | ||
244 | brcm,rx-status-len = <32>; | ||
245 | brcm,use-bcm-hdr; | ||
246 | }; | ||
247 | |||
206 | dma0: dma@61360000 { | 248 | dma0: dma@61360000 { |
207 | compatible = "arm,pl330", "arm,primecell"; | 249 | compatible = "arm,pl330", "arm,primecell"; |
208 | reg = <0x61360000 0x1000>; | 250 | reg = <0x61360000 0x1000>; |
@@ -260,7 +302,7 @@ | |||
260 | <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>, | 302 | <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>, |
261 | <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>, | 303 | <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>, |
262 | <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; | 304 | <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; |
263 | mmu-masters; | 305 | #iommu-cells = <1>; |
264 | }; | 306 | }; |
265 | 307 | ||
266 | pinctrl: pinctrl@6501d130 { | 308 | pinctrl: pinctrl@6501d130 { |
@@ -577,5 +619,23 @@ | |||
577 | 619 | ||
578 | brcm,nand-has-wp; | 620 | brcm,nand-has-wp; |
579 | }; | 621 | }; |
622 | |||
623 | qspi: spi@66470200 { | ||
624 | compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi"; | ||
625 | reg = <0x66470200 0x184>, | ||
626 | <0x66470000 0x124>, | ||
627 | <0x67017408 0x004>, | ||
628 | <0x664703a0 0x01c>; | ||
629 | reg-names = "mspi", "bspi", "intr_regs", | ||
630 | "intr_status_reg"; | ||
631 | interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>; | ||
632 | interrupt-names = "spi_l1_intr"; | ||
633 | clocks = <&iprocmed>; | ||
634 | clock-names = "iprocmed"; | ||
635 | num-cs = <2>; | ||
636 | #address-cells = <1>; | ||
637 | #size-cells = <0>; | ||
638 | }; | ||
639 | |||
580 | }; | 640 | }; |
581 | }; | 641 | }; |
diff --git a/arch/arm64/boot/dts/exynos/Makefile b/arch/arm64/boot/dts/exynos/Makefile index 50c9b9383cfa..7ddea53769a7 100644 --- a/arch/arm64/boot/dts/exynos/Makefile +++ b/arch/arm64/boot/dts/exynos/Makefile | |||
@@ -1,4 +1,7 @@ | |||
1 | dtb-$(CONFIG_ARCH_EXYNOS) += exynos7-espresso.dtb | 1 | dtb-$(CONFIG_ARCH_EXYNOS) += \ |
2 | exynos5433-tm2.dtb \ | ||
3 | exynos5433-tm2e.dtb \ | ||
4 | exynos7-espresso.dtb | ||
2 | 5 | ||
3 | always := $(dtb-y) | 6 | always := $(dtb-y) |
4 | subdir-y := $(dts-dirs) | 7 | subdir-y := $(dts-dirs) |
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi new file mode 100644 index 000000000000..ad71247b074f --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433-pinctrl.dtsi | |||
@@ -0,0 +1,804 @@ | |||
1 | /* | ||
2 | * Samsung's Exynos5433 SoC pin-mux and pin-config device tree source | ||
3 | * | ||
4 | * Copyright (c) 2016 Samsung Electronics Co., Ltd. | ||
5 | * Chanwoo Choi <cw00.choi@samsung.com> | ||
6 | * | ||
7 | * Samsung's Exynos5433 SoC pin-mux and pin-config options are listed as device | ||
8 | * tree nodes are listed in this file. | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #define PIN_PULL_NONE 0 | ||
16 | #define PIN_PULL_DOWN 1 | ||
17 | #define PIN_PULL_UP 3 | ||
18 | |||
19 | #define PIN_DRV_LV1 0 | ||
20 | #define PIN_DRV_LV2 2 | ||
21 | #define PIN_DRV_LV3 1 | ||
22 | #define PIN_DRV_LV4 3 | ||
23 | |||
24 | #define PIN_IN 0 | ||
25 | #define PIN_OUT 1 | ||
26 | #define PIN_FUNC1 2 | ||
27 | |||
28 | #define PIN(_func, _pin, _pull, _drv) \ | ||
29 | _pin { \ | ||
30 | samsung,pins = #_pin; \ | ||
31 | samsung,pin-function = <PIN_ ##_func>; \ | ||
32 | samsung,pin-pud = <PIN_PULL_ ##_pull>; \ | ||
33 | samsung,pin-drv = <PIN_DRV_ ##_drv>; \ | ||
34 | } | ||
35 | |||
36 | &pinctrl_alive { | ||
37 | gpa0: gpa0 { | ||
38 | gpio-controller; | ||
39 | #gpio-cells = <2>; | ||
40 | |||
41 | interrupt-controller; | ||
42 | interrupt-parent = <&gic>; | ||
43 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, | ||
44 | <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, | ||
45 | <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, | ||
46 | <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, | ||
47 | <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, | ||
48 | <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, | ||
49 | <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, | ||
50 | <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; | ||
51 | #interrupt-cells = <2>; | ||
52 | }; | ||
53 | |||
54 | gpa1: gpa1 { | ||
55 | gpio-controller; | ||
56 | #gpio-cells = <2>; | ||
57 | |||
58 | interrupt-controller; | ||
59 | interrupt-parent = <&gic>; | ||
60 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, | ||
61 | <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, | ||
62 | <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, | ||
63 | <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, | ||
64 | <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
65 | <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, | ||
66 | <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, | ||
67 | <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
68 | #interrupt-cells = <2>; | ||
69 | }; | ||
70 | |||
71 | gpa2: gpa2 { | ||
72 | gpio-controller; | ||
73 | #gpio-cells = <2>; | ||
74 | |||
75 | interrupt-controller; | ||
76 | #interrupt-cells = <2>; | ||
77 | }; | ||
78 | |||
79 | gpa3: gpa3 { | ||
80 | gpio-controller; | ||
81 | #gpio-cells = <2>; | ||
82 | |||
83 | interrupt-controller; | ||
84 | #interrupt-cells = <2>; | ||
85 | }; | ||
86 | |||
87 | gpf1: gpf1 { | ||
88 | gpio-controller; | ||
89 | #gpio-cells = <2>; | ||
90 | |||
91 | interrupt-controller; | ||
92 | #interrupt-cells = <2>; | ||
93 | }; | ||
94 | |||
95 | gpf2: gpf2 { | ||
96 | gpio-controller; | ||
97 | #gpio-cells = <2>; | ||
98 | |||
99 | interrupt-controller; | ||
100 | #interrupt-cells = <2>; | ||
101 | }; | ||
102 | |||
103 | gpf3: gpf3 { | ||
104 | gpio-controller; | ||
105 | #gpio-cells = <2>; | ||
106 | |||
107 | interrupt-controller; | ||
108 | #interrupt-cells = <2>; | ||
109 | }; | ||
110 | |||
111 | gpf4: gpf4 { | ||
112 | gpio-controller; | ||
113 | #gpio-cells = <2>; | ||
114 | |||
115 | interrupt-controller; | ||
116 | #interrupt-cells = <2>; | ||
117 | }; | ||
118 | |||
119 | gpf5: gpf5 { | ||
120 | gpio-controller; | ||
121 | #gpio-cells = <2>; | ||
122 | |||
123 | interrupt-controller; | ||
124 | #interrupt-cells = <2>; | ||
125 | }; | ||
126 | }; | ||
127 | |||
128 | &pinctrl_aud { | ||
129 | gpz0: gpz0 { | ||
130 | gpio-controller; | ||
131 | #gpio-cells = <2>; | ||
132 | |||
133 | interrupt-controller; | ||
134 | #interrupt-cells = <2>; | ||
135 | }; | ||
136 | |||
137 | gpz1: gpz1 { | ||
138 | gpio-controller; | ||
139 | #gpio-cells = <2>; | ||
140 | |||
141 | interrupt-controller; | ||
142 | #interrupt-cells = <2>; | ||
143 | }; | ||
144 | |||
145 | i2s0_bus: i2s0-bus { | ||
146 | samsung,pins = "gpz0-0", "gpz0-1", "gpz0-2", "gpz0-3", | ||
147 | "gpz0-4", "gpz0-5", "gpz0-6"; | ||
148 | samsung,pin-function = <2>; | ||
149 | samsung,pin-pud = <1>; | ||
150 | samsung,pin-drv = <0>; | ||
151 | }; | ||
152 | |||
153 | pcm0_bus: pcm0-bus { | ||
154 | samsung,pins = "gpz1-0", "gpz1-1", "gpz1-2", "gpz1-3"; | ||
155 | samsung,pin-function = <3>; | ||
156 | samsung,pin-pud = <1>; | ||
157 | samsung,pin-drv = <0>; | ||
158 | }; | ||
159 | |||
160 | uart_aud_bus: uart-aud-bus { | ||
161 | samsung,pins = "gpz1-3", "gpz1-2", "gpz1-1", "gpz1-0"; | ||
162 | samsung,pin-function = <2>; | ||
163 | samsung,pin-pud = <0>; | ||
164 | samsung,pin-drv = <0>; | ||
165 | }; | ||
166 | }; | ||
167 | |||
168 | &pinctrl_cpif { | ||
169 | gpv6: gpv6 { | ||
170 | gpio-controller; | ||
171 | #gpio-cells = <2>; | ||
172 | |||
173 | interrupt-controller; | ||
174 | #interrupt-cells = <2>; | ||
175 | }; | ||
176 | }; | ||
177 | |||
178 | &pinctrl_ese { | ||
179 | gpj2: gpj2 { | ||
180 | gpio-controller; | ||
181 | #gpio-cells = <2>; | ||
182 | |||
183 | interrupt-controller; | ||
184 | #interrupt-cells = <2>; | ||
185 | }; | ||
186 | }; | ||
187 | |||
188 | &pinctrl_finger { | ||
189 | gpd5: gpd5 { | ||
190 | gpio-controller; | ||
191 | #gpio-cells = <2>; | ||
192 | |||
193 | interrupt-controller; | ||
194 | #interrupt-cells = <2>; | ||
195 | }; | ||
196 | |||
197 | spi2_bus: spi2-bus { | ||
198 | samsung,pins = "gpd5-0", "gpd5-2", "gpd5-3"; | ||
199 | samsung,pin-function = <2>; | ||
200 | samsung,pin-pud = <3>; | ||
201 | samsung,pin-drv = <0>; | ||
202 | }; | ||
203 | |||
204 | hs_i2c6_bus: hs-i2c6-bus { | ||
205 | samsung,pins = "gpd5-3", "gpd5-2"; | ||
206 | samsung,pin-function = <4>; | ||
207 | samsung,pin-pud = <3>; | ||
208 | samsung,pin-drv = <0>; | ||
209 | }; | ||
210 | }; | ||
211 | |||
212 | &pinctrl_fsys { | ||
213 | gph1: gph1 { | ||
214 | gpio-controller; | ||
215 | #gpio-cells = <2>; | ||
216 | |||
217 | interrupt-controller; | ||
218 | #interrupt-cells = <2>; | ||
219 | }; | ||
220 | |||
221 | gpr4: gpr4 { | ||
222 | gpio-controller; | ||
223 | #gpio-cells = <2>; | ||
224 | |||
225 | interrupt-controller; | ||
226 | #interrupt-cells = <2>; | ||
227 | }; | ||
228 | |||
229 | gpr0: gpr0 { | ||
230 | gpio-controller; | ||
231 | #gpio-cells = <2>; | ||
232 | |||
233 | interrupt-controller; | ||
234 | #interrupt-cells = <2>; | ||
235 | }; | ||
236 | |||
237 | gpr1: gpr1 { | ||
238 | gpio-controller; | ||
239 | #gpio-cells = <2>; | ||
240 | |||
241 | interrupt-controller; | ||
242 | #interrupt-cells = <2>; | ||
243 | }; | ||
244 | |||
245 | gpr2: gpr2 { | ||
246 | gpio-controller; | ||
247 | #gpio-cells = <2>; | ||
248 | |||
249 | interrupt-controller; | ||
250 | #interrupt-cells = <2>; | ||
251 | }; | ||
252 | |||
253 | gpr3: gpr3 { | ||
254 | gpio-controller; | ||
255 | #gpio-cells = <2>; | ||
256 | |||
257 | interrupt-controller; | ||
258 | #interrupt-cells = <2>; | ||
259 | }; | ||
260 | |||
261 | sd0_clk: sd0-clk { | ||
262 | samsung,pins = "gpr0-0"; | ||
263 | samsung,pin-function = <2>; | ||
264 | samsung,pin-pud = <0>; | ||
265 | samsung,pin-drv = <3>; | ||
266 | }; | ||
267 | |||
268 | sd0_cmd: sd0-cmd { | ||
269 | samsung,pins = "gpr0-1"; | ||
270 | samsung,pin-function = <2>; | ||
271 | samsung,pin-pud = <0>; | ||
272 | samsung,pin-drv = <3>; | ||
273 | }; | ||
274 | |||
275 | sd0_rdqs: sd0-rdqs { | ||
276 | samsung,pins = "gpr0-2"; | ||
277 | samsung,pin-function = <2>; | ||
278 | samsung,pin-pud = <1>; | ||
279 | samsung,pin-drv = <3>; | ||
280 | }; | ||
281 | |||
282 | sd0_qrdy: sd0-qrdy { | ||
283 | samsung,pins = "gpr0-3"; | ||
284 | samsung,pin-function = <2>; | ||
285 | samsung,pin-pud = <1>; | ||
286 | samsung,pin-drv = <3>; | ||
287 | }; | ||
288 | |||
289 | sd0_bus1: sd0-bus-width1 { | ||
290 | samsung,pins = "gpr1-0"; | ||
291 | samsung,pin-function = <2>; | ||
292 | samsung,pin-pud = <3>; | ||
293 | samsung,pin-drv = <3>; | ||
294 | }; | ||
295 | |||
296 | sd0_bus4: sd0-bus-width4 { | ||
297 | samsung,pins = "gpr1-1", "gpr1-2", "gpr1-3"; | ||
298 | samsung,pin-function = <2>; | ||
299 | samsung,pin-pud = <3>; | ||
300 | samsung,pin-drv = <3>; | ||
301 | }; | ||
302 | |||
303 | sd0_bus8: sd0-bus-width8 { | ||
304 | samsung,pins = "gpr1-4", "gpr1-5", "gpr1-6", "gpr1-7"; | ||
305 | samsung,pin-function = <2>; | ||
306 | samsung,pin-pud = <3>; | ||
307 | samsung,pin-drv = <3>; | ||
308 | }; | ||
309 | |||
310 | sd1_clk: sd1-clk { | ||
311 | samsung,pins = "gpr2-0"; | ||
312 | samsung,pin-function = <2>; | ||
313 | samsung,pin-pud = <0>; | ||
314 | samsung,pin-drv = <3>; | ||
315 | }; | ||
316 | |||
317 | sd1_cmd: sd1-cmd { | ||
318 | samsung,pins = "gpr2-1"; | ||
319 | samsung,pin-function = <2>; | ||
320 | samsung,pin-pud = <0>; | ||
321 | samsung,pin-drv = <3>; | ||
322 | }; | ||
323 | |||
324 | sd1_bus1: sd1-bus-width1 { | ||
325 | samsung,pins = "gpr3-0"; | ||
326 | samsung,pin-function = <2>; | ||
327 | samsung,pin-pud = <3>; | ||
328 | samsung,pin-drv = <3>; | ||
329 | }; | ||
330 | |||
331 | sd1_bus4: sd1-bus-width4 { | ||
332 | samsung,pins = "gpr3-1", "gpr3-2", "gpr3-3"; | ||
333 | samsung,pin-function = <2>; | ||
334 | samsung,pin-pud = <3>; | ||
335 | samsung,pin-drv = <3>; | ||
336 | }; | ||
337 | |||
338 | sd1_bus8: sd1-bus-width8 { | ||
339 | samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7"; | ||
340 | samsung,pin-function = <2>; | ||
341 | samsung,pin-pud = <3>; | ||
342 | samsung,pin-drv = <3>; | ||
343 | }; | ||
344 | |||
345 | pcie_bus: pcie_bus { | ||
346 | samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7"; | ||
347 | samsung,pin-function = <3>; | ||
348 | samsung,pin-pud = <3>; | ||
349 | }; | ||
350 | |||
351 | sd2_clk: sd2-clk { | ||
352 | samsung,pins = "gpr4-0"; | ||
353 | samsung,pin-function = <2>; | ||
354 | samsung,pin-pud = <0>; | ||
355 | samsung,pin-drv = <3>; | ||
356 | }; | ||
357 | |||
358 | sd2_cmd: sd2-cmd { | ||
359 | samsung,pins = "gpr4-1"; | ||
360 | samsung,pin-function = <2>; | ||
361 | samsung,pin-pud = <0>; | ||
362 | samsung,pin-drv = <3>; | ||
363 | }; | ||
364 | |||
365 | sd2_cd: sd2-cd { | ||
366 | samsung,pins = "gpr4-2"; | ||
367 | samsung,pin-function = <2>; | ||
368 | samsung,pin-pud = <3>; | ||
369 | samsung,pin-drv = <3>; | ||
370 | }; | ||
371 | |||
372 | sd2_bus1: sd2-bus-width1 { | ||
373 | samsung,pins = "gpr4-3"; | ||
374 | samsung,pin-function = <2>; | ||
375 | samsung,pin-pud = <3>; | ||
376 | samsung,pin-drv = <3>; | ||
377 | }; | ||
378 | |||
379 | sd2_bus4: sd2-bus-width4 { | ||
380 | samsung,pins = "gpr4-4", "gpr4-5", "gpr4-6"; | ||
381 | samsung,pin-function = <2>; | ||
382 | samsung,pin-pud = <3>; | ||
383 | samsung,pin-drv = <3>; | ||
384 | }; | ||
385 | |||
386 | sd2_clk_output: sd2-clk-output { | ||
387 | samsung,pins = "gpr4-0"; | ||
388 | samsung,pin-function = <1>; | ||
389 | samsung,pin-pud = <0>; | ||
390 | samsung,pin-drv = <2>; | ||
391 | }; | ||
392 | |||
393 | sd2_cmd_output: sd2-cmd-output { | ||
394 | samsung,pins = "gpr4-1"; | ||
395 | samsung,pin-function = <1>; | ||
396 | samsung,pin-pud = <0>; | ||
397 | samsung,pin-drv = <2>; | ||
398 | }; | ||
399 | }; | ||
400 | |||
401 | &pinctrl_imem { | ||
402 | gpf0: gpf0 { | ||
403 | gpio-controller; | ||
404 | #gpio-cells = <2>; | ||
405 | |||
406 | interrupt-controller; | ||
407 | #interrupt-cells = <2>; | ||
408 | }; | ||
409 | }; | ||
410 | |||
411 | &pinctrl_nfc { | ||
412 | gpj0: gpj0 { | ||
413 | gpio-controller; | ||
414 | #gpio-cells = <2>; | ||
415 | |||
416 | interrupt-controller; | ||
417 | #interrupt-cells = <2>; | ||
418 | }; | ||
419 | |||
420 | hs_i2c4_bus: hs-i2c4-bus { | ||
421 | samsung,pins = "gpj0-1", "gpj0-0"; | ||
422 | samsung,pin-function = <4>; | ||
423 | samsung,pin-pud = <3>; | ||
424 | samsung,pin-drv = <0>; | ||
425 | }; | ||
426 | }; | ||
427 | |||
428 | &pinctrl_peric { | ||
429 | gpv7: gpv7 { | ||
430 | gpio-controller; | ||
431 | #gpio-cells = <2>; | ||
432 | |||
433 | interrupt-controller; | ||
434 | #interrupt-cells = <2>; | ||
435 | }; | ||
436 | |||
437 | gpb0: gpb0 { | ||
438 | gpio-controller; | ||
439 | #gpio-cells = <2>; | ||
440 | |||
441 | interrupt-controller; | ||
442 | #interrupt-cells = <2>; | ||
443 | }; | ||
444 | |||
445 | gpc0: gpc0 { | ||
446 | gpio-controller; | ||
447 | #gpio-cells = <2>; | ||
448 | |||
449 | interrupt-controller; | ||
450 | #interrupt-cells = <2>; | ||
451 | }; | ||
452 | |||
453 | gpc1: gpc1 { | ||
454 | gpio-controller; | ||
455 | #gpio-cells = <2>; | ||
456 | |||
457 | interrupt-controller; | ||
458 | #interrupt-cells = <2>; | ||
459 | }; | ||
460 | |||
461 | gpc2: gpc2 { | ||
462 | gpio-controller; | ||
463 | #gpio-cells = <2>; | ||
464 | |||
465 | interrupt-controller; | ||
466 | #interrupt-cells = <2>; | ||
467 | }; | ||
468 | |||
469 | gpc3: gpc3 { | ||
470 | gpio-controller; | ||
471 | #gpio-cells = <2>; | ||
472 | |||
473 | interrupt-controller; | ||
474 | #interrupt-cells = <2>; | ||
475 | }; | ||
476 | |||
477 | gpg0: gpg0 { | ||
478 | gpio-controller; | ||
479 | #gpio-cells = <2>; | ||
480 | |||
481 | interrupt-controller; | ||
482 | #interrupt-cells = <2>; | ||
483 | }; | ||
484 | |||
485 | gpd0: gpd0 { | ||
486 | gpio-controller; | ||
487 | #gpio-cells = <2>; | ||
488 | |||
489 | interrupt-controller; | ||
490 | #interrupt-cells = <2>; | ||
491 | }; | ||
492 | |||
493 | gpd1: gpd1 { | ||
494 | gpio-controller; | ||
495 | #gpio-cells = <2>; | ||
496 | |||
497 | interrupt-controller; | ||
498 | #interrupt-cells = <2>; | ||
499 | }; | ||
500 | |||
501 | gpd2: gpd2 { | ||
502 | gpio-controller; | ||
503 | #gpio-cells = <2>; | ||
504 | |||
505 | interrupt-controller; | ||
506 | #interrupt-cells = <2>; | ||
507 | }; | ||
508 | |||
509 | gpd4: gpd4 { | ||
510 | gpio-controller; | ||
511 | #gpio-cells = <2>; | ||
512 | |||
513 | interrupt-controller; | ||
514 | #interrupt-cells = <2>; | ||
515 | }; | ||
516 | |||
517 | gpd8: gpd8 { | ||
518 | gpio-controller; | ||
519 | #gpio-cells = <2>; | ||
520 | |||
521 | interrupt-controller; | ||
522 | #interrupt-cells = <2>; | ||
523 | }; | ||
524 | |||
525 | gpd6: gpd6 { | ||
526 | gpio-controller; | ||
527 | #gpio-cells = <2>; | ||
528 | |||
529 | interrupt-controller; | ||
530 | #interrupt-cells = <2>; | ||
531 | }; | ||
532 | |||
533 | gpd7: gpd7 { | ||
534 | gpio-controller; | ||
535 | #gpio-cells = <2>; | ||
536 | |||
537 | interrupt-controller; | ||
538 | #interrupt-cells = <2>; | ||
539 | }; | ||
540 | |||
541 | gpg1: gpg1 { | ||
542 | gpio-controller; | ||
543 | #gpio-cells = <2>; | ||
544 | |||
545 | interrupt-controller; | ||
546 | #interrupt-cells = <2>; | ||
547 | }; | ||
548 | |||
549 | gpg2: gpg2 { | ||
550 | gpio-controller; | ||
551 | #gpio-cells = <2>; | ||
552 | |||
553 | interrupt-controller; | ||
554 | #interrupt-cells = <2>; | ||
555 | }; | ||
556 | |||
557 | gpg3: gpg3 { | ||
558 | gpio-controller; | ||
559 | #gpio-cells = <2>; | ||
560 | |||
561 | interrupt-controller; | ||
562 | #interrupt-cells = <2>; | ||
563 | }; | ||
564 | |||
565 | hs_i2c8_bus: hs-i2c8-bus { | ||
566 | samsung,pins = "gpb0-1", "gpb0-0"; | ||
567 | samsung,pin-function = <4>; | ||
568 | samsung,pin-pud = <3>; | ||
569 | samsung,pin-drv = <0>; | ||
570 | }; | ||
571 | |||
572 | hs_i2c9_bus: hs-i2c9-bus { | ||
573 | samsung,pins = "gpb0-3", "gpb0-2"; | ||
574 | samsung,pin-function = <4>; | ||
575 | samsung,pin-pud = <3>; | ||
576 | samsung,pin-drv = <0>; | ||
577 | }; | ||
578 | |||
579 | i2s1_bus: i2s1-bus { | ||
580 | samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2", | ||
581 | "gpd4-3", "gpd4-4"; | ||
582 | samsung,pin-function = <2>; | ||
583 | samsung,pin-pud = <1>; | ||
584 | samsung,pin-drv = <0>; | ||
585 | }; | ||
586 | |||
587 | pcm1_bus: pcm1-bus { | ||
588 | samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2", | ||
589 | "gpd4-3", "gpd4-4"; | ||
590 | samsung,pin-function = <3>; | ||
591 | samsung,pin-pud = <1>; | ||
592 | samsung,pin-drv = <0>; | ||
593 | }; | ||
594 | |||
595 | spdif_bus: spdif-bus { | ||
596 | samsung,pins = "gpd4-3", "gpd4-4"; | ||
597 | samsung,pin-function = <4>; | ||
598 | samsung,pin-pud = <1>; | ||
599 | samsung,pin-drv = <0>; | ||
600 | }; | ||
601 | |||
602 | fimc_is_spi_pin0: fimc-is-spi-pin0 { | ||
603 | samsung,pins = "gpc3-3", "gpc3-2", "gpc3-1", "gpc3-0"; | ||
604 | samsung,pin-function = <2>; | ||
605 | samsung,pin-pud = <0>; | ||
606 | samsung,pin-drv = <0>; | ||
607 | }; | ||
608 | |||
609 | fimc_is_spi_pin1: fimc-is-spi-pin1 { | ||
610 | samsung,pins = "gpc3-7", "gpc3-6", "gpc3-5", "gpc3-4"; | ||
611 | samsung,pin-function = <2>; | ||
612 | samsung,pin-pud = <0>; | ||
613 | samsung,pin-drv = <0>; | ||
614 | }; | ||
615 | |||
616 | uart0_bus: uart0-bus { | ||
617 | samsung,pins = "gpd0-3", "gpd0-2", "gpd0-1", "gpd0-0"; | ||
618 | samsung,pin-function = <2>; | ||
619 | samsung,pin-pud = <0>; | ||
620 | }; | ||
621 | |||
622 | hs_i2c2_bus: hs-i2c2-bus { | ||
623 | samsung,pins = "gpd0-3", "gpd0-2"; | ||
624 | samsung,pin-function = <3>; | ||
625 | samsung,pin-pud = <3>; | ||
626 | samsung,pin-drv = <0>; | ||
627 | }; | ||
628 | |||
629 | uart2_bus: uart2-bus { | ||
630 | samsung,pins = "gpd1-5", "gpd1-4"; | ||
631 | samsung,pin-function = <2>; | ||
632 | samsung,pin-pud = <0>; | ||
633 | }; | ||
634 | |||
635 | uart1_bus: uart1-bus { | ||
636 | samsung,pins = "gpd1-3", "gpd1-2", "gpd1-1", "gpd1-0"; | ||
637 | samsung,pin-function = <2>; | ||
638 | samsung,pin-pud = <0>; | ||
639 | }; | ||
640 | |||
641 | hs_i2c3_bus: hs-i2c3-bus { | ||
642 | samsung,pins = "gpd1-3", "gpd1-2"; | ||
643 | samsung,pin-function = <3>; | ||
644 | samsung,pin-pud = <3>; | ||
645 | samsung,pin-drv = <0>; | ||
646 | }; | ||
647 | |||
648 | hs_i2c0_bus: hs-i2c0-bus { | ||
649 | samsung,pins = "gpd2-1", "gpd2-0"; | ||
650 | samsung,pin-function = <2>; | ||
651 | samsung,pin-pud = <3>; | ||
652 | samsung,pin-drv = <0>; | ||
653 | }; | ||
654 | |||
655 | hs_i2c1_bus: hs-i2c1-bus { | ||
656 | samsung,pins = "gpd2-3", "gpd2-2"; | ||
657 | samsung,pin-function = <2>; | ||
658 | samsung,pin-pud = <3>; | ||
659 | samsung,pin-drv = <0>; | ||
660 | }; | ||
661 | |||
662 | pwm0_out: pwm0-out { | ||
663 | samsung,pins = "gpd2-4"; | ||
664 | samsung,pin-function = <2>; | ||
665 | samsung,pin-pud = <0>; | ||
666 | samsung,pin-drv = <0>; | ||
667 | }; | ||
668 | |||
669 | pwm1_out: pwm1-out { | ||
670 | samsung,pins = "gpd2-5"; | ||
671 | samsung,pin-function = <2>; | ||
672 | samsung,pin-pud = <0>; | ||
673 | samsung,pin-drv = <0>; | ||
674 | }; | ||
675 | |||
676 | pwm2_out: pwm2-out { | ||
677 | samsung,pins = "gpd2-6"; | ||
678 | samsung,pin-function = <2>; | ||
679 | samsung,pin-pud = <0>; | ||
680 | samsung,pin-drv = <0>; | ||
681 | }; | ||
682 | |||
683 | pwm3_out: pwm3-out { | ||
684 | samsung,pins = "gpd2-7"; | ||
685 | samsung,pin-function = <2>; | ||
686 | samsung,pin-pud = <0>; | ||
687 | samsung,pin-drv = <0>; | ||
688 | }; | ||
689 | |||
690 | spi1_bus: spi1-bus { | ||
691 | samsung,pins = "gpd6-2", "gpd6-4", "gpd6-5"; | ||
692 | samsung,pin-function = <2>; | ||
693 | samsung,pin-pud = <3>; | ||
694 | samsung,pin-drv = <0>; | ||
695 | }; | ||
696 | |||
697 | hs_i2c7_bus: hs-i2c7-bus { | ||
698 | samsung,pins = "gpd2-7", "gpd2-6"; | ||
699 | samsung,pin-function = <4>; | ||
700 | samsung,pin-pud = <3>; | ||
701 | samsung,pin-drv = <0>; | ||
702 | }; | ||
703 | |||
704 | spi0_bus: spi0-bus { | ||
705 | samsung,pins = "gpd8-0", "gpd6-0", "gpd6-1"; | ||
706 | samsung,pin-function = <2>; | ||
707 | samsung,pin-pud = <3>; | ||
708 | samsung,pin-drv = <0>; | ||
709 | }; | ||
710 | |||
711 | hs_i2c10_bus: hs-i2c10-bus { | ||
712 | samsung,pins = "gpg3-1", "gpg3-0"; | ||
713 | samsung,pin-function = <4>; | ||
714 | samsung,pin-pud = <3>; | ||
715 | samsung,pin-drv = <0>; | ||
716 | }; | ||
717 | |||
718 | hs_i2c11_bus: hs-i2c11-bus { | ||
719 | samsung,pins = "gpg3-3", "gpg3-2"; | ||
720 | samsung,pin-function = <4>; | ||
721 | samsung,pin-pud = <3>; | ||
722 | samsung,pin-drv = <0>; | ||
723 | }; | ||
724 | |||
725 | spi3_bus: spi3-bus { | ||
726 | samsung,pins = "gpg3-4", "gpg3-6", "gpg3-7"; | ||
727 | samsung,pin-function = <3>; | ||
728 | samsung,pin-pud = <3>; | ||
729 | samsung,pin-drv = <0>; | ||
730 | }; | ||
731 | |||
732 | spi4_bus: spi4-bus { | ||
733 | samsung,pins = "gpv7-1", "gpv7-3", "gpv7-4"; | ||
734 | samsung,pin-function = <3>; | ||
735 | samsung,pin-pud = <3>; | ||
736 | samsung,pin-drv = <0>; | ||
737 | }; | ||
738 | |||
739 | fimc_is_uart: fimc-is-uart { | ||
740 | samsung,pins = "gpc1-1", "gpc0-7"; | ||
741 | samsung,pin-function = <3>; | ||
742 | samsung,pin-pud = <0>; | ||
743 | samsung,pin-drv = <0>; | ||
744 | }; | ||
745 | |||
746 | fimc_is_ch0_i2c: fimc-is-ch0_i2c { | ||
747 | samsung,pins = "gpc2-1", "gpc2-0"; | ||
748 | samsung,pin-function = <2>; | ||
749 | samsung,pin-pud = <0>; | ||
750 | samsung,pin-drv = <0>; | ||
751 | }; | ||
752 | |||
753 | fimc_is_ch0_mclk: fimc-is-ch0_mclk { | ||
754 | samsung,pins = "gpd7-0"; | ||
755 | samsung,pin-function = <2>; | ||
756 | samsung,pin-pud = <0>; | ||
757 | samsung,pin-drv = <0>; | ||
758 | }; | ||
759 | |||
760 | fimc_is_ch1_i2c: fimc-is-ch1-i2c { | ||
761 | samsung,pins = "gpc2-3", "gpc2-2"; | ||
762 | samsung,pin-function = <2>; | ||
763 | samsung,pin-pud = <0>; | ||
764 | samsung,pin-drv = <0>; | ||
765 | }; | ||
766 | |||
767 | fimc_is_ch1_mclk: fimc-is-ch1-mclk { | ||
768 | samsung,pins = "gpd7-1"; | ||
769 | samsung,pin-function = <2>; | ||
770 | samsung,pin-pud = <0>; | ||
771 | samsung,pin-drv = <0>; | ||
772 | }; | ||
773 | |||
774 | fimc_is_ch2_i2c: fimc-is-ch2-i2c { | ||
775 | samsung,pins = "gpc2-5", "gpc2-4"; | ||
776 | samsung,pin-function = <2>; | ||
777 | samsung,pin-pud = <0>; | ||
778 | samsung,pin-drv = <0>; | ||
779 | }; | ||
780 | |||
781 | fimc_is_ch2_mclk: fimc-is-ch2-mclk { | ||
782 | samsung,pins = "gpd7-2"; | ||
783 | samsung,pin-function = <2>; | ||
784 | samsung,pin-pud = <0>; | ||
785 | samsung,pin-drv = <0>; | ||
786 | }; | ||
787 | }; | ||
788 | |||
789 | &pinctrl_touch { | ||
790 | gpj1: gpj1 { | ||
791 | gpio-controller; | ||
792 | #gpio-cells = <2>; | ||
793 | |||
794 | interrupt-controller; | ||
795 | #interrupt-cells = <2>; | ||
796 | }; | ||
797 | |||
798 | hs_i2c5_bus: hs-i2c5-bus { | ||
799 | samsung,pins = "gpj1-1", "gpj1-0"; | ||
800 | samsung,pin-function = <4>; | ||
801 | samsung,pin-pud = <3>; | ||
802 | samsung,pin-drv = <0>; | ||
803 | }; | ||
804 | }; | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts new file mode 100644 index 000000000000..f21bdc2ff834 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts | |||
@@ -0,0 +1,1049 @@ | |||
1 | /* | ||
2 | * SAMSUNG Exynos5433 TM2 board device tree source | ||
3 | * | ||
4 | * Copyright (c) 2016 Samsung Electronics Co., Ltd. | ||
5 | * | ||
6 | * Device tree source file for Samsung's TM2 board which is based on | ||
7 | * Samsung Exynos5433 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 "exynos5433.dtsi" | ||
16 | #include <dt-bindings/clock/samsung,s2mps11.h> | ||
17 | #include <dt-bindings/gpio/gpio.h> | ||
18 | #include <dt-bindings/input/input.h> | ||
19 | #include <dt-bindings/interrupt-controller/irq.h> | ||
20 | |||
21 | / { | ||
22 | model = "Samsung TM2 board"; | ||
23 | compatible = "samsung,tm2", "samsung,exynos5433"; | ||
24 | |||
25 | aliases { | ||
26 | gsc0 = &gsc_0; | ||
27 | gsc1 = &gsc_1; | ||
28 | gsc2 = &gsc_2; | ||
29 | pinctrl0 = &pinctrl_alive; | ||
30 | pinctrl1 = &pinctrl_aud; | ||
31 | pinctrl2 = &pinctrl_cpif; | ||
32 | pinctrl3 = &pinctrl_ese; | ||
33 | pinctrl4 = &pinctrl_finger; | ||
34 | pinctrl5 = &pinctrl_fsys; | ||
35 | pinctrl6 = &pinctrl_imem; | ||
36 | pinctrl7 = &pinctrl_nfc; | ||
37 | pinctrl8 = &pinctrl_peric; | ||
38 | pinctrl9 = &pinctrl_touch; | ||
39 | serial0 = &serial_0; | ||
40 | serial1 = &serial_1; | ||
41 | serial2 = &serial_2; | ||
42 | serial3 = &serial_3; | ||
43 | spi0 = &spi_0; | ||
44 | spi1 = &spi_1; | ||
45 | spi2 = &spi_2; | ||
46 | spi3 = &spi_3; | ||
47 | spi4 = &spi_4; | ||
48 | mshc0 = &mshc_0; | ||
49 | mshc2 = &mshc_2; | ||
50 | }; | ||
51 | |||
52 | chosen { | ||
53 | stdout-path = &serial_1; | ||
54 | }; | ||
55 | |||
56 | memory@20000000 { | ||
57 | device_type = "memory"; | ||
58 | reg = <0x0 0x20000000 0x0 0xc0000000>; | ||
59 | }; | ||
60 | |||
61 | gpio-keys { | ||
62 | compatible = "gpio-keys"; | ||
63 | |||
64 | power-key { | ||
65 | gpios = <&gpa2 7 GPIO_ACTIVE_LOW>; | ||
66 | linux,code = <KEY_POWER>; | ||
67 | label = "power key"; | ||
68 | debounce-interval = <10>; | ||
69 | }; | ||
70 | |||
71 | volume-up-key { | ||
72 | gpios = <&gpa2 0 GPIO_ACTIVE_LOW>; | ||
73 | linux,code = <KEY_VOLUMEUP>; | ||
74 | label = "volume-up key"; | ||
75 | debounce-interval = <10>; | ||
76 | }; | ||
77 | |||
78 | volume-down-key { | ||
79 | gpios = <&gpa2 1 GPIO_ACTIVE_LOW>; | ||
80 | linux,code = <KEY_VOLUMEDOWN>; | ||
81 | label = "volume-down key"; | ||
82 | debounce-interval = <10>; | ||
83 | }; | ||
84 | |||
85 | homepage-key { | ||
86 | gpios = <&gpa0 3 GPIO_ACTIVE_LOW>; | ||
87 | linux,code = <KEY_MENU>; | ||
88 | label = "homepage key"; | ||
89 | debounce-interval = <10>; | ||
90 | }; | ||
91 | }; | ||
92 | |||
93 | i2c_max98504: i2c-gpio-0 { | ||
94 | compatible = "i2c-gpio"; | ||
95 | gpios = <&gpd0 1 GPIO_ACTIVE_HIGH /* SPK_AMP_SDA */ | ||
96 | &gpd0 0 GPIO_ACTIVE_HIGH /* SPK_AMP_SCL */ >; | ||
97 | i2c-gpio,delay-us = <2>; | ||
98 | #address-cells = <1>; | ||
99 | #size-cells = <0>; | ||
100 | status = "okay"; | ||
101 | |||
102 | max98504: max98504@31 { | ||
103 | compatible = "maxim,max98504"; | ||
104 | reg = <0x31>; | ||
105 | maxim,rx-path = <1>; | ||
106 | maxim,tx-path = <1>; | ||
107 | maxim,tx-channel-mask = <3>; | ||
108 | maxim,tx-channel-source = <2>; | ||
109 | }; | ||
110 | }; | ||
111 | |||
112 | sound { | ||
113 | compatible = "samsung,tm2-audio"; | ||
114 | audio-codec = <&wm5110>; | ||
115 | i2s-controller = <&i2s0>; | ||
116 | audio-amplifier = <&max98504>; | ||
117 | mic-bias-gpios = <&gpr3 2 GPIO_ACTIVE_HIGH>; | ||
118 | model = "wm5110"; | ||
119 | samsung,audio-routing = | ||
120 | /* Headphone */ | ||
121 | "HP", "HPOUT1L", | ||
122 | "HP", "HPOUT1R", | ||
123 | |||
124 | /* Speaker */ | ||
125 | "SPK", "SPKOUT", | ||
126 | "SPKOUT", "HPOUT2L", | ||
127 | "SPKOUT", "HPOUT2R", | ||
128 | |||
129 | /* Receiver */ | ||
130 | "RCV", "HPOUT3L", | ||
131 | "RCV", "HPOUT3R"; | ||
132 | status = "okay"; | ||
133 | }; | ||
134 | }; | ||
135 | |||
136 | &adc { | ||
137 | vdd-supply = <&ldo3_reg>; | ||
138 | status = "okay"; | ||
139 | |||
140 | thermistor-ap { | ||
141 | compatible = "murata,ncp03wf104"; | ||
142 | pullup-uv = <1800000>; | ||
143 | pullup-ohm = <100000>; | ||
144 | pulldown-ohm = <0>; | ||
145 | io-channels = <&adc 0>; | ||
146 | }; | ||
147 | |||
148 | thermistor-battery { | ||
149 | compatible = "murata,ncp03wf104"; | ||
150 | pullup-uv = <1800000>; | ||
151 | pullup-ohm = <100000>; | ||
152 | pulldown-ohm = <0>; | ||
153 | io-channels = <&adc 1>; | ||
154 | #thermal-sensor-cells = <0>; | ||
155 | }; | ||
156 | |||
157 | thermistor-charger { | ||
158 | compatible = "murata,ncp03wf104"; | ||
159 | pullup-uv = <1800000>; | ||
160 | pullup-ohm = <100000>; | ||
161 | pulldown-ohm = <0>; | ||
162 | io-channels = <&adc 2>; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | &cmu_aud { | ||
167 | assigned-clocks = <&cmu_aud CLK_MOUT_AUD_PLL_USER>; | ||
168 | assigned-clock-parents = <&cmu_top CLK_FOUT_AUD_PLL>; | ||
169 | }; | ||
170 | |||
171 | &cmu_fsys { | ||
172 | assigned-clocks = <&cmu_top CLK_MOUT_SCLK_USBDRD30>, | ||
173 | <&cmu_top CLK_MOUT_SCLK_USBHOST30>, | ||
174 | <&cmu_fsys CLK_MOUT_SCLK_USBDRD30_USER>, | ||
175 | <&cmu_fsys CLK_MOUT_SCLK_USBHOST30_USER>, | ||
176 | <&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_USER>, | ||
177 | <&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_USER>, | ||
178 | <&cmu_fsys CLK_MOUT_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_USER>, | ||
179 | <&cmu_fsys CLK_MOUT_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_USER>, | ||
180 | <&cmu_top CLK_DIV_SCLK_USBDRD30>, | ||
181 | <&cmu_top CLK_DIV_SCLK_USBHOST30>; | ||
182 | assigned-clock-parents = <&cmu_top CLK_MOUT_BUS_PLL_USER>, | ||
183 | <&cmu_top CLK_MOUT_BUS_PLL_USER>, | ||
184 | <&cmu_top CLK_SCLK_USBDRD30_FSYS>, | ||
185 | <&cmu_top CLK_SCLK_USBHOST30_FSYS>, | ||
186 | <&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK_PHY>, | ||
187 | <&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK_PHY>, | ||
188 | <&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK_PHY>, | ||
189 | <&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK_PHY>; | ||
190 | assigned-clock-rates = <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, | ||
191 | <66700000>, <66700000>; | ||
192 | }; | ||
193 | |||
194 | &cmu_gscl { | ||
195 | assigned-clocks = <&cmu_gscl CLK_MOUT_ACLK_GSCL_111_USER>, | ||
196 | <&cmu_gscl CLK_MOUT_ACLK_GSCL_333_USER>; | ||
197 | assigned-clock-parents = <&cmu_top CLK_ACLK_GSCL_111>, | ||
198 | <&cmu_top CLK_ACLK_GSCL_333>; | ||
199 | }; | ||
200 | |||
201 | &cmu_mfc { | ||
202 | assigned-clocks = <&cmu_mfc CLK_MOUT_ACLK_MFC_400_USER>; | ||
203 | assigned-clock-parents = <&cmu_top CLK_ACLK_MFC_400>; | ||
204 | }; | ||
205 | |||
206 | &cmu_mscl { | ||
207 | assigned-clocks = <&cmu_mscl CLK_MOUT_ACLK_MSCL_400_USER>, | ||
208 | <&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>, | ||
209 | <&cmu_mscl CLK_MOUT_SCLK_JPEG>, | ||
210 | <&cmu_top CLK_MOUT_SCLK_JPEG_A>; | ||
211 | assigned-clock-parents = <&cmu_top CLK_ACLK_MSCL_400>, | ||
212 | <&cmu_top CLK_SCLK_JPEG_MSCL>, | ||
213 | <&cmu_mscl CLK_MOUT_SCLK_JPEG_USER>, | ||
214 | <&cmu_top CLK_MOUT_BUS_PLL_USER>; | ||
215 | }; | ||
216 | |||
217 | &cpu0 { | ||
218 | cpu-supply = <&buck3_reg>; | ||
219 | }; | ||
220 | |||
221 | &cpu4 { | ||
222 | cpu-supply = <&buck2_reg>; | ||
223 | }; | ||
224 | |||
225 | &decon { | ||
226 | status = "okay"; | ||
227 | |||
228 | i80-if-timings { | ||
229 | }; | ||
230 | }; | ||
231 | |||
232 | &dsi { | ||
233 | status = "okay"; | ||
234 | vddcore-supply = <&ldo6_reg>; | ||
235 | vddio-supply = <&ldo7_reg>; | ||
236 | samsung,pll-clock-frequency = <24000000>; | ||
237 | pinctrl-names = "default"; | ||
238 | pinctrl-0 = <&te_irq>; | ||
239 | |||
240 | ports { | ||
241 | #address-cells = <1>; | ||
242 | #size-cells = <0>; | ||
243 | |||
244 | port@1 { | ||
245 | reg = <1>; | ||
246 | |||
247 | dsi_out: endpoint { | ||
248 | samsung,burst-clock-frequency = <512000000>; | ||
249 | samsung,esc-clock-frequency = <16000000>; | ||
250 | }; | ||
251 | }; | ||
252 | }; | ||
253 | }; | ||
254 | |||
255 | &hsi2c_0 { | ||
256 | status = "okay"; | ||
257 | clock-frequency = <2500000>; | ||
258 | |||
259 | s2mps13-pmic@66 { | ||
260 | compatible = "samsung,s2mps13-pmic"; | ||
261 | interrupt-parent = <&gpa0>; | ||
262 | interrupts = <7 IRQ_TYPE_NONE>; | ||
263 | reg = <0x66>; | ||
264 | samsung,s2mps11-wrstbi-ground; | ||
265 | |||
266 | s2mps13_osc: clocks { | ||
267 | compatible = "samsung,s2mps13-clk"; | ||
268 | #clock-cells = <1>; | ||
269 | clock-output-names = "s2mps13_ap", "s2mps13_cp", | ||
270 | "s2mps13_bt"; | ||
271 | }; | ||
272 | |||
273 | regulators { | ||
274 | ldo1_reg: LDO1 { | ||
275 | regulator-name = "VDD_ALIVE_0.9V_AP"; | ||
276 | regulator-min-microvolt = <900000>; | ||
277 | regulator-max-microvolt = <900000>; | ||
278 | regulator-always-on; | ||
279 | }; | ||
280 | |||
281 | ldo2_reg: LDO2 { | ||
282 | regulator-name = "VDDQ_MMC2_2.8V_AP"; | ||
283 | regulator-min-microvolt = <2800000>; | ||
284 | regulator-max-microvolt = <2800000>; | ||
285 | regulator-always-on; | ||
286 | regulator-state-mem { | ||
287 | regulator-off-in-suspend; | ||
288 | }; | ||
289 | }; | ||
290 | |||
291 | ldo3_reg: LDO3 { | ||
292 | regulator-name = "VDD1_E_1.8V_AP"; | ||
293 | regulator-min-microvolt = <1800000>; | ||
294 | regulator-max-microvolt = <1800000>; | ||
295 | regulator-always-on; | ||
296 | }; | ||
297 | |||
298 | ldo4_reg: LDO4 { | ||
299 | regulator-name = "VDD10_MIF_PLL_1.0V_AP"; | ||
300 | regulator-min-microvolt = <1300000>; | ||
301 | regulator-max-microvolt = <1300000>; | ||
302 | regulator-always-on; | ||
303 | regulator-state-mem { | ||
304 | regulator-off-in-suspend; | ||
305 | }; | ||
306 | }; | ||
307 | |||
308 | ldo5_reg: LDO5 { | ||
309 | regulator-name = "VDD10_DPLL_1.0V_AP"; | ||
310 | regulator-min-microvolt = <1000000>; | ||
311 | regulator-max-microvolt = <1000000>; | ||
312 | regulator-always-on; | ||
313 | regulator-state-mem { | ||
314 | regulator-off-in-suspend; | ||
315 | }; | ||
316 | }; | ||
317 | |||
318 | ldo6_reg: LDO6 { | ||
319 | regulator-name = "VDD10_MIPI2L_1.0V_AP"; | ||
320 | regulator-min-microvolt = <1000000>; | ||
321 | regulator-max-microvolt = <1000000>; | ||
322 | regulator-state-mem { | ||
323 | regulator-off-in-suspend; | ||
324 | }; | ||
325 | }; | ||
326 | |||
327 | ldo7_reg: LDO7 { | ||
328 | regulator-name = "VDD18_MIPI2L_1.8V_AP"; | ||
329 | regulator-min-microvolt = <1800000>; | ||
330 | regulator-max-microvolt = <1800000>; | ||
331 | }; | ||
332 | |||
333 | ldo8_reg: LDO8 { | ||
334 | regulator-name = "VDD18_LLI_1.8V_AP"; | ||
335 | regulator-min-microvolt = <1800000>; | ||
336 | regulator-max-microvolt = <1800000>; | ||
337 | regulator-always-on; | ||
338 | regulator-state-mem { | ||
339 | regulator-off-in-suspend; | ||
340 | }; | ||
341 | }; | ||
342 | |||
343 | ldo9_reg: LDO9 { | ||
344 | regulator-name = "VDD18_ABB_ETC_1.8V_AP"; | ||
345 | regulator-min-microvolt = <1800000>; | ||
346 | regulator-max-microvolt = <1800000>; | ||
347 | regulator-always-on; | ||
348 | regulator-state-mem { | ||
349 | regulator-off-in-suspend; | ||
350 | }; | ||
351 | }; | ||
352 | |||
353 | ldo10_reg: LDO10 { | ||
354 | regulator-name = "VDD33_USB30_3.0V_AP"; | ||
355 | regulator-min-microvolt = <3000000>; | ||
356 | regulator-max-microvolt = <3000000>; | ||
357 | regulator-state-mem { | ||
358 | regulator-off-in-suspend; | ||
359 | }; | ||
360 | }; | ||
361 | |||
362 | ldo11_reg: LDO11 { | ||
363 | regulator-name = "VDD_INT_M_1.0V_AP"; | ||
364 | regulator-min-microvolt = <1000000>; | ||
365 | regulator-max-microvolt = <1000000>; | ||
366 | regulator-always-on; | ||
367 | regulator-state-mem { | ||
368 | regulator-off-in-suspend; | ||
369 | }; | ||
370 | }; | ||
371 | |||
372 | ldo12_reg: LDO12 { | ||
373 | regulator-name = "VDD_KFC_M_1.1V_AP"; | ||
374 | regulator-min-microvolt = <800000>; | ||
375 | regulator-max-microvolt = <1350000>; | ||
376 | regulator-always-on; | ||
377 | }; | ||
378 | |||
379 | ldo13_reg: LDO13 { | ||
380 | regulator-name = "VDD_G3D_M_0.95V_AP"; | ||
381 | regulator-min-microvolt = <950000>; | ||
382 | regulator-max-microvolt = <950000>; | ||
383 | regulator-always-on; | ||
384 | regulator-state-mem { | ||
385 | regulator-off-in-suspend; | ||
386 | }; | ||
387 | }; | ||
388 | |||
389 | ldo14_reg: LDO14 { | ||
390 | regulator-name = "VDDQ_M1_LDO_1.2V_AP"; | ||
391 | regulator-min-microvolt = <1200000>; | ||
392 | regulator-max-microvolt = <1200000>; | ||
393 | regulator-always-on; | ||
394 | regulator-state-mem { | ||
395 | regulator-off-in-suspend; | ||
396 | }; | ||
397 | }; | ||
398 | |||
399 | ldo15_reg: LDO15 { | ||
400 | regulator-name = "VDDQ_M2_LDO_1.2V_AP"; | ||
401 | regulator-min-microvolt = <1200000>; | ||
402 | regulator-max-microvolt = <1200000>; | ||
403 | regulator-always-on; | ||
404 | regulator-state-mem { | ||
405 | regulator-off-in-suspend; | ||
406 | }; | ||
407 | }; | ||
408 | |||
409 | ldo16_reg: LDO16 { | ||
410 | regulator-name = "VDDQ_EFUSE"; | ||
411 | regulator-min-microvolt = <1400000>; | ||
412 | regulator-max-microvolt = <3400000>; | ||
413 | regulator-always-on; | ||
414 | }; | ||
415 | |||
416 | ldo17_reg: LDO17 { | ||
417 | regulator-name = "V_TFLASH_2.8V_AP"; | ||
418 | regulator-min-microvolt = <2800000>; | ||
419 | regulator-max-microvolt = <2800000>; | ||
420 | }; | ||
421 | |||
422 | ldo18_reg: LDO18 { | ||
423 | regulator-name = "V_CODEC_1.8V_AP"; | ||
424 | regulator-min-microvolt = <1800000>; | ||
425 | regulator-max-microvolt = <1800000>; | ||
426 | }; | ||
427 | |||
428 | ldo19_reg: LDO19 { | ||
429 | regulator-name = "VDDA_1.8V_COMP"; | ||
430 | regulator-min-microvolt = <1800000>; | ||
431 | regulator-max-microvolt = <1800000>; | ||
432 | regulator-always-on; | ||
433 | }; | ||
434 | |||
435 | ldo20_reg: LDO20 { | ||
436 | regulator-name = "VCC_2.8V_AP"; | ||
437 | regulator-min-microvolt = <2800000>; | ||
438 | regulator-max-microvolt = <2800000>; | ||
439 | regulator-always-on; | ||
440 | }; | ||
441 | |||
442 | ldo21_reg: LDO21 { | ||
443 | regulator-name = "VT_CAM_1.8V"; | ||
444 | regulator-min-microvolt = <1800000>; | ||
445 | regulator-max-microvolt = <1800000>; | ||
446 | }; | ||
447 | |||
448 | ldo22_reg: LDO22 { | ||
449 | regulator-name = "CAM_IO_1.8V_AP"; | ||
450 | regulator-min-microvolt = <1800000>; | ||
451 | regulator-max-microvolt = <1800000>; | ||
452 | }; | ||
453 | |||
454 | ldo23_reg: LDO23 { | ||
455 | regulator-name = "CAM_SEN_CORE_1.2V_AP"; | ||
456 | regulator-min-microvolt = <1050000>; | ||
457 | regulator-max-microvolt = <1200000>; | ||
458 | }; | ||
459 | |||
460 | ldo24_reg: LDO24 { | ||
461 | regulator-name = "VT_CAM_1.2V"; | ||
462 | regulator-min-microvolt = <1200000>; | ||
463 | regulator-max-microvolt = <1200000>; | ||
464 | }; | ||
465 | |||
466 | ldo25_reg: LDO25 { | ||
467 | regulator-name = "CAM_SEN_A2.8V_AP"; | ||
468 | regulator-min-microvolt = <2800000>; | ||
469 | regulator-max-microvolt = <2800000>; | ||
470 | }; | ||
471 | |||
472 | ldo26_reg: LDO26 { | ||
473 | regulator-name = "CAM_AF_2.8V_AP"; | ||
474 | regulator-min-microvolt = <2800000>; | ||
475 | regulator-max-microvolt = <2800000>; | ||
476 | }; | ||
477 | |||
478 | ldo27_reg: LDO27 { | ||
479 | regulator-name = "VCC_3.0V_LCD_AP"; | ||
480 | regulator-min-microvolt = <3000000>; | ||
481 | regulator-max-microvolt = <3000000>; | ||
482 | }; | ||
483 | |||
484 | ldo28_reg: LDO28 { | ||
485 | regulator-name = "VCC_1.8V_LCD_AP"; | ||
486 | regulator-min-microvolt = <1800000>; | ||
487 | regulator-max-microvolt = <1800000>; | ||
488 | }; | ||
489 | |||
490 | ldo29_reg: LDO29 { | ||
491 | regulator-name = "VT_CAM_2.8V"; | ||
492 | regulator-min-microvolt = <3000000>; | ||
493 | regulator-max-microvolt = <3000000>; | ||
494 | }; | ||
495 | |||
496 | ldo30_reg: LDO30 { | ||
497 | regulator-name = "TSP_AVDD_3.3V_AP"; | ||
498 | regulator-min-microvolt = <3300000>; | ||
499 | regulator-max-microvolt = <3300000>; | ||
500 | }; | ||
501 | |||
502 | ldo31_reg: LDO31 { | ||
503 | regulator-name = "TSP_VDD_1.85V_AP"; | ||
504 | regulator-min-microvolt = <1850000>; | ||
505 | regulator-max-microvolt = <1850000>; | ||
506 | }; | ||
507 | |||
508 | ldo32_reg: LDO32 { | ||
509 | regulator-name = "VTOUCH_1.8V_AP"; | ||
510 | regulator-min-microvolt = <1800000>; | ||
511 | regulator-max-microvolt = <1800000>; | ||
512 | }; | ||
513 | |||
514 | ldo33_reg: LDO33 { | ||
515 | regulator-name = "VTOUCH_LED_3.3V"; | ||
516 | regulator-min-microvolt = <2500000>; | ||
517 | regulator-max-microvolt = <3300000>; | ||
518 | regulator-ramp-delay = <12500>; | ||
519 | }; | ||
520 | |||
521 | ldo34_reg: LDO34 { | ||
522 | regulator-name = "VCC_1.8V_MHL_AP"; | ||
523 | regulator-min-microvolt = <1000000>; | ||
524 | regulator-max-microvolt = <2100000>; | ||
525 | }; | ||
526 | |||
527 | ldo35_reg: LDO35 { | ||
528 | regulator-name = "OIS_VM_2.8V"; | ||
529 | regulator-min-microvolt = <1800000>; | ||
530 | regulator-max-microvolt = <2800000>; | ||
531 | }; | ||
532 | |||
533 | ldo36_reg: LDO36 { | ||
534 | regulator-name = "VSIL_1.0V"; | ||
535 | regulator-min-microvolt = <1000000>; | ||
536 | regulator-max-microvolt = <1000000>; | ||
537 | }; | ||
538 | |||
539 | ldo37_reg: LDO37 { | ||
540 | regulator-name = "VF_1.8V"; | ||
541 | regulator-min-microvolt = <1800000>; | ||
542 | regulator-max-microvolt = <1800000>; | ||
543 | }; | ||
544 | |||
545 | ldo38_reg: LDO38 { | ||
546 | regulator-name = "VCC_3.0V_MOTOR_AP"; | ||
547 | regulator-min-microvolt = <3000000>; | ||
548 | regulator-max-microvolt = <3000000>; | ||
549 | }; | ||
550 | |||
551 | ldo39_reg: LDO39 { | ||
552 | regulator-name = "V_HRM_1.8V"; | ||
553 | regulator-min-microvolt = <1800000>; | ||
554 | regulator-max-microvolt = <1800000>; | ||
555 | }; | ||
556 | |||
557 | ldo40_reg: LDO40 { | ||
558 | regulator-name = "V_HRM_3.3V"; | ||
559 | regulator-min-microvolt = <3300000>; | ||
560 | regulator-max-microvolt = <3300000>; | ||
561 | }; | ||
562 | |||
563 | buck1_reg: BUCK1 { | ||
564 | regulator-name = "VDD_MIF_0.9V_AP"; | ||
565 | regulator-min-microvolt = <600000>; | ||
566 | regulator-max-microvolt = <1500000>; | ||
567 | regulator-always-on; | ||
568 | regulator-state-mem { | ||
569 | regulator-off-in-suspend; | ||
570 | }; | ||
571 | }; | ||
572 | |||
573 | buck2_reg: BUCK2 { | ||
574 | regulator-name = "VDD_EGL_1.0V_AP"; | ||
575 | regulator-min-microvolt = <900000>; | ||
576 | regulator-max-microvolt = <1300000>; | ||
577 | regulator-always-on; | ||
578 | regulator-state-mem { | ||
579 | regulator-off-in-suspend; | ||
580 | }; | ||
581 | }; | ||
582 | |||
583 | buck3_reg: BUCK3 { | ||
584 | regulator-name = "VDD_KFC_1.0V_AP"; | ||
585 | regulator-min-microvolt = <800000>; | ||
586 | regulator-max-microvolt = <1200000>; | ||
587 | regulator-always-on; | ||
588 | regulator-state-mem { | ||
589 | regulator-off-in-suspend; | ||
590 | }; | ||
591 | }; | ||
592 | |||
593 | buck4_reg: BUCK4 { | ||
594 | regulator-name = "VDD_INT_0.95V_AP"; | ||
595 | regulator-min-microvolt = <600000>; | ||
596 | regulator-max-microvolt = <1500000>; | ||
597 | regulator-always-on; | ||
598 | regulator-state-mem { | ||
599 | regulator-off-in-suspend; | ||
600 | }; | ||
601 | }; | ||
602 | |||
603 | buck5_reg: BUCK5 { | ||
604 | regulator-name = "VDD_DISP_CAM0_0.9V_AP"; | ||
605 | regulator-min-microvolt = <600000>; | ||
606 | regulator-max-microvolt = <1500000>; | ||
607 | regulator-always-on; | ||
608 | regulator-state-mem { | ||
609 | regulator-off-in-suspend; | ||
610 | }; | ||
611 | }; | ||
612 | |||
613 | buck6_reg: BUCK6 { | ||
614 | regulator-name = "VDD_G3D_0.9V_AP"; | ||
615 | regulator-min-microvolt = <600000>; | ||
616 | regulator-max-microvolt = <1500000>; | ||
617 | regulator-always-on; | ||
618 | regulator-state-mem { | ||
619 | regulator-off-in-suspend; | ||
620 | }; | ||
621 | }; | ||
622 | |||
623 | buck7_reg: BUCK7 { | ||
624 | regulator-name = "VDD_MEM1_1.2V_AP"; | ||
625 | regulator-min-microvolt = <1200000>; | ||
626 | regulator-max-microvolt = <1200000>; | ||
627 | regulator-always-on; | ||
628 | }; | ||
629 | |||
630 | buck8_reg: BUCK8 { | ||
631 | regulator-name = "VDD_LLDO_1.35V_AP"; | ||
632 | regulator-min-microvolt = <1350000>; | ||
633 | regulator-max-microvolt = <3300000>; | ||
634 | regulator-always-on; | ||
635 | }; | ||
636 | |||
637 | buck9_reg: BUCK9 { | ||
638 | regulator-name = "VDD_MLDO_2.0V_AP"; | ||
639 | regulator-min-microvolt = <1350000>; | ||
640 | regulator-max-microvolt = <3300000>; | ||
641 | regulator-always-on; | ||
642 | }; | ||
643 | |||
644 | buck10_reg: BUCK10 { | ||
645 | regulator-name = "vdd_mem2"; | ||
646 | regulator-min-microvolt = <550000>; | ||
647 | regulator-max-microvolt = <1500000>; | ||
648 | regulator-always-on; | ||
649 | }; | ||
650 | }; | ||
651 | }; | ||
652 | }; | ||
653 | |||
654 | &hsi2c_8 { | ||
655 | status = "okay"; | ||
656 | |||
657 | max77843@66 { | ||
658 | compatible = "maxim,max77843"; | ||
659 | interrupt-parent = <&gpa1>; | ||
660 | interrupts = <5 IRQ_TYPE_EDGE_FALLING>; | ||
661 | reg = <0x66>; | ||
662 | |||
663 | muic: max77843-muic { | ||
664 | compatible = "maxim,max77843-muic"; | ||
665 | }; | ||
666 | |||
667 | regulators { | ||
668 | compatible = "maxim,max77843-regulator"; | ||
669 | safeout1_reg: SAFEOUT1 { | ||
670 | regulator-name = "SAFEOUT1"; | ||
671 | regulator-min-microvolt = <3300000>; | ||
672 | regulator-max-microvolt = <4950000>; | ||
673 | }; | ||
674 | |||
675 | safeout2_reg: SAFEOUT2 { | ||
676 | regulator-name = "SAFEOUT2"; | ||
677 | regulator-min-microvolt = <3300000>; | ||
678 | regulator-max-microvolt = <4950000>; | ||
679 | }; | ||
680 | |||
681 | charger_reg: CHARGER { | ||
682 | regulator-name = "CHARGER"; | ||
683 | regulator-min-microamp = <100000>; | ||
684 | regulator-max-microamp = <3150000>; | ||
685 | }; | ||
686 | }; | ||
687 | |||
688 | haptic: max77843-haptic { | ||
689 | compatible = "maxim,max77843-haptic"; | ||
690 | haptic-supply = <&ldo38_reg>; | ||
691 | pwms = <&pwm 0 33670 0>; | ||
692 | pwm-names = "haptic"; | ||
693 | }; | ||
694 | }; | ||
695 | }; | ||
696 | |||
697 | &i2s0 { | ||
698 | status = "okay"; | ||
699 | }; | ||
700 | |||
701 | &mshc_0 { | ||
702 | status = "okay"; | ||
703 | num-slots = <1>; | ||
704 | mmc-hs200-1_8v; | ||
705 | mmc-hs400-1_8v; | ||
706 | cap-mmc-highspeed; | ||
707 | non-removable; | ||
708 | card-detect-delay = <200>; | ||
709 | samsung,dw-mshc-ciu-div = <3>; | ||
710 | samsung,dw-mshc-sdr-timing = <0 4>; | ||
711 | samsung,dw-mshc-ddr-timing = <0 2>; | ||
712 | samsung,dw-mshc-hs400-timing = <0 3>; | ||
713 | samsung,read-strobe-delay = <90>; | ||
714 | fifo-depth = <0x80>; | ||
715 | pinctrl-names = "default"; | ||
716 | pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 | ||
717 | &sd0_bus8 &sd0_rdqs>; | ||
718 | bus-width = <8>; | ||
719 | assigned-clocks = <&cmu_top CLK_SCLK_MMC0_FSYS>; | ||
720 | assigned-clock-rates = <800000000>; | ||
721 | }; | ||
722 | |||
723 | &mshc_2 { | ||
724 | status = "okay"; | ||
725 | num-slots = <1>; | ||
726 | cap-sd-highspeed; | ||
727 | disable-wp; | ||
728 | cd-gpios = <&gpa2 4 GPIO_ACTIVE_HIGH>; | ||
729 | cd-inverted; | ||
730 | card-detect-delay = <200>; | ||
731 | samsung,dw-mshc-ciu-div = <3>; | ||
732 | samsung,dw-mshc-sdr-timing = <0 4>; | ||
733 | samsung,dw-mshc-ddr-timing = <0 2>; | ||
734 | fifo-depth = <0x80>; | ||
735 | pinctrl-names = "default"; | ||
736 | pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus1 &sd2_bus4>; | ||
737 | bus-width = <4>; | ||
738 | }; | ||
739 | |||
740 | &pinctrl_alive { | ||
741 | pinctrl-names = "default"; | ||
742 | pinctrl-0 = <&initial_alive>; | ||
743 | |||
744 | initial_alive: initial-state { | ||
745 | PIN(IN, gpa0-0, DOWN, LV1); | ||
746 | PIN(IN, gpa0-1, NONE, LV1); | ||
747 | PIN(IN, gpa0-2, DOWN, LV1); | ||
748 | PIN(IN, gpa0-3, NONE, LV1); | ||
749 | PIN(IN, gpa0-4, NONE, LV1); | ||
750 | PIN(IN, gpa0-5, DOWN, LV1); | ||
751 | PIN(IN, gpa0-6, NONE, LV1); | ||
752 | PIN(IN, gpa0-7, NONE, LV1); | ||
753 | |||
754 | PIN(IN, gpa1-0, UP, LV1); | ||
755 | PIN(IN, gpa1-1, NONE, LV1); | ||
756 | PIN(IN, gpa1-2, NONE, LV1); | ||
757 | PIN(IN, gpa1-3, DOWN, LV1); | ||
758 | PIN(IN, gpa1-4, DOWN, LV1); | ||
759 | PIN(IN, gpa1-5, NONE, LV1); | ||
760 | PIN(IN, gpa1-6, NONE, LV1); | ||
761 | PIN(IN, gpa1-7, NONE, LV1); | ||
762 | |||
763 | PIN(IN, gpa2-0, NONE, LV1); | ||
764 | PIN(IN, gpa2-1, NONE, LV1); | ||
765 | PIN(IN, gpa2-2, NONE, LV1); | ||
766 | PIN(IN, gpa2-3, DOWN, LV1); | ||
767 | PIN(IN, gpa2-4, NONE, LV1); | ||
768 | PIN(IN, gpa2-5, DOWN, LV1); | ||
769 | PIN(IN, gpa2-6, DOWN, LV1); | ||
770 | PIN(IN, gpa2-7, NONE, LV1); | ||
771 | |||
772 | PIN(IN, gpa3-0, DOWN, LV1); | ||
773 | PIN(IN, gpa3-1, DOWN, LV1); | ||
774 | PIN(IN, gpa3-2, NONE, LV1); | ||
775 | PIN(IN, gpa3-3, DOWN, LV1); | ||
776 | PIN(IN, gpa3-4, NONE, LV1); | ||
777 | PIN(IN, gpa3-5, DOWN, LV1); | ||
778 | PIN(IN, gpa3-6, DOWN, LV1); | ||
779 | PIN(IN, gpa3-7, DOWN, LV1); | ||
780 | |||
781 | PIN(IN, gpf1-0, NONE, LV1); | ||
782 | PIN(IN, gpf1-1, NONE, LV1); | ||
783 | PIN(IN, gpf1-2, DOWN, LV1); | ||
784 | PIN(IN, gpf1-4, UP, LV1); | ||
785 | PIN(OUT, gpf1-5, NONE, LV1); | ||
786 | PIN(IN, gpf1-6, DOWN, LV1); | ||
787 | PIN(IN, gpf1-7, DOWN, LV1); | ||
788 | |||
789 | PIN(IN, gpf2-0, DOWN, LV1); | ||
790 | PIN(IN, gpf2-1, DOWN, LV1); | ||
791 | PIN(IN, gpf2-2, DOWN, LV1); | ||
792 | PIN(IN, gpf2-3, DOWN, LV1); | ||
793 | |||
794 | PIN(IN, gpf3-0, DOWN, LV1); | ||
795 | PIN(IN, gpf3-1, DOWN, LV1); | ||
796 | PIN(IN, gpf3-2, NONE, LV1); | ||
797 | PIN(IN, gpf3-3, DOWN, LV1); | ||
798 | |||
799 | PIN(IN, gpf4-0, DOWN, LV1); | ||
800 | PIN(IN, gpf4-1, DOWN, LV1); | ||
801 | PIN(IN, gpf4-2, DOWN, LV1); | ||
802 | PIN(IN, gpf4-3, DOWN, LV1); | ||
803 | PIN(IN, gpf4-4, DOWN, LV1); | ||
804 | PIN(IN, gpf4-5, DOWN, LV1); | ||
805 | PIN(IN, gpf4-6, DOWN, LV1); | ||
806 | PIN(IN, gpf4-7, DOWN, LV1); | ||
807 | |||
808 | PIN(IN, gpf5-0, DOWN, LV1); | ||
809 | PIN(IN, gpf5-1, DOWN, LV1); | ||
810 | PIN(IN, gpf5-2, DOWN, LV1); | ||
811 | PIN(IN, gpf5-3, DOWN, LV1); | ||
812 | PIN(OUT, gpf5-4, NONE, LV1); | ||
813 | PIN(IN, gpf5-5, DOWN, LV1); | ||
814 | PIN(IN, gpf5-6, DOWN, LV1); | ||
815 | PIN(IN, gpf5-7, DOWN, LV1); | ||
816 | }; | ||
817 | |||
818 | te_irq: te_irq { | ||
819 | samsung,pins = "gpf1-3"; | ||
820 | samsung,pin-function = <0xf>; | ||
821 | }; | ||
822 | }; | ||
823 | |||
824 | &pinctrl_cpif { | ||
825 | pinctrl-names = "default"; | ||
826 | pinctrl-0 = <&initial_cpif>; | ||
827 | |||
828 | initial_cpif: initial-state { | ||
829 | PIN(IN, gpv6-0, DOWN, LV1); | ||
830 | PIN(IN, gpv6-1, DOWN, LV1); | ||
831 | }; | ||
832 | }; | ||
833 | |||
834 | &pinctrl_ese { | ||
835 | pinctrl-names = "default"; | ||
836 | pinctrl-0 = <&initial_ese>; | ||
837 | |||
838 | initial_ese: initial-state { | ||
839 | PIN(IN, gpj2-0, DOWN, LV1); | ||
840 | PIN(IN, gpj2-1, DOWN, LV1); | ||
841 | PIN(IN, gpj2-2, DOWN, LV1); | ||
842 | }; | ||
843 | }; | ||
844 | |||
845 | &pinctrl_fsys { | ||
846 | pinctrl-names = "default"; | ||
847 | pinctrl-0 = <&initial_fsys>; | ||
848 | |||
849 | initial_fsys: initial-state { | ||
850 | PIN(IN, gpr3-0, NONE, LV1); | ||
851 | PIN(IN, gpr3-1, DOWN, LV1); | ||
852 | PIN(IN, gpr3-2, DOWN, LV1); | ||
853 | PIN(IN, gpr3-3, DOWN, LV1); | ||
854 | PIN(IN, gpr3-7, NONE, LV1); | ||
855 | }; | ||
856 | }; | ||
857 | |||
858 | &pinctrl_imem { | ||
859 | pinctrl-names = "default"; | ||
860 | pinctrl-0 = <&initial_imem>; | ||
861 | |||
862 | initial_imem: initial-state { | ||
863 | PIN(IN, gpf0-0, UP, LV1); | ||
864 | PIN(IN, gpf0-1, UP, LV1); | ||
865 | PIN(IN, gpf0-2, DOWN, LV1); | ||
866 | PIN(IN, gpf0-3, UP, LV1); | ||
867 | PIN(IN, gpf0-4, DOWN, LV1); | ||
868 | PIN(IN, gpf0-5, NONE, LV1); | ||
869 | PIN(IN, gpf0-6, DOWN, LV1); | ||
870 | PIN(IN, gpf0-7, UP, LV1); | ||
871 | }; | ||
872 | }; | ||
873 | |||
874 | &pinctrl_nfc { | ||
875 | pinctrl-names = "default"; | ||
876 | pinctrl-0 = <&initial_nfc>; | ||
877 | |||
878 | initial_nfc: initial-state { | ||
879 | PIN(IN, gpj0-2, DOWN, LV1); | ||
880 | }; | ||
881 | }; | ||
882 | |||
883 | &pinctrl_peric { | ||
884 | pinctrl-names = "default"; | ||
885 | pinctrl-0 = <&initial_peric>; | ||
886 | |||
887 | initial_peric: initial-state { | ||
888 | PIN(IN, gpv7-0, DOWN, LV1); | ||
889 | PIN(IN, gpv7-1, DOWN, LV1); | ||
890 | PIN(IN, gpv7-2, NONE, LV1); | ||
891 | PIN(IN, gpv7-3, DOWN, LV1); | ||
892 | PIN(IN, gpv7-4, DOWN, LV1); | ||
893 | PIN(IN, gpv7-5, DOWN, LV1); | ||
894 | |||
895 | PIN(IN, gpb0-4, DOWN, LV1); | ||
896 | |||
897 | PIN(IN, gpc0-2, DOWN, LV1); | ||
898 | PIN(IN, gpc0-5, DOWN, LV1); | ||
899 | PIN(IN, gpc0-7, DOWN, LV1); | ||
900 | |||
901 | PIN(IN, gpc1-1, DOWN, LV1); | ||
902 | |||
903 | PIN(IN, gpc3-4, NONE, LV1); | ||
904 | PIN(IN, gpc3-5, NONE, LV1); | ||
905 | PIN(IN, gpc3-6, NONE, LV1); | ||
906 | PIN(IN, gpc3-7, NONE, LV1); | ||
907 | |||
908 | PIN(OUT, gpg0-0, NONE, LV1); | ||
909 | PIN(FUNC1, gpg0-1, DOWN, LV1); | ||
910 | |||
911 | PIN(IN, gpd2-5, DOWN, LV1); | ||
912 | |||
913 | PIN(IN, gpd4-0, NONE, LV1); | ||
914 | PIN(IN, gpd4-1, DOWN, LV1); | ||
915 | PIN(IN, gpd4-2, DOWN, LV1); | ||
916 | PIN(IN, gpd4-3, DOWN, LV1); | ||
917 | PIN(IN, gpd4-4, DOWN, LV1); | ||
918 | |||
919 | PIN(IN, gpd6-3, DOWN, LV1); | ||
920 | |||
921 | PIN(IN, gpd8-1, UP, LV1); | ||
922 | |||
923 | PIN(IN, gpg1-0, DOWN, LV1); | ||
924 | PIN(IN, gpg1-1, DOWN, LV1); | ||
925 | PIN(IN, gpg1-2, DOWN, LV1); | ||
926 | PIN(IN, gpg1-3, DOWN, LV1); | ||
927 | PIN(IN, gpg1-4, DOWN, LV1); | ||
928 | |||
929 | PIN(IN, gpg2-0, DOWN, LV1); | ||
930 | PIN(IN, gpg2-1, DOWN, LV1); | ||
931 | |||
932 | PIN(IN, gpg3-0, DOWN, LV1); | ||
933 | PIN(IN, gpg3-1, DOWN, LV1); | ||
934 | PIN(IN, gpg3-5, DOWN, LV1); | ||
935 | PIN(IN, gpg3-7, DOWN, LV1); | ||
936 | }; | ||
937 | }; | ||
938 | |||
939 | &pinctrl_touch { | ||
940 | pinctrl-names = "default"; | ||
941 | pinctrl-0 = <&initial_touch>; | ||
942 | |||
943 | initial_touch: initial-state { | ||
944 | PIN(IN, gpj1-2, DOWN, LV1); | ||
945 | }; | ||
946 | }; | ||
947 | |||
948 | &pwm { | ||
949 | pinctrl-0 = <&pwm0_out>; | ||
950 | pinctrl-names = "default"; | ||
951 | status = "okay"; | ||
952 | }; | ||
953 | |||
954 | &mic { | ||
955 | status = "okay"; | ||
956 | |||
957 | i80-if-timings { | ||
958 | }; | ||
959 | }; | ||
960 | |||
961 | &pmu_system_controller { | ||
962 | assigned-clocks = <&pmu_system_controller 0>; | ||
963 | assigned-clock-parents = <&xxti>; | ||
964 | }; | ||
965 | |||
966 | &serial_1 { | ||
967 | status = "okay"; | ||
968 | }; | ||
969 | |||
970 | &spi_1 { | ||
971 | cs-gpios = <&gpd6 3 GPIO_ACTIVE_HIGH>; | ||
972 | status = "okay"; | ||
973 | |||
974 | wm5110: wm5110-codec@0 { | ||
975 | compatible = "wlf,wm5110"; | ||
976 | reg = <0x0>; | ||
977 | spi-max-frequency = <20000000>; | ||
978 | interrupt-parent = <&gpa0>; | ||
979 | interrupts = <4 IRQ_TYPE_NONE>; | ||
980 | clocks = <&pmu_system_controller 0>, | ||
981 | <&s2mps13_osc S2MPS11_CLK_BT>; | ||
982 | clock-names = "mclk1", "mclk2"; | ||
983 | |||
984 | gpio-controller; | ||
985 | #gpio-cells = <2>; | ||
986 | |||
987 | wlf,micd-detect-debounce = <300>; | ||
988 | wlf,micd-bias-start-time = <0x1>; | ||
989 | wlf,micd-rate = <0x7>; | ||
990 | wlf,micd-dbtime = <0x1>; | ||
991 | wlf,micd-force-micbias; | ||
992 | wlf,micd-configs = <0x0 1 0>; | ||
993 | wlf,hpdet-channel = <1>; | ||
994 | wlf,gpsw = <0x1>; | ||
995 | wlf,inmode = <2 0 2 0>; | ||
996 | |||
997 | wlf,reset = <&gpc0 7 GPIO_ACTIVE_HIGH>; | ||
998 | wlf,ldoena = <&gpf0 0 GPIO_ACTIVE_HIGH>; | ||
999 | |||
1000 | /* core supplies */ | ||
1001 | AVDD-supply = <&ldo18_reg>; | ||
1002 | DBVDD1-supply = <&ldo18_reg>; | ||
1003 | CPVDD-supply = <&ldo18_reg>; | ||
1004 | DBVDD2-supply = <&ldo18_reg>; | ||
1005 | DBVDD3-supply = <&ldo18_reg>; | ||
1006 | |||
1007 | controller-data { | ||
1008 | samsung,spi-feedback-delay = <0>; | ||
1009 | }; | ||
1010 | }; | ||
1011 | }; | ||
1012 | |||
1013 | &timer { | ||
1014 | clock-frequency = <24000000>; | ||
1015 | }; | ||
1016 | |||
1017 | &tmu_atlas0 { | ||
1018 | vtmu-supply = <&ldo3_reg>; | ||
1019 | status = "okay"; | ||
1020 | }; | ||
1021 | |||
1022 | &tmu_apollo { | ||
1023 | vtmu-supply = <&ldo3_reg>; | ||
1024 | status = "okay"; | ||
1025 | }; | ||
1026 | |||
1027 | &tmu_g3d { | ||
1028 | vtmu-supply = <&ldo3_reg>; | ||
1029 | status = "okay"; | ||
1030 | }; | ||
1031 | |||
1032 | &usbdrd30 { | ||
1033 | vdd33-supply = <&ldo10_reg>; | ||
1034 | vdd10-supply = <&ldo6_reg>; | ||
1035 | status = "okay"; | ||
1036 | }; | ||
1037 | |||
1038 | &usbdrd_dwc3_0 { | ||
1039 | dr_mode = "otg"; | ||
1040 | }; | ||
1041 | |||
1042 | &usbdrd30_phy { | ||
1043 | vbus-supply = <&safeout1_reg>; | ||
1044 | status = "okay"; | ||
1045 | }; | ||
1046 | |||
1047 | &xxti { | ||
1048 | clock-frequency = <24000000>; | ||
1049 | }; | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts new file mode 100644 index 000000000000..1db4e7f363a9 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * SAMSUNG Exynos5433 TM2E board device tree source | ||
3 | * | ||
4 | * Copyright (c) 2016 Samsung Electronics Co., Ltd. | ||
5 | * | ||
6 | * Device tree source file for Samsung's TM2E(TM2 EDGE) board which is based on | ||
7 | * Samsung Exynos5433 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 | #include "exynos5433-tm2.dts" | ||
15 | |||
16 | / { | ||
17 | model = "Samsung TM2E board"; | ||
18 | compatible = "samsung,tm2e", "samsung,exynos5433"; | ||
19 | }; | ||
20 | |||
21 | &ldo23_reg { | ||
22 | regulator-name = "CAM_SEN_CORE_1.025V_AP"; | ||
23 | regulator-max-microvolt = <1050000>; | ||
24 | }; | ||
25 | |||
26 | &ldo25_reg { | ||
27 | regulator-name = "UNUSED_LDO25"; | ||
28 | regulator-always-off; | ||
29 | }; | ||
30 | |||
31 | &ldo31_reg { | ||
32 | regulator-name = "TSP_VDD_1.8V_AP"; | ||
33 | regulator-min-microvolt = <1800000>; | ||
34 | regulator-max-microvolt = <1800000>; | ||
35 | }; | ||
36 | |||
37 | &ldo38_reg { | ||
38 | regulator-name = "VCC_3.3V_MOTOR_AP"; | ||
39 | regulator-min-microvolt = <3300000>; | ||
40 | regulator-max-microvolt = <3300000>; | ||
41 | }; | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tmu-g3d-sensor-conf.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tmu-g3d-sensor-conf.dtsi new file mode 100644 index 000000000000..9be2978f1b9a --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433-tmu-g3d-sensor-conf.dtsi | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * Device tree sources for Exynos5433 TMU sensor configuration | ||
3 | * | ||
4 | * Copyright (c) 2016 Jonghwa Lee <jonghwa3.lee@samsung.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 <dt-bindings/thermal/thermal_exynos.h> | ||
12 | |||
13 | #thermal-sensor-cells = <0>; | ||
14 | samsung,tmu_gain = <8>; | ||
15 | samsung,tmu_reference_voltage = <23>; | ||
16 | samsung,tmu_noise_cancel_mode = <4>; | ||
17 | samsung,tmu_efuse_value = <75>; | ||
18 | samsung,tmu_min_efuse_value = <40>; | ||
19 | samsung,tmu_max_efuse_value = <150>; | ||
20 | samsung,tmu_first_point_trim = <25>; | ||
21 | samsung,tmu_second_point_trim = <85>; | ||
22 | samsung,tmu_default_temp_offset = <50>; | ||
23 | samsung,tmu_mux_addr = <6>; | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tmu-sensor-conf.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tmu-sensor-conf.dtsi new file mode 100644 index 000000000000..125fe58d77ce --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433-tmu-sensor-conf.dtsi | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * Device tree sources for Exynos5433 TMU sensor configuration | ||
3 | * | ||
4 | * Copyright (c) 2016 Chanwoo Choi <cw00.choi@samsung.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 <dt-bindings/thermal/thermal_exynos.h> | ||
12 | |||
13 | #thermal-sensor-cells = <0>; | ||
14 | samsung,tmu_gain = <8>; | ||
15 | samsung,tmu_reference_voltage = <16>; | ||
16 | samsung,tmu_noise_cancel_mode = <4>; | ||
17 | samsung,tmu_efuse_value = <75>; | ||
18 | samsung,tmu_min_efuse_value = <40>; | ||
19 | samsung,tmu_max_efuse_value = <150>; | ||
20 | samsung,tmu_first_point_trim = <25>; | ||
21 | samsung,tmu_second_point_trim = <85>; | ||
22 | samsung,tmu_default_temp_offset = <50>; | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tmu.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tmu.dtsi new file mode 100644 index 000000000000..ceaa05145b8a --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433-tmu.dtsi | |||
@@ -0,0 +1,296 @@ | |||
1 | /* | ||
2 | * Device tree sources for Exynos5433 thermal zone | ||
3 | * | ||
4 | * Copyright (c) 2016 Chanwoo Choi <cw00.choi@samsung.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 <dt-bindings/thermal/thermal.h> | ||
12 | |||
13 | / { | ||
14 | thermal-zones { | ||
15 | atlas0_thermal: atlas0-thermal { | ||
16 | thermal-sensors = <&tmu_atlas0>; | ||
17 | polling-delay-passive = <0>; | ||
18 | polling-delay = <0>; | ||
19 | trips { | ||
20 | atlas0_alert_0: atlas0-alert-0 { | ||
21 | temperature = <65000>; /* millicelsius */ | ||
22 | hysteresis = <1000>; /* millicelsius */ | ||
23 | type = "active"; | ||
24 | }; | ||
25 | atlas0_alert_1: atlas0-alert-1 { | ||
26 | temperature = <70000>; /* millicelsius */ | ||
27 | hysteresis = <1000>; /* millicelsius */ | ||
28 | type = "active"; | ||
29 | }; | ||
30 | atlas0_alert_2: atlas0-alert-2 { | ||
31 | temperature = <75000>; /* millicelsius */ | ||
32 | hysteresis = <1000>; /* millicelsius */ | ||
33 | type = "active"; | ||
34 | }; | ||
35 | atlas0_alert_3: atlas0-alert-3 { | ||
36 | temperature = <80000>; /* millicelsius */ | ||
37 | hysteresis = <1000>; /* millicelsius */ | ||
38 | type = "active"; | ||
39 | }; | ||
40 | atlas0_alert_4: atlas0-alert-4 { | ||
41 | temperature = <85000>; /* millicelsius */ | ||
42 | hysteresis = <1000>; /* millicelsius */ | ||
43 | type = "active"; | ||
44 | }; | ||
45 | atlas0_alert_5: atlas0-alert-5 { | ||
46 | temperature = <90000>; /* millicelsius */ | ||
47 | hysteresis = <1000>; /* millicelsius */ | ||
48 | type = "active"; | ||
49 | }; | ||
50 | atlas0_alert_6: atlas0-alert-6 { | ||
51 | temperature = <95000>; /* millicelsius */ | ||
52 | hysteresis = <1000>; /* millicelsius */ | ||
53 | type = "active"; | ||
54 | }; | ||
55 | }; | ||
56 | |||
57 | cooling-maps { | ||
58 | map0 { | ||
59 | /* Set maximum frequency as 1800MHz */ | ||
60 | trip = <&atlas0_alert_0>; | ||
61 | cooling-device = <&cpu4 1 2>; | ||
62 | }; | ||
63 | map1 { | ||
64 | /* Set maximum frequency as 1700MHz */ | ||
65 | trip = <&atlas0_alert_1>; | ||
66 | cooling-device = <&cpu4 2 3>; | ||
67 | }; | ||
68 | map2 { | ||
69 | /* Set maximum frequency as 1600MHz */ | ||
70 | trip = <&atlas0_alert_2>; | ||
71 | cooling-device = <&cpu4 3 4>; | ||
72 | }; | ||
73 | map3 { | ||
74 | /* Set maximum frequency as 1500MHz */ | ||
75 | trip = <&atlas0_alert_3>; | ||
76 | cooling-device = <&cpu4 4 5>; | ||
77 | }; | ||
78 | map4 { | ||
79 | /* Set maximum frequency as 1400MHz */ | ||
80 | trip = <&atlas0_alert_4>; | ||
81 | cooling-device = <&cpu4 5 7>; | ||
82 | }; | ||
83 | map5 { | ||
84 | /* Set maximum frequencyas 1200MHz */ | ||
85 | trip = <&atlas0_alert_5>; | ||
86 | cooling-device = <&cpu4 7 9>; | ||
87 | }; | ||
88 | map6 { | ||
89 | /* Set maximum frequency as 1000MHz */ | ||
90 | trip = <&atlas0_alert_6>; | ||
91 | cooling-device = <&cpu4 9 14>; | ||
92 | }; | ||
93 | }; | ||
94 | }; | ||
95 | |||
96 | atlas1_thermal: atlas1-thermal { | ||
97 | thermal-sensors = <&tmu_atlas1>; | ||
98 | polling-delay-passive = <0>; | ||
99 | polling-delay = <0>; | ||
100 | trips { | ||
101 | atlas1_alert_0: atlas1-alert-0 { | ||
102 | temperature = <65000>; /* millicelsius */ | ||
103 | hysteresis = <1000>; /* millicelsius */ | ||
104 | type = "active"; | ||
105 | }; | ||
106 | atlas1_alert_1: atlas1-alert-1 { | ||
107 | temperature = <70000>; /* millicelsius */ | ||
108 | hysteresis = <1000>; /* millicelsius */ | ||
109 | type = "active"; | ||
110 | }; | ||
111 | atlas1_alert_2: atlas1-alert-2 { | ||
112 | temperature = <75000>; /* millicelsius */ | ||
113 | hysteresis = <1000>; /* millicelsius */ | ||
114 | type = "active"; | ||
115 | }; | ||
116 | atlas1_alert_3: atlas1-alert-3 { | ||
117 | temperature = <80000>; /* millicelsius */ | ||
118 | hysteresis = <1000>; /* millicelsius */ | ||
119 | type = "active"; | ||
120 | }; | ||
121 | atlas1_alert_4: atlas1-alert-4 { | ||
122 | temperature = <85000>; /* millicelsius */ | ||
123 | hysteresis = <1000>; /* millicelsius */ | ||
124 | type = "active"; | ||
125 | }; | ||
126 | atlas1_alert_5: atlas1-alert-5 { | ||
127 | temperature = <90000>; /* millicelsius */ | ||
128 | hysteresis = <1000>; /* millicelsius */ | ||
129 | type = "active"; | ||
130 | }; | ||
131 | atlas1_alert_6: atlas1-alert-6 { | ||
132 | temperature = <95000>; /* millicelsius */ | ||
133 | hysteresis = <1000>; /* millicelsius */ | ||
134 | type = "active"; | ||
135 | }; | ||
136 | }; | ||
137 | }; | ||
138 | |||
139 | g3d_thermal: g3d-thermal { | ||
140 | thermal-sensors = <&tmu_g3d>; | ||
141 | polling-delay-passive = <0>; | ||
142 | polling-delay = <0>; | ||
143 | trips { | ||
144 | g3d_alert_0: g3d-alert-0 { | ||
145 | temperature = <70000>; /* millicelsius */ | ||
146 | hysteresis = <1000>; /* millicelsius */ | ||
147 | type = "active"; | ||
148 | }; | ||
149 | g3d_alert_1: g3d-alert-1 { | ||
150 | temperature = <75000>; /* millicelsius */ | ||
151 | hysteresis = <1000>; /* millicelsius */ | ||
152 | type = "active"; | ||
153 | }; | ||
154 | g3d_alert_2: g3d-alert-2 { | ||
155 | temperature = <80000>; /* millicelsius */ | ||
156 | hysteresis = <1000>; /* millicelsius */ | ||
157 | type = "active"; | ||
158 | }; | ||
159 | g3d_alert_3: g3d-alert-3 { | ||
160 | temperature = <85000>; /* millicelsius */ | ||
161 | hysteresis = <1000>; /* millicelsius */ | ||
162 | type = "active"; | ||
163 | }; | ||
164 | g3d_alert_4: g3d-alert-4 { | ||
165 | temperature = <90000>; /* millicelsius */ | ||
166 | hysteresis = <1000>; /* millicelsius */ | ||
167 | type = "active"; | ||
168 | }; | ||
169 | g3d_alert_5: g3d-alert-5 { | ||
170 | temperature = <95000>; /* millicelsius */ | ||
171 | hysteresis = <1000>; /* millicelsius */ | ||
172 | type = "active"; | ||
173 | }; | ||
174 | g3d_alert_6: g3d-alert-6 { | ||
175 | temperature = <100000>; /* millicelsius */ | ||
176 | hysteresis = <1000>; /* millicelsius */ | ||
177 | type = "active"; | ||
178 | }; | ||
179 | }; | ||
180 | }; | ||
181 | |||
182 | apollo_thermal: apollo-thermal { | ||
183 | thermal-sensors = <&tmu_apollo>; | ||
184 | polling-delay-passive = <0>; | ||
185 | polling-delay = <0>; | ||
186 | trips { | ||
187 | apollo_alert_0: apollo-alert-0 { | ||
188 | temperature = <65000>; /* millicelsius */ | ||
189 | hysteresis = <1000>; /* millicelsius */ | ||
190 | type = "active"; | ||
191 | }; | ||
192 | apollo_alert_1: apollo-alert-1 { | ||
193 | temperature = <70000>; /* millicelsius */ | ||
194 | hysteresis = <1000>; /* millicelsius */ | ||
195 | type = "active"; | ||
196 | }; | ||
197 | apollo_alert_2: apollo-alert-2 { | ||
198 | temperature = <75000>; /* millicelsius */ | ||
199 | hysteresis = <1000>; /* millicelsius */ | ||
200 | type = "active"; | ||
201 | }; | ||
202 | apollo_alert_3: apollo-alert-3 { | ||
203 | temperature = <80000>; /* millicelsius */ | ||
204 | hysteresis = <1000>; /* millicelsius */ | ||
205 | type = "active"; | ||
206 | }; | ||
207 | apollo_alert_4: apollo-alert-4 { | ||
208 | temperature = <85000>; /* millicelsius */ | ||
209 | hysteresis = <1000>; /* millicelsius */ | ||
210 | type = "active"; | ||
211 | }; | ||
212 | apollo_alert_5: apollo-alert-5 { | ||
213 | temperature = <90000>; /* millicelsius */ | ||
214 | hysteresis = <1000>; /* millicelsius */ | ||
215 | type = "active"; | ||
216 | }; | ||
217 | apollo_alert_6: apollo-alert-6 { | ||
218 | temperature = <95000>; /* millicelsius */ | ||
219 | hysteresis = <1000>; /* millicelsius */ | ||
220 | type = "active"; | ||
221 | }; | ||
222 | }; | ||
223 | |||
224 | cooling-maps { | ||
225 | map0 { | ||
226 | /* Set maximum frequency as 1200MHz */ | ||
227 | trip = <&apollo_alert_2>; | ||
228 | cooling-device = <&cpu0 1 2>; | ||
229 | }; | ||
230 | map1 { | ||
231 | /* Set maximum frequency as 1100MHz */ | ||
232 | trip = <&apollo_alert_3>; | ||
233 | cooling-device = <&cpu0 2 3>; | ||
234 | }; | ||
235 | map2 { | ||
236 | /* Set maximum frequency as 1000MHz */ | ||
237 | trip = <&apollo_alert_4>; | ||
238 | cooling-device = <&cpu0 3 4>; | ||
239 | }; | ||
240 | map3 { | ||
241 | /* Set maximum frequency as 900MHz */ | ||
242 | trip = <&apollo_alert_5>; | ||
243 | cooling-device = <&cpu0 4 5>; | ||
244 | }; | ||
245 | map4 { | ||
246 | /* Set maximum frequency as 800MHz */ | ||
247 | trip = <&apollo_alert_6>; | ||
248 | cooling-device = <&cpu0 5 9>; | ||
249 | }; | ||
250 | }; | ||
251 | }; | ||
252 | |||
253 | isp_thermal: isp-thermal { | ||
254 | thermal-sensors = <&tmu_isp>; | ||
255 | polling-delay-passive = <0>; | ||
256 | polling-delay = <0>; | ||
257 | trips { | ||
258 | isp_alert_0: isp-alert-0 { | ||
259 | temperature = <80000>; /* millicelsius */ | ||
260 | hysteresis = <1000>; /* millicelsius */ | ||
261 | type = "active"; | ||
262 | }; | ||
263 | isp_alert_1: isp-alert-1 { | ||
264 | temperature = <85000>; /* millicelsius */ | ||
265 | hysteresis = <1000>; /* millicelsius */ | ||
266 | type = "active"; | ||
267 | }; | ||
268 | isp_alert_2: isp-alert-2 { | ||
269 | temperature = <90000>; /* millicelsius */ | ||
270 | hysteresis = <1000>; /* millicelsius */ | ||
271 | type = "active"; | ||
272 | }; | ||
273 | isp_alert_3: isp-alert-3 { | ||
274 | temperature = <95000>; /* millicelsius */ | ||
275 | hysteresis = <1000>; /* millicelsius */ | ||
276 | type = "active"; | ||
277 | }; | ||
278 | isp_alert_4: isp-alert-4 { | ||
279 | temperature = <100000>; /* millicelsius */ | ||
280 | hysteresis = <1000>; /* millicelsius */ | ||
281 | type = "active"; | ||
282 | }; | ||
283 | isp_alert_5: isp-alert-5 { | ||
284 | temperature = <105000>; /* millicelsius */ | ||
285 | hysteresis = <1000>; /* millicelsius */ | ||
286 | type = "active"; | ||
287 | }; | ||
288 | isp_alert_6: isp-alert-6 { | ||
289 | temperature = <110000>; /* millicelsius */ | ||
290 | hysteresis = <1000>; /* millicelsius */ | ||
291 | type = "active"; | ||
292 | }; | ||
293 | }; | ||
294 | }; | ||
295 | }; | ||
296 | }; | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos5433.dtsi b/arch/arm64/boot/dts/exynos/exynos5433.dtsi new file mode 100644 index 000000000000..64226d5ae471 --- /dev/null +++ b/arch/arm64/boot/dts/exynos/exynos5433.dtsi | |||
@@ -0,0 +1,1462 @@ | |||
1 | /* | ||
2 | * Samsung's Exynos5433 SoC device tree source | ||
3 | * | ||
4 | * Copyright (c) 2016 Samsung Electronics Co., Ltd. | ||
5 | * | ||
6 | * Samsung's Exynos5433 SoC device nodes are listed in this file. | ||
7 | * Exynos5433 based board files can include this file and provide | ||
8 | * values for board specific bindings. | ||
9 | * | ||
10 | * Note: This file does not include device nodes for all the controllers in | ||
11 | * Exynos5433 SoC. As device tree coverage for Exynos5433 increases, | ||
12 | * additional nodes can be added to this file. | ||
13 | * | ||
14 | * This program is free software; you can redistribute it and/or modify | ||
15 | * it under the terms of the GNU General Public License version 2 as | ||
16 | * published by the Free Software Foundation. | ||
17 | */ | ||
18 | |||
19 | #include <dt-bindings/clock/exynos5433.h> | ||
20 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
21 | |||
22 | / { | ||
23 | compatible = "samsung,exynos5433"; | ||
24 | #address-cells = <2>; | ||
25 | #size-cells = <2>; | ||
26 | |||
27 | interrupt-parent = <&gic>; | ||
28 | |||
29 | cpus { | ||
30 | #address-cells = <1>; | ||
31 | #size-cells = <0>; | ||
32 | |||
33 | cpu0: cpu@100 { | ||
34 | device_type = "cpu"; | ||
35 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
36 | enable-method = "psci"; | ||
37 | reg = <0x100>; | ||
38 | clock-frequency = <1300000000>; | ||
39 | clocks = <&cmu_apollo CLK_SCLK_APOLLO>; | ||
40 | clock-names = "apolloclk"; | ||
41 | operating-points-v2 = <&cluster_a53_opp_table>; | ||
42 | #cooling-cells = <2>; | ||
43 | }; | ||
44 | |||
45 | cpu1: cpu@101 { | ||
46 | device_type = "cpu"; | ||
47 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
48 | enable-method = "psci"; | ||
49 | reg = <0x101>; | ||
50 | clock-frequency = <1300000000>; | ||
51 | operating-points-v2 = <&cluster_a53_opp_table>; | ||
52 | #cooling-cells = <2>; | ||
53 | }; | ||
54 | |||
55 | cpu2: cpu@102 { | ||
56 | device_type = "cpu"; | ||
57 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
58 | enable-method = "psci"; | ||
59 | reg = <0x102>; | ||
60 | clock-frequency = <1300000000>; | ||
61 | operating-points-v2 = <&cluster_a53_opp_table>; | ||
62 | #cooling-cells = <2>; | ||
63 | }; | ||
64 | |||
65 | cpu3: cpu@103 { | ||
66 | device_type = "cpu"; | ||
67 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
68 | enable-method = "psci"; | ||
69 | reg = <0x103>; | ||
70 | clock-frequency = <1300000000>; | ||
71 | operating-points-v2 = <&cluster_a53_opp_table>; | ||
72 | #cooling-cells = <2>; | ||
73 | }; | ||
74 | |||
75 | cpu4: cpu@0 { | ||
76 | device_type = "cpu"; | ||
77 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
78 | enable-method = "psci"; | ||
79 | reg = <0x0>; | ||
80 | clock-frequency = <1900000000>; | ||
81 | clocks = <&cmu_atlas CLK_SCLK_ATLAS>; | ||
82 | clock-names = "atlasclk"; | ||
83 | operating-points-v2 = <&cluster_a57_opp_table>; | ||
84 | #cooling-cells = <2>; | ||
85 | }; | ||
86 | |||
87 | cpu5: cpu@1 { | ||
88 | device_type = "cpu"; | ||
89 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
90 | enable-method = "psci"; | ||
91 | reg = <0x1>; | ||
92 | clock-frequency = <1900000000>; | ||
93 | operating-points-v2 = <&cluster_a57_opp_table>; | ||
94 | #cooling-cells = <2>; | ||
95 | }; | ||
96 | |||
97 | cpu6: cpu@2 { | ||
98 | device_type = "cpu"; | ||
99 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
100 | enable-method = "psci"; | ||
101 | reg = <0x2>; | ||
102 | clock-frequency = <1900000000>; | ||
103 | operating-points-v2 = <&cluster_a57_opp_table>; | ||
104 | #cooling-cells = <2>; | ||
105 | }; | ||
106 | |||
107 | cpu7: cpu@3 { | ||
108 | device_type = "cpu"; | ||
109 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
110 | enable-method = "psci"; | ||
111 | reg = <0x3>; | ||
112 | clock-frequency = <1900000000>; | ||
113 | operating-points-v2 = <&cluster_a57_opp_table>; | ||
114 | #cooling-cells = <2>; | ||
115 | }; | ||
116 | }; | ||
117 | |||
118 | cluster_a53_opp_table: opp_table0 { | ||
119 | compatible = "operating-points-v2"; | ||
120 | opp-shared; | ||
121 | |||
122 | opp@400000000 { | ||
123 | opp-hz = /bits/ 64 <400000000>; | ||
124 | opp-microvolt = <900000>; | ||
125 | }; | ||
126 | opp@500000000 { | ||
127 | opp-hz = /bits/ 64 <500000000>; | ||
128 | opp-microvolt = <925000>; | ||
129 | }; | ||
130 | opp@600000000 { | ||
131 | opp-hz = /bits/ 64 <600000000>; | ||
132 | opp-microvolt = <950000>; | ||
133 | }; | ||
134 | opp@700000000 { | ||
135 | opp-hz = /bits/ 64 <700000000>; | ||
136 | opp-microvolt = <975000>; | ||
137 | }; | ||
138 | opp@800000000 { | ||
139 | opp-hz = /bits/ 64 <800000000>; | ||
140 | opp-microvolt = <1000000>; | ||
141 | }; | ||
142 | opp@900000000 { | ||
143 | opp-hz = /bits/ 64 <900000000>; | ||
144 | opp-microvolt = <1050000>; | ||
145 | }; | ||
146 | opp@1000000000 { | ||
147 | opp-hz = /bits/ 64 <1000000000>; | ||
148 | opp-microvolt = <1075000>; | ||
149 | }; | ||
150 | opp@1100000000 { | ||
151 | opp-hz = /bits/ 64 <1100000000>; | ||
152 | opp-microvolt = <1112500>; | ||
153 | }; | ||
154 | opp@1200000000 { | ||
155 | opp-hz = /bits/ 64 <1200000000>; | ||
156 | opp-microvolt = <1112500>; | ||
157 | }; | ||
158 | opp@1300000000 { | ||
159 | opp-hz = /bits/ 64 <1300000000>; | ||
160 | opp-microvolt = <1150000>; | ||
161 | }; | ||
162 | }; | ||
163 | |||
164 | cluster_a57_opp_table: opp_table1 { | ||
165 | compatible = "operating-points-v2"; | ||
166 | opp-shared; | ||
167 | |||
168 | opp@500000000 { | ||
169 | opp-hz = /bits/ 64 <500000000>; | ||
170 | opp-microvolt = <900000>; | ||
171 | }; | ||
172 | opp@600000000 { | ||
173 | opp-hz = /bits/ 64 <600000000>; | ||
174 | opp-microvolt = <900000>; | ||
175 | }; | ||
176 | opp@700000000 { | ||
177 | opp-hz = /bits/ 64 <700000000>; | ||
178 | opp-microvolt = <912500>; | ||
179 | }; | ||
180 | opp@800000000 { | ||
181 | opp-hz = /bits/ 64 <800000000>; | ||
182 | opp-microvolt = <912500>; | ||
183 | }; | ||
184 | opp@900000000 { | ||
185 | opp-hz = /bits/ 64 <900000000>; | ||
186 | opp-microvolt = <937500>; | ||
187 | }; | ||
188 | opp@1000000000 { | ||
189 | opp-hz = /bits/ 64 <1000000000>; | ||
190 | opp-microvolt = <975000>; | ||
191 | }; | ||
192 | opp@1100000000 { | ||
193 | opp-hz = /bits/ 64 <1100000000>; | ||
194 | opp-microvolt = <1012500>; | ||
195 | }; | ||
196 | opp@1200000000 { | ||
197 | opp-hz = /bits/ 64 <1200000000>; | ||
198 | opp-microvolt = <1037500>; | ||
199 | }; | ||
200 | opp@1300000000 { | ||
201 | opp-hz = /bits/ 64 <1300000000>; | ||
202 | opp-microvolt = <1062500>; | ||
203 | }; | ||
204 | opp@1400000000 { | ||
205 | opp-hz = /bits/ 64 <1400000000>; | ||
206 | opp-microvolt = <1087500>; | ||
207 | }; | ||
208 | opp@1500000000 { | ||
209 | opp-hz = /bits/ 64 <1500000000>; | ||
210 | opp-microvolt = <1125000>; | ||
211 | }; | ||
212 | opp@1600000000 { | ||
213 | opp-hz = /bits/ 64 <1600000000>; | ||
214 | opp-microvolt = <1137500>; | ||
215 | }; | ||
216 | opp@1700000000 { | ||
217 | opp-hz = /bits/ 64 <1700000000>; | ||
218 | opp-microvolt = <1175000>; | ||
219 | }; | ||
220 | opp@1800000000 { | ||
221 | opp-hz = /bits/ 64 <1800000000>; | ||
222 | opp-microvolt = <1212500>; | ||
223 | }; | ||
224 | opp@1900000000 { | ||
225 | opp-hz = /bits/ 64 <1900000000>; | ||
226 | opp-microvolt = <1262500>; | ||
227 | }; | ||
228 | }; | ||
229 | |||
230 | psci { | ||
231 | compatible = "arm,psci"; | ||
232 | method = "smc"; | ||
233 | cpu_off = <0x84000002>; | ||
234 | cpu_on = <0xC4000003>; | ||
235 | }; | ||
236 | |||
237 | reboot: syscon-reboot { | ||
238 | compatible = "syscon-reboot"; | ||
239 | regmap = <&pmu_system_controller>; | ||
240 | offset = <0x400>; /* SWRESET */ | ||
241 | mask = <0x1>; | ||
242 | }; | ||
243 | |||
244 | soc: soc { | ||
245 | compatible = "simple-bus"; | ||
246 | #address-cells = <1>; | ||
247 | #size-cells = <1>; | ||
248 | ranges = <0x0 0x0 0x0 0x18000000>; | ||
249 | |||
250 | chipid@10000000 { | ||
251 | compatible = "samsung,exynos4210-chipid"; | ||
252 | reg = <0x10000000 0x100>; | ||
253 | }; | ||
254 | |||
255 | xxti: xxti { | ||
256 | compatible = "fixed-clock"; | ||
257 | clock-output-names = "oscclk"; | ||
258 | #clock-cells = <0>; | ||
259 | }; | ||
260 | |||
261 | cmu_top: clock-controller@10030000 { | ||
262 | compatible = "samsung,exynos5433-cmu-top"; | ||
263 | reg = <0x10030000 0x1000>; | ||
264 | #clock-cells = <1>; | ||
265 | |||
266 | clock-names = "oscclk", | ||
267 | "sclk_mphy_pll", | ||
268 | "sclk_mfc_pll", | ||
269 | "sclk_bus_pll"; | ||
270 | clocks = <&xxti>, | ||
271 | <&cmu_cpif CLK_SCLK_MPHY_PLL>, | ||
272 | <&cmu_mif CLK_SCLK_MFC_PLL>, | ||
273 | <&cmu_mif CLK_SCLK_BUS_PLL>; | ||
274 | }; | ||
275 | |||
276 | cmu_cpif: clock-controller@10fc0000 { | ||
277 | compatible = "samsung,exynos5433-cmu-cpif"; | ||
278 | reg = <0x10fc0000 0x1000>; | ||
279 | #clock-cells = <1>; | ||
280 | |||
281 | clock-names = "oscclk"; | ||
282 | clocks = <&xxti>; | ||
283 | }; | ||
284 | |||
285 | cmu_mif: clock-controller@105b0000 { | ||
286 | compatible = "samsung,exynos5433-cmu-mif"; | ||
287 | reg = <0x105b0000 0x2000>; | ||
288 | #clock-cells = <1>; | ||
289 | |||
290 | clock-names = "oscclk", | ||
291 | "sclk_mphy_pll"; | ||
292 | clocks = <&xxti>, | ||
293 | <&cmu_cpif CLK_SCLK_MPHY_PLL>; | ||
294 | }; | ||
295 | |||
296 | cmu_peric: clock-controller@14c80000 { | ||
297 | compatible = "samsung,exynos5433-cmu-peric"; | ||
298 | reg = <0x14c80000 0x1000>; | ||
299 | #clock-cells = <1>; | ||
300 | }; | ||
301 | |||
302 | cmu_peris: clock-controller@0x10040000 { | ||
303 | compatible = "samsung,exynos5433-cmu-peris"; | ||
304 | reg = <0x10040000 0x1000>; | ||
305 | #clock-cells = <1>; | ||
306 | }; | ||
307 | |||
308 | cmu_fsys: clock-controller@156e0000 { | ||
309 | compatible = "samsung,exynos5433-cmu-fsys"; | ||
310 | reg = <0x156e0000 0x1000>; | ||
311 | #clock-cells = <1>; | ||
312 | |||
313 | clock-names = "oscclk", | ||
314 | "sclk_ufs_mphy", | ||
315 | "aclk_fsys_200", | ||
316 | "sclk_pcie_100_fsys", | ||
317 | "sclk_ufsunipro_fsys", | ||
318 | "sclk_mmc2_fsys", | ||
319 | "sclk_mmc1_fsys", | ||
320 | "sclk_mmc0_fsys", | ||
321 | "sclk_usbhost30_fsys", | ||
322 | "sclk_usbdrd30_fsys"; | ||
323 | clocks = <&xxti>, | ||
324 | <&cmu_cpif CLK_SCLK_UFS_MPHY>, | ||
325 | <&cmu_top CLK_ACLK_FSYS_200>, | ||
326 | <&cmu_top CLK_SCLK_PCIE_100_FSYS>, | ||
327 | <&cmu_top CLK_SCLK_UFSUNIPRO_FSYS>, | ||
328 | <&cmu_top CLK_SCLK_MMC2_FSYS>, | ||
329 | <&cmu_top CLK_SCLK_MMC1_FSYS>, | ||
330 | <&cmu_top CLK_SCLK_MMC0_FSYS>, | ||
331 | <&cmu_top CLK_SCLK_USBHOST30_FSYS>, | ||
332 | <&cmu_top CLK_SCLK_USBDRD30_FSYS>; | ||
333 | }; | ||
334 | |||
335 | cmu_g2d: clock-controller@12460000 { | ||
336 | compatible = "samsung,exynos5433-cmu-g2d"; | ||
337 | reg = <0x12460000 0x1000>; | ||
338 | #clock-cells = <1>; | ||
339 | |||
340 | clock-names = "oscclk", | ||
341 | "aclk_g2d_266", | ||
342 | "aclk_g2d_400"; | ||
343 | clocks = <&xxti>, | ||
344 | <&cmu_top CLK_ACLK_G2D_266>, | ||
345 | <&cmu_top CLK_ACLK_G2D_400>; | ||
346 | }; | ||
347 | |||
348 | cmu_disp: clock-controller@13b90000 { | ||
349 | compatible = "samsung,exynos5433-cmu-disp"; | ||
350 | reg = <0x13b90000 0x1000>; | ||
351 | #clock-cells = <1>; | ||
352 | |||
353 | clock-names = "oscclk", | ||
354 | "sclk_dsim1_disp", | ||
355 | "sclk_dsim0_disp", | ||
356 | "sclk_dsd_disp", | ||
357 | "sclk_decon_tv_eclk_disp", | ||
358 | "sclk_decon_vclk_disp", | ||
359 | "sclk_decon_eclk_disp", | ||
360 | "sclk_decon_tv_vclk_disp", | ||
361 | "aclk_disp_333"; | ||
362 | clocks = <&xxti>, | ||
363 | <&cmu_mif CLK_SCLK_DSIM1_DISP>, | ||
364 | <&cmu_mif CLK_SCLK_DSIM0_DISP>, | ||
365 | <&cmu_mif CLK_SCLK_DSD_DISP>, | ||
366 | <&cmu_mif CLK_SCLK_DECON_TV_ECLK_DISP>, | ||
367 | <&cmu_mif CLK_SCLK_DECON_VCLK_DISP>, | ||
368 | <&cmu_mif CLK_SCLK_DECON_ECLK_DISP>, | ||
369 | <&cmu_mif CLK_SCLK_DECON_TV_VCLK_DISP>, | ||
370 | <&cmu_mif CLK_ACLK_DISP_333>; | ||
371 | }; | ||
372 | |||
373 | cmu_aud: clock-controller@114c0000 { | ||
374 | compatible = "samsung,exynos5433-cmu-aud"; | ||
375 | reg = <0x114c0000 0x1000>; | ||
376 | #clock-cells = <1>; | ||
377 | clock-names = "oscclk", "fout_aud_pll"; | ||
378 | clocks = <&xxti>, <&cmu_top CLK_FOUT_AUD_PLL>; | ||
379 | }; | ||
380 | |||
381 | cmu_bus0: clock-controller@13600000 { | ||
382 | compatible = "samsung,exynos5433-cmu-bus0"; | ||
383 | reg = <0x13600000 0x1000>; | ||
384 | #clock-cells = <1>; | ||
385 | |||
386 | clock-names = "aclk_bus0_400"; | ||
387 | clocks = <&cmu_top CLK_ACLK_BUS0_400>; | ||
388 | }; | ||
389 | |||
390 | cmu_bus1: clock-controller@14800000 { | ||
391 | compatible = "samsung,exynos5433-cmu-bus1"; | ||
392 | reg = <0x14800000 0x1000>; | ||
393 | #clock-cells = <1>; | ||
394 | |||
395 | clock-names = "aclk_bus1_400"; | ||
396 | clocks = <&cmu_top CLK_ACLK_BUS1_400>; | ||
397 | }; | ||
398 | |||
399 | cmu_bus2: clock-controller@13400000 { | ||
400 | compatible = "samsung,exynos5433-cmu-bus2"; | ||
401 | reg = <0x13400000 0x1000>; | ||
402 | #clock-cells = <1>; | ||
403 | |||
404 | clock-names = "oscclk", "aclk_bus2_400"; | ||
405 | clocks = <&xxti>, <&cmu_mif CLK_ACLK_BUS2_400>; | ||
406 | }; | ||
407 | |||
408 | cmu_g3d: clock-controller@14aa0000 { | ||
409 | compatible = "samsung,exynos5433-cmu-g3d"; | ||
410 | reg = <0x14aa0000 0x2000>; | ||
411 | #clock-cells = <1>; | ||
412 | |||
413 | clock-names = "oscclk", "aclk_g3d_400"; | ||
414 | clocks = <&xxti>, <&cmu_top CLK_ACLK_G3D_400>; | ||
415 | }; | ||
416 | |||
417 | cmu_gscl: clock-controller@13cf0000 { | ||
418 | compatible = "samsung,exynos5433-cmu-gscl"; | ||
419 | reg = <0x13cf0000 0x1000>; | ||
420 | #clock-cells = <1>; | ||
421 | |||
422 | clock-names = "oscclk", | ||
423 | "aclk_gscl_111", | ||
424 | "aclk_gscl_333"; | ||
425 | clocks = <&xxti>, | ||
426 | <&cmu_top CLK_ACLK_GSCL_111>, | ||
427 | <&cmu_top CLK_ACLK_GSCL_333>; | ||
428 | }; | ||
429 | |||
430 | cmu_apollo: clock-controller@11900000 { | ||
431 | compatible = "samsung,exynos5433-cmu-apollo"; | ||
432 | reg = <0x11900000 0x2000>; | ||
433 | #clock-cells = <1>; | ||
434 | |||
435 | clock-names = "oscclk", "sclk_bus_pll_apollo"; | ||
436 | clocks = <&xxti>, <&cmu_mif CLK_SCLK_BUS_PLL_APOLLO>; | ||
437 | }; | ||
438 | |||
439 | cmu_atlas: clock-controller@11800000 { | ||
440 | compatible = "samsung,exynos5433-cmu-atlas"; | ||
441 | reg = <0x11800000 0x2000>; | ||
442 | #clock-cells = <1>; | ||
443 | |||
444 | clock-names = "oscclk", "sclk_bus_pll_atlas"; | ||
445 | clocks = <&xxti>, <&cmu_mif CLK_SCLK_BUS_PLL_ATLAS>; | ||
446 | }; | ||
447 | |||
448 | cmu_mscl: clock-controller@105d0000 { | ||
449 | compatible = "samsung,exynos5433-cmu-mscl"; | ||
450 | reg = <0x150d0000 0x1000>; | ||
451 | #clock-cells = <1>; | ||
452 | |||
453 | clock-names = "oscclk", | ||
454 | "sclk_jpeg_mscl", | ||
455 | "aclk_mscl_400"; | ||
456 | clocks = <&xxti>, | ||
457 | <&cmu_top CLK_SCLK_JPEG_MSCL>, | ||
458 | <&cmu_top CLK_ACLK_MSCL_400>; | ||
459 | }; | ||
460 | |||
461 | cmu_mfc: clock-controller@15280000 { | ||
462 | compatible = "samsung,exynos5433-cmu-mfc"; | ||
463 | reg = <0x15280000 0x1000>; | ||
464 | #clock-cells = <1>; | ||
465 | |||
466 | clock-names = "oscclk", "aclk_mfc_400"; | ||
467 | clocks = <&xxti>, <&cmu_top CLK_ACLK_MFC_400>; | ||
468 | }; | ||
469 | |||
470 | cmu_hevc: clock-controller@14f80000 { | ||
471 | compatible = "samsung,exynos5433-cmu-hevc"; | ||
472 | reg = <0x14f80000 0x1000>; | ||
473 | #clock-cells = <1>; | ||
474 | |||
475 | clock-names = "oscclk", "aclk_hevc_400"; | ||
476 | clocks = <&xxti>, <&cmu_top CLK_ACLK_HEVC_400>; | ||
477 | }; | ||
478 | |||
479 | cmu_isp: clock-controller@146d0000 { | ||
480 | compatible = "samsung,exynos5433-cmu-isp"; | ||
481 | reg = <0x146d0000 0x1000>; | ||
482 | #clock-cells = <1>; | ||
483 | |||
484 | clock-names = "oscclk", | ||
485 | "aclk_isp_dis_400", | ||
486 | "aclk_isp_400"; | ||
487 | clocks = <&xxti>, | ||
488 | <&cmu_top CLK_ACLK_ISP_DIS_400>, | ||
489 | <&cmu_top CLK_ACLK_ISP_400>; | ||
490 | }; | ||
491 | |||
492 | cmu_cam0: clock-controller@120d0000 { | ||
493 | compatible = "samsung,exynos5433-cmu-cam0"; | ||
494 | reg = <0x120d0000 0x1000>; | ||
495 | #clock-cells = <1>; | ||
496 | |||
497 | clock-names = "oscclk", | ||
498 | "aclk_cam0_333", | ||
499 | "aclk_cam0_400", | ||
500 | "aclk_cam0_552"; | ||
501 | clocks = <&xxti>, | ||
502 | <&cmu_top CLK_ACLK_CAM0_333>, | ||
503 | <&cmu_top CLK_ACLK_CAM0_400>, | ||
504 | <&cmu_top CLK_ACLK_CAM0_552>; | ||
505 | }; | ||
506 | |||
507 | cmu_cam1: clock-controller@145d0000 { | ||
508 | compatible = "samsung,exynos5433-cmu-cam1"; | ||
509 | reg = <0x145d0000 0x1000>; | ||
510 | #clock-cells = <1>; | ||
511 | |||
512 | clock-names = "oscclk", | ||
513 | "sclk_isp_uart_cam1", | ||
514 | "sclk_isp_spi1_cam1", | ||
515 | "sclk_isp_spi0_cam1", | ||
516 | "aclk_cam1_333", | ||
517 | "aclk_cam1_400", | ||
518 | "aclk_cam1_552"; | ||
519 | clocks = <&xxti>, | ||
520 | <&cmu_top CLK_SCLK_ISP_UART_CAM1>, | ||
521 | <&cmu_top CLK_SCLK_ISP_SPI1_CAM1>, | ||
522 | <&cmu_top CLK_SCLK_ISP_SPI0_CAM1>, | ||
523 | <&cmu_top CLK_ACLK_CAM1_333>, | ||
524 | <&cmu_top CLK_ACLK_CAM1_400>, | ||
525 | <&cmu_top CLK_ACLK_CAM1_552>; | ||
526 | }; | ||
527 | |||
528 | tmu_atlas0: tmu@10060000 { | ||
529 | compatible = "samsung,exynos5433-tmu"; | ||
530 | reg = <0x10060000 0x200>; | ||
531 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
532 | clocks = <&cmu_peris CLK_PCLK_TMU0_APBIF>, | ||
533 | <&cmu_peris CLK_SCLK_TMU0>; | ||
534 | clock-names = "tmu_apbif", "tmu_sclk"; | ||
535 | #include "exynos5433-tmu-sensor-conf.dtsi" | ||
536 | status = "disabled"; | ||
537 | }; | ||
538 | |||
539 | tmu_atlas1: tmu@10068000 { | ||
540 | compatible = "samsung,exynos5433-tmu"; | ||
541 | reg = <0x10068000 0x200>; | ||
542 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | ||
543 | clocks = <&cmu_peris CLK_PCLK_TMU0_APBIF>, | ||
544 | <&cmu_peris CLK_SCLK_TMU0>; | ||
545 | clock-names = "tmu_apbif", "tmu_sclk"; | ||
546 | #include "exynos5433-tmu-sensor-conf.dtsi" | ||
547 | status = "disabled"; | ||
548 | }; | ||
549 | |||
550 | tmu_g3d: tmu@10070000 { | ||
551 | compatible = "samsung,exynos5433-tmu"; | ||
552 | reg = <0x10070000 0x200>; | ||
553 | interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; | ||
554 | clocks = <&cmu_peris CLK_PCLK_TMU1_APBIF>, | ||
555 | <&cmu_peris CLK_SCLK_TMU1>; | ||
556 | clock-names = "tmu_apbif", "tmu_sclk"; | ||
557 | #include "exynos5433-tmu-g3d-sensor-conf.dtsi" | ||
558 | status = "disabled"; | ||
559 | }; | ||
560 | |||
561 | tmu_apollo: tmu@10078000 { | ||
562 | compatible = "samsung,exynos5433-tmu"; | ||
563 | reg = <0x10078000 0x200>; | ||
564 | interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; | ||
565 | clocks = <&cmu_peris CLK_PCLK_TMU1_APBIF>, | ||
566 | <&cmu_peris CLK_SCLK_TMU1>; | ||
567 | clock-names = "tmu_apbif", "tmu_sclk"; | ||
568 | #include "exynos5433-tmu-sensor-conf.dtsi" | ||
569 | status = "disabled"; | ||
570 | }; | ||
571 | |||
572 | tmu_isp: tmu@1007c000 { | ||
573 | compatible = "samsung,exynos5433-tmu"; | ||
574 | reg = <0x1007c000 0x200>; | ||
575 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; | ||
576 | clocks = <&cmu_peris CLK_PCLK_TMU1_APBIF>, | ||
577 | <&cmu_peris CLK_SCLK_TMU1>; | ||
578 | clock-names = "tmu_apbif", "tmu_sclk"; | ||
579 | #include "exynos5433-tmu-sensor-conf.dtsi" | ||
580 | status = "disabled"; | ||
581 | }; | ||
582 | |||
583 | mct@101c0000 { | ||
584 | compatible = "samsung,exynos4210-mct"; | ||
585 | reg = <0x101c0000 0x800>; | ||
586 | interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, | ||
587 | <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, | ||
588 | <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, | ||
589 | <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, | ||
590 | <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, | ||
591 | <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, | ||
592 | <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>, | ||
593 | <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>, | ||
594 | <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>, | ||
595 | <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, | ||
596 | <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, | ||
597 | <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; | ||
598 | clocks = <&xxti>, <&cmu_peris CLK_PCLK_MCT>; | ||
599 | clock-names = "fin_pll", "mct"; | ||
600 | }; | ||
601 | |||
602 | pinctrl_alive: pinctrl@10580000 { | ||
603 | compatible = "samsung,exynos5433-pinctrl"; | ||
604 | reg = <0x10580000 0x1a20>, <0x11090000 0x100>; | ||
605 | |||
606 | wakeup-interrupt-controller { | ||
607 | compatible = "samsung,exynos7-wakeup-eint"; | ||
608 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; | ||
609 | }; | ||
610 | }; | ||
611 | |||
612 | pinctrl_aud: pinctrl@114b0000 { | ||
613 | compatible = "samsung,exynos5433-pinctrl"; | ||
614 | reg = <0x114b0000 0x1000>; | ||
615 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; | ||
616 | }; | ||
617 | |||
618 | pinctrl_cpif: pinctrl@10fe0000 { | ||
619 | compatible = "samsung,exynos5433-pinctrl"; | ||
620 | reg = <0x10fe0000 0x1000>; | ||
621 | interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>; | ||
622 | }; | ||
623 | |||
624 | pinctrl_ese: pinctrl@14ca0000 { | ||
625 | compatible = "samsung,exynos5433-pinctrl"; | ||
626 | reg = <0x14ca0000 0x1000>; | ||
627 | interrupts = <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>; | ||
628 | }; | ||
629 | |||
630 | pinctrl_finger: pinctrl@14cb0000 { | ||
631 | compatible = "samsung,exynos5433-pinctrl"; | ||
632 | reg = <0x14cb0000 0x1000>; | ||
633 | interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>; | ||
634 | }; | ||
635 | |||
636 | pinctrl_fsys: pinctrl@15690000 { | ||
637 | compatible = "samsung,exynos5433-pinctrl"; | ||
638 | reg = <0x15690000 0x1000>; | ||
639 | interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; | ||
640 | }; | ||
641 | |||
642 | pinctrl_imem: pinctrl@11090000 { | ||
643 | compatible = "samsung,exynos5433-pinctrl"; | ||
644 | reg = <0x11090000 0x1000>; | ||
645 | interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>; | ||
646 | }; | ||
647 | |||
648 | pinctrl_nfc: pinctrl@14cd0000 { | ||
649 | compatible = "samsung,exynos5433-pinctrl"; | ||
650 | reg = <0x14cd0000 0x1000>; | ||
651 | interrupts = <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>; | ||
652 | }; | ||
653 | |||
654 | pinctrl_peric: pinctrl@14cc0000 { | ||
655 | compatible = "samsung,exynos5433-pinctrl"; | ||
656 | reg = <0x14cc0000 0x1100>; | ||
657 | interrupts = <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>; | ||
658 | }; | ||
659 | |||
660 | pinctrl_touch: pinctrl@14ce0000 { | ||
661 | compatible = "samsung,exynos5433-pinctrl"; | ||
662 | reg = <0x14ce0000 0x1100>; | ||
663 | interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>; | ||
664 | }; | ||
665 | |||
666 | pmu_system_controller: system-controller@105c0000 { | ||
667 | compatible = "samsung,exynos5433-pmu", "syscon"; | ||
668 | reg = <0x105c0000 0x5008>; | ||
669 | #clock-cells = <1>; | ||
670 | clock-names = "clkout16"; | ||
671 | clocks = <&xxti>; | ||
672 | }; | ||
673 | |||
674 | gic: interrupt-controller@11001000 { | ||
675 | compatible = "arm,gic-400"; | ||
676 | #interrupt-cells = <3>; | ||
677 | interrupt-controller; | ||
678 | reg = <0x11001000 0x1000>, | ||
679 | <0x11002000 0x2000>, | ||
680 | <0x11004000 0x2000>, | ||
681 | <0x11006000 0x2000>; | ||
682 | interrupts = <GIC_PPI 9 0xf04>; | ||
683 | }; | ||
684 | |||
685 | mipi_phy: video-phy@105c0710 { | ||
686 | compatible = "samsung,exynos5433-mipi-video-phy"; | ||
687 | #phy-cells = <1>; | ||
688 | samsung,pmu-syscon = <&pmu_system_controller>; | ||
689 | samsung,cam0-sysreg = <&syscon_cam0>; | ||
690 | samsung,cam1-sysreg = <&syscon_cam1>; | ||
691 | samsung,disp-sysreg = <&syscon_disp>; | ||
692 | }; | ||
693 | |||
694 | decon: decon@13800000 { | ||
695 | compatible = "samsung,exynos5433-decon"; | ||
696 | reg = <0x13800000 0x2104>; | ||
697 | clocks = <&cmu_disp CLK_PCLK_DECON>, | ||
698 | <&cmu_disp CLK_ACLK_DECON>, | ||
699 | <&cmu_disp CLK_ACLK_SMMU_DECON0X>, | ||
700 | <&cmu_disp CLK_ACLK_XIU_DECON0X>, | ||
701 | <&cmu_disp CLK_PCLK_SMMU_DECON0X>, | ||
702 | <&cmu_disp CLK_SCLK_DECON_VCLK>, | ||
703 | <&cmu_disp CLK_SCLK_DECON_ECLK>; | ||
704 | clock-names = "pclk", "aclk_decon", "aclk_smmu_decon0x", | ||
705 | "aclk_xiu_decon0x", "pclk_smmu_decon0x", | ||
706 | "sclk_decon_vclk", "sclk_decon_eclk"; | ||
707 | interrupt-names = "fifo", "vsync", "lcd_sys"; | ||
708 | interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>, | ||
709 | <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, | ||
710 | <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>; | ||
711 | samsung,disp-sysreg = <&syscon_disp>; | ||
712 | status = "disabled"; | ||
713 | iommus = <&sysmmu_decon0x>, <&sysmmu_decon1x>; | ||
714 | iommu-names = "m0", "m1"; | ||
715 | |||
716 | ports { | ||
717 | #address-cells = <1>; | ||
718 | #size-cells = <0>; | ||
719 | |||
720 | port@0 { | ||
721 | reg = <0>; | ||
722 | decon_to_mic: endpoint { | ||
723 | remote-endpoint = | ||
724 | <&mic_to_decon>; | ||
725 | }; | ||
726 | }; | ||
727 | }; | ||
728 | }; | ||
729 | |||
730 | dsi: dsi@13900000 { | ||
731 | compatible = "samsung,exynos5433-mipi-dsi"; | ||
732 | reg = <0x13900000 0xC0>; | ||
733 | interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; | ||
734 | phys = <&mipi_phy 1>; | ||
735 | phy-names = "dsim"; | ||
736 | clocks = <&cmu_disp CLK_PCLK_DSIM0>, | ||
737 | <&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8>, | ||
738 | <&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0>, | ||
739 | <&cmu_disp CLK_SCLK_RGB_VCLK_TO_DSIM0>, | ||
740 | <&cmu_disp CLK_SCLK_DSIM0>; | ||
741 | clock-names = "bus_clk", | ||
742 | "phyclk_mipidphy0_bitclkdiv8", | ||
743 | "phyclk_mipidphy0_rxclkesc0", | ||
744 | "sclk_rgb_vclk_to_dsim0", | ||
745 | "sclk_mipi"; | ||
746 | status = "disabled"; | ||
747 | #address-cells = <1>; | ||
748 | #size-cells = <0>; | ||
749 | |||
750 | ports { | ||
751 | #address-cells = <1>; | ||
752 | #size-cells = <0>; | ||
753 | |||
754 | port@0 { | ||
755 | reg = <0>; | ||
756 | dsi_to_mic: endpoint { | ||
757 | remote-endpoint = <&mic_to_dsi>; | ||
758 | }; | ||
759 | }; | ||
760 | }; | ||
761 | }; | ||
762 | |||
763 | mic: mic@13930000 { | ||
764 | compatible = "samsung,exynos5433-mic"; | ||
765 | reg = <0x13930000 0x48>; | ||
766 | clocks = <&cmu_disp CLK_PCLK_MIC0>, | ||
767 | <&cmu_disp CLK_SCLK_RGB_VCLK_TO_MIC0>; | ||
768 | clock-names = "pclk_mic0", "sclk_rgb_vclk_to_mic0"; | ||
769 | samsung,disp-syscon = <&syscon_disp>; | ||
770 | status = "disabled"; | ||
771 | |||
772 | ports { | ||
773 | #address-cells = <1>; | ||
774 | #size-cells = <0>; | ||
775 | |||
776 | port@0 { | ||
777 | reg = <0>; | ||
778 | mic_to_decon: endpoint { | ||
779 | remote-endpoint = | ||
780 | <&decon_to_mic>; | ||
781 | }; | ||
782 | }; | ||
783 | |||
784 | port@1 { | ||
785 | reg = <1>; | ||
786 | mic_to_dsi: endpoint { | ||
787 | remote-endpoint = <&dsi_to_mic>; | ||
788 | }; | ||
789 | }; | ||
790 | }; | ||
791 | }; | ||
792 | |||
793 | syscon_disp: syscon@13b80000 { | ||
794 | compatible = "syscon"; | ||
795 | reg = <0x13b80000 0x1010>; | ||
796 | }; | ||
797 | |||
798 | syscon_cam0: syscon@120f0000 { | ||
799 | compatible = "syscon"; | ||
800 | reg = <0x120f0000 0x1020>; | ||
801 | }; | ||
802 | |||
803 | syscon_cam1: syscon@145f0000 { | ||
804 | compatible = "syscon"; | ||
805 | reg = <0x145f0000 0x1038>; | ||
806 | }; | ||
807 | |||
808 | gsc_0: video-scaler@13C00000 { | ||
809 | compatible = "samsung,exynos5433-gsc"; | ||
810 | reg = <0x13c00000 0x1000>; | ||
811 | interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>; | ||
812 | clock-names = "pclk", "aclk", "aclk_xiu", | ||
813 | "aclk_gsclbend"; | ||
814 | clocks = <&cmu_gscl CLK_PCLK_GSCL0>, | ||
815 | <&cmu_gscl CLK_ACLK_GSCL0>, | ||
816 | <&cmu_gscl CLK_ACLK_XIU_GSCLX>, | ||
817 | <&cmu_gscl CLK_ACLK_GSCLBEND_333>; | ||
818 | iommus = <&sysmmu_gscl0>; | ||
819 | }; | ||
820 | |||
821 | gsc_1: video-scaler@13C10000 { | ||
822 | compatible = "samsung,exynos5433-gsc"; | ||
823 | reg = <0x13c10000 0x1000>; | ||
824 | interrupts = <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>; | ||
825 | clock-names = "pclk", "aclk", "aclk_xiu", | ||
826 | "aclk_gsclbend"; | ||
827 | clocks = <&cmu_gscl CLK_PCLK_GSCL1>, | ||
828 | <&cmu_gscl CLK_ACLK_GSCL1>, | ||
829 | <&cmu_gscl CLK_ACLK_XIU_GSCLX>, | ||
830 | <&cmu_gscl CLK_ACLK_GSCLBEND_333>; | ||
831 | iommus = <&sysmmu_gscl1>; | ||
832 | }; | ||
833 | |||
834 | gsc_2: video-scaler@13C20000 { | ||
835 | compatible = "samsung,exynos5433-gsc"; | ||
836 | reg = <0x13c20000 0x1000>; | ||
837 | interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>; | ||
838 | clock-names = "pclk", "aclk", "aclk_xiu", | ||
839 | "aclk_gsclbend"; | ||
840 | clocks = <&cmu_gscl CLK_PCLK_GSCL2>, | ||
841 | <&cmu_gscl CLK_ACLK_GSCL2>, | ||
842 | <&cmu_gscl CLK_ACLK_XIU_GSCLX>, | ||
843 | <&cmu_gscl CLK_ACLK_GSCLBEND_333>; | ||
844 | iommus = <&sysmmu_gscl2>; | ||
845 | }; | ||
846 | |||
847 | jpeg: codec@15020000 { | ||
848 | compatible = "samsung,exynos5433-jpeg"; | ||
849 | reg = <0x15020000 0x10000>; | ||
850 | interrupts = <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>; | ||
851 | clock-names = "pclk", "aclk", "aclk_xiu", "sclk"; | ||
852 | clocks = <&cmu_mscl CLK_PCLK_JPEG>, | ||
853 | <&cmu_mscl CLK_ACLK_JPEG>, | ||
854 | <&cmu_mscl CLK_ACLK_XIU_MSCLX>, | ||
855 | <&cmu_mscl CLK_SCLK_JPEG>; | ||
856 | iommus = <&sysmmu_jpeg>; | ||
857 | }; | ||
858 | |||
859 | mfc: codec@152E0000 { | ||
860 | compatible = "samsung,exynos5433-mfc"; | ||
861 | reg = <0x152E0000 0x10000>; | ||
862 | interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; | ||
863 | clock-names = "pclk", "aclk", "aclk_xiu"; | ||
864 | clocks = <&cmu_mfc CLK_PCLK_MFC>, | ||
865 | <&cmu_mfc CLK_ACLK_MFC>, | ||
866 | <&cmu_mfc CLK_ACLK_XIU_MFCX>; | ||
867 | iommus = <&sysmmu_mfc_0>, <&sysmmu_mfc_1>; | ||
868 | iommu-names = "left", "right"; | ||
869 | }; | ||
870 | |||
871 | sysmmu_decon0x: sysmmu@0x13a00000 { | ||
872 | compatible = "samsung,exynos-sysmmu"; | ||
873 | reg = <0x13a00000 0x1000>; | ||
874 | interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; | ||
875 | clock-names = "pclk", "aclk"; | ||
876 | clocks = <&cmu_disp CLK_PCLK_SMMU_DECON0X>, | ||
877 | <&cmu_disp CLK_ACLK_SMMU_DECON0X>; | ||
878 | #iommu-cells = <0>; | ||
879 | }; | ||
880 | |||
881 | sysmmu_decon1x: sysmmu@0x13a10000 { | ||
882 | compatible = "samsung,exynos-sysmmu"; | ||
883 | reg = <0x13a10000 0x1000>; | ||
884 | interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; | ||
885 | clock-names = "pclk", "aclk"; | ||
886 | clocks = <&cmu_disp CLK_PCLK_SMMU_DECON1X>, | ||
887 | <&cmu_disp CLK_ACLK_SMMU_DECON1X>; | ||
888 | #iommu-cells = <0>; | ||
889 | }; | ||
890 | |||
891 | sysmmu_gscl0: sysmmu@0x13C80000 { | ||
892 | compatible = "samsung,exynos-sysmmu"; | ||
893 | reg = <0x13C80000 0x1000>; | ||
894 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | ||
895 | clock-names = "aclk", "pclk"; | ||
896 | clocks = <&cmu_gscl CLK_ACLK_SMMU_GSCL0>, | ||
897 | <&cmu_gscl CLK_PCLK_SMMU_GSCL0>; | ||
898 | #iommu-cells = <0>; | ||
899 | }; | ||
900 | |||
901 | sysmmu_gscl1: sysmmu@0x13C90000 { | ||
902 | compatible = "samsung,exynos-sysmmu"; | ||
903 | reg = <0x13C90000 0x1000>; | ||
904 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | ||
905 | clock-names = "aclk", "pclk"; | ||
906 | clocks = <&cmu_gscl CLK_ACLK_SMMU_GSCL1>, | ||
907 | <&cmu_gscl CLK_PCLK_SMMU_GSCL1>; | ||
908 | #iommu-cells = <0>; | ||
909 | }; | ||
910 | |||
911 | sysmmu_gscl2: sysmmu@0x13CA0000 { | ||
912 | compatible = "samsung,exynos-sysmmu"; | ||
913 | reg = <0x13CA0000 0x1000>; | ||
914 | interrupts = <GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>; | ||
915 | clock-names = "aclk", "pclk"; | ||
916 | clocks = <&cmu_gscl CLK_ACLK_SMMU_GSCL2>, | ||
917 | <&cmu_gscl CLK_PCLK_SMMU_GSCL2>; | ||
918 | #iommu-cells = <0>; | ||
919 | }; | ||
920 | |||
921 | sysmmu_jpeg: sysmmu@0x15060000 { | ||
922 | compatible = "samsung,exynos-sysmmu"; | ||
923 | reg = <0x15060000 0x1000>; | ||
924 | interrupts = <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>; | ||
925 | clock-names = "pclk", "aclk"; | ||
926 | clocks = <&cmu_mscl CLK_PCLK_SMMU_JPEG>, | ||
927 | <&cmu_mscl CLK_ACLK_SMMU_JPEG>; | ||
928 | #iommu-cells = <0>; | ||
929 | }; | ||
930 | |||
931 | sysmmu_mfc_0: sysmmu@0x15200000 { | ||
932 | compatible = "samsung,exynos-sysmmu"; | ||
933 | reg = <0x15200000 0x1000>; | ||
934 | interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; | ||
935 | clock-names = "pclk", "aclk"; | ||
936 | clocks = <&cmu_mfc CLK_PCLK_SMMU_MFC_0>, | ||
937 | <&cmu_mfc CLK_ACLK_SMMU_MFC_0>; | ||
938 | #iommu-cells = <0>; | ||
939 | }; | ||
940 | |||
941 | sysmmu_mfc_1: sysmmu@0x15210000 { | ||
942 | compatible = "samsung,exynos-sysmmu"; | ||
943 | reg = <0x15210000 0x1000>; | ||
944 | interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; | ||
945 | clock-names = "pclk", "aclk"; | ||
946 | clocks = <&cmu_mfc CLK_PCLK_SMMU_MFC_1>, | ||
947 | <&cmu_mfc CLK_ACLK_SMMU_MFC_1>; | ||
948 | #iommu-cells = <0>; | ||
949 | }; | ||
950 | |||
951 | serial_0: serial@14c10000 { | ||
952 | compatible = "samsung,exynos5433-uart"; | ||
953 | reg = <0x14c10000 0x100>; | ||
954 | interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>; | ||
955 | clocks = <&cmu_peric CLK_PCLK_UART0>, | ||
956 | <&cmu_peric CLK_SCLK_UART0>; | ||
957 | clock-names = "uart", "clk_uart_baud0"; | ||
958 | pinctrl-names = "default"; | ||
959 | pinctrl-0 = <&uart0_bus>; | ||
960 | status = "disabled"; | ||
961 | }; | ||
962 | |||
963 | serial_1: serial@14c20000 { | ||
964 | compatible = "samsung,exynos5433-uart"; | ||
965 | reg = <0x14c20000 0x100>; | ||
966 | interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>; | ||
967 | clocks = <&cmu_peric CLK_PCLK_UART1>, | ||
968 | <&cmu_peric CLK_SCLK_UART1>; | ||
969 | clock-names = "uart", "clk_uart_baud0"; | ||
970 | pinctrl-names = "default"; | ||
971 | pinctrl-0 = <&uart1_bus>; | ||
972 | status = "disabled"; | ||
973 | }; | ||
974 | |||
975 | serial_2: serial@14c30000 { | ||
976 | compatible = "samsung,exynos5433-uart"; | ||
977 | reg = <0x14c30000 0x100>; | ||
978 | interrupts = <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>; | ||
979 | clocks = <&cmu_peric CLK_PCLK_UART2>, | ||
980 | <&cmu_peric CLK_SCLK_UART2>; | ||
981 | clock-names = "uart", "clk_uart_baud0"; | ||
982 | pinctrl-names = "default"; | ||
983 | pinctrl-0 = <&uart2_bus>; | ||
984 | status = "disabled"; | ||
985 | }; | ||
986 | |||
987 | spi_0: spi@14d20000 { | ||
988 | compatible = "samsung,exynos5433-spi"; | ||
989 | reg = <0x14d20000 0x100>; | ||
990 | interrupts = <GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>; | ||
991 | dmas = <&pdma0 9>, <&pdma0 8>; | ||
992 | dma-names = "tx", "rx"; | ||
993 | #address-cells = <1>; | ||
994 | #size-cells = <0>; | ||
995 | clocks = <&cmu_peric CLK_PCLK_SPI0>, | ||
996 | <&cmu_peric CLK_SCLK_SPI0>, | ||
997 | <&cmu_peric CLK_SCLK_IOCLK_SPI0>; | ||
998 | clock-names = "spi", "spi_busclk0", "spi_ioclk"; | ||
999 | samsung,spi-src-clk = <0>; | ||
1000 | pinctrl-names = "default"; | ||
1001 | pinctrl-0 = <&spi0_bus>; | ||
1002 | num-cs = <1>; | ||
1003 | status = "disabled"; | ||
1004 | }; | ||
1005 | |||
1006 | spi_1: spi@14d30000 { | ||
1007 | compatible = "samsung,exynos5433-spi"; | ||
1008 | reg = <0x14d30000 0x100>; | ||
1009 | interrupts = <GIC_SPI 433 IRQ_TYPE_LEVEL_HIGH>; | ||
1010 | dmas = <&pdma0 11>, <&pdma0 10>; | ||
1011 | dma-names = "tx", "rx"; | ||
1012 | #address-cells = <1>; | ||
1013 | #size-cells = <0>; | ||
1014 | clocks = <&cmu_peric CLK_PCLK_SPI1>, | ||
1015 | <&cmu_peric CLK_SCLK_SPI1>, | ||
1016 | <&cmu_peric CLK_SCLK_IOCLK_SPI1>; | ||
1017 | clock-names = "spi", "spi_busclk0", "spi_ioclk"; | ||
1018 | samsung,spi-src-clk = <0>; | ||
1019 | pinctrl-names = "default"; | ||
1020 | pinctrl-0 = <&spi1_bus>; | ||
1021 | num-cs = <1>; | ||
1022 | status = "disabled"; | ||
1023 | }; | ||
1024 | |||
1025 | spi_2: spi@14d40000 { | ||
1026 | compatible = "samsung,exynos5433-spi"; | ||
1027 | reg = <0x14d40000 0x100>; | ||
1028 | interrupts = <GIC_SPI 434 IRQ_TYPE_LEVEL_HIGH>; | ||
1029 | dmas = <&pdma0 13>, <&pdma0 12>; | ||
1030 | dma-names = "tx", "rx"; | ||
1031 | #address-cells = <1>; | ||
1032 | #size-cells = <0>; | ||
1033 | clocks = <&cmu_peric CLK_PCLK_SPI2>, | ||
1034 | <&cmu_peric CLK_SCLK_SPI2>, | ||
1035 | <&cmu_peric CLK_SCLK_IOCLK_SPI2>; | ||
1036 | clock-names = "spi", "spi_busclk0", "spi_ioclk"; | ||
1037 | samsung,spi-src-clk = <0>; | ||
1038 | pinctrl-names = "default"; | ||
1039 | pinctrl-0 = <&spi2_bus>; | ||
1040 | num-cs = <1>; | ||
1041 | status = "disabled"; | ||
1042 | }; | ||
1043 | |||
1044 | spi_3: spi@14d50000 { | ||
1045 | compatible = "samsung,exynos5433-spi"; | ||
1046 | reg = <0x14d50000 0x100>; | ||
1047 | interrupts = <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>; | ||
1048 | dmas = <&pdma0 23>, <&pdma0 22>; | ||
1049 | dma-names = "tx", "rx"; | ||
1050 | #address-cells = <1>; | ||
1051 | #size-cells = <0>; | ||
1052 | clocks = <&cmu_peric CLK_PCLK_SPI3>, | ||
1053 | <&cmu_peric CLK_SCLK_SPI3>, | ||
1054 | <&cmu_peric CLK_SCLK_IOCLK_SPI3>; | ||
1055 | clock-names = "spi", "spi_busclk0", "spi_ioclk"; | ||
1056 | samsung,spi-src-clk = <0>; | ||
1057 | pinctrl-names = "default"; | ||
1058 | pinctrl-0 = <&spi3_bus>; | ||
1059 | num-cs = <1>; | ||
1060 | status = "disabled"; | ||
1061 | }; | ||
1062 | |||
1063 | spi_4: spi@14d00000 { | ||
1064 | compatible = "samsung,exynos5433-spi"; | ||
1065 | reg = <0x14d00000 0x100>; | ||
1066 | interrupts = <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>; | ||
1067 | dmas = <&pdma0 25>, <&pdma0 24>; | ||
1068 | dma-names = "tx", "rx"; | ||
1069 | #address-cells = <1>; | ||
1070 | #size-cells = <0>; | ||
1071 | clocks = <&cmu_peric CLK_PCLK_SPI4>, | ||
1072 | <&cmu_peric CLK_SCLK_SPI4>, | ||
1073 | <&cmu_peric CLK_SCLK_IOCLK_SPI4>; | ||
1074 | clock-names = "spi", "spi_busclk0", "spi_ioclk"; | ||
1075 | samsung,spi-src-clk = <0>; | ||
1076 | pinctrl-names = "default"; | ||
1077 | pinctrl-0 = <&spi4_bus>; | ||
1078 | num-cs = <1>; | ||
1079 | status = "disabled"; | ||
1080 | }; | ||
1081 | |||
1082 | adc: adc@14d10000 { | ||
1083 | compatible = "samsung,exynos7-adc"; | ||
1084 | reg = <0x14d10000 0x100>; | ||
1085 | interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>; | ||
1086 | clock-names = "adc"; | ||
1087 | clocks = <&cmu_peric CLK_PCLK_ADCIF>; | ||
1088 | #io-channel-cells = <1>; | ||
1089 | io-channel-ranges; | ||
1090 | status = "disabled"; | ||
1091 | }; | ||
1092 | |||
1093 | pwm: pwm@14dd0000 { | ||
1094 | compatible = "samsung,exynos4210-pwm"; | ||
1095 | reg = <0x14dd0000 0x100>; | ||
1096 | interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>, | ||
1097 | <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>, | ||
1098 | <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>, | ||
1099 | <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>, | ||
1100 | <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>; | ||
1101 | samsung,pwm-outputs = <0>, <1>, <2>, <3>; | ||
1102 | clocks = <&cmu_peric CLK_PCLK_PWM>; | ||
1103 | clock-names = "timers"; | ||
1104 | #pwm-cells = <3>; | ||
1105 | status = "disabled"; | ||
1106 | }; | ||
1107 | |||
1108 | hsi2c_0: hsi2c@14e40000 { | ||
1109 | compatible = "samsung,exynos7-hsi2c"; | ||
1110 | reg = <0x14e40000 0x1000>; | ||
1111 | interrupts = <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>; | ||
1112 | #address-cells = <1>; | ||
1113 | #size-cells = <0>; | ||
1114 | pinctrl-names = "default"; | ||
1115 | pinctrl-0 = <&hs_i2c0_bus>; | ||
1116 | clocks = <&cmu_peric CLK_PCLK_HSI2C0>; | ||
1117 | clock-names = "hsi2c"; | ||
1118 | status = "disabled"; | ||
1119 | }; | ||
1120 | |||
1121 | hsi2c_1: hsi2c@14e50000 { | ||
1122 | compatible = "samsung,exynos7-hsi2c"; | ||
1123 | reg = <0x14e50000 0x1000>; | ||
1124 | interrupts = <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>; | ||
1125 | #address-cells = <1>; | ||
1126 | #size-cells = <0>; | ||
1127 | pinctrl-names = "default"; | ||
1128 | pinctrl-0 = <&hs_i2c1_bus>; | ||
1129 | clocks = <&cmu_peric CLK_PCLK_HSI2C1>; | ||
1130 | clock-names = "hsi2c"; | ||
1131 | status = "disabled"; | ||
1132 | }; | ||
1133 | |||
1134 | hsi2c_2: hsi2c@14e60000 { | ||
1135 | compatible = "samsung,exynos7-hsi2c"; | ||
1136 | reg = <0x14e60000 0x1000>; | ||
1137 | interrupts = <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>; | ||
1138 | #address-cells = <1>; | ||
1139 | #size-cells = <0>; | ||
1140 | pinctrl-names = "default"; | ||
1141 | pinctrl-0 = <&hs_i2c2_bus>; | ||
1142 | clocks = <&cmu_peric CLK_PCLK_HSI2C2>; | ||
1143 | clock-names = "hsi2c"; | ||
1144 | status = "disabled"; | ||
1145 | }; | ||
1146 | |||
1147 | hsi2c_3: hsi2c@14e70000 { | ||
1148 | compatible = "samsung,exynos7-hsi2c"; | ||
1149 | reg = <0x14e70000 0x1000>; | ||
1150 | interrupts = <GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH>; | ||
1151 | #address-cells = <1>; | ||
1152 | #size-cells = <0>; | ||
1153 | pinctrl-names = "default"; | ||
1154 | pinctrl-0 = <&hs_i2c3_bus>; | ||
1155 | clocks = <&cmu_peric CLK_PCLK_HSI2C3>; | ||
1156 | clock-names = "hsi2c"; | ||
1157 | status = "disabled"; | ||
1158 | }; | ||
1159 | |||
1160 | hsi2c_4: hsi2c@14ec0000 { | ||
1161 | compatible = "samsung,exynos7-hsi2c"; | ||
1162 | reg = <0x14ec0000 0x1000>; | ||
1163 | interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>; | ||
1164 | #address-cells = <1>; | ||
1165 | #size-cells = <0>; | ||
1166 | pinctrl-names = "default"; | ||
1167 | pinctrl-0 = <&hs_i2c4_bus>; | ||
1168 | clocks = <&cmu_peric CLK_PCLK_HSI2C4>; | ||
1169 | clock-names = "hsi2c"; | ||
1170 | status = "disabled"; | ||
1171 | }; | ||
1172 | |||
1173 | hsi2c_5: hsi2c@14ed0000 { | ||
1174 | compatible = "samsung,exynos7-hsi2c"; | ||
1175 | reg = <0x14ed0000 0x1000>; | ||
1176 | interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>; | ||
1177 | #address-cells = <1>; | ||
1178 | #size-cells = <0>; | ||
1179 | pinctrl-names = "default"; | ||
1180 | pinctrl-0 = <&hs_i2c5_bus>; | ||
1181 | clocks = <&cmu_peric CLK_PCLK_HSI2C5>; | ||
1182 | clock-names = "hsi2c"; | ||
1183 | status = "disabled"; | ||
1184 | }; | ||
1185 | |||
1186 | hsi2c_6: hsi2c@14ee0000 { | ||
1187 | compatible = "samsung,exynos7-hsi2c"; | ||
1188 | reg = <0x14ee0000 0x1000>; | ||
1189 | interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>; | ||
1190 | #address-cells = <1>; | ||
1191 | #size-cells = <0>; | ||
1192 | pinctrl-names = "default"; | ||
1193 | pinctrl-0 = <&hs_i2c6_bus>; | ||
1194 | clocks = <&cmu_peric CLK_PCLK_HSI2C6>; | ||
1195 | clock-names = "hsi2c"; | ||
1196 | status = "disabled"; | ||
1197 | }; | ||
1198 | |||
1199 | hsi2c_7: hsi2c@14ef0000 { | ||
1200 | compatible = "samsung,exynos7-hsi2c"; | ||
1201 | reg = <0x14ef0000 0x1000>; | ||
1202 | interrupts = <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>; | ||
1203 | #address-cells = <1>; | ||
1204 | #size-cells = <0>; | ||
1205 | pinctrl-names = "default"; | ||
1206 | pinctrl-0 = <&hs_i2c7_bus>; | ||
1207 | clocks = <&cmu_peric CLK_PCLK_HSI2C7>; | ||
1208 | clock-names = "hsi2c"; | ||
1209 | status = "disabled"; | ||
1210 | }; | ||
1211 | |||
1212 | hsi2c_8: hsi2c@14d90000 { | ||
1213 | compatible = "samsung,exynos7-hsi2c"; | ||
1214 | reg = <0x14d90000 0x1000>; | ||
1215 | interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>; | ||
1216 | #address-cells = <1>; | ||
1217 | #size-cells = <0>; | ||
1218 | pinctrl-names = "default"; | ||
1219 | pinctrl-0 = <&hs_i2c8_bus>; | ||
1220 | clocks = <&cmu_peric CLK_PCLK_HSI2C8>; | ||
1221 | clock-names = "hsi2c"; | ||
1222 | status = "disabled"; | ||
1223 | }; | ||
1224 | |||
1225 | hsi2c_9: hsi2c@14da0000 { | ||
1226 | compatible = "samsung,exynos7-hsi2c"; | ||
1227 | reg = <0x14da0000 0x1000>; | ||
1228 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; | ||
1229 | #address-cells = <1>; | ||
1230 | #size-cells = <0>; | ||
1231 | pinctrl-names = "default"; | ||
1232 | pinctrl-0 = <&hs_i2c9_bus>; | ||
1233 | clocks = <&cmu_peric CLK_PCLK_HSI2C9>; | ||
1234 | clock-names = "hsi2c"; | ||
1235 | status = "disabled"; | ||
1236 | }; | ||
1237 | |||
1238 | hsi2c_10: hsi2c@14de0000 { | ||
1239 | compatible = "samsung,exynos7-hsi2c"; | ||
1240 | reg = <0x14de0000 0x1000>; | ||
1241 | interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>; | ||
1242 | #address-cells = <1>; | ||
1243 | #size-cells = <0>; | ||
1244 | pinctrl-names = "default"; | ||
1245 | pinctrl-0 = <&hs_i2c10_bus>; | ||
1246 | clocks = <&cmu_peric CLK_PCLK_HSI2C10>; | ||
1247 | clock-names = "hsi2c"; | ||
1248 | status = "disabled"; | ||
1249 | }; | ||
1250 | |||
1251 | hsi2c_11: hsi2c@14df0000 { | ||
1252 | compatible = "samsung,exynos7-hsi2c"; | ||
1253 | reg = <0x14df0000 0x1000>; | ||
1254 | interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; | ||
1255 | #address-cells = <1>; | ||
1256 | #size-cells = <0>; | ||
1257 | pinctrl-names = "default"; | ||
1258 | pinctrl-0 = <&hs_i2c11_bus>; | ||
1259 | clocks = <&cmu_peric CLK_PCLK_HSI2C11>; | ||
1260 | clock-names = "hsi2c"; | ||
1261 | status = "disabled"; | ||
1262 | }; | ||
1263 | |||
1264 | usbdrd30: usb@15400000 { | ||
1265 | compatible = "samsung,exynos5250-dwusb3"; | ||
1266 | clocks = <&cmu_fsys CLK_ACLK_USBDRD30>, | ||
1267 | <&cmu_fsys CLK_SCLK_USBDRD30>; | ||
1268 | clock-names = "usbdrd30", "usbdrd30_susp_clk"; | ||
1269 | #address-cells = <1>; | ||
1270 | #size-cells = <1>; | ||
1271 | ranges; | ||
1272 | status = "disabled"; | ||
1273 | |||
1274 | dwc3@15400000 { | ||
1275 | compatible = "snps,dwc3"; | ||
1276 | reg = <0x15400000 0x10000>; | ||
1277 | interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>; | ||
1278 | phys = <&usbdrd30_phy 0>, <&usbdrd30_phy 1>; | ||
1279 | phy-names = "usb2-phy", "usb3-phy"; | ||
1280 | }; | ||
1281 | }; | ||
1282 | |||
1283 | usbdrd30_phy: phy@15500000 { | ||
1284 | compatible = "samsung,exynos5433-usbdrd-phy"; | ||
1285 | reg = <0x15500000 0x100>; | ||
1286 | clocks = <&cmu_fsys CLK_ACLK_USBDRD30>, <&xxti>, | ||
1287 | <&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PHYCLOCK>, | ||
1288 | <&cmu_fsys CLK_PHYCLK_USBDRD30_UDRD30_PIPE_PCLK>, | ||
1289 | <&cmu_fsys CLK_SCLK_USBDRD30>; | ||
1290 | clock-names = "phy", "ref", "phy_utmi", "phy_pipe", | ||
1291 | "itp"; | ||
1292 | #phy-cells = <1>; | ||
1293 | samsung,pmu-syscon = <&pmu_system_controller>; | ||
1294 | status = "disabled"; | ||
1295 | }; | ||
1296 | |||
1297 | usbhost30_phy: phy@15580000 { | ||
1298 | compatible = "samsung,exynos5433-usbdrd-phy"; | ||
1299 | reg = <0x15580000 0x100>; | ||
1300 | clocks = <&cmu_fsys CLK_ACLK_USBHOST30>, <&xxti>, | ||
1301 | <&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PHYCLOCK>, | ||
1302 | <&cmu_fsys CLK_PHYCLK_USBHOST30_UHOST30_PIPE_PCLK>, | ||
1303 | <&cmu_fsys CLK_SCLK_USBHOST30>; | ||
1304 | clock-names = "phy", "ref", "phy_utmi", "phy_pipe", | ||
1305 | "itp"; | ||
1306 | #phy-cells = <1>; | ||
1307 | samsung,pmu-syscon = <&pmu_system_controller>; | ||
1308 | status = "disabled"; | ||
1309 | }; | ||
1310 | |||
1311 | usbhost30: usb@15a00000 { | ||
1312 | compatible = "samsung,exynos5250-dwusb3"; | ||
1313 | clocks = <&cmu_fsys CLK_ACLK_USBHOST30>, | ||
1314 | <&cmu_fsys CLK_SCLK_USBHOST30>; | ||
1315 | clock-names = "usbdrd30", "usbdrd30_susp_clk"; | ||
1316 | #address-cells = <1>; | ||
1317 | #size-cells = <1>; | ||
1318 | ranges; | ||
1319 | status = "disabled"; | ||
1320 | |||
1321 | usbdrd_dwc3_0: dwc3@15a00000 { | ||
1322 | compatible = "snps,dwc3"; | ||
1323 | reg = <0x15a00000 0x10000>; | ||
1324 | interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>; | ||
1325 | phys = <&usbhost30_phy 0>, <&usbhost30_phy 1>; | ||
1326 | phy-names = "usb2-phy", "usb3-phy"; | ||
1327 | }; | ||
1328 | }; | ||
1329 | |||
1330 | mshc_0: mshc@15540000 { | ||
1331 | compatible = "samsung,exynos7-dw-mshc-smu"; | ||
1332 | interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; | ||
1333 | #address-cells = <1>; | ||
1334 | #size-cells = <0>; | ||
1335 | reg = <0x15540000 0x2000>; | ||
1336 | clocks = <&cmu_fsys CLK_ACLK_MMC0>, | ||
1337 | <&cmu_fsys CLK_SCLK_MMC0>; | ||
1338 | clock-names = "biu", "ciu"; | ||
1339 | fifo-depth = <0x40>; | ||
1340 | status = "disabled"; | ||
1341 | }; | ||
1342 | |||
1343 | mshc_1: mshc@15550000 { | ||
1344 | compatible = "samsung,exynos7-dw-mshc-smu"; | ||
1345 | interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; | ||
1346 | #address-cells = <1>; | ||
1347 | #size-cells = <0>; | ||
1348 | reg = <0x15550000 0x2000>; | ||
1349 | clocks = <&cmu_fsys CLK_ACLK_MMC1>, | ||
1350 | <&cmu_fsys CLK_SCLK_MMC1>; | ||
1351 | clock-names = "biu", "ciu"; | ||
1352 | fifo-depth = <0x40>; | ||
1353 | status = "disabled"; | ||
1354 | }; | ||
1355 | |||
1356 | mshc_2: mshc@15560000 { | ||
1357 | compatible = "samsung,exynos7-dw-mshc-smu"; | ||
1358 | interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; | ||
1359 | #address-cells = <1>; | ||
1360 | #size-cells = <0>; | ||
1361 | reg = <0x15560000 0x2000>; | ||
1362 | clocks = <&cmu_fsys CLK_ACLK_MMC2>, | ||
1363 | <&cmu_fsys CLK_SCLK_MMC2>; | ||
1364 | clock-names = "biu", "ciu"; | ||
1365 | fifo-depth = <0x40>; | ||
1366 | status = "disabled"; | ||
1367 | }; | ||
1368 | |||
1369 | amba { | ||
1370 | compatible = "arm,amba-bus"; | ||
1371 | #address-cells = <1>; | ||
1372 | #size-cells = <1>; | ||
1373 | ranges; | ||
1374 | |||
1375 | pdma0: pdma@15610000 { | ||
1376 | compatible = "arm,pl330", "arm,primecell"; | ||
1377 | reg = <0x15610000 0x1000>; | ||
1378 | interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>; | ||
1379 | clocks = <&cmu_fsys CLK_PDMA0>; | ||
1380 | clock-names = "apb_pclk"; | ||
1381 | #dma-cells = <1>; | ||
1382 | #dma-channels = <8>; | ||
1383 | #dma-requests = <32>; | ||
1384 | }; | ||
1385 | |||
1386 | pdma1: pdma@15600000 { | ||
1387 | compatible = "arm,pl330", "arm,primecell"; | ||
1388 | reg = <0x15600000 0x1000>; | ||
1389 | interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>; | ||
1390 | clocks = <&cmu_fsys CLK_PDMA1>; | ||
1391 | clock-names = "apb_pclk"; | ||
1392 | #dma-cells = <1>; | ||
1393 | #dma-channels = <8>; | ||
1394 | #dma-requests = <32>; | ||
1395 | }; | ||
1396 | }; | ||
1397 | |||
1398 | audio-subsystem@11400000 { | ||
1399 | compatible = "samsung,exynos5433-lpass"; | ||
1400 | reg = <0x11400000 0x100>, <0x11500000 0x08>; | ||
1401 | samsung,pmu-syscon = <&pmu_system_controller>; | ||
1402 | #address-cells = <1>; | ||
1403 | #size-cells = <1>; | ||
1404 | ranges; | ||
1405 | |||
1406 | adma: adma@11420000 { | ||
1407 | compatible = "arm,pl330", "arm,primecell"; | ||
1408 | reg = <0x11420000 0x1000>; | ||
1409 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
1410 | clocks = <&cmu_aud CLK_ACLK_DMAC>; | ||
1411 | clock-names = "apb_pclk"; | ||
1412 | #dma-cells = <1>; | ||
1413 | #dma-channels = <8>; | ||
1414 | #dma-requests = <32>; | ||
1415 | }; | ||
1416 | |||
1417 | i2s0: i2s0@11440000 { | ||
1418 | compatible = "samsung,exynos7-i2s"; | ||
1419 | reg = <0x11440000 0x100>; | ||
1420 | dmas = <&adma 0 &adma 2>; | ||
1421 | dma-names = "tx", "rx"; | ||
1422 | interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
1423 | #address-cells = <1>; | ||
1424 | #size-cells = <0>; | ||
1425 | clocks = <&cmu_aud CLK_PCLK_AUD_I2S>, | ||
1426 | <&cmu_aud CLK_SCLK_AUD_I2S>, | ||
1427 | <&cmu_aud CLK_SCLK_I2S_BCLK>; | ||
1428 | clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; | ||
1429 | pinctrl-names = "default"; | ||
1430 | pinctrl-0 = <&i2s0_bus>; | ||
1431 | status = "disabled"; | ||
1432 | }; | ||
1433 | |||
1434 | serial_3: serial@11460000 { | ||
1435 | compatible = "samsung,exynos5433-uart"; | ||
1436 | reg = <0x11460000 0x100>; | ||
1437 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | ||
1438 | clocks = <&cmu_aud CLK_PCLK_AUD_UART>, | ||
1439 | <&cmu_aud CLK_SCLK_AUD_UART>; | ||
1440 | clock-names = "uart", "clk_uart_baud0"; | ||
1441 | pinctrl-names = "default"; | ||
1442 | pinctrl-0 = <&uart_aud_bus>; | ||
1443 | status = "disabled"; | ||
1444 | }; | ||
1445 | }; | ||
1446 | }; | ||
1447 | |||
1448 | timer: timer { | ||
1449 | compatible = "arm,armv8-timer"; | ||
1450 | interrupts = <GIC_PPI 13 | ||
1451 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>, | ||
1452 | <GIC_PPI 14 | ||
1453 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>, | ||
1454 | <GIC_PPI 11 | ||
1455 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>, | ||
1456 | <GIC_PPI 10 | ||
1457 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
1458 | }; | ||
1459 | }; | ||
1460 | |||
1461 | #include "exynos5433-pinctrl.dtsi" | ||
1462 | #include "exynos5433-tmu.dtsi" | ||
diff --git a/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi b/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi index f77ddaf21d04..82321984e1fb 100644 --- a/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi | |||
@@ -20,8 +20,14 @@ | |||
20 | interrupt-controller; | 20 | interrupt-controller; |
21 | interrupt-parent = <&gic>; | 21 | interrupt-parent = <&gic>; |
22 | #interrupt-cells = <2>; | 22 | #interrupt-cells = <2>; |
23 | interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>, | 23 | interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, |
24 | <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>; | 24 | <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>, |
25 | <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>, | ||
26 | <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>, | ||
27 | <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, | ||
28 | <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, | ||
29 | <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, | ||
30 | <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; | ||
25 | }; | 31 | }; |
26 | 32 | ||
27 | gpa1: gpa1 { | 33 | gpa1: gpa1 { |
@@ -31,8 +37,14 @@ | |||
31 | interrupt-controller; | 37 | interrupt-controller; |
32 | interrupt-parent = <&gic>; | 38 | interrupt-parent = <&gic>; |
33 | #interrupt-cells = <2>; | 39 | #interrupt-cells = <2>; |
34 | interrupts = <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>, | 40 | interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, |
35 | <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>; | 41 | <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, |
42 | <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, | ||
43 | <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, | ||
44 | <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, | ||
45 | <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, | ||
46 | <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, | ||
47 | <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
36 | }; | 48 | }; |
37 | 49 | ||
38 | gpa2: gpa2 { | 50 | gpa2: gpa2 { |
diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi index 6328a66ed97e..80aa60e38237 100644 --- a/arch/arm64/boot/dts/exynos/exynos7.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi | |||
@@ -35,28 +35,28 @@ | |||
35 | #address-cells = <1>; | 35 | #address-cells = <1>; |
36 | #size-cells = <0>; | 36 | #size-cells = <0>; |
37 | 37 | ||
38 | cpu@0 { | 38 | cpu_atlas0: cpu@0 { |
39 | device_type = "cpu"; | 39 | device_type = "cpu"; |
40 | compatible = "arm,cortex-a57", "arm,armv8"; | 40 | compatible = "arm,cortex-a57", "arm,armv8"; |
41 | reg = <0x0>; | 41 | reg = <0x0>; |
42 | enable-method = "psci"; | 42 | enable-method = "psci"; |
43 | }; | 43 | }; |
44 | 44 | ||
45 | cpu@1 { | 45 | cpu_atlas1: cpu@1 { |
46 | device_type = "cpu"; | 46 | device_type = "cpu"; |
47 | compatible = "arm,cortex-a57", "arm,armv8"; | 47 | compatible = "arm,cortex-a57", "arm,armv8"; |
48 | reg = <0x1>; | 48 | reg = <0x1>; |
49 | enable-method = "psci"; | 49 | enable-method = "psci"; |
50 | }; | 50 | }; |
51 | 51 | ||
52 | cpu@2 { | 52 | cpu_atlas2: cpu@2 { |
53 | device_type = "cpu"; | 53 | device_type = "cpu"; |
54 | compatible = "arm,cortex-a57", "arm,armv8"; | 54 | compatible = "arm,cortex-a57", "arm,armv8"; |
55 | reg = <0x2>; | 55 | reg = <0x2>; |
56 | enable-method = "psci"; | 56 | enable-method = "psci"; |
57 | }; | 57 | }; |
58 | 58 | ||
59 | cpu@3 { | 59 | cpu_atlas3: cpu@3 { |
60 | device_type = "cpu"; | 60 | device_type = "cpu"; |
61 | compatible = "arm,cortex-a57", "arm,armv8"; | 61 | compatible = "arm,cortex-a57", "arm,armv8"; |
62 | reg = <0x3>; | 62 | reg = <0x3>; |
@@ -106,7 +106,7 @@ | |||
106 | pdma0: pdma@10E10000 { | 106 | pdma0: pdma@10E10000 { |
107 | compatible = "arm,pl330", "arm,primecell"; | 107 | compatible = "arm,pl330", "arm,primecell"; |
108 | reg = <0x10E10000 0x1000>; | 108 | reg = <0x10E10000 0x1000>; |
109 | interrupts = <0 225 0>; | 109 | interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; |
110 | clocks = <&clock_fsys0 ACLK_PDMA0>; | 110 | clocks = <&clock_fsys0 ACLK_PDMA0>; |
111 | clock-names = "apb_pclk"; | 111 | clock-names = "apb_pclk"; |
112 | #dma-cells = <1>; | 112 | #dma-cells = <1>; |
@@ -117,7 +117,7 @@ | |||
117 | pdma1: pdma@10EB0000 { | 117 | pdma1: pdma@10EB0000 { |
118 | compatible = "arm,pl330", "arm,primecell"; | 118 | compatible = "arm,pl330", "arm,primecell"; |
119 | reg = <0x10EB0000 0x1000>; | 119 | reg = <0x10EB0000 0x1000>; |
120 | interrupts = <0 226 0>; | 120 | interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; |
121 | clocks = <&clock_fsys0 ACLK_PDMA1>; | 121 | clocks = <&clock_fsys0 ACLK_PDMA1>; |
122 | clock-names = "apb_pclk"; | 122 | clock-names = "apb_pclk"; |
123 | #dma-cells = <1>; | 123 | #dma-cells = <1>; |
@@ -220,7 +220,7 @@ | |||
220 | serial_0: serial@13630000 { | 220 | serial_0: serial@13630000 { |
221 | compatible = "samsung,exynos4210-uart"; | 221 | compatible = "samsung,exynos4210-uart"; |
222 | reg = <0x13630000 0x100>; | 222 | reg = <0x13630000 0x100>; |
223 | interrupts = <0 440 0>; | 223 | interrupts = <GIC_SPI 440 IRQ_TYPE_LEVEL_HIGH>; |
224 | clocks = <&clock_peric0 PCLK_UART0>, | 224 | clocks = <&clock_peric0 PCLK_UART0>, |
225 | <&clock_peric0 SCLK_UART0>; | 225 | <&clock_peric0 SCLK_UART0>; |
226 | clock-names = "uart", "clk_uart_baud0"; | 226 | clock-names = "uart", "clk_uart_baud0"; |
@@ -230,7 +230,7 @@ | |||
230 | serial_1: serial@14c20000 { | 230 | serial_1: serial@14c20000 { |
231 | compatible = "samsung,exynos4210-uart"; | 231 | compatible = "samsung,exynos4210-uart"; |
232 | reg = <0x14c20000 0x100>; | 232 | reg = <0x14c20000 0x100>; |
233 | interrupts = <0 456 0>; | 233 | interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>; |
234 | clocks = <&clock_peric1 PCLK_UART1>, | 234 | clocks = <&clock_peric1 PCLK_UART1>, |
235 | <&clock_peric1 SCLK_UART1>; | 235 | <&clock_peric1 SCLK_UART1>; |
236 | clock-names = "uart", "clk_uart_baud0"; | 236 | clock-names = "uart", "clk_uart_baud0"; |
@@ -240,7 +240,7 @@ | |||
240 | serial_2: serial@14c30000 { | 240 | serial_2: serial@14c30000 { |
241 | compatible = "samsung,exynos4210-uart"; | 241 | compatible = "samsung,exynos4210-uart"; |
242 | reg = <0x14c30000 0x100>; | 242 | reg = <0x14c30000 0x100>; |
243 | interrupts = <0 457 0>; | 243 | interrupts = <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>; |
244 | clocks = <&clock_peric1 PCLK_UART2>, | 244 | clocks = <&clock_peric1 PCLK_UART2>, |
245 | <&clock_peric1 SCLK_UART2>; | 245 | <&clock_peric1 SCLK_UART2>; |
246 | clock-names = "uart", "clk_uart_baud0"; | 246 | clock-names = "uart", "clk_uart_baud0"; |
@@ -250,7 +250,7 @@ | |||
250 | serial_3: serial@14c40000 { | 250 | serial_3: serial@14c40000 { |
251 | compatible = "samsung,exynos4210-uart"; | 251 | compatible = "samsung,exynos4210-uart"; |
252 | reg = <0x14c40000 0x100>; | 252 | reg = <0x14c40000 0x100>; |
253 | interrupts = <0 458 0>; | 253 | interrupts = <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>; |
254 | clocks = <&clock_peric1 PCLK_UART3>, | 254 | clocks = <&clock_peric1 PCLK_UART3>, |
255 | <&clock_peric1 SCLK_UART3>; | 255 | <&clock_peric1 SCLK_UART3>; |
256 | clock-names = "uart", "clk_uart_baud0"; | 256 | clock-names = "uart", "clk_uart_baud0"; |
@@ -264,62 +264,62 @@ | |||
264 | wakeup-interrupt-controller { | 264 | wakeup-interrupt-controller { |
265 | compatible = "samsung,exynos7-wakeup-eint"; | 265 | compatible = "samsung,exynos7-wakeup-eint"; |
266 | interrupt-parent = <&gic>; | 266 | interrupt-parent = <&gic>; |
267 | interrupts = <0 16 0>; | 267 | interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; |
268 | }; | 268 | }; |
269 | }; | 269 | }; |
270 | 270 | ||
271 | pinctrl_bus0: pinctrl@13470000 { | 271 | pinctrl_bus0: pinctrl@13470000 { |
272 | compatible = "samsung,exynos7-pinctrl"; | 272 | compatible = "samsung,exynos7-pinctrl"; |
273 | reg = <0x13470000 0x1000>; | 273 | reg = <0x13470000 0x1000>; |
274 | interrupts = <0 383 0>; | 274 | interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; |
275 | }; | 275 | }; |
276 | 276 | ||
277 | pinctrl_nfc: pinctrl@14cd0000 { | 277 | pinctrl_nfc: pinctrl@14cd0000 { |
278 | compatible = "samsung,exynos7-pinctrl"; | 278 | compatible = "samsung,exynos7-pinctrl"; |
279 | reg = <0x14cd0000 0x1000>; | 279 | reg = <0x14cd0000 0x1000>; |
280 | interrupts = <0 473 0>; | 280 | interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>; |
281 | }; | 281 | }; |
282 | 282 | ||
283 | pinctrl_touch: pinctrl@14ce0000 { | 283 | pinctrl_touch: pinctrl@14ce0000 { |
284 | compatible = "samsung,exynos7-pinctrl"; | 284 | compatible = "samsung,exynos7-pinctrl"; |
285 | reg = <0x14ce0000 0x1000>; | 285 | reg = <0x14ce0000 0x1000>; |
286 | interrupts = <0 474 0>; | 286 | interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>; |
287 | }; | 287 | }; |
288 | 288 | ||
289 | pinctrl_ff: pinctrl@14c90000 { | 289 | pinctrl_ff: pinctrl@14c90000 { |
290 | compatible = "samsung,exynos7-pinctrl"; | 290 | compatible = "samsung,exynos7-pinctrl"; |
291 | reg = <0x14c90000 0x1000>; | 291 | reg = <0x14c90000 0x1000>; |
292 | interrupts = <0 475 0>; | 292 | interrupts = <GIC_SPI 475 IRQ_TYPE_LEVEL_HIGH>; |
293 | }; | 293 | }; |
294 | 294 | ||
295 | pinctrl_ese: pinctrl@14ca0000 { | 295 | pinctrl_ese: pinctrl@14ca0000 { |
296 | compatible = "samsung,exynos7-pinctrl"; | 296 | compatible = "samsung,exynos7-pinctrl"; |
297 | reg = <0x14ca0000 0x1000>; | 297 | reg = <0x14ca0000 0x1000>; |
298 | interrupts = <0 476 0>; | 298 | interrupts = <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>; |
299 | }; | 299 | }; |
300 | 300 | ||
301 | pinctrl_fsys0: pinctrl@10e60000 { | 301 | pinctrl_fsys0: pinctrl@10e60000 { |
302 | compatible = "samsung,exynos7-pinctrl"; | 302 | compatible = "samsung,exynos7-pinctrl"; |
303 | reg = <0x10e60000 0x1000>; | 303 | reg = <0x10e60000 0x1000>; |
304 | interrupts = <0 221 0>; | 304 | interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>; |
305 | }; | 305 | }; |
306 | 306 | ||
307 | pinctrl_fsys1: pinctrl@15690000 { | 307 | pinctrl_fsys1: pinctrl@15690000 { |
308 | compatible = "samsung,exynos7-pinctrl"; | 308 | compatible = "samsung,exynos7-pinctrl"; |
309 | reg = <0x15690000 0x1000>; | 309 | reg = <0x15690000 0x1000>; |
310 | interrupts = <0 203 0>; | 310 | interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>; |
311 | }; | 311 | }; |
312 | 312 | ||
313 | pinctrl_bus1: pinctrl@14870000 { | 313 | pinctrl_bus1: pinctrl@14870000 { |
314 | compatible = "samsung,exynos7-pinctrl"; | 314 | compatible = "samsung,exynos7-pinctrl"; |
315 | reg = <0x14870000 0x1000>; | 315 | reg = <0x14870000 0x1000>; |
316 | interrupts = <0 384 0>; | 316 | interrupts = <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>; |
317 | }; | 317 | }; |
318 | 318 | ||
319 | hsi2c_0: hsi2c@13640000 { | 319 | hsi2c_0: hsi2c@13640000 { |
320 | compatible = "samsung,exynos7-hsi2c"; | 320 | compatible = "samsung,exynos7-hsi2c"; |
321 | reg = <0x13640000 0x1000>; | 321 | reg = <0x13640000 0x1000>; |
322 | interrupts = <0 441 0>; | 322 | interrupts = <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>; |
323 | #address-cells = <1>; | 323 | #address-cells = <1>; |
324 | #size-cells = <0>; | 324 | #size-cells = <0>; |
325 | pinctrl-names = "default"; | 325 | pinctrl-names = "default"; |
@@ -332,7 +332,7 @@ | |||
332 | hsi2c_1: hsi2c@13650000 { | 332 | hsi2c_1: hsi2c@13650000 { |
333 | compatible = "samsung,exynos7-hsi2c"; | 333 | compatible = "samsung,exynos7-hsi2c"; |
334 | reg = <0x13650000 0x1000>; | 334 | reg = <0x13650000 0x1000>; |
335 | interrupts = <0 442 0>; | 335 | interrupts = <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>; |
336 | #address-cells = <1>; | 336 | #address-cells = <1>; |
337 | #size-cells = <0>; | 337 | #size-cells = <0>; |
338 | pinctrl-names = "default"; | 338 | pinctrl-names = "default"; |
@@ -345,7 +345,7 @@ | |||
345 | hsi2c_2: hsi2c@14e60000 { | 345 | hsi2c_2: hsi2c@14e60000 { |
346 | compatible = "samsung,exynos7-hsi2c"; | 346 | compatible = "samsung,exynos7-hsi2c"; |
347 | reg = <0x14e60000 0x1000>; | 347 | reg = <0x14e60000 0x1000>; |
348 | interrupts = <0 459 0>; | 348 | interrupts = <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>; |
349 | #address-cells = <1>; | 349 | #address-cells = <1>; |
350 | #size-cells = <0>; | 350 | #size-cells = <0>; |
351 | pinctrl-names = "default"; | 351 | pinctrl-names = "default"; |
@@ -358,7 +358,7 @@ | |||
358 | hsi2c_3: hsi2c@14e70000 { | 358 | hsi2c_3: hsi2c@14e70000 { |
359 | compatible = "samsung,exynos7-hsi2c"; | 359 | compatible = "samsung,exynos7-hsi2c"; |
360 | reg = <0x14e70000 0x1000>; | 360 | reg = <0x14e70000 0x1000>; |
361 | interrupts = <0 460 0>; | 361 | interrupts = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>; |
362 | #address-cells = <1>; | 362 | #address-cells = <1>; |
363 | #size-cells = <0>; | 363 | #size-cells = <0>; |
364 | pinctrl-names = "default"; | 364 | pinctrl-names = "default"; |
@@ -371,7 +371,7 @@ | |||
371 | hsi2c_4: hsi2c@13660000 { | 371 | hsi2c_4: hsi2c@13660000 { |
372 | compatible = "samsung,exynos7-hsi2c"; | 372 | compatible = "samsung,exynos7-hsi2c"; |
373 | reg = <0x13660000 0x1000>; | 373 | reg = <0x13660000 0x1000>; |
374 | interrupts = <0 443 0>; | 374 | interrupts = <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>; |
375 | #address-cells = <1>; | 375 | #address-cells = <1>; |
376 | #size-cells = <0>; | 376 | #size-cells = <0>; |
377 | pinctrl-names = "default"; | 377 | pinctrl-names = "default"; |
@@ -384,7 +384,7 @@ | |||
384 | hsi2c_5: hsi2c@13670000 { | 384 | hsi2c_5: hsi2c@13670000 { |
385 | compatible = "samsung,exynos7-hsi2c"; | 385 | compatible = "samsung,exynos7-hsi2c"; |
386 | reg = <0x13670000 0x1000>; | 386 | reg = <0x13670000 0x1000>; |
387 | interrupts = <0 444 0>; | 387 | interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>; |
388 | #address-cells = <1>; | 388 | #address-cells = <1>; |
389 | #size-cells = <0>; | 389 | #size-cells = <0>; |
390 | pinctrl-names = "default"; | 390 | pinctrl-names = "default"; |
@@ -397,7 +397,7 @@ | |||
397 | hsi2c_6: hsi2c@14e00000 { | 397 | hsi2c_6: hsi2c@14e00000 { |
398 | compatible = "samsung,exynos7-hsi2c"; | 398 | compatible = "samsung,exynos7-hsi2c"; |
399 | reg = <0x14e00000 0x1000>; | 399 | reg = <0x14e00000 0x1000>; |
400 | interrupts = <0 461 0>; | 400 | interrupts = <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>; |
401 | #address-cells = <1>; | 401 | #address-cells = <1>; |
402 | #size-cells = <0>; | 402 | #size-cells = <0>; |
403 | pinctrl-names = "default"; | 403 | pinctrl-names = "default"; |
@@ -410,7 +410,7 @@ | |||
410 | hsi2c_7: hsi2c@13e10000 { | 410 | hsi2c_7: hsi2c@13e10000 { |
411 | compatible = "samsung,exynos7-hsi2c"; | 411 | compatible = "samsung,exynos7-hsi2c"; |
412 | reg = <0x13e10000 0x1000>; | 412 | reg = <0x13e10000 0x1000>; |
413 | interrupts = <0 462 0>; | 413 | interrupts = <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>; |
414 | #address-cells = <1>; | 414 | #address-cells = <1>; |
415 | #size-cells = <0>; | 415 | #size-cells = <0>; |
416 | pinctrl-names = "default"; | 416 | pinctrl-names = "default"; |
@@ -423,7 +423,7 @@ | |||
423 | hsi2c_8: hsi2c@14e20000 { | 423 | hsi2c_8: hsi2c@14e20000 { |
424 | compatible = "samsung,exynos7-hsi2c"; | 424 | compatible = "samsung,exynos7-hsi2c"; |
425 | reg = <0x14e20000 0x1000>; | 425 | reg = <0x14e20000 0x1000>; |
426 | interrupts = <0 463 0>; | 426 | interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>; |
427 | #address-cells = <1>; | 427 | #address-cells = <1>; |
428 | #size-cells = <0>; | 428 | #size-cells = <0>; |
429 | pinctrl-names = "default"; | 429 | pinctrl-names = "default"; |
@@ -436,7 +436,7 @@ | |||
436 | hsi2c_9: hsi2c@13680000 { | 436 | hsi2c_9: hsi2c@13680000 { |
437 | compatible = "samsung,exynos7-hsi2c"; | 437 | compatible = "samsung,exynos7-hsi2c"; |
438 | reg = <0x13680000 0x1000>; | 438 | reg = <0x13680000 0x1000>; |
439 | interrupts = <0 445 0>; | 439 | interrupts = <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>; |
440 | #address-cells = <1>; | 440 | #address-cells = <1>; |
441 | #size-cells = <0>; | 441 | #size-cells = <0>; |
442 | pinctrl-names = "default"; | 442 | pinctrl-names = "default"; |
@@ -449,7 +449,7 @@ | |||
449 | hsi2c_10: hsi2c@13690000 { | 449 | hsi2c_10: hsi2c@13690000 { |
450 | compatible = "samsung,exynos7-hsi2c"; | 450 | compatible = "samsung,exynos7-hsi2c"; |
451 | reg = <0x13690000 0x1000>; | 451 | reg = <0x13690000 0x1000>; |
452 | interrupts = <0 446 0>; | 452 | interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; |
453 | #address-cells = <1>; | 453 | #address-cells = <1>; |
454 | #size-cells = <0>; | 454 | #size-cells = <0>; |
455 | pinctrl-names = "default"; | 455 | pinctrl-names = "default"; |
@@ -462,7 +462,7 @@ | |||
462 | hsi2c_11: hsi2c@136a0000 { | 462 | hsi2c_11: hsi2c@136a0000 { |
463 | compatible = "samsung,exynos7-hsi2c"; | 463 | compatible = "samsung,exynos7-hsi2c"; |
464 | reg = <0x136a0000 0x1000>; | 464 | reg = <0x136a0000 0x1000>; |
465 | interrupts = <0 447 0>; | 465 | interrupts = <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>; |
466 | #address-cells = <1>; | 466 | #address-cells = <1>; |
467 | #size-cells = <0>; | 467 | #size-cells = <0>; |
468 | pinctrl-names = "default"; | 468 | pinctrl-names = "default"; |
@@ -472,6 +472,16 @@ | |||
472 | status = "disabled"; | 472 | status = "disabled"; |
473 | }; | 473 | }; |
474 | 474 | ||
475 | arm-pmu { | ||
476 | compatible = "arm,cortex-a57-pmu", "arm,armv8-pmuv3"; | ||
477 | interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
478 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | ||
479 | <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, | ||
480 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | ||
481 | interrupt-affinity = <&cpu_atlas0>, <&cpu_atlas1>, | ||
482 | <&cpu_atlas2>, <&cpu_atlas3>; | ||
483 | }; | ||
484 | |||
475 | timer { | 485 | timer { |
476 | compatible = "arm,armv8-timer"; | 486 | compatible = "arm,armv8-timer"; |
477 | interrupts = <GIC_PPI 13 | 487 | interrupts = <GIC_PPI 13 |
@@ -499,7 +509,8 @@ | |||
499 | rtc: rtc@10590000 { | 509 | rtc: rtc@10590000 { |
500 | compatible = "samsung,s3c6410-rtc"; | 510 | compatible = "samsung,s3c6410-rtc"; |
501 | reg = <0x10590000 0x100>; | 511 | reg = <0x10590000 0x100>; |
502 | interrupts = <0 355 0>, <0 356 0>; | 512 | interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>, |
513 | <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; | ||
503 | clocks = <&clock_ccore PCLK_RTC>; | 514 | clocks = <&clock_ccore PCLK_RTC>; |
504 | clock-names = "rtc"; | 515 | clock-names = "rtc"; |
505 | status = "disabled"; | 516 | status = "disabled"; |
@@ -508,7 +519,7 @@ | |||
508 | watchdog: watchdog@101d0000 { | 519 | watchdog: watchdog@101d0000 { |
509 | compatible = "samsung,exynos7-wdt"; | 520 | compatible = "samsung,exynos7-wdt"; |
510 | reg = <0x101d0000 0x100>; | 521 | reg = <0x101d0000 0x100>; |
511 | interrupts = <0 110 0>; | 522 | interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; |
512 | clocks = <&clock_peris PCLK_WDT>; | 523 | clocks = <&clock_peris PCLK_WDT>; |
513 | clock-names = "watchdog"; | 524 | clock-names = "watchdog"; |
514 | samsung,syscon-phandle = <&pmu_system_controller>; | 525 | samsung,syscon-phandle = <&pmu_system_controller>; |
@@ -517,7 +528,7 @@ | |||
517 | 528 | ||
518 | mmc_0: mmc@15740000 { | 529 | mmc_0: mmc@15740000 { |
519 | compatible = "samsung,exynos7-dw-mshc-smu"; | 530 | compatible = "samsung,exynos7-dw-mshc-smu"; |
520 | interrupts = <0 201 0>; | 531 | interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; |
521 | #address-cells = <1>; | 532 | #address-cells = <1>; |
522 | #size-cells = <0>; | 533 | #size-cells = <0>; |
523 | reg = <0x15740000 0x2000>; | 534 | reg = <0x15740000 0x2000>; |
@@ -530,7 +541,7 @@ | |||
530 | 541 | ||
531 | mmc_1: mmc@15750000 { | 542 | mmc_1: mmc@15750000 { |
532 | compatible = "samsung,exynos7-dw-mshc"; | 543 | compatible = "samsung,exynos7-dw-mshc"; |
533 | interrupts = <0 202 0>; | 544 | interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>; |
534 | #address-cells = <1>; | 545 | #address-cells = <1>; |
535 | #size-cells = <0>; | 546 | #size-cells = <0>; |
536 | reg = <0x15750000 0x2000>; | 547 | reg = <0x15750000 0x2000>; |
@@ -543,7 +554,7 @@ | |||
543 | 554 | ||
544 | mmc_2: mmc@15560000 { | 555 | mmc_2: mmc@15560000 { |
545 | compatible = "samsung,exynos7-dw-mshc-smu"; | 556 | compatible = "samsung,exynos7-dw-mshc-smu"; |
546 | interrupts = <0 216 0>; | 557 | interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; |
547 | #address-cells = <1>; | 558 | #address-cells = <1>; |
548 | #size-cells = <0>; | 559 | #size-cells = <0>; |
549 | reg = <0x15560000 0x2000>; | 560 | reg = <0x15560000 0x2000>; |
@@ -557,7 +568,7 @@ | |||
557 | adc: adc@13620000 { | 568 | adc: adc@13620000 { |
558 | compatible = "samsung,exynos7-adc"; | 569 | compatible = "samsung,exynos7-adc"; |
559 | reg = <0x13620000 0x100>; | 570 | reg = <0x13620000 0x100>; |
560 | interrupts = <0 448 0>; | 571 | interrupts = <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>; |
561 | clocks = <&clock_peric0 PCLK_ADCIF>; | 572 | clocks = <&clock_peric0 PCLK_ADCIF>; |
562 | clock-names = "adc"; | 573 | clock-names = "adc"; |
563 | #io-channel-cells = <1>; | 574 | #io-channel-cells = <1>; |
@@ -577,7 +588,7 @@ | |||
577 | tmuctrl_0: tmu@10060000 { | 588 | tmuctrl_0: tmu@10060000 { |
578 | compatible = "samsung,exynos7-tmu"; | 589 | compatible = "samsung,exynos7-tmu"; |
579 | reg = <0x10060000 0x200>; | 590 | reg = <0x10060000 0x200>; |
580 | interrupts = <0 108 0>; | 591 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; |
581 | clocks = <&clock_peris PCLK_TMU>, | 592 | clocks = <&clock_peris PCLK_TMU>, |
582 | <&clock_peris SCLK_TMU>; | 593 | <&clock_peris SCLK_TMU>; |
583 | clock-names = "tmu_apbif", "tmu_sclk"; | 594 | clock-names = "tmu_apbif", "tmu_sclk"; |
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index 1b7783db7de4..66027181fba4 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile | |||
@@ -1,5 +1,7 @@ | |||
1 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb | 1 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb |
2 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb | 2 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb |
3 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-qds.dtb | ||
4 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1046a-rdb.dtb | ||
3 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb | 5 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb |
4 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb | 6 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb |
5 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb | 7 | dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts index dd9e91941df4..0989d635b558 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts | |||
@@ -45,7 +45,7 @@ | |||
45 | */ | 45 | */ |
46 | 46 | ||
47 | /dts-v1/; | 47 | /dts-v1/; |
48 | /include/ "fsl-ls1043a.dtsi" | 48 | #include "fsl-ls1043a.dtsi" |
49 | 49 | ||
50 | / { | 50 | / { |
51 | model = "LS1043A QDS Board"; | 51 | model = "LS1043A QDS Board"; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts index d2313e05fd22..c37110bc1506 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts | |||
@@ -45,7 +45,7 @@ | |||
45 | */ | 45 | */ |
46 | 46 | ||
47 | /dts-v1/; | 47 | /dts-v1/; |
48 | /include/ "fsl-ls1043a.dtsi" | 48 | #include "fsl-ls1043a.dtsi" |
49 | 49 | ||
50 | / { | 50 | / { |
51 | model = "LS1043A RDB Board"; | 51 | model = "LS1043A RDB Board"; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi index 97d331ec2500..ec13a6ecb754 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | |||
@@ -44,6 +44,8 @@ | |||
44 | * OTHER DEALINGS IN THE SOFTWARE. | 44 | * OTHER DEALINGS IN THE SOFTWARE. |
45 | */ | 45 | */ |
46 | 46 | ||
47 | #include <dt-bindings/thermal/thermal.h> | ||
48 | |||
47 | / { | 49 | / { |
48 | compatible = "fsl,ls1043a"; | 50 | compatible = "fsl,ls1043a"; |
49 | interrupt-parent = <&gic>; | 51 | interrupt-parent = <&gic>; |
@@ -66,6 +68,7 @@ | |||
66 | reg = <0x0>; | 68 | reg = <0x0>; |
67 | clocks = <&clockgen 1 0>; | 69 | clocks = <&clockgen 1 0>; |
68 | next-level-cache = <&l2>; | 70 | next-level-cache = <&l2>; |
71 | #cooling-cells = <2>; | ||
69 | }; | 72 | }; |
70 | 73 | ||
71 | cpu1: cpu@1 { | 74 | cpu1: cpu@1 { |
@@ -255,6 +258,81 @@ | |||
255 | big-endian; | 258 | big-endian; |
256 | }; | 259 | }; |
257 | 260 | ||
261 | tmu: tmu@1f00000 { | ||
262 | compatible = "fsl,qoriq-tmu"; | ||
263 | reg = <0x0 0x1f00000 0x0 0x10000>; | ||
264 | interrupts = <0 33 0x4>; | ||
265 | fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; | ||
266 | fsl,tmu-calibration = <0x00000000 0x00000026 | ||
267 | 0x00000001 0x0000002d | ||
268 | 0x00000002 0x00000032 | ||
269 | 0x00000003 0x00000039 | ||
270 | 0x00000004 0x0000003f | ||
271 | 0x00000005 0x00000046 | ||
272 | 0x00000006 0x0000004d | ||
273 | 0x00000007 0x00000054 | ||
274 | 0x00000008 0x0000005a | ||
275 | 0x00000009 0x00000061 | ||
276 | 0x0000000a 0x0000006a | ||
277 | 0x0000000b 0x00000071 | ||
278 | |||
279 | 0x00010000 0x00000025 | ||
280 | 0x00010001 0x0000002c | ||
281 | 0x00010002 0x00000035 | ||
282 | 0x00010003 0x0000003d | ||
283 | 0x00010004 0x00000045 | ||
284 | 0x00010005 0x0000004e | ||
285 | 0x00010006 0x00000057 | ||
286 | 0x00010007 0x00000061 | ||
287 | 0x00010008 0x0000006b | ||
288 | 0x00010009 0x00000076 | ||
289 | |||
290 | 0x00020000 0x00000029 | ||
291 | 0x00020001 0x00000033 | ||
292 | 0x00020002 0x0000003d | ||
293 | 0x00020003 0x00000049 | ||
294 | 0x00020004 0x00000056 | ||
295 | 0x00020005 0x00000061 | ||
296 | 0x00020006 0x0000006d | ||
297 | |||
298 | 0x00030000 0x00000021 | ||
299 | 0x00030001 0x0000002a | ||
300 | 0x00030002 0x0000003c | ||
301 | 0x00030003 0x0000004e>; | ||
302 | #thermal-sensor-cells = <1>; | ||
303 | }; | ||
304 | |||
305 | thermal-zones { | ||
306 | cpu_thermal: cpu-thermal { | ||
307 | polling-delay-passive = <1000>; | ||
308 | polling-delay = <5000>; | ||
309 | |||
310 | thermal-sensors = <&tmu 3>; | ||
311 | |||
312 | trips { | ||
313 | cpu_alert: cpu-alert { | ||
314 | temperature = <85000>; | ||
315 | hysteresis = <2000>; | ||
316 | type = "passive"; | ||
317 | }; | ||
318 | cpu_crit: cpu-crit { | ||
319 | temperature = <95000>; | ||
320 | hysteresis = <2000>; | ||
321 | type = "critical"; | ||
322 | }; | ||
323 | }; | ||
324 | |||
325 | cooling-maps { | ||
326 | map0 { | ||
327 | trip = <&cpu_alert>; | ||
328 | cooling-device = | ||
329 | <&cpu0 THERMAL_NO_LIMIT | ||
330 | THERMAL_NO_LIMIT>; | ||
331 | }; | ||
332 | }; | ||
333 | }; | ||
334 | }; | ||
335 | |||
258 | dspi0: dspi@2100000 { | 336 | dspi0: dspi@2100000 { |
259 | compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; | 337 | compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; |
260 | #address-cells = <1>; | 338 | #address-cells = <1>; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts new file mode 100644 index 000000000000..290e5b014414 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts | |||
@@ -0,0 +1,212 @@ | |||
1 | /* | ||
2 | * Device Tree Include file for Freescale Layerscape-1046A family SoC. | ||
3 | * | ||
4 | * Copyright 2016, Freescale Semiconductor, Inc. | ||
5 | * | ||
6 | * Shaohui Xie <Shaohui.Xie@nxp.com> | ||
7 | * | ||
8 | * This file is dual-licensed: you can use it either under the terms | ||
9 | * of the GPLv2 or the X11 license, at your option. Note that this dual | ||
10 | * licensing only applies to this file, and not this project as a | ||
11 | * whole. | ||
12 | * | ||
13 | * a) This library is free software; you can redistribute it and/or | ||
14 | * modify it under the terms of the GNU General Public License as | ||
15 | * published by the Free Software Foundation; either version 2 of the | ||
16 | * License, or (at your option) any later version. | ||
17 | * | ||
18 | * This library is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | * | ||
23 | * Or, alternatively, | ||
24 | * | ||
25 | * b) Permission is hereby granted, free of charge, to any person | ||
26 | * obtaining a copy of this software and associated documentation | ||
27 | * files (the "Software"), to deal in the Software without | ||
28 | * restriction, including without limitation the rights to use, | ||
29 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
30 | * sell copies of the Software, and to permit persons to whom the | ||
31 | * Software is furnished to do so, subject to the following | ||
32 | * conditions: | ||
33 | * | ||
34 | * The above copyright notice and this permission notice shall be | ||
35 | * included in all copies or substantial portions of the Software. | ||
36 | * | ||
37 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
38 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
39 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
40 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
41 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
42 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
43 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
44 | * OTHER DEALINGS IN THE SOFTWARE. | ||
45 | */ | ||
46 | |||
47 | /dts-v1/; | ||
48 | |||
49 | #include "fsl-ls1046a.dtsi" | ||
50 | |||
51 | / { | ||
52 | model = "LS1046A QDS Board"; | ||
53 | compatible = "fsl,ls1046a-qds", "fsl,ls1046a"; | ||
54 | |||
55 | aliases { | ||
56 | gpio0 = &gpio0; | ||
57 | gpio1 = &gpio1; | ||
58 | gpio2 = &gpio2; | ||
59 | gpio3 = &gpio3; | ||
60 | serial0 = &duart0; | ||
61 | serial1 = &duart1; | ||
62 | serial2 = &duart2; | ||
63 | serial3 = &duart3; | ||
64 | }; | ||
65 | |||
66 | chosen { | ||
67 | stdout-path = "serial0:115200n8"; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | &dspi { | ||
72 | bus-num = <0>; | ||
73 | status = "okay"; | ||
74 | |||
75 | flash@0 { | ||
76 | #address-cells = <1>; | ||
77 | #size-cells = <1>; | ||
78 | compatible = "n25q128a11", "jedec,spi-nor"; | ||
79 | reg = <0>; | ||
80 | spi-max-frequency = <10000000>; | ||
81 | }; | ||
82 | |||
83 | flash@1 { | ||
84 | #address-cells = <1>; | ||
85 | #size-cells = <1>; | ||
86 | compatible = "sst25wf040b", "jedec,spi-nor"; | ||
87 | spi-cpol; | ||
88 | spi-cpha; | ||
89 | reg = <1>; | ||
90 | spi-max-frequency = <10000000>; | ||
91 | }; | ||
92 | |||
93 | flash@2 { | ||
94 | #address-cells = <1>; | ||
95 | #size-cells = <1>; | ||
96 | compatible = "en25s64", "jedec,spi-nor"; | ||
97 | spi-cpol; | ||
98 | spi-cpha; | ||
99 | reg = <2>; | ||
100 | spi-max-frequency = <10000000>; | ||
101 | }; | ||
102 | }; | ||
103 | |||
104 | &duart0 { | ||
105 | status = "okay"; | ||
106 | }; | ||
107 | |||
108 | &duart1 { | ||
109 | status = "okay"; | ||
110 | }; | ||
111 | |||
112 | &i2c0 { | ||
113 | status = "okay"; | ||
114 | |||
115 | pca9547@77 { | ||
116 | compatible = "nxp,pca9547"; | ||
117 | reg = <0x77>; | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <0>; | ||
120 | |||
121 | i2c@2 { | ||
122 | #address-cells = <1>; | ||
123 | #size-cells = <0>; | ||
124 | reg = <0x2>; | ||
125 | |||
126 | ina220@40 { | ||
127 | compatible = "ti,ina220"; | ||
128 | reg = <0x40>; | ||
129 | shunt-resistor = <1000>; | ||
130 | }; | ||
131 | |||
132 | ina220@41 { | ||
133 | compatible = "ti,ina220"; | ||
134 | reg = <0x41>; | ||
135 | shunt-resistor = <1000>; | ||
136 | }; | ||
137 | }; | ||
138 | |||
139 | i2c@3 { | ||
140 | #address-cells = <1>; | ||
141 | #size-cells = <0>; | ||
142 | reg = <0x3>; | ||
143 | |||
144 | rtc@51 { | ||
145 | compatible = "nxp,pcf2129"; | ||
146 | reg = <0x51>; | ||
147 | /* IRQ10_B */ | ||
148 | interrupts = <0 150 0x4>; | ||
149 | }; | ||
150 | |||
151 | eeprom@56 { | ||
152 | compatible = "atmel,24c512"; | ||
153 | reg = <0x56>; | ||
154 | }; | ||
155 | |||
156 | eeprom@57 { | ||
157 | compatible = "atmel,24c512"; | ||
158 | reg = <0x57>; | ||
159 | }; | ||
160 | |||
161 | temp-sensor@4c { | ||
162 | compatible = "adi,adt7461a"; | ||
163 | reg = <0x4c>; | ||
164 | }; | ||
165 | }; | ||
166 | }; | ||
167 | }; | ||
168 | |||
169 | &ifc { | ||
170 | #address-cells = <2>; | ||
171 | #size-cells = <1>; | ||
172 | /* NOR, NAND Flashes and FPGA on board */ | ||
173 | ranges = <0x0 0x0 0x0 0x60000000 0x08000000 | ||
174 | 0x1 0x0 0x0 0x7e800000 0x00010000 | ||
175 | 0x2 0x0 0x0 0x7fb00000 0x00000100>; | ||
176 | status = "okay"; | ||
177 | |||
178 | nor@0,0 { | ||
179 | compatible = "cfi-flash"; | ||
180 | reg = <0x0 0x0 0x8000000>; | ||
181 | bank-width = <2>; | ||
182 | device-width = <1>; | ||
183 | }; | ||
184 | |||
185 | nand@1,0 { | ||
186 | compatible = "fsl,ifc-nand"; | ||
187 | reg = <0x1 0x0 0x10000>; | ||
188 | }; | ||
189 | |||
190 | fpga: board-control@2,0 { | ||
191 | compatible = "fsl,ls1046aqds-fpga", "fsl,fpga-qixis"; | ||
192 | reg = <0x2 0x0 0x0000100>; | ||
193 | }; | ||
194 | }; | ||
195 | |||
196 | &lpuart0 { | ||
197 | status = "okay"; | ||
198 | }; | ||
199 | |||
200 | &qspi { | ||
201 | num-cs = <2>; | ||
202 | bus-num = <0>; | ||
203 | status = "okay"; | ||
204 | |||
205 | qflash0: s25fl128s@0 { | ||
206 | compatible = "spansion,m25p80"; | ||
207 | #address-cells = <1>; | ||
208 | #size-cells = <1>; | ||
209 | spi-max-frequency = <20000000>; | ||
210 | reg = <0>; | ||
211 | }; | ||
212 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts new file mode 100644 index 000000000000..d1ccc000d05a --- /dev/null +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts | |||
@@ -0,0 +1,150 @@ | |||
1 | /* | ||
2 | * Device Tree Include file for Freescale Layerscape-1046A family SoC. | ||
3 | * | ||
4 | * Copyright 2016, Freescale Semiconductor, Inc. | ||
5 | * | ||
6 | * Mingkai Hu <mingkai.hu@nxp.com> | ||
7 | * | ||
8 | * This file is dual-licensed: you can use it either under the terms | ||
9 | * of the GPLv2 or the X11 license, at your option. Note that this dual | ||
10 | * licensing only applies to this file, and not this project as a | ||
11 | * whole. | ||
12 | * | ||
13 | * a) This library is free software; you can redistribute it and/or | ||
14 | * modify it under the terms of the GNU General Public License as | ||
15 | * published by the Free Software Foundation; either version 2 of the | ||
16 | * License, or (at your option) any later version. | ||
17 | * | ||
18 | * This library is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | * | ||
23 | * Or, alternatively, | ||
24 | * | ||
25 | * b) Permission is hereby granted, free of charge, to any person | ||
26 | * obtaining a copy of this software and associated documentation | ||
27 | * files (the "Software"), to deal in the Software without | ||
28 | * restriction, including without limitation the rights to use, | ||
29 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
30 | * sell copies of the Software, and to permit persons to whom the | ||
31 | * Software is furnished to do so, subject to the following | ||
32 | * conditions: | ||
33 | * | ||
34 | * The above copyright notice and this permission notice shall be | ||
35 | * included in all copies or substantial portions of the Software. | ||
36 | * | ||
37 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
38 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
39 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
40 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
41 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
42 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
43 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
44 | * OTHER DEALINGS IN THE SOFTWARE. | ||
45 | */ | ||
46 | |||
47 | /dts-v1/; | ||
48 | |||
49 | #include "fsl-ls1046a.dtsi" | ||
50 | |||
51 | / { | ||
52 | model = "LS1046A RDB Board"; | ||
53 | compatible = "fsl,ls1046a-rdb", "fsl,ls1046a"; | ||
54 | |||
55 | aliases { | ||
56 | serial0 = &duart0; | ||
57 | serial1 = &duart1; | ||
58 | serial2 = &duart2; | ||
59 | serial3 = &duart3; | ||
60 | }; | ||
61 | |||
62 | chosen { | ||
63 | stdout-path = "serial0:115200n8"; | ||
64 | }; | ||
65 | }; | ||
66 | |||
67 | &duart0 { | ||
68 | status = "okay"; | ||
69 | }; | ||
70 | |||
71 | &duart1 { | ||
72 | status = "okay"; | ||
73 | }; | ||
74 | |||
75 | &i2c0 { | ||
76 | status = "okay"; | ||
77 | |||
78 | ina220@40 { | ||
79 | compatible = "ti,ina220"; | ||
80 | reg = <0x40>; | ||
81 | shunt-resistor = <1000>; | ||
82 | }; | ||
83 | |||
84 | temp-sensor@4c { | ||
85 | compatible = "adi,adt7461"; | ||
86 | reg = <0x4c>; | ||
87 | }; | ||
88 | |||
89 | eeprom@56 { | ||
90 | compatible = "atmel,24c512"; | ||
91 | reg = <0x52>; | ||
92 | }; | ||
93 | |||
94 | eeprom@57 { | ||
95 | compatible = "atmel,24c512"; | ||
96 | reg = <0x53>; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | &i2c3 { | ||
101 | status = "okay"; | ||
102 | |||
103 | rtc@51 { | ||
104 | compatible = "nxp,pcf2129"; | ||
105 | reg = <0x51>; | ||
106 | }; | ||
107 | }; | ||
108 | |||
109 | &ifc { | ||
110 | #address-cells = <2>; | ||
111 | #size-cells = <1>; | ||
112 | /* NAND Flashe and CPLD on board */ | ||
113 | ranges = <0x0 0x0 0x0 0x7e800000 0x00010000 | ||
114 | 0x2 0x0 0x0 0x7fb00000 0x00000100>; | ||
115 | status = "okay"; | ||
116 | |||
117 | nand@0,0 { | ||
118 | compatible = "fsl,ifc-nand"; | ||
119 | #address-cells = <1>; | ||
120 | #size-cells = <1>; | ||
121 | reg = <0x0 0x0 0x10000>; | ||
122 | }; | ||
123 | |||
124 | cpld: board-control@2,0 { | ||
125 | compatible = "fsl,ls1046ardb-cpld"; | ||
126 | reg = <0x2 0x0 0x0000100>; | ||
127 | }; | ||
128 | }; | ||
129 | |||
130 | &qspi { | ||
131 | num-cs = <2>; | ||
132 | bus-num = <0>; | ||
133 | status = "okay"; | ||
134 | |||
135 | qflash0: s25fs512s@0 { | ||
136 | compatible = "spansion,m25p80"; | ||
137 | #address-cells = <1>; | ||
138 | #size-cells = <1>; | ||
139 | spi-max-frequency = <20000000>; | ||
140 | reg = <0>; | ||
141 | }; | ||
142 | |||
143 | qflash1: s25fs512s@1 { | ||
144 | compatible = "spansion,m25p80"; | ||
145 | #address-cells = <1>; | ||
146 | #size-cells = <1>; | ||
147 | spi-max-frequency = <20000000>; | ||
148 | reg = <1>; | ||
149 | }; | ||
150 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi new file mode 100644 index 000000000000..38806ca53829 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | |||
@@ -0,0 +1,515 @@ | |||
1 | /* | ||
2 | * Device Tree Include file for Freescale Layerscape-1046A family SoC. | ||
3 | * | ||
4 | * Copyright 2016, Freescale Semiconductor, Inc. | ||
5 | * | ||
6 | * Mingkai Hu <mingkai.hu@nxp.com> | ||
7 | * | ||
8 | * This file is dual-licensed: you can use it either under the terms | ||
9 | * of the GPLv2 or the X11 license, at your option. Note that this dual | ||
10 | * licensing only applies to this file, and not this project as a | ||
11 | * whole. | ||
12 | * | ||
13 | * a) This library is free software; you can redistribute it and/or | ||
14 | * modify it under the terms of the GNU General Public License as | ||
15 | * published by the Free Software Foundation; either version 2 of the | ||
16 | * License, or (at your option) any later version. | ||
17 | * | ||
18 | * This library is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | * | ||
23 | * Or, alternatively, | ||
24 | * | ||
25 | * b) Permission is hereby granted, free of charge, to any person | ||
26 | * obtaining a copy of this software and associated documentation | ||
27 | * files (the "Software"), to deal in the Software without | ||
28 | * restriction, including without limitation the rights to use, | ||
29 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
30 | * sell copies of the Software, and to permit persons to whom the | ||
31 | * Software is furnished to do so, subject to the following | ||
32 | * conditions: | ||
33 | * | ||
34 | * The above copyright notice and this permission notice shall be | ||
35 | * included in all copies or substantial portions of the Software. | ||
36 | * | ||
37 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
38 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
39 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
40 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
41 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
42 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
43 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
44 | * OTHER DEALINGS IN THE SOFTWARE. | ||
45 | */ | ||
46 | |||
47 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
48 | |||
49 | / { | ||
50 | compatible = "fsl,ls1046a"; | ||
51 | interrupt-parent = <&gic>; | ||
52 | #address-cells = <2>; | ||
53 | #size-cells = <2>; | ||
54 | |||
55 | aliases { | ||
56 | crypto = &crypto; | ||
57 | }; | ||
58 | |||
59 | cpus { | ||
60 | #address-cells = <1>; | ||
61 | #size-cells = <0>; | ||
62 | |||
63 | cpu0: cpu@0 { | ||
64 | device_type = "cpu"; | ||
65 | compatible = "arm,cortex-a72"; | ||
66 | reg = <0x0>; | ||
67 | clocks = <&clockgen 1 0>; | ||
68 | next-level-cache = <&l2>; | ||
69 | cpu-idle-states = <&CPU_PH20>; | ||
70 | }; | ||
71 | |||
72 | cpu1: cpu@1 { | ||
73 | device_type = "cpu"; | ||
74 | compatible = "arm,cortex-a72"; | ||
75 | reg = <0x1>; | ||
76 | clocks = <&clockgen 1 0>; | ||
77 | next-level-cache = <&l2>; | ||
78 | cpu-idle-states = <&CPU_PH20>; | ||
79 | }; | ||
80 | |||
81 | cpu2: cpu@2 { | ||
82 | device_type = "cpu"; | ||
83 | compatible = "arm,cortex-a72"; | ||
84 | reg = <0x2>; | ||
85 | clocks = <&clockgen 1 0>; | ||
86 | next-level-cache = <&l2>; | ||
87 | cpu-idle-states = <&CPU_PH20>; | ||
88 | }; | ||
89 | |||
90 | cpu3: cpu@3 { | ||
91 | device_type = "cpu"; | ||
92 | compatible = "arm,cortex-a72"; | ||
93 | reg = <0x3>; | ||
94 | clocks = <&clockgen 1 0>; | ||
95 | next-level-cache = <&l2>; | ||
96 | cpu-idle-states = <&CPU_PH20>; | ||
97 | }; | ||
98 | |||
99 | l2: l2-cache { | ||
100 | compatible = "cache"; | ||
101 | }; | ||
102 | }; | ||
103 | |||
104 | idle-states { | ||
105 | /* | ||
106 | * PSCI node is not added default, U-boot will add missing | ||
107 | * parts if it determines to use PSCI. | ||
108 | */ | ||
109 | entry-method = "arm,psci"; | ||
110 | |||
111 | CPU_PH20: cpu-ph20 { | ||
112 | compatible = "arm,idle-state"; | ||
113 | idle-state-name = "PH20"; | ||
114 | arm,psci-suspend-param = <0x00010000>; | ||
115 | entry-latency-us = <1000>; | ||
116 | exit-latency-us = <1000>; | ||
117 | min-residency-us = <3000>; | ||
118 | }; | ||
119 | }; | ||
120 | |||
121 | memory@80000000 { | ||
122 | device_type = "memory"; | ||
123 | }; | ||
124 | |||
125 | sysclk: sysclk { | ||
126 | compatible = "fixed-clock"; | ||
127 | #clock-cells = <0>; | ||
128 | clock-frequency = <100000000>; | ||
129 | clock-output-names = "sysclk"; | ||
130 | }; | ||
131 | |||
132 | reboot { | ||
133 | compatible ="syscon-reboot"; | ||
134 | regmap = <&dcfg>; | ||
135 | offset = <0xb0>; | ||
136 | mask = <0x02>; | ||
137 | }; | ||
138 | |||
139 | timer { | ||
140 | compatible = "arm,armv8-timer"; | ||
141 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xf) | | ||
142 | IRQ_TYPE_LEVEL_LOW)>, | ||
143 | <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xf) | | ||
144 | IRQ_TYPE_LEVEL_LOW)>, | ||
145 | <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xf) | | ||
146 | IRQ_TYPE_LEVEL_LOW)>, | ||
147 | <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xf) | | ||
148 | IRQ_TYPE_LEVEL_LOW)>; | ||
149 | }; | ||
150 | |||
151 | pmu { | ||
152 | compatible = "arm,cortex-a72-pmu"; | ||
153 | interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, | ||
154 | <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, | ||
155 | <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, | ||
156 | <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | ||
157 | interrupt-affinity = <&cpu0>, | ||
158 | <&cpu1>, | ||
159 | <&cpu2>, | ||
160 | <&cpu3>; | ||
161 | }; | ||
162 | |||
163 | gic: interrupt-controller@1400000 { | ||
164 | compatible = "arm,gic-400"; | ||
165 | #interrupt-cells = <3>; | ||
166 | interrupt-controller; | ||
167 | reg = <0x0 0x1410000 0 0x10000>, /* GICD */ | ||
168 | <0x0 0x1420000 0 0x20000>, /* GICC */ | ||
169 | <0x0 0x1440000 0 0x20000>, /* GICH */ | ||
170 | <0x0 0x1460000 0 0x20000>; /* GICV */ | ||
171 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) | | ||
172 | IRQ_TYPE_LEVEL_LOW)>; | ||
173 | }; | ||
174 | |||
175 | soc { | ||
176 | compatible = "simple-bus"; | ||
177 | #address-cells = <2>; | ||
178 | #size-cells = <2>; | ||
179 | ranges; | ||
180 | |||
181 | ddr: memory-controller@1080000 { | ||
182 | compatible = "fsl,qoriq-memory-controller"; | ||
183 | reg = <0x0 0x1080000 0x0 0x1000>; | ||
184 | interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; | ||
185 | big-endian; | ||
186 | }; | ||
187 | |||
188 | ifc: ifc@1530000 { | ||
189 | compatible = "fsl,ifc", "simple-bus"; | ||
190 | reg = <0x0 0x1530000 0x0 0x10000>; | ||
191 | interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; | ||
192 | }; | ||
193 | |||
194 | qspi: quadspi@1550000 { | ||
195 | compatible = "fsl,ls1021a-qspi"; | ||
196 | #address-cells = <1>; | ||
197 | #size-cells = <0>; | ||
198 | reg = <0x0 0x1550000 0x0 0x10000>, | ||
199 | <0x0 0x40000000 0x0 0x10000000>; | ||
200 | reg-names = "QuadSPI", "QuadSPI-memory"; | ||
201 | interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; | ||
202 | clock-names = "qspi_en", "qspi"; | ||
203 | clocks = <&clockgen 4 1>, <&clockgen 4 1>; | ||
204 | big-endian; | ||
205 | fsl,qspi-has-second-chip; | ||
206 | status = "disabled"; | ||
207 | }; | ||
208 | |||
209 | esdhc: esdhc@1560000 { | ||
210 | compatible = "fsl,esdhc"; | ||
211 | reg = <0x0 0x1560000 0x0 0x10000>; | ||
212 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | ||
213 | clock-frequency = <0>; | ||
214 | voltage-ranges = <1800 1800 3300 3300>; | ||
215 | sdhci,auto-cmd12; | ||
216 | big-endian; | ||
217 | bus-width = <4>; | ||
218 | }; | ||
219 | |||
220 | scfg: scfg@1570000 { | ||
221 | compatible = "fsl,ls1046a-scfg", "syscon"; | ||
222 | reg = <0x0 0x1570000 0x0 0x10000>; | ||
223 | big-endian; | ||
224 | }; | ||
225 | |||
226 | crypto: crypto@1700000 { | ||
227 | compatible = "fsl,sec-v5.4", "fsl,sec-v5.0", | ||
228 | "fsl,sec-v4.0"; | ||
229 | fsl,sec-era = <8>; | ||
230 | #address-cells = <1>; | ||
231 | #size-cells = <1>; | ||
232 | ranges = <0x0 0x00 0x1700000 0x100000>; | ||
233 | reg = <0x00 0x1700000 0x0 0x100000>; | ||
234 | interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; | ||
235 | |||
236 | sec_jr0: jr@10000 { | ||
237 | compatible = "fsl,sec-v5.4-job-ring", | ||
238 | "fsl,sec-v5.0-job-ring", | ||
239 | "fsl,sec-v4.0-job-ring"; | ||
240 | reg = <0x10000 0x10000>; | ||
241 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; | ||
242 | }; | ||
243 | |||
244 | sec_jr1: jr@20000 { | ||
245 | compatible = "fsl,sec-v5.4-job-ring", | ||
246 | "fsl,sec-v5.0-job-ring", | ||
247 | "fsl,sec-v4.0-job-ring"; | ||
248 | reg = <0x20000 0x10000>; | ||
249 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; | ||
250 | }; | ||
251 | |||
252 | sec_jr2: jr@30000 { | ||
253 | compatible = "fsl,sec-v5.4-job-ring", | ||
254 | "fsl,sec-v5.0-job-ring", | ||
255 | "fsl,sec-v4.0-job-ring"; | ||
256 | reg = <0x30000 0x10000>; | ||
257 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
258 | }; | ||
259 | |||
260 | sec_jr3: jr@40000 { | ||
261 | compatible = "fsl,sec-v5.4-job-ring", | ||
262 | "fsl,sec-v5.0-job-ring", | ||
263 | "fsl,sec-v4.0-job-ring"; | ||
264 | reg = <0x40000 0x10000>; | ||
265 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; | ||
266 | }; | ||
267 | }; | ||
268 | |||
269 | dcfg: dcfg@1ee0000 { | ||
270 | compatible = "fsl,ls1046a-dcfg", "syscon"; | ||
271 | reg = <0x0 0x1ee0000 0x0 0x10000>; | ||
272 | big-endian; | ||
273 | }; | ||
274 | |||
275 | clockgen: clocking@1ee1000 { | ||
276 | compatible = "fsl,ls1046a-clockgen"; | ||
277 | reg = <0x0 0x1ee1000 0x0 0x1000>; | ||
278 | #clock-cells = <2>; | ||
279 | clocks = <&sysclk>; | ||
280 | }; | ||
281 | |||
282 | dspi: dspi@2100000 { | ||
283 | compatible = "fsl,ls1021a-v1.0-dspi"; | ||
284 | #address-cells = <1>; | ||
285 | #size-cells = <0>; | ||
286 | reg = <0x0 0x2100000 0x0 0x10000>; | ||
287 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; | ||
288 | clock-names = "dspi"; | ||
289 | clocks = <&clockgen 4 1>; | ||
290 | spi-num-chipselects = <5>; | ||
291 | big-endian; | ||
292 | status = "disabled"; | ||
293 | }; | ||
294 | |||
295 | i2c0: i2c@2180000 { | ||
296 | compatible = "fsl,vf610-i2c"; | ||
297 | #address-cells = <1>; | ||
298 | #size-cells = <0>; | ||
299 | reg = <0x0 0x2180000 0x0 0x10000>; | ||
300 | interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; | ||
301 | clocks = <&clockgen 4 1>; | ||
302 | dmas = <&edma0 1 39>, | ||
303 | <&edma0 1 38>; | ||
304 | dma-names = "tx", "rx"; | ||
305 | status = "disabled"; | ||
306 | }; | ||
307 | |||
308 | i2c1: i2c@2190000 { | ||
309 | compatible = "fsl,vf610-i2c"; | ||
310 | #address-cells = <1>; | ||
311 | #size-cells = <0>; | ||
312 | reg = <0x0 0x2190000 0x0 0x10000>; | ||
313 | interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; | ||
314 | clocks = <&clockgen 4 1>; | ||
315 | status = "disabled"; | ||
316 | }; | ||
317 | |||
318 | i2c2: i2c@21a0000 { | ||
319 | compatible = "fsl,vf610-i2c"; | ||
320 | #address-cells = <1>; | ||
321 | #size-cells = <0>; | ||
322 | reg = <0x0 0x21a0000 0x0 0x10000>; | ||
323 | interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; | ||
324 | clocks = <&clockgen 4 1>; | ||
325 | status = "disabled"; | ||
326 | }; | ||
327 | |||
328 | i2c3: i2c@21b0000 { | ||
329 | compatible = "fsl,vf610-i2c"; | ||
330 | #address-cells = <1>; | ||
331 | #size-cells = <0>; | ||
332 | reg = <0x0 0x21b0000 0x0 0x10000>; | ||
333 | interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | ||
334 | clocks = <&clockgen 4 1>; | ||
335 | status = "disabled"; | ||
336 | }; | ||
337 | |||
338 | duart0: serial@21c0500 { | ||
339 | compatible = "fsl,ns16550", "ns16550a"; | ||
340 | reg = <0x00 0x21c0500 0x0 0x100>; | ||
341 | interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; | ||
342 | clocks = <&clockgen 4 1>; | ||
343 | }; | ||
344 | |||
345 | duart1: serial@21c0600 { | ||
346 | compatible = "fsl,ns16550", "ns16550a"; | ||
347 | reg = <0x00 0x21c0600 0x0 0x100>; | ||
348 | interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; | ||
349 | clocks = <&clockgen 4 1>; | ||
350 | }; | ||
351 | |||
352 | duart2: serial@21d0500 { | ||
353 | compatible = "fsl,ns16550", "ns16550a"; | ||
354 | reg = <0x0 0x21d0500 0x0 0x100>; | ||
355 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; | ||
356 | clocks = <&clockgen 4 1>; | ||
357 | }; | ||
358 | |||
359 | duart3: serial@21d0600 { | ||
360 | compatible = "fsl,ns16550", "ns16550a"; | ||
361 | reg = <0x0 0x21d0600 0x0 0x100>; | ||
362 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; | ||
363 | clocks = <&clockgen 4 1>; | ||
364 | }; | ||
365 | |||
366 | gpio0: gpio@2300000 { | ||
367 | compatible = "fsl,qoriq-gpio"; | ||
368 | reg = <0x0 0x2300000 0x0 0x10000>; | ||
369 | interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; | ||
370 | gpio-controller; | ||
371 | #gpio-cells = <2>; | ||
372 | interrupt-controller; | ||
373 | #interrupt-cells = <2>; | ||
374 | }; | ||
375 | |||
376 | gpio1: gpio@2310000 { | ||
377 | compatible = "fsl,qoriq-gpio"; | ||
378 | reg = <0x0 0x2310000 0x0 0x10000>; | ||
379 | interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; | ||
380 | gpio-controller; | ||
381 | #gpio-cells = <2>; | ||
382 | interrupt-controller; | ||
383 | #interrupt-cells = <2>; | ||
384 | }; | ||
385 | |||
386 | gpio2: gpio@2320000 { | ||
387 | compatible = "fsl,qoriq-gpio"; | ||
388 | reg = <0x0 0x2320000 0x0 0x10000>; | ||
389 | interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; | ||
390 | gpio-controller; | ||
391 | #gpio-cells = <2>; | ||
392 | interrupt-controller; | ||
393 | #interrupt-cells = <2>; | ||
394 | }; | ||
395 | |||
396 | gpio3: gpio@2330000 { | ||
397 | compatible = "fsl,qoriq-gpio"; | ||
398 | reg = <0x0 0x2330000 0x0 0x10000>; | ||
399 | interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; | ||
400 | gpio-controller; | ||
401 | #gpio-cells = <2>; | ||
402 | interrupt-controller; | ||
403 | #interrupt-cells = <2>; | ||
404 | }; | ||
405 | |||
406 | lpuart0: serial@2950000 { | ||
407 | compatible = "fsl,ls1021a-lpuart"; | ||
408 | reg = <0x0 0x2950000 0x0 0x1000>; | ||
409 | interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; | ||
410 | clocks = <&clockgen 4 0>; | ||
411 | clock-names = "ipg"; | ||
412 | status = "disabled"; | ||
413 | }; | ||
414 | |||
415 | lpuart1: serial@2960000 { | ||
416 | compatible = "fsl,ls1021a-lpuart"; | ||
417 | reg = <0x0 0x2960000 0x0 0x1000>; | ||
418 | interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; | ||
419 | clocks = <&clockgen 4 1>; | ||
420 | clock-names = "ipg"; | ||
421 | status = "disabled"; | ||
422 | }; | ||
423 | |||
424 | lpuart2: serial@2970000 { | ||
425 | compatible = "fsl,ls1021a-lpuart"; | ||
426 | reg = <0x0 0x2970000 0x0 0x1000>; | ||
427 | interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; | ||
428 | clocks = <&clockgen 4 1>; | ||
429 | clock-names = "ipg"; | ||
430 | status = "disabled"; | ||
431 | }; | ||
432 | |||
433 | lpuart3: serial@2980000 { | ||
434 | compatible = "fsl,ls1021a-lpuart"; | ||
435 | reg = <0x0 0x2980000 0x0 0x1000>; | ||
436 | interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; | ||
437 | clocks = <&clockgen 4 1>; | ||
438 | clock-names = "ipg"; | ||
439 | status = "disabled"; | ||
440 | }; | ||
441 | |||
442 | lpuart4: serial@2990000 { | ||
443 | compatible = "fsl,ls1021a-lpuart"; | ||
444 | reg = <0x0 0x2990000 0x0 0x1000>; | ||
445 | interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; | ||
446 | clocks = <&clockgen 4 1>; | ||
447 | clock-names = "ipg"; | ||
448 | status = "disabled"; | ||
449 | }; | ||
450 | |||
451 | lpuart5: serial@29a0000 { | ||
452 | compatible = "fsl,ls1021a-lpuart"; | ||
453 | reg = <0x0 0x29a0000 0x0 0x1000>; | ||
454 | interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; | ||
455 | clocks = <&clockgen 4 1>; | ||
456 | clock-names = "ipg"; | ||
457 | status = "disabled"; | ||
458 | }; | ||
459 | |||
460 | wdog0: watchdog@2ad0000 { | ||
461 | compatible = "fsl,imx21-wdt"; | ||
462 | reg = <0x0 0x2ad0000 0x0 0x10000>; | ||
463 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; | ||
464 | clocks = <&clockgen 4 1>; | ||
465 | big-endian; | ||
466 | }; | ||
467 | |||
468 | edma0: edma@2c00000 { | ||
469 | #dma-cells = <2>; | ||
470 | compatible = "fsl,vf610-edma"; | ||
471 | reg = <0x0 0x2c00000 0x0 0x10000>, | ||
472 | <0x0 0x2c10000 0x0 0x10000>, | ||
473 | <0x0 0x2c20000 0x0 0x10000>; | ||
474 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, | ||
475 | <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | ||
476 | interrupt-names = "edma-tx", "edma-err"; | ||
477 | dma-channels = <32>; | ||
478 | big-endian; | ||
479 | clock-names = "dmamux0", "dmamux1"; | ||
480 | clocks = <&clockgen 4 1>, | ||
481 | <&clockgen 4 1>; | ||
482 | }; | ||
483 | |||
484 | usb0: usb@2f00000 { | ||
485 | compatible = "snps,dwc3"; | ||
486 | reg = <0x0 0x2f00000 0x0 0x10000>; | ||
487 | interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; | ||
488 | dr_mode = "host"; | ||
489 | snps,quirk-frame-length-adjustment = <0x20>; | ||
490 | }; | ||
491 | |||
492 | usb1: usb@3000000 { | ||
493 | compatible = "snps,dwc3"; | ||
494 | reg = <0x0 0x3000000 0x0 0x10000>; | ||
495 | interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; | ||
496 | dr_mode = "host"; | ||
497 | snps,quirk-frame-length-adjustment = <0x20>; | ||
498 | }; | ||
499 | |||
500 | usb2: usb@3100000 { | ||
501 | compatible = "snps,dwc3"; | ||
502 | reg = <0x0 0x3100000 0x0 0x10000>; | ||
503 | interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
504 | dr_mode = "host"; | ||
505 | snps,quirk-frame-length-adjustment = <0x20>; | ||
506 | }; | ||
507 | |||
508 | sata: sata@3200000 { | ||
509 | compatible = "fsl,ls1046a-ahci"; | ||
510 | reg = <0x0 0x3200000 0x0 0x10000>; | ||
511 | interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; | ||
512 | clocks = <&clockgen 4 1>; | ||
513 | }; | ||
514 | }; | ||
515 | }; | ||
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts index b0dd010979e7..8bc1f8f6fcfc 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | /dts-v1/; | 47 | /dts-v1/; |
48 | 48 | ||
49 | /include/ "fsl-ls2080a.dtsi" | 49 | #include "fsl-ls2080a.dtsi" |
50 | 50 | ||
51 | / { | 51 | / { |
52 | model = "Freescale Layerscape 2080a QDS Board"; | 52 | model = "Freescale Layerscape 2080a QDS Board"; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts index ad0ebb8a1949..265e0a8b107b 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | /dts-v1/; | 47 | /dts-v1/; |
48 | 48 | ||
49 | /include/ "fsl-ls2080a.dtsi" | 49 | #include "fsl-ls2080a.dtsi" |
50 | 50 | ||
51 | / { | 51 | / { |
52 | model = "Freescale Layerscape 2080a RDB Board"; | 52 | model = "Freescale Layerscape 2080a RDB Board"; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts b/arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts index 505d038078a3..290604b0a603 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts +++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | /dts-v1/; | 47 | /dts-v1/; |
48 | 48 | ||
49 | /include/ "fsl-ls2080a.dtsi" | 49 | #include "fsl-ls2080a.dtsi" |
50 | 50 | ||
51 | / { | 51 | / { |
52 | model = "Freescale Layerscape 2080a software Simulator model"; | 52 | model = "Freescale Layerscape 2080a software Simulator model"; |
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi index d058e56db72d..e5935f28848c 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | |||
@@ -44,6 +44,8 @@ | |||
44 | * OTHER DEALINGS IN THE SOFTWARE. | 44 | * OTHER DEALINGS IN THE SOFTWARE. |
45 | */ | 45 | */ |
46 | 46 | ||
47 | #include <dt-bindings/thermal/thermal.h> | ||
48 | |||
47 | / { | 49 | / { |
48 | compatible = "fsl,ls2080a"; | 50 | compatible = "fsl,ls2080a"; |
49 | interrupt-parent = <&gic>; | 51 | interrupt-parent = <&gic>; |
@@ -62,15 +64,16 @@ | |||
62 | */ | 64 | */ |
63 | 65 | ||
64 | /* We have 4 clusters having 2 Cortex-A57 cores each */ | 66 | /* We have 4 clusters having 2 Cortex-A57 cores each */ |
65 | cpu@0 { | 67 | cpu0: cpu@0 { |
66 | device_type = "cpu"; | 68 | device_type = "cpu"; |
67 | compatible = "arm,cortex-a57"; | 69 | compatible = "arm,cortex-a57"; |
68 | reg = <0x0>; | 70 | reg = <0x0>; |
69 | clocks = <&clockgen 1 0>; | 71 | clocks = <&clockgen 1 0>; |
70 | next-level-cache = <&cluster0_l2>; | 72 | next-level-cache = <&cluster0_l2>; |
73 | #cooling-cells = <2>; | ||
71 | }; | 74 | }; |
72 | 75 | ||
73 | cpu@1 { | 76 | cpu1: cpu@1 { |
74 | device_type = "cpu"; | 77 | device_type = "cpu"; |
75 | compatible = "arm,cortex-a57"; | 78 | compatible = "arm,cortex-a57"; |
76 | reg = <0x1>; | 79 | reg = <0x1>; |
@@ -78,15 +81,16 @@ | |||
78 | next-level-cache = <&cluster0_l2>; | 81 | next-level-cache = <&cluster0_l2>; |
79 | }; | 82 | }; |
80 | 83 | ||
81 | cpu@100 { | 84 | cpu2: cpu@100 { |
82 | device_type = "cpu"; | 85 | device_type = "cpu"; |
83 | compatible = "arm,cortex-a57"; | 86 | compatible = "arm,cortex-a57"; |
84 | reg = <0x100>; | 87 | reg = <0x100>; |
85 | clocks = <&clockgen 1 1>; | 88 | clocks = <&clockgen 1 1>; |
86 | next-level-cache = <&cluster1_l2>; | 89 | next-level-cache = <&cluster1_l2>; |
90 | #cooling-cells = <2>; | ||
87 | }; | 91 | }; |
88 | 92 | ||
89 | cpu@101 { | 93 | cpu3: cpu@101 { |
90 | device_type = "cpu"; | 94 | device_type = "cpu"; |
91 | compatible = "arm,cortex-a57"; | 95 | compatible = "arm,cortex-a57"; |
92 | reg = <0x101>; | 96 | reg = <0x101>; |
@@ -94,15 +98,16 @@ | |||
94 | next-level-cache = <&cluster1_l2>; | 98 | next-level-cache = <&cluster1_l2>; |
95 | }; | 99 | }; |
96 | 100 | ||
97 | cpu@200 { | 101 | cpu4: cpu@200 { |
98 | device_type = "cpu"; | 102 | device_type = "cpu"; |
99 | compatible = "arm,cortex-a57"; | 103 | compatible = "arm,cortex-a57"; |
100 | reg = <0x200>; | 104 | reg = <0x200>; |
101 | clocks = <&clockgen 1 2>; | 105 | clocks = <&clockgen 1 2>; |
102 | next-level-cache = <&cluster2_l2>; | 106 | next-level-cache = <&cluster2_l2>; |
107 | #cooling-cells = <2>; | ||
103 | }; | 108 | }; |
104 | 109 | ||
105 | cpu@201 { | 110 | cpu5: cpu@201 { |
106 | device_type = "cpu"; | 111 | device_type = "cpu"; |
107 | compatible = "arm,cortex-a57"; | 112 | compatible = "arm,cortex-a57"; |
108 | reg = <0x201>; | 113 | reg = <0x201>; |
@@ -110,15 +115,16 @@ | |||
110 | next-level-cache = <&cluster2_l2>; | 115 | next-level-cache = <&cluster2_l2>; |
111 | }; | 116 | }; |
112 | 117 | ||
113 | cpu@300 { | 118 | cpu6: cpu@300 { |
114 | device_type = "cpu"; | 119 | device_type = "cpu"; |
115 | compatible = "arm,cortex-a57"; | 120 | compatible = "arm,cortex-a57"; |
116 | reg = <0x300>; | 121 | reg = <0x300>; |
117 | clocks = <&clockgen 1 3>; | 122 | clocks = <&clockgen 1 3>; |
118 | next-level-cache = <&cluster3_l2>; | 123 | next-level-cache = <&cluster3_l2>; |
124 | #cooling-cells = <2>; | ||
119 | }; | 125 | }; |
120 | 126 | ||
121 | cpu@301 { | 127 | cpu7: cpu@301 { |
122 | device_type = "cpu"; | 128 | device_type = "cpu"; |
123 | compatible = "arm,cortex-a57"; | 129 | compatible = "arm,cortex-a57"; |
124 | reg = <0x301>; | 130 | reg = <0x301>; |
@@ -222,6 +228,100 @@ | |||
222 | little-endian; | 228 | little-endian; |
223 | }; | 229 | }; |
224 | 230 | ||
231 | tmu: tmu@1f80000 { | ||
232 | compatible = "fsl,qoriq-tmu"; | ||
233 | reg = <0x0 0x1f80000 0x0 0x10000>; | ||
234 | interrupts = <0 23 0x4>; | ||
235 | fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; | ||
236 | fsl,tmu-calibration = <0x00000000 0x00000026 | ||
237 | 0x00000001 0x0000002d | ||
238 | 0x00000002 0x00000032 | ||
239 | 0x00000003 0x00000039 | ||
240 | 0x00000004 0x0000003f | ||
241 | 0x00000005 0x00000046 | ||
242 | 0x00000006 0x0000004d | ||
243 | 0x00000007 0x00000054 | ||
244 | 0x00000008 0x0000005a | ||
245 | 0x00000009 0x00000061 | ||
246 | 0x0000000a 0x0000006a | ||
247 | 0x0000000b 0x00000071 | ||
248 | |||
249 | 0x00010000 0x00000025 | ||
250 | 0x00010001 0x0000002c | ||
251 | 0x00010002 0x00000035 | ||
252 | 0x00010003 0x0000003d | ||
253 | 0x00010004 0x00000045 | ||
254 | 0x00010005 0x0000004e | ||
255 | 0x00010006 0x00000057 | ||
256 | 0x00010007 0x00000061 | ||
257 | 0x00010008 0x0000006b | ||
258 | 0x00010009 0x00000076 | ||
259 | |||
260 | 0x00020000 0x00000029 | ||
261 | 0x00020001 0x00000033 | ||
262 | 0x00020002 0x0000003d | ||
263 | 0x00020003 0x00000049 | ||
264 | 0x00020004 0x00000056 | ||
265 | 0x00020005 0x00000061 | ||
266 | 0x00020006 0x0000006d | ||
267 | |||
268 | 0x00030000 0x00000021 | ||
269 | 0x00030001 0x0000002a | ||
270 | 0x00030002 0x0000003c | ||
271 | 0x00030003 0x0000004e>; | ||
272 | little-endian; | ||
273 | #thermal-sensor-cells = <1>; | ||
274 | }; | ||
275 | |||
276 | thermal-zones { | ||
277 | cpu_thermal: cpu-thermal { | ||
278 | polling-delay-passive = <1000>; | ||
279 | polling-delay = <5000>; | ||
280 | |||
281 | thermal-sensors = <&tmu 4>; | ||
282 | |||
283 | trips { | ||
284 | cpu_alert: cpu-alert { | ||
285 | temperature = <75000>; | ||
286 | hysteresis = <2000>; | ||
287 | type = "passive"; | ||
288 | }; | ||
289 | cpu_crit: cpu-crit { | ||
290 | temperature = <85000>; | ||
291 | hysteresis = <2000>; | ||
292 | type = "critical"; | ||
293 | }; | ||
294 | }; | ||
295 | |||
296 | cooling-maps { | ||
297 | map0 { | ||
298 | trip = <&cpu_alert>; | ||
299 | cooling-device = | ||
300 | <&cpu0 THERMAL_NO_LIMIT | ||
301 | THERMAL_NO_LIMIT>; | ||
302 | }; | ||
303 | map1 { | ||
304 | trip = <&cpu_alert>; | ||
305 | cooling-device = | ||
306 | <&cpu2 THERMAL_NO_LIMIT | ||
307 | THERMAL_NO_LIMIT>; | ||
308 | }; | ||
309 | map2 { | ||
310 | trip = <&cpu_alert>; | ||
311 | cooling-device = | ||
312 | <&cpu4 THERMAL_NO_LIMIT | ||
313 | THERMAL_NO_LIMIT>; | ||
314 | }; | ||
315 | map3 { | ||
316 | trip = <&cpu_alert>; | ||
317 | cooling-device = | ||
318 | <&cpu6 THERMAL_NO_LIMIT | ||
319 | THERMAL_NO_LIMIT>; | ||
320 | }; | ||
321 | }; | ||
322 | }; | ||
323 | }; | ||
324 | |||
225 | serial0: serial@21c0500 { | 325 | serial0: serial@21c0500 { |
226 | compatible = "fsl,ns16550", "ns16550a"; | 326 | compatible = "fsl,ns16550", "ns16550a"; |
227 | reg = <0x0 0x21c0500 0x0 0x100>; | 327 | reg = <0x0 0x21c0500 0x0 0x100>; |
diff --git a/arch/arm64/boot/dts/hisilicon/Makefile b/arch/arm64/boot/dts/hisilicon/Makefile index d5f43a06b1c1..c8b8f803cf90 100644 --- a/arch/arm64/boot/dts/hisilicon/Makefile +++ b/arch/arm64/boot/dts/hisilicon/Makefile | |||
@@ -1,6 +1,7 @@ | |||
1 | dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb | 1 | dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb |
2 | dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb | 2 | dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb |
3 | dtb-$(CONFIG_ARCH_HISI) += hip06-d03.dtb | 3 | dtb-$(CONFIG_ARCH_HISI) += hip06-d03.dtb |
4 | dtb-$(CONFIG_ARCH_HISI) += hip07-d05.dtb | ||
4 | 5 | ||
5 | always := $(dtb-y) | 6 | always := $(dtb-y) |
6 | subdir-y := $(dts-dirs) | 7 | subdir-y := $(dts-dirs) |
diff --git a/arch/arm64/boot/dts/hisilicon/hip06-d03.dts b/arch/arm64/boot/dts/hisilicon/hip06-d03.dts index f54b28359607..7c4114a67753 100644 --- a/arch/arm64/boot/dts/hisilicon/hip06-d03.dts +++ b/arch/arm64/boot/dts/hisilicon/hip06-d03.dts | |||
@@ -41,18 +41,10 @@ | |||
41 | status = "ok"; | 41 | status = "ok"; |
42 | }; | 42 | }; |
43 | 43 | ||
44 | &sas0 { | ||
45 | status = "ok"; | ||
46 | }; | ||
47 | |||
48 | &sas1 { | 44 | &sas1 { |
49 | status = "ok"; | 45 | status = "ok"; |
50 | }; | 46 | }; |
51 | 47 | ||
52 | &sas2 { | ||
53 | status = "ok"; | ||
54 | }; | ||
55 | |||
56 | &usb_ohci { | 48 | &usb_ohci { |
57 | status = "ok"; | 49 | status = "ok"; |
58 | }; | 50 | }; |
diff --git a/arch/arm64/boot/dts/hisilicon/hip06.dtsi b/arch/arm64/boot/dts/hisilicon/hip06.dtsi index b548763366dd..a049b64f2101 100644 --- a/arch/arm64/boot/dts/hisilicon/hip06.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hip06.dtsi | |||
@@ -318,11 +318,17 @@ | |||
318 | #size-cells = <2>; | 318 | #size-cells = <2>; |
319 | ranges; | 319 | ranges; |
320 | 320 | ||
321 | refclk: refclk { | ||
322 | compatible = "fixed-clock"; | ||
323 | clock-frequency = <50000000>; | ||
324 | #clock-cells = <0>; | ||
325 | }; | ||
326 | |||
321 | usb_ohci: ohci@a7030000 { | 327 | usb_ohci: ohci@a7030000 { |
322 | compatible = "generic-ohci"; | 328 | compatible = "generic-ohci"; |
323 | reg = <0x0 0xa7030000 0x0 0x10000>; | 329 | reg = <0x0 0xa7030000 0x0 0x10000>; |
324 | interrupt-parent = <&mbigen_usb>; | 330 | interrupt-parent = <&mbigen_usb>; |
325 | interrupts = <64 4>; | 331 | interrupts = <640 4>; |
326 | dma-coherent; | 332 | dma-coherent; |
327 | status = "disabled"; | 333 | status = "disabled"; |
328 | }; | 334 | }; |
@@ -331,7 +337,7 @@ | |||
331 | compatible = "generic-ehci"; | 337 | compatible = "generic-ehci"; |
332 | reg = <0x0 0xa7020000 0x0 0x10000>; | 338 | reg = <0x0 0xa7020000 0x0 0x10000>; |
333 | interrupt-parent = <&mbigen_usb>; | 339 | interrupt-parent = <&mbigen_usb>; |
334 | interrupts = <65 4>; | 340 | interrupts = <641 4>; |
335 | dma-coherent; | 341 | dma-coherent; |
336 | status = "disabled"; | 342 | status = "disabled"; |
337 | }; | 343 | }; |
@@ -508,7 +514,7 @@ | |||
508 | }; | 514 | }; |
509 | }; | 515 | }; |
510 | 516 | ||
511 | eth0: ethernet@4{ | 517 | eth0: ethernet-4{ |
512 | compatible = "hisilicon,hns-nic-v2"; | 518 | compatible = "hisilicon,hns-nic-v2"; |
513 | ae-handle = <&dsaf0>; | 519 | ae-handle = <&dsaf0>; |
514 | port-idx-in-ae = <4>; | 520 | port-idx-in-ae = <4>; |
@@ -517,7 +523,7 @@ | |||
517 | dma-coherent; | 523 | dma-coherent; |
518 | }; | 524 | }; |
519 | 525 | ||
520 | eth1: ethernet@5{ | 526 | eth1: ethernet-5{ |
521 | compatible = "hisilicon,hns-nic-v2"; | 527 | compatible = "hisilicon,hns-nic-v2"; |
522 | ae-handle = <&dsaf0>; | 528 | ae-handle = <&dsaf0>; |
523 | port-idx-in-ae = <5>; | 529 | port-idx-in-ae = <5>; |
@@ -526,7 +532,7 @@ | |||
526 | dma-coherent; | 532 | dma-coherent; |
527 | }; | 533 | }; |
528 | 534 | ||
529 | eth2: ethernet@0{ | 535 | eth2: ethernet-0{ |
530 | compatible = "hisilicon,hns-nic-v2"; | 536 | compatible = "hisilicon,hns-nic-v2"; |
531 | ae-handle = <&dsaf0>; | 537 | ae-handle = <&dsaf0>; |
532 | port-idx-in-ae = <0>; | 538 | port-idx-in-ae = <0>; |
@@ -535,7 +541,7 @@ | |||
535 | dma-coherent; | 541 | dma-coherent; |
536 | }; | 542 | }; |
537 | 543 | ||
538 | eth3: ethernet@1{ | 544 | eth3: ethernet-1{ |
539 | compatible = "hisilicon,hns-nic-v2"; | 545 | compatible = "hisilicon,hns-nic-v2"; |
540 | ae-handle = <&dsaf0>; | 546 | ae-handle = <&dsaf0>; |
541 | port-idx-in-ae = <1>; | 547 | port-idx-in-ae = <1>; |
@@ -552,6 +558,7 @@ | |||
552 | ctrl-reset-reg = <0xa60>; | 558 | ctrl-reset-reg = <0xa60>; |
553 | ctrl-reset-sts-reg = <0x5a30>; | 559 | ctrl-reset-sts-reg = <0x5a30>; |
554 | ctrl-clock-ena-reg = <0x338>; | 560 | ctrl-clock-ena-reg = <0x338>; |
561 | clocks = <&refclk 0>; | ||
555 | queue-count = <16>; | 562 | queue-count = <16>; |
556 | phy-count = <8>; | 563 | phy-count = <8>; |
557 | dma-coherent; | 564 | dma-coherent; |
@@ -590,10 +597,11 @@ | |||
590 | reg = <0 0xa2000000 0 0x10000>; | 597 | reg = <0 0xa2000000 0 0x10000>; |
591 | sas-addr = [50 01 88 20 16 00 00 00]; | 598 | sas-addr = [50 01 88 20 16 00 00 00]; |
592 | hisilicon,sas-syscon = <&pcie_subctl>; | 599 | hisilicon,sas-syscon = <&pcie_subctl>; |
593 | am-max-trans; | 600 | hip06-sas-v2-quirk-amt; |
594 | ctrl-reset-reg = <0xa18>; | 601 | ctrl-reset-reg = <0xa18>; |
595 | ctrl-reset-sts-reg = <0x5a0c>; | 602 | ctrl-reset-sts-reg = <0x5a0c>; |
596 | ctrl-clock-ena-reg = <0x318>; | 603 | ctrl-clock-ena-reg = <0x318>; |
604 | clocks = <&refclk 0>; | ||
597 | queue-count = <16>; | 605 | queue-count = <16>; |
598 | phy-count = <8>; | 606 | phy-count = <8>; |
599 | dma-coherent; | 607 | dma-coherent; |
@@ -635,6 +643,7 @@ | |||
635 | ctrl-reset-reg = <0xae0>; | 643 | ctrl-reset-reg = <0xae0>; |
636 | ctrl-reset-sts-reg = <0x5a70>; | 644 | ctrl-reset-sts-reg = <0x5a70>; |
637 | ctrl-clock-ena-reg = <0x3a8>; | 645 | ctrl-clock-ena-reg = <0x3a8>; |
646 | clocks = <&refclk 0>; | ||
638 | queue-count = <16>; | 647 | queue-count = <16>; |
639 | phy-count = <9>; | 648 | phy-count = <9>; |
640 | dma-coherent; | 649 | dma-coherent; |
diff --git a/arch/arm64/boot/dts/hisilicon/hip07-d05.dts b/arch/arm64/boot/dts/hisilicon/hip07-d05.dts new file mode 100644 index 000000000000..e05844230583 --- /dev/null +++ b/arch/arm64/boot/dts/hisilicon/hip07-d05.dts | |||
@@ -0,0 +1,66 @@ | |||
1 | /** | ||
2 | * dts file for Hisilicon D05 Development Board | ||
3 | * | ||
4 | * Copyright (C) 2016 Hisilicon Ltd. | ||
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 | * publishhed by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | /dts-v1/; | ||
13 | |||
14 | #include "hip07.dtsi" | ||
15 | |||
16 | / { | ||
17 | model = "Hisilicon Hip07 D05 Development Board"; | ||
18 | compatible = "hisilicon,hip07-d05"; | ||
19 | |||
20 | /* the mem node will be updated by UEFI. */ | ||
21 | memory@0 { | ||
22 | device_type = "memory"; | ||
23 | reg = <0x0 0x00000000 0x0 0x40000000>; | ||
24 | numa-node-id = <0>; | ||
25 | }; | ||
26 | |||
27 | distance-map { | ||
28 | compatible = "numa-distance-map-v1"; | ||
29 | distance-matrix = <0 0 10>, | ||
30 | <0 1 15>, | ||
31 | <0 2 20>, | ||
32 | <0 3 25>, | ||
33 | <1 0 15>, | ||
34 | <1 1 10>, | ||
35 | <1 2 25>, | ||
36 | <1 3 30>, | ||
37 | <2 0 20>, | ||
38 | <2 1 25>, | ||
39 | <2 2 10>, | ||
40 | <2 3 15>, | ||
41 | <3 0 25>, | ||
42 | <3 1 30>, | ||
43 | <3 2 15>, | ||
44 | <3 3 10>; | ||
45 | }; | ||
46 | |||
47 | aliases { | ||
48 | serial0 = &uart0; | ||
49 | }; | ||
50 | |||
51 | chosen { | ||
52 | stdout-path = "serial0:115200n8"; | ||
53 | }; | ||
54 | }; | ||
55 | |||
56 | &uart0 { | ||
57 | status = "ok"; | ||
58 | }; | ||
59 | |||
60 | &usb_ohci { | ||
61 | status = "ok"; | ||
62 | }; | ||
63 | |||
64 | &usb_ehci { | ||
65 | status = "ok"; | ||
66 | }; | ||
diff --git a/arch/arm64/boot/dts/hisilicon/hip07.dtsi b/arch/arm64/boot/dts/hisilicon/hip07.dtsi new file mode 100644 index 000000000000..5144eb1c179d --- /dev/null +++ b/arch/arm64/boot/dts/hisilicon/hip07.dtsi | |||
@@ -0,0 +1,1059 @@ | |||
1 | /** | ||
2 | * dts file for Hisilicon D05 Development Board | ||
3 | * | ||
4 | * Copyright (C) 2016 Hisilicon Ltd. | ||
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 | * publishhed by the Free Software Foundation. | ||
9 | * | ||
10 | */ | ||
11 | |||
12 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
13 | |||
14 | / { | ||
15 | compatible = "hisilicon,hip07-d05"; | ||
16 | interrupt-parent = <&gic>; | ||
17 | #address-cells = <2>; | ||
18 | #size-cells = <2>; | ||
19 | |||
20 | psci { | ||
21 | compatible = "arm,psci-0.2"; | ||
22 | method = "smc"; | ||
23 | }; | ||
24 | |||
25 | cpus { | ||
26 | #address-cells = <1>; | ||
27 | #size-cells = <0>; | ||
28 | |||
29 | cpu-map { | ||
30 | cluster0 { | ||
31 | core0 { | ||
32 | cpu = <&cpu0>; | ||
33 | }; | ||
34 | core1 { | ||
35 | cpu = <&cpu1>; | ||
36 | }; | ||
37 | core2 { | ||
38 | cpu = <&cpu2>; | ||
39 | }; | ||
40 | core3 { | ||
41 | cpu = <&cpu3>; | ||
42 | }; | ||
43 | }; | ||
44 | |||
45 | cluster1 { | ||
46 | core0 { | ||
47 | cpu = <&cpu4>; | ||
48 | }; | ||
49 | core1 { | ||
50 | cpu = <&cpu5>; | ||
51 | }; | ||
52 | core2 { | ||
53 | cpu = <&cpu6>; | ||
54 | }; | ||
55 | core3 { | ||
56 | cpu = <&cpu7>; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | cluster2 { | ||
61 | core0 { | ||
62 | cpu = <&cpu8>; | ||
63 | }; | ||
64 | core1 { | ||
65 | cpu = <&cpu9>; | ||
66 | }; | ||
67 | core2 { | ||
68 | cpu = <&cpu10>; | ||
69 | }; | ||
70 | core3 { | ||
71 | cpu = <&cpu11>; | ||
72 | }; | ||
73 | }; | ||
74 | |||
75 | cluster3 { | ||
76 | core0 { | ||
77 | cpu = <&cpu12>; | ||
78 | }; | ||
79 | core1 { | ||
80 | cpu = <&cpu13>; | ||
81 | }; | ||
82 | core2 { | ||
83 | cpu = <&cpu14>; | ||
84 | }; | ||
85 | core3 { | ||
86 | cpu = <&cpu15>; | ||
87 | }; | ||
88 | }; | ||
89 | |||
90 | cluster4 { | ||
91 | core0 { | ||
92 | cpu = <&cpu16>; | ||
93 | }; | ||
94 | core1 { | ||
95 | cpu = <&cpu17>; | ||
96 | }; | ||
97 | core2 { | ||
98 | cpu = <&cpu18>; | ||
99 | }; | ||
100 | core3 { | ||
101 | cpu = <&cpu19>; | ||
102 | }; | ||
103 | }; | ||
104 | |||
105 | cluster5 { | ||
106 | core0 { | ||
107 | cpu = <&cpu20>; | ||
108 | }; | ||
109 | core1 { | ||
110 | cpu = <&cpu21>; | ||
111 | }; | ||
112 | core2 { | ||
113 | cpu = <&cpu22>; | ||
114 | }; | ||
115 | core3 { | ||
116 | cpu = <&cpu23>; | ||
117 | }; | ||
118 | }; | ||
119 | |||
120 | cluster6 { | ||
121 | core0 { | ||
122 | cpu = <&cpu24>; | ||
123 | }; | ||
124 | core1 { | ||
125 | cpu = <&cpu25>; | ||
126 | }; | ||
127 | core2 { | ||
128 | cpu = <&cpu26>; | ||
129 | }; | ||
130 | core3 { | ||
131 | cpu = <&cpu27>; | ||
132 | }; | ||
133 | }; | ||
134 | |||
135 | cluster7 { | ||
136 | core0 { | ||
137 | cpu = <&cpu28>; | ||
138 | }; | ||
139 | core1 { | ||
140 | cpu = <&cpu29>; | ||
141 | }; | ||
142 | core2 { | ||
143 | cpu = <&cpu30>; | ||
144 | }; | ||
145 | core3 { | ||
146 | cpu = <&cpu31>; | ||
147 | }; | ||
148 | }; | ||
149 | |||
150 | cluster8 { | ||
151 | core0 { | ||
152 | cpu = <&cpu32>; | ||
153 | }; | ||
154 | core1 { | ||
155 | cpu = <&cpu33>; | ||
156 | }; | ||
157 | core2 { | ||
158 | cpu = <&cpu34>; | ||
159 | }; | ||
160 | core3 { | ||
161 | cpu = <&cpu35>; | ||
162 | }; | ||
163 | }; | ||
164 | |||
165 | cluster9 { | ||
166 | core0 { | ||
167 | cpu = <&cpu36>; | ||
168 | }; | ||
169 | core1 { | ||
170 | cpu = <&cpu37>; | ||
171 | }; | ||
172 | core2 { | ||
173 | cpu = <&cpu38>; | ||
174 | }; | ||
175 | core3 { | ||
176 | cpu = <&cpu39>; | ||
177 | }; | ||
178 | }; | ||
179 | |||
180 | cluster10 { | ||
181 | core0 { | ||
182 | cpu = <&cpu40>; | ||
183 | }; | ||
184 | core1 { | ||
185 | cpu = <&cpu41>; | ||
186 | }; | ||
187 | core2 { | ||
188 | cpu = <&cpu42>; | ||
189 | }; | ||
190 | core3 { | ||
191 | cpu = <&cpu43>; | ||
192 | }; | ||
193 | }; | ||
194 | |||
195 | cluster11 { | ||
196 | core0 { | ||
197 | cpu = <&cpu44>; | ||
198 | }; | ||
199 | core1 { | ||
200 | cpu = <&cpu45>; | ||
201 | }; | ||
202 | core2 { | ||
203 | cpu = <&cpu46>; | ||
204 | }; | ||
205 | core3 { | ||
206 | cpu = <&cpu47>; | ||
207 | }; | ||
208 | }; | ||
209 | |||
210 | cluster12 { | ||
211 | core0 { | ||
212 | cpu = <&cpu48>; | ||
213 | }; | ||
214 | core1 { | ||
215 | cpu = <&cpu49>; | ||
216 | }; | ||
217 | core2 { | ||
218 | cpu = <&cpu50>; | ||
219 | }; | ||
220 | core3 { | ||
221 | cpu = <&cpu51>; | ||
222 | }; | ||
223 | }; | ||
224 | |||
225 | cluster13 { | ||
226 | core0 { | ||
227 | cpu = <&cpu52>; | ||
228 | }; | ||
229 | core1 { | ||
230 | cpu = <&cpu53>; | ||
231 | }; | ||
232 | core2 { | ||
233 | cpu = <&cpu54>; | ||
234 | }; | ||
235 | core3 { | ||
236 | cpu = <&cpu55>; | ||
237 | }; | ||
238 | }; | ||
239 | |||
240 | cluster14 { | ||
241 | core0 { | ||
242 | cpu = <&cpu56>; | ||
243 | }; | ||
244 | core1 { | ||
245 | cpu = <&cpu57>; | ||
246 | }; | ||
247 | core2 { | ||
248 | cpu = <&cpu58>; | ||
249 | }; | ||
250 | core3 { | ||
251 | cpu = <&cpu59>; | ||
252 | }; | ||
253 | }; | ||
254 | |||
255 | cluster15 { | ||
256 | core0 { | ||
257 | cpu = <&cpu60>; | ||
258 | }; | ||
259 | core1 { | ||
260 | cpu = <&cpu61>; | ||
261 | }; | ||
262 | core2 { | ||
263 | cpu = <&cpu62>; | ||
264 | }; | ||
265 | core3 { | ||
266 | cpu = <&cpu63>; | ||
267 | }; | ||
268 | }; | ||
269 | }; | ||
270 | |||
271 | cpu0: cpu@10000 { | ||
272 | device_type = "cpu"; | ||
273 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
274 | reg = <0x10000>; | ||
275 | enable-method = "psci"; | ||
276 | next-level-cache = <&cluster0_l2>; | ||
277 | numa-node-id = <0>; | ||
278 | }; | ||
279 | |||
280 | cpu1: cpu@10001 { | ||
281 | device_type = "cpu"; | ||
282 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
283 | reg = <0x10001>; | ||
284 | enable-method = "psci"; | ||
285 | next-level-cache = <&cluster0_l2>; | ||
286 | numa-node-id = <0>; | ||
287 | }; | ||
288 | |||
289 | cpu2: cpu@10002 { | ||
290 | device_type = "cpu"; | ||
291 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
292 | reg = <0x10002>; | ||
293 | enable-method = "psci"; | ||
294 | next-level-cache = <&cluster0_l2>; | ||
295 | numa-node-id = <0>; | ||
296 | }; | ||
297 | |||
298 | cpu3: cpu@10003 { | ||
299 | device_type = "cpu"; | ||
300 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
301 | reg = <0x10003>; | ||
302 | enable-method = "psci"; | ||
303 | next-level-cache = <&cluster0_l2>; | ||
304 | numa-node-id = <0>; | ||
305 | }; | ||
306 | |||
307 | cpu4: cpu@10100 { | ||
308 | device_type = "cpu"; | ||
309 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
310 | reg = <0x10100>; | ||
311 | enable-method = "psci"; | ||
312 | next-level-cache = <&cluster1_l2>; | ||
313 | numa-node-id = <0>; | ||
314 | }; | ||
315 | |||
316 | cpu5: cpu@10101 { | ||
317 | device_type = "cpu"; | ||
318 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
319 | reg = <0x10101>; | ||
320 | enable-method = "psci"; | ||
321 | next-level-cache = <&cluster1_l2>; | ||
322 | numa-node-id = <0>; | ||
323 | }; | ||
324 | |||
325 | cpu6: cpu@10102 { | ||
326 | device_type = "cpu"; | ||
327 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
328 | reg = <0x10102>; | ||
329 | enable-method = "psci"; | ||
330 | next-level-cache = <&cluster1_l2>; | ||
331 | numa-node-id = <0>; | ||
332 | }; | ||
333 | |||
334 | cpu7: cpu@10103 { | ||
335 | device_type = "cpu"; | ||
336 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
337 | reg = <0x10103>; | ||
338 | enable-method = "psci"; | ||
339 | next-level-cache = <&cluster1_l2>; | ||
340 | numa-node-id = <0>; | ||
341 | }; | ||
342 | |||
343 | cpu8: cpu@10200 { | ||
344 | device_type = "cpu"; | ||
345 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
346 | reg = <0x10200>; | ||
347 | enable-method = "psci"; | ||
348 | next-level-cache = <&cluster2_l2>; | ||
349 | numa-node-id = <0>; | ||
350 | }; | ||
351 | |||
352 | cpu9: cpu@10201 { | ||
353 | device_type = "cpu"; | ||
354 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
355 | reg = <0x10201>; | ||
356 | enable-method = "psci"; | ||
357 | next-level-cache = <&cluster2_l2>; | ||
358 | numa-node-id = <0>; | ||
359 | }; | ||
360 | |||
361 | cpu10: cpu@10202 { | ||
362 | device_type = "cpu"; | ||
363 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
364 | reg = <0x10202>; | ||
365 | enable-method = "psci"; | ||
366 | next-level-cache = <&cluster2_l2>; | ||
367 | numa-node-id = <0>; | ||
368 | }; | ||
369 | |||
370 | cpu11: cpu@10203 { | ||
371 | device_type = "cpu"; | ||
372 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
373 | reg = <0x10203>; | ||
374 | enable-method = "psci"; | ||
375 | next-level-cache = <&cluster2_l2>; | ||
376 | numa-node-id = <0>; | ||
377 | }; | ||
378 | |||
379 | cpu12: cpu@10300 { | ||
380 | device_type = "cpu"; | ||
381 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
382 | reg = <0x10300>; | ||
383 | enable-method = "psci"; | ||
384 | next-level-cache = <&cluster3_l2>; | ||
385 | numa-node-id = <0>; | ||
386 | }; | ||
387 | |||
388 | cpu13: cpu@10301 { | ||
389 | device_type = "cpu"; | ||
390 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
391 | reg = <0x10301>; | ||
392 | enable-method = "psci"; | ||
393 | next-level-cache = <&cluster3_l2>; | ||
394 | numa-node-id = <0>; | ||
395 | }; | ||
396 | |||
397 | cpu14: cpu@10302 { | ||
398 | device_type = "cpu"; | ||
399 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
400 | reg = <0x10302>; | ||
401 | enable-method = "psci"; | ||
402 | next-level-cache = <&cluster3_l2>; | ||
403 | numa-node-id = <0>; | ||
404 | }; | ||
405 | |||
406 | cpu15: cpu@10303 { | ||
407 | device_type = "cpu"; | ||
408 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
409 | reg = <0x10303>; | ||
410 | enable-method = "psci"; | ||
411 | next-level-cache = <&cluster3_l2>; | ||
412 | numa-node-id = <0>; | ||
413 | }; | ||
414 | |||
415 | cpu16: cpu@30000 { | ||
416 | device_type = "cpu"; | ||
417 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
418 | reg = <0x30000>; | ||
419 | enable-method = "psci"; | ||
420 | next-level-cache = <&cluster4_l2>; | ||
421 | numa-node-id = <1>; | ||
422 | }; | ||
423 | |||
424 | cpu17: cpu@30001 { | ||
425 | device_type = "cpu"; | ||
426 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
427 | reg = <0x30001>; | ||
428 | enable-method = "psci"; | ||
429 | next-level-cache = <&cluster4_l2>; | ||
430 | numa-node-id = <1>; | ||
431 | }; | ||
432 | |||
433 | cpu18: cpu@30002 { | ||
434 | device_type = "cpu"; | ||
435 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
436 | reg = <0x30002>; | ||
437 | enable-method = "psci"; | ||
438 | next-level-cache = <&cluster4_l2>; | ||
439 | numa-node-id = <1>; | ||
440 | }; | ||
441 | |||
442 | cpu19: cpu@30003 { | ||
443 | device_type = "cpu"; | ||
444 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
445 | reg = <0x30003>; | ||
446 | enable-method = "psci"; | ||
447 | next-level-cache = <&cluster4_l2>; | ||
448 | numa-node-id = <1>; | ||
449 | }; | ||
450 | |||
451 | cpu20: cpu@30100 { | ||
452 | device_type = "cpu"; | ||
453 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
454 | reg = <0x30100>; | ||
455 | enable-method = "psci"; | ||
456 | next-level-cache = <&cluster5_l2>; | ||
457 | numa-node-id = <1>; | ||
458 | }; | ||
459 | |||
460 | cpu21: cpu@30101 { | ||
461 | device_type = "cpu"; | ||
462 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
463 | reg = <0x30101>; | ||
464 | enable-method = "psci"; | ||
465 | next-level-cache = <&cluster5_l2>; | ||
466 | numa-node-id = <1>; | ||
467 | }; | ||
468 | |||
469 | cpu22: cpu@30102 { | ||
470 | device_type = "cpu"; | ||
471 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
472 | reg = <0x30102>; | ||
473 | enable-method = "psci"; | ||
474 | next-level-cache = <&cluster5_l2>; | ||
475 | numa-node-id = <1>; | ||
476 | }; | ||
477 | |||
478 | cpu23: cpu@30103 { | ||
479 | device_type = "cpu"; | ||
480 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
481 | reg = <0x30103>; | ||
482 | enable-method = "psci"; | ||
483 | next-level-cache = <&cluster5_l2>; | ||
484 | numa-node-id = <1>; | ||
485 | }; | ||
486 | |||
487 | cpu24: cpu@30200 { | ||
488 | device_type = "cpu"; | ||
489 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
490 | reg = <0x30200>; | ||
491 | enable-method = "psci"; | ||
492 | next-level-cache = <&cluster6_l2>; | ||
493 | numa-node-id = <1>; | ||
494 | }; | ||
495 | |||
496 | cpu25: cpu@30201 { | ||
497 | device_type = "cpu"; | ||
498 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
499 | reg = <0x30201>; | ||
500 | enable-method = "psci"; | ||
501 | next-level-cache = <&cluster6_l2>; | ||
502 | numa-node-id = <1>; | ||
503 | }; | ||
504 | |||
505 | cpu26: cpu@30202 { | ||
506 | device_type = "cpu"; | ||
507 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
508 | reg = <0x30202>; | ||
509 | enable-method = "psci"; | ||
510 | next-level-cache = <&cluster6_l2>; | ||
511 | numa-node-id = <1>; | ||
512 | }; | ||
513 | |||
514 | cpu27: cpu@30203 { | ||
515 | device_type = "cpu"; | ||
516 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
517 | reg = <0x30203>; | ||
518 | enable-method = "psci"; | ||
519 | next-level-cache = <&cluster6_l2>; | ||
520 | numa-node-id = <1>; | ||
521 | }; | ||
522 | |||
523 | cpu28: cpu@30300 { | ||
524 | device_type = "cpu"; | ||
525 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
526 | reg = <0x30300>; | ||
527 | enable-method = "psci"; | ||
528 | next-level-cache = <&cluster7_l2>; | ||
529 | numa-node-id = <1>; | ||
530 | }; | ||
531 | |||
532 | cpu29: cpu@30301 { | ||
533 | device_type = "cpu"; | ||
534 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
535 | reg = <0x30301>; | ||
536 | enable-method = "psci"; | ||
537 | next-level-cache = <&cluster7_l2>; | ||
538 | numa-node-id = <1>; | ||
539 | }; | ||
540 | |||
541 | cpu30: cpu@30302 { | ||
542 | device_type = "cpu"; | ||
543 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
544 | reg = <0x30302>; | ||
545 | enable-method = "psci"; | ||
546 | next-level-cache = <&cluster7_l2>; | ||
547 | numa-node-id = <1>; | ||
548 | }; | ||
549 | |||
550 | cpu31: cpu@30303 { | ||
551 | device_type = "cpu"; | ||
552 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
553 | reg = <0x30303>; | ||
554 | enable-method = "psci"; | ||
555 | next-level-cache = <&cluster7_l2>; | ||
556 | numa-node-id = <1>; | ||
557 | }; | ||
558 | |||
559 | cpu32: cpu@50000 { | ||
560 | device_type = "cpu"; | ||
561 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
562 | reg = <0x50000>; | ||
563 | enable-method = "psci"; | ||
564 | next-level-cache = <&cluster8_l2>; | ||
565 | numa-node-id = <2>; | ||
566 | }; | ||
567 | |||
568 | cpu33: cpu@50001 { | ||
569 | device_type = "cpu"; | ||
570 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
571 | reg = <0x50001>; | ||
572 | enable-method = "psci"; | ||
573 | next-level-cache = <&cluster8_l2>; | ||
574 | numa-node-id = <2>; | ||
575 | }; | ||
576 | |||
577 | cpu34: cpu@50002 { | ||
578 | device_type = "cpu"; | ||
579 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
580 | reg = <0x50002>; | ||
581 | enable-method = "psci"; | ||
582 | next-level-cache = <&cluster8_l2>; | ||
583 | numa-node-id = <2>; | ||
584 | }; | ||
585 | |||
586 | cpu35: cpu@50003 { | ||
587 | device_type = "cpu"; | ||
588 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
589 | reg = <0x50003>; | ||
590 | enable-method = "psci"; | ||
591 | next-level-cache = <&cluster8_l2>; | ||
592 | numa-node-id = <2>; | ||
593 | }; | ||
594 | |||
595 | cpu36: cpu@50100 { | ||
596 | device_type = "cpu"; | ||
597 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
598 | reg = <0x50100>; | ||
599 | enable-method = "psci"; | ||
600 | next-level-cache = <&cluster9_l2>; | ||
601 | numa-node-id = <2>; | ||
602 | }; | ||
603 | |||
604 | cpu37: cpu@50101 { | ||
605 | device_type = "cpu"; | ||
606 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
607 | reg = <0x50101>; | ||
608 | enable-method = "psci"; | ||
609 | next-level-cache = <&cluster9_l2>; | ||
610 | numa-node-id = <2>; | ||
611 | }; | ||
612 | |||
613 | cpu38: cpu@50102 { | ||
614 | device_type = "cpu"; | ||
615 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
616 | reg = <0x50102>; | ||
617 | enable-method = "psci"; | ||
618 | next-level-cache = <&cluster9_l2>; | ||
619 | numa-node-id = <2>; | ||
620 | }; | ||
621 | |||
622 | cpu39: cpu@50103 { | ||
623 | device_type = "cpu"; | ||
624 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
625 | reg = <0x50103>; | ||
626 | enable-method = "psci"; | ||
627 | next-level-cache = <&cluster9_l2>; | ||
628 | numa-node-id = <2>; | ||
629 | }; | ||
630 | |||
631 | cpu40: cpu@50200 { | ||
632 | device_type = "cpu"; | ||
633 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
634 | reg = <0x50200>; | ||
635 | enable-method = "psci"; | ||
636 | next-level-cache = <&cluster10_l2>; | ||
637 | numa-node-id = <2>; | ||
638 | }; | ||
639 | |||
640 | cpu41: cpu@50201 { | ||
641 | device_type = "cpu"; | ||
642 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
643 | reg = <0x50201>; | ||
644 | enable-method = "psci"; | ||
645 | next-level-cache = <&cluster10_l2>; | ||
646 | numa-node-id = <2>; | ||
647 | }; | ||
648 | |||
649 | cpu42: cpu@50202 { | ||
650 | device_type = "cpu"; | ||
651 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
652 | reg = <0x50202>; | ||
653 | enable-method = "psci"; | ||
654 | next-level-cache = <&cluster10_l2>; | ||
655 | numa-node-id = <2>; | ||
656 | }; | ||
657 | |||
658 | cpu43: cpu@50203 { | ||
659 | device_type = "cpu"; | ||
660 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
661 | reg = <0x50203>; | ||
662 | enable-method = "psci"; | ||
663 | next-level-cache = <&cluster10_l2>; | ||
664 | numa-node-id = <2>; | ||
665 | }; | ||
666 | |||
667 | cpu44: cpu@50300 { | ||
668 | device_type = "cpu"; | ||
669 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
670 | reg = <0x50300>; | ||
671 | enable-method = "psci"; | ||
672 | next-level-cache = <&cluster11_l2>; | ||
673 | numa-node-id = <2>; | ||
674 | }; | ||
675 | |||
676 | cpu45: cpu@50301 { | ||
677 | device_type = "cpu"; | ||
678 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
679 | reg = <0x50301>; | ||
680 | enable-method = "psci"; | ||
681 | next-level-cache = <&cluster11_l2>; | ||
682 | numa-node-id = <2>; | ||
683 | }; | ||
684 | |||
685 | cpu46: cpu@50302 { | ||
686 | device_type = "cpu"; | ||
687 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
688 | reg = <0x50302>; | ||
689 | enable-method = "psci"; | ||
690 | next-level-cache = <&cluster11_l2>; | ||
691 | numa-node-id = <2>; | ||
692 | }; | ||
693 | |||
694 | cpu47: cpu@50303 { | ||
695 | device_type = "cpu"; | ||
696 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
697 | reg = <0x50303>; | ||
698 | enable-method = "psci"; | ||
699 | next-level-cache = <&cluster11_l2>; | ||
700 | numa-node-id = <2>; | ||
701 | }; | ||
702 | |||
703 | cpu48: cpu@70000 { | ||
704 | device_type = "cpu"; | ||
705 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
706 | reg = <0x70000>; | ||
707 | enable-method = "psci"; | ||
708 | next-level-cache = <&cluster12_l2>; | ||
709 | numa-node-id = <3>; | ||
710 | }; | ||
711 | |||
712 | cpu49: cpu@70001 { | ||
713 | device_type = "cpu"; | ||
714 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
715 | reg = <0x70001>; | ||
716 | enable-method = "psci"; | ||
717 | next-level-cache = <&cluster12_l2>; | ||
718 | numa-node-id = <3>; | ||
719 | }; | ||
720 | |||
721 | cpu50: cpu@70002 { | ||
722 | device_type = "cpu"; | ||
723 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
724 | reg = <0x70002>; | ||
725 | enable-method = "psci"; | ||
726 | next-level-cache = <&cluster12_l2>; | ||
727 | numa-node-id = <3>; | ||
728 | }; | ||
729 | |||
730 | cpu51: cpu@70003 { | ||
731 | device_type = "cpu"; | ||
732 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
733 | reg = <0x70003>; | ||
734 | enable-method = "psci"; | ||
735 | next-level-cache = <&cluster12_l2>; | ||
736 | numa-node-id = <3>; | ||
737 | }; | ||
738 | |||
739 | cpu52: cpu@70100 { | ||
740 | device_type = "cpu"; | ||
741 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
742 | reg = <0x70100>; | ||
743 | enable-method = "psci"; | ||
744 | next-level-cache = <&cluster13_l2>; | ||
745 | numa-node-id = <3>; | ||
746 | }; | ||
747 | |||
748 | cpu53: cpu@70101 { | ||
749 | device_type = "cpu"; | ||
750 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
751 | reg = <0x70101>; | ||
752 | enable-method = "psci"; | ||
753 | next-level-cache = <&cluster13_l2>; | ||
754 | numa-node-id = <3>; | ||
755 | }; | ||
756 | |||
757 | cpu54: cpu@70102 { | ||
758 | device_type = "cpu"; | ||
759 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
760 | reg = <0x70102>; | ||
761 | enable-method = "psci"; | ||
762 | next-level-cache = <&cluster13_l2>; | ||
763 | numa-node-id = <3>; | ||
764 | }; | ||
765 | |||
766 | cpu55: cpu@70103 { | ||
767 | device_type = "cpu"; | ||
768 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
769 | reg = <0x70103>; | ||
770 | enable-method = "psci"; | ||
771 | next-level-cache = <&cluster13_l2>; | ||
772 | numa-node-id = <3>; | ||
773 | }; | ||
774 | |||
775 | cpu56: cpu@70200 { | ||
776 | device_type = "cpu"; | ||
777 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
778 | reg = <0x70200>; | ||
779 | enable-method = "psci"; | ||
780 | next-level-cache = <&cluster14_l2>; | ||
781 | numa-node-id = <3>; | ||
782 | }; | ||
783 | |||
784 | cpu57: cpu@70201 { | ||
785 | device_type = "cpu"; | ||
786 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
787 | reg = <0x70201>; | ||
788 | enable-method = "psci"; | ||
789 | next-level-cache = <&cluster14_l2>; | ||
790 | numa-node-id = <3>; | ||
791 | }; | ||
792 | |||
793 | cpu58: cpu@70202 { | ||
794 | device_type = "cpu"; | ||
795 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
796 | reg = <0x70202>; | ||
797 | enable-method = "psci"; | ||
798 | next-level-cache = <&cluster14_l2>; | ||
799 | numa-node-id = <3>; | ||
800 | }; | ||
801 | |||
802 | cpu59: cpu@70203 { | ||
803 | device_type = "cpu"; | ||
804 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
805 | reg = <0x70203>; | ||
806 | enable-method = "psci"; | ||
807 | next-level-cache = <&cluster14_l2>; | ||
808 | numa-node-id = <3>; | ||
809 | }; | ||
810 | |||
811 | cpu60: cpu@70300 { | ||
812 | device_type = "cpu"; | ||
813 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
814 | reg = <0x70300>; | ||
815 | enable-method = "psci"; | ||
816 | next-level-cache = <&cluster15_l2>; | ||
817 | numa-node-id = <3>; | ||
818 | }; | ||
819 | |||
820 | cpu61: cpu@70301 { | ||
821 | device_type = "cpu"; | ||
822 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
823 | reg = <0x70301>; | ||
824 | enable-method = "psci"; | ||
825 | next-level-cache = <&cluster15_l2>; | ||
826 | numa-node-id = <3>; | ||
827 | }; | ||
828 | |||
829 | cpu62: cpu@70302 { | ||
830 | device_type = "cpu"; | ||
831 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
832 | reg = <0x70302>; | ||
833 | enable-method = "psci"; | ||
834 | next-level-cache = <&cluster15_l2>; | ||
835 | numa-node-id = <3>; | ||
836 | }; | ||
837 | |||
838 | cpu63: cpu@70303 { | ||
839 | device_type = "cpu"; | ||
840 | compatible = "arm,cortex-a72", "arm,armv8"; | ||
841 | reg = <0x70303>; | ||
842 | enable-method = "psci"; | ||
843 | next-level-cache = <&cluster15_l2>; | ||
844 | numa-node-id = <3>; | ||
845 | }; | ||
846 | |||
847 | cluster0_l2: l2-cache0 { | ||
848 | compatible = "cache"; | ||
849 | }; | ||
850 | |||
851 | cluster1_l2: l2-cache1 { | ||
852 | compatible = "cache"; | ||
853 | }; | ||
854 | |||
855 | cluster2_l2: l2-cache2 { | ||
856 | compatible = "cache"; | ||
857 | }; | ||
858 | |||
859 | cluster3_l2: l2-cache3 { | ||
860 | compatible = "cache"; | ||
861 | }; | ||
862 | |||
863 | cluster4_l2: l2-cache4 { | ||
864 | compatible = "cache"; | ||
865 | }; | ||
866 | |||
867 | cluster5_l2: l2-cache5 { | ||
868 | compatible = "cache"; | ||
869 | }; | ||
870 | |||
871 | cluster6_l2: l2-cache6 { | ||
872 | compatible = "cache"; | ||
873 | }; | ||
874 | |||
875 | cluster7_l2: l2-cache7 { | ||
876 | compatible = "cache"; | ||
877 | }; | ||
878 | |||
879 | cluster8_l2: l2-cache8 { | ||
880 | compatible = "cache"; | ||
881 | }; | ||
882 | |||
883 | cluster9_l2: l2-cache9 { | ||
884 | compatible = "cache"; | ||
885 | }; | ||
886 | |||
887 | cluster10_l2: l2-cache10 { | ||
888 | compatible = "cache"; | ||
889 | }; | ||
890 | |||
891 | cluster11_l2: l2-cache11 { | ||
892 | compatible = "cache"; | ||
893 | }; | ||
894 | |||
895 | cluster12_l2: l2-cache12 { | ||
896 | compatible = "cache"; | ||
897 | }; | ||
898 | |||
899 | cluster13_l2: l2-cache13 { | ||
900 | compatible = "cache"; | ||
901 | }; | ||
902 | |||
903 | cluster14_l2: l2-cache14 { | ||
904 | compatible = "cache"; | ||
905 | }; | ||
906 | |||
907 | cluster15_l2: l2-cache15 { | ||
908 | compatible = "cache"; | ||
909 | }; | ||
910 | }; | ||
911 | |||
912 | gic: interrupt-controller@4d000000 { | ||
913 | compatible = "arm,gic-v3"; | ||
914 | #interrupt-cells = <3>; | ||
915 | #address-cells = <2>; | ||
916 | #size-cells = <2>; | ||
917 | ranges; | ||
918 | interrupt-controller; | ||
919 | #redistributor-regions = <4>; | ||
920 | redistributor-stride = <0x0 0x40000>; | ||
921 | reg = <0x0 0x4d000000 0x0 0x10000>, /* GICD */ | ||
922 | <0x0 0x4d100000 0x0 0x400000>, /* p0 GICR node 0 */ | ||
923 | <0x0 0x6d100000 0x0 0x400000>, /* p0 GICR node 1 */ | ||
924 | <0x400 0x4d100000 0x0 0x400000>, /* p1 GICR node 2 */ | ||
925 | <0x400 0x6d100000 0x0 0x400000>, /* p1 GICR node 3 */ | ||
926 | <0x0 0xfe000000 0x0 0x10000>, /* GICC */ | ||
927 | <0x0 0xfe010000 0x0 0x10000>, /* GICH */ | ||
928 | <0x0 0xfe020000 0x0 0x10000>; /* GICV */ | ||
929 | interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; | ||
930 | |||
931 | p0_its_peri_a: interrupt-controller@4c000000 { | ||
932 | compatible = "arm,gic-v3-its"; | ||
933 | msi-controller; | ||
934 | #msi-cells = <1>; | ||
935 | reg = <0x0 0x4c000000 0x0 0x40000>; | ||
936 | }; | ||
937 | |||
938 | p0_its_peri_b: interrupt-controller@6c000000 { | ||
939 | compatible = "arm,gic-v3-its"; | ||
940 | msi-controller; | ||
941 | #msi-cells = <1>; | ||
942 | reg = <0x0 0x6c000000 0x0 0x40000>; | ||
943 | }; | ||
944 | |||
945 | p0_its_dsa_a: interrupt-controller@c6000000 { | ||
946 | compatible = "arm,gic-v3-its"; | ||
947 | msi-controller; | ||
948 | #msi-cells = <1>; | ||
949 | reg = <0x0 0xc6000000 0x0 0x40000>; | ||
950 | }; | ||
951 | |||
952 | p0_its_dsa_b: interrupt-controller@8,c6000000 { | ||
953 | compatible = "arm,gic-v3-its"; | ||
954 | msi-controller; | ||
955 | #msi-cells = <1>; | ||
956 | reg = <0x8 0xc6000000 0x0 0x40000>; | ||
957 | }; | ||
958 | |||
959 | p1_its_peri_a: interrupt-controller@400,4c000000 { | ||
960 | compatible = "arm,gic-v3-its"; | ||
961 | msi-controller; | ||
962 | #msi-cells = <1>; | ||
963 | reg = <0x400 0x4c000000 0x0 0x40000>; | ||
964 | }; | ||
965 | |||
966 | p1_its_peri_b: interrupt-controller@400,6c000000 { | ||
967 | compatible = "arm,gic-v3-its"; | ||
968 | msi-controller; | ||
969 | #msi-cells = <1>; | ||
970 | reg = <0x400 0x6c000000 0x0 0x40000>; | ||
971 | }; | ||
972 | |||
973 | p1_its_dsa_a: interrupt-controller@400,c6000000 { | ||
974 | compatible = "arm,gic-v3-its"; | ||
975 | msi-controller; | ||
976 | #msi-cells = <1>; | ||
977 | reg = <0x400 0xc6000000 0x0 0x40000>; | ||
978 | }; | ||
979 | |||
980 | p1_its_dsa_b: interrupt-controller@408,c6000000 { | ||
981 | compatible = "arm,gic-v3-its"; | ||
982 | msi-controller; | ||
983 | #msi-cells = <1>; | ||
984 | reg = <0x408 0xc6000000 0x0 0x40000>; | ||
985 | }; | ||
986 | }; | ||
987 | |||
988 | timer { | ||
989 | compatible = "arm,armv8-timer"; | ||
990 | interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, | ||
991 | <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, | ||
992 | <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, | ||
993 | <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; | ||
994 | }; | ||
995 | |||
996 | pmu { | ||
997 | compatible = "arm,cortex-a72-pmu"; | ||
998 | interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; | ||
999 | }; | ||
1000 | |||
1001 | p0_mbigen_peri_b: interrupt-controller@60080000 { | ||
1002 | compatible = "hisilicon,mbigen-v2"; | ||
1003 | reg = <0x0 0x60080000 0x0 0x10000>; | ||
1004 | |||
1005 | mbigen_uart: uart_intc { | ||
1006 | msi-parent = <&p0_its_peri_b 0x120c7>; | ||
1007 | interrupt-controller; | ||
1008 | #interrupt-cells = <2>; | ||
1009 | num-pins = <1>; | ||
1010 | }; | ||
1011 | }; | ||
1012 | |||
1013 | p0_mbigen_pcie_a: interrupt-controller@a0080000 { | ||
1014 | compatible = "hisilicon,mbigen-v2"; | ||
1015 | reg = <0x0 0xa0080000 0x0 0x10000>; | ||
1016 | |||
1017 | mbigen_usb: intc_usb { | ||
1018 | msi-parent = <&p0_its_dsa_a 0x40080>; | ||
1019 | interrupt-controller; | ||
1020 | #interrupt-cells = <2>; | ||
1021 | num-pins = <2>; | ||
1022 | }; | ||
1023 | }; | ||
1024 | |||
1025 | soc { | ||
1026 | compatible = "simple-bus"; | ||
1027 | #address-cells = <2>; | ||
1028 | #size-cells = <2>; | ||
1029 | ranges; | ||
1030 | |||
1031 | uart0: uart@602b0000 { | ||
1032 | compatible = "arm,sbsa-uart"; | ||
1033 | reg = <0x0 0x602b0000 0x0 0x1000>; | ||
1034 | interrupt-parent = <&mbigen_uart>; | ||
1035 | interrupts = <807 4>; | ||
1036 | current-speed = <115200>; | ||
1037 | reg-io-width = <4>; | ||
1038 | status = "disabled"; | ||
1039 | }; | ||
1040 | |||
1041 | usb_ohci: ohci@a7030000 { | ||
1042 | compatible = "generic-ohci"; | ||
1043 | reg = <0x0 0xa7030000 0x0 0x10000>; | ||
1044 | interrupt-parent = <&mbigen_usb>; | ||
1045 | interrupts = <640 4>; | ||
1046 | dma-coherent; | ||
1047 | status = "disabled"; | ||
1048 | }; | ||
1049 | |||
1050 | usb_ehci: ehci@a7020000 { | ||
1051 | compatible = "generic-ehci"; | ||
1052 | reg = <0x0 0xa7020000 0x0 0x10000>; | ||
1053 | interrupt-parent = <&mbigen_usb>; | ||
1054 | interrupts = <641 4>; | ||
1055 | dma-coherent; | ||
1056 | status = "disabled"; | ||
1057 | }; | ||
1058 | }; | ||
1059 | }; | ||
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile index cf3953124cef..1690883b931a 100644 --- a/arch/arm64/boot/dts/marvell/Makefile +++ b/arch/arm64/boot/dts/marvell/Makefile | |||
@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_BERLIN) += berlin4ct-stb.dtb | |||
4 | 4 | ||
5 | # Mvebu SoC Family | 5 | # Mvebu SoC Family |
6 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb | 6 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb |
7 | dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb | ||
7 | dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb | 8 | dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb |
8 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb | 9 | dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb |
9 | 10 | ||
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-db.dts b/arch/arm64/boot/dts/marvell/armada-3720-db.dts index a59d36cd6caf..89de0a751093 100644 --- a/arch/arm64/boot/dts/marvell/armada-3720-db.dts +++ b/arch/arm64/boot/dts/marvell/armada-3720-db.dts | |||
@@ -56,7 +56,7 @@ | |||
56 | stdout-path = "serial0:115200n8"; | 56 | stdout-path = "serial0:115200n8"; |
57 | }; | 57 | }; |
58 | 58 | ||
59 | memory { | 59 | memory@0 { |
60 | device_type = "memory"; | 60 | device_type = "memory"; |
61 | reg = <0x00000000 0x00000000 0x00000000 0x20000000>; | 61 | reg = <0x00000000 0x00000000 0x00000000 0x20000000>; |
62 | }; | 62 | }; |
diff --git a/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts new file mode 100644 index 000000000000..83178d909fc2 --- /dev/null +++ b/arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts | |||
@@ -0,0 +1,82 @@ | |||
1 | /* | ||
2 | * Device Tree file for Globalscale Marvell ESPRESSOBin Board | ||
3 | * Copyright (C) 2016 Marvell | ||
4 | * | ||
5 | * Romain Perier <romain.perier@free-electrons.com> | ||
6 | * | ||
7 | * This file is dual-licensed: you can use it either under the terms | ||
8 | * of the GPL or the X11 license, at your option. Note that this dual | ||
9 | * licensing only applies to this file, and not this project as a | ||
10 | * whole. | ||
11 | * | ||
12 | * a) This file is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License as | ||
14 | * published by the Free Software Foundation; either version 2 of the | ||
15 | * License, or (at your option) any later version. | ||
16 | * | ||
17 | * This file is distributed in the hope that it will be useful | ||
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
20 | * GNU General Public License for more details. | ||
21 | * | ||
22 | * Or, alternatively | ||
23 | * | ||
24 | * b) Permission is hereby granted, free of charge, to any person | ||
25 | * obtaining a copy of this software and associated documentation | ||
26 | * files (the "Software"), to deal in the Software without | ||
27 | * restriction, including without limitation the rights to use | ||
28 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
29 | * sell copies of the Software, and to permit persons to whom the | ||
30 | * Software is furnished to do so, subject to the following | ||
31 | * conditions: | ||
32 | * | ||
33 | * The above copyright notice and this permission notice shall be | ||
34 | * included in all copies or substantial portions of the Software. | ||
35 | * | ||
36 | * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND | ||
37 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
38 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
39 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
40 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY | ||
41 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
42 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
43 | * OTHER DEALINGS IN THE SOFTWARE. | ||
44 | */ | ||
45 | |||
46 | /dts-v1/; | ||
47 | |||
48 | #include "armada-372x.dtsi" | ||
49 | |||
50 | / { | ||
51 | model = "Globalscale Marvell ESPRESSOBin Board"; | ||
52 | compatible = "globalscale,espressobin", "marvell,armada3720", "marvell,armada3710"; | ||
53 | |||
54 | chosen { | ||
55 | stdout-path = "serial0:115200n8"; | ||
56 | }; | ||
57 | |||
58 | memory@0 { | ||
59 | device_type = "memory"; | ||
60 | reg = <0x00000000 0x00000000 0x00000000 0x20000000>; | ||
61 | }; | ||
62 | }; | ||
63 | |||
64 | /* J9 */ | ||
65 | &pcie0 { | ||
66 | status = "okay"; | ||
67 | }; | ||
68 | |||
69 | /* J6 */ | ||
70 | &sata { | ||
71 | status = "okay"; | ||
72 | }; | ||
73 | |||
74 | /* Exported on the micro USB connector J5 through an FTDI */ | ||
75 | &uart0 { | ||
76 | status = "okay"; | ||
77 | }; | ||
78 | |||
79 | /* J7 */ | ||
80 | &usb3 { | ||
81 | status = "okay"; | ||
82 | }; | ||
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi index 3b8eb45bdc76..bab5c6ff5745 100644 --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | |||
@@ -91,7 +91,7 @@ | |||
91 | #size-cells = <2>; | 91 | #size-cells = <2>; |
92 | ranges; | 92 | ranges; |
93 | 93 | ||
94 | internal-regs { | 94 | internal-regs@d0000000 { |
95 | #address-cells = <1>; | 95 | #address-cells = <1>; |
96 | #size-cells = <1>; | 96 | #size-cells = <1>; |
97 | compatible = "simple-bus"; | 97 | compatible = "simple-bus"; |
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi index 7b6136182ad0..a749ba2edec4 100644 --- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi | |||
@@ -71,7 +71,7 @@ | |||
71 | interrupt-parent = <&gic>; | 71 | interrupt-parent = <&gic>; |
72 | ranges; | 72 | ranges; |
73 | 73 | ||
74 | config-space { | 74 | config-space@f0000000 { |
75 | #address-cells = <1>; | 75 | #address-cells = <1>; |
76 | #size-cells = <1>; | 76 | #size-cells = <1>; |
77 | compatible = "simple-bus"; | 77 | compatible = "simple-bus"; |
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi index 93ec8fef82a1..05222f749a45 100644 --- a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi | |||
@@ -52,7 +52,7 @@ | |||
52 | interrupt-parent = <&gic>; | 52 | interrupt-parent = <&gic>; |
53 | ranges; | 53 | ranges; |
54 | 54 | ||
55 | config-space { | 55 | config-space@f2000000 { |
56 | #address-cells = <1>; | 56 | #address-cells = <1>; |
57 | #size-cells = <1>; | 57 | #size-cells = <1>; |
58 | compatible = "simple-bus"; | 58 | compatible = "simple-bus"; |
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi index ee8db0556791..638820ce977d 100644 --- a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi +++ b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi | |||
@@ -52,7 +52,7 @@ | |||
52 | interrupt-parent = <&gic>; | 52 | interrupt-parent = <&gic>; |
53 | ranges; | 53 | ranges; |
54 | 54 | ||
55 | config-space { | 55 | config-space@f4000000 { |
56 | #address-cells = <1>; | 56 | #address-cells = <1>; |
57 | #size-cells = <1>; | 57 | #size-cells = <1>; |
58 | compatible = "simple-bus"; | 58 | compatible = "simple-bus"; |
diff --git a/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts b/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts index 0d70d39fa8d2..fae6c6924705 100644 --- a/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts +++ b/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts | |||
@@ -54,7 +54,7 @@ | |||
54 | stdout-path = "serial0:115200n8"; | 54 | stdout-path = "serial0:115200n8"; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | memory { | 57 | memory@1000000 { |
58 | device_type = "memory"; | 58 | device_type = "memory"; |
59 | /* the first 16MB is for firmwares' usage */ | 59 | /* the first 16MB is for firmwares' usage */ |
60 | reg = <0 0x01000000 0 0x7f000000>; | 60 | reg = <0 0x01000000 0 0x7f000000>; |
diff --git a/arch/arm64/boot/dts/marvell/berlin4ct-stb.dts b/arch/arm64/boot/dts/marvell/berlin4ct-stb.dts index 348c37ecf069..d47edad13e68 100644 --- a/arch/arm64/boot/dts/marvell/berlin4ct-stb.dts +++ b/arch/arm64/boot/dts/marvell/berlin4ct-stb.dts | |||
@@ -54,7 +54,7 @@ | |||
54 | stdout-path = "serial0:115200n8"; | 54 | stdout-path = "serial0:115200n8"; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | memory { | 57 | memory@1000000 { |
58 | device_type = "memory"; | 58 | device_type = "memory"; |
59 | /* the first 16MB is for firmwares' usage */ | 59 | /* the first 16MB is for firmwares' usage */ |
60 | reg = <0 0x01000000 0 0x7f000000>; | 60 | reg = <0 0x01000000 0 0x7f000000>; |
diff --git a/arch/arm64/boot/dts/marvell/berlin4ct.dtsi b/arch/arm64/boot/dts/marvell/berlin4ct.dtsi index 85c23facb9fe..d6b800fd26d0 100644 --- a/arch/arm64/boot/dts/marvell/berlin4ct.dtsi +++ b/arch/arm64/boot/dts/marvell/berlin4ct.dtsi | |||
@@ -142,7 +142,7 @@ | |||
142 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | 142 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; |
143 | }; | 143 | }; |
144 | 144 | ||
145 | soc { | 145 | soc@f7000000 { |
146 | compatible = "simple-bus"; | 146 | compatible = "simple-bus"; |
147 | #address-cells = <1>; | 147 | #address-cells = <1>; |
148 | #size-cells = <1>; | 148 | #size-cells = <1>; |
diff --git a/arch/arm64/boot/dts/nvidia/Makefile b/arch/arm64/boot/dts/nvidia/Makefile index 0f7cdf3e05c1..18941458cb4d 100644 --- a/arch/arm64/boot/dts/nvidia/Makefile +++ b/arch/arm64/boot/dts/nvidia/Makefile | |||
@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb | |||
3 | dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb | 3 | dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb |
4 | dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.dtb | 4 | dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.dtb |
5 | dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb | 5 | dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb |
6 | dtb-$(CONFIG_ARCH_TEGRA_186_SOC) += tegra186-p2771-0000.dtb | ||
6 | 7 | ||
7 | always := $(dtb-y) | 8 | always := $(dtb-y) |
8 | clean-files := *.dtb | 9 | clean-files := *.dtb |
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts new file mode 100644 index 000000000000..0d3c0996d832 --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts | |||
@@ -0,0 +1,8 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | #include "tegra186-p3310.dtsi" | ||
4 | |||
5 | / { | ||
6 | model = "NVIDIA Tegra186 P2771-0000 Development Board"; | ||
7 | compatible = "nvidia,p2771-0000", "nvidia,tegra186"; | ||
8 | }; | ||
diff --git a/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi new file mode 100644 index 000000000000..1abe2eceb3d1 --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra186-p3310.dtsi | |||
@@ -0,0 +1,64 @@ | |||
1 | #include "tegra186.dtsi" | ||
2 | |||
3 | / { | ||
4 | model = "NVIDIA Tegra186 P3310 Processor Module"; | ||
5 | compatible = "nvidia,p3310", "nvidia,tegra186"; | ||
6 | |||
7 | aliases { | ||
8 | serial0 = &uarta; | ||
9 | }; | ||
10 | |||
11 | chosen { | ||
12 | bootargs = "earlycon console=ttyS0,115200n8"; | ||
13 | stdout-path = "serial0:115200n8"; | ||
14 | }; | ||
15 | |||
16 | memory { | ||
17 | device_type = "memory"; | ||
18 | reg = <0x0 0x80000000 0x2 0x00000000>; | ||
19 | }; | ||
20 | |||
21 | serial@3100000 { | ||
22 | status = "okay"; | ||
23 | }; | ||
24 | |||
25 | hsp@3c00000 { | ||
26 | status = "okay"; | ||
27 | }; | ||
28 | |||
29 | cpus { | ||
30 | cpu@0 { | ||
31 | enable-method = "psci"; | ||
32 | }; | ||
33 | |||
34 | cpu@1 { | ||
35 | enable-method = "psci"; | ||
36 | }; | ||
37 | |||
38 | cpu@2 { | ||
39 | enable-method = "psci"; | ||
40 | }; | ||
41 | |||
42 | cpu@3 { | ||
43 | enable-method = "psci"; | ||
44 | }; | ||
45 | |||
46 | cpu@4 { | ||
47 | enable-method = "psci"; | ||
48 | }; | ||
49 | |||
50 | cpu@5 { | ||
51 | enable-method = "psci"; | ||
52 | }; | ||
53 | }; | ||
54 | |||
55 | bpmp { | ||
56 | status = "okay"; | ||
57 | }; | ||
58 | |||
59 | psci { | ||
60 | compatible = "arm,psci-1.0"; | ||
61 | status = "okay"; | ||
62 | method = "smc"; | ||
63 | }; | ||
64 | }; | ||
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi new file mode 100644 index 000000000000..a918e10240fd --- /dev/null +++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi | |||
@@ -0,0 +1,398 @@ | |||
1 | #include <dt-bindings/gpio/tegra186-gpio.h> | ||
2 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
3 | |||
4 | / { | ||
5 | compatible = "nvidia,tegra186"; | ||
6 | interrupt-parent = <&gic>; | ||
7 | #address-cells = <2>; | ||
8 | #size-cells = <2>; | ||
9 | |||
10 | gpio: gpio@2200000 { | ||
11 | compatible = "nvidia,tegra186-gpio"; | ||
12 | reg-names = "security", "gpio"; | ||
13 | reg = <0x0 0x2200000 0x0 0x10000>, | ||
14 | <0x0 0x2210000 0x0 0x10000>; | ||
15 | interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, | ||
16 | <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, | ||
17 | <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, | ||
18 | <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | ||
19 | <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | ||
20 | <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; | ||
21 | #interrupt-cells = <2>; | ||
22 | interrupt-controller; | ||
23 | #gpio-cells = <2>; | ||
24 | gpio-controller; | ||
25 | }; | ||
26 | |||
27 | uarta: serial@3100000 { | ||
28 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
29 | reg = <0x0 0x03100000 0x0 0x40>; | ||
30 | reg-shift = <2>; | ||
31 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>; | ||
32 | clocks = <&bpmp 55>; | ||
33 | clock-names = "serial"; | ||
34 | resets = <&bpmp 47>; | ||
35 | reset-names = "serial"; | ||
36 | status = "disabled"; | ||
37 | }; | ||
38 | |||
39 | uartb: serial@3110000 { | ||
40 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
41 | reg = <0x0 0x03110000 0x0 0x40>; | ||
42 | reg-shift = <2>; | ||
43 | interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; | ||
44 | clocks = <&bpmp 56>; | ||
45 | clock-names = "serial"; | ||
46 | resets = <&bpmp 48>; | ||
47 | reset-names = "serial"; | ||
48 | status = "disabled"; | ||
49 | }; | ||
50 | |||
51 | uartd: serial@3130000 { | ||
52 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
53 | reg = <0x0 0x03130000 0x0 0x40>; | ||
54 | reg-shift = <2>; | ||
55 | interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; | ||
56 | clocks = <&bpmp 77>; | ||
57 | clock-names = "serial"; | ||
58 | resets = <&bpmp 50>; | ||
59 | reset-names = "serial"; | ||
60 | status = "disabled"; | ||
61 | }; | ||
62 | |||
63 | uarte: serial@3140000 { | ||
64 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
65 | reg = <0x0 0x03140000 0x0 0x40>; | ||
66 | reg-shift = <2>; | ||
67 | interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; | ||
68 | clocks = <&bpmp 194>; | ||
69 | clock-names = "serial"; | ||
70 | resets = <&bpmp 132>; | ||
71 | reset-names = "serial"; | ||
72 | status = "disabled"; | ||
73 | }; | ||
74 | |||
75 | uartf: serial@3150000 { | ||
76 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
77 | reg = <0x0 0x03150000 0x0 0x40>; | ||
78 | reg-shift = <2>; | ||
79 | interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | ||
80 | clocks = <&bpmp 195>; | ||
81 | clock-names = "serial"; | ||
82 | resets = <&bpmp 111>; | ||
83 | reset-names = "serial"; | ||
84 | status = "disabled"; | ||
85 | }; | ||
86 | |||
87 | gen1_i2c: i2c@3160000 { | ||
88 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
89 | reg = <0x0 0x03160000 0x0 0x10000>; | ||
90 | interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | ||
91 | #address-cells = <1>; | ||
92 | #size-cells = <0>; | ||
93 | clocks = <&bpmp 47>; | ||
94 | clock-names = "div-clk"; | ||
95 | resets = <&bpmp 19>; | ||
96 | reset-names = "i2c"; | ||
97 | status = "disabled"; | ||
98 | }; | ||
99 | |||
100 | cam_i2c: i2c@3180000 { | ||
101 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
102 | reg = <0x0 0x03180000 0x0 0x10000>; | ||
103 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | ||
104 | #address-cells = <1>; | ||
105 | #size-cells = <0>; | ||
106 | clocks = <&bpmp 75>; | ||
107 | clock-names = "div-clk"; | ||
108 | resets = <&bpmp 21>; | ||
109 | reset-names = "i2c"; | ||
110 | status = "disabled"; | ||
111 | }; | ||
112 | |||
113 | /* shares pads with dpaux1 */ | ||
114 | dp_aux_ch1_i2c: i2c@3190000 { | ||
115 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
116 | reg = <0x0 0x03190000 0x0 0x10000>; | ||
117 | interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | ||
118 | #address-cells = <1>; | ||
119 | #size-cells = <0>; | ||
120 | clocks = <&bpmp 86>; | ||
121 | clock-names = "div-clk"; | ||
122 | resets = <&bpmp 22>; | ||
123 | reset-names = "i2c"; | ||
124 | status = "disabled"; | ||
125 | }; | ||
126 | |||
127 | /* controlled by BPMP, should not be enabled */ | ||
128 | pwr_i2c: i2c@31a0000 { | ||
129 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
130 | reg = <0x0 0x031a0000 0x0 0x10000>; | ||
131 | interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; | ||
132 | #address-cells = <1>; | ||
133 | #size-cells = <0>; | ||
134 | clocks = <&bpmp 48>; | ||
135 | clock-names = "div-clk"; | ||
136 | resets = <&bpmp 23>; | ||
137 | reset-names = "i2c"; | ||
138 | status = "disabled"; | ||
139 | }; | ||
140 | |||
141 | /* shares pads with dpaux0 */ | ||
142 | dp_aux_ch0_i2c: i2c@31b0000 { | ||
143 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
144 | reg = <0x0 0x031b0000 0x0 0x10000>; | ||
145 | interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; | ||
146 | #address-cells = <1>; | ||
147 | #size-cells = <0>; | ||
148 | clocks = <&bpmp 125>; | ||
149 | clock-names = "div-clk"; | ||
150 | resets = <&bpmp 24>; | ||
151 | reset-names = "i2c"; | ||
152 | status = "disabled"; | ||
153 | }; | ||
154 | |||
155 | gen7_i2c: i2c@31c0000 { | ||
156 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
157 | reg = <0x0 0x031c0000 0x0 0x10000>; | ||
158 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; | ||
159 | #address-cells = <1>; | ||
160 | #size-cells = <0>; | ||
161 | clocks = <&bpmp 182>; | ||
162 | clock-names = "div-clk"; | ||
163 | resets = <&bpmp 81>; | ||
164 | reset-names = "i2c"; | ||
165 | status = "disabled"; | ||
166 | }; | ||
167 | |||
168 | gen9_i2c: i2c@31e0000 { | ||
169 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
170 | reg = <0x0 0x031e0000 0x0 0x10000>; | ||
171 | interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | ||
172 | #address-cells = <1>; | ||
173 | #size-cells = <0>; | ||
174 | clocks = <&bpmp 183>; | ||
175 | clock-names = "div-clk"; | ||
176 | resets = <&bpmp 83>; | ||
177 | reset-names = "i2c"; | ||
178 | status = "disabled"; | ||
179 | }; | ||
180 | |||
181 | sdmmc1: sdhci@3400000 { | ||
182 | compatible = "nvidia,tegra186-sdhci"; | ||
183 | reg = <0x0 0x03400000 0x0 0x10000>; | ||
184 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | ||
185 | clocks = <&bpmp 52>; | ||
186 | clock-names = "sdhci"; | ||
187 | resets = <&bpmp 33>; | ||
188 | reset-names = "sdhci"; | ||
189 | status = "disabled"; | ||
190 | }; | ||
191 | |||
192 | sdmmc2: sdhci@3420000 { | ||
193 | compatible = "nvidia,tegra186-sdhci"; | ||
194 | reg = <0x0 0x03420000 0x0 0x10000>; | ||
195 | interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
196 | clocks = <&bpmp 53>; | ||
197 | clock-names = "sdhci"; | ||
198 | resets = <&bpmp 34>; | ||
199 | reset-names = "sdhci"; | ||
200 | status = "disabled"; | ||
201 | }; | ||
202 | |||
203 | sdmmc3: sdhci@3440000 { | ||
204 | compatible = "nvidia,tegra186-sdhci"; | ||
205 | reg = <0x0 0x03440000 0x0 0x10000>; | ||
206 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; | ||
207 | clocks = <&bpmp 76>; | ||
208 | clock-names = "sdhci"; | ||
209 | resets = <&bpmp 35>; | ||
210 | reset-names = "sdhci"; | ||
211 | status = "disabled"; | ||
212 | }; | ||
213 | |||
214 | sdmmc4: sdhci@3460000 { | ||
215 | compatible = "nvidia,tegra186-sdhci"; | ||
216 | reg = <0x0 0x03460000 0x0 0x10000>; | ||
217 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
218 | clocks = <&bpmp 54>; | ||
219 | clock-names = "sdhci"; | ||
220 | resets = <&bpmp 36>; | ||
221 | reset-names = "sdhci"; | ||
222 | status = "disabled"; | ||
223 | }; | ||
224 | |||
225 | gic: interrupt-controller@3881000 { | ||
226 | compatible = "arm,gic-400"; | ||
227 | #interrupt-cells = <3>; | ||
228 | interrupt-controller; | ||
229 | reg = <0x0 0x03881000 0x0 0x1000>, | ||
230 | <0x0 0x03882000 0x0 0x2000>; | ||
231 | interrupts = <GIC_PPI 9 | ||
232 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
233 | interrupt-parent = <&gic>; | ||
234 | }; | ||
235 | |||
236 | hsp_top0: hsp@3c00000 { | ||
237 | compatible = "nvidia,tegra186-hsp"; | ||
238 | reg = <0x0 0x03c00000 0x0 0xa0000>; | ||
239 | interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; | ||
240 | interrupt-names = "doorbell"; | ||
241 | #mbox-cells = <2>; | ||
242 | status = "disabled"; | ||
243 | }; | ||
244 | |||
245 | gen2_i2c: i2c@c240000 { | ||
246 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
247 | reg = <0x0 0x0c240000 0x0 0x10000>; | ||
248 | interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
249 | #address-cells = <1>; | ||
250 | #size-cells = <0>; | ||
251 | clocks = <&bpmp 218>; | ||
252 | clock-names = "div-clk"; | ||
253 | resets = <&bpmp 20>; | ||
254 | reset-names = "i2c"; | ||
255 | status = "disabled"; | ||
256 | }; | ||
257 | |||
258 | gen8_i2c: i2c@c250000 { | ||
259 | compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c"; | ||
260 | reg = <0x0 0x0c250000 0x0 0x10000>; | ||
261 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | ||
262 | #address-cells = <1>; | ||
263 | #size-cells = <0>; | ||
264 | clocks = <&bpmp 219>; | ||
265 | clock-names = "div-clk"; | ||
266 | resets = <&bpmp 82>; | ||
267 | reset-names = "i2c"; | ||
268 | status = "disabled"; | ||
269 | }; | ||
270 | |||
271 | uartc: serial@c280000 { | ||
272 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
273 | reg = <0x0 0x0c280000 0x0 0x40>; | ||
274 | reg-shift = <2>; | ||
275 | interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; | ||
276 | clocks = <&bpmp 215>; | ||
277 | clock-names = "serial"; | ||
278 | resets = <&bpmp 49>; | ||
279 | reset-names = "serial"; | ||
280 | status = "disabled"; | ||
281 | }; | ||
282 | |||
283 | uartg: serial@c290000 { | ||
284 | compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart"; | ||
285 | reg = <0x0 0x0c290000 0x0 0x40>; | ||
286 | reg-shift = <2>; | ||
287 | interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | ||
288 | clocks = <&bpmp 216>; | ||
289 | clock-names = "serial"; | ||
290 | resets = <&bpmp 112>; | ||
291 | reset-names = "serial"; | ||
292 | status = "disabled"; | ||
293 | }; | ||
294 | |||
295 | gpio_aon: gpio@c2f0000 { | ||
296 | compatible = "nvidia,tegra186-gpio-aon"; | ||
297 | reg-names = "security", "gpio"; | ||
298 | reg = <0x0 0xc2f0000 0x0 0x1000>, | ||
299 | <0x0 0xc2f1000 0x0 0x1000>; | ||
300 | interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; | ||
301 | gpio-controller; | ||
302 | #gpio-cells = <2>; | ||
303 | interrupt-controller; | ||
304 | #interrupt-cells = <2>; | ||
305 | }; | ||
306 | |||
307 | sysram@30000000 { | ||
308 | compatible = "nvidia,tegra186-sysram", "mmio-sram"; | ||
309 | reg = <0x0 0x30000000 0x0 0x50000>; | ||
310 | #address-cells = <2>; | ||
311 | #size-cells = <2>; | ||
312 | ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>; | ||
313 | |||
314 | cpu_bpmp_tx: shmem@4e000 { | ||
315 | compatible = "nvidia,tegra186-bpmp-shmem"; | ||
316 | reg = <0x0 0x4e000 0x0 0x1000>; | ||
317 | label = "cpu-bpmp-tx"; | ||
318 | pool; | ||
319 | }; | ||
320 | |||
321 | cpu_bpmp_rx: shmem@4f000 { | ||
322 | compatible = "nvidia,tegra186-bpmp-shmem"; | ||
323 | reg = <0x0 0x4f000 0x0 0x1000>; | ||
324 | label = "cpu-bpmp-rx"; | ||
325 | pool; | ||
326 | }; | ||
327 | }; | ||
328 | |||
329 | cpus { | ||
330 | #address-cells = <1>; | ||
331 | #size-cells = <0>; | ||
332 | |||
333 | cpu@0 { | ||
334 | compatible = "nvidia,tegra186-denver", "arm,armv8"; | ||
335 | device_type = "cpu"; | ||
336 | reg = <0x000>; | ||
337 | }; | ||
338 | |||
339 | cpu@1 { | ||
340 | compatible = "nvidia,tegra186-denver", "arm,armv8"; | ||
341 | device_type = "cpu"; | ||
342 | reg = <0x001>; | ||
343 | }; | ||
344 | |||
345 | cpu@2 { | ||
346 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
347 | device_type = "cpu"; | ||
348 | reg = <0x100>; | ||
349 | }; | ||
350 | |||
351 | cpu@3 { | ||
352 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
353 | device_type = "cpu"; | ||
354 | reg = <0x101>; | ||
355 | }; | ||
356 | |||
357 | cpu@4 { | ||
358 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
359 | device_type = "cpu"; | ||
360 | reg = <0x102>; | ||
361 | }; | ||
362 | |||
363 | cpu@5 { | ||
364 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
365 | device_type = "cpu"; | ||
366 | reg = <0x103>; | ||
367 | }; | ||
368 | }; | ||
369 | |||
370 | bpmp: bpmp { | ||
371 | compatible = "nvidia,tegra186-bpmp"; | ||
372 | mboxes = <&hsp_top0 0 19>; | ||
373 | shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>; | ||
374 | #clock-cells = <1>; | ||
375 | #reset-cells = <1>; | ||
376 | |||
377 | bpmp_i2c: i2c { | ||
378 | compatible = "nvidia,tegra186-bpmp-i2c"; | ||
379 | nvidia,bpmp-bus-id = <5>; | ||
380 | #address-cells = <1>; | ||
381 | #size-cells = <0>; | ||
382 | status = "disabled"; | ||
383 | }; | ||
384 | }; | ||
385 | |||
386 | timer { | ||
387 | compatible = "arm,armv8-timer"; | ||
388 | interrupts = <GIC_PPI 13 | ||
389 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
390 | <GIC_PPI 14 | ||
391 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
392 | <GIC_PPI 11 | ||
393 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
394 | <GIC_PPI 10 | ||
395 | (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | ||
396 | interrupt-parent = <&gic>; | ||
397 | }; | ||
398 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 5dd05de5619b..cc0f02d9dd02 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile | |||
@@ -1,6 +1,9 @@ | |||
1 | dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb msm8916-mtp.dtb | 1 | dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.dtb |
2 | dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb | ||
3 | dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb | 2 | dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb |
3 | dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb | ||
4 | dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb | ||
5 | dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb | ||
6 | dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb | ||
4 | 7 | ||
5 | always := $(dtb-y) | 8 | always := $(dtb-y) |
6 | subdir-y := $(dts-dirs) | 9 | subdir-y := $(dts-dirs) |
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi index bb062b547110..08bd5ebafb4e 100644 --- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | |||
@@ -15,6 +15,7 @@ | |||
15 | #include "pm8916.dtsi" | 15 | #include "pm8916.dtsi" |
16 | #include "apq8016-sbc-soc-pins.dtsi" | 16 | #include "apq8016-sbc-soc-pins.dtsi" |
17 | #include "apq8016-sbc-pmic-pins.dtsi" | 17 | #include "apq8016-sbc-pmic-pins.dtsi" |
18 | #include <dt-bindings/sound/apq8016-lpass.h> | ||
18 | 19 | ||
19 | / { | 20 | / { |
20 | aliases { | 21 | aliases { |
@@ -251,6 +252,60 @@ | |||
251 | vddio-supply = <&pm8916_l6>; | 252 | vddio-supply = <&pm8916_l6>; |
252 | }; | 253 | }; |
253 | }; | 254 | }; |
255 | |||
256 | lpass_codec: codec{ | ||
257 | status = "okay"; | ||
258 | }; | ||
259 | |||
260 | /* | ||
261 | Internal Codec | ||
262 | playback - Primary MI2S | ||
263 | capture - Ter MI2S | ||
264 | |||
265 | External Primary: | ||
266 | playback - secondary MI2S | ||
267 | capture - Quat MI2S | ||
268 | |||
269 | External Secondary: | ||
270 | playback - Quat MI2S | ||
271 | capture - Quat MI2S | ||
272 | |||
273 | */ | ||
274 | |||
275 | sound: sound { | ||
276 | compatible = "qcom,apq8016-sbc-sndcard"; | ||
277 | reg = <0x07702000 0x4>, <0x07702004 0x4>; | ||
278 | reg-names = "mic-iomux", "spkr-iomux"; | ||
279 | |||
280 | status = "okay"; | ||
281 | pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>; | ||
282 | pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>; | ||
283 | pinctrl-names = "default", "sleep"; | ||
284 | qcom,model = "DB410c"; | ||
285 | qcom,audio-routing = | ||
286 | "AMIC2", "MIC BIAS Internal2", | ||
287 | "AMIC3", "MIC BIAS External1"; | ||
288 | |||
289 | internal-codec-playback-dai-link@0 { /* I2S - Internal codec */ | ||
290 | link-name = "WCD"; | ||
291 | cpu { /* PRIMARY */ | ||
292 | sound-dai = <&lpass MI2S_PRIMARY>; | ||
293 | }; | ||
294 | codec { | ||
295 | sound-dai = <&lpass_codec 0>, <&wcd_codec 0>; | ||
296 | }; | ||
297 | }; | ||
298 | |||
299 | internal-codec-capture-dai-link@0 { /* I2S - Internal codec */ | ||
300 | link-name = "WCD-Capture"; | ||
301 | cpu { /* PRIMARY */ | ||
302 | sound-dai = <&lpass MI2S_TERTIARY>; | ||
303 | }; | ||
304 | codec { | ||
305 | sound-dai = <&lpass_codec 1>, <&wcd_codec 1>; | ||
306 | }; | ||
307 | }; | ||
308 | }; | ||
254 | }; | 309 | }; |
255 | 310 | ||
256 | usb2513 { | 311 | usb2513 { |
@@ -278,6 +333,12 @@ | |||
278 | }; | 333 | }; |
279 | }; | 334 | }; |
280 | 335 | ||
336 | &wcd_codec { | ||
337 | status = "okay"; | ||
338 | clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; | ||
339 | clock-names = "mclk"; | ||
340 | }; | ||
341 | |||
281 | &smd_rpm_regulators { | 342 | &smd_rpm_regulators { |
282 | vdd_l1_l2_l3-supply = <&pm8916_s3>; | 343 | vdd_l1_l2_l3-supply = <&pm8916_s3>; |
283 | vdd_l5-supply = <&pm8916_s3>; | 344 | vdd_l5-supply = <&pm8916_s3>; |
@@ -308,8 +369,8 @@ | |||
308 | }; | 369 | }; |
309 | 370 | ||
310 | l2 { | 371 | l2 { |
311 | regulator-min-microvolt = <375000>; | 372 | regulator-min-microvolt = <1200000>; |
312 | regulator-max-microvolt = <1525000>; | 373 | regulator-max-microvolt = <1200000>; |
313 | }; | 374 | }; |
314 | 375 | ||
315 | l3 { | 376 | l3 { |
@@ -328,8 +389,8 @@ | |||
328 | }; | 389 | }; |
329 | 390 | ||
330 | l6 { | 391 | l6 { |
331 | regulator-min-microvolt = <1750000>; | 392 | regulator-min-microvolt = <1800000>; |
332 | regulator-max-microvolt = <3337000>; | 393 | regulator-max-microvolt = <1800000>; |
333 | }; | 394 | }; |
334 | 395 | ||
335 | l7 { | 396 | l7 { |
@@ -388,8 +449,8 @@ | |||
388 | }; | 449 | }; |
389 | 450 | ||
390 | l17 { | 451 | l17 { |
391 | regulator-min-microvolt = <1750000>; | 452 | regulator-min-microvolt = <3300000>; |
392 | regulator-max-microvolt = <3337000>; | 453 | regulator-max-microvolt = <3300000>; |
393 | }; | 454 | }; |
394 | 455 | ||
395 | l18 { | 456 | l18 { |
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi new file mode 100644 index 000000000000..0de95171d6d0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi | |||
@@ -0,0 +1,15 @@ | |||
1 | |||
2 | #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> | ||
3 | &pm8994_gpios { | ||
4 | |||
5 | pinctrl-names = "default"; | ||
6 | pinctrl-0 = <&ls_exp_gpio_f>; | ||
7 | |||
8 | ls_exp_gpio_f: pm8916_mpp4 { | ||
9 | pinconf { | ||
10 | pins = "gpio5"; | ||
11 | output-low; | ||
12 | power-source = <2>; // PM8994_GPIO_S4, 1.8V | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi index afb218cffc60..422959b87d12 100644 --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | |||
@@ -12,7 +12,9 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "msm8996.dtsi" | 14 | #include "msm8996.dtsi" |
15 | #include "pm8994.dtsi" | ||
15 | #include "apq8096-db820c-pins.dtsi" | 16 | #include "apq8096-db820c-pins.dtsi" |
17 | #include "apq8096-db820c-pmic-pins.dtsi" | ||
16 | 18 | ||
17 | / { | 19 | / { |
18 | aliases { | 20 | aliases { |
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi index 466ca5705c99..f8ff327667c5 100644 --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi | |||
@@ -77,7 +77,7 @@ | |||
77 | no-map; | 77 | no-map; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | mpss@86800000 { | 80 | mpss_mem: mpss@86800000 { |
81 | reg = <0x0 0x86800000 0x0 0x2b00000>; | 81 | reg = <0x0 0x86800000 0x0 0x2b00000>; |
82 | no-map; | 82 | no-map; |
83 | }; | 83 | }; |
@@ -504,6 +504,15 @@ | |||
504 | reg-names = "lpass-lpaif"; | 504 | reg-names = "lpass-lpaif"; |
505 | }; | 505 | }; |
506 | 506 | ||
507 | lpass_codec: codec{ | ||
508 | compatible = "qcom,msm8916-wcd-digital-codec"; | ||
509 | reg = <0x0771c000 0x400>; | ||
510 | clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>, | ||
511 | <&gcc GCC_CODEC_DIGCODEC_CLK>; | ||
512 | clock-names = "ahbix-clk", "mclk"; | ||
513 | #sound-dai-cells = <1>; | ||
514 | }; | ||
515 | |||
507 | sdhc_1: sdhci@07824000 { | 516 | sdhc_1: sdhci@07824000 { |
508 | compatible = "qcom,sdhci-msm-v4"; | 517 | compatible = "qcom,sdhci-msm-v4"; |
509 | reg = <0x07824900 0x11c>, <0x07824000 0x800>; | 518 | reg = <0x07824900 0x11c>, <0x07824000 0x800>; |
@@ -512,8 +521,10 @@ | |||
512 | interrupts = <0 123 0>, <0 138 0>; | 521 | interrupts = <0 123 0>, <0 138 0>; |
513 | interrupt-names = "hc_irq", "pwr_irq"; | 522 | interrupt-names = "hc_irq", "pwr_irq"; |
514 | clocks = <&gcc GCC_SDCC1_APPS_CLK>, | 523 | clocks = <&gcc GCC_SDCC1_APPS_CLK>, |
515 | <&gcc GCC_SDCC1_AHB_CLK>; | 524 | <&gcc GCC_SDCC1_AHB_CLK>, |
516 | clock-names = "core", "iface"; | 525 | <&xo_board>; |
526 | clock-names = "core", "iface", "xo"; | ||
527 | mmc-ddr-1_8v; | ||
517 | bus-width = <8>; | 528 | bus-width = <8>; |
518 | non-removable; | 529 | non-removable; |
519 | status = "disabled"; | 530 | status = "disabled"; |
@@ -527,8 +538,9 @@ | |||
527 | interrupts = <0 125 0>, <0 221 0>; | 538 | interrupts = <0 125 0>, <0 221 0>; |
528 | interrupt-names = "hc_irq", "pwr_irq"; | 539 | interrupt-names = "hc_irq", "pwr_irq"; |
529 | clocks = <&gcc GCC_SDCC2_APPS_CLK>, | 540 | clocks = <&gcc GCC_SDCC2_APPS_CLK>, |
530 | <&gcc GCC_SDCC2_AHB_CLK>; | 541 | <&gcc GCC_SDCC2_AHB_CLK>, |
531 | clock-names = "core", "iface"; | 542 | <&xo_board>; |
543 | clock-names = "core", "iface", "xo"; | ||
532 | bus-width = <4>; | 544 | bus-width = <4>; |
533 | status = "disabled"; | 545 | status = "disabled"; |
534 | }; | 546 | }; |
@@ -801,6 +813,49 @@ | |||
801 | clock-names = "iface_clk"; | 813 | clock-names = "iface_clk"; |
802 | }; | 814 | }; |
803 | }; | 815 | }; |
816 | |||
817 | |||
818 | hexagon@4080000 { | ||
819 | compatible = "qcom,q6v5-pil"; | ||
820 | reg = <0x04080000 0x100>, | ||
821 | <0x04020000 0x040>; | ||
822 | |||
823 | reg-names = "qdsp6", "rmb"; | ||
824 | |||
825 | interrupts-extended = <&intc 0 24 1>, | ||
826 | <&hexagon_smp2p_in 0 0>, | ||
827 | <&hexagon_smp2p_in 1 0>, | ||
828 | <&hexagon_smp2p_in 2 0>, | ||
829 | <&hexagon_smp2p_in 3 0>; | ||
830 | interrupt-names = "wdog", "fatal", "ready", | ||
831 | "handover", "stop-ack"; | ||
832 | |||
833 | clocks = <&gcc GCC_MSS_CFG_AHB_CLK>, | ||
834 | <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>, | ||
835 | <&gcc GCC_BOOT_ROM_AHB_CLK>; | ||
836 | clock-names = "iface", "bus", "mem"; | ||
837 | |||
838 | qcom,smem-states = <&hexagon_smp2p_out 0>; | ||
839 | qcom,smem-state-names = "stop"; | ||
840 | |||
841 | resets = <&scm 0>; | ||
842 | reset-names = "mss_restart"; | ||
843 | |||
844 | mx-supply = <&pm8916_l3>; | ||
845 | pll-supply = <&pm8916_l7>; | ||
846 | |||
847 | qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; | ||
848 | |||
849 | status = "disabled"; | ||
850 | |||
851 | mba { | ||
852 | memory-region = <&mba_mem>; | ||
853 | }; | ||
854 | |||
855 | mpss { | ||
856 | memory-region = <&mpss_mem>; | ||
857 | }; | ||
858 | }; | ||
804 | }; | 859 | }; |
805 | 860 | ||
806 | smd { | 861 | smd { |
@@ -848,6 +903,14 @@ | |||
848 | }; | 903 | }; |
849 | }; | 904 | }; |
850 | }; | 905 | }; |
906 | |||
907 | hexagon { | ||
908 | interrupts = <0 25 IRQ_TYPE_EDGE_RISING>; | ||
909 | |||
910 | qcom,smd-edge = <0>; | ||
911 | qcom,ipc = <&apcs 8 12>; | ||
912 | qcom,remote-pid = <1>; | ||
913 | }; | ||
851 | }; | 914 | }; |
852 | 915 | ||
853 | hexagon-smp2p { | 916 | hexagon-smp2p { |
diff --git a/arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts b/arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts new file mode 100644 index 000000000000..454213391671 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8992-bullhead-rev-101.dts | |||
@@ -0,0 +1,41 @@ | |||
1 | /* Copyright (c) 2015, LGE Inc. All rights reserved. | ||
2 | * Copyright (c) 2016, The Linux Foundation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 and | ||
6 | * only version 2 as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | |||
16 | #include "msm8992.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "LG Nexus 5X"; | ||
20 | compatible = "lg,bullhead", "qcom,msm8992"; | ||
21 | /* required for bootloader to select correct board */ | ||
22 | qcom,board-id = <0xb64 0>; | ||
23 | qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>; | ||
24 | |||
25 | aliases { | ||
26 | serial0 = &blsp1_uart2; | ||
27 | }; | ||
28 | |||
29 | chosen { | ||
30 | stdout-path = "serial0:115200n8"; | ||
31 | }; | ||
32 | |||
33 | soc { | ||
34 | serial@f991e000 { | ||
35 | status = "okay"; | ||
36 | pinctrl-names = "default", "sleep"; | ||
37 | pinctrl-0 = <&blsp1_uart2_default>; | ||
38 | pinctrl-1 = <&blsp1_uart2_sleep>; | ||
39 | }; | ||
40 | }; | ||
41 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8992-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8992-pins.dtsi new file mode 100644 index 000000000000..d2a26f0f8d73 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8992-pins.dtsi | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 and | ||
6 | * only version 2 as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | &msmgpio { | ||
15 | blsp1_uart2_default: blsp1_uart2_default { | ||
16 | pinmux { | ||
17 | function = "blsp_uart2"; | ||
18 | pins = "gpio4", "gpio5"; | ||
19 | }; | ||
20 | pinconf { | ||
21 | pins = "gpio4", "gpio5"; | ||
22 | drive-strength = <16>; | ||
23 | bias-disable; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | blsp1_uart2_sleep: blsp1_uart2_sleep { | ||
28 | pinmux { | ||
29 | function = "gpio"; | ||
30 | pins = "gpio4", "gpio5"; | ||
31 | }; | ||
32 | pinconf { | ||
33 | pins = "gpio4", "gpio5"; | ||
34 | drive-strength = <2>; | ||
35 | bias-pull-down; | ||
36 | }; | ||
37 | }; | ||
38 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8992.dtsi b/arch/arm64/boot/dts/qcom/msm8992.dtsi new file mode 100644 index 000000000000..44b2d37d8c4b --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8992.dtsi | |||
@@ -0,0 +1,184 @@ | |||
1 | /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. | ||
2 | * | ||
3 | * This program is free software; you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License version 2 and | ||
5 | * only version 2 as published by the Free Software Foundation. | ||
6 | * | ||
7 | * This program is distributed in the hope that it will be useful, | ||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | */ | ||
12 | |||
13 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
14 | #include <dt-bindings/clock/qcom,gcc-msm8994.h> | ||
15 | |||
16 | / { | ||
17 | model = "Qualcomm Technologies, Inc. MSM 8992"; | ||
18 | compatible = "qcom,msm8992"; | ||
19 | // msm-id needed by bootloader for selecting correct blob | ||
20 | qcom,msm-id = <251 0>, <252 0>; | ||
21 | interrupt-parent = <&intc>; | ||
22 | |||
23 | #address-cells = <2>; | ||
24 | #size-cells = <2>; | ||
25 | |||
26 | chosen { }; | ||
27 | |||
28 | cpus { | ||
29 | #address-cells = <2>; | ||
30 | #size-cells = <0>; | ||
31 | cpu-map { | ||
32 | cluster0 { | ||
33 | core0 { | ||
34 | cpu = <&CPU0>; | ||
35 | }; | ||
36 | }; | ||
37 | }; | ||
38 | |||
39 | CPU0: cpu@0 { | ||
40 | device_type = "cpu"; | ||
41 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
42 | reg = <0x0 0x0>; | ||
43 | next-level-cache = <&L2_0>; | ||
44 | L2_0: l2-cache { | ||
45 | compatible = "cache"; | ||
46 | cache-level = <2>; | ||
47 | }; | ||
48 | }; | ||
49 | }; | ||
50 | |||
51 | timer { | ||
52 | compatible = "arm,armv8-timer"; | ||
53 | interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
54 | <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
55 | <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
56 | <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | ||
57 | }; | ||
58 | |||
59 | xo_board: xo_board { | ||
60 | compatible = "fixed-clock"; | ||
61 | #clock-cells = <0>; | ||
62 | clock-frequency = <19200000>; | ||
63 | }; | ||
64 | |||
65 | sleep_clk: sleep_clk { | ||
66 | compatible = "fixed-clock"; | ||
67 | #clock-cells = <0>; | ||
68 | clock-frequency = <32768>; | ||
69 | }; | ||
70 | |||
71 | soc { | ||
72 | #address-cells = <1>; | ||
73 | #size-cells = <1>; | ||
74 | ranges = <0 0 0 0xffffffff>; | ||
75 | compatible = "simple-bus"; | ||
76 | |||
77 | intc: interrupt-controller@f9000000 { | ||
78 | compatible = "qcom,msm-qgic2"; | ||
79 | interrupt-controller; | ||
80 | #interrupt-cells = <3>; | ||
81 | reg = <0xf9000000 0x1000>, | ||
82 | <0xf9002000 0x1000>; | ||
83 | }; | ||
84 | |||
85 | timer@f9020000 { | ||
86 | #address-cells = <1>; | ||
87 | #size-cells = <1>; | ||
88 | ranges; | ||
89 | compatible = "arm,armv7-timer-mem"; | ||
90 | reg = <0xf9020000 0x1000>; | ||
91 | |||
92 | frame@f9021000 { | ||
93 | frame-number = <0>; | ||
94 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, | ||
95 | <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
96 | reg = <0xf9021000 0x1000>, | ||
97 | <0xf9022000 0x1000>; | ||
98 | }; | ||
99 | |||
100 | frame@f9023000 { | ||
101 | frame-number = <1>; | ||
102 | interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | ||
103 | reg = <0xf9023000 0x1000>; | ||
104 | status = "disabled"; | ||
105 | }; | ||
106 | |||
107 | frame@f9024000 { | ||
108 | frame-number = <2>; | ||
109 | interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; | ||
110 | reg = <0xf9024000 0x1000>; | ||
111 | status = "disabled"; | ||
112 | }; | ||
113 | |||
114 | frame@f9025000 { | ||
115 | frame-number = <3>; | ||
116 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
117 | reg = <0xf9025000 0x1000>; | ||
118 | status = "disabled"; | ||
119 | }; | ||
120 | |||
121 | frame@f9026000 { | ||
122 | frame-number = <4>; | ||
123 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
124 | reg = <0xf9026000 0x1000>; | ||
125 | status = "disabled"; | ||
126 | }; | ||
127 | |||
128 | frame@f9027000 { | ||
129 | frame-number = <5>; | ||
130 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
131 | reg = <0xf9027000 0x1000>; | ||
132 | status = "disabled"; | ||
133 | }; | ||
134 | |||
135 | frame@f9028000 { | ||
136 | frame-number = <6>; | ||
137 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
138 | reg = <0xf9028000 0x1000>; | ||
139 | status = "disabled"; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | restart@fc4ab000 { | ||
144 | compatible = "qcom,pshold"; | ||
145 | reg = <0xfc4ab000 0x4>; | ||
146 | }; | ||
147 | |||
148 | msmgpio: pinctrl@fd510000 { | ||
149 | compatible = "qcom,msm8994-pinctrl"; | ||
150 | reg = <0xfd510000 0x4000>; | ||
151 | interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; | ||
152 | gpio-controller; | ||
153 | #gpio-cells = <2>; | ||
154 | interrupt-controller; | ||
155 | #interrupt-cells = <2>; | ||
156 | }; | ||
157 | |||
158 | blsp1_uart2: serial@f991e000 { | ||
159 | compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | ||
160 | reg = <0xf991e000 0x1000>; | ||
161 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>; | ||
162 | status = "disabled"; | ||
163 | clock-names = "core", "iface"; | ||
164 | clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>, | ||
165 | <&clock_gcc GCC_BLSP1_AHB_CLK>; | ||
166 | }; | ||
167 | |||
168 | clock_gcc: clock-controller@fc400000 { | ||
169 | compatible = "qcom,gcc-msm8994"; | ||
170 | #clock-cells = <1>; | ||
171 | #reset-cells = <1>; | ||
172 | #power-domain-cells = <1>; | ||
173 | reg = <0xfc400000 0x2000>; | ||
174 | }; | ||
175 | }; | ||
176 | |||
177 | memory { | ||
178 | device_type = "memory"; | ||
179 | reg = <0 0 0 0>; // bootloader will update | ||
180 | }; | ||
181 | }; | ||
182 | |||
183 | |||
184 | #include "msm8992-pins.dtsi" | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8994-angler-rev-101.dts b/arch/arm64/boot/dts/qcom/msm8994-angler-rev-101.dts new file mode 100644 index 000000000000..dfa08f513dc4 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-angler-rev-101.dts | |||
@@ -0,0 +1,40 @@ | |||
1 | /* Copyright (c) 2015, Huawei Inc. All rights reserved. | ||
2 | * Copyright (c) 2016, The Linux Foundation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 and | ||
6 | * only version 2 as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | /dts-v1/; | ||
15 | |||
16 | #include "msm8994.dtsi" | ||
17 | |||
18 | / { | ||
19 | model = "Huawei Nexus 6P"; | ||
20 | compatible = "huawei,angler", "qcom,msm8994"; | ||
21 | /* required for bootloader to select correct board */ | ||
22 | qcom,board-id = <8026 0>; | ||
23 | |||
24 | aliases { | ||
25 | serial0 = &blsp1_uart2; | ||
26 | }; | ||
27 | |||
28 | chosen { | ||
29 | stdout-path = "serial0:115200n8"; | ||
30 | }; | ||
31 | |||
32 | soc { | ||
33 | serial@f991e000 { | ||
34 | status = "okay"; | ||
35 | pinctrl-names = "default", "sleep"; | ||
36 | pinctrl-0 = <&blsp1_uart2_default>; | ||
37 | pinctrl-1 = <&blsp1_uart2_sleep>; | ||
38 | }; | ||
39 | }; | ||
40 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8994-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8994-pins.dtsi new file mode 100644 index 000000000000..0e4eea0df25d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994-pins.dtsi | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 and | ||
6 | * only version 2 as published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | */ | ||
13 | |||
14 | &msmgpio { | ||
15 | blsp1_uart2_default: blsp1_uart2_default { | ||
16 | pinmux { | ||
17 | function = "blsp_uart2"; | ||
18 | pins = "gpio4", "gpio5"; | ||
19 | }; | ||
20 | pinconf { | ||
21 | pins = "gpio4", "gpio5"; | ||
22 | drive-strength = <16>; | ||
23 | bias-disable; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | blsp1_uart2_sleep: blsp1_uart2_sleep { | ||
28 | pinmux { | ||
29 | function = "gpio"; | ||
30 | pins = "gpio4", "gpio5"; | ||
31 | }; | ||
32 | pinconf { | ||
33 | pins = "gpio4", "gpio5"; | ||
34 | drive-strength = <2>; | ||
35 | bias-pull-down; | ||
36 | }; | ||
37 | }; | ||
38 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8994.dtsi b/arch/arm64/boot/dts/qcom/msm8994.dtsi new file mode 100644 index 000000000000..f33c41d01c86 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8994.dtsi | |||
@@ -0,0 +1,216 @@ | |||
1 | /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. | ||
2 | * | ||
3 | * This program is free software; you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License version 2 and | ||
5 | * only version 2 as published by the Free Software Foundation. | ||
6 | * | ||
7 | * This program is distributed in the hope that it will be useful, | ||
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU General Public License for more details. | ||
11 | */ | ||
12 | |||
13 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
14 | #include <dt-bindings/clock/qcom,gcc-msm8994.h> | ||
15 | |||
16 | / { | ||
17 | model = "Qualcomm Technologies, Inc. MSM 8994"; | ||
18 | compatible = "qcom,msm8994"; | ||
19 | // msm-id and pmic-id are required by bootloader for | ||
20 | // proper selection of dt blob | ||
21 | qcom,msm-id = <207 0x20000>; | ||
22 | qcom,pmic-id = <0x10009 0x1000A 0x0 0x0>; | ||
23 | interrupt-parent = <&intc>; | ||
24 | |||
25 | #address-cells = <2>; | ||
26 | #size-cells = <2>; | ||
27 | |||
28 | chosen { }; | ||
29 | |||
30 | cpus { | ||
31 | #address-cells = <1>; | ||
32 | #size-cells = <0>; | ||
33 | cpu-map { | ||
34 | cluster0 { | ||
35 | core0 { | ||
36 | cpu = <&CPU0>; | ||
37 | }; | ||
38 | }; | ||
39 | }; | ||
40 | |||
41 | CPU0: cpu@0 { | ||
42 | device_type = "cpu"; | ||
43 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
44 | reg = <0x0>; | ||
45 | next-level-cache = <&L2_0>; | ||
46 | L2_0: l2-cache { | ||
47 | compatible = "cache"; | ||
48 | cache-level = <2>; | ||
49 | }; | ||
50 | }; | ||
51 | }; | ||
52 | |||
53 | timer { | ||
54 | compatible = "arm,armv8-timer"; | ||
55 | interrupts = <1 2 0xff08>, | ||
56 | <1 3 0xff08>, | ||
57 | <1 4 0xff08>, | ||
58 | <1 1 0xff08>; | ||
59 | }; | ||
60 | |||
61 | soc: soc { | ||
62 | |||
63 | #address-cells = <1>; | ||
64 | #size-cells = <1>; | ||
65 | ranges = <0 0 0 0xffffffff>; | ||
66 | compatible = "simple-bus"; | ||
67 | |||
68 | intc: interrupt-controller@f9000000 { | ||
69 | compatible = "qcom,msm-qgic2"; | ||
70 | interrupt-controller; | ||
71 | #interrupt-cells = <3>; | ||
72 | reg = <0xf9000000 0x1000>, | ||
73 | <0xf9002000 0x1000>; | ||
74 | }; | ||
75 | |||
76 | timer@f9020000 { | ||
77 | #address-cells = <1>; | ||
78 | #size-cells = <1>; | ||
79 | ranges; | ||
80 | compatible = "arm,armv7-timer-mem"; | ||
81 | reg = <0xf9020000 0x1000>; | ||
82 | |||
83 | frame@f9021000 { | ||
84 | frame-number = <0>; | ||
85 | interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, | ||
86 | <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; | ||
87 | reg = <0xf9021000 0x1000>, | ||
88 | <0xf9022000 0x1000>; | ||
89 | }; | ||
90 | |||
91 | frame@f9023000 { | ||
92 | frame-number = <1>; | ||
93 | interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; | ||
94 | reg = <0xf9023000 0x1000>; | ||
95 | status = "disabled"; | ||
96 | }; | ||
97 | |||
98 | frame@f9024000 { | ||
99 | frame-number = <2>; | ||
100 | interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; | ||
101 | reg = <0xf9024000 0x1000>; | ||
102 | status = "disabled"; | ||
103 | }; | ||
104 | |||
105 | frame@f9025000 { | ||
106 | frame-number = <3>; | ||
107 | interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; | ||
108 | reg = <0xf9025000 0x1000>; | ||
109 | status = "disabled"; | ||
110 | }; | ||
111 | |||
112 | frame@f9026000 { | ||
113 | frame-number = <4>; | ||
114 | interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; | ||
115 | reg = <0xf9026000 0x1000>; | ||
116 | status = "disabled"; | ||
117 | }; | ||
118 | |||
119 | frame@f9027000 { | ||
120 | frame-number = <5>; | ||
121 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | ||
122 | reg = <0xf9027000 0x1000>; | ||
123 | status = "disabled"; | ||
124 | }; | ||
125 | |||
126 | frame@f9028000 { | ||
127 | frame-number = <6>; | ||
128 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | ||
129 | reg = <0xf9028000 0x1000>; | ||
130 | status = "disabled"; | ||
131 | }; | ||
132 | }; | ||
133 | |||
134 | restart@fc4ab000 { | ||
135 | compatible = "qcom,pshold"; | ||
136 | reg = <0xfc4ab000 0x4>; | ||
137 | }; | ||
138 | |||
139 | msmgpio: pinctrl@fd510000 { | ||
140 | compatible = "qcom,msm8994-pinctrl"; | ||
141 | reg = <0xfd510000 0x4000>; | ||
142 | interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; | ||
143 | gpio-controller; | ||
144 | #gpio-cells = <2>; | ||
145 | interrupt-controller; | ||
146 | #interrupt-cells = <2>; | ||
147 | }; | ||
148 | |||
149 | blsp1_uart2: serial@f991e000 { | ||
150 | compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | ||
151 | reg = <0xf991e000 0x1000>; | ||
152 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | ||
153 | status = "disabled"; | ||
154 | clock-names = "core", "iface"; | ||
155 | clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>, | ||
156 | <&clock_gcc GCC_BLSP1_AHB_CLK>; | ||
157 | }; | ||
158 | |||
159 | tcsr_mutex_regs: syscon@fd484000 { | ||
160 | compatible = "syscon"; | ||
161 | reg = <0xfd484000 0x2000>; | ||
162 | }; | ||
163 | |||
164 | clock_gcc: clock-controller@fc400000 { | ||
165 | compatible = "qcom,gcc-msm8994"; | ||
166 | #clock-cells = <1>; | ||
167 | #reset-cells = <1>; | ||
168 | #power-domain-cells = <1>; | ||
169 | reg = <0xfc400000 0x2000>; | ||
170 | }; | ||
171 | }; | ||
172 | |||
173 | memory { | ||
174 | device_type = "memory"; | ||
175 | // We expect the bootloader to fill in the reg | ||
176 | reg = <0 0 0 0>; | ||
177 | }; | ||
178 | |||
179 | xo_board: xo_board { | ||
180 | compatible = "fixed-clock"; | ||
181 | #clock-cells = <0>; | ||
182 | clock-frequency = <19200000>; | ||
183 | }; | ||
184 | |||
185 | sleep_clk: sleep_clk { | ||
186 | compatible = "fixed-clock"; | ||
187 | #clock-cells = <0>; | ||
188 | clock-frequency = <32768>; | ||
189 | }; | ||
190 | |||
191 | reserved-memory { | ||
192 | #address-cells = <2>; | ||
193 | #size-cells = <2>; | ||
194 | ranges; | ||
195 | |||
196 | smem_mem: smem_region@6a00000 { | ||
197 | reg = <0x0 0x6a00000 0x0 0x200000>; | ||
198 | no-map; | ||
199 | }; | ||
200 | }; | ||
201 | |||
202 | tcsr_mutex: hwlock { | ||
203 | compatible = "qcom,tcsr-mutex"; | ||
204 | syscon = <&tcsr_mutex_regs 0 0x80>; | ||
205 | #hwlock-cells = <1>; | ||
206 | }; | ||
207 | |||
208 | qcom,smem@6a00000 { | ||
209 | compatible = "qcom,smem"; | ||
210 | memory-region = <&smem_mem>; | ||
211 | hwlocks = <&tcsr_mutex 3>; | ||
212 | }; | ||
213 | }; | ||
214 | |||
215 | |||
216 | #include "msm8994-pins.dtsi" | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi index 338f82a7fdc7..9d1d7ad9b075 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi | |||
@@ -30,6 +30,42 @@ | |||
30 | reg = <0 0 0 0>; | 30 | reg = <0 0 0 0>; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | reserved-memory { | ||
34 | #address-cells = <2>; | ||
35 | #size-cells = <2>; | ||
36 | ranges; | ||
37 | |||
38 | mba_region: mba@91500000 { | ||
39 | reg = <0x0 0x91500000 0x0 0x200000>; | ||
40 | no-map; | ||
41 | }; | ||
42 | |||
43 | slpi_region: slpi@90b00000 { | ||
44 | reg = <0x0 0x90b00000 0x0 0xa00000>; | ||
45 | no-map; | ||
46 | }; | ||
47 | |||
48 | venus_region: venus@90400000 { | ||
49 | reg = <0x0 0x90400000 0x0 0x700000>; | ||
50 | no-map; | ||
51 | }; | ||
52 | |||
53 | adsp_region: adsp@8ea00000 { | ||
54 | reg = <0x0 0x8ea00000 0x0 0x1a00000>; | ||
55 | no-map; | ||
56 | }; | ||
57 | |||
58 | mpss_region: mpss@88800000 { | ||
59 | reg = <0x0 0x88800000 0x0 0x6200000>; | ||
60 | no-map; | ||
61 | }; | ||
62 | |||
63 | smem_mem: smem-mem@86000000 { | ||
64 | reg = <0x0 0x86000000 0x0 0x200000>; | ||
65 | no-map; | ||
66 | }; | ||
67 | }; | ||
68 | |||
33 | cpus { | 69 | cpus { |
34 | #address-cells = <2>; | 70 | #address-cells = <2>; |
35 | #size-cells = <0>; | 71 | #size-cells = <0>; |
@@ -192,14 +228,14 @@ | |||
192 | }; | 228 | }; |
193 | 229 | ||
194 | clocks { | 230 | clocks { |
195 | xo_board { | 231 | xo_board: xo_board { |
196 | compatible = "fixed-clock"; | 232 | compatible = "fixed-clock"; |
197 | #clock-cells = <0>; | 233 | #clock-cells = <0>; |
198 | clock-frequency = <19200000>; | 234 | clock-frequency = <19200000>; |
199 | clock-output-names = "xo_board"; | 235 | clock-output-names = "xo_board"; |
200 | }; | 236 | }; |
201 | 237 | ||
202 | sleep_clk { | 238 | sleep_clk: sleep_clk { |
203 | compatible = "fixed-clock"; | 239 | compatible = "fixed-clock"; |
204 | #clock-cells = <0>; | 240 | #clock-cells = <0>; |
205 | clock-frequency = <32764>; | 241 | clock-frequency = <32764>; |
@@ -212,12 +248,29 @@ | |||
212 | method = "smc"; | 248 | method = "smc"; |
213 | }; | 249 | }; |
214 | 250 | ||
251 | tcsr_mutex: hwlock { | ||
252 | compatible = "qcom,tcsr-mutex"; | ||
253 | syscon = <&tcsr_mutex_regs 0 0x1000>; | ||
254 | #hwlock-cells = <1>; | ||
255 | }; | ||
256 | |||
257 | smem { | ||
258 | compatible = "qcom,smem"; | ||
259 | memory-region = <&smem_mem>; | ||
260 | hwlocks = <&tcsr_mutex 3>; | ||
261 | }; | ||
262 | |||
215 | soc: soc { | 263 | soc: soc { |
216 | #address-cells = <1>; | 264 | #address-cells = <1>; |
217 | #size-cells = <1>; | 265 | #size-cells = <1>; |
218 | ranges = <0 0 0 0xffffffff>; | 266 | ranges = <0 0 0 0xffffffff>; |
219 | compatible = "simple-bus"; | 267 | compatible = "simple-bus"; |
220 | 268 | ||
269 | tcsr_mutex_regs: syscon@740000 { | ||
270 | compatible = "syscon"; | ||
271 | reg = <0x740000 0x20000>; | ||
272 | }; | ||
273 | |||
221 | intc: interrupt-controller@9bc0000 { | 274 | intc: interrupt-controller@9bc0000 { |
222 | compatible = "arm,gic-v3"; | 275 | compatible = "arm,gic-v3"; |
223 | #interrupt-cells = <3>; | 276 | #interrupt-cells = <3>; |
@@ -229,6 +282,11 @@ | |||
229 | interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; | 282 | interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; |
230 | }; | 283 | }; |
231 | 284 | ||
285 | apcs: syscon@9820000 { | ||
286 | compatible = "syscon"; | ||
287 | reg = <0x9820000 0x1000>; | ||
288 | }; | ||
289 | |||
232 | gcc: clock-controller@300000 { | 290 | gcc: clock-controller@300000 { |
233 | compatible = "qcom,gcc-msm8996"; | 291 | compatible = "qcom,gcc-msm8996"; |
234 | #clock-cells = <1>; | 292 | #clock-cells = <1>; |
@@ -347,9 +405,10 @@ | |||
347 | interrupts = <0 125 0>, <0 221 0>; | 405 | interrupts = <0 125 0>, <0 221 0>; |
348 | interrupt-names = "hc_irq", "pwr_irq"; | 406 | interrupt-names = "hc_irq", "pwr_irq"; |
349 | 407 | ||
350 | clock-names = "iface", "core"; | 408 | clock-names = "iface", "core", "xo"; |
351 | clocks = <&gcc GCC_SDCC2_AHB_CLK>, | 409 | clocks = <&gcc GCC_SDCC2_AHB_CLK>, |
352 | <&gcc GCC_SDCC2_APPS_CLK>; | 410 | <&gcc GCC_SDCC2_APPS_CLK>, |
411 | <&xo_board>; | ||
353 | bus-width = <4>; | 412 | bus-width = <4>; |
354 | }; | 413 | }; |
355 | 414 | ||
@@ -458,5 +517,29 @@ | |||
458 | <825000000>; | 517 | <825000000>; |
459 | }; | 518 | }; |
460 | }; | 519 | }; |
520 | |||
521 | adsp-smp2p { | ||
522 | compatible = "qcom,smp2p"; | ||
523 | qcom,smem = <443>, <429>; | ||
524 | |||
525 | interrupts = <0 158 IRQ_TYPE_EDGE_RISING>; | ||
526 | |||
527 | qcom,ipc = <&apcs 16 10>; | ||
528 | |||
529 | qcom,local-pid = <0>; | ||
530 | qcom,remote-pid = <2>; | ||
531 | |||
532 | adsp_smp2p_out: master-kernel { | ||
533 | qcom,entry-name = "master-kernel"; | ||
534 | #qcom,state-cells = <1>; | ||
535 | }; | ||
536 | |||
537 | adsp_smp2p_in: slave-kernel { | ||
538 | qcom,entry-name = "slave-kernel"; | ||
539 | |||
540 | interrupt-controller; | ||
541 | #interrupt-cells = <2>; | ||
542 | }; | ||
543 | }; | ||
461 | }; | 544 | }; |
462 | #include "msm8996-pins.dtsi" | 545 | #include "msm8996-pins.dtsi" |
diff --git a/arch/arm64/boot/dts/qcom/pm8916.dtsi b/arch/arm64/boot/dts/qcom/pm8916.dtsi index f71679b15d54..53deebf9f515 100644 --- a/arch/arm64/boot/dts/qcom/pm8916.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8916.dtsi | |||
@@ -91,9 +91,52 @@ | |||
91 | }; | 91 | }; |
92 | 92 | ||
93 | pm8916_1: pm8916@1 { | 93 | pm8916_1: pm8916@1 { |
94 | compatible = "qcom,spmi-pmic"; | 94 | compatible = "qcom,pm8916", "qcom,spmi-pmic"; |
95 | reg = <0x1 SPMI_USID>; | 95 | reg = <0x1 SPMI_USID>; |
96 | #address-cells = <1>; | 96 | #address-cells = <1>; |
97 | #size-cells = <0>; | 97 | #size-cells = <0>; |
98 | |||
99 | wcd_codec: codec@f000 { | ||
100 | compatible = "qcom,pm8916-wcd-analog-codec"; | ||
101 | reg = <0xf000 0x200>; | ||
102 | reg-names = "pmic-codec-core"; | ||
103 | clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; | ||
104 | clock-names = "mclk"; | ||
105 | interrupt-parent = <&spmi_bus>; | ||
106 | interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>, | ||
107 | <0x1 0xf0 0x1 IRQ_TYPE_NONE>, | ||
108 | <0x1 0xf0 0x2 IRQ_TYPE_NONE>, | ||
109 | <0x1 0xf0 0x3 IRQ_TYPE_NONE>, | ||
110 | <0x1 0xf0 0x4 IRQ_TYPE_NONE>, | ||
111 | <0x1 0xf0 0x5 IRQ_TYPE_NONE>, | ||
112 | <0x1 0xf0 0x6 IRQ_TYPE_NONE>, | ||
113 | <0x1 0xf0 0x7 IRQ_TYPE_NONE>, | ||
114 | <0x1 0xf1 0x0 IRQ_TYPE_NONE>, | ||
115 | <0x1 0xf1 0x1 IRQ_TYPE_NONE>, | ||
116 | <0x1 0xf1 0x2 IRQ_TYPE_NONE>, | ||
117 | <0x1 0xf1 0x3 IRQ_TYPE_NONE>, | ||
118 | <0x1 0xf1 0x4 IRQ_TYPE_NONE>, | ||
119 | <0x1 0xf1 0x5 IRQ_TYPE_NONE>; | ||
120 | interrupt-names = "cdc_spk_cnp_int", | ||
121 | "cdc_spk_clip_int", | ||
122 | "cdc_spk_ocp_int", | ||
123 | "mbhc_ins_rem_det1", | ||
124 | "mbhc_but_rel_det", | ||
125 | "mbhc_but_press_det", | ||
126 | "mbhc_ins_rem_det", | ||
127 | "mbhc_switch_int", | ||
128 | "cdc_ear_ocp_int", | ||
129 | "cdc_hphr_ocp_int", | ||
130 | "cdc_hphl_ocp_det", | ||
131 | "cdc_ear_cnp_int", | ||
132 | "cdc_hphr_cnp_int", | ||
133 | "cdc_hphl_cnp_int"; | ||
134 | vdd-cdc-io-supply = <&pm8916_l5>; | ||
135 | vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>; | ||
136 | vdd-micbias-supply = <&pm8916_l13>; | ||
137 | #sound-dai-cells = <1>; | ||
138 | |||
139 | }; | ||
140 | |||
98 | }; | 141 | }; |
99 | }; | 142 | }; |
diff --git a/arch/arm64/boot/dts/qcom/pm8994.dtsi b/arch/arm64/boot/dts/qcom/pm8994.dtsi index 1222d2e904f6..0f1866024ae3 100644 --- a/arch/arm64/boot/dts/qcom/pm8994.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8994.dtsi | |||
@@ -29,6 +29,7 @@ | |||
29 | <0 0xcc 0 IRQ_TYPE_NONE>, | 29 | <0 0xcc 0 IRQ_TYPE_NONE>, |
30 | <0 0xcd 0 IRQ_TYPE_NONE>, | 30 | <0 0xcd 0 IRQ_TYPE_NONE>, |
31 | <0 0xce 0 IRQ_TYPE_NONE>, | 31 | <0 0xce 0 IRQ_TYPE_NONE>, |
32 | <0 0xcf 0 IRQ_TYPE_NONE>, | ||
32 | <0 0xd0 0 IRQ_TYPE_NONE>, | 33 | <0 0xd0 0 IRQ_TYPE_NONE>, |
33 | <0 0xd1 0 IRQ_TYPE_NONE>, | 34 | <0 0xd1 0 IRQ_TYPE_NONE>, |
34 | <0 0xd2 0 IRQ_TYPE_NONE>, | 35 | <0 0xd2 0 IRQ_TYPE_NONE>, |
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile index eb72830ec9eb..1618e0a3c81d 100644 --- a/arch/arm64/boot/dts/renesas/Makefile +++ b/arch/arm64/boot/dts/renesas/Makefile | |||
@@ -1,5 +1,5 @@ | |||
1 | dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb | 1 | dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb |
2 | dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb | 2 | dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb |
3 | 3 | ||
4 | always := $(dtb-y) | 4 | always := $(dtb-y) |
5 | clean-files := *.dtb | 5 | clean-files := *.dtb |
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts index bcb11a868343..6ffb0517421a 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Device Tree Source for the H3ULCB board | 2 | * Device Tree Source for the H3ULCB (R-Car Starter Kit Premier) board |
3 | * | 3 | * |
4 | * Copyright (C) 2016 Renesas Electronics Corp. | 4 | * Copyright (C) 2016 Renesas Electronics Corp. |
5 | * Copyright (C) 2016 Cogent Embedded, Inc. | 5 | * Copyright (C) 2016 Cogent Embedded, Inc. |
@@ -62,6 +62,24 @@ | |||
62 | clock-frequency = <24576000>; | 62 | clock-frequency = <24576000>; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | reg_1p8v: regulator0 { | ||
66 | compatible = "regulator-fixed"; | ||
67 | regulator-name = "fixed-1.8V"; | ||
68 | regulator-min-microvolt = <1800000>; | ||
69 | regulator-max-microvolt = <1800000>; | ||
70 | regulator-boot-on; | ||
71 | regulator-always-on; | ||
72 | }; | ||
73 | |||
74 | reg_3p3v: regulator1 { | ||
75 | compatible = "regulator-fixed"; | ||
76 | regulator-name = "fixed-3.3V"; | ||
77 | regulator-min-microvolt = <3300000>; | ||
78 | regulator-max-microvolt = <3300000>; | ||
79 | regulator-boot-on; | ||
80 | regulator-always-on; | ||
81 | }; | ||
82 | |||
65 | vcc_sdhi0: regulator-vcc-sdhi0 { | 83 | vcc_sdhi0: regulator-vcc-sdhi0 { |
66 | compatible = "regulator-fixed"; | 84 | compatible = "regulator-fixed"; |
67 | 85 | ||
@@ -145,18 +163,30 @@ | |||
145 | function = "avb"; | 163 | function = "avb"; |
146 | }; | 164 | }; |
147 | 165 | ||
148 | sdhi0_pins_3v3: sd0_3v3 { | 166 | sdhi0_pins: sd0 { |
149 | groups = "sdhi0_data4", "sdhi0_ctrl"; | 167 | groups = "sdhi0_data4", "sdhi0_ctrl"; |
150 | function = "sdhi0"; | 168 | function = "sdhi0"; |
151 | power-source = <3300>; | 169 | power-source = <3300>; |
152 | }; | 170 | }; |
153 | 171 | ||
154 | sdhi0_pins_1v8: sd0_1v8 { | 172 | sdhi0_pins_uhs: sd0 { |
155 | groups = "sdhi0_data4", "sdhi0_ctrl"; | 173 | groups = "sdhi0_data4", "sdhi0_ctrl"; |
156 | function = "sdhi0"; | 174 | function = "sdhi0"; |
157 | power-source = <1800>; | 175 | power-source = <1800>; |
158 | }; | 176 | }; |
159 | 177 | ||
178 | sdhi2_pins: sd2 { | ||
179 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
180 | function = "sdhi2"; | ||
181 | power-source = <3300>; | ||
182 | }; | ||
183 | |||
184 | sdhi2_pins_uhs: sd2_uhs { | ||
185 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
186 | function = "sdhi2"; | ||
187 | power-source = <1800>; | ||
188 | }; | ||
189 | |||
160 | sound_pins: sound { | 190 | sound_pins: sound { |
161 | groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; | 191 | groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; |
162 | function = "ssi"; | 192 | function = "ssi"; |
@@ -261,8 +291,8 @@ | |||
261 | }; | 291 | }; |
262 | 292 | ||
263 | &sdhi0 { | 293 | &sdhi0 { |
264 | pinctrl-0 = <&sdhi0_pins_3v3>; | 294 | pinctrl-0 = <&sdhi0_pins>; |
265 | pinctrl-1 = <&sdhi0_pins_1v8>; | 295 | pinctrl-1 = <&sdhi0_pins_uhs>; |
266 | pinctrl-names = "default", "state_uhs"; | 296 | pinctrl-names = "default", "state_uhs"; |
267 | 297 | ||
268 | vmmc-supply = <&vcc_sdhi0>; | 298 | vmmc-supply = <&vcc_sdhi0>; |
@@ -273,6 +303,19 @@ | |||
273 | status = "okay"; | 303 | status = "okay"; |
274 | }; | 304 | }; |
275 | 305 | ||
306 | &sdhi2 { | ||
307 | /* used for on-board 8bit eMMC */ | ||
308 | pinctrl-0 = <&sdhi2_pins>; | ||
309 | pinctrl-1 = <&sdhi2_pins_uhs>; | ||
310 | pinctrl-names = "default", "state_uhs"; | ||
311 | |||
312 | vmmc-supply = <®_3p3v>; | ||
313 | vqmmc-supply = <®_1p8v>; | ||
314 | bus-width = <8>; | ||
315 | non-removable; | ||
316 | status = "okay"; | ||
317 | }; | ||
318 | |||
276 | &ssi1 { | 319 | &ssi1 { |
277 | shared-pin; | 320 | shared-pin; |
278 | }; | 321 | }; |
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts index b1eab6876f8c..bcaf4008d32d 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts | |||
@@ -62,6 +62,24 @@ | |||
62 | clock-frequency = <24576000>; | 62 | clock-frequency = <24576000>; |
63 | }; | 63 | }; |
64 | 64 | ||
65 | reg_1p8v: regulator0 { | ||
66 | compatible = "regulator-fixed"; | ||
67 | regulator-name = "fixed-1.8V"; | ||
68 | regulator-min-microvolt = <1800000>; | ||
69 | regulator-max-microvolt = <1800000>; | ||
70 | regulator-boot-on; | ||
71 | regulator-always-on; | ||
72 | }; | ||
73 | |||
74 | reg_3p3v: regulator1 { | ||
75 | compatible = "regulator-fixed"; | ||
76 | regulator-name = "fixed-3.3V"; | ||
77 | regulator-min-microvolt = <3300000>; | ||
78 | regulator-max-microvolt = <3300000>; | ||
79 | regulator-boot-on; | ||
80 | regulator-always-on; | ||
81 | }; | ||
82 | |||
65 | vcc_sdhi0: regulator-vcc-sdhi0 { | 83 | vcc_sdhi0: regulator-vcc-sdhi0 { |
66 | compatible = "regulator-fixed"; | 84 | compatible = "regulator-fixed"; |
67 | 85 | ||
@@ -191,6 +209,10 @@ | |||
191 | remote-endpoint = <&adv7123_in>; | 209 | remote-endpoint = <&adv7123_in>; |
192 | }; | 210 | }; |
193 | }; | 211 | }; |
212 | port@3 { | ||
213 | lvds_connector: endpoint { | ||
214 | }; | ||
215 | }; | ||
194 | }; | 216 | }; |
195 | }; | 217 | }; |
196 | 218 | ||
@@ -237,11 +259,37 @@ | |||
237 | sdhi0_pins: sd0 { | 259 | sdhi0_pins: sd0 { |
238 | groups = "sdhi0_data4", "sdhi0_ctrl"; | 260 | groups = "sdhi0_data4", "sdhi0_ctrl"; |
239 | function = "sdhi0"; | 261 | function = "sdhi0"; |
262 | power-source = <3300>; | ||
263 | }; | ||
264 | |||
265 | sdhi0_pins_uhs: sd0_uhs { | ||
266 | groups = "sdhi0_data4", "sdhi0_ctrl"; | ||
267 | function = "sdhi0"; | ||
268 | power-source = <1800>; | ||
269 | }; | ||
270 | |||
271 | sdhi2_pins: sd2 { | ||
272 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
273 | function = "sdhi2"; | ||
274 | power-source = <3300>; | ||
275 | }; | ||
276 | |||
277 | sdhi2_pins_uhs: sd2_uhs { | ||
278 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
279 | function = "sdhi2"; | ||
280 | power-source = <1800>; | ||
240 | }; | 281 | }; |
241 | 282 | ||
242 | sdhi3_pins: sd3 { | 283 | sdhi3_pins: sd3 { |
243 | groups = "sdhi3_data4", "sdhi3_ctrl"; | 284 | groups = "sdhi3_data4", "sdhi3_ctrl"; |
244 | function = "sdhi3"; | 285 | function = "sdhi3"; |
286 | power-source = <3300>; | ||
287 | }; | ||
288 | |||
289 | sdhi3_pins_uhs: sd3_uhs { | ||
290 | groups = "sdhi3_data4", "sdhi3_ctrl"; | ||
291 | function = "sdhi3"; | ||
292 | power-source = <1800>; | ||
245 | }; | 293 | }; |
246 | 294 | ||
247 | sound_pins: sound { | 295 | sound_pins: sound { |
@@ -261,8 +309,20 @@ | |||
261 | }; | 309 | }; |
262 | 310 | ||
263 | usb1_pins: usb1 { | 311 | usb1_pins: usb1 { |
264 | groups = "usb1"; | 312 | mux { |
265 | function = "usb1"; | 313 | groups = "usb1"; |
314 | function = "usb1"; | ||
315 | }; | ||
316 | |||
317 | ovc { | ||
318 | pins = "GP_6_27"; | ||
319 | bias-pull-up; | ||
320 | }; | ||
321 | |||
322 | pwen { | ||
323 | pins = "GP_6_26"; | ||
324 | bias-pull-down; | ||
325 | }; | ||
266 | }; | 326 | }; |
267 | 327 | ||
268 | usb2_pins: usb2 { | 328 | usb2_pins: usb2 { |
@@ -371,25 +431,42 @@ | |||
371 | 431 | ||
372 | &sdhi0 { | 432 | &sdhi0 { |
373 | pinctrl-0 = <&sdhi0_pins>; | 433 | pinctrl-0 = <&sdhi0_pins>; |
374 | pinctrl-names = "default"; | 434 | pinctrl-1 = <&sdhi0_pins_uhs>; |
435 | pinctrl-names = "default", "state_uhs"; | ||
375 | 436 | ||
376 | vmmc-supply = <&vcc_sdhi0>; | 437 | vmmc-supply = <&vcc_sdhi0>; |
377 | vqmmc-supply = <&vccq_sdhi0>; | 438 | vqmmc-supply = <&vccq_sdhi0>; |
378 | cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; | 439 | cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; |
379 | wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; | 440 | wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; |
380 | bus-width = <4>; | 441 | bus-width = <4>; |
442 | sd-uhs-sdr50; | ||
443 | status = "okay"; | ||
444 | }; | ||
445 | |||
446 | &sdhi2 { | ||
447 | /* used for on-board 8bit eMMC */ | ||
448 | pinctrl-0 = <&sdhi2_pins>; | ||
449 | pinctrl-1 = <&sdhi2_pins_uhs>; | ||
450 | pinctrl-names = "default", "state_uhs"; | ||
451 | |||
452 | vmmc-supply = <®_3p3v>; | ||
453 | vqmmc-supply = <®_1p8v>; | ||
454 | bus-width = <8>; | ||
455 | non-removable; | ||
381 | status = "okay"; | 456 | status = "okay"; |
382 | }; | 457 | }; |
383 | 458 | ||
384 | &sdhi3 { | 459 | &sdhi3 { |
385 | pinctrl-0 = <&sdhi3_pins>; | 460 | pinctrl-0 = <&sdhi3_pins>; |
386 | pinctrl-names = "default"; | 461 | pinctrl-1 = <&sdhi3_pins_uhs>; |
462 | pinctrl-names = "default", "state_uhs"; | ||
387 | 463 | ||
388 | vmmc-supply = <&vcc_sdhi3>; | 464 | vmmc-supply = <&vcc_sdhi3>; |
389 | vqmmc-supply = <&vccq_sdhi3>; | 465 | vqmmc-supply = <&vccq_sdhi3>; |
390 | cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; | 466 | cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; |
391 | wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; | 467 | wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; |
392 | bus-width = <4>; | 468 | bus-width = <4>; |
469 | sd-uhs-sdr50; | ||
393 | status = "okay"; | 470 | status = "okay"; |
394 | }; | 471 | }; |
395 | 472 | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi index 625dda713548..bbf594bce930 100644 --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi | |||
@@ -326,6 +326,11 @@ | |||
326 | reg = <0 0xe6160000 0 0x0200>; | 326 | reg = <0 0xe6160000 0 0x0200>; |
327 | }; | 327 | }; |
328 | 328 | ||
329 | prr: chipid@fff00044 { | ||
330 | compatible = "renesas,prr"; | ||
331 | reg = <0 0xfff00044 0 4>; | ||
332 | }; | ||
333 | |||
329 | sysc: system-controller@e6180000 { | 334 | sysc: system-controller@e6180000 { |
330 | compatible = "renesas,r8a7795-sysc"; | 335 | compatible = "renesas,r8a7795-sysc"; |
331 | reg = <0 0xe6180000 0 0x0400>; | 336 | reg = <0 0xe6180000 0 0x0400>; |
@@ -1311,28 +1316,28 @@ | |||
1311 | }; | 1316 | }; |
1312 | 1317 | ||
1313 | fcpvb1: fcp@fe92f000 { | 1318 | fcpvb1: fcp@fe92f000 { |
1314 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1319 | compatible = "renesas,fcpv"; |
1315 | reg = <0 0xfe92f000 0 0x200>; | 1320 | reg = <0 0xfe92f000 0 0x200>; |
1316 | clocks = <&cpg CPG_MOD 606>; | 1321 | clocks = <&cpg CPG_MOD 606>; |
1317 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1322 | power-domains = <&sysc R8A7795_PD_A3VP>; |
1318 | }; | 1323 | }; |
1319 | 1324 | ||
1320 | fcpf0: fcp@fe950000 { | 1325 | fcpf0: fcp@fe950000 { |
1321 | compatible = "renesas,r8a7795-fcpf", "renesas,fcpf"; | 1326 | compatible = "renesas,fcpf"; |
1322 | reg = <0 0xfe950000 0 0x200>; | 1327 | reg = <0 0xfe950000 0 0x200>; |
1323 | clocks = <&cpg CPG_MOD 615>; | 1328 | clocks = <&cpg CPG_MOD 615>; |
1324 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1329 | power-domains = <&sysc R8A7795_PD_A3VP>; |
1325 | }; | 1330 | }; |
1326 | 1331 | ||
1327 | fcpf1: fcp@fe951000 { | 1332 | fcpf1: fcp@fe951000 { |
1328 | compatible = "renesas,r8a7795-fcpf", "renesas,fcpf"; | 1333 | compatible = "renesas,fcpf"; |
1329 | reg = <0 0xfe951000 0 0x200>; | 1334 | reg = <0 0xfe951000 0 0x200>; |
1330 | clocks = <&cpg CPG_MOD 614>; | 1335 | clocks = <&cpg CPG_MOD 614>; |
1331 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1336 | power-domains = <&sysc R8A7795_PD_A3VP>; |
1332 | }; | 1337 | }; |
1333 | 1338 | ||
1334 | fcpf2: fcp@fe952000 { | 1339 | fcpf2: fcp@fe952000 { |
1335 | compatible = "renesas,r8a7795-fcpf", "renesas,fcpf"; | 1340 | compatible = "renesas,fcpf"; |
1336 | reg = <0 0xfe952000 0 0x200>; | 1341 | reg = <0 0xfe952000 0 0x200>; |
1337 | clocks = <&cpg CPG_MOD 613>; | 1342 | clocks = <&cpg CPG_MOD 613>; |
1338 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1343 | power-domains = <&sysc R8A7795_PD_A3VP>; |
@@ -1349,7 +1354,7 @@ | |||
1349 | }; | 1354 | }; |
1350 | 1355 | ||
1351 | fcpvb0: fcp@fe96f000 { | 1356 | fcpvb0: fcp@fe96f000 { |
1352 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1357 | compatible = "renesas,fcpv"; |
1353 | reg = <0 0xfe96f000 0 0x200>; | 1358 | reg = <0 0xfe96f000 0 0x200>; |
1354 | clocks = <&cpg CPG_MOD 607>; | 1359 | clocks = <&cpg CPG_MOD 607>; |
1355 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1360 | power-domains = <&sysc R8A7795_PD_A3VP>; |
@@ -1366,7 +1371,7 @@ | |||
1366 | }; | 1371 | }; |
1367 | 1372 | ||
1368 | fcpvi0: fcp@fe9af000 { | 1373 | fcpvi0: fcp@fe9af000 { |
1369 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1374 | compatible = "renesas,fcpv"; |
1370 | reg = <0 0xfe9af000 0 0x200>; | 1375 | reg = <0 0xfe9af000 0 0x200>; |
1371 | clocks = <&cpg CPG_MOD 611>; | 1376 | clocks = <&cpg CPG_MOD 611>; |
1372 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1377 | power-domains = <&sysc R8A7795_PD_A3VP>; |
@@ -1383,7 +1388,7 @@ | |||
1383 | }; | 1388 | }; |
1384 | 1389 | ||
1385 | fcpvi1: fcp@fe9bf000 { | 1390 | fcpvi1: fcp@fe9bf000 { |
1386 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1391 | compatible = "renesas,fcpv"; |
1387 | reg = <0 0xfe9bf000 0 0x200>; | 1392 | reg = <0 0xfe9bf000 0 0x200>; |
1388 | clocks = <&cpg CPG_MOD 610>; | 1393 | clocks = <&cpg CPG_MOD 610>; |
1389 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1394 | power-domains = <&sysc R8A7795_PD_A3VP>; |
@@ -1400,7 +1405,7 @@ | |||
1400 | }; | 1405 | }; |
1401 | 1406 | ||
1402 | fcpvi2: fcp@fe9cf000 { | 1407 | fcpvi2: fcp@fe9cf000 { |
1403 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1408 | compatible = "renesas,fcpv"; |
1404 | reg = <0 0xfe9cf000 0 0x200>; | 1409 | reg = <0 0xfe9cf000 0 0x200>; |
1405 | clocks = <&cpg CPG_MOD 609>; | 1410 | clocks = <&cpg CPG_MOD 609>; |
1406 | power-domains = <&sysc R8A7795_PD_A3VP>; | 1411 | power-domains = <&sysc R8A7795_PD_A3VP>; |
@@ -1417,7 +1422,7 @@ | |||
1417 | }; | 1422 | }; |
1418 | 1423 | ||
1419 | fcpvd0: fcp@fea27000 { | 1424 | fcpvd0: fcp@fea27000 { |
1420 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1425 | compatible = "renesas,fcpv"; |
1421 | reg = <0 0xfea27000 0 0x200>; | 1426 | reg = <0 0xfea27000 0 0x200>; |
1422 | clocks = <&cpg CPG_MOD 603>; | 1427 | clocks = <&cpg CPG_MOD 603>; |
1423 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1428 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
@@ -1434,7 +1439,7 @@ | |||
1434 | }; | 1439 | }; |
1435 | 1440 | ||
1436 | fcpvd1: fcp@fea2f000 { | 1441 | fcpvd1: fcp@fea2f000 { |
1437 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1442 | compatible = "renesas,fcpv"; |
1438 | reg = <0 0xfea2f000 0 0x200>; | 1443 | reg = <0 0xfea2f000 0 0x200>; |
1439 | clocks = <&cpg CPG_MOD 602>; | 1444 | clocks = <&cpg CPG_MOD 602>; |
1440 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1445 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
@@ -1451,7 +1456,7 @@ | |||
1451 | }; | 1456 | }; |
1452 | 1457 | ||
1453 | fcpvd2: fcp@fea37000 { | 1458 | fcpvd2: fcp@fea37000 { |
1454 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1459 | compatible = "renesas,fcpv"; |
1455 | reg = <0 0xfea37000 0 0x200>; | 1460 | reg = <0 0xfea37000 0 0x200>; |
1456 | clocks = <&cpg CPG_MOD 601>; | 1461 | clocks = <&cpg CPG_MOD 601>; |
1457 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1462 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
@@ -1468,7 +1473,7 @@ | |||
1468 | }; | 1473 | }; |
1469 | 1474 | ||
1470 | fcpvd3: fcp@fea3f000 { | 1475 | fcpvd3: fcp@fea3f000 { |
1471 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; | 1476 | compatible = "renesas,fcpv"; |
1472 | reg = <0 0xfea3f000 0 0x200>; | 1477 | reg = <0 0xfea3f000 0 0x200>; |
1473 | clocks = <&cpg CPG_MOD 600>; | 1478 | clocks = <&cpg CPG_MOD 600>; |
1474 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; | 1479 | power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; |
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts new file mode 100644 index 000000000000..c3f064ac2cb4 --- /dev/null +++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts | |||
@@ -0,0 +1,189 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the M3ULCB (R-Car Starter Kit Pro) board | ||
3 | * | ||
4 | * Copyright (C) 2016 Renesas Electronics Corp. | ||
5 | * Copyright (C) 2016 Cogent Embedded, Inc. | ||
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 "r8a7796.dtsi" | ||
14 | #include <dt-bindings/gpio/gpio.h> | ||
15 | #include <dt-bindings/input/input.h> | ||
16 | |||
17 | / { | ||
18 | model = "Renesas M3ULCB board based on r8a7796"; | ||
19 | compatible = "renesas,m3ulcb", "renesas,r8a7796"; | ||
20 | |||
21 | aliases { | ||
22 | serial0 = &scif2; | ||
23 | }; | ||
24 | |||
25 | chosen { | ||
26 | stdout-path = "serial0:115200n8"; | ||
27 | }; | ||
28 | |||
29 | memory@48000000 { | ||
30 | device_type = "memory"; | ||
31 | /* first 128MB is reserved for secure area. */ | ||
32 | reg = <0x0 0x48000000 0x0 0x38000000>; | ||
33 | }; | ||
34 | |||
35 | leds { | ||
36 | compatible = "gpio-leds"; | ||
37 | |||
38 | led5 { | ||
39 | gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; | ||
40 | }; | ||
41 | led6 { | ||
42 | gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; | ||
43 | }; | ||
44 | }; | ||
45 | |||
46 | keyboard { | ||
47 | compatible = "gpio-keys"; | ||
48 | |||
49 | key-1 { | ||
50 | linux,code = <KEY_1>; | ||
51 | label = "SW3"; | ||
52 | wakeup-source; | ||
53 | debounce-interval = <20>; | ||
54 | gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; | ||
55 | }; | ||
56 | }; | ||
57 | |||
58 | reg_1p8v: regulator0 { | ||
59 | compatible = "regulator-fixed"; | ||
60 | regulator-name = "fixed-1.8V"; | ||
61 | regulator-min-microvolt = <1800000>; | ||
62 | regulator-max-microvolt = <1800000>; | ||
63 | regulator-boot-on; | ||
64 | regulator-always-on; | ||
65 | }; | ||
66 | |||
67 | reg_3p3v: regulator1 { | ||
68 | compatible = "regulator-fixed"; | ||
69 | regulator-name = "fixed-3.3V"; | ||
70 | regulator-min-microvolt = <3300000>; | ||
71 | regulator-max-microvolt = <3300000>; | ||
72 | regulator-boot-on; | ||
73 | regulator-always-on; | ||
74 | }; | ||
75 | |||
76 | vcc_sdhi0: regulator-vcc-sdhi0 { | ||
77 | compatible = "regulator-fixed"; | ||
78 | |||
79 | regulator-name = "SDHI0 Vcc"; | ||
80 | regulator-min-microvolt = <3300000>; | ||
81 | regulator-max-microvolt = <3300000>; | ||
82 | |||
83 | gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; | ||
84 | enable-active-high; | ||
85 | }; | ||
86 | |||
87 | vccq_sdhi0: regulator-vccq-sdhi0 { | ||
88 | compatible = "regulator-gpio"; | ||
89 | |||
90 | regulator-name = "SDHI0 VccQ"; | ||
91 | regulator-min-microvolt = <1800000>; | ||
92 | regulator-max-microvolt = <3300000>; | ||
93 | |||
94 | gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; | ||
95 | gpios-states = <1>; | ||
96 | states = <3300000 1 | ||
97 | 1800000 0>; | ||
98 | }; | ||
99 | }; | ||
100 | |||
101 | &extal_clk { | ||
102 | clock-frequency = <16666666>; | ||
103 | }; | ||
104 | |||
105 | &extalr_clk { | ||
106 | clock-frequency = <32768>; | ||
107 | }; | ||
108 | |||
109 | &pfc { | ||
110 | pinctrl-0 = <&scif_clk_pins>; | ||
111 | pinctrl-names = "default"; | ||
112 | |||
113 | scif2_pins: scif2 { | ||
114 | groups = "scif2_data_a"; | ||
115 | function = "scif2"; | ||
116 | }; | ||
117 | |||
118 | scif_clk_pins: scif_clk { | ||
119 | groups = "scif_clk_a"; | ||
120 | function = "scif_clk"; | ||
121 | }; | ||
122 | |||
123 | sdhi0_pins: sd0 { | ||
124 | groups = "sdhi0_data4", "sdhi0_ctrl"; | ||
125 | function = "sdhi0"; | ||
126 | power-source = <3300>; | ||
127 | }; | ||
128 | |||
129 | sdhi0_pins_uhs: sd0_uhs { | ||
130 | groups = "sdhi0_data4", "sdhi0_ctrl"; | ||
131 | function = "sdhi0"; | ||
132 | power-source = <1800>; | ||
133 | }; | ||
134 | |||
135 | sdhi2_pins: sd2 { | ||
136 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
137 | function = "sdhi2"; | ||
138 | power-source = <3300>; | ||
139 | }; | ||
140 | |||
141 | sdhi2_pins_uhs: sd2_uhs { | ||
142 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
143 | function = "sdhi2"; | ||
144 | power-source = <1800>; | ||
145 | }; | ||
146 | }; | ||
147 | |||
148 | &sdhi0 { | ||
149 | pinctrl-0 = <&sdhi0_pins>; | ||
150 | pinctrl-1 = <&sdhi0_pins_uhs>; | ||
151 | pinctrl-names = "default", "state_uhs"; | ||
152 | |||
153 | vmmc-supply = <&vcc_sdhi0>; | ||
154 | vqmmc-supply = <&vccq_sdhi0>; | ||
155 | cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; | ||
156 | bus-width = <4>; | ||
157 | sd-uhs-sdr50; | ||
158 | status = "okay"; | ||
159 | }; | ||
160 | |||
161 | &sdhi2 { | ||
162 | /* used for on-board 8bit eMMC */ | ||
163 | pinctrl-0 = <&sdhi2_pins>; | ||
164 | pinctrl-1 = <&sdhi2_pins_uhs>; | ||
165 | pinctrl-names = "default", "state_uhs"; | ||
166 | |||
167 | vmmc-supply = <®_3p3v>; | ||
168 | vqmmc-supply = <®_1p8v>; | ||
169 | bus-width = <8>; | ||
170 | non-removable; | ||
171 | status = "okay"; | ||
172 | }; | ||
173 | |||
174 | &scif2 { | ||
175 | pinctrl-0 = <&scif2_pins>; | ||
176 | pinctrl-names = "default"; | ||
177 | |||
178 | status = "okay"; | ||
179 | }; | ||
180 | |||
181 | &scif_clk { | ||
182 | clock-frequency = <14745600>; | ||
183 | status = "okay"; | ||
184 | }; | ||
185 | |||
186 | &wdt0 { | ||
187 | timeout-sec = <60>; | ||
188 | status = "okay"; | ||
189 | }; | ||
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts index 13db7d61c26c..f35e96ca7d60 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | /dts-v1/; | 11 | /dts-v1/; |
12 | #include "r8a7796.dtsi" | 12 | #include "r8a7796.dtsi" |
13 | #include <dt-bindings/gpio/gpio.h> | ||
13 | 14 | ||
14 | / { | 15 | / { |
15 | model = "Renesas Salvator-X board based on r8a7796"; | 16 | model = "Renesas Salvator-X board based on r8a7796"; |
@@ -29,6 +30,72 @@ | |||
29 | /* first 128MB is reserved for secure area. */ | 30 | /* first 128MB is reserved for secure area. */ |
30 | reg = <0x0 0x48000000 0x0 0x78000000>; | 31 | reg = <0x0 0x48000000 0x0 0x78000000>; |
31 | }; | 32 | }; |
33 | |||
34 | reg_1p8v: regulator0 { | ||
35 | compatible = "regulator-fixed"; | ||
36 | regulator-name = "fixed-1.8V"; | ||
37 | regulator-min-microvolt = <1800000>; | ||
38 | regulator-max-microvolt = <1800000>; | ||
39 | regulator-boot-on; | ||
40 | regulator-always-on; | ||
41 | }; | ||
42 | |||
43 | reg_3p3v: regulator1 { | ||
44 | compatible = "regulator-fixed"; | ||
45 | regulator-name = "fixed-3.3V"; | ||
46 | regulator-min-microvolt = <3300000>; | ||
47 | regulator-max-microvolt = <3300000>; | ||
48 | regulator-boot-on; | ||
49 | regulator-always-on; | ||
50 | }; | ||
51 | |||
52 | vcc_sdhi0: regulator-vcc-sdhi0 { | ||
53 | compatible = "regulator-fixed"; | ||
54 | |||
55 | regulator-name = "SDHI0 Vcc"; | ||
56 | regulator-min-microvolt = <3300000>; | ||
57 | regulator-max-microvolt = <3300000>; | ||
58 | |||
59 | gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; | ||
60 | enable-active-high; | ||
61 | }; | ||
62 | |||
63 | vccq_sdhi0: regulator-vccq-sdhi0 { | ||
64 | compatible = "regulator-gpio"; | ||
65 | |||
66 | regulator-name = "SDHI0 VccQ"; | ||
67 | regulator-min-microvolt = <1800000>; | ||
68 | regulator-max-microvolt = <3300000>; | ||
69 | |||
70 | gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; | ||
71 | gpios-states = <1>; | ||
72 | states = <3300000 1 | ||
73 | 1800000 0>; | ||
74 | }; | ||
75 | |||
76 | vcc_sdhi3: regulator-vcc-sdhi3 { | ||
77 | compatible = "regulator-fixed"; | ||
78 | |||
79 | regulator-name = "SDHI3 Vcc"; | ||
80 | regulator-min-microvolt = <3300000>; | ||
81 | regulator-max-microvolt = <3300000>; | ||
82 | |||
83 | gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; | ||
84 | enable-active-high; | ||
85 | }; | ||
86 | |||
87 | vccq_sdhi3: regulator-vccq-sdhi3 { | ||
88 | compatible = "regulator-gpio"; | ||
89 | |||
90 | regulator-name = "SDHI3 VccQ"; | ||
91 | regulator-min-microvolt = <1800000>; | ||
92 | regulator-max-microvolt = <3300000>; | ||
93 | |||
94 | gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; | ||
95 | gpios-states = <1>; | ||
96 | states = <3300000 1 | ||
97 | 1800000 0>; | ||
98 | }; | ||
32 | }; | 99 | }; |
33 | 100 | ||
34 | &pfc { | 101 | &pfc { |
@@ -43,12 +110,98 @@ | |||
43 | groups = "scif_clk_a"; | 110 | groups = "scif_clk_a"; |
44 | function = "scif_clk"; | 111 | function = "scif_clk"; |
45 | }; | 112 | }; |
113 | |||
114 | i2c2_pins: i2c2 { | ||
115 | groups = "i2c2_a"; | ||
116 | function = "i2c2"; | ||
117 | }; | ||
118 | |||
119 | sdhi0_pins: sd0 { | ||
120 | groups = "sdhi0_data4", "sdhi0_ctrl"; | ||
121 | function = "sdhi0"; | ||
122 | power-source = <3300>; | ||
123 | }; | ||
124 | |||
125 | sdhi0_pins_uhs: sd0_uhs { | ||
126 | groups = "sdhi0_data4", "sdhi0_ctrl"; | ||
127 | function = "sdhi0"; | ||
128 | power-source = <1800>; | ||
129 | }; | ||
130 | |||
131 | sdhi2_pins: sd2 { | ||
132 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
133 | function = "sdhi2"; | ||
134 | power-source = <3300>; | ||
135 | }; | ||
136 | |||
137 | sdhi2_pins_uhs: sd2_uhs { | ||
138 | groups = "sdhi2_data8", "sdhi2_ctrl"; | ||
139 | function = "sdhi2"; | ||
140 | power-source = <1800>; | ||
141 | }; | ||
142 | |||
143 | sdhi3_pins: sd3 { | ||
144 | groups = "sdhi3_data4", "sdhi3_ctrl"; | ||
145 | function = "sdhi3"; | ||
146 | power-source = <3300>; | ||
147 | }; | ||
148 | |||
149 | sdhi3_pins_uhs: sd3_uhs { | ||
150 | groups = "sdhi3_data4", "sdhi3_ctrl"; | ||
151 | function = "sdhi3"; | ||
152 | power-source = <1800>; | ||
153 | }; | ||
46 | }; | 154 | }; |
47 | 155 | ||
48 | &extal_clk { | 156 | &extal_clk { |
49 | clock-frequency = <16666666>; | 157 | clock-frequency = <16666666>; |
50 | }; | 158 | }; |
51 | 159 | ||
160 | &extalr_clk { | ||
161 | clock-frequency = <32768>; | ||
162 | }; | ||
163 | |||
164 | &sdhi0 { | ||
165 | pinctrl-0 = <&sdhi0_pins>; | ||
166 | pinctrl-1 = <&sdhi0_pins_uhs>; | ||
167 | pinctrl-names = "default", "state_uhs"; | ||
168 | |||
169 | vmmc-supply = <&vcc_sdhi0>; | ||
170 | vqmmc-supply = <&vccq_sdhi0>; | ||
171 | cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; | ||
172 | wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; | ||
173 | bus-width = <4>; | ||
174 | sd-uhs-sdr50; | ||
175 | status = "okay"; | ||
176 | }; | ||
177 | |||
178 | &sdhi2 { | ||
179 | /* used for on-board 8bit eMMC */ | ||
180 | pinctrl-0 = <&sdhi2_pins>; | ||
181 | pinctrl-1 = <&sdhi2_pins_uhs>; | ||
182 | pinctrl-names = "default", "state_uhs"; | ||
183 | |||
184 | vmmc-supply = <®_3p3v>; | ||
185 | vqmmc-supply = <®_1p8v>; | ||
186 | bus-width = <8>; | ||
187 | non-removable; | ||
188 | status = "okay"; | ||
189 | }; | ||
190 | |||
191 | &sdhi3 { | ||
192 | pinctrl-0 = <&sdhi3_pins>; | ||
193 | pinctrl-1 = <&sdhi3_pins_uhs>; | ||
194 | pinctrl-names = "default", "state_uhs"; | ||
195 | |||
196 | vmmc-supply = <&vcc_sdhi3>; | ||
197 | vqmmc-supply = <&vccq_sdhi3>; | ||
198 | cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; | ||
199 | wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; | ||
200 | bus-width = <4>; | ||
201 | sd-uhs-sdr50; | ||
202 | status = "okay"; | ||
203 | }; | ||
204 | |||
52 | &scif2 { | 205 | &scif2 { |
53 | pinctrl-0 = <&scif2_pins>; | 206 | pinctrl-0 = <&scif2_pins>; |
54 | pinctrl-names = "default"; | 207 | pinctrl-names = "default"; |
@@ -60,6 +213,13 @@ | |||
60 | status = "okay"; | 213 | status = "okay"; |
61 | }; | 214 | }; |
62 | 215 | ||
216 | &i2c2 { | ||
217 | pinctrl-0 = <&i2c2_pins>; | ||
218 | pinctrl-names = "default"; | ||
219 | |||
220 | status = "okay"; | ||
221 | }; | ||
222 | |||
63 | &wdt0 { | 223 | &wdt0 { |
64 | timeout-sec = <60>; | 224 | timeout-sec = <60>; |
65 | status = "okay"; | 225 | status = "okay"; |
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi index 75c8c55a8248..28ba59a00cd8 100644 --- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi +++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi | |||
@@ -17,6 +17,16 @@ | |||
17 | #address-cells = <2>; | 17 | #address-cells = <2>; |
18 | #size-cells = <2>; | 18 | #size-cells = <2>; |
19 | 19 | ||
20 | aliases { | ||
21 | i2c0 = &i2c0; | ||
22 | i2c1 = &i2c1; | ||
23 | i2c2 = &i2c2; | ||
24 | i2c3 = &i2c3; | ||
25 | i2c4 = &i2c4; | ||
26 | i2c5 = &i2c5; | ||
27 | i2c6 = &i2c6; | ||
28 | }; | ||
29 | |||
20 | psci { | 30 | psci { |
21 | compatible = "arm,psci-0.2"; | 31 | compatible = "arm,psci-0.2"; |
22 | method = "smc"; | 32 | method = "smc"; |
@@ -238,12 +248,118 @@ | |||
238 | reg = <0 0xe6160000 0 0x0200>; | 248 | reg = <0 0xe6160000 0 0x0200>; |
239 | }; | 249 | }; |
240 | 250 | ||
251 | prr: chipid@fff00044 { | ||
252 | compatible = "renesas,prr"; | ||
253 | reg = <0 0xfff00044 0 4>; | ||
254 | }; | ||
255 | |||
241 | sysc: system-controller@e6180000 { | 256 | sysc: system-controller@e6180000 { |
242 | compatible = "renesas,r8a7796-sysc"; | 257 | compatible = "renesas,r8a7796-sysc"; |
243 | reg = <0 0xe6180000 0 0x0400>; | 258 | reg = <0 0xe6180000 0 0x0400>; |
244 | #power-domain-cells = <1>; | 259 | #power-domain-cells = <1>; |
245 | }; | 260 | }; |
246 | 261 | ||
262 | i2c0: i2c@e6500000 { | ||
263 | #address-cells = <1>; | ||
264 | #size-cells = <0>; | ||
265 | compatible = "renesas,i2c-r8a7796"; | ||
266 | reg = <0 0xe6500000 0 0x40>; | ||
267 | interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
268 | clocks = <&cpg CPG_MOD 931>; | ||
269 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
270 | dmas = <&dmac1 0x91>, <&dmac1 0x90>, | ||
271 | <&dmac2 0x91>, <&dmac2 0x90>; | ||
272 | dma-names = "tx", "rx", "tx", "rx"; | ||
273 | i2c-scl-internal-delay-ns = <110>; | ||
274 | status = "disabled"; | ||
275 | }; | ||
276 | |||
277 | i2c1: i2c@e6508000 { | ||
278 | #address-cells = <1>; | ||
279 | #size-cells = <0>; | ||
280 | compatible = "renesas,i2c-r8a7796"; | ||
281 | reg = <0 0xe6508000 0 0x40>; | ||
282 | interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>; | ||
283 | clocks = <&cpg CPG_MOD 930>; | ||
284 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
285 | dmas = <&dmac1 0x93>, <&dmac1 0x92>, | ||
286 | <&dmac2 0x93>, <&dmac2 0x92>; | ||
287 | dma-names = "tx", "rx", "tx", "rx"; | ||
288 | i2c-scl-internal-delay-ns = <6>; | ||
289 | status = "disabled"; | ||
290 | }; | ||
291 | |||
292 | i2c2: i2c@e6510000 { | ||
293 | #address-cells = <1>; | ||
294 | #size-cells = <0>; | ||
295 | compatible = "renesas,i2c-r8a7796"; | ||
296 | reg = <0 0xe6510000 0 0x40>; | ||
297 | interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; | ||
298 | clocks = <&cpg CPG_MOD 929>; | ||
299 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
300 | dmas = <&dmac1 0x95>, <&dmac1 0x94>, | ||
301 | <&dmac2 0x95>, <&dmac2 0x94>; | ||
302 | dma-names = "tx", "rx", "tx", "rx"; | ||
303 | i2c-scl-internal-delay-ns = <6>; | ||
304 | status = "disabled"; | ||
305 | }; | ||
306 | |||
307 | i2c3: i2c@e66d0000 { | ||
308 | #address-cells = <1>; | ||
309 | #size-cells = <0>; | ||
310 | compatible = "renesas,i2c-r8a7796"; | ||
311 | reg = <0 0xe66d0000 0 0x40>; | ||
312 | interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>; | ||
313 | clocks = <&cpg CPG_MOD 928>; | ||
314 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
315 | dmas = <&dmac0 0x97>, <&dmac0 0x96>; | ||
316 | dma-names = "tx", "rx"; | ||
317 | i2c-scl-internal-delay-ns = <110>; | ||
318 | status = "disabled"; | ||
319 | }; | ||
320 | |||
321 | i2c4: i2c@e66d8000 { | ||
322 | #address-cells = <1>; | ||
323 | #size-cells = <0>; | ||
324 | compatible = "renesas,i2c-r8a7796"; | ||
325 | reg = <0 0xe66d8000 0 0x40>; | ||
326 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | ||
327 | clocks = <&cpg CPG_MOD 927>; | ||
328 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
329 | dmas = <&dmac0 0x99>, <&dmac0 0x98>; | ||
330 | dma-names = "tx", "rx"; | ||
331 | i2c-scl-internal-delay-ns = <110>; | ||
332 | status = "disabled"; | ||
333 | }; | ||
334 | |||
335 | i2c5: i2c@e66e0000 { | ||
336 | #address-cells = <1>; | ||
337 | #size-cells = <0>; | ||
338 | compatible = "renesas,i2c-r8a7796"; | ||
339 | reg = <0 0xe66e0000 0 0x40>; | ||
340 | interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | ||
341 | clocks = <&cpg CPG_MOD 919>; | ||
342 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
343 | dmas = <&dmac0 0x9b>, <&dmac0 0x9a>; | ||
344 | dma-names = "tx", "rx"; | ||
345 | i2c-scl-internal-delay-ns = <110>; | ||
346 | status = "disabled"; | ||
347 | }; | ||
348 | |||
349 | i2c6: i2c@e66e8000 { | ||
350 | #address-cells = <1>; | ||
351 | #size-cells = <0>; | ||
352 | compatible = "renesas,i2c-r8a7796"; | ||
353 | reg = <0 0xe66e8000 0 0x40>; | ||
354 | interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; | ||
355 | clocks = <&cpg CPG_MOD 918>; | ||
356 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
357 | dmas = <&dmac0 0x9d>, <&dmac0 0x9c>; | ||
358 | dma-names = "tx", "rx"; | ||
359 | i2c-scl-internal-delay-ns = <6>; | ||
360 | status = "disabled"; | ||
361 | }; | ||
362 | |||
247 | scif2: serial@e6e88000 { | 363 | scif2: serial@e6e88000 { |
248 | compatible = "renesas,scif-r8a7796", | 364 | compatible = "renesas,scif-r8a7796", |
249 | "renesas,rcar-gen3-scif", "renesas,scif"; | 365 | "renesas,rcar-gen3-scif", "renesas,scif"; |
@@ -256,5 +372,144 @@ | |||
256 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | 372 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; |
257 | status = "disabled"; | 373 | status = "disabled"; |
258 | }; | 374 | }; |
375 | |||
376 | dmac0: dma-controller@e6700000 { | ||
377 | compatible = "renesas,dmac-r8a7796", | ||
378 | "renesas,rcar-dmac"; | ||
379 | reg = <0 0xe6700000 0 0x10000>; | ||
380 | interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH | ||
381 | GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH | ||
382 | GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH | ||
383 | GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH | ||
384 | GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH | ||
385 | GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH | ||
386 | GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH | ||
387 | GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH | ||
388 | GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH | ||
389 | GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH | ||
390 | GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH | ||
391 | GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH | ||
392 | GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH | ||
393 | GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH | ||
394 | GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH | ||
395 | GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH | ||
396 | GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>; | ||
397 | interrupt-names = "error", | ||
398 | "ch0", "ch1", "ch2", "ch3", | ||
399 | "ch4", "ch5", "ch6", "ch7", | ||
400 | "ch8", "ch9", "ch10", "ch11", | ||
401 | "ch12", "ch13", "ch14", "ch15"; | ||
402 | clocks = <&cpg CPG_MOD 219>; | ||
403 | clock-names = "fck"; | ||
404 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
405 | #dma-cells = <1>; | ||
406 | dma-channels = <16>; | ||
407 | }; | ||
408 | |||
409 | dmac1: dma-controller@e7300000 { | ||
410 | compatible = "renesas,dmac-r8a7796", | ||
411 | "renesas,rcar-dmac"; | ||
412 | reg = <0 0xe7300000 0 0x10000>; | ||
413 | interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH | ||
414 | GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH | ||
415 | GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH | ||
416 | GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH | ||
417 | GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH | ||
418 | GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH | ||
419 | GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH | ||
420 | GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH | ||
421 | GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH | ||
422 | GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH | ||
423 | GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH | ||
424 | GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH | ||
425 | GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH | ||
426 | GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH | ||
427 | GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH | ||
428 | GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH | ||
429 | GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>; | ||
430 | interrupt-names = "error", | ||
431 | "ch0", "ch1", "ch2", "ch3", | ||
432 | "ch4", "ch5", "ch6", "ch7", | ||
433 | "ch8", "ch9", "ch10", "ch11", | ||
434 | "ch12", "ch13", "ch14", "ch15"; | ||
435 | clocks = <&cpg CPG_MOD 218>; | ||
436 | clock-names = "fck"; | ||
437 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
438 | #dma-cells = <1>; | ||
439 | dma-channels = <16>; | ||
440 | }; | ||
441 | |||
442 | dmac2: dma-controller@e7310000 { | ||
443 | compatible = "renesas,dmac-r8a7796", | ||
444 | "renesas,rcar-dmac"; | ||
445 | reg = <0 0xe7310000 0 0x10000>; | ||
446 | interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH | ||
447 | GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH | ||
448 | GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH | ||
449 | GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH | ||
450 | GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH | ||
451 | GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH | ||
452 | GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH | ||
453 | GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH | ||
454 | GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH | ||
455 | GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH | ||
456 | GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH | ||
457 | GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH | ||
458 | GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH | ||
459 | GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH | ||
460 | GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH | ||
461 | GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH | ||
462 | GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>; | ||
463 | interrupt-names = "error", | ||
464 | "ch0", "ch1", "ch2", "ch3", | ||
465 | "ch4", "ch5", "ch6", "ch7", | ||
466 | "ch8", "ch9", "ch10", "ch11", | ||
467 | "ch12", "ch13", "ch14", "ch15"; | ||
468 | clocks = <&cpg CPG_MOD 217>; | ||
469 | clock-names = "fck"; | ||
470 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
471 | #dma-cells = <1>; | ||
472 | dma-channels = <16>; | ||
473 | }; | ||
474 | |||
475 | sdhi0: sd@ee100000 { | ||
476 | compatible = "renesas,sdhi-r8a7796"; | ||
477 | reg = <0 0xee100000 0 0x2000>; | ||
478 | interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; | ||
479 | clocks = <&cpg CPG_MOD 314>; | ||
480 | max-frequency = <200000000>; | ||
481 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
482 | status = "disabled"; | ||
483 | }; | ||
484 | |||
485 | sdhi1: sd@ee120000 { | ||
486 | compatible = "renesas,sdhi-r8a7796"; | ||
487 | reg = <0 0xee120000 0 0x2000>; | ||
488 | interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; | ||
489 | clocks = <&cpg CPG_MOD 313>; | ||
490 | max-frequency = <200000000>; | ||
491 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
492 | status = "disabled"; | ||
493 | }; | ||
494 | |||
495 | sdhi2: sd@ee140000 { | ||
496 | compatible = "renesas,sdhi-r8a7796"; | ||
497 | reg = <0 0xee140000 0 0x2000>; | ||
498 | interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; | ||
499 | clocks = <&cpg CPG_MOD 312>; | ||
500 | max-frequency = <200000000>; | ||
501 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
502 | status = "disabled"; | ||
503 | }; | ||
504 | |||
505 | sdhi3: sd@ee160000 { | ||
506 | compatible = "renesas,sdhi-r8a7796"; | ||
507 | reg = <0 0xee160000 0 0x2000>; | ||
508 | interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; | ||
509 | clocks = <&cpg CPG_MOD 311>; | ||
510 | max-frequency = <200000000>; | ||
511 | power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; | ||
512 | status = "disabled"; | ||
513 | }; | ||
259 | }; | 514 | }; |
260 | }; | 515 | }; |
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 87669f656454..3a862894ea44 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile | |||
@@ -1,6 +1,7 @@ | |||
1 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb | 1 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb |
2 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb | 2 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb |
3 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb | 3 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb |
4 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb | ||
4 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb | 5 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb |
5 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb | 6 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb |
6 | 7 | ||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts index ea0a8eceefd4..ff5a40399d02 100644 --- a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts +++ b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts | |||
@@ -344,7 +344,7 @@ | |||
344 | &sdmmc { | 344 | &sdmmc { |
345 | bus-width = <4>; | 345 | bus-width = <4>; |
346 | clock-frequency = <50000000>; | 346 | clock-frequency = <50000000>; |
347 | clock-freq-min-max = <400000 50000000>; | 347 | max-frequency = <50000000>; |
348 | cap-sd-highspeed; | 348 | cap-sd-highspeed; |
349 | card-detect-delay = <200>; | 349 | card-detect-delay = <200>; |
350 | num-slots = <1>; | 350 | num-slots = <1>; |
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts new file mode 100644 index 000000000000..85f7a243d744 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts | |||
@@ -0,0 +1,314 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd | ||
3 | * | ||
4 | * This file is dual-licensed: you can use it either under the terms | ||
5 | * of the GPL or the X11 license, at your option. Note that this dual | ||
6 | * licensing only applies to this file, and not this project as a | ||
7 | * whole. | ||
8 | * | ||
9 | * a) This file is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License as | ||
11 | * published by the Free Software Foundation; either version 2 of the | ||
12 | * License, or (at your option) any later version. | ||
13 | * | ||
14 | * This file is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * Or, alternatively, | ||
20 | * | ||
21 | * b) Permission is hereby granted, free of charge, to any person | ||
22 | * obtaining a copy of this software and associated documentation | ||
23 | * files (the "Software"), to deal in the Software without | ||
24 | * restriction, including without limitation the rights to use, | ||
25 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
26 | * sell copies of the Software, and to permit persons to whom the | ||
27 | * Software is furnished to do so, subject to the following | ||
28 | * conditions: | ||
29 | * | ||
30 | * The above copyright notice and this permission notice shall be | ||
31 | * included in all copies or substantial portions of the Software. | ||
32 | * | ||
33 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
34 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
35 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
36 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
37 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
38 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
39 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
40 | * OTHER DEALINGS IN THE SOFTWARE. | ||
41 | */ | ||
42 | |||
43 | /dts-v1/; | ||
44 | #include "rk3368.dtsi" | ||
45 | #include <dt-bindings/input/input.h> | ||
46 | |||
47 | / { | ||
48 | model = "Rockchip PX5 EVB"; | ||
49 | compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368"; | ||
50 | |||
51 | chosen { | ||
52 | stdout-path = "serial4:115200n8"; | ||
53 | }; | ||
54 | |||
55 | memory@0 { | ||
56 | reg = <0x0 0x0 0x0 0x80000000>; | ||
57 | device_type = "memory"; | ||
58 | }; | ||
59 | |||
60 | keys: gpio-keys { | ||
61 | compatible = "gpio-keys"; | ||
62 | pinctrl-names = "default"; | ||
63 | pinctrl-0 = <&pwr_key>; | ||
64 | |||
65 | power { | ||
66 | gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; | ||
67 | label = "GPIO Power"; | ||
68 | linux,code = <KEY_POWER>; | ||
69 | wakeup-source; | ||
70 | }; | ||
71 | }; | ||
72 | |||
73 | vcc_sys: vcc-sys-regulator { | ||
74 | compatible = "regulator-fixed"; | ||
75 | regulator-name = "vcc_sys"; | ||
76 | regulator-min-microvolt = <5000000>; | ||
77 | regulator-max-microvolt = <5000000>; | ||
78 | regulator-always-on; | ||
79 | regulator-boot-on; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | &emmc { | ||
84 | status = "okay"; | ||
85 | bus-width = <8>; | ||
86 | cap-mmc-highspeed; | ||
87 | clock-frequency = <150000000>; | ||
88 | disable-wp; | ||
89 | keep-power-in-suspend; | ||
90 | mmc-hs200-1_8v; | ||
91 | no-sdio; | ||
92 | no-sd; | ||
93 | non-removable; | ||
94 | num-slots = <1>; | ||
95 | pinctrl-names = "default"; | ||
96 | pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; | ||
97 | vmmc-supply = <&vcc_io>; | ||
98 | vqmmc-supply = <&vcc18_flash>; | ||
99 | }; | ||
100 | |||
101 | &i2c0 { | ||
102 | status = "okay"; | ||
103 | |||
104 | rk808: pmic@1b { | ||
105 | compatible = "rockchip,rk808"; | ||
106 | reg = <0x1b>; | ||
107 | interrupt-parent = <&gpio0>; | ||
108 | interrupts = <5 IRQ_TYPE_LEVEL_LOW>; | ||
109 | pinctrl-names = "default"; | ||
110 | pinctrl-0 = <&pmic_int>, <&pmic_sleep>; | ||
111 | rockchip,system-power-controller; | ||
112 | vcc1-supply = <&vcc_sys>; | ||
113 | vcc2-supply = <&vcc_sys>; | ||
114 | vcc3-supply = <&vcc_sys>; | ||
115 | vcc4-supply = <&vcc_sys>; | ||
116 | vcc6-supply = <&vcc_sys>; | ||
117 | vcc7-supply = <&vcc_sys>; | ||
118 | vcc8-supply = <&vcc_io>; | ||
119 | vcc9-supply = <&vcc_sys>; | ||
120 | vcc10-supply = <&vcc_sys>; | ||
121 | vcc11-supply = <&vcc_sys>; | ||
122 | vcc12-supply = <&vcc_io>; | ||
123 | clock-output-names = "xin32k", "rk808-clkout2"; | ||
124 | #clock-cells = <1>; | ||
125 | |||
126 | regulators { | ||
127 | vdd_cpu: DCDC_REG1 { | ||
128 | regulator-always-on; | ||
129 | regulator-boot-on; | ||
130 | regulator-min-microvolt = <700000>; | ||
131 | regulator-max-microvolt = <1500000>; | ||
132 | regulator-name = "vdd_cpu"; | ||
133 | }; | ||
134 | |||
135 | vdd_log: DCDC_REG2 { | ||
136 | regulator-always-on; | ||
137 | regulator-boot-on; | ||
138 | regulator-min-microvolt = <700000>; | ||
139 | regulator-max-microvolt = <1500000>; | ||
140 | regulator-name = "vdd_log"; | ||
141 | }; | ||
142 | |||
143 | vcc_ddr: DCDC_REG3 { | ||
144 | regulator-always-on; | ||
145 | regulator-boot-on; | ||
146 | regulator-name = "vcc_ddr"; | ||
147 | }; | ||
148 | |||
149 | vcc_io: DCDC_REG4 { | ||
150 | regulator-always-on; | ||
151 | regulator-boot-on; | ||
152 | regulator-min-microvolt = <3300000>; | ||
153 | regulator-max-microvolt = <3300000>; | ||
154 | regulator-name = "vcc_io"; | ||
155 | }; | ||
156 | |||
157 | vcc18_flash: LDO_REG1 { | ||
158 | regulator-always-on; | ||
159 | regulator-boot-on; | ||
160 | regulator-min-microvolt = <1800000>; | ||
161 | regulator-max-microvolt = <1800000>; | ||
162 | regulator-name = "vcc18_flash"; | ||
163 | }; | ||
164 | |||
165 | vcca_33: LDO_REG2 { | ||
166 | regulator-always-on; | ||
167 | regulator-boot-on; | ||
168 | regulator-min-microvolt = <3300000>; | ||
169 | regulator-max-microvolt = <3300000>; | ||
170 | regulator-name = "vcca_33"; | ||
171 | }; | ||
172 | |||
173 | vdd_10: LDO_REG3 { | ||
174 | regulator-always-on; | ||
175 | regulator-boot-on; | ||
176 | regulator-min-microvolt = <1000000>; | ||
177 | regulator-max-microvolt = <1000000>; | ||
178 | regulator-name = "vdd_10"; | ||
179 | }; | ||
180 | |||
181 | avdd_33: LDO_REG4 { | ||
182 | regulator-min-microvolt = <3300000>; | ||
183 | regulator-max-microvolt = <3300000>; | ||
184 | regulator-name = "avdd_33"; | ||
185 | }; | ||
186 | |||
187 | vccio_sd: LDO_REG5 { | ||
188 | regulator-always-on; | ||
189 | regulator-boot-on; | ||
190 | regulator-min-microvolt = <1800000>; | ||
191 | regulator-max-microvolt = <3300000>; | ||
192 | regulator-name = "vccio_sd"; | ||
193 | }; | ||
194 | |||
195 | vdd10_lcd: LDO_REG6 { | ||
196 | regulator-always-on; | ||
197 | regulator-boot-on; | ||
198 | regulator-min-microvolt = <1000000>; | ||
199 | regulator-max-microvolt = <1000000>; | ||
200 | regulator-name = "vdd10_lcd"; | ||
201 | }; | ||
202 | |||
203 | vcc_18: LDO_REG7 { | ||
204 | regulator-always-on; | ||
205 | regulator-boot-on; | ||
206 | regulator-min-microvolt = <1800000>; | ||
207 | regulator-max-microvolt = <1800000>; | ||
208 | regulator-name = "vcc_18"; | ||
209 | }; | ||
210 | |||
211 | vcc18_lcd: LDO_REG8 { | ||
212 | regulator-always-on; | ||
213 | regulator-boot-on; | ||
214 | regulator-min-microvolt = <1800000>; | ||
215 | regulator-max-microvolt = <1800000>; | ||
216 | regulator-name = "vcc18_lcd"; | ||
217 | }; | ||
218 | |||
219 | vcc_sd: SWITCH_REG1 { | ||
220 | regulator-name = "vcc_sd"; | ||
221 | }; | ||
222 | |||
223 | vcc33_lcd: SWITCH_REG2 { | ||
224 | regulator-always-on; | ||
225 | regulator-boot-on; | ||
226 | regulator-name = "vcc33_lcd"; | ||
227 | }; | ||
228 | }; | ||
229 | }; | ||
230 | }; | ||
231 | |||
232 | &i2c1 { | ||
233 | status = "okay"; | ||
234 | |||
235 | accelerometer@18 { | ||
236 | compatible = "bosch,bma250"; | ||
237 | reg = <0x18>; | ||
238 | interrupt-parent = <&gpio2>; | ||
239 | interrupts = <17 IRQ_TYPE_LEVEL_LOW>; | ||
240 | }; | ||
241 | }; | ||
242 | |||
243 | &i2c2 { | ||
244 | status = "okay"; | ||
245 | |||
246 | gsl1680: touchscreen@40 { | ||
247 | compatible = "silead,gsl1680"; | ||
248 | reg = <0x40>; | ||
249 | interrupt-parent = <&gpio3>; | ||
250 | interrupts = <28 IRQ_TYPE_EDGE_FALLING>; | ||
251 | power-gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>; | ||
252 | touchscreen-size-x = <800>; | ||
253 | touchscreen-size-y = <1280>; | ||
254 | silead,max-fingers = <5>; | ||
255 | }; | ||
256 | }; | ||
257 | |||
258 | &pinctrl { | ||
259 | keys { | ||
260 | pwr_key: pwr-key { | ||
261 | rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>; | ||
262 | }; | ||
263 | }; | ||
264 | |||
265 | pmic { | ||
266 | pmic_sleep: pmic-sleep { | ||
267 | rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>; | ||
268 | }; | ||
269 | |||
270 | pmic_int: pmic-int { | ||
271 | rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; | ||
272 | }; | ||
273 | }; | ||
274 | }; | ||
275 | |||
276 | &sdmmc { | ||
277 | status = "okay"; | ||
278 | bus-width = <4>; | ||
279 | cap-mmc-highspeed; | ||
280 | cap-sd-highspeed; | ||
281 | card-detect-delay = <200>; | ||
282 | no-emmc; | ||
283 | no-sdio; | ||
284 | num-slots = <1>; | ||
285 | sd-uhs-sdr12; | ||
286 | sd-uhs-sdr25; | ||
287 | pinctrl-names = "default"; | ||
288 | pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_bus4>, <&sdmmc_cd>; | ||
289 | rockchip,default-sample-phase = <90>; | ||
290 | vmmc-supply = <&vcc_sd>; | ||
291 | vqmmc-supply = <&vccio_sd>; | ||
292 | }; | ||
293 | |||
294 | &tsadc { | ||
295 | status = "okay"; | ||
296 | rockchip,hw-tshut-mode = <0>; /* CRU */ | ||
297 | rockchip,hw-tshut-polarity = <1>; /* high */ | ||
298 | }; | ||
299 | |||
300 | &uart4 { | ||
301 | status = "okay"; | ||
302 | }; | ||
303 | |||
304 | &usb_host0_ehci { | ||
305 | status = "okay"; | ||
306 | }; | ||
307 | |||
308 | &usb_otg { | ||
309 | status = "okay"; | ||
310 | }; | ||
311 | |||
312 | &wdt { | ||
313 | status = "okay"; | ||
314 | }; | ||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi index df231c4df5a5..a635adc47e74 100644 --- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi | |||
@@ -231,7 +231,7 @@ | |||
231 | sdmmc: dwmmc@ff0c0000 { | 231 | sdmmc: dwmmc@ff0c0000 { |
232 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; | 232 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; |
233 | reg = <0x0 0xff0c0000 0x0 0x4000>; | 233 | reg = <0x0 0xff0c0000 0x0 0x4000>; |
234 | clock-freq-min-max = <400000 150000000>; | 234 | max-frequency = <150000000>; |
235 | clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, | 235 | clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, |
236 | <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; | 236 | <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; |
237 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; | 237 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; |
@@ -243,7 +243,7 @@ | |||
243 | sdio0: dwmmc@ff0d0000 { | 243 | sdio0: dwmmc@ff0d0000 { |
244 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; | 244 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; |
245 | reg = <0x0 0xff0d0000 0x0 0x4000>; | 245 | reg = <0x0 0xff0d0000 0x0 0x4000>; |
246 | clock-freq-min-max = <400000 150000000>; | 246 | max-frequency = <150000000>; |
247 | clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, | 247 | clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, |
248 | <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; | 248 | <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; |
249 | clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; | 249 | clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; |
@@ -255,7 +255,7 @@ | |||
255 | emmc: dwmmc@ff0f0000 { | 255 | emmc: dwmmc@ff0f0000 { |
256 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; | 256 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; |
257 | reg = <0x0 0xff0f0000 0x0 0x4000>; | 257 | reg = <0x0 0xff0f0000 0x0 0x4000>; |
258 | clock-freq-min-max = <400000 150000000>; | 258 | max-frequency = <150000000>; |
259 | clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, | 259 | clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, |
260 | <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; | 260 | <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; |
261 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; | 261 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; |
@@ -315,16 +315,16 @@ | |||
315 | status = "disabled"; | 315 | status = "disabled"; |
316 | }; | 316 | }; |
317 | 317 | ||
318 | i2c1: i2c@ff140000 { | 318 | i2c2: i2c@ff140000 { |
319 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | 319 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; |
320 | reg = <0x0 0xff140000 0x0 0x1000>; | 320 | reg = <0x0 0xff140000 0x0 0x1000>; |
321 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | 321 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; |
322 | #address-cells = <1>; | 322 | #address-cells = <1>; |
323 | #size-cells = <0>; | 323 | #size-cells = <0>; |
324 | clock-names = "i2c"; | 324 | clock-names = "i2c"; |
325 | clocks = <&cru PCLK_I2C1>; | 325 | clocks = <&cru PCLK_I2C2>; |
326 | pinctrl-names = "default"; | 326 | pinctrl-names = "default"; |
327 | pinctrl-0 = <&i2c1_xfer>; | 327 | pinctrl-0 = <&i2c2_xfer>; |
328 | status = "disabled"; | 328 | status = "disabled"; |
329 | }; | 329 | }; |
330 | 330 | ||
@@ -553,16 +553,16 @@ | |||
553 | status = "disabled"; | 553 | status = "disabled"; |
554 | }; | 554 | }; |
555 | 555 | ||
556 | i2c2: i2c@ff660000 { | 556 | i2c1: i2c@ff660000 { |
557 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | 557 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; |
558 | reg = <0x0 0xff660000 0x0 0x1000>; | 558 | reg = <0x0 0xff660000 0x0 0x1000>; |
559 | interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; | 559 | interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; |
560 | #address-cells = <1>; | 560 | #address-cells = <1>; |
561 | #size-cells = <0>; | 561 | #size-cells = <0>; |
562 | clock-names = "i2c"; | 562 | clock-names = "i2c"; |
563 | clocks = <&cru PCLK_I2C2>; | 563 | clocks = <&cru PCLK_I2C1>; |
564 | pinctrl-names = "default"; | 564 | pinctrl-names = "default"; |
565 | pinctrl-0 = <&i2c2_xfer>; | 565 | pinctrl-0 = <&i2c1_xfer>; |
566 | status = "disabled"; | 566 | status = "disabled"; |
567 | }; | 567 | }; |
568 | 568 | ||
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-evb.dts b/arch/arm64/boot/dts/rockchip/rk3399-evb.dts index 8e82497925fe..3040a989d699 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-evb.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-evb.dts | |||
@@ -49,6 +49,46 @@ | |||
49 | compatible = "rockchip,rk3399-evb", "rockchip,rk3399", | 49 | compatible = "rockchip,rk3399-evb", "rockchip,rk3399", |
50 | "google,rk3399evb-rev2"; | 50 | "google,rk3399evb-rev2"; |
51 | 51 | ||
52 | backlight: backlight { | ||
53 | compatible = "pwm-backlight"; | ||
54 | brightness-levels = < | ||
55 | 0 1 2 3 4 5 6 7 | ||
56 | 8 9 10 11 12 13 14 15 | ||
57 | 16 17 18 19 20 21 22 23 | ||
58 | 24 25 26 27 28 29 30 31 | ||
59 | 32 33 34 35 36 37 38 39 | ||
60 | 40 41 42 43 44 45 46 47 | ||
61 | 48 49 50 51 52 53 54 55 | ||
62 | 56 57 58 59 60 61 62 63 | ||
63 | 64 65 66 67 68 69 70 71 | ||
64 | 72 73 74 75 76 77 78 79 | ||
65 | 80 81 82 83 84 85 86 87 | ||
66 | 88 89 90 91 92 93 94 95 | ||
67 | 96 97 98 99 100 101 102 103 | ||
68 | 104 105 106 107 108 109 110 111 | ||
69 | 112 113 114 115 116 117 118 119 | ||
70 | 120 121 122 123 124 125 126 127 | ||
71 | 128 129 130 131 132 133 134 135 | ||
72 | 136 137 138 139 140 141 142 143 | ||
73 | 144 145 146 147 148 149 150 151 | ||
74 | 152 153 154 155 156 157 158 159 | ||
75 | 160 161 162 163 164 165 166 167 | ||
76 | 168 169 170 171 172 173 174 175 | ||
77 | 176 177 178 179 180 181 182 183 | ||
78 | 184 185 186 187 188 189 190 191 | ||
79 | 192 193 194 195 196 197 198 199 | ||
80 | 200 201 202 203 204 205 206 207 | ||
81 | 208 209 210 211 212 213 214 215 | ||
82 | 216 217 218 219 220 221 222 223 | ||
83 | 224 225 226 227 228 229 230 231 | ||
84 | 232 233 234 235 236 237 238 239 | ||
85 | 240 241 242 243 244 245 246 247 | ||
86 | 248 249 250 251 252 253 254 255>; | ||
87 | default-brightness-level = <200>; | ||
88 | enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; | ||
89 | pwms = <&pwm0 0 25000 0>; | ||
90 | }; | ||
91 | |||
52 | clkin_gmac: external-gmac-clock { | 92 | clkin_gmac: external-gmac-clock { |
53 | compatible = "fixed-clock"; | 93 | compatible = "fixed-clock"; |
54 | clock-frequency = <125000000>; | 94 | clock-frequency = <125000000>; |
diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi index 1e24e455700b..c928015d39a2 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi | |||
@@ -236,7 +236,7 @@ | |||
236 | "rockchip,rk3288-dw-mshc"; | 236 | "rockchip,rk3288-dw-mshc"; |
237 | reg = <0x0 0xfe310000 0x0 0x4000>; | 237 | reg = <0x0 0xfe310000 0x0 0x4000>; |
238 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>; | 238 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH 0>; |
239 | clock-freq-min-max = <400000 150000000>; | 239 | max-frequency = <150000000>; |
240 | clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, | 240 | clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, |
241 | <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; | 241 | <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; |
242 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; | 242 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; |
@@ -249,11 +249,12 @@ | |||
249 | "rockchip,rk3288-dw-mshc"; | 249 | "rockchip,rk3288-dw-mshc"; |
250 | reg = <0x0 0xfe320000 0x0 0x4000>; | 250 | reg = <0x0 0xfe320000 0x0 0x4000>; |
251 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>; | 251 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH 0>; |
252 | clock-freq-min-max = <400000 150000000>; | 252 | max-frequency = <150000000>; |
253 | clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, | 253 | clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, |
254 | <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; | 254 | <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; |
255 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; | 255 | clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; |
256 | fifo-depth = <0x100>; | 256 | fifo-depth = <0x100>; |
257 | power-domains = <&power RK3399_PD_SD>; | ||
257 | status = "disabled"; | 258 | status = "disabled"; |
258 | }; | 259 | }; |
259 | 260 | ||
@@ -270,6 +271,7 @@ | |||
270 | #clock-cells = <0>; | 271 | #clock-cells = <0>; |
271 | phys = <&emmc_phy>; | 272 | phys = <&emmc_phy>; |
272 | phy-names = "phy_arasan"; | 273 | phy-names = "phy_arasan"; |
274 | power-domains = <&power RK3399_PD_EMMC>; | ||
273 | status = "disabled"; | 275 | status = "disabled"; |
274 | }; | 276 | }; |
275 | 277 | ||
@@ -694,6 +696,16 @@ | |||
694 | status = "disabled"; | 696 | status = "disabled"; |
695 | }; | 697 | }; |
696 | 698 | ||
699 | qos_sd: qos@ffa74000 { | ||
700 | compatible = "syscon"; | ||
701 | reg = <0x0 0xffa74000 0x0 0x20>; | ||
702 | }; | ||
703 | |||
704 | qos_emmc: qos@ffa58000 { | ||
705 | compatible = "syscon"; | ||
706 | reg = <0x0 0xffa58000 0x0 0x20>; | ||
707 | }; | ||
708 | |||
697 | qos_gmac: qos@ffa5c000 { | 709 | qos_gmac: qos@ffa5c000 { |
698 | compatible = "syscon"; | 710 | compatible = "syscon"; |
699 | reg = <0x0 0xffa5c000 0x0 0x20>; | 711 | reg = <0x0 0xffa5c000 0x0 0x20>; |
@@ -827,11 +839,23 @@ | |||
827 | }; | 839 | }; |
828 | 840 | ||
829 | /* These power domains are grouped by VD_LOGIC */ | 841 | /* These power domains are grouped by VD_LOGIC */ |
842 | pd_emmc@RK3399_PD_EMMC { | ||
843 | reg = <RK3399_PD_EMMC>; | ||
844 | clocks = <&cru ACLK_EMMC>; | ||
845 | pm_qos = <&qos_emmc>; | ||
846 | }; | ||
830 | pd_gmac@RK3399_PD_GMAC { | 847 | pd_gmac@RK3399_PD_GMAC { |
831 | reg = <RK3399_PD_GMAC>; | 848 | reg = <RK3399_PD_GMAC>; |
832 | clocks = <&cru ACLK_GMAC>; | 849 | clocks = <&cru ACLK_GMAC>, |
850 | <&cru PCLK_GMAC>; | ||
833 | pm_qos = <&qos_gmac>; | 851 | pm_qos = <&qos_gmac>; |
834 | }; | 852 | }; |
853 | pd_sd@RK3399_PD_SD { | ||
854 | reg = <RK3399_PD_SD>; | ||
855 | clocks = <&cru HCLK_SDMMC>, | ||
856 | <&cru SCLK_SDMMC>; | ||
857 | pm_qos = <&qos_sd>; | ||
858 | }; | ||
835 | pd_vio@RK3399_PD_VIO { | 859 | pd_vio@RK3399_PD_VIO { |
836 | reg = <RK3399_PD_VIO>; | 860 | reg = <RK3399_PD_VIO>; |
837 | #address-cells = <1>; | 861 | #address-cells = <1>; |
@@ -1027,6 +1051,9 @@ | |||
1027 | clock-names = "pclk_efuse"; | 1051 | clock-names = "pclk_efuse"; |
1028 | 1052 | ||
1029 | /* Data cells */ | 1053 | /* Data cells */ |
1054 | cpu_id: cpu-id@7 { | ||
1055 | reg = <0x07 0x10>; | ||
1056 | }; | ||
1030 | cpub_leakage: cpu-leakage@17 { | 1057 | cpub_leakage: cpu-leakage@17 { |
1031 | reg = <0x17 0x1>; | 1058 | reg = <0x17 0x1>; |
1032 | }; | 1059 | }; |
@@ -1105,6 +1132,16 @@ | |||
1105 | interrupt-names = "linestate"; | 1132 | interrupt-names = "linestate"; |
1106 | status = "disabled"; | 1133 | status = "disabled"; |
1107 | }; | 1134 | }; |
1135 | |||
1136 | u2phy0_otg: otg-port { | ||
1137 | #phy-cells = <0>; | ||
1138 | interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>, | ||
1139 | <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>, | ||
1140 | <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>; | ||
1141 | interrupt-names = "otg-bvalid", "otg-id", | ||
1142 | "linestate"; | ||
1143 | status = "disabled"; | ||
1144 | }; | ||
1108 | }; | 1145 | }; |
1109 | 1146 | ||
1110 | u2phy1: usb2-phy@e460 { | 1147 | u2phy1: usb2-phy@e460 { |
@@ -1122,6 +1159,16 @@ | |||
1122 | interrupt-names = "linestate"; | 1159 | interrupt-names = "linestate"; |
1123 | status = "disabled"; | 1160 | status = "disabled"; |
1124 | }; | 1161 | }; |
1162 | |||
1163 | u2phy1_otg: otg-port { | ||
1164 | #phy-cells = <0>; | ||
1165 | interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>, | ||
1166 | <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH 0>, | ||
1167 | <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH 0>; | ||
1168 | interrupt-names = "otg-bvalid", "otg-id", | ||
1169 | "linestate"; | ||
1170 | status = "disabled"; | ||
1171 | }; | ||
1125 | }; | 1172 | }; |
1126 | 1173 | ||
1127 | emmc_phy: phy@f780 { | 1174 | emmc_phy: phy@f780 { |
@@ -1152,6 +1199,7 @@ | |||
1152 | clock-names = "tcpdcore", "tcpdphy-ref"; | 1199 | clock-names = "tcpdcore", "tcpdphy-ref"; |
1153 | assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>; | 1200 | assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>; |
1154 | assigned-clock-rates = <50000000>; | 1201 | assigned-clock-rates = <50000000>; |
1202 | power-domains = <&power RK3399_PD_TCPD0>; | ||
1155 | resets = <&cru SRST_UPHY0>, | 1203 | resets = <&cru SRST_UPHY0>, |
1156 | <&cru SRST_UPHY0_PIPE_L00>, | 1204 | <&cru SRST_UPHY0_PIPE_L00>, |
1157 | <&cru SRST_P_UPHY0_TCPHY>; | 1205 | <&cru SRST_P_UPHY0_TCPHY>; |
@@ -1180,6 +1228,7 @@ | |||
1180 | clock-names = "tcpdcore", "tcpdphy-ref"; | 1228 | clock-names = "tcpdcore", "tcpdphy-ref"; |
1181 | assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>; | 1229 | assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>; |
1182 | assigned-clock-rates = <50000000>; | 1230 | assigned-clock-rates = <50000000>; |
1231 | power-domains = <&power RK3399_PD_TCPD1>; | ||
1183 | resets = <&cru SRST_UPHY1>, | 1232 | resets = <&cru SRST_UPHY1>, |
1184 | <&cru SRST_UPHY1_PIPE_L00>, | 1233 | <&cru SRST_UPHY1_PIPE_L00>, |
1185 | <&cru SRST_P_UPHY1_TCPHY>; | 1234 | <&cru SRST_P_UPHY1_TCPHY>; |
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi index 3eb4c42ce7b9..7c7511b9d231 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi | |||
@@ -43,7 +43,7 @@ | |||
43 | * OTHER DEALINGS IN THE SOFTWARE. | 43 | * OTHER DEALINGS IN THE SOFTWARE. |
44 | */ | 44 | */ |
45 | 45 | ||
46 | /memreserve/ 0x80000000 0x00000008; /* cpu-release-addr */ | 46 | /memreserve/ 0x80000000 0x00080000; |
47 | 47 | ||
48 | / { | 48 | / { |
49 | compatible = "socionext,uniphier-ld11"; | 49 | compatible = "socionext,uniphier-ld11"; |
@@ -70,19 +70,60 @@ | |||
70 | device_type = "cpu"; | 70 | device_type = "cpu"; |
71 | compatible = "arm,cortex-a53", "arm,armv8"; | 71 | compatible = "arm,cortex-a53", "arm,armv8"; |
72 | reg = <0 0x000>; | 72 | reg = <0 0x000>; |
73 | enable-method = "spin-table"; | 73 | clocks = <&sys_clk 33>; |
74 | cpu-release-addr = <0 0x80000000>; | 74 | enable-method = "psci"; |
75 | operating-points-v2 = <&cluster0_opp>; | ||
75 | }; | 76 | }; |
76 | 77 | ||
77 | cpu1: cpu@1 { | 78 | cpu1: cpu@1 { |
78 | device_type = "cpu"; | 79 | device_type = "cpu"; |
79 | compatible = "arm,cortex-a53", "arm,armv8"; | 80 | compatible = "arm,cortex-a53", "arm,armv8"; |
80 | reg = <0 0x001>; | 81 | reg = <0 0x001>; |
81 | enable-method = "spin-table"; | 82 | clocks = <&sys_clk 33>; |
82 | cpu-release-addr = <0 0x80000000>; | 83 | enable-method = "psci"; |
84 | operating-points-v2 = <&cluster0_opp>; | ||
83 | }; | 85 | }; |
84 | }; | 86 | }; |
85 | 87 | ||
88 | cluster0_opp: opp_table { | ||
89 | compatible = "operating-points-v2"; | ||
90 | opp-shared; | ||
91 | |||
92 | opp@245000000 { | ||
93 | opp-hz = /bits/ 64 <245000000>; | ||
94 | clock-latency-ns = <300>; | ||
95 | }; | ||
96 | opp@250000000 { | ||
97 | opp-hz = /bits/ 64 <250000000>; | ||
98 | clock-latency-ns = <300>; | ||
99 | }; | ||
100 | opp@490000000 { | ||
101 | opp-hz = /bits/ 64 <490000000>; | ||
102 | clock-latency-ns = <300>; | ||
103 | }; | ||
104 | opp@500000000 { | ||
105 | opp-hz = /bits/ 64 <500000000>; | ||
106 | clock-latency-ns = <300>; | ||
107 | }; | ||
108 | opp@653334000 { | ||
109 | opp-hz = /bits/ 64 <653334000>; | ||
110 | clock-latency-ns = <300>; | ||
111 | }; | ||
112 | opp@666667000 { | ||
113 | opp-hz = /bits/ 64 <666667000>; | ||
114 | clock-latency-ns = <300>; | ||
115 | }; | ||
116 | opp@980000000 { | ||
117 | opp-hz = /bits/ 64 <980000000>; | ||
118 | clock-latency-ns = <300>; | ||
119 | }; | ||
120 | }; | ||
121 | |||
122 | psci { | ||
123 | compatible = "arm,psci-1.0"; | ||
124 | method = "smc"; | ||
125 | }; | ||
126 | |||
86 | clocks { | 127 | clocks { |
87 | refclk: ref { | 128 | refclk: ref { |
88 | compatible = "fixed-clock"; | 129 | compatible = "fixed-clock"; |
@@ -233,7 +274,7 @@ | |||
233 | }; | 274 | }; |
234 | 275 | ||
235 | perictrl@59820000 { | 276 | perictrl@59820000 { |
236 | compatible = "socionext,uniphier-perictrl", | 277 | compatible = "socionext,uniphier-ld11-perictrl", |
237 | "simple-mfd", "syscon"; | 278 | "simple-mfd", "syscon"; |
238 | reg = <0x59820000 0x200>; | 279 | reg = <0x59820000 0x200>; |
239 | 280 | ||
@@ -282,7 +323,7 @@ | |||
282 | }; | 323 | }; |
283 | 324 | ||
284 | mioctrl@5b3e0000 { | 325 | mioctrl@5b3e0000 { |
285 | compatible = "socionext,uniphier-mioctrl", | 326 | compatible = "socionext,uniphier-ld11-mioctrl", |
286 | "simple-mfd", "syscon"; | 327 | "simple-mfd", "syscon"; |
287 | reg = <0x5b3e0000 0x800>; | 328 | reg = <0x5b3e0000 0x800>; |
288 | 329 | ||
@@ -299,7 +340,7 @@ | |||
299 | }; | 340 | }; |
300 | 341 | ||
301 | soc-glue@5f800000 { | 342 | soc-glue@5f800000 { |
302 | compatible = "socionext,uniphier-soc-glue", | 343 | compatible = "socionext,uniphier-ld11-soc-glue", |
303 | "simple-mfd", "syscon"; | 344 | "simple-mfd", "syscon"; |
304 | reg = <0x5f800000 0x2000>; | 345 | reg = <0x5f800000 0x2000>; |
305 | 346 | ||
@@ -320,7 +361,7 @@ | |||
320 | sysctrl@61840000 { | 361 | sysctrl@61840000 { |
321 | compatible = "socionext,uniphier-ld11-sysctrl", | 362 | compatible = "socionext,uniphier-ld11-sysctrl", |
322 | "simple-mfd", "syscon"; | 363 | "simple-mfd", "syscon"; |
323 | reg = <0x61840000 0x4000>; | 364 | reg = <0x61840000 0x10000>; |
324 | 365 | ||
325 | sys_clk: clock { | 366 | sys_clk: clock { |
326 | compatible = "socionext,uniphier-ld11-clock"; | 367 | compatible = "socionext,uniphier-ld11-clock"; |
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi index 56a1b2e92cf3..fcaecc6bdeac 100644 --- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi | |||
@@ -43,7 +43,7 @@ | |||
43 | * OTHER DEALINGS IN THE SOFTWARE. | 43 | * OTHER DEALINGS IN THE SOFTWARE. |
44 | */ | 44 | */ |
45 | 45 | ||
46 | /memreserve/ 0x80000000 0x00000008; /* cpu-release-addr */ | 46 | /memreserve/ 0x80000000 0x00080000; |
47 | 47 | ||
48 | / { | 48 | / { |
49 | compatible = "socionext,uniphier-ld20"; | 49 | compatible = "socionext,uniphier-ld20"; |
@@ -79,35 +79,120 @@ | |||
79 | device_type = "cpu"; | 79 | device_type = "cpu"; |
80 | compatible = "arm,cortex-a72", "arm,armv8"; | 80 | compatible = "arm,cortex-a72", "arm,armv8"; |
81 | reg = <0 0x000>; | 81 | reg = <0 0x000>; |
82 | enable-method = "spin-table"; | 82 | clocks = <&sys_clk 32>; |
83 | cpu-release-addr = <0 0x80000000>; | 83 | enable-method = "psci"; |
84 | operating-points-v2 = <&cluster0_opp>; | ||
84 | }; | 85 | }; |
85 | 86 | ||
86 | cpu1: cpu@1 { | 87 | cpu1: cpu@1 { |
87 | device_type = "cpu"; | 88 | device_type = "cpu"; |
88 | compatible = "arm,cortex-a72", "arm,armv8"; | 89 | compatible = "arm,cortex-a72", "arm,armv8"; |
89 | reg = <0 0x001>; | 90 | reg = <0 0x001>; |
90 | enable-method = "spin-table"; | 91 | clocks = <&sys_clk 32>; |
91 | cpu-release-addr = <0 0x80000000>; | 92 | enable-method = "psci"; |
93 | operating-points-v2 = <&cluster0_opp>; | ||
92 | }; | 94 | }; |
93 | 95 | ||
94 | cpu2: cpu@100 { | 96 | cpu2: cpu@100 { |
95 | device_type = "cpu"; | 97 | device_type = "cpu"; |
96 | compatible = "arm,cortex-a53", "arm,armv8"; | 98 | compatible = "arm,cortex-a53", "arm,armv8"; |
97 | reg = <0 0x100>; | 99 | reg = <0 0x100>; |
98 | enable-method = "spin-table"; | 100 | clocks = <&sys_clk 33>; |
99 | cpu-release-addr = <0 0x80000000>; | 101 | enable-method = "psci"; |
102 | operating-points-v2 = <&cluster1_opp>; | ||
100 | }; | 103 | }; |
101 | 104 | ||
102 | cpu3: cpu@101 { | 105 | cpu3: cpu@101 { |
103 | device_type = "cpu"; | 106 | device_type = "cpu"; |
104 | compatible = "arm,cortex-a53", "arm,armv8"; | 107 | compatible = "arm,cortex-a53", "arm,armv8"; |
105 | reg = <0 0x101>; | 108 | reg = <0 0x101>; |
106 | enable-method = "spin-table"; | 109 | clocks = <&sys_clk 33>; |
107 | cpu-release-addr = <0 0x80000000>; | 110 | enable-method = "psci"; |
111 | operating-points-v2 = <&cluster1_opp>; | ||
108 | }; | 112 | }; |
109 | }; | 113 | }; |
110 | 114 | ||
115 | cluster0_opp: opp_table0 { | ||
116 | compatible = "operating-points-v2"; | ||
117 | opp-shared; | ||
118 | |||
119 | opp@250000000 { | ||
120 | opp-hz = /bits/ 64 <250000000>; | ||
121 | clock-latency-ns = <300>; | ||
122 | }; | ||
123 | opp@275000000 { | ||
124 | opp-hz = /bits/ 64 <275000000>; | ||
125 | clock-latency-ns = <300>; | ||
126 | }; | ||
127 | opp@500000000 { | ||
128 | opp-hz = /bits/ 64 <500000000>; | ||
129 | clock-latency-ns = <300>; | ||
130 | }; | ||
131 | opp@550000000 { | ||
132 | opp-hz = /bits/ 64 <550000000>; | ||
133 | clock-latency-ns = <300>; | ||
134 | }; | ||
135 | opp@666667000 { | ||
136 | opp-hz = /bits/ 64 <666667000>; | ||
137 | clock-latency-ns = <300>; | ||
138 | }; | ||
139 | opp@733334000 { | ||
140 | opp-hz = /bits/ 64 <733334000>; | ||
141 | clock-latency-ns = <300>; | ||
142 | }; | ||
143 | opp@1000000000 { | ||
144 | opp-hz = /bits/ 64 <1000000000>; | ||
145 | clock-latency-ns = <300>; | ||
146 | }; | ||
147 | opp@1100000000 { | ||
148 | opp-hz = /bits/ 64 <1100000000>; | ||
149 | clock-latency-ns = <300>; | ||
150 | }; | ||
151 | }; | ||
152 | |||
153 | cluster1_opp: opp_table1 { | ||
154 | compatible = "operating-points-v2"; | ||
155 | opp-shared; | ||
156 | |||
157 | opp@250000000 { | ||
158 | opp-hz = /bits/ 64 <250000000>; | ||
159 | clock-latency-ns = <300>; | ||
160 | }; | ||
161 | opp@275000000 { | ||
162 | opp-hz = /bits/ 64 <275000000>; | ||
163 | clock-latency-ns = <300>; | ||
164 | }; | ||
165 | opp@500000000 { | ||
166 | opp-hz = /bits/ 64 <500000000>; | ||
167 | clock-latency-ns = <300>; | ||
168 | }; | ||
169 | opp@550000000 { | ||
170 | opp-hz = /bits/ 64 <550000000>; | ||
171 | clock-latency-ns = <300>; | ||
172 | }; | ||
173 | opp@666667000 { | ||
174 | opp-hz = /bits/ 64 <666667000>; | ||
175 | clock-latency-ns = <300>; | ||
176 | }; | ||
177 | opp@733334000 { | ||
178 | opp-hz = /bits/ 64 <733334000>; | ||
179 | clock-latency-ns = <300>; | ||
180 | }; | ||
181 | opp@1000000000 { | ||
182 | opp-hz = /bits/ 64 <1000000000>; | ||
183 | clock-latency-ns = <300>; | ||
184 | }; | ||
185 | opp@1100000000 { | ||
186 | opp-hz = /bits/ 64 <1100000000>; | ||
187 | clock-latency-ns = <300>; | ||
188 | }; | ||
189 | }; | ||
190 | |||
191 | psci { | ||
192 | compatible = "arm,psci-1.0"; | ||
193 | method = "smc"; | ||
194 | }; | ||
195 | |||
111 | clocks { | 196 | clocks { |
112 | refclk: ref { | 197 | refclk: ref { |
113 | compatible = "fixed-clock"; | 198 | compatible = "fixed-clock"; |
@@ -274,7 +359,7 @@ | |||
274 | }; | 359 | }; |
275 | 360 | ||
276 | perictrl@59820000 { | 361 | perictrl@59820000 { |
277 | compatible = "socionext,uniphier-perictrl", | 362 | compatible = "socionext,uniphier-ld20-perictrl", |
278 | "simple-mfd", "syscon"; | 363 | "simple-mfd", "syscon"; |
279 | reg = <0x59820000 0x200>; | 364 | reg = <0x59820000 0x200>; |
280 | 365 | ||
@@ -290,7 +375,7 @@ | |||
290 | }; | 375 | }; |
291 | 376 | ||
292 | soc-glue@5f800000 { | 377 | soc-glue@5f800000 { |
293 | compatible = "socionext,uniphier-soc-glue", | 378 | compatible = "socionext,uniphier-ld20-soc-glue", |
294 | "simple-mfd", "syscon"; | 379 | "simple-mfd", "syscon"; |
295 | reg = <0x5f800000 0x2000>; | 380 | reg = <0x5f800000 0x2000>; |
296 | 381 | ||
@@ -309,9 +394,9 @@ | |||
309 | }; | 394 | }; |
310 | 395 | ||
311 | sysctrl@61840000 { | 396 | sysctrl@61840000 { |
312 | compatible = "socionext,uniphier-sysctrl", | 397 | compatible = "socionext,uniphier-ld20-sysctrl", |
313 | "simple-mfd", "syscon"; | 398 | "simple-mfd", "syscon"; |
314 | reg = <0x61840000 0x4000>; | 399 | reg = <0x61840000 0x10000>; |
315 | 400 | ||
316 | sys_clk: clock { | 401 | sys_clk: clock { |
317 | compatible = "socionext,uniphier-ld20-clock"; | 402 | compatible = "socionext,uniphier-ld20-clock"; |
diff --git a/arch/arm64/boot/dts/zte/zx296718.dtsi b/arch/arm64/boot/dts/zte/zx296718.dtsi index dd2cd73c774c..88ff70a06086 100644 --- a/arch/arm64/boot/dts/zte/zx296718.dtsi +++ b/arch/arm64/boot/dts/zte/zx296718.dtsi | |||
@@ -277,9 +277,33 @@ | |||
277 | dma-requests = <32>; | 277 | dma-requests = <32>; |
278 | }; | 278 | }; |
279 | 279 | ||
280 | lsp0crm: clock-controller@1420000 { | ||
281 | compatible = "zte,zx296718-lsp0crm"; | ||
282 | reg = <0x01420000 0x1000>; | ||
283 | #clock-cells = <1>; | ||
284 | }; | ||
285 | |||
286 | lsp1crm: clock-controller@1430000 { | ||
287 | compatible = "zte,zx296718-lsp1crm"; | ||
288 | reg = <0x01430000 0x1000>; | ||
289 | #clock-cells = <1>; | ||
290 | }; | ||
291 | |||
292 | topcrm: clock-controller@1461000 { | ||
293 | compatible = "zte,zx296718-topcrm"; | ||
294 | reg = <0x01461000 0x1000>; | ||
295 | #clock-cells = <1>; | ||
296 | }; | ||
297 | |||
280 | sysctrl: sysctrl@1463000 { | 298 | sysctrl: sysctrl@1463000 { |
281 | compatible = "zte,zx296718-sysctrl", "syscon"; | 299 | compatible = "zte,zx296718-sysctrl", "syscon"; |
282 | reg = <0x1463000 0x1000>; | 300 | reg = <0x1463000 0x1000>; |
283 | }; | 301 | }; |
302 | |||
303 | audiocrm: clock-controller@1480000 { | ||
304 | compatible = "zte,zx296718-audiocrm"; | ||
305 | reg = <0x01480000 0x1000>; | ||
306 | #clock-cells = <1>; | ||
307 | }; | ||
284 | }; | 308 | }; |
285 | }; | 309 | }; |