diff options
33 files changed, 3763 insertions, 258 deletions
diff --git a/Documentation/devicetree/bindings/arm/bcm/ns2.txt b/Documentation/devicetree/bindings/arm/bcm/ns2.txt new file mode 100644 index 000000000000..35f056f4a1c3 --- /dev/null +++ b/Documentation/devicetree/bindings/arm/bcm/ns2.txt | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | Broadcom North Star 2 (NS2) device tree bindings | ||
| 2 | ------------------------------------------------ | ||
| 3 | |||
| 4 | Boards with NS2 shall have the following properties: | ||
| 5 | |||
| 6 | Required root node property: | ||
| 7 | |||
| 8 | NS2 SVK board | ||
| 9 | compatible = "brcm,ns2-svk", "brcm,ns2"; | ||
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt index 2daa424a13a4..618a91994a18 100644 --- a/Documentation/devicetree/bindings/arm/mediatek.txt +++ b/Documentation/devicetree/bindings/arm/mediatek.txt | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | MediaTek mt65xx & mt81xx Platforms Device Tree Bindings | 1 | MediaTek mt65xx, mt67xx & mt81xx Platforms Device Tree Bindings |
| 2 | 2 | ||
| 3 | Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property: | 3 | Boards with a MediaTek mt65xx/mt67xx/mt81xx SoC shall have the |
| 4 | following property: | ||
| 4 | 5 | ||
| 5 | Required root node property: | 6 | Required root node property: |
| 6 | 7 | ||
| @@ -8,6 +9,7 @@ compatible: Must contain one of | |||
| 8 | "mediatek,mt6580" | 9 | "mediatek,mt6580" |
| 9 | "mediatek,mt6589" | 10 | "mediatek,mt6589" |
| 10 | "mediatek,mt6592" | 11 | "mediatek,mt6592" |
| 12 | "mediatek,mt6795" | ||
| 11 | "mediatek,mt8127" | 13 | "mediatek,mt8127" |
| 12 | "mediatek,mt8135" | 14 | "mediatek,mt8135" |
| 13 | "mediatek,mt8173" | 15 | "mediatek,mt8173" |
| @@ -24,6 +26,9 @@ Supported boards: | |||
| 24 | - Evaluation board for MT6592: | 26 | - Evaluation board for MT6592: |
| 25 | Required root node properties: | 27 | Required root node properties: |
| 26 | - compatible = "mediatek,mt6592-evb", "mediatek,mt6592"; | 28 | - compatible = "mediatek,mt6592-evb", "mediatek,mt6592"; |
| 29 | - Evaluation board for MT6795(Helio X10): | ||
| 30 | Required root node properties: | ||
| 31 | - compatible = "mediatek,mt6795-evb", "mediatek,mt6795"; | ||
| 27 | - MTK mt8127 tablet moose EVB: | 32 | - MTK mt8127 tablet moose EVB: |
| 28 | Required root node properties: | 33 | Required root node properties: |
| 29 | - compatible = "mediatek,mt8127-moose", "mediatek,mt8127"; | 34 | - compatible = "mediatek,mt8127-moose", "mediatek,mt8127"; |
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt index 3c9c3a7f3d25..afef6a85ac51 100644 --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | Mediatek 65xx/81xx sysirq | 1 | +Mediatek 65xx/67xx/81xx sysirq |
| 2 | 2 | ||
| 3 | Mediatek SOCs sysirq support controllable irq inverter for each GIC SPI | 3 | Mediatek SOCs sysirq support controllable irq inverter for each GIC SPI |
| 4 | interrupt. | 4 | interrupt. |
| @@ -8,6 +8,7 @@ Required properties: | |||
| 8 | "mediatek,mt8173-sysirq" | 8 | "mediatek,mt8173-sysirq" |
| 9 | "mediatek,mt8135-sysirq" | 9 | "mediatek,mt8135-sysirq" |
| 10 | "mediatek,mt8127-sysirq" | 10 | "mediatek,mt8127-sysirq" |
| 11 | "mediatek,mt6795-sysirq" | ||
| 11 | "mediatek,mt6592-sysirq" | 12 | "mediatek,mt6592-sysirq" |
| 12 | "mediatek,mt6589-sysirq" | 13 | "mediatek,mt6589-sysirq" |
| 13 | "mediatek,mt6582-sysirq" | 14 | "mediatek,mt6582-sysirq" |
diff --git a/Documentation/devicetree/bindings/serial/mtk-uart.txt b/Documentation/devicetree/bindings/serial/mtk-uart.txt index a875997f2062..2d47add34765 100644 --- a/Documentation/devicetree/bindings/serial/mtk-uart.txt +++ b/Documentation/devicetree/bindings/serial/mtk-uart.txt | |||
| @@ -5,11 +5,12 @@ Required properties: | |||
| 5 | * "mediatek,mt8135-uart" for MT8135 compatible UARTS | 5 | * "mediatek,mt8135-uart" for MT8135 compatible UARTS |
| 6 | * "mediatek,mt8127-uart" for MT8127 compatible UARTS | 6 | * "mediatek,mt8127-uart" for MT8127 compatible UARTS |
| 7 | * "mediatek,mt8173-uart" for MT8173 compatible UARTS | 7 | * "mediatek,mt8173-uart" for MT8173 compatible UARTS |
| 8 | * "mediatek,mt6795-uart" for MT6795 compatible UARTS | ||
| 8 | * "mediatek,mt6589-uart" for MT6589 compatible UARTS | 9 | * "mediatek,mt6589-uart" for MT6589 compatible UARTS |
| 9 | * "mediatek,mt6582-uart" for MT6582 compatible UARTS | 10 | * "mediatek,mt6582-uart" for MT6582 compatible UARTS |
| 10 | * "mediatek,mt6580-uart" for MT6580 compatible UARTS | 11 | * "mediatek,mt6580-uart" for MT6580 compatible UARTS |
| 11 | * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582, | 12 | * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6795, |
| 12 | MT6580, MT6577) | 13 | MT6589, MT6582, MT6580, MT6577) |
| 13 | 14 | ||
| 14 | - reg: The base address of the UART register bank. | 15 | - reg: The base address of the UART register bank. |
| 15 | 16 | ||
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 318175f62c24..b7b9ceaa684a 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
| @@ -160,110 +160,7 @@ source "init/Kconfig" | |||
| 160 | 160 | ||
| 161 | source "kernel/Kconfig.freezer" | 161 | source "kernel/Kconfig.freezer" |
| 162 | 162 | ||
| 163 | menu "Platform selection" | 163 | source "arch/arm64/Kconfig.platforms" |
| 164 | |||
| 165 | config ARCH_EXYNOS | ||
| 166 | bool | ||
| 167 | help | ||
| 168 | This enables support for Samsung Exynos SoC family | ||
| 169 | |||
| 170 | config ARCH_EXYNOS7 | ||
| 171 | bool "ARMv8 based Samsung Exynos7" | ||
| 172 | select ARCH_EXYNOS | ||
| 173 | select COMMON_CLK_SAMSUNG | ||
| 174 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | ||
| 175 | select HAVE_S3C_RTC if RTC_CLASS | ||
| 176 | select PINCTRL | ||
| 177 | select PINCTRL_EXYNOS | ||
| 178 | |||
| 179 | help | ||
| 180 | This enables support for Samsung Exynos7 SoC family | ||
| 181 | |||
| 182 | config ARCH_FSL_LS2085A | ||
| 183 | bool "Freescale LS2085A SOC" | ||
| 184 | help | ||
| 185 | This enables support for Freescale LS2085A SOC. | ||
| 186 | |||
| 187 | config ARCH_HISI | ||
| 188 | bool "Hisilicon SoC Family" | ||
| 189 | help | ||
| 190 | This enables support for Hisilicon ARMv8 SoC family | ||
| 191 | |||
| 192 | config ARCH_MEDIATEK | ||
| 193 | bool "Mediatek MT65xx & MT81xx ARMv8 SoC" | ||
| 194 | select ARM_GIC | ||
| 195 | select PINCTRL | ||
| 196 | help | ||
| 197 | Support for Mediatek MT65xx & MT81xx ARMv8 SoCs | ||
| 198 | |||
| 199 | config ARCH_QCOM | ||
| 200 | bool "Qualcomm Platforms" | ||
| 201 | select PINCTRL | ||
| 202 | help | ||
| 203 | This enables support for the ARMv8 based Qualcomm chipsets. | ||
| 204 | |||
| 205 | config ARCH_SEATTLE | ||
| 206 | bool "AMD Seattle SoC Family" | ||
| 207 | help | ||
| 208 | This enables support for AMD Seattle SOC Family | ||
| 209 | |||
| 210 | config ARCH_TEGRA | ||
| 211 | bool "NVIDIA Tegra SoC Family" | ||
| 212 | select ARCH_HAS_RESET_CONTROLLER | ||
| 213 | select ARCH_REQUIRE_GPIOLIB | ||
| 214 | select CLKDEV_LOOKUP | ||
| 215 | select CLKSRC_MMIO | ||
| 216 | select CLKSRC_OF | ||
| 217 | select GENERIC_CLOCKEVENTS | ||
| 218 | select HAVE_CLK | ||
| 219 | select PINCTRL | ||
| 220 | select RESET_CONTROLLER | ||
| 221 | help | ||
| 222 | This enables support for the NVIDIA Tegra SoC family. | ||
| 223 | |||
| 224 | config ARCH_TEGRA_132_SOC | ||
| 225 | bool "NVIDIA Tegra132 SoC" | ||
| 226 | depends on ARCH_TEGRA | ||
| 227 | select PINCTRL_TEGRA124 | ||
| 228 | select USB_ULPI if USB_PHY | ||
| 229 | select USB_ULPI_VIEWPORT if USB_PHY | ||
| 230 | help | ||
| 231 | Enable support for NVIDIA Tegra132 SoC, based on the Denver | ||
| 232 | ARMv8 CPU. The Tegra132 SoC is similar to the Tegra124 SoC, | ||
| 233 | but contains an NVIDIA Denver CPU complex in place of | ||
| 234 | Tegra124's "4+1" Cortex-A15 CPU complex. | ||
| 235 | |||
| 236 | config ARCH_SPRD | ||
| 237 | bool "Spreadtrum SoC platform" | ||
| 238 | help | ||
| 239 | Support for Spreadtrum ARM based SoCs | ||
| 240 | |||
| 241 | config ARCH_THUNDER | ||
| 242 | bool "Cavium Inc. Thunder SoC Family" | ||
| 243 | help | ||
| 244 | This enables support for Cavium's Thunder Family of SoCs. | ||
| 245 | |||
| 246 | config ARCH_VEXPRESS | ||
| 247 | bool "ARMv8 software model (Versatile Express)" | ||
| 248 | select ARCH_REQUIRE_GPIOLIB | ||
| 249 | select COMMON_CLK_VERSATILE | ||
| 250 | select POWER_RESET_VEXPRESS | ||
| 251 | select VEXPRESS_CONFIG | ||
| 252 | help | ||
| 253 | This enables support for the ARMv8 software model (Versatile | ||
| 254 | Express). | ||
| 255 | |||
| 256 | config ARCH_XGENE | ||
| 257 | bool "AppliedMicro X-Gene SOC Family" | ||
| 258 | help | ||
| 259 | This enables support for AppliedMicro X-Gene SOC Family | ||
| 260 | |||
| 261 | config ARCH_ZYNQMP | ||
| 262 | bool "Xilinx ZynqMP Family" | ||
| 263 | help | ||
| 264 | This enables support for Xilinx ZynqMP Family | ||
| 265 | |||
| 266 | endmenu | ||
| 267 | 164 | ||
| 268 | menu "Bus support" | 165 | menu "Bus support" |
| 269 | 166 | ||
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms new file mode 100644 index 000000000000..23800a19a7bc --- /dev/null +++ b/arch/arm64/Kconfig.platforms | |||
| @@ -0,0 +1,125 @@ | |||
| 1 | menu "Platform selection" | ||
| 2 | |||
| 3 | config ARCH_BCM_IPROC | ||
| 4 | bool "Broadcom iProc SoC Family" | ||
| 5 | help | ||
| 6 | This enables support for Broadcom iProc based SoCs | ||
| 7 | |||
| 8 | config ARCH_BERLIN | ||
| 9 | bool "Marvell Berlin SoC Family" | ||
| 10 | select DW_APB_ICTL | ||
| 11 | help | ||
| 12 | This enables support for Marvell Berlin SoC Family | ||
| 13 | |||
| 14 | config ARCH_EXYNOS | ||
| 15 | bool | ||
| 16 | help | ||
| 17 | This enables support for Samsung Exynos SoC family | ||
| 18 | |||
| 19 | config ARCH_EXYNOS7 | ||
| 20 | bool "ARMv8 based Samsung Exynos7" | ||
| 21 | select ARCH_EXYNOS | ||
| 22 | select COMMON_CLK_SAMSUNG | ||
| 23 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | ||
| 24 | select HAVE_S3C_RTC if RTC_CLASS | ||
| 25 | select PINCTRL | ||
| 26 | select PINCTRL_EXYNOS | ||
| 27 | |||
| 28 | help | ||
| 29 | This enables support for Samsung Exynos7 SoC family | ||
| 30 | |||
| 31 | config ARCH_FSL_LS2085A | ||
| 32 | bool "Freescale LS2085A SOC" | ||
| 33 | help | ||
| 34 | This enables support for Freescale LS2085A SOC. | ||
| 35 | |||
| 36 | config ARCH_HISI | ||
| 37 | bool "Hisilicon SoC Family" | ||
| 38 | help | ||
| 39 | This enables support for Hisilicon ARMv8 SoC family | ||
| 40 | |||
| 41 | config ARCH_MEDIATEK | ||
| 42 | bool "Mediatek MT65xx & MT81xx ARMv8 SoC" | ||
| 43 | select ARM_GIC | ||
| 44 | select PINCTRL | ||
| 45 | help | ||
| 46 | Support for Mediatek MT65xx & MT81xx ARMv8 SoCs | ||
| 47 | |||
| 48 | config ARCH_QCOM | ||
| 49 | bool "Qualcomm Platforms" | ||
| 50 | select PINCTRL | ||
| 51 | help | ||
| 52 | This enables support for the ARMv8 based Qualcomm chipsets. | ||
| 53 | |||
| 54 | config ARCH_ROCKCHIP | ||
| 55 | bool "Rockchip Platforms" | ||
| 56 | select ARCH_HAS_RESET_CONTROLLER | ||
| 57 | select ARCH_REQUIRE_GPIOLIB | ||
| 58 | select PINCTRL | ||
| 59 | select PINCTRL_ROCKCHIP | ||
| 60 | help | ||
| 61 | This enables support for the ARMv8 based Rockchip chipsets, | ||
| 62 | like the RK3368. | ||
| 63 | |||
| 64 | config ARCH_SEATTLE | ||
| 65 | bool "AMD Seattle SoC Family" | ||
| 66 | help | ||
| 67 | This enables support for AMD Seattle SOC Family | ||
| 68 | |||
| 69 | config ARCH_TEGRA | ||
| 70 | bool "NVIDIA Tegra SoC Family" | ||
| 71 | select ARCH_HAS_RESET_CONTROLLER | ||
| 72 | select ARCH_REQUIRE_GPIOLIB | ||
| 73 | select CLKDEV_LOOKUP | ||
| 74 | select CLKSRC_MMIO | ||
| 75 | select CLKSRC_OF | ||
| 76 | select GENERIC_CLOCKEVENTS | ||
| 77 | select HAVE_CLK | ||
| 78 | select PINCTRL | ||
| 79 | select RESET_CONTROLLER | ||
| 80 | help | ||
| 81 | This enables support for the NVIDIA Tegra SoC family. | ||
| 82 | |||
| 83 | config ARCH_TEGRA_132_SOC | ||
| 84 | bool "NVIDIA Tegra132 SoC" | ||
| 85 | depends on ARCH_TEGRA | ||
| 86 | select PINCTRL_TEGRA124 | ||
| 87 | select USB_ULPI if USB_PHY | ||
| 88 | select USB_ULPI_VIEWPORT if USB_PHY | ||
| 89 | help | ||
| 90 | Enable support for NVIDIA Tegra132 SoC, based on the Denver | ||
| 91 | ARMv8 CPU. The Tegra132 SoC is similar to the Tegra124 SoC, | ||
| 92 | but contains an NVIDIA Denver CPU complex in place of | ||
| 93 | Tegra124's "4+1" Cortex-A15 CPU complex. | ||
| 94 | |||
| 95 | config ARCH_SPRD | ||
| 96 | bool "Spreadtrum SoC platform" | ||
| 97 | help | ||
| 98 | Support for Spreadtrum ARM based SoCs | ||
| 99 | |||
| 100 | config ARCH_THUNDER | ||
| 101 | bool "Cavium Inc. Thunder SoC Family" | ||
| 102 | help | ||
| 103 | This enables support for Cavium's Thunder Family of SoCs. | ||
| 104 | |||
| 105 | config ARCH_VEXPRESS | ||
| 106 | bool "ARMv8 software model (Versatile Express)" | ||
| 107 | select ARCH_REQUIRE_GPIOLIB | ||
| 108 | select COMMON_CLK_VERSATILE | ||
| 109 | select POWER_RESET_VEXPRESS | ||
| 110 | select VEXPRESS_CONFIG | ||
| 111 | help | ||
| 112 | This enables support for the ARMv8 software model (Versatile | ||
| 113 | Express). | ||
| 114 | |||
| 115 | config ARCH_XGENE | ||
| 116 | bool "AppliedMicro X-Gene SOC Family" | ||
| 117 | help | ||
| 118 | This enables support for AppliedMicro X-Gene SOC Family | ||
| 119 | |||
| 120 | config ARCH_ZYNQMP | ||
| 121 | bool "Xilinx ZynqMP Family" | ||
| 122 | help | ||
| 123 | This enables support for Xilinx ZynqMP Family | ||
| 124 | |||
| 125 | endmenu | ||
diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile index 38913be23695..d9f88330e7b0 100644 --- a/arch/arm64/boot/dts/Makefile +++ b/arch/arm64/boot/dts/Makefile | |||
| @@ -1,12 +1,15 @@ | |||
| 1 | dts-dirs += amd | 1 | dts-dirs += amd |
| 2 | dts-dirs += apm | 2 | dts-dirs += apm |
| 3 | dts-dirs += arm | 3 | dts-dirs += arm |
| 4 | dts-dirs += broadcom | ||
| 4 | dts-dirs += cavium | 5 | dts-dirs += cavium |
| 5 | dts-dirs += exynos | 6 | dts-dirs += exynos |
| 6 | dts-dirs += freescale | 7 | dts-dirs += freescale |
| 7 | dts-dirs += hisilicon | 8 | dts-dirs += hisilicon |
| 9 | dts-dirs += marvell | ||
| 8 | dts-dirs += mediatek | 10 | dts-dirs += mediatek |
| 9 | dts-dirs += qcom | 11 | dts-dirs += qcom |
| 12 | dts-dirs += rockchip | ||
| 10 | dts-dirs += sprd | 13 | dts-dirs += sprd |
| 11 | dts-dirs += xilinx | 14 | dts-dirs += xilinx |
| 12 | 15 | ||
diff --git a/arch/arm64/boot/dts/arm/juno-motherboard.dtsi b/arch/arm64/boot/dts/arm/juno-motherboard.dtsi index 021e0f40f419..637e046f0e36 100644 --- a/arch/arm64/boot/dts/arm/juno-motherboard.dtsi +++ b/arch/arm64/boot/dts/arm/juno-motherboard.dtsi | |||
| @@ -136,6 +136,8 @@ | |||
| 136 | clock-names = "refclk", "timclk", "apb_pclk"; | 136 | clock-names = "refclk", "timclk", "apb_pclk"; |
| 137 | #clock-cells = <1>; | 137 | #clock-cells = <1>; |
| 138 | clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; | 138 | clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; |
| 139 | assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; | ||
| 140 | assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; | ||
| 139 | }; | 141 | }; |
| 140 | 142 | ||
| 141 | apbregs@010000 { | 143 | apbregs@010000 { |
diff --git a/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi b/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi index c46cbb29f3c6..88a7583ed7a7 100644 --- a/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi +++ b/arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi | |||
| @@ -74,6 +74,8 @@ | |||
| 74 | clock-names = "refclk", "timclk", "apb_pclk"; | 74 | clock-names = "refclk", "timclk", "apb_pclk"; |
| 75 | #clock-cells = <1>; | 75 | #clock-cells = <1>; |
| 76 | clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; | 76 | clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; |
| 77 | assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>; | ||
| 78 | assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>; | ||
| 77 | }; | 79 | }; |
| 78 | 80 | ||
| 79 | aaci@040000 { | 81 | aaci@040000 { |
diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile new file mode 100644 index 000000000000..e21fe66f1837 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/Makefile | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb | ||
| 2 | |||
| 3 | always := $(dtb-y) | ||
| 4 | subdir-y := $(dts-dirs) | ||
| 5 | clean-files := *.dtb | ||
diff --git a/arch/arm64/boot/dts/broadcom/ns2-svk.dts b/arch/arm64/boot/dts/broadcom/ns2-svk.dts new file mode 100644 index 000000000000..244baf879dc9 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/ns2-svk.dts | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | /* | ||
| 2 | * BSD LICENSE | ||
| 3 | * | ||
| 4 | * Copyright(c) 2015 Broadcom Corporation. All rights reserved. | ||
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * | ||
| 10 | * * Redistributions of source code must retain the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer. | ||
| 12 | * * Redistributions in binary form must reproduce the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer in | ||
| 14 | * the documentation and/or other materials provided with the | ||
| 15 | * distribution. | ||
| 16 | * * Neither the name of Broadcom Corporation nor the names of its | ||
| 17 | * contributors may be used to endorse or promote products derived | ||
| 18 | * from this software without specific prior written permission. | ||
| 19 | * | ||
| 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| 21 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 24 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 25 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 26 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 27 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 28 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 29 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| 30 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 31 | */ | ||
| 32 | |||
| 33 | /dts-v1/; | ||
| 34 | |||
| 35 | #include "ns2.dtsi" | ||
| 36 | |||
| 37 | / { | ||
| 38 | model = "Broadcom NS2 SVK"; | ||
| 39 | compatible = "brcm,ns2-svk", "brcm,ns2"; | ||
| 40 | |||
| 41 | aliases { | ||
| 42 | serial0 = &uart3; | ||
| 43 | }; | ||
| 44 | |||
| 45 | chosen { | ||
| 46 | stdout-path = "serial0:115200n8"; | ||
| 47 | }; | ||
| 48 | |||
| 49 | memory { | ||
| 50 | device_type = "memory"; | ||
| 51 | reg = <0x000000000 0x80000000 0x00000000 0x40000000>; | ||
| 52 | }; | ||
| 53 | |||
| 54 | soc: soc { | ||
| 55 | uart3: serial@66130000 { | ||
| 56 | status = "ok"; | ||
| 57 | }; | ||
| 58 | }; | ||
| 59 | }; | ||
diff --git a/arch/arm64/boot/dts/broadcom/ns2.dtsi b/arch/arm64/boot/dts/broadcom/ns2.dtsi new file mode 100644 index 000000000000..3c92d92278e5 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/ns2.dtsi | |||
| @@ -0,0 +1,118 @@ | |||
| 1 | /* | ||
| 2 | * BSD LICENSE | ||
| 3 | * | ||
| 4 | * Copyright(c) 2015 Broadcom Corporation. All rights reserved. | ||
| 5 | * | ||
| 6 | * Redistribution and use in source and binary forms, with or without | ||
| 7 | * modification, are permitted provided that the following conditions | ||
| 8 | * are met: | ||
| 9 | * | ||
| 10 | * * Redistributions of source code must retain the above copyright | ||
| 11 | * notice, this list of conditions and the following disclaimer. | ||
| 12 | * * Redistributions in binary form must reproduce the above copyright | ||
| 13 | * notice, this list of conditions and the following disclaimer in | ||
| 14 | * the documentation and/or other materials provided with the | ||
| 15 | * distribution. | ||
| 16 | * * Neither the name of Broadcom Corporation nor the names of its | ||
| 17 | * contributors may be used to endorse or promote products derived | ||
| 18 | * from this software without specific prior written permission. | ||
| 19 | * | ||
| 20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
| 21 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
| 22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
| 23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
| 24 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
| 25 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 26 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
| 27 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
| 28 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
| 29 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
| 30 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 31 | */ | ||
| 32 | |||
| 33 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 34 | |||
| 35 | /memreserve/ 0x84b00000 0x00000008; | ||
| 36 | |||
| 37 | / { | ||
| 38 | compatible = "brcm,ns2"; | ||
| 39 | interrupt-parent = <&gic>; | ||
| 40 | #address-cells = <2>; | ||
| 41 | #size-cells = <2>; | ||
| 42 | |||
| 43 | cpus { | ||
| 44 | #address-cells = <2>; | ||
| 45 | #size-cells = <0>; | ||
| 46 | |||
| 47 | cpu@0 { | ||
| 48 | device_type = "cpu"; | ||
| 49 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
| 50 | reg = <0 0>; | ||
| 51 | enable-method = "spin-table"; | ||
| 52 | cpu-release-addr = <0 0x84b00000>; | ||
| 53 | }; | ||
| 54 | |||
| 55 | cpu@1 { | ||
| 56 | device_type = "cpu"; | ||
| 57 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
| 58 | reg = <0 1>; | ||
| 59 | enable-method = "spin-table"; | ||
| 60 | cpu-release-addr = <0 0x84b00000>; | ||
| 61 | }; | ||
| 62 | |||
| 63 | cpu@2 { | ||
| 64 | device_type = "cpu"; | ||
| 65 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
| 66 | reg = <0 2>; | ||
| 67 | enable-method = "spin-table"; | ||
| 68 | cpu-release-addr = <0 0x84b00000>; | ||
| 69 | }; | ||
| 70 | |||
| 71 | cpu@3 { | ||
| 72 | device_type = "cpu"; | ||
| 73 | compatible = "arm,cortex-a57", "arm,armv8"; | ||
| 74 | reg = <0 3>; | ||
| 75 | enable-method = "spin-table"; | ||
| 76 | cpu-release-addr = <0 0x84b00000>; | ||
| 77 | }; | ||
| 78 | }; | ||
| 79 | |||
| 80 | timer { | ||
| 81 | compatible = "arm,armv8-timer"; | ||
| 82 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) | | ||
| 83 | IRQ_TYPE_EDGE_RISING)>, | ||
| 84 | <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) | | ||
| 85 | IRQ_TYPE_EDGE_RISING)>, | ||
| 86 | <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) | | ||
| 87 | IRQ_TYPE_EDGE_RISING)>, | ||
| 88 | <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) | | ||
| 89 | IRQ_TYPE_EDGE_RISING)>; | ||
| 90 | }; | ||
| 91 | |||
| 92 | soc: soc { | ||
| 93 | compatible = "simple-bus"; | ||
| 94 | #address-cells = <1>; | ||
| 95 | #size-cells = <1>; | ||
| 96 | ranges = <0 0 0 0xffffffff>; | ||
| 97 | |||
| 98 | gic: interrupt-controller@65210000 { | ||
| 99 | compatible = "arm,gic-400"; | ||
| 100 | #interrupt-cells = <3>; | ||
| 101 | interrupt-controller; | ||
| 102 | reg = <0x65210000 0x1000>, | ||
| 103 | <0x65220000 0x1000>, | ||
| 104 | <0x65240000 0x2000>, | ||
| 105 | <0x65260000 0x1000>; | ||
| 106 | }; | ||
| 107 | |||
| 108 | uart3: serial@66130000 { | ||
| 109 | compatible = "snps,dw-apb-uart"; | ||
| 110 | reg = <0x66130000 0x100>; | ||
| 111 | interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>; | ||
| 112 | reg-shift = <2>; | ||
| 113 | reg-io-width = <4>; | ||
| 114 | clock-frequency = <23961600>; | ||
| 115 | status = "disabled"; | ||
| 116 | }; | ||
| 117 | }; | ||
| 118 | }; | ||
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile new file mode 100644 index 000000000000..e2f6afa7f849 --- /dev/null +++ b/arch/arm64/boot/dts/marvell/Makefile | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | dtb-$(CONFIG_ARCH_BERLIN) += berlin4ct-dmp.dtb | ||
| 2 | |||
| 3 | always := $(dtb-y) | ||
| 4 | subdir-y := $(dts-dirs) | ||
| 5 | clean-files := *.dtb | ||
diff --git a/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts b/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts new file mode 100644 index 000000000000..0d70d39fa8d2 --- /dev/null +++ b/arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2015 Marvell Technology Group Ltd. | ||
| 3 | * | ||
| 4 | * Author: Jisheng Zhang <jszhang@marvell.com> | ||
| 5 | * | ||
| 6 | * This file is dual-licensed: you can use it either under the terms | ||
| 7 | * of the GPLv2 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 "berlin4ct.dtsi" | ||
| 48 | |||
| 49 | / { | ||
| 50 | model = "Marvell BG4CT DMP board"; | ||
| 51 | compatible = "marvell,berlin4ct-dmp", "marvell,berlin4ct", "marvell,berlin"; | ||
| 52 | |||
| 53 | chosen { | ||
| 54 | stdout-path = "serial0:115200n8"; | ||
| 55 | }; | ||
| 56 | |||
| 57 | memory { | ||
| 58 | device_type = "memory"; | ||
| 59 | /* the first 16MB is for firmwares' usage */ | ||
| 60 | reg = <0 0x01000000 0 0x7f000000>; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | |||
| 64 | &uart0 { | ||
| 65 | status = "okay"; | ||
| 66 | }; | ||
diff --git a/arch/arm64/boot/dts/marvell/berlin4ct.dtsi b/arch/arm64/boot/dts/marvell/berlin4ct.dtsi new file mode 100644 index 000000000000..dd4a10d605d9 --- /dev/null +++ b/arch/arm64/boot/dts/marvell/berlin4ct.dtsi | |||
| @@ -0,0 +1,164 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2015 Marvell Technology Group Ltd. | ||
| 3 | * | ||
| 4 | * Author: Jisheng Zhang <jszhang@marvell.com> | ||
| 5 | * | ||
| 6 | * This file is dual-licensed: you can use it either under the terms | ||
| 7 | * of the GPLv2 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 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 46 | |||
| 47 | / { | ||
| 48 | compatible = "marvell,berlin4ct", "marvell,berlin"; | ||
| 49 | interrupt-parent = <&gic>; | ||
| 50 | #address-cells = <2>; | ||
| 51 | #size-cells = <2>; | ||
| 52 | |||
| 53 | aliases { | ||
| 54 | serial0 = &uart0; | ||
| 55 | }; | ||
| 56 | |||
| 57 | psci { | ||
| 58 | compatible = "arm,psci-0.2"; | ||
| 59 | method = "smc"; | ||
| 60 | }; | ||
| 61 | |||
| 62 | cpus { | ||
| 63 | #address-cells = <1>; | ||
| 64 | #size-cells = <0>; | ||
| 65 | |||
| 66 | cpu0: cpu@0 { | ||
| 67 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 68 | device_type = "cpu"; | ||
| 69 | reg = <0x0>; | ||
| 70 | enable-method = "psci"; | ||
| 71 | }; | ||
| 72 | |||
| 73 | cpu1: cpu@1 { | ||
| 74 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 75 | device_type = "cpu"; | ||
| 76 | reg = <0x1>; | ||
| 77 | enable-method = "psci"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | cpu2: cpu@2 { | ||
| 81 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 82 | device_type = "cpu"; | ||
| 83 | reg = <0x2>; | ||
| 84 | enable-method = "psci"; | ||
| 85 | }; | ||
| 86 | |||
| 87 | cpu3: cpu@3 { | ||
| 88 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 89 | device_type = "cpu"; | ||
| 90 | reg = <0x3>; | ||
| 91 | enable-method = "psci"; | ||
| 92 | }; | ||
| 93 | }; | ||
| 94 | |||
| 95 | osc: osc { | ||
| 96 | compatible = "fixed-clock"; | ||
| 97 | #clock-cells = <0>; | ||
| 98 | clock-frequency = <25000000>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | pmu { | ||
| 102 | compatible = "arm,armv8-pmuv3"; | ||
| 103 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, | ||
| 104 | <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, | ||
| 105 | <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, | ||
| 106 | <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | ||
| 107 | interrupt-affinity = <&cpu0>, | ||
| 108 | <&cpu1>, | ||
| 109 | <&cpu2>, | ||
| 110 | <&cpu3>; | ||
| 111 | }; | ||
| 112 | |||
| 113 | timer { | ||
| 114 | compatible = "arm,armv8-timer"; | ||
| 115 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
| 116 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
| 117 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | ||
| 118 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | ||
| 119 | }; | ||
| 120 | |||
| 121 | soc { | ||
| 122 | compatible = "simple-bus"; | ||
| 123 | #address-cells = <1>; | ||
| 124 | #size-cells = <1>; | ||
| 125 | ranges = <0 0 0xf7000000 0x1000000>; | ||
| 126 | |||
| 127 | gic: interrupt-controller@901000 { | ||
| 128 | compatible = "arm,gic-400"; | ||
| 129 | #interrupt-cells = <3>; | ||
| 130 | interrupt-controller; | ||
| 131 | reg = <0x901000 0x1000>, | ||
| 132 | <0x902000 0x2000>, | ||
| 133 | <0x904000 0x2000>, | ||
| 134 | <0x906000 0x2000>; | ||
| 135 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | ||
| 136 | }; | ||
| 137 | |||
| 138 | apb@fc0000 { | ||
| 139 | compatible = "simple-bus"; | ||
| 140 | #address-cells = <1>; | ||
| 141 | #size-cells = <1>; | ||
| 142 | ranges = <0 0xfc0000 0x10000>; | ||
| 143 | interrupt-parent = <&sic>; | ||
| 144 | |||
| 145 | sic: interrupt-controller@1000 { | ||
| 146 | compatible = "snps,dw-apb-ictl"; | ||
| 147 | reg = <0x1000 0x30>; | ||
| 148 | interrupt-controller; | ||
| 149 | #interrupt-cells = <1>; | ||
| 150 | interrupt-parent = <&gic>; | ||
| 151 | interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; | ||
| 152 | }; | ||
| 153 | |||
| 154 | uart0: uart@d000 { | ||
| 155 | compatible = "snps,dw-apb-uart"; | ||
| 156 | reg = <0xd000 0x100>; | ||
| 157 | interrupts = <8>; | ||
| 158 | clocks = <&osc>; | ||
| 159 | reg-shift = <2>; | ||
| 160 | status = "disabled"; | ||
| 161 | }; | ||
| 162 | }; | ||
| 163 | }; | ||
| 164 | }; | ||
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile index 3ce24622b231..e0a4bff2fc17 100644 --- a/arch/arm64/boot/dts/mediatek/Makefile +++ b/arch/arm64/boot/dts/mediatek/Makefile | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb | ||
| 1 | dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb | 2 | dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb |
| 2 | 3 | ||
| 3 | always := $(dtb-y) | 4 | always := $(dtb-y) |
diff --git a/arch/arm64/boot/dts/mediatek/mt6795-evb.dts b/arch/arm64/boot/dts/mediatek/mt6795-evb.dts new file mode 100644 index 000000000000..ad665f5835f0 --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt6795-evb.dts | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2015 MediaTek Inc. | ||
| 3 | * Author: Mars.C <mars.cheng@mediatek.com> | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License version 2 as | ||
| 7 | * published by the Free Software Foundation. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | */ | ||
| 14 | |||
| 15 | /dts-v1/; | ||
| 16 | #include "mt6795.dtsi" | ||
| 17 | |||
| 18 | / { | ||
| 19 | model = "MediaTek MT6795 Evaluation Board"; | ||
| 20 | compatible = "mediatek,mt6795-evb", "mediatek,mt6795"; | ||
| 21 | |||
| 22 | aliases { | ||
| 23 | serial0 = &uart0; | ||
| 24 | serial1 = &uart1; | ||
| 25 | serial2 = &uart2; | ||
| 26 | serial3 = &uart3; | ||
| 27 | }; | ||
| 28 | |||
| 29 | memory@40000000 { | ||
| 30 | device_type = "memory"; | ||
| 31 | reg = <0 0x40000000 0 0x1e800000>; | ||
| 32 | }; | ||
| 33 | |||
| 34 | chosen { | ||
| 35 | stdout-path = "serial0:921600n8"; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | |||
| 39 | &uart0 { | ||
| 40 | status = "okay"; | ||
| 41 | }; | ||
diff --git a/arch/arm64/boot/dts/mediatek/mt6795.dtsi b/arch/arm64/boot/dts/mediatek/mt6795.dtsi new file mode 100644 index 000000000000..c85659d0ff5d --- /dev/null +++ b/arch/arm64/boot/dts/mediatek/mt6795.dtsi | |||
| @@ -0,0 +1,175 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2015 MediaTek Inc. | ||
| 3 | * Author: Mars.C <mars.cheng@mediatek.com> | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License version 2 as | ||
| 7 | * published by the Free Software Foundation. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 15 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 16 | |||
| 17 | / { | ||
| 18 | compatible = "mediatek,mt6795"; | ||
| 19 | interrupt-parent = <&sysirq>; | ||
| 20 | #address-cells = <2>; | ||
| 21 | #size-cells = <2>; | ||
| 22 | |||
| 23 | psci { | ||
| 24 | compatible = "arm,psci-0.2"; | ||
| 25 | method = "smc"; | ||
| 26 | }; | ||
| 27 | |||
| 28 | cpus { | ||
| 29 | #address-cells = <1>; | ||
| 30 | #size-cells = <0>; | ||
| 31 | |||
| 32 | cpu0: cpu@0 { | ||
| 33 | device_type = "cpu"; | ||
| 34 | compatible = "arm,cortex-a53"; | ||
| 35 | enable-method = "psci"; | ||
| 36 | reg = <0x000>; | ||
| 37 | }; | ||
| 38 | |||
| 39 | cpu1: cpu@1 { | ||
| 40 | device_type = "cpu"; | ||
| 41 | compatible = "arm,cortex-a53"; | ||
| 42 | enable-method = "psci"; | ||
| 43 | reg = <0x001>; | ||
| 44 | }; | ||
| 45 | |||
| 46 | cpu2: cpu@2 { | ||
| 47 | device_type = "cpu"; | ||
| 48 | compatible = "arm,cortex-a53"; | ||
| 49 | enable-method = "psci"; | ||
| 50 | reg = <0x002>; | ||
| 51 | }; | ||
| 52 | |||
| 53 | cpu3: cpu@3 { | ||
| 54 | device_type = "cpu"; | ||
| 55 | compatible = "arm,cortex-a53"; | ||
| 56 | enable-method = "psci"; | ||
| 57 | reg = <0x003>; | ||
| 58 | }; | ||
| 59 | |||
| 60 | cpu4: cpu@100 { | ||
| 61 | device_type = "cpu"; | ||
| 62 | compatible = "arm,cortex-a53"; | ||
| 63 | enable-method = "psci"; | ||
| 64 | reg = <0x100>; | ||
| 65 | }; | ||
| 66 | |||
| 67 | cpu5: cpu@101 { | ||
| 68 | device_type = "cpu"; | ||
| 69 | compatible = "arm,cortex-a53"; | ||
| 70 | enable-method = "psci"; | ||
| 71 | reg = <0x101>; | ||
| 72 | }; | ||
| 73 | |||
| 74 | cpu6: cpu@102 { | ||
| 75 | device_type = "cpu"; | ||
| 76 | compatible = "arm,cortex-a53"; | ||
| 77 | enable-method = "psci"; | ||
| 78 | reg = <0x102>; | ||
| 79 | }; | ||
| 80 | |||
| 81 | cpu7: cpu@103 { | ||
| 82 | device_type = "cpu"; | ||
| 83 | compatible = "arm,cortex-a53"; | ||
| 84 | enable-method = "psci"; | ||
| 85 | reg = <0x103>; | ||
| 86 | }; | ||
| 87 | }; | ||
| 88 | |||
| 89 | system_clk: dummy13m { | ||
| 90 | compatible = "fixed-clock"; | ||
| 91 | clock-frequency = <13000000>; | ||
| 92 | #clock-cells = <0>; | ||
| 93 | }; | ||
| 94 | |||
| 95 | rtc_clk: dummy32k { | ||
| 96 | compatible = "fixed-clock"; | ||
| 97 | clock-frequency = <32000>; | ||
| 98 | #clock-cells = <0>; | ||
| 99 | }; | ||
| 100 | |||
| 101 | uart_clk: dummy26m { | ||
| 102 | compatible = "fixed-clock"; | ||
| 103 | clock-frequency = <26000000>; | ||
| 104 | #clock-cells = <0>; | ||
| 105 | }; | ||
| 106 | |||
| 107 | timer { | ||
| 108 | compatible = "arm,armv8-timer"; | ||
| 109 | interrupt-parent = <&gic>; | ||
| 110 | interrupts = <GIC_PPI 13 | ||
| 111 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, | ||
| 112 | <GIC_PPI 14 | ||
| 113 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, | ||
| 114 | <GIC_PPI 11 | ||
| 115 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>, | ||
| 116 | <GIC_PPI 10 | ||
| 117 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>; | ||
| 118 | }; | ||
| 119 | |||
| 120 | sysirq: intpol-controller@10200620 { | ||
| 121 | compatible = "mediatek,mt6795-sysirq", | ||
| 122 | "mediatek,mt6577-sysirq"; | ||
| 123 | interrupt-controller; | ||
| 124 | #interrupt-cells = <3>; | ||
| 125 | interrupt-parent = <&gic>; | ||
| 126 | reg = <0 0x10200620 0 0x20>; | ||
| 127 | }; | ||
| 128 | |||
| 129 | gic: interrupt-controller@10221000 { | ||
| 130 | compatible = "arm,gic-400"; | ||
| 131 | #interrupt-cells = <3>; | ||
| 132 | interrupt-parent = <&gic>; | ||
| 133 | interrupt-controller; | ||
| 134 | reg = <0 0x10221000 0 0x1000>, | ||
| 135 | <0 0x10222000 0 0x2000>, | ||
| 136 | <0 0x10224000 0 0x2000>, | ||
| 137 | <0 0x10226000 0 0x2000>; | ||
| 138 | }; | ||
| 139 | |||
| 140 | uart0: serial@11002000 { | ||
| 141 | compatible = "mediatek,mt6795-uart", | ||
| 142 | "mediatek,mt6577-uart"; | ||
| 143 | reg = <0 0x11002000 0 0x400>; | ||
| 144 | interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; | ||
| 145 | clocks = <&uart_clk>; | ||
| 146 | status = "disabled"; | ||
| 147 | }; | ||
| 148 | |||
| 149 | uart1: serial@11003000 { | ||
| 150 | compatible = "mediatek,mt6795-uart", | ||
| 151 | "mediatek,mt6577-uart"; | ||
| 152 | reg = <0 0x11003000 0 0x400>; | ||
| 153 | interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; | ||
| 154 | clocks = <&uart_clk>; | ||
| 155 | status = "disabled"; | ||
| 156 | }; | ||
| 157 | |||
| 158 | uart2: serial@11004000 { | ||
| 159 | compatible = "mediatek,mt6795-uart", | ||
| 160 | "mediatek,mt6577-uart"; | ||
| 161 | reg = <0 0x11004000 0 0x400>; | ||
| 162 | interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; | ||
| 163 | clocks = <&uart_clk>; | ||
| 164 | status = "disabled"; | ||
| 165 | }; | ||
| 166 | |||
| 167 | uart3: serial@11005000 { | ||
| 168 | compatible = "mediatek,mt6795-uart", | ||
| 169 | "mediatek,mt6577-uart"; | ||
| 170 | reg = <0 0x11005000 0 0x400>; | ||
| 171 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>; | ||
| 172 | clocks = <&uart_clk>; | ||
| 173 | status = "disabled"; | ||
| 174 | }; | ||
| 175 | }; | ||
diff --git a/arch/arm64/boot/dts/mediatek/mt8173-evb.dts b/arch/arm64/boot/dts/mediatek/mt8173-evb.dts index d0ab012fa379..4be66cadbc7c 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173-evb.dts +++ b/arch/arm64/boot/dts/mediatek/mt8173-evb.dts | |||
| @@ -34,6 +34,359 @@ | |||
| 34 | chosen { }; | 34 | chosen { }; |
| 35 | }; | 35 | }; |
| 36 | 36 | ||
| 37 | &i2c1 { | ||
| 38 | status = "okay"; | ||
| 39 | |||
| 40 | buck: da9211@68 { | ||
| 41 | compatible = "dlg,da9211"; | ||
| 42 | reg = <0x68>; | ||
| 43 | |||
| 44 | regulators { | ||
| 45 | da9211_vcpu_reg: BUCKA { | ||
| 46 | regulator-name = "VBUCKA"; | ||
| 47 | regulator-min-microvolt = < 700000>; | ||
| 48 | regulator-max-microvolt = <1310000>; | ||
| 49 | regulator-min-microamp = <2000000>; | ||
| 50 | regulator-max-microamp = <4400000>; | ||
| 51 | regulator-ramp-delay = <10000>; | ||
| 52 | regulator-always-on; | ||
| 53 | }; | ||
| 54 | |||
| 55 | da9211_vgpu_reg: BUCKB { | ||
| 56 | regulator-name = "VBUCKB"; | ||
| 57 | regulator-min-microvolt = < 700000>; | ||
| 58 | regulator-max-microvolt = <1310000>; | ||
| 59 | regulator-min-microamp = <2000000>; | ||
| 60 | regulator-max-microamp = <3000000>; | ||
| 61 | regulator-ramp-delay = <10000>; | ||
| 62 | }; | ||
| 63 | }; | ||
| 64 | }; | ||
| 65 | }; | ||
| 66 | |||
| 67 | &mmc0 { | ||
| 68 | status = "okay"; | ||
| 69 | pinctrl-names = "default", "state_uhs"; | ||
| 70 | pinctrl-0 = <&mmc0_pins_default>; | ||
| 71 | pinctrl-1 = <&mmc0_pins_uhs>; | ||
| 72 | bus-width = <8>; | ||
| 73 | max-frequency = <50000000>; | ||
| 74 | cap-mmc-highspeed; | ||
| 75 | vmmc-supply = <&mt6397_vemc_3v3_reg>; | ||
| 76 | vqmmc-supply = <&mt6397_vio18_reg>; | ||
| 77 | non-removable; | ||
| 78 | }; | ||
| 79 | |||
| 80 | &mmc1 { | ||
| 81 | status = "okay"; | ||
| 82 | pinctrl-names = "default", "state_uhs"; | ||
| 83 | pinctrl-0 = <&mmc1_pins_default>; | ||
| 84 | pinctrl-1 = <&mmc1_pins_uhs>; | ||
| 85 | bus-width = <4>; | ||
| 86 | max-frequency = <50000000>; | ||
| 87 | cap-sd-highspeed; | ||
| 88 | sd-uhs-sdr25; | ||
| 89 | cd-gpios = <&pio 132 0>; | ||
| 90 | vmmc-supply = <&mt6397_vmch_reg>; | ||
| 91 | vqmmc-supply = <&mt6397_vmc_reg>; | ||
| 92 | }; | ||
| 93 | |||
| 94 | &pio { | ||
| 95 | mmc0_pins_default: mmc0default { | ||
| 96 | pins_cmd_dat { | ||
| 97 | pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, | ||
| 98 | <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>, | ||
| 99 | <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>, | ||
| 100 | <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>, | ||
| 101 | <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>, | ||
| 102 | <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>, | ||
| 103 | <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>, | ||
| 104 | <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>, | ||
| 105 | <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>; | ||
| 106 | input-enable; | ||
| 107 | bias-pull-up; | ||
| 108 | }; | ||
| 109 | |||
| 110 | pins_clk { | ||
| 111 | pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>; | ||
| 112 | bias-pull-down; | ||
| 113 | }; | ||
| 114 | |||
| 115 | pins_rst { | ||
| 116 | pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>; | ||
| 117 | bias-pull-up; | ||
| 118 | }; | ||
| 119 | }; | ||
| 120 | |||
| 121 | mmc1_pins_default: mmc1default { | ||
| 122 | pins_cmd_dat { | ||
| 123 | pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>, | ||
| 124 | <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>, | ||
| 125 | <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>, | ||
| 126 | <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>, | ||
| 127 | <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>; | ||
| 128 | input-enable; | ||
| 129 | drive-strength = <MTK_DRIVE_4mA>; | ||
| 130 | bias-pull-up = <MTK_PUPD_SET_R1R0_10>; | ||
| 131 | }; | ||
| 132 | |||
| 133 | pins_clk { | ||
| 134 | pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>; | ||
| 135 | bias-pull-down; | ||
| 136 | drive-strength = <MTK_DRIVE_4mA>; | ||
| 137 | }; | ||
| 138 | |||
| 139 | pins_insert { | ||
| 140 | pinmux = <MT8173_PIN_132_I2S0_DATA1__FUNC_GPIO132>; | ||
| 141 | bias-pull-up; | ||
| 142 | }; | ||
| 143 | }; | ||
| 144 | |||
| 145 | mmc0_pins_uhs: mmc0 { | ||
| 146 | pins_cmd_dat { | ||
| 147 | pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, | ||
| 148 | <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>, | ||
| 149 | <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>, | ||
| 150 | <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>, | ||
| 151 | <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>, | ||
| 152 | <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>, | ||
| 153 | <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>, | ||
| 154 | <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>, | ||
| 155 | <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>; | ||
| 156 | input-enable; | ||
| 157 | drive-strength = <MTK_DRIVE_2mA>; | ||
| 158 | bias-pull-up = <MTK_PUPD_SET_R1R0_01>; | ||
| 159 | }; | ||
| 160 | |||
| 161 | pins_clk { | ||
| 162 | pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>; | ||
| 163 | drive-strength = <MTK_DRIVE_2mA>; | ||
| 164 | bias-pull-down = <MTK_PUPD_SET_R1R0_01>; | ||
| 165 | }; | ||
| 166 | |||
| 167 | pins_rst { | ||
| 168 | pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>; | ||
| 169 | bias-pull-up; | ||
| 170 | }; | ||
| 171 | }; | ||
| 172 | |||
| 173 | mmc1_pins_uhs: mmc1 { | ||
| 174 | pins_cmd_dat { | ||
| 175 | pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>, | ||
| 176 | <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>, | ||
| 177 | <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>, | ||
| 178 | <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>, | ||
| 179 | <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>; | ||
| 180 | input-enable; | ||
| 181 | drive-strength = <MTK_DRIVE_4mA>; | ||
| 182 | bias-pull-up = <MTK_PUPD_SET_R1R0_10>; | ||
| 183 | }; | ||
| 184 | |||
| 185 | pins_clk { | ||
| 186 | pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>; | ||
| 187 | drive-strength = <MTK_DRIVE_4mA>; | ||
| 188 | bias-pull-down = <MTK_PUPD_SET_R1R0_10>; | ||
| 189 | }; | ||
| 190 | }; | ||
| 191 | }; | ||
| 192 | |||
| 193 | &pwrap { | ||
| 194 | pmic: mt6397 { | ||
| 195 | compatible = "mediatek,mt6397"; | ||
| 196 | interrupt-parent = <&pio>; | ||
| 197 | interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; | ||
| 198 | interrupt-controller; | ||
| 199 | #interrupt-cells = <2>; | ||
| 200 | |||
| 201 | mt6397regulator: mt6397regulator { | ||
| 202 | compatible = "mediatek,mt6397-regulator"; | ||
| 203 | |||
| 204 | mt6397_vpca15_reg: buck_vpca15 { | ||
| 205 | regulator-compatible = "buck_vpca15"; | ||
| 206 | regulator-name = "vpca15"; | ||
| 207 | regulator-min-microvolt = < 700000>; | ||
| 208 | regulator-max-microvolt = <1350000>; | ||
| 209 | regulator-ramp-delay = <12500>; | ||
| 210 | regulator-always-on; | ||
| 211 | }; | ||
| 212 | |||
| 213 | mt6397_vpca7_reg: buck_vpca7 { | ||
| 214 | regulator-compatible = "buck_vpca7"; | ||
| 215 | regulator-name = "vpca7"; | ||
| 216 | regulator-min-microvolt = < 700000>; | ||
| 217 | regulator-max-microvolt = <1350000>; | ||
| 218 | regulator-ramp-delay = <12500>; | ||
| 219 | regulator-enable-ramp-delay = <115>; | ||
| 220 | }; | ||
| 221 | |||
| 222 | mt6397_vsramca15_reg: buck_vsramca15 { | ||
| 223 | regulator-compatible = "buck_vsramca15"; | ||
| 224 | regulator-name = "vsramca15"; | ||
| 225 | regulator-min-microvolt = < 700000>; | ||
| 226 | regulator-max-microvolt = <1350000>; | ||
| 227 | regulator-ramp-delay = <12500>; | ||
| 228 | regulator-always-on; | ||
| 229 | }; | ||
| 230 | |||
| 231 | mt6397_vsramca7_reg: buck_vsramca7 { | ||
| 232 | regulator-compatible = "buck_vsramca7"; | ||
| 233 | regulator-name = "vsramca7"; | ||
| 234 | regulator-min-microvolt = < 700000>; | ||
| 235 | regulator-max-microvolt = <1350000>; | ||
| 236 | regulator-ramp-delay = <12500>; | ||
| 237 | regulator-always-on; | ||
| 238 | }; | ||
| 239 | |||
| 240 | mt6397_vcore_reg: buck_vcore { | ||
| 241 | regulator-compatible = "buck_vcore"; | ||
| 242 | regulator-name = "vcore"; | ||
| 243 | regulator-min-microvolt = < 700000>; | ||
| 244 | regulator-max-microvolt = <1350000>; | ||
| 245 | regulator-ramp-delay = <12500>; | ||
| 246 | regulator-always-on; | ||
| 247 | }; | ||
| 248 | |||
| 249 | mt6397_vgpu_reg: buck_vgpu { | ||
| 250 | regulator-compatible = "buck_vgpu"; | ||
| 251 | regulator-name = "vgpu"; | ||
| 252 | regulator-min-microvolt = < 700000>; | ||
| 253 | regulator-max-microvolt = <1350000>; | ||
| 254 | regulator-ramp-delay = <12500>; | ||
| 255 | regulator-enable-ramp-delay = <115>; | ||
| 256 | }; | ||
| 257 | |||
| 258 | mt6397_vdrm_reg: buck_vdrm { | ||
| 259 | regulator-compatible = "buck_vdrm"; | ||
| 260 | regulator-name = "vdrm"; | ||
| 261 | regulator-min-microvolt = <1200000>; | ||
| 262 | regulator-max-microvolt = <1400000>; | ||
| 263 | regulator-ramp-delay = <12500>; | ||
| 264 | regulator-always-on; | ||
| 265 | }; | ||
| 266 | |||
| 267 | mt6397_vio18_reg: buck_vio18 { | ||
| 268 | regulator-compatible = "buck_vio18"; | ||
| 269 | regulator-name = "vio18"; | ||
| 270 | regulator-min-microvolt = <1620000>; | ||
| 271 | regulator-max-microvolt = <1980000>; | ||
| 272 | regulator-ramp-delay = <12500>; | ||
| 273 | regulator-always-on; | ||
| 274 | }; | ||
| 275 | |||
| 276 | mt6397_vtcxo_reg: ldo_vtcxo { | ||
| 277 | regulator-compatible = "ldo_vtcxo"; | ||
| 278 | regulator-name = "vtcxo"; | ||
| 279 | regulator-always-on; | ||
| 280 | }; | ||
| 281 | |||
| 282 | mt6397_va28_reg: ldo_va28 { | ||
| 283 | regulator-compatible = "ldo_va28"; | ||
| 284 | regulator-name = "va28"; | ||
| 285 | regulator-always-on; | ||
| 286 | }; | ||
| 287 | |||
| 288 | mt6397_vcama_reg: ldo_vcama { | ||
| 289 | regulator-compatible = "ldo_vcama"; | ||
| 290 | regulator-name = "vcama"; | ||
| 291 | regulator-min-microvolt = <1500000>; | ||
| 292 | regulator-max-microvolt = <2800000>; | ||
| 293 | regulator-enable-ramp-delay = <218>; | ||
| 294 | }; | ||
| 295 | |||
| 296 | mt6397_vio28_reg: ldo_vio28 { | ||
| 297 | regulator-compatible = "ldo_vio28"; | ||
| 298 | regulator-name = "vio28"; | ||
| 299 | regulator-always-on; | ||
| 300 | }; | ||
| 301 | |||
| 302 | mt6397_vusb_reg: ldo_vusb { | ||
| 303 | regulator-compatible = "ldo_vusb"; | ||
| 304 | regulator-name = "vusb"; | ||
| 305 | }; | ||
| 306 | |||
| 307 | mt6397_vmc_reg: ldo_vmc { | ||
| 308 | regulator-compatible = "ldo_vmc"; | ||
| 309 | regulator-name = "vmc"; | ||
| 310 | regulator-min-microvolt = <1800000>; | ||
| 311 | regulator-max-microvolt = <3300000>; | ||
| 312 | regulator-enable-ramp-delay = <218>; | ||
| 313 | }; | ||
| 314 | |||
| 315 | mt6397_vmch_reg: ldo_vmch { | ||
| 316 | regulator-compatible = "ldo_vmch"; | ||
| 317 | regulator-name = "vmch"; | ||
| 318 | regulator-min-microvolt = <3000000>; | ||
| 319 | regulator-max-microvolt = <3300000>; | ||
| 320 | regulator-enable-ramp-delay = <218>; | ||
| 321 | }; | ||
| 322 | |||
| 323 | mt6397_vemc_3v3_reg: ldo_vemc3v3 { | ||
| 324 | regulator-compatible = "ldo_vemc3v3"; | ||
| 325 | regulator-name = "vemc_3v3"; | ||
| 326 | regulator-min-microvolt = <3000000>; | ||
| 327 | regulator-max-microvolt = <3300000>; | ||
| 328 | regulator-enable-ramp-delay = <218>; | ||
| 329 | }; | ||
| 330 | |||
| 331 | mt6397_vgp1_reg: ldo_vgp1 { | ||
| 332 | regulator-compatible = "ldo_vgp1"; | ||
| 333 | regulator-name = "vcamd"; | ||
| 334 | regulator-min-microvolt = <1220000>; | ||
| 335 | regulator-max-microvolt = <3300000>; | ||
| 336 | regulator-enable-ramp-delay = <240>; | ||
| 337 | }; | ||
| 338 | |||
| 339 | mt6397_vgp2_reg: ldo_vgp2 { | ||
| 340 | regulator-compatible = "ldo_vgp2"; | ||
| 341 | regulator-name = "vcamio"; | ||
| 342 | regulator-min-microvolt = <1000000>; | ||
| 343 | regulator-max-microvolt = <3300000>; | ||
| 344 | regulator-enable-ramp-delay = <218>; | ||
| 345 | }; | ||
| 346 | |||
| 347 | mt6397_vgp3_reg: ldo_vgp3 { | ||
| 348 | regulator-compatible = "ldo_vgp3"; | ||
| 349 | regulator-name = "vcamaf"; | ||
| 350 | regulator-min-microvolt = <1200000>; | ||
| 351 | regulator-max-microvolt = <3300000>; | ||
| 352 | regulator-enable-ramp-delay = <218>; | ||
| 353 | }; | ||
| 354 | |||
| 355 | mt6397_vgp4_reg: ldo_vgp4 { | ||
| 356 | regulator-compatible = "ldo_vgp4"; | ||
| 357 | regulator-name = "vgp4"; | ||
| 358 | regulator-min-microvolt = <1200000>; | ||
| 359 | regulator-max-microvolt = <3300000>; | ||
| 360 | regulator-enable-ramp-delay = <218>; | ||
| 361 | }; | ||
| 362 | |||
| 363 | mt6397_vgp5_reg: ldo_vgp5 { | ||
| 364 | regulator-compatible = "ldo_vgp5"; | ||
| 365 | regulator-name = "vgp5"; | ||
| 366 | regulator-min-microvolt = <1200000>; | ||
| 367 | regulator-max-microvolt = <3000000>; | ||
| 368 | regulator-enable-ramp-delay = <218>; | ||
| 369 | }; | ||
| 370 | |||
| 371 | mt6397_vgp6_reg: ldo_vgp6 { | ||
| 372 | regulator-compatible = "ldo_vgp6"; | ||
| 373 | regulator-name = "vgp6"; | ||
| 374 | regulator-min-microvolt = <1200000>; | ||
| 375 | regulator-max-microvolt = <3300000>; | ||
| 376 | regulator-enable-ramp-delay = <218>; | ||
| 377 | }; | ||
| 378 | |||
| 379 | mt6397_vibr_reg: ldo_vibr { | ||
| 380 | regulator-compatible = "ldo_vibr"; | ||
| 381 | regulator-name = "vibr"; | ||
| 382 | regulator-min-microvolt = <1300000>; | ||
| 383 | regulator-max-microvolt = <3300000>; | ||
| 384 | regulator-enable-ramp-delay = <218>; | ||
| 385 | }; | ||
| 386 | }; | ||
| 387 | }; | ||
| 388 | }; | ||
| 389 | |||
| 37 | &uart0 { | 390 | &uart0 { |
| 38 | status = "okay"; | 391 | status = "okay"; |
| 39 | }; | 392 | }; |
diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi index 27237a1c1a87..d18ee4259ee5 100644 --- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi | |||
| @@ -11,8 +11,11 @@ | |||
| 11 | * GNU General Public License for more details. | 11 | * GNU General Public License for more details. |
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | #include <dt-bindings/clock/mt8173-clk.h> | ||
| 14 | #include <dt-bindings/interrupt-controller/irq.h> | 15 | #include <dt-bindings/interrupt-controller/irq.h> |
| 15 | #include <dt-bindings/interrupt-controller/arm-gic.h> | 16 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
| 17 | #include <dt-bindings/power/mt8173-power.h> | ||
| 18 | #include <dt-bindings/reset-controller/mt8173-resets.h> | ||
| 16 | #include "mt8173-pinfunc.h" | 19 | #include "mt8173-pinfunc.h" |
| 17 | 20 | ||
| 18 | / { | 21 | / { |
| @@ -49,6 +52,8 @@ | |||
| 49 | device_type = "cpu"; | 52 | device_type = "cpu"; |
| 50 | compatible = "arm,cortex-a53"; | 53 | compatible = "arm,cortex-a53"; |
| 51 | reg = <0x000>; | 54 | reg = <0x000>; |
| 55 | enable-method = "psci"; | ||
| 56 | cpu-idle-states = <&CPU_SLEEP_0>; | ||
| 52 | }; | 57 | }; |
| 53 | 58 | ||
| 54 | cpu1: cpu@1 { | 59 | cpu1: cpu@1 { |
| @@ -56,6 +61,7 @@ | |||
| 56 | compatible = "arm,cortex-a53"; | 61 | compatible = "arm,cortex-a53"; |
| 57 | reg = <0x001>; | 62 | reg = <0x001>; |
| 58 | enable-method = "psci"; | 63 | enable-method = "psci"; |
| 64 | cpu-idle-states = <&CPU_SLEEP_0>; | ||
| 59 | }; | 65 | }; |
| 60 | 66 | ||
| 61 | cpu2: cpu@100 { | 67 | cpu2: cpu@100 { |
| @@ -63,6 +69,7 @@ | |||
| 63 | compatible = "arm,cortex-a57"; | 69 | compatible = "arm,cortex-a57"; |
| 64 | reg = <0x100>; | 70 | reg = <0x100>; |
| 65 | enable-method = "psci"; | 71 | enable-method = "psci"; |
| 72 | cpu-idle-states = <&CPU_SLEEP_0>; | ||
| 66 | }; | 73 | }; |
| 67 | 74 | ||
| 68 | cpu3: cpu@101 { | 75 | cpu3: cpu@101 { |
| @@ -70,6 +77,20 @@ | |||
| 70 | compatible = "arm,cortex-a57"; | 77 | compatible = "arm,cortex-a57"; |
| 71 | reg = <0x101>; | 78 | reg = <0x101>; |
| 72 | enable-method = "psci"; | 79 | enable-method = "psci"; |
| 80 | cpu-idle-states = <&CPU_SLEEP_0>; | ||
| 81 | }; | ||
| 82 | |||
| 83 | idle-states { | ||
| 84 | entry-method = "arm,psci"; | ||
| 85 | |||
| 86 | CPU_SLEEP_0: cpu-sleep-0 { | ||
| 87 | compatible = "arm,idle-state"; | ||
| 88 | local-timer-stop; | ||
| 89 | entry-latency-us = <639>; | ||
| 90 | exit-latency-us = <680>; | ||
| 91 | min-residency-us = <1088>; | ||
| 92 | arm,psci-suspend-param = <0x0010000>; | ||
| 93 | }; | ||
| 73 | }; | 94 | }; |
| 74 | }; | 95 | }; |
| 75 | 96 | ||
| @@ -81,10 +102,18 @@ | |||
| 81 | cpu_on = <0x84000003>; | 102 | cpu_on = <0x84000003>; |
| 82 | }; | 103 | }; |
| 83 | 104 | ||
| 84 | uart_clk: dummy26m { | 105 | clk26m: oscillator@0 { |
| 85 | compatible = "fixed-clock"; | 106 | compatible = "fixed-clock"; |
| 107 | #clock-cells = <0>; | ||
| 86 | clock-frequency = <26000000>; | 108 | clock-frequency = <26000000>; |
| 109 | clock-output-names = "clk26m"; | ||
| 110 | }; | ||
| 111 | |||
| 112 | clk32k: oscillator@1 { | ||
| 113 | compatible = "fixed-clock"; | ||
| 87 | #clock-cells = <0>; | 114 | #clock-cells = <0>; |
| 115 | clock-frequency = <32000>; | ||
| 116 | clock-output-names = "clk32k"; | ||
| 88 | }; | 117 | }; |
| 89 | 118 | ||
| 90 | timer { | 119 | timer { |
| @@ -106,11 +135,32 @@ | |||
| 106 | compatible = "simple-bus"; | 135 | compatible = "simple-bus"; |
| 107 | ranges; | 136 | ranges; |
| 108 | 137 | ||
| 109 | /* | 138 | topckgen: clock-controller@10000000 { |
| 110 | * Pinctrl access register at 0x10005000 through regmap. | 139 | compatible = "mediatek,mt8173-topckgen"; |
| 111 | * Register 0x1000b000 is used by EINT. | 140 | reg = <0 0x10000000 0 0x1000>; |
| 112 | */ | 141 | #clock-cells = <1>; |
| 113 | pio: pinctrl@10005000 { | 142 | }; |
| 143 | |||
| 144 | infracfg: power-controller@10001000 { | ||
| 145 | compatible = "mediatek,mt8173-infracfg", "syscon"; | ||
| 146 | reg = <0 0x10001000 0 0x1000>; | ||
| 147 | #clock-cells = <1>; | ||
| 148 | #reset-cells = <1>; | ||
| 149 | }; | ||
| 150 | |||
| 151 | pericfg: power-controller@10003000 { | ||
| 152 | compatible = "mediatek,mt8173-pericfg", "syscon"; | ||
| 153 | reg = <0 0x10003000 0 0x1000>; | ||
| 154 | #clock-cells = <1>; | ||
| 155 | #reset-cells = <1>; | ||
| 156 | }; | ||
| 157 | |||
| 158 | syscfg_pctl_a: syscfg_pctl_a@10005000 { | ||
| 159 | compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon"; | ||
| 160 | reg = <0 0x10005000 0 0x1000>; | ||
| 161 | }; | ||
| 162 | |||
| 163 | pio: pinctrl@0x10005000 { | ||
| 114 | compatible = "mediatek,mt8173-pinctrl"; | 164 | compatible = "mediatek,mt8173-pinctrl"; |
| 115 | reg = <0 0x1000b000 0 0x1000>; | 165 | reg = <0 0x1000b000 0 0x1000>; |
| 116 | mediatek,pctl-regmap = <&syscfg_pctl_a>; | 166 | mediatek,pctl-regmap = <&syscfg_pctl_a>; |
| @@ -122,11 +172,81 @@ | |||
| 122 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, | 172 | interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, |
| 123 | <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, | 173 | <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, |
| 124 | <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; | 174 | <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; |
| 175 | |||
| 176 | i2c0_pins_a: i2c0 { | ||
| 177 | pins1 { | ||
| 178 | pinmux = <MT8173_PIN_45_SDA0__FUNC_SDA0>, | ||
| 179 | <MT8173_PIN_46_SCL0__FUNC_SCL0>; | ||
| 180 | bias-disable; | ||
| 181 | }; | ||
| 182 | }; | ||
| 183 | |||
| 184 | i2c1_pins_a: i2c1 { | ||
| 185 | pins1 { | ||
| 186 | pinmux = <MT8173_PIN_125_SDA1__FUNC_SDA1>, | ||
| 187 | <MT8173_PIN_126_SCL1__FUNC_SCL1>; | ||
| 188 | bias-disable; | ||
| 189 | }; | ||
| 190 | }; | ||
| 191 | |||
| 192 | i2c2_pins_a: i2c2 { | ||
| 193 | pins1 { | ||
| 194 | pinmux = <MT8173_PIN_43_SDA2__FUNC_SDA2>, | ||
| 195 | <MT8173_PIN_44_SCL2__FUNC_SCL2>; | ||
| 196 | bias-disable; | ||
| 197 | }; | ||
| 198 | }; | ||
| 199 | |||
| 200 | i2c3_pins_a: i2c3 { | ||
| 201 | pins1 { | ||
| 202 | pinmux = <MT8173_PIN_106_SDA3__FUNC_SDA3>, | ||
| 203 | <MT8173_PIN_107_SCL3__FUNC_SCL3>; | ||
| 204 | bias-disable; | ||
| 205 | }; | ||
| 206 | }; | ||
| 207 | |||
| 208 | i2c4_pins_a: i2c4 { | ||
| 209 | pins1 { | ||
| 210 | pinmux = <MT8173_PIN_133_SDA4__FUNC_SDA4>, | ||
| 211 | <MT8173_PIN_134_SCL4__FUNC_SCL4>; | ||
| 212 | bias-disable; | ||
| 213 | }; | ||
| 214 | }; | ||
| 215 | |||
| 216 | i2c6_pins_a: i2c6 { | ||
| 217 | pins1 { | ||
| 218 | pinmux = <MT8173_PIN_100_MSDC2_DAT0__FUNC_SDA5>, | ||
| 219 | <MT8173_PIN_101_MSDC2_DAT1__FUNC_SCL5>; | ||
| 220 | bias-disable; | ||
| 221 | }; | ||
| 222 | }; | ||
| 125 | }; | 223 | }; |
| 126 | 224 | ||
| 127 | syscfg_pctl_a: syscfg_pctl_a@10005000 { | 225 | scpsys: scpsys@10006000 { |
| 128 | compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon"; | 226 | compatible = "mediatek,mt8173-scpsys"; |
| 129 | reg = <0 0x10005000 0 0x1000>; | 227 | #power-domain-cells = <1>; |
| 228 | reg = <0 0x10006000 0 0x1000>; | ||
| 229 | clocks = <&clk26m>, | ||
| 230 | <&topckgen CLK_TOP_MM_SEL>; | ||
| 231 | clock-names = "mfg", "mm"; | ||
| 232 | infracfg = <&infracfg>; | ||
| 233 | }; | ||
| 234 | |||
| 235 | watchdog: watchdog@10007000 { | ||
| 236 | compatible = "mediatek,mt8173-wdt", | ||
| 237 | "mediatek,mt6589-wdt"; | ||
| 238 | reg = <0 0x10007000 0 0x100>; | ||
| 239 | }; | ||
| 240 | |||
| 241 | pwrap: pwrap@1000d000 { | ||
| 242 | compatible = "mediatek,mt8173-pwrap"; | ||
| 243 | reg = <0 0x1000d000 0 0x1000>; | ||
| 244 | reg-names = "pwrap"; | ||
| 245 | interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; | ||
| 246 | resets = <&infracfg MT8173_INFRA_PMIC_WRAP_RST>; | ||
| 247 | reset-names = "pwrap"; | ||
| 248 | clocks = <&infracfg CLK_INFRA_PMICSPI>, <&infracfg CLK_INFRA_PMICWRAP>; | ||
| 249 | clock-names = "spi", "wrap"; | ||
| 130 | }; | 250 | }; |
| 131 | 251 | ||
| 132 | sysirq: intpol-controller@10200620 { | 252 | sysirq: intpol-controller@10200620 { |
| @@ -138,6 +258,12 @@ | |||
| 138 | reg = <0 0x10200620 0 0x20>; | 258 | reg = <0 0x10200620 0 0x20>; |
| 139 | }; | 259 | }; |
| 140 | 260 | ||
| 261 | apmixedsys: clock-controller@10209000 { | ||
| 262 | compatible = "mediatek,mt8173-apmixedsys"; | ||
| 263 | reg = <0 0x10209000 0 0x1000>; | ||
| 264 | #clock-cells = <1>; | ||
| 265 | }; | ||
| 266 | |||
| 141 | gic: interrupt-controller@10220000 { | 267 | gic: interrupt-controller@10220000 { |
| 142 | compatible = "arm,gic-400"; | 268 | compatible = "arm,gic-400"; |
| 143 | #interrupt-cells = <3>; | 269 | #interrupt-cells = <3>; |
| @@ -156,7 +282,8 @@ | |||
| 156 | "mediatek,mt6577-uart"; | 282 | "mediatek,mt6577-uart"; |
| 157 | reg = <0 0x11002000 0 0x400>; | 283 | reg = <0 0x11002000 0 0x400>; |
| 158 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>; | 284 | interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>; |
| 159 | clocks = <&uart_clk>; | 285 | clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>; |
| 286 | clock-names = "baud", "bus"; | ||
| 160 | status = "disabled"; | 287 | status = "disabled"; |
| 161 | }; | 288 | }; |
| 162 | 289 | ||
| @@ -165,7 +292,8 @@ | |||
| 165 | "mediatek,mt6577-uart"; | 292 | "mediatek,mt6577-uart"; |
| 166 | reg = <0 0x11003000 0 0x400>; | 293 | reg = <0 0x11003000 0 0x400>; |
| 167 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>; | 294 | interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>; |
| 168 | clocks = <&uart_clk>; | 295 | clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>; |
| 296 | clock-names = "baud", "bus"; | ||
| 169 | status = "disabled"; | 297 | status = "disabled"; |
| 170 | }; | 298 | }; |
| 171 | 299 | ||
| @@ -174,7 +302,8 @@ | |||
| 174 | "mediatek,mt6577-uart"; | 302 | "mediatek,mt6577-uart"; |
| 175 | reg = <0 0x11004000 0 0x400>; | 303 | reg = <0 0x11004000 0 0x400>; |
| 176 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>; | 304 | interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>; |
| 177 | clocks = <&uart_clk>; | 305 | clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>; |
| 306 | clock-names = "baud", "bus"; | ||
| 178 | status = "disabled"; | 307 | status = "disabled"; |
| 179 | }; | 308 | }; |
| 180 | 309 | ||
| @@ -183,7 +312,179 @@ | |||
| 183 | "mediatek,mt6577-uart"; | 312 | "mediatek,mt6577-uart"; |
| 184 | reg = <0 0x11005000 0 0x400>; | 313 | reg = <0 0x11005000 0 0x400>; |
| 185 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>; | 314 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>; |
| 186 | clocks = <&uart_clk>; | 315 | clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>; |
| 316 | clock-names = "baud", "bus"; | ||
| 317 | status = "disabled"; | ||
| 318 | }; | ||
| 319 | |||
| 320 | i2c0: i2c@11007000 { | ||
| 321 | compatible = "mediatek,mt8173-i2c"; | ||
| 322 | reg = <0 0x11007000 0 0x70>, | ||
| 323 | <0 0x11000100 0 0x80>; | ||
| 324 | interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>; | ||
| 325 | clock-div = <16>; | ||
| 326 | clocks = <&pericfg CLK_PERI_I2C0>, | ||
| 327 | <&pericfg CLK_PERI_AP_DMA>; | ||
| 328 | clock-names = "main", "dma"; | ||
| 329 | pinctrl-names = "default"; | ||
| 330 | pinctrl-0 = <&i2c0_pins_a>; | ||
| 331 | #address-cells = <1>; | ||
| 332 | #size-cells = <0>; | ||
| 333 | status = "disabled"; | ||
| 334 | }; | ||
| 335 | |||
| 336 | i2c1: i2c@11008000 { | ||
| 337 | compatible = "mediatek,mt8173-i2c"; | ||
| 338 | reg = <0 0x11008000 0 0x70>, | ||
| 339 | <0 0x11000180 0 0x80>; | ||
| 340 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>; | ||
| 341 | clock-div = <16>; | ||
| 342 | clocks = <&pericfg CLK_PERI_I2C1>, | ||
| 343 | <&pericfg CLK_PERI_AP_DMA>; | ||
| 344 | clock-names = "main", "dma"; | ||
| 345 | pinctrl-names = "default"; | ||
| 346 | pinctrl-0 = <&i2c1_pins_a>; | ||
| 347 | #address-cells = <1>; | ||
| 348 | #size-cells = <0>; | ||
| 349 | status = "disabled"; | ||
| 350 | }; | ||
| 351 | |||
| 352 | i2c2: i2c@11009000 { | ||
| 353 | compatible = "mediatek,mt8173-i2c"; | ||
| 354 | reg = <0 0x11009000 0 0x70>, | ||
| 355 | <0 0x11000200 0 0x80>; | ||
| 356 | interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>; | ||
| 357 | clock-div = <16>; | ||
| 358 | clocks = <&pericfg CLK_PERI_I2C2>, | ||
| 359 | <&pericfg CLK_PERI_AP_DMA>; | ||
| 360 | clock-names = "main", "dma"; | ||
| 361 | pinctrl-names = "default"; | ||
| 362 | pinctrl-0 = <&i2c2_pins_a>; | ||
| 363 | #address-cells = <1>; | ||
| 364 | #size-cells = <0>; | ||
| 365 | status = "disabled"; | ||
| 366 | }; | ||
| 367 | |||
| 368 | i2c3: i2c3@11010000 { | ||
| 369 | compatible = "mediatek,mt8173-i2c"; | ||
| 370 | reg = <0 0x11010000 0 0x70>, | ||
| 371 | <0 0x11000280 0 0x80>; | ||
| 372 | interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>; | ||
| 373 | clock-div = <16>; | ||
| 374 | clocks = <&pericfg CLK_PERI_I2C3>, | ||
| 375 | <&pericfg CLK_PERI_AP_DMA>; | ||
| 376 | clock-names = "main", "dma"; | ||
| 377 | pinctrl-names = "default"; | ||
| 378 | pinctrl-0 = <&i2c3_pins_a>; | ||
| 379 | #address-cells = <1>; | ||
| 380 | #size-cells = <0>; | ||
| 381 | status = "disabled"; | ||
| 382 | }; | ||
| 383 | |||
| 384 | i2c4: i2c4@11011000 { | ||
| 385 | compatible = "mediatek,mt8173-i2c"; | ||
| 386 | reg = <0 0x11011000 0 0x70>, | ||
| 387 | <0 0x11000300 0 0x80>; | ||
| 388 | interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>; | ||
| 389 | clock-div = <16>; | ||
| 390 | clocks = <&pericfg CLK_PERI_I2C4>, | ||
| 391 | <&pericfg CLK_PERI_AP_DMA>; | ||
| 392 | clock-names = "main", "dma"; | ||
| 393 | pinctrl-names = "default"; | ||
| 394 | pinctrl-0 = <&i2c4_pins_a>; | ||
| 395 | #address-cells = <1>; | ||
| 396 | #size-cells = <0>; | ||
| 397 | status = "disabled"; | ||
| 398 | }; | ||
| 399 | |||
| 400 | i2c6: i2c6@11013000 { | ||
| 401 | compatible = "mediatek,mt8173-i2c"; | ||
| 402 | reg = <0 0x11013000 0 0x70>, | ||
| 403 | <0 0x11000080 0 0x80>; | ||
| 404 | interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>; | ||
| 405 | clock-div = <16>; | ||
| 406 | clocks = <&pericfg CLK_PERI_I2C6>, | ||
| 407 | <&pericfg CLK_PERI_AP_DMA>; | ||
| 408 | clock-names = "main", "dma"; | ||
| 409 | pinctrl-names = "default"; | ||
| 410 | pinctrl-0 = <&i2c6_pins_a>; | ||
| 411 | #address-cells = <1>; | ||
| 412 | #size-cells = <0>; | ||
| 413 | status = "disabled"; | ||
| 414 | }; | ||
| 415 | |||
| 416 | afe: audio-controller@11220000 { | ||
| 417 | compatible = "mediatek,mt8173-afe-pcm"; | ||
| 418 | reg = <0 0x11220000 0 0x1000>; | ||
| 419 | interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_FALLING>; | ||
| 420 | power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>; | ||
| 421 | clocks = <&infracfg CLK_INFRA_AUDIO>, | ||
| 422 | <&topckgen CLK_TOP_AUDIO_SEL>, | ||
| 423 | <&topckgen CLK_TOP_AUD_INTBUS_SEL>, | ||
| 424 | <&topckgen CLK_TOP_APLL1_DIV0>, | ||
| 425 | <&topckgen CLK_TOP_APLL2_DIV0>, | ||
| 426 | <&topckgen CLK_TOP_I2S0_M_SEL>, | ||
| 427 | <&topckgen CLK_TOP_I2S1_M_SEL>, | ||
| 428 | <&topckgen CLK_TOP_I2S2_M_SEL>, | ||
| 429 | <&topckgen CLK_TOP_I2S3_M_SEL>, | ||
| 430 | <&topckgen CLK_TOP_I2S3_B_SEL>; | ||
| 431 | clock-names = "infra_sys_audio_clk", | ||
| 432 | "top_pdn_audio", | ||
| 433 | "top_pdn_aud_intbus", | ||
| 434 | "bck0", | ||
| 435 | "bck1", | ||
| 436 | "i2s0_m", | ||
| 437 | "i2s1_m", | ||
| 438 | "i2s2_m", | ||
| 439 | "i2s3_m", | ||
| 440 | "i2s3_b"; | ||
| 441 | assigned-clocks = <&topckgen CLK_TOP_AUD_1_SEL>, | ||
| 442 | <&topckgen CLK_TOP_AUD_2_SEL>; | ||
| 443 | assigned-clock-parents = <&topckgen CLK_TOP_APLL1>, | ||
| 444 | <&topckgen CLK_TOP_APLL2>; | ||
| 445 | }; | ||
| 446 | |||
| 447 | mmc0: mmc@11230000 { | ||
| 448 | compatible = "mediatek,mt8173-mmc", | ||
| 449 | "mediatek,mt8135-mmc"; | ||
| 450 | reg = <0 0x11230000 0 0x1000>; | ||
| 451 | interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_LOW>; | ||
| 452 | clocks = <&pericfg CLK_PERI_MSDC30_0>, | ||
| 453 | <&topckgen CLK_TOP_MSDC50_0_H_SEL>; | ||
| 454 | clock-names = "source", "hclk"; | ||
| 455 | status = "disabled"; | ||
| 456 | }; | ||
| 457 | |||
| 458 | mmc1: mmc@11240000 { | ||
| 459 | compatible = "mediatek,mt8173-mmc", | ||
| 460 | "mediatek,mt8135-mmc"; | ||
| 461 | reg = <0 0x11240000 0 0x1000>; | ||
| 462 | interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>; | ||
| 463 | clocks = <&pericfg CLK_PERI_MSDC30_1>, | ||
| 464 | <&topckgen CLK_TOP_AXI_SEL>; | ||
| 465 | clock-names = "source", "hclk"; | ||
| 466 | status = "disabled"; | ||
| 467 | }; | ||
| 468 | |||
| 469 | mmc2: mmc@11250000 { | ||
| 470 | compatible = "mediatek,mt8173-mmc", | ||
| 471 | "mediatek,mt8135-mmc"; | ||
| 472 | reg = <0 0x11250000 0 0x1000>; | ||
| 473 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>; | ||
| 474 | clocks = <&pericfg CLK_PERI_MSDC30_2>, | ||
| 475 | <&topckgen CLK_TOP_AXI_SEL>; | ||
| 476 | clock-names = "source", "hclk"; | ||
| 477 | status = "disabled"; | ||
| 478 | }; | ||
| 479 | |||
| 480 | mmc3: mmc@11260000 { | ||
| 481 | compatible = "mediatek,mt8173-mmc", | ||
| 482 | "mediatek,mt8135-mmc"; | ||
| 483 | reg = <0 0x11260000 0 0x1000>; | ||
| 484 | interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>; | ||
| 485 | clocks = <&pericfg CLK_PERI_MSDC30_3>, | ||
| 486 | <&topckgen CLK_TOP_MSDC50_2_H_SEL>; | ||
| 487 | clock-names = "source", "hclk"; | ||
| 187 | status = "disabled"; | 488 | status = "disabled"; |
| 188 | }; | 489 | }; |
| 189 | }; | 490 | }; |
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi index 535532b9287f..e03c11d9d834 100644 --- a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | |||
| @@ -2,27 +2,37 @@ | |||
| 2 | 2 | ||
| 3 | &pm8916_gpios { | 3 | &pm8916_gpios { |
| 4 | 4 | ||
| 5 | pinctrl-names = "default"; | 5 | usb_hub_reset_pm: usb_hub_reset_pm { |
| 6 | pinctrl-0 = <&pm8916_gpios_default>; | 6 | pinconf { |
| 7 | 7 | pins = "gpio3"; | |
| 8 | pm8916_gpios_default: default { | ||
| 9 | usb_hub_reset_pm { | ||
| 10 | pins = "gpio1"; | ||
| 11 | function = PMIC_GPIO_FUNC_NORMAL; | 8 | function = PMIC_GPIO_FUNC_NORMAL; |
| 12 | output-low; | 9 | output-low; |
| 13 | }; | 10 | }; |
| 14 | usb_sw_sel_pm { | 11 | }; |
| 15 | pins = "gpio2"; | 12 | |
| 13 | usb_sw_sel_pm: usb_sw_sel_pm { | ||
| 14 | pinconf { | ||
| 15 | pins = "gpio4"; | ||
| 16 | function = PMIC_GPIO_FUNC_NORMAL; | 16 | function = PMIC_GPIO_FUNC_NORMAL; |
| 17 | power-source = <PM8916_GPIO_VPH>; | ||
| 17 | input-disable; | 18 | input-disable; |
| 18 | }; | 19 | }; |
| 19 | usr_led_3_ctrl { | 20 | }; |
| 20 | pins = "gpio3"; | 21 | |
| 22 | pm8916_gpios_leds: pm8916_gpios_leds { | ||
| 23 | pinconf { | ||
| 24 | pins = "gpio1", "gpio2"; | ||
| 21 | function = PMIC_GPIO_FUNC_NORMAL; | 25 | function = PMIC_GPIO_FUNC_NORMAL; |
| 22 | output-low; | 26 | output-low; |
| 23 | }; | 27 | }; |
| 24 | usr_led_4_ctrl { | 28 | }; |
| 25 | pins = "gpio4"; | 29 | }; |
| 30 | |||
| 31 | &pm8916_mpps { | ||
| 32 | |||
| 33 | pm8916_mpps_leds: pm8916_mpps_leds { | ||
| 34 | pinconf { | ||
| 35 | pins = "mpp2", "mpp3"; | ||
| 26 | function = PMIC_GPIO_FUNC_NORMAL; | 36 | function = PMIC_GPIO_FUNC_NORMAL; |
| 27 | output-low; | 37 | output-low; |
| 28 | }; | 38 | }; |
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi index 5f7023f90df7..cbeee0bcdf52 100644 --- a/arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc-soc-pins.dtsi | |||
| @@ -3,17 +3,9 @@ | |||
| 3 | 3 | ||
| 4 | &msmgpio { | 4 | &msmgpio { |
| 5 | 5 | ||
| 6 | pinctrl-names = "default"; | 6 | msmgpio_leds: msmgpio_leds { |
| 7 | pinctrl-0 = <&soc_gpios_default>; | 7 | pinconf { |
| 8 | 8 | pins = "gpio21", "gpio120"; | |
| 9 | soc_gpios_default: default { | ||
| 10 | usr_led_1_ctrl_default: usr_led_1_ctrl_default { | ||
| 11 | pins = "gpio21"; | ||
| 12 | function = "gpio"; | ||
| 13 | output-low; | ||
| 14 | }; | ||
| 15 | usr_led_2_ctrl_default: usr_led_2_ctrl_default { | ||
| 16 | pins = "gpio120"; | ||
| 17 | function = "gpio"; | 9 | function = "gpio"; |
| 18 | output-low; | 10 | output-low; |
| 19 | }; | 11 | }; |
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi index 98abece6b233..66804ffbc6d2 100644 --- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | |||
| @@ -32,5 +32,56 @@ | |||
| 32 | pinctrl-0 = <&blsp1_uart2_default>; | 32 | pinctrl-0 = <&blsp1_uart2_default>; |
| 33 | pinctrl-1 = <&blsp1_uart2_sleep>; | 33 | pinctrl-1 = <&blsp1_uart2_sleep>; |
| 34 | }; | 34 | }; |
| 35 | |||
| 36 | leds { | ||
| 37 | pinctrl-names = "default"; | ||
| 38 | pinctrl-0 = <&msmgpio_leds>, | ||
| 39 | <&pm8916_gpios_leds>, | ||
| 40 | <&pm8916_mpps_leds>; | ||
| 41 | |||
| 42 | compatible = "gpio-leds"; | ||
| 43 | |||
| 44 | led@1 { | ||
| 45 | label = "apq8016-sbc:green:user1"; | ||
| 46 | gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>; | ||
| 47 | linux,default-trigger = "heartbeat"; | ||
| 48 | default-state = "off"; | ||
| 49 | }; | ||
| 50 | |||
| 51 | led@2 { | ||
| 52 | label = "apq8016-sbc:green:user2"; | ||
| 53 | gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>; | ||
| 54 | linux,default-trigger = "mmc0"; | ||
| 55 | default-state = "off"; | ||
| 56 | }; | ||
| 57 | |||
| 58 | led@3 { | ||
| 59 | label = "apq8016-sbc:green:user3"; | ||
| 60 | gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>; | ||
| 61 | linux,default-trigger = "mmc1"; | ||
| 62 | default-state = "off"; | ||
| 63 | }; | ||
| 64 | |||
| 65 | led@4 { | ||
| 66 | label = "apq8016-sbc:green:user4"; | ||
| 67 | gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>; | ||
| 68 | linux,default-trigger = "none"; | ||
| 69 | default-state = "off"; | ||
| 70 | }; | ||
| 71 | |||
| 72 | led@5 { | ||
| 73 | label = "apq8016-sbc:yellow:wlan"; | ||
| 74 | gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>; | ||
| 75 | linux,default-trigger = "wlan"; | ||
| 76 | default-state = "off"; | ||
| 77 | }; | ||
| 78 | |||
| 79 | led@6 { | ||
| 80 | label = "apq8016-sbc:blue:bt"; | ||
| 81 | gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>; | ||
| 82 | linux,default-trigger = "bt"; | ||
| 83 | default-state = "off"; | ||
| 84 | }; | ||
| 85 | }; | ||
| 35 | }; | 86 | }; |
| 36 | }; | 87 | }; |
diff --git a/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi new file mode 100644 index 000000000000..568956859088 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | |||
| @@ -0,0 +1,430 @@ | |||
| 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 | |||
| 16 | blsp1_uart2_default: blsp1_uart2_default { | ||
| 17 | pinmux { | ||
| 18 | function = "blsp_uart2"; | ||
| 19 | pins = "gpio4", "gpio5"; | ||
| 20 | }; | ||
| 21 | pinconf { | ||
| 22 | pins = "gpio4", "gpio5"; | ||
| 23 | drive-strength = <16>; | ||
| 24 | bias-disable; | ||
| 25 | }; | ||
| 26 | }; | ||
| 27 | |||
| 28 | blsp1_uart2_sleep: blsp1_uart2_sleep { | ||
| 29 | pinmux { | ||
| 30 | function = "blsp_uart2"; | ||
| 31 | pins = "gpio4", "gpio5"; | ||
| 32 | }; | ||
| 33 | pinconf { | ||
| 34 | pins = "gpio4", "gpio5"; | ||
| 35 | drive-strength = <2>; | ||
| 36 | bias-pull-down; | ||
| 37 | }; | ||
| 38 | }; | ||
| 39 | |||
| 40 | spi1_default: spi1_default { | ||
| 41 | pinmux { | ||
| 42 | function = "blsp_spi1"; | ||
| 43 | pins = "gpio0", "gpio1", "gpio3"; | ||
| 44 | }; | ||
| 45 | pinmux_cs { | ||
| 46 | function = "gpio"; | ||
| 47 | pins = "gpio2"; | ||
| 48 | }; | ||
| 49 | pinconf { | ||
| 50 | pins = "gpio0", "gpio1", "gpio3"; | ||
| 51 | drive-strength = <12>; | ||
| 52 | bias-disable; | ||
| 53 | }; | ||
| 54 | pinconf_cs { | ||
| 55 | pins = "gpio2"; | ||
| 56 | drive-strength = <2>; | ||
| 57 | bias-disable; | ||
| 58 | output-high; | ||
| 59 | }; | ||
| 60 | }; | ||
| 61 | |||
| 62 | spi1_sleep: spi1_sleep { | ||
| 63 | pinmux { | ||
| 64 | function = "gpio"; | ||
| 65 | pins = "gpio0", "gpio1", "gpio2", "gpio3"; | ||
| 66 | }; | ||
| 67 | pinconf { | ||
| 68 | pins = "gpio0", "gpio1", "gpio2", "gpio3"; | ||
| 69 | drive-strength = <2>; | ||
| 70 | bias-pull-down; | ||
| 71 | }; | ||
| 72 | }; | ||
| 73 | |||
| 74 | spi2_default: spi2_default { | ||
| 75 | pinmux { | ||
| 76 | function = "blsp_spi2"; | ||
| 77 | pins = "gpio4", "gpio5", "gpio7"; | ||
| 78 | }; | ||
| 79 | pinmux_cs { | ||
| 80 | function = "gpio"; | ||
| 81 | pins = "gpio6"; | ||
| 82 | }; | ||
| 83 | pinconf { | ||
| 84 | pins = "gpio4", "gpio5", "gpio6", "gpio7"; | ||
| 85 | drive-strength = <12>; | ||
| 86 | bias-disable; | ||
| 87 | }; | ||
| 88 | pinconf_cs { | ||
| 89 | pins = "gpio6"; | ||
| 90 | drive-strength = <2>; | ||
| 91 | bias-disable; | ||
| 92 | output-high; | ||
| 93 | }; | ||
| 94 | }; | ||
| 95 | |||
| 96 | spi2_sleep: spi2_sleep { | ||
| 97 | pinmux { | ||
| 98 | function = "gpio"; | ||
| 99 | pins = "gpio4", "gpio5", "gpio6", "gpio7"; | ||
| 100 | }; | ||
| 101 | pinconf { | ||
| 102 | pins = "gpio4", "gpio5", "gpio6", "gpio7"; | ||
| 103 | drive-strength = <2>; | ||
| 104 | bias-pull-down; | ||
| 105 | }; | ||
| 106 | }; | ||
| 107 | |||
| 108 | spi3_default: spi3_default { | ||
| 109 | pinmux { | ||
| 110 | function = "blsp_spi3"; | ||
| 111 | pins = "gpio8", "gpio9", "gpio11"; | ||
| 112 | }; | ||
| 113 | pinmux_cs { | ||
| 114 | function = "gpio"; | ||
| 115 | pins = "gpio10"; | ||
| 116 | }; | ||
| 117 | pinconf { | ||
| 118 | pins = "gpio8", "gpio9", "gpio10", "gpio11"; | ||
| 119 | drive-strength = <12>; | ||
| 120 | bias-disable; | ||
| 121 | }; | ||
| 122 | pinconf_cs { | ||
| 123 | pins = "gpio10"; | ||
| 124 | drive-strength = <2>; | ||
| 125 | bias-disable; | ||
| 126 | output-high; | ||
| 127 | }; | ||
| 128 | }; | ||
| 129 | |||
| 130 | spi3_sleep: spi3_sleep { | ||
| 131 | pinmux { | ||
| 132 | function = "gpio"; | ||
| 133 | pins = "gpio8", "gpio9", "gpio10", "gpio11"; | ||
| 134 | }; | ||
| 135 | pinconf { | ||
| 136 | pins = "gpio8", "gpio9", "gpio10", "gpio11"; | ||
| 137 | drive-strength = <2>; | ||
| 138 | bias-pull-down; | ||
| 139 | }; | ||
| 140 | }; | ||
| 141 | |||
| 142 | spi4_default: spi4_default { | ||
| 143 | pinmux { | ||
| 144 | function = "blsp_spi4"; | ||
| 145 | pins = "gpio12", "gpio13", "gpio15"; | ||
| 146 | }; | ||
| 147 | pinmux_cs { | ||
| 148 | function = "gpio"; | ||
| 149 | pins = "gpio14"; | ||
| 150 | }; | ||
| 151 | pinconf { | ||
| 152 | pins = "gpio12", "gpio13", "gpio14", "gpio15"; | ||
| 153 | drive-strength = <12>; | ||
| 154 | bias-disable; | ||
| 155 | }; | ||
| 156 | pinconf_cs { | ||
| 157 | pins = "gpio14"; | ||
| 158 | drive-strength = <2>; | ||
| 159 | bias-disable; | ||
| 160 | output-high; | ||
| 161 | }; | ||
| 162 | }; | ||
| 163 | |||
| 164 | spi4_sleep: spi4_sleep { | ||
| 165 | pinmux { | ||
| 166 | function = "gpio"; | ||
| 167 | pins = "gpio12", "gpio13", "gpio14", "gpio15"; | ||
| 168 | }; | ||
| 169 | pinconf { | ||
| 170 | pins = "gpio12", "gpio13", "gpio14", "gpio15"; | ||
| 171 | drive-strength = <2>; | ||
| 172 | bias-pull-down; | ||
| 173 | }; | ||
| 174 | }; | ||
| 175 | |||
| 176 | spi5_default: spi5_default { | ||
| 177 | pinmux { | ||
| 178 | function = "blsp_spi5"; | ||
| 179 | pins = "gpio16", "gpio17", "gpio19"; | ||
| 180 | }; | ||
| 181 | pinmux_cs { | ||
| 182 | function = "gpio"; | ||
| 183 | pins = "gpio18"; | ||
| 184 | }; | ||
| 185 | pinconf { | ||
| 186 | pins = "gpio16", "gpio17", "gpio18", "gpio19"; | ||
| 187 | drive-strength = <12>; | ||
| 188 | bias-disable; | ||
| 189 | }; | ||
| 190 | pinconf_cs { | ||
| 191 | pins = "gpio18"; | ||
| 192 | drive-strength = <2>; | ||
| 193 | bias-disable; | ||
| 194 | output-high; | ||
| 195 | }; | ||
| 196 | }; | ||
| 197 | |||
| 198 | spi5_sleep: spi5_sleep { | ||
| 199 | pinmux { | ||
| 200 | function = "gpio"; | ||
| 201 | pins = "gpio16", "gpio17", "gpio18", "gpio19"; | ||
| 202 | }; | ||
| 203 | pinconf { | ||
| 204 | pins = "gpio16", "gpio17", "gpio18", "gpio19"; | ||
| 205 | drive-strength = <2>; | ||
| 206 | bias-pull-down; | ||
| 207 | }; | ||
| 208 | }; | ||
| 209 | |||
| 210 | spi6_default: spi6_default { | ||
| 211 | pinmux { | ||
| 212 | function = "blsp_spi6"; | ||
| 213 | pins = "gpio20", "gpio21", "gpio23"; | ||
| 214 | }; | ||
| 215 | pinmux_cs { | ||
| 216 | function = "gpio"; | ||
| 217 | pins = "gpio22"; | ||
| 218 | }; | ||
| 219 | pinconf { | ||
| 220 | pins = "gpio20", "gpio21", "gpio22", "gpio23"; | ||
| 221 | drive-strength = <12>; | ||
| 222 | bias-disable; | ||
| 223 | }; | ||
| 224 | pinconf_cs { | ||
| 225 | pins = "gpio22"; | ||
| 226 | drive-strength = <2>; | ||
| 227 | bias-disable; | ||
| 228 | output-high; | ||
| 229 | }; | ||
| 230 | }; | ||
| 231 | |||
| 232 | spi6_sleep: spi6_sleep { | ||
| 233 | pinmux { | ||
| 234 | function = "gpio"; | ||
| 235 | pins = "gpio20", "gpio21", "gpio22", "gpio23"; | ||
| 236 | }; | ||
| 237 | pinconf { | ||
| 238 | pins = "gpio20", "gpio21", "gpio22", "gpio23"; | ||
| 239 | drive-strength = <2>; | ||
| 240 | bias-pull-down; | ||
| 241 | }; | ||
| 242 | }; | ||
| 243 | |||
| 244 | i2c4_default: i2c4_default { | ||
| 245 | pinmux { | ||
| 246 | function = "blsp_i2c4"; | ||
| 247 | pins = "gpio14", "gpio15"; | ||
| 248 | }; | ||
| 249 | pinconf { | ||
| 250 | pins = "gpio14", "gpio15"; | ||
| 251 | drive-strength = <2>; | ||
| 252 | bias-disable = <0>; | ||
| 253 | }; | ||
| 254 | }; | ||
| 255 | |||
| 256 | i2c4_sleep: i2c4_sleep { | ||
| 257 | pinmux { | ||
| 258 | function = "blsp_i2c4"; | ||
| 259 | pins = "gpio14", "gpio15"; | ||
| 260 | }; | ||
| 261 | pinconf { | ||
| 262 | pins = "gpio14", "gpio15"; | ||
| 263 | drive-strength = <2>; | ||
| 264 | bias-disable = <0>; | ||
| 265 | }; | ||
| 266 | }; | ||
| 267 | |||
| 268 | sdhc2_cd_pin { | ||
| 269 | sdc2_cd_on: cd_on { | ||
| 270 | pinmux { | ||
| 271 | function = "gpio"; | ||
| 272 | pins = "gpio38"; | ||
| 273 | }; | ||
| 274 | pinconf { | ||
| 275 | pins = "gpio38"; | ||
| 276 | drive-strength = <2>; | ||
| 277 | bias-pull-up; | ||
| 278 | }; | ||
| 279 | }; | ||
| 280 | sdc2_cd_off: cd_off { | ||
| 281 | pinmux { | ||
| 282 | function = "gpio"; | ||
| 283 | pins = "gpio38"; | ||
| 284 | }; | ||
| 285 | pinconf { | ||
| 286 | pins = "gpio38"; | ||
| 287 | drive-strength = <2>; | ||
| 288 | bias-disable; | ||
| 289 | }; | ||
| 290 | }; | ||
| 291 | }; | ||
| 292 | |||
| 293 | pmx_sdc1_clk { | ||
| 294 | sdc1_clk_on: clk_on { | ||
| 295 | pinmux { | ||
| 296 | pins = "sdc1_clk"; | ||
| 297 | }; | ||
| 298 | pinconf { | ||
| 299 | pins = "sdc1_clk"; | ||
| 300 | bias-disable; | ||
| 301 | drive-strength = <16>; | ||
| 302 | }; | ||
| 303 | }; | ||
| 304 | sdc1_clk_off: clk_off { | ||
| 305 | pinmux { | ||
| 306 | pins = "sdc1_clk"; | ||
| 307 | }; | ||
| 308 | pinconf { | ||
| 309 | pins = "sdc1_clk"; | ||
| 310 | bias-disable; | ||
| 311 | drive-strength = <2>; | ||
| 312 | }; | ||
| 313 | }; | ||
| 314 | }; | ||
| 315 | |||
| 316 | pmx_sdc1_cmd { | ||
| 317 | sdc1_cmd_on: cmd_on { | ||
| 318 | pinmux { | ||
| 319 | pins = "sdc1_cmd"; | ||
| 320 | }; | ||
| 321 | pinconf { | ||
| 322 | pins = "sdc1_cmd"; | ||
| 323 | bias-pull-up; | ||
| 324 | drive-strength = <10>; | ||
| 325 | }; | ||
| 326 | }; | ||
| 327 | sdc1_cmd_off: cmd_off { | ||
| 328 | pinmux { | ||
| 329 | pins = "sdc1_cmd"; | ||
| 330 | }; | ||
| 331 | pinconf { | ||
| 332 | pins = "sdc1_cmd"; | ||
| 333 | bias-pull-up; | ||
| 334 | drive-strength = <2>; | ||
| 335 | }; | ||
| 336 | }; | ||
| 337 | }; | ||
| 338 | |||
| 339 | pmx_sdc1_data { | ||
| 340 | sdc1_data_on: data_on { | ||
| 341 | pinmux { | ||
| 342 | pins = "sdc1_data"; | ||
| 343 | }; | ||
| 344 | pinconf { | ||
| 345 | pins = "sdc1_data"; | ||
| 346 | bias-pull-up; | ||
| 347 | drive-strength = <10>; | ||
| 348 | }; | ||
| 349 | }; | ||
| 350 | sdc1_data_off: data_off { | ||
| 351 | pinmux { | ||
| 352 | pins = "sdc1_data"; | ||
| 353 | }; | ||
| 354 | pinconf { | ||
| 355 | pins = "sdc1_data"; | ||
| 356 | bias-pull-up; | ||
| 357 | drive-strength = <2>; | ||
| 358 | }; | ||
| 359 | }; | ||
| 360 | }; | ||
| 361 | |||
| 362 | pmx_sdc2_clk { | ||
| 363 | sdc2_clk_on: clk_on { | ||
| 364 | pinmux { | ||
| 365 | pins = "sdc2_clk"; | ||
| 366 | }; | ||
| 367 | pinconf { | ||
| 368 | pins = "sdc2_clk"; | ||
| 369 | bias-disable; | ||
| 370 | drive-strength = <16>; | ||
| 371 | }; | ||
| 372 | }; | ||
| 373 | sdc2_clk_off: clk_off { | ||
| 374 | pinmux { | ||
| 375 | pins = "sdc2_clk"; | ||
| 376 | }; | ||
| 377 | pinconf { | ||
| 378 | pins = "sdc2_clk"; | ||
| 379 | bias-disable; | ||
| 380 | drive-strength = <2>; | ||
| 381 | }; | ||
| 382 | }; | ||
| 383 | }; | ||
| 384 | |||
| 385 | pmx_sdc2_cmd { | ||
| 386 | sdc2_cmd_on: cmd_on { | ||
| 387 | pinmux { | ||
| 388 | pins = "sdc2_cmd"; | ||
| 389 | }; | ||
| 390 | pinconf { | ||
| 391 | pins = "sdc2_cmd"; | ||
| 392 | bias-pull-up; | ||
| 393 | drive-strength = <10>; | ||
| 394 | }; | ||
| 395 | }; | ||
| 396 | sdc2_cmd_off: cmd_off { | ||
| 397 | pinmux { | ||
| 398 | pins = "sdc2_cmd"; | ||
| 399 | }; | ||
| 400 | pinconf { | ||
| 401 | pins = "sdc2_cmd"; | ||
| 402 | bias-pull-up; | ||
| 403 | drive-strength = <2>; | ||
| 404 | }; | ||
| 405 | }; | ||
| 406 | }; | ||
| 407 | |||
| 408 | pmx_sdc2_data { | ||
| 409 | sdc2_data_on: data_on { | ||
| 410 | pinmux { | ||
| 411 | pins = "sdc2_data"; | ||
| 412 | }; | ||
| 413 | pinconf { | ||
| 414 | pins = "sdc2_data"; | ||
| 415 | bias-pull-up; | ||
| 416 | drive-strength = <10>; | ||
| 417 | }; | ||
| 418 | }; | ||
| 419 | sdc2_data_off: data_off { | ||
| 420 | pinmux { | ||
| 421 | pins = "sdc2_data"; | ||
| 422 | }; | ||
| 423 | pinconf { | ||
| 424 | pins = "sdc2_data"; | ||
| 425 | bias-pull-up; | ||
| 426 | drive-strength = <2>; | ||
| 427 | }; | ||
| 428 | }; | ||
| 429 | }; | ||
| 430 | }; | ||
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi index 0f49ebd0aa8b..5911de008dd5 100644 --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi | |||
| @@ -24,7 +24,10 @@ | |||
| 24 | #address-cells = <2>; | 24 | #address-cells = <2>; |
| 25 | #size-cells = <2>; | 25 | #size-cells = <2>; |
| 26 | 26 | ||
| 27 | aliases { }; | 27 | aliases { |
| 28 | sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ | ||
| 29 | sdhc2 = &sdhc_2; /* SDC2 SD card slot */ | ||
| 30 | }; | ||
| 28 | 31 | ||
| 29 | chosen { }; | 32 | chosen { }; |
| 30 | 33 | ||
| @@ -90,30 +93,6 @@ | |||
| 90 | #gpio-cells = <2>; | 93 | #gpio-cells = <2>; |
| 91 | interrupt-controller; | 94 | interrupt-controller; |
| 92 | #interrupt-cells = <2>; | 95 | #interrupt-cells = <2>; |
| 93 | |||
| 94 | blsp1_uart2_default: blsp1_uart2_default { | ||
| 95 | pinmux { | ||
| 96 | function = "blsp_uart2"; | ||
| 97 | pins = "gpio4", "gpio5"; | ||
| 98 | }; | ||
| 99 | pinconf { | ||
| 100 | pins = "gpio4", "gpio5"; | ||
| 101 | drive-strength = <16>; | ||
| 102 | bias-disable; | ||
| 103 | }; | ||
| 104 | }; | ||
| 105 | |||
| 106 | blsp1_uart2_sleep: blsp1_uart2_sleep { | ||
| 107 | pinmux { | ||
| 108 | function = "blsp_uart2"; | ||
| 109 | pins = "gpio4", "gpio5"; | ||
| 110 | }; | ||
| 111 | pinconf { | ||
| 112 | pins = "gpio4", "gpio5"; | ||
| 113 | drive-strength = <2>; | ||
| 114 | bias-pull-down; | ||
| 115 | }; | ||
| 116 | }; | ||
| 117 | }; | 96 | }; |
| 118 | 97 | ||
| 119 | gcc: qcom,gcc@1800000 { | 98 | gcc: qcom,gcc@1800000 { |
| @@ -132,6 +111,202 @@ | |||
| 132 | status = "disabled"; | 111 | status = "disabled"; |
| 133 | }; | 112 | }; |
| 134 | 113 | ||
| 114 | blsp_dma: dma@7884000 { | ||
| 115 | compatible = "qcom,bam-v1.7.0"; | ||
| 116 | reg = <0x07884000 0x23000>; | ||
| 117 | interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; | ||
| 118 | clocks = <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 119 | clock-names = "bam_clk"; | ||
| 120 | #dma-cells = <1>; | ||
| 121 | qcom,ee = <0>; | ||
| 122 | status = "disabled"; | ||
| 123 | }; | ||
| 124 | |||
| 125 | blsp_spi1: spi@78b5000 { | ||
| 126 | compatible = "qcom,spi-qup-v2.2.1"; | ||
| 127 | reg = <0x078b5000 0x600>; | ||
| 128 | interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; | ||
| 129 | clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, | ||
| 130 | <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 131 | clock-names = "core", "iface"; | ||
| 132 | dmas = <&blsp_dma 5>, <&blsp_dma 4>; | ||
| 133 | dma-names = "rx", "tx"; | ||
| 134 | pinctrl-names = "default", "sleep"; | ||
| 135 | pinctrl-0 = <&spi1_default>; | ||
| 136 | pinctrl-1 = <&spi1_sleep>; | ||
| 137 | #address-cells = <1>; | ||
| 138 | #size-cells = <0>; | ||
| 139 | status = "disabled"; | ||
| 140 | }; | ||
| 141 | |||
| 142 | blsp_spi2: spi@78b6000 { | ||
| 143 | compatible = "qcom,spi-qup-v2.2.1"; | ||
| 144 | reg = <0x078b6000 0x600>; | ||
| 145 | interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; | ||
| 146 | clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>, | ||
| 147 | <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 148 | clock-names = "core", "iface"; | ||
| 149 | dmas = <&blsp_dma 7>, <&blsp_dma 6>; | ||
| 150 | dma-names = "rx", "tx"; | ||
| 151 | pinctrl-names = "default", "sleep"; | ||
| 152 | pinctrl-0 = <&spi2_default>; | ||
| 153 | pinctrl-1 = <&spi2_sleep>; | ||
| 154 | #address-cells = <1>; | ||
| 155 | #size-cells = <0>; | ||
| 156 | status = "disabled"; | ||
| 157 | }; | ||
| 158 | |||
| 159 | blsp_spi3: spi@78b7000 { | ||
| 160 | compatible = "qcom,spi-qup-v2.2.1"; | ||
| 161 | reg = <0x078b7000 0x600>; | ||
| 162 | interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | ||
| 163 | clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>, | ||
| 164 | <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 165 | clock-names = "core", "iface"; | ||
| 166 | dmas = <&blsp_dma 9>, <&blsp_dma 8>; | ||
| 167 | dma-names = "rx", "tx"; | ||
| 168 | pinctrl-names = "default", "sleep"; | ||
| 169 | pinctrl-0 = <&spi3_default>; | ||
| 170 | pinctrl-1 = <&spi3_sleep>; | ||
| 171 | #address-cells = <1>; | ||
| 172 | #size-cells = <0>; | ||
| 173 | status = "disabled"; | ||
| 174 | }; | ||
| 175 | |||
| 176 | blsp_spi4: spi@78b8000 { | ||
| 177 | compatible = "qcom,spi-qup-v2.2.1"; | ||
| 178 | reg = <0x078b8000 0x600>; | ||
| 179 | interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; | ||
| 180 | clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>, | ||
| 181 | <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 182 | clock-names = "core", "iface"; | ||
| 183 | dmas = <&blsp_dma 11>, <&blsp_dma 10>; | ||
| 184 | dma-names = "rx", "tx"; | ||
| 185 | pinctrl-names = "default", "sleep"; | ||
| 186 | pinctrl-0 = <&spi4_default>; | ||
| 187 | pinctrl-1 = <&spi4_sleep>; | ||
| 188 | #address-cells = <1>; | ||
| 189 | #size-cells = <0>; | ||
| 190 | status = "disabled"; | ||
| 191 | }; | ||
| 192 | |||
| 193 | blsp_spi5: spi@78b9000 { | ||
| 194 | compatible = "qcom,spi-qup-v2.2.1"; | ||
| 195 | reg = <0x078b9000 0x600>; | ||
| 196 | interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; | ||
| 197 | clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>, | ||
| 198 | <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 199 | clock-names = "core", "iface"; | ||
| 200 | dmas = <&blsp_dma 13>, <&blsp_dma 12>; | ||
| 201 | dma-names = "rx", "tx"; | ||
| 202 | pinctrl-names = "default", "sleep"; | ||
| 203 | pinctrl-0 = <&spi5_default>; | ||
| 204 | pinctrl-1 = <&spi5_sleep>; | ||
| 205 | #address-cells = <1>; | ||
| 206 | #size-cells = <0>; | ||
| 207 | status = "disabled"; | ||
| 208 | }; | ||
| 209 | |||
| 210 | blsp_spi6: spi@78ba000 { | ||
| 211 | compatible = "qcom,spi-qup-v2.2.1"; | ||
| 212 | reg = <0x078ba000 0x600>; | ||
| 213 | interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | ||
| 214 | clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>, | ||
| 215 | <&gcc GCC_BLSP1_AHB_CLK>; | ||
| 216 | clock-names = "core", "iface"; | ||
| 217 | dmas = <&blsp_dma 15>, <&blsp_dma 14>; | ||
| 218 | dma-names = "rx", "tx"; | ||
| 219 | pinctrl-names = "default", "sleep"; | ||
| 220 | pinctrl-0 = <&spi6_default>; | ||
| 221 | pinctrl-1 = <&spi6_sleep>; | ||
| 222 | #address-cells = <1>; | ||
| 223 | #size-cells = <0>; | ||
| 224 | status = "disabled"; | ||
| 225 | }; | ||
| 226 | |||
| 227 | blsp_i2c4: i2c@78b8000 { | ||
| 228 | compatible = "qcom,i2c-qup-v2.2.1"; | ||
| 229 | reg = <0x78b8000 0x1000>; | ||
| 230 | interrupts = <GIC_SPI 98 0>; | ||
| 231 | clocks = <&gcc GCC_BLSP1_AHB_CLK>, | ||
| 232 | <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; | ||
| 233 | clock-names = "iface", "core"; | ||
| 234 | pinctrl-names = "default", "sleep"; | ||
| 235 | pinctrl-0 = <&i2c4_default>; | ||
| 236 | pinctrl-1 = <&i2c4_sleep>; | ||
| 237 | #address-cells = <1>; | ||
| 238 | #size-cells = <0>; | ||
| 239 | status = "disabled"; | ||
| 240 | }; | ||
| 241 | |||
| 242 | sdhc_1: sdhci@07824000 { | ||
| 243 | compatible = "qcom,sdhci-msm-v4"; | ||
| 244 | reg = <0x07824900 0x11c>, <0x07824000 0x800>; | ||
| 245 | reg-names = "hc_mem", "core_mem"; | ||
| 246 | |||
| 247 | interrupts = <0 123 0>, <0 138 0>; | ||
| 248 | interrupt-names = "hc_irq", "pwr_irq"; | ||
| 249 | clocks = <&gcc GCC_SDCC1_APPS_CLK>, | ||
| 250 | <&gcc GCC_SDCC1_AHB_CLK>; | ||
| 251 | clock-names = "core", "iface"; | ||
| 252 | bus-width = <8>; | ||
| 253 | non-removable; | ||
| 254 | status = "disabled"; | ||
| 255 | }; | ||
| 256 | |||
| 257 | sdhc_2: sdhci@07864000 { | ||
| 258 | compatible = "qcom,sdhci-msm-v4"; | ||
| 259 | reg = <0x07864900 0x11c>, <0x07864000 0x800>; | ||
| 260 | reg-names = "hc_mem", "core_mem"; | ||
| 261 | |||
| 262 | interrupts = <0 125 0>, <0 221 0>; | ||
| 263 | interrupt-names = "hc_irq", "pwr_irq"; | ||
| 264 | clocks = <&gcc GCC_SDCC2_APPS_CLK>, | ||
| 265 | <&gcc GCC_SDCC2_AHB_CLK>; | ||
| 266 | clock-names = "core", "iface"; | ||
| 267 | bus-width = <4>; | ||
| 268 | status = "disabled"; | ||
| 269 | }; | ||
| 270 | |||
| 271 | usb_dev: usb@78d9000 { | ||
| 272 | compatible = "qcom,ci-hdrc"; | ||
| 273 | reg = <0x78d9000 0x400>; | ||
| 274 | dr_mode = "peripheral"; | ||
| 275 | interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>; | ||
| 276 | usb-phy = <&usb_otg>; | ||
| 277 | status = "disabled"; | ||
| 278 | }; | ||
| 279 | |||
| 280 | usb_host: ehci@78d9000 { | ||
| 281 | compatible = "qcom,ehci-host"; | ||
| 282 | reg = <0x78d9000 0x400>; | ||
| 283 | interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>; | ||
| 284 | usb-phy = <&usb_otg>; | ||
| 285 | status = "disabled"; | ||
| 286 | }; | ||
| 287 | |||
| 288 | usb_otg: phy@78d9000 { | ||
| 289 | compatible = "qcom,usb-otg-snps"; | ||
| 290 | reg = <0x78d9000 0x400>; | ||
| 291 | interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_BOTH>, | ||
| 292 | <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>; | ||
| 293 | |||
| 294 | qcom,vdd-levels = <1 5 7>; | ||
| 295 | qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>; | ||
| 296 | dr_mode = "peripheral"; | ||
| 297 | qcom,otg-control = <2>; // PMIC | ||
| 298 | |||
| 299 | clocks = <&gcc GCC_USB_HS_AHB_CLK>, | ||
| 300 | <&gcc GCC_USB_HS_SYSTEM_CLK>, | ||
| 301 | <&gcc GCC_USB2A_PHY_SLEEP_CLK>; | ||
| 302 | clock-names = "iface", "core", "sleep"; | ||
| 303 | |||
| 304 | resets = <&gcc GCC_USB2A_PHY_BCR>, | ||
| 305 | <&gcc GCC_USB_HS_BCR>; | ||
| 306 | reset-names = "phy", "link"; | ||
| 307 | status = "disabled"; | ||
| 308 | }; | ||
| 309 | |||
| 135 | intc: interrupt-controller@b000000 { | 310 | intc: interrupt-controller@b000000 { |
| 136 | compatible = "qcom,msm-qgic2"; | 311 | compatible = "qcom,msm-qgic2"; |
| 137 | interrupt-controller; | 312 | interrupt-controller; |
| @@ -217,3 +392,5 @@ | |||
| 217 | }; | 392 | }; |
| 218 | }; | 393 | }; |
| 219 | }; | 394 | }; |
| 395 | |||
| 396 | #include "msm8916-pins.dtsi" | ||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile new file mode 100644 index 000000000000..601e6a236c1d --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/Makefile | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb | ||
| 2 | |||
| 3 | always := $(dtb-y) | ||
| 4 | subdir-y := $(dts-dirs) | ||
| 5 | clean-files := *.dtb | ||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts new file mode 100644 index 000000000000..401a81231eb9 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts | |||
| @@ -0,0 +1,354 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de> | ||
| 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 | |||
| 46 | / { | ||
| 47 | model = "Rockchip R88"; | ||
| 48 | compatible = "rockchip,r88", "rockchip,rk3368"; | ||
| 49 | |||
| 50 | chosen { | ||
| 51 | stdout-path = "serial2:115200n8"; | ||
| 52 | }; | ||
| 53 | |||
| 54 | memory { | ||
| 55 | device_type = "memory"; | ||
| 56 | reg = <0x0 0x0 0x0 0x40000000>; | ||
| 57 | }; | ||
| 58 | |||
| 59 | emmc_pwrseq: emmc-pwrseq { | ||
| 60 | compatible = "mmc-pwrseq-emmc"; | ||
| 61 | pinctrl-0 = <&emmc_reset>; | ||
| 62 | pinctrl-names = "default"; | ||
| 63 | reset-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; | ||
| 64 | }; | ||
| 65 | |||
| 66 | keys: gpio-keys { | ||
| 67 | compatible = "gpio-keys"; | ||
| 68 | #address-cells = <1>; | ||
| 69 | #size-cells = <0>; | ||
| 70 | pinctrl-names = "default"; | ||
| 71 | pinctrl-0 = <&pwr_key>; | ||
| 72 | |||
| 73 | button@0 { | ||
| 74 | gpio-key,wakeup = <1>; | ||
| 75 | gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; | ||
| 76 | label = "GPIO Power"; | ||
| 77 | linux,code = <116>; | ||
| 78 | }; | ||
| 79 | }; | ||
| 80 | |||
| 81 | leds: gpio-leds { | ||
| 82 | compatible = "gpio-leds"; | ||
| 83 | |||
| 84 | work { | ||
| 85 | gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>; | ||
| 86 | label = "r88:green:led"; | ||
| 87 | pinctrl-names = "default"; | ||
| 88 | pinctrl-0 = <&led_ctl>; | ||
| 89 | }; | ||
| 90 | }; | ||
| 91 | |||
| 92 | ir: ir-receiver { | ||
| 93 | compatible = "gpio-ir-receiver"; | ||
| 94 | gpios = <&gpio3 30 GPIO_ACTIVE_LOW>; | ||
| 95 | pinctrl-names = "default"; | ||
| 96 | pinctrl-0 = <&ir_int>; | ||
| 97 | }; | ||
| 98 | |||
| 99 | sdio_pwrseq: sdio-pwrseq { | ||
| 100 | compatible = "mmc-pwrseq-simple"; | ||
| 101 | clocks = <&hym8563>; | ||
| 102 | clock-names = "ext_clock"; | ||
| 103 | pinctrl-names = "default"; | ||
| 104 | pinctrl-0 = <&bt_rst>, <&wifi_reg_on>; | ||
| 105 | |||
| 106 | reset-gpios = | ||
| 107 | /* BT_RST_N */ | ||
| 108 | <&gpio3 5 GPIO_ACTIVE_LOW>, | ||
| 109 | |||
| 110 | /* WL_REG_ON */ | ||
| 111 | <&gpio3 4 GPIO_ACTIVE_LOW>; | ||
| 112 | }; | ||
| 113 | |||
| 114 | vcc_18: vcc18-regulator { | ||
| 115 | compatible = "regulator-fixed"; | ||
| 116 | regulator-name = "vcc_18"; | ||
| 117 | regulator-min-microvolt = <1800000>; | ||
| 118 | regulator-max-microvolt = <1800000>; | ||
| 119 | regulator-always-on; | ||
| 120 | regulator-boot-on; | ||
| 121 | vin-supply = <&vcc_sys>; | ||
| 122 | }; | ||
| 123 | |||
| 124 | /* supplies both host and otg */ | ||
| 125 | vcc_host: vcc-host-regulator { | ||
| 126 | compatible = "regulator-fixed"; | ||
| 127 | enable-active-high; | ||
| 128 | gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; | ||
| 129 | pinctrl-names = "default"; | ||
| 130 | pinctrl-0 = <&host_vbus_drv>; | ||
| 131 | regulator-name = "vcc_host"; | ||
| 132 | regulator-always-on; | ||
| 133 | regulator-boot-on; | ||
| 134 | vin-supply = <&vcc_sys>; | ||
| 135 | }; | ||
| 136 | |||
| 137 | vcc_io: vcc-io-regulator { | ||
| 138 | compatible = "regulator-fixed"; | ||
| 139 | regulator-name = "vcc_io"; | ||
| 140 | regulator-min-microvolt = <3300000>; | ||
| 141 | regulator-max-microvolt = <3300000>; | ||
| 142 | regulator-always-on; | ||
| 143 | regulator-boot-on; | ||
| 144 | vin-supply = <&vcc_sys>; | ||
| 145 | }; | ||
| 146 | |||
| 147 | vcc_lan: vcc-lan-regulator { | ||
| 148 | compatible = "regulator-fixed"; | ||
| 149 | regulator-name = "vcc_lan"; | ||
| 150 | regulator-min-microvolt = <3300000>; | ||
| 151 | regulator-max-microvolt = <3300000>; | ||
| 152 | regulator-always-on; | ||
| 153 | regulator-boot-on; | ||
| 154 | vin-supply = <&vcc_io>; | ||
| 155 | }; | ||
| 156 | |||
| 157 | vcc_sys: vcc-sys-regulator { | ||
| 158 | compatible = "regulator-fixed"; | ||
| 159 | regulator-name = "vcc_sys"; | ||
| 160 | regulator-min-microvolt = <5000000>; | ||
| 161 | regulator-max-microvolt = <5000000>; | ||
| 162 | regulator-always-on; | ||
| 163 | regulator-boot-on; | ||
| 164 | }; | ||
| 165 | |||
| 166 | vccio_wl: vccio-wl-regulator { | ||
| 167 | compatible = "regulator-fixed"; | ||
| 168 | regulator-name = "vccio_wl"; | ||
| 169 | regulator-min-microvolt = <3300000>; | ||
| 170 | regulator-max-microvolt = <3300000>; | ||
| 171 | regulator-always-on; | ||
| 172 | regulator-boot-on; | ||
| 173 | vin-supply = <&vcc_io>; | ||
| 174 | }; | ||
| 175 | |||
| 176 | vdd_10: vdd-10-regulator { | ||
| 177 | compatible = "regulator-fixed"; | ||
| 178 | regulator-name = "vdd_10"; | ||
| 179 | regulator-min-microvolt = <1000000>; | ||
| 180 | regulator-max-microvolt = <1000000>; | ||
| 181 | regulator-always-on; | ||
| 182 | regulator-boot-on; | ||
| 183 | vin-supply = <&vcc_sys>; | ||
| 184 | }; | ||
| 185 | }; | ||
| 186 | |||
| 187 | &emmc { | ||
| 188 | broken-cd; | ||
| 189 | bus-width = <8>; | ||
| 190 | cap-mmc-highspeed; | ||
| 191 | disable-wp; | ||
| 192 | mmc-pwrseq = <&emmc_pwrseq>; | ||
| 193 | non-removable; | ||
| 194 | num-slots = <1>; | ||
| 195 | pinctrl-names = "default"; | ||
| 196 | pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; | ||
| 197 | status = "okay"; | ||
| 198 | }; | ||
| 199 | |||
| 200 | &gmac { | ||
| 201 | phy-supply = <&vcc_lan>; | ||
| 202 | phy-mode = "rmii"; | ||
| 203 | clock_in_out = "output"; | ||
| 204 | snps,reset-gpio = <&gpio3 12 0>; | ||
| 205 | snps,reset-active-low; | ||
| 206 | snps,reset-delays-us = <0 10000 1000000>; | ||
| 207 | pinctrl-names = "default"; | ||
| 208 | pinctrl-0 = <&rmii_pins>; | ||
| 209 | tx_delay = <0x30>; | ||
| 210 | rx_delay = <0x10>; | ||
| 211 | status = "ok"; | ||
| 212 | }; | ||
| 213 | |||
| 214 | &i2c0 { | ||
| 215 | status = "okay"; | ||
| 216 | |||
| 217 | vdd_cpu: syr827@40 { | ||
| 218 | compatible = "silergy,syr827"; | ||
| 219 | reg = <0x40>; | ||
| 220 | fcs,suspend-voltage-selector = <1>; | ||
| 221 | regulator-name = "vdd_cpu"; | ||
| 222 | regulator-enable-ramp-delay = <300>; | ||
| 223 | regulator-min-microvolt = <712500>; | ||
| 224 | regulator-max-microvolt = <1500000>; | ||
| 225 | regulator-ramp-delay = <8000>; | ||
| 226 | regulator-always-on; | ||
| 227 | regulator-boot-on; | ||
| 228 | vin-supply = <&vcc_sys>; | ||
| 229 | }; | ||
| 230 | |||
| 231 | hym8563: hym8563@51 { | ||
| 232 | compatible = "haoyu,hym8563"; | ||
| 233 | reg = <0x51>; | ||
| 234 | #clock-cells = <0>; | ||
| 235 | clock-frequency = <32768>; | ||
| 236 | clock-output-names = "xin32k"; | ||
| 237 | /* rtc_int is not connected */ | ||
| 238 | }; | ||
| 239 | }; | ||
| 240 | |||
| 241 | &sdio0 { | ||
| 242 | assigned-clocks = <&cru SCLK_SDIO0>; | ||
| 243 | assigned-clock-parents = <&cru PLL_CPLL>; | ||
| 244 | broken-cd; | ||
| 245 | bus-width = <4>; | ||
| 246 | cap-sd-highspeed; | ||
| 247 | cap-sdio-irq; | ||
| 248 | keep-power-in-suspend; | ||
| 249 | mmc-pwrseq = <&sdio_pwrseq>; | ||
| 250 | non-removable; | ||
| 251 | num-slots = <1>; | ||
| 252 | pinctrl-names = "default"; | ||
| 253 | pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>; | ||
| 254 | vmmc-supply = <&vcc_io>; | ||
| 255 | vqmmc-supply = <&vccio_wl>; | ||
| 256 | status = "okay"; | ||
| 257 | }; | ||
| 258 | |||
| 259 | &pinctrl { | ||
| 260 | pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { | ||
| 261 | bias-disable; | ||
| 262 | drive-strength = <8>; | ||
| 263 | }; | ||
| 264 | |||
| 265 | pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { | ||
| 266 | bias-pull-up; | ||
| 267 | drive-strength = <8>; | ||
| 268 | }; | ||
| 269 | |||
| 270 | emmc { | ||
| 271 | emmc_bus8: emmc-bus8 { | ||
| 272 | rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 273 | <1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 274 | <1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 275 | <1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 276 | <1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 277 | <1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 278 | <1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>, | ||
| 279 | <1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; | ||
| 280 | }; | ||
| 281 | |||
| 282 | emmc-clk { | ||
| 283 | rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>; | ||
| 284 | }; | ||
| 285 | |||
| 286 | emmc-cmd { | ||
| 287 | rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>; | ||
| 288 | }; | ||
| 289 | |||
| 290 | emmc_reset: emmc-reset { | ||
| 291 | rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>; | ||
| 292 | }; | ||
| 293 | }; | ||
| 294 | |||
| 295 | ir { | ||
| 296 | ir_int: ir-int { | ||
| 297 | rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_up>; | ||
| 298 | }; | ||
| 299 | }; | ||
| 300 | |||
| 301 | keys { | ||
| 302 | pwr_key: pwr-key { | ||
| 303 | rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>; | ||
| 304 | }; | ||
| 305 | }; | ||
| 306 | |||
| 307 | leds { | ||
| 308 | stby_pwren: stby-pwren { | ||
| 309 | rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>; | ||
| 310 | }; | ||
| 311 | |||
| 312 | led_ctl: led-ctl { | ||
| 313 | rockchip,pins = <3 29 RK_FUNC_GPIO &pcfg_pull_none>; | ||
| 314 | }; | ||
| 315 | }; | ||
| 316 | |||
| 317 | sdio { | ||
| 318 | wifi_reg_on: wifi-reg-on { | ||
| 319 | rockchip,pins = <3 4 RK_FUNC_GPIO &pcfg_pull_none>; | ||
| 320 | }; | ||
| 321 | |||
| 322 | bt_rst: bt-rst { | ||
| 323 | rockchip,pins = <3 5 RK_FUNC_GPIO &pcfg_pull_none>; | ||
| 324 | }; | ||
| 325 | }; | ||
| 326 | |||
| 327 | usb { | ||
| 328 | host_vbus_drv: host-vbus-drv { | ||
| 329 | rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>; | ||
| 330 | }; | ||
| 331 | }; | ||
| 332 | }; | ||
| 333 | |||
| 334 | &saradc { | ||
| 335 | vref-supply = <&vcc_18>; | ||
| 336 | status = "okay"; | ||
| 337 | }; | ||
| 338 | |||
| 339 | &uart2 { | ||
| 340 | status = "okay"; | ||
| 341 | }; | ||
| 342 | |||
| 343 | &usb_host0_ehci { | ||
| 344 | status = "okay"; | ||
| 345 | }; | ||
| 346 | |||
| 347 | &usb_otg { | ||
| 348 | dr_mode = "host"; | ||
| 349 | status = "okay"; | ||
| 350 | }; | ||
| 351 | |||
| 352 | &wdt { | ||
| 353 | status = "okay"; | ||
| 354 | }; | ||
diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi new file mode 100644 index 000000000000..a712bea3bf2c --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi | |||
| @@ -0,0 +1,900 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de> | ||
| 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 <dt-bindings/clock/rk3368-cru.h> | ||
| 44 | #include <dt-bindings/gpio/gpio.h> | ||
| 45 | #include <dt-bindings/interrupt-controller/irq.h> | ||
| 46 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 47 | #include <dt-bindings/pinctrl/rockchip.h> | ||
| 48 | |||
| 49 | / { | ||
| 50 | compatible = "rockchip,rk3368"; | ||
| 51 | interrupt-parent = <&gic>; | ||
| 52 | #address-cells = <2>; | ||
| 53 | #size-cells = <2>; | ||
| 54 | |||
| 55 | aliases { | ||
| 56 | i2c0 = &i2c0; | ||
| 57 | i2c1 = &i2c1; | ||
| 58 | i2c2 = &i2c2; | ||
| 59 | i2c3 = &i2c3; | ||
| 60 | i2c4 = &i2c4; | ||
| 61 | i2c5 = &i2c5; | ||
| 62 | serial0 = &uart0; | ||
| 63 | serial1 = &uart1; | ||
| 64 | serial2 = &uart2; | ||
| 65 | serial3 = &uart3; | ||
| 66 | serial4 = &uart4; | ||
| 67 | spi0 = &spi0; | ||
| 68 | spi1 = &spi1; | ||
| 69 | spi2 = &spi2; | ||
| 70 | }; | ||
| 71 | |||
| 72 | cpus { | ||
| 73 | #address-cells = <0x2>; | ||
| 74 | #size-cells = <0x0>; | ||
| 75 | |||
| 76 | cpu-map { | ||
| 77 | cluster0 { | ||
| 78 | core0 { | ||
| 79 | cpu = <&cpu_b0>; | ||
| 80 | }; | ||
| 81 | core1 { | ||
| 82 | cpu = <&cpu_b1>; | ||
| 83 | }; | ||
| 84 | core2 { | ||
| 85 | cpu = <&cpu_b2>; | ||
| 86 | }; | ||
| 87 | core3 { | ||
| 88 | cpu = <&cpu_b3>; | ||
| 89 | }; | ||
| 90 | }; | ||
| 91 | |||
| 92 | cluster1 { | ||
| 93 | core0 { | ||
| 94 | cpu = <&cpu_l0>; | ||
| 95 | }; | ||
| 96 | core1 { | ||
| 97 | cpu = <&cpu_l1>; | ||
| 98 | }; | ||
| 99 | core2 { | ||
| 100 | cpu = <&cpu_l2>; | ||
| 101 | }; | ||
| 102 | core3 { | ||
| 103 | cpu = <&cpu_l3>; | ||
| 104 | }; | ||
| 105 | }; | ||
| 106 | }; | ||
| 107 | |||
| 108 | idle-states { | ||
| 109 | entry-method = "arm,psci"; | ||
| 110 | |||
| 111 | cpu_sleep: cpu-sleep-0 { | ||
| 112 | compatible = "arm,idle-state"; | ||
| 113 | arm,psci-suspend-param = <0x1010000>; | ||
| 114 | entry-latency-us = <0x3fffffff>; | ||
| 115 | exit-latency-us = <0x40000000>; | ||
| 116 | min-residency-us = <0xffffffff>; | ||
| 117 | }; | ||
| 118 | }; | ||
| 119 | |||
| 120 | cpu_l0: cpu@0 { | ||
| 121 | device_type = "cpu"; | ||
| 122 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 123 | reg = <0x0 0x0>; | ||
| 124 | cpu-idle-states = <&cpu_sleep>; | ||
| 125 | enable-method = "psci"; | ||
| 126 | }; | ||
| 127 | |||
| 128 | cpu_l1: cpu@1 { | ||
| 129 | device_type = "cpu"; | ||
| 130 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 131 | reg = <0x0 0x1>; | ||
| 132 | cpu-idle-states = <&cpu_sleep>; | ||
| 133 | enable-method = "psci"; | ||
| 134 | }; | ||
| 135 | |||
| 136 | cpu_l2: cpu@2 { | ||
| 137 | device_type = "cpu"; | ||
| 138 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 139 | reg = <0x0 0x2>; | ||
| 140 | cpu-idle-states = <&cpu_sleep>; | ||
| 141 | enable-method = "psci"; | ||
| 142 | }; | ||
| 143 | |||
| 144 | cpu_l3: cpu@3 { | ||
| 145 | device_type = "cpu"; | ||
| 146 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 147 | reg = <0x0 0x3>; | ||
| 148 | cpu-idle-states = <&cpu_sleep>; | ||
| 149 | enable-method = "psci"; | ||
| 150 | }; | ||
| 151 | |||
| 152 | cpu_b0: cpu@100 { | ||
| 153 | device_type = "cpu"; | ||
| 154 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 155 | reg = <0x0 0x100>; | ||
| 156 | cpu-idle-states = <&cpu_sleep>; | ||
| 157 | enable-method = "psci"; | ||
| 158 | }; | ||
| 159 | |||
| 160 | cpu_b1: cpu@101 { | ||
| 161 | device_type = "cpu"; | ||
| 162 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 163 | reg = <0x0 0x101>; | ||
| 164 | cpu-idle-states = <&cpu_sleep>; | ||
| 165 | enable-method = "psci"; | ||
| 166 | }; | ||
| 167 | |||
| 168 | cpu_b2: cpu@102 { | ||
| 169 | device_type = "cpu"; | ||
| 170 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 171 | reg = <0x0 0x102>; | ||
| 172 | cpu-idle-states = <&cpu_sleep>; | ||
| 173 | enable-method = "psci"; | ||
| 174 | }; | ||
| 175 | |||
| 176 | cpu_b3: cpu@103 { | ||
| 177 | device_type = "cpu"; | ||
| 178 | compatible = "arm,cortex-a53", "arm,armv8"; | ||
| 179 | reg = <0x0 0x103>; | ||
| 180 | cpu-idle-states = <&cpu_sleep>; | ||
| 181 | enable-method = "psci"; | ||
| 182 | }; | ||
| 183 | }; | ||
| 184 | |||
| 185 | arm-pmu { | ||
| 186 | compatible = "arm,armv8-pmuv3"; | ||
| 187 | interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, | ||
| 188 | <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, | ||
| 189 | <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, | ||
| 190 | <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, | ||
| 191 | <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, | ||
| 192 | <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, | ||
| 193 | <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, | ||
| 194 | <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; | ||
| 195 | interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>, | ||
| 196 | <&cpu_l3>, <&cpu_b0>, <&cpu_b1>, | ||
| 197 | <&cpu_b2>, <&cpu_b3>; | ||
| 198 | }; | ||
| 199 | |||
| 200 | psci { | ||
| 201 | compatible = "arm,psci-0.2"; | ||
| 202 | method = "smc"; | ||
| 203 | }; | ||
| 204 | |||
| 205 | timer { | ||
| 206 | compatible = "arm,armv8-timer"; | ||
| 207 | interrupts = <GIC_PPI 13 | ||
| 208 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>, | ||
| 209 | <GIC_PPI 14 | ||
| 210 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>, | ||
| 211 | <GIC_PPI 11 | ||
| 212 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>, | ||
| 213 | <GIC_PPI 10 | ||
| 214 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
| 215 | }; | ||
| 216 | |||
| 217 | xin24m: oscillator { | ||
| 218 | compatible = "fixed-clock"; | ||
| 219 | clock-frequency = <24000000>; | ||
| 220 | clock-output-names = "xin24m"; | ||
| 221 | #clock-cells = <0>; | ||
| 222 | }; | ||
| 223 | |||
| 224 | sdmmc: dwmmc@ff0c0000 { | ||
| 225 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; | ||
| 226 | reg = <0x0 0xff0c0000 0x0 0x4000>; | ||
| 227 | clock-freq-min-max = <400000 150000000>; | ||
| 228 | clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; | ||
| 229 | clock-names = "biu", "ciu"; | ||
| 230 | fifo-depth = <0x100>; | ||
| 231 | interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | ||
| 232 | status = "disabled"; | ||
| 233 | }; | ||
| 234 | |||
| 235 | sdio0: dwmmc@ff0d0000 { | ||
| 236 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; | ||
| 237 | reg = <0x0 0xff0d0000 0x0 0x4000>; | ||
| 238 | clock-freq-min-max = <400000 150000000>; | ||
| 239 | clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, | ||
| 240 | <&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>; | ||
| 241 | clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; | ||
| 242 | fifo-depth = <0x100>; | ||
| 243 | interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | ||
| 244 | status = "disabled"; | ||
| 245 | }; | ||
| 246 | |||
| 247 | emmc: dwmmc@ff0f0000 { | ||
| 248 | compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc"; | ||
| 249 | reg = <0x0 0xff0f0000 0x0 0x4000>; | ||
| 250 | clock-freq-min-max = <400000 150000000>; | ||
| 251 | clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>; | ||
| 252 | clock-names = "biu", "ciu"; | ||
| 253 | fifo-depth = <0x100>; | ||
| 254 | interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; | ||
| 255 | status = "disabled"; | ||
| 256 | }; | ||
| 257 | |||
| 258 | saradc: saradc@ff100000 { | ||
| 259 | compatible = "rockchip,saradc"; | ||
| 260 | reg = <0x0 0xff100000 0x0 0x100>; | ||
| 261 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; | ||
| 262 | #io-channel-cells = <1>; | ||
| 263 | clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>; | ||
| 264 | clock-names = "saradc", "apb_pclk"; | ||
| 265 | status = "disabled"; | ||
| 266 | }; | ||
| 267 | |||
| 268 | spi0: spi@ff110000 { | ||
| 269 | compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi"; | ||
| 270 | reg = <0x0 0xff110000 0x0 0x1000>; | ||
| 271 | clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>; | ||
| 272 | clock-names = "spiclk", "apb_pclk"; | ||
| 273 | interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; | ||
| 274 | pinctrl-names = "default"; | ||
| 275 | pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>; | ||
| 276 | #address-cells = <1>; | ||
| 277 | #size-cells = <0>; | ||
| 278 | status = "disabled"; | ||
| 279 | }; | ||
| 280 | |||
| 281 | spi1: spi@ff120000 { | ||
| 282 | compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi"; | ||
| 283 | reg = <0x0 0xff120000 0x0 0x1000>; | ||
| 284 | clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>; | ||
| 285 | clock-names = "spiclk", "apb_pclk"; | ||
| 286 | interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; | ||
| 287 | pinctrl-names = "default"; | ||
| 288 | pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>; | ||
| 289 | #address-cells = <1>; | ||
| 290 | #size-cells = <0>; | ||
| 291 | status = "disabled"; | ||
| 292 | }; | ||
| 293 | |||
| 294 | spi2: spi@ff130000 { | ||
| 295 | compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi"; | ||
| 296 | reg = <0x0 0xff130000 0x0 0x1000>; | ||
| 297 | clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>; | ||
| 298 | clock-names = "spiclk", "apb_pclk"; | ||
| 299 | interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; | ||
| 300 | pinctrl-names = "default"; | ||
| 301 | pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; | ||
| 302 | #address-cells = <1>; | ||
| 303 | #size-cells = <0>; | ||
| 304 | status = "disabled"; | ||
| 305 | }; | ||
| 306 | |||
| 307 | i2c1: i2c@ff140000 { | ||
| 308 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | ||
| 309 | reg = <0x0 0xff140000 0x0 0x1000>; | ||
| 310 | interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | ||
| 311 | #address-cells = <1>; | ||
| 312 | #size-cells = <0>; | ||
| 313 | clock-names = "i2c"; | ||
| 314 | clocks = <&cru PCLK_I2C1>; | ||
| 315 | pinctrl-names = "default"; | ||
| 316 | pinctrl-0 = <&i2c1_xfer>; | ||
| 317 | status = "disabled"; | ||
| 318 | }; | ||
| 319 | |||
| 320 | i2c3: i2c@ff150000 { | ||
| 321 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | ||
| 322 | reg = <0x0 0xff150000 0x0 0x1000>; | ||
| 323 | interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | ||
| 324 | #address-cells = <1>; | ||
| 325 | #size-cells = <0>; | ||
| 326 | clock-names = "i2c"; | ||
| 327 | clocks = <&cru PCLK_I2C3>; | ||
| 328 | pinctrl-names = "default"; | ||
| 329 | pinctrl-0 = <&i2c3_xfer>; | ||
| 330 | status = "disabled"; | ||
| 331 | }; | ||
| 332 | |||
| 333 | i2c4: i2c@ff160000 { | ||
| 334 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | ||
| 335 | reg = <0x0 0xff160000 0x0 0x1000>; | ||
| 336 | interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; | ||
| 337 | #address-cells = <1>; | ||
| 338 | #size-cells = <0>; | ||
| 339 | clock-names = "i2c"; | ||
| 340 | clocks = <&cru PCLK_I2C4>; | ||
| 341 | pinctrl-names = "default"; | ||
| 342 | pinctrl-0 = <&i2c4_xfer>; | ||
| 343 | status = "disabled"; | ||
| 344 | }; | ||
| 345 | |||
| 346 | i2c5: i2c@ff170000 { | ||
| 347 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | ||
| 348 | reg = <0x0 0xff170000 0x0 0x1000>; | ||
| 349 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; | ||
| 350 | #address-cells = <1>; | ||
| 351 | #size-cells = <0>; | ||
| 352 | clock-names = "i2c"; | ||
| 353 | clocks = <&cru PCLK_I2C5>; | ||
| 354 | pinctrl-names = "default"; | ||
| 355 | pinctrl-0 = <&i2c5_xfer>; | ||
| 356 | status = "disabled"; | ||
| 357 | }; | ||
| 358 | |||
| 359 | uart0: serial@ff180000 { | ||
| 360 | compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart"; | ||
| 361 | reg = <0x0 0xff180000 0x0 0x100>; | ||
| 362 | clock-frequency = <24000000>; | ||
| 363 | clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; | ||
| 364 | clock-names = "baudclk", "apb_pclk"; | ||
| 365 | interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; | ||
| 366 | reg-shift = <2>; | ||
| 367 | reg-io-width = <4>; | ||
| 368 | status = "disabled"; | ||
| 369 | }; | ||
| 370 | |||
| 371 | uart1: serial@ff190000 { | ||
| 372 | compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart"; | ||
| 373 | reg = <0x0 0xff190000 0x0 0x100>; | ||
| 374 | clock-frequency = <24000000>; | ||
| 375 | clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; | ||
| 376 | clock-names = "baudclk", "apb_pclk"; | ||
| 377 | interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; | ||
| 378 | reg-shift = <2>; | ||
| 379 | reg-io-width = <4>; | ||
| 380 | status = "disabled"; | ||
| 381 | }; | ||
| 382 | |||
| 383 | uart3: serial@ff1b0000 { | ||
| 384 | compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart"; | ||
| 385 | reg = <0x0 0xff1b0000 0x0 0x100>; | ||
| 386 | clock-frequency = <24000000>; | ||
| 387 | clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; | ||
| 388 | clock-names = "baudclk", "apb_pclk"; | ||
| 389 | interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; | ||
| 390 | reg-shift = <2>; | ||
| 391 | reg-io-width = <4>; | ||
| 392 | status = "disabled"; | ||
| 393 | }; | ||
| 394 | |||
| 395 | uart4: serial@ff1c0000 { | ||
| 396 | compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart"; | ||
| 397 | reg = <0x0 0xff1c0000 0x0 0x100>; | ||
| 398 | clock-frequency = <24000000>; | ||
| 399 | clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>; | ||
| 400 | clock-names = "baudclk", "apb_pclk"; | ||
| 401 | interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | ||
| 402 | reg-shift = <2>; | ||
| 403 | reg-io-width = <4>; | ||
| 404 | status = "disabled"; | ||
| 405 | }; | ||
| 406 | |||
| 407 | gmac: ethernet@ff290000 { | ||
| 408 | compatible = "rockchip,rk3368-gmac"; | ||
| 409 | reg = <0x0 0xff290000 0x0 0x10000>; | ||
| 410 | interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; | ||
| 411 | interrupt-names = "macirq"; | ||
| 412 | rockchip,grf = <&grf>; | ||
| 413 | clocks = <&cru SCLK_MAC>, | ||
| 414 | <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>, | ||
| 415 | <&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>, | ||
| 416 | <&cru ACLK_GMAC>, <&cru PCLK_GMAC>; | ||
| 417 | clock-names = "stmmaceth", | ||
| 418 | "mac_clk_rx", "mac_clk_tx", | ||
| 419 | "clk_mac_ref", "clk_mac_refout", | ||
| 420 | "aclk_mac", "pclk_mac"; | ||
| 421 | status = "disabled"; | ||
| 422 | }; | ||
| 423 | |||
| 424 | usb_host0_ehci: usb@ff500000 { | ||
| 425 | compatible = "generic-ehci"; | ||
| 426 | reg = <0x0 0xff500000 0x0 0x100>; | ||
| 427 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | ||
| 428 | clocks = <&cru HCLK_HOST0>; | ||
| 429 | clock-names = "usbhost"; | ||
| 430 | status = "disabled"; | ||
| 431 | }; | ||
| 432 | |||
| 433 | usb_otg: usb@ff580000 { | ||
| 434 | compatible = "rockchip,rk3368-usb", "rockchip,rk3066-usb", | ||
| 435 | "snps,dwc2"; | ||
| 436 | reg = <0x0 0xff580000 0x0 0x40000>; | ||
| 437 | interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; | ||
| 438 | clocks = <&cru HCLK_OTG0>; | ||
| 439 | clock-names = "otg"; | ||
| 440 | dr_mode = "otg"; | ||
| 441 | g-np-tx-fifo-size = <16>; | ||
| 442 | g-rx-fifo-size = <275>; | ||
| 443 | g-tx-fifo-size = <256 128 128 64 64 32>; | ||
| 444 | g-use-dma; | ||
| 445 | status = "disabled"; | ||
| 446 | }; | ||
| 447 | |||
| 448 | i2c0: i2c@ff650000 { | ||
| 449 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | ||
| 450 | reg = <0x0 0xff650000 0x0 0x1000>; | ||
| 451 | clocks = <&cru PCLK_I2C0>; | ||
| 452 | clock-names = "i2c"; | ||
| 453 | interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; | ||
| 454 | pinctrl-names = "default"; | ||
| 455 | pinctrl-0 = <&i2c0_xfer>; | ||
| 456 | #address-cells = <1>; | ||
| 457 | #size-cells = <0>; | ||
| 458 | status = "disabled"; | ||
| 459 | }; | ||
| 460 | |||
| 461 | i2c2: i2c@ff660000 { | ||
| 462 | compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c"; | ||
| 463 | reg = <0x0 0xff660000 0x0 0x1000>; | ||
| 464 | interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; | ||
| 465 | #address-cells = <1>; | ||
| 466 | #size-cells = <0>; | ||
| 467 | clock-names = "i2c"; | ||
| 468 | clocks = <&cru PCLK_I2C2>; | ||
| 469 | pinctrl-names = "default"; | ||
| 470 | pinctrl-0 = <&i2c2_xfer>; | ||
| 471 | status = "disabled"; | ||
| 472 | }; | ||
| 473 | |||
| 474 | uart2: serial@ff690000 { | ||
| 475 | compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart"; | ||
| 476 | reg = <0x0 0xff690000 0x0 0x100>; | ||
| 477 | clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; | ||
| 478 | clock-names = "baudclk", "apb_pclk"; | ||
| 479 | interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; | ||
| 480 | pinctrl-names = "default"; | ||
| 481 | pinctrl-0 = <&uart2_xfer>; | ||
| 482 | reg-shift = <2>; | ||
| 483 | reg-io-width = <4>; | ||
| 484 | status = "disabled"; | ||
| 485 | }; | ||
| 486 | |||
| 487 | pmugrf: syscon@ff738000 { | ||
| 488 | compatible = "rockchip,rk3368-pmugrf", "syscon"; | ||
| 489 | reg = <0x0 0xff738000 0x0 0x1000>; | ||
| 490 | }; | ||
| 491 | |||
| 492 | cru: clock-controller@ff760000 { | ||
| 493 | compatible = "rockchip,rk3368-cru"; | ||
| 494 | reg = <0x0 0xff760000 0x0 0x1000>; | ||
| 495 | rockchip,grf = <&grf>; | ||
| 496 | #clock-cells = <1>; | ||
| 497 | #reset-cells = <1>; | ||
| 498 | }; | ||
| 499 | |||
| 500 | grf: syscon@ff770000 { | ||
| 501 | compatible = "rockchip,rk3368-grf", "syscon"; | ||
| 502 | reg = <0x0 0xff770000 0x0 0x1000>; | ||
| 503 | }; | ||
| 504 | |||
| 505 | wdt: watchdog@ff800000 { | ||
| 506 | compatible = "rockchip,rk3368-wdt", "snps,dw-wdt"; | ||
| 507 | reg = <0x0 0xff800000 0x0 0x100>; | ||
| 508 | clocks = <&cru PCLK_WDT>; | ||
| 509 | interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; | ||
| 510 | status = "disabled"; | ||
| 511 | }; | ||
| 512 | |||
| 513 | gic: interrupt-controller@ffb71000 { | ||
| 514 | compatible = "arm,gic-400"; | ||
| 515 | interrupt-controller; | ||
| 516 | #interrupt-cells = <3>; | ||
| 517 | #address-cells = <0>; | ||
| 518 | |||
| 519 | reg = <0x0 0xffb71000 0x0 0x1000>, | ||
| 520 | <0x0 0xffb72000 0x0 0x1000>, | ||
| 521 | <0x0 0xffb74000 0x0 0x2000>, | ||
| 522 | <0x0 0xffb76000 0x0 0x2000>; | ||
| 523 | interrupts = <GIC_PPI 9 | ||
| 524 | (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; | ||
| 525 | }; | ||
| 526 | |||
| 527 | pinctrl: pinctrl { | ||
| 528 | compatible = "rockchip,rk3368-pinctrl"; | ||
| 529 | rockchip,grf = <&grf>; | ||
| 530 | rockchip,pmu = <&pmugrf>; | ||
| 531 | #address-cells = <0x2>; | ||
| 532 | #size-cells = <0x2>; | ||
| 533 | ranges; | ||
| 534 | |||
| 535 | gpio0: gpio0@ff750000 { | ||
| 536 | compatible = "rockchip,gpio-bank"; | ||
| 537 | reg = <0x0 0xff750000 0x0 0x100>; | ||
| 538 | clocks = <&cru PCLK_GPIO0>; | ||
| 539 | interrupts = <GIC_SPI 0x51 IRQ_TYPE_LEVEL_HIGH>; | ||
| 540 | |||
| 541 | gpio-controller; | ||
| 542 | #gpio-cells = <0x2>; | ||
| 543 | |||
| 544 | interrupt-controller; | ||
| 545 | #interrupt-cells = <0x2>; | ||
| 546 | }; | ||
| 547 | |||
| 548 | gpio1: gpio1@ff780000 { | ||
| 549 | compatible = "rockchip,gpio-bank"; | ||
| 550 | reg = <0x0 0xff780000 0x0 0x100>; | ||
| 551 | clocks = <&cru PCLK_GPIO1>; | ||
| 552 | interrupts = <GIC_SPI 0x52 IRQ_TYPE_LEVEL_HIGH>; | ||
| 553 | |||
| 554 | gpio-controller; | ||
| 555 | #gpio-cells = <0x2>; | ||
| 556 | |||
| 557 | interrupt-controller; | ||
| 558 | #interrupt-cells = <0x2>; | ||
| 559 | }; | ||
| 560 | |||
| 561 | gpio2: gpio2@ff790000 { | ||
| 562 | compatible = "rockchip,gpio-bank"; | ||
| 563 | reg = <0x0 0xff790000 0x0 0x100>; | ||
| 564 | clocks = <&cru PCLK_GPIO2>; | ||
| 565 | interrupts = <GIC_SPI 0x53 IRQ_TYPE_LEVEL_HIGH>; | ||
| 566 | |||
| 567 | gpio-controller; | ||
| 568 | #gpio-cells = <0x2>; | ||
| 569 | |||
| 570 | interrupt-controller; | ||
| 571 | #interrupt-cells = <0x2>; | ||
| 572 | }; | ||
| 573 | |||
| 574 | gpio3: gpio3@ff7a0000 { | ||
| 575 | compatible = "rockchip,gpio-bank"; | ||
| 576 | reg = <0x0 0xff7a0000 0x0 0x100>; | ||
| 577 | clocks = <&cru PCLK_GPIO3>; | ||
| 578 | interrupts = <GIC_SPI 0x54 IRQ_TYPE_LEVEL_HIGH>; | ||
| 579 | |||
| 580 | gpio-controller; | ||
| 581 | #gpio-cells = <0x2>; | ||
| 582 | |||
| 583 | interrupt-controller; | ||
| 584 | #interrupt-cells = <0x2>; | ||
| 585 | }; | ||
| 586 | |||
| 587 | pcfg_pull_up: pcfg-pull-up { | ||
| 588 | bias-pull-up; | ||
| 589 | }; | ||
| 590 | |||
| 591 | pcfg_pull_down: pcfg-pull-down { | ||
| 592 | bias-pull-down; | ||
| 593 | }; | ||
| 594 | |||
| 595 | pcfg_pull_none: pcfg-pull-none { | ||
| 596 | bias-disable; | ||
| 597 | }; | ||
| 598 | |||
| 599 | pcfg_pull_none_12ma: pcfg-pull-none-12ma { | ||
| 600 | bias-disable; | ||
| 601 | drive-strength = <12>; | ||
| 602 | }; | ||
| 603 | |||
| 604 | emmc { | ||
| 605 | emmc_clk: emmc-clk { | ||
| 606 | rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>; | ||
| 607 | }; | ||
| 608 | |||
| 609 | emmc_cmd: emmc-cmd { | ||
| 610 | rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up>; | ||
| 611 | }; | ||
| 612 | |||
| 613 | emmc_pwr: emmc-pwr { | ||
| 614 | rockchip,pins = <1 27 RK_FUNC_2 &pcfg_pull_up>; | ||
| 615 | }; | ||
| 616 | |||
| 617 | emmc_bus1: emmc-bus1 { | ||
| 618 | rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>; | ||
| 619 | }; | ||
| 620 | |||
| 621 | emmc_bus4: emmc-bus4 { | ||
| 622 | rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>, | ||
| 623 | <1 19 RK_FUNC_2 &pcfg_pull_up>, | ||
| 624 | <1 20 RK_FUNC_2 &pcfg_pull_up>, | ||
| 625 | <1 21 RK_FUNC_2 &pcfg_pull_up>; | ||
| 626 | }; | ||
| 627 | |||
| 628 | emmc_bus8: emmc-bus8 { | ||
| 629 | rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>, | ||
| 630 | <1 19 RK_FUNC_2 &pcfg_pull_up>, | ||
| 631 | <1 20 RK_FUNC_2 &pcfg_pull_up>, | ||
| 632 | <1 21 RK_FUNC_2 &pcfg_pull_up>, | ||
| 633 | <1 22 RK_FUNC_2 &pcfg_pull_up>, | ||
| 634 | <1 23 RK_FUNC_2 &pcfg_pull_up>, | ||
| 635 | <1 24 RK_FUNC_2 &pcfg_pull_up>, | ||
| 636 | <1 25 RK_FUNC_2 &pcfg_pull_up>; | ||
| 637 | }; | ||
| 638 | }; | ||
| 639 | |||
| 640 | gmac { | ||
| 641 | rgmii_pins: rgmii-pins { | ||
| 642 | rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>, | ||
| 643 | <3 24 RK_FUNC_1 &pcfg_pull_none>, | ||
| 644 | <3 19 RK_FUNC_1 &pcfg_pull_none>, | ||
| 645 | <3 8 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 646 | <3 9 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 647 | <3 10 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 648 | <3 14 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 649 | <3 28 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 650 | <3 13 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 651 | <3 15 RK_FUNC_1 &pcfg_pull_none>, | ||
| 652 | <3 16 RK_FUNC_1 &pcfg_pull_none>, | ||
| 653 | <3 17 RK_FUNC_1 &pcfg_pull_none>, | ||
| 654 | <3 18 RK_FUNC_1 &pcfg_pull_none>, | ||
| 655 | <3 25 RK_FUNC_1 &pcfg_pull_none>, | ||
| 656 | <3 20 RK_FUNC_1 &pcfg_pull_none>; | ||
| 657 | }; | ||
| 658 | |||
| 659 | rmii_pins: rmii-pins { | ||
| 660 | rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>, | ||
| 661 | <3 24 RK_FUNC_1 &pcfg_pull_none>, | ||
| 662 | <3 19 RK_FUNC_1 &pcfg_pull_none>, | ||
| 663 | <3 8 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 664 | <3 9 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 665 | <3 13 RK_FUNC_1 &pcfg_pull_none_12ma>, | ||
| 666 | <3 15 RK_FUNC_1 &pcfg_pull_none>, | ||
| 667 | <3 16 RK_FUNC_1 &pcfg_pull_none>, | ||
| 668 | <3 20 RK_FUNC_1 &pcfg_pull_none>, | ||
| 669 | <3 21 RK_FUNC_1 &pcfg_pull_none>; | ||
| 670 | }; | ||
| 671 | }; | ||
| 672 | |||
| 673 | i2c0 { | ||
| 674 | i2c0_xfer: i2c0-xfer { | ||
| 675 | rockchip,pins = <0 6 RK_FUNC_1 &pcfg_pull_none>, | ||
| 676 | <0 7 RK_FUNC_1 &pcfg_pull_none>; | ||
| 677 | }; | ||
| 678 | }; | ||
| 679 | |||
| 680 | i2c1 { | ||
| 681 | i2c1_xfer: i2c1-xfer { | ||
| 682 | rockchip,pins = <2 21 RK_FUNC_1 &pcfg_pull_none>, | ||
| 683 | <2 22 RK_FUNC_1 &pcfg_pull_none>; | ||
| 684 | }; | ||
| 685 | }; | ||
| 686 | |||
| 687 | i2c2 { | ||
| 688 | i2c2_xfer: i2c2-xfer { | ||
| 689 | rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_none>, | ||
| 690 | <3 31 RK_FUNC_2 &pcfg_pull_none>; | ||
| 691 | }; | ||
| 692 | }; | ||
| 693 | |||
| 694 | i2c3 { | ||
| 695 | i2c3_xfer: i2c3-xfer { | ||
| 696 | rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none>, | ||
| 697 | <1 17 RK_FUNC_1 &pcfg_pull_none>; | ||
| 698 | }; | ||
| 699 | }; | ||
| 700 | |||
| 701 | i2c4 { | ||
| 702 | i2c4_xfer: i2c4-xfer { | ||
| 703 | rockchip,pins = <3 24 RK_FUNC_2 &pcfg_pull_none>, | ||
| 704 | <3 25 RK_FUNC_2 &pcfg_pull_none>; | ||
| 705 | }; | ||
| 706 | }; | ||
| 707 | |||
| 708 | i2c5 { | ||
| 709 | i2c5_xfer: i2c5-xfer { | ||
| 710 | rockchip,pins = <3 26 RK_FUNC_2 &pcfg_pull_none>, | ||
| 711 | <3 27 RK_FUNC_2 &pcfg_pull_none>; | ||
| 712 | }; | ||
| 713 | }; | ||
| 714 | |||
| 715 | sdio0 { | ||
| 716 | sdio0_bus1: sdio0-bus1 { | ||
| 717 | rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>; | ||
| 718 | }; | ||
| 719 | |||
| 720 | sdio0_bus4: sdio0-bus4 { | ||
| 721 | rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>, | ||
| 722 | <2 29 RK_FUNC_1 &pcfg_pull_up>, | ||
| 723 | <2 30 RK_FUNC_1 &pcfg_pull_up>, | ||
| 724 | <2 31 RK_FUNC_1 &pcfg_pull_up>; | ||
| 725 | }; | ||
| 726 | |||
| 727 | sdio0_cmd: sdio0-cmd { | ||
| 728 | rockchip,pins = <3 0 RK_FUNC_1 &pcfg_pull_up>; | ||
| 729 | }; | ||
| 730 | |||
| 731 | sdio0_clk: sdio0-clk { | ||
| 732 | rockchip,pins = <3 1 RK_FUNC_1 &pcfg_pull_none>; | ||
| 733 | }; | ||
| 734 | |||
| 735 | sdio0_cd: sdio0-cd { | ||
| 736 | rockchip,pins = <3 2 RK_FUNC_1 &pcfg_pull_up>; | ||
| 737 | }; | ||
| 738 | |||
| 739 | sdio0_wp: sdio0-wp { | ||
| 740 | rockchip,pins = <3 3 RK_FUNC_1 &pcfg_pull_up>; | ||
| 741 | }; | ||
| 742 | |||
| 743 | sdio0_pwr: sdio0-pwr { | ||
| 744 | rockchip,pins = <3 4 RK_FUNC_1 &pcfg_pull_up>; | ||
| 745 | }; | ||
| 746 | |||
| 747 | sdio0_bkpwr: sdio0-bkpwr { | ||
| 748 | rockchip,pins = <3 5 RK_FUNC_1 &pcfg_pull_up>; | ||
| 749 | }; | ||
| 750 | |||
| 751 | sdio0_int: sdio0-int { | ||
| 752 | rockchip,pins = <3 6 RK_FUNC_1 &pcfg_pull_up>; | ||
| 753 | }; | ||
| 754 | }; | ||
| 755 | |||
| 756 | sdmmc { | ||
| 757 | sdmmc_clk: sdmmc-clk { | ||
| 758 | rockchip,pins = <2 9 RK_FUNC_1 &pcfg_pull_none>; | ||
| 759 | }; | ||
| 760 | |||
| 761 | sdmmc_cmd: sdmmc-cmd { | ||
| 762 | rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_up>; | ||
| 763 | }; | ||
| 764 | |||
| 765 | sdmmc_cd: sdmcc-cd { | ||
| 766 | rockchip,pins = <2 11 RK_FUNC_1 &pcfg_pull_up>; | ||
| 767 | }; | ||
| 768 | |||
| 769 | sdmmc_bus1: sdmmc-bus1 { | ||
| 770 | rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>; | ||
| 771 | }; | ||
| 772 | |||
| 773 | sdmmc_bus4: sdmmc-bus4 { | ||
| 774 | rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>, | ||
| 775 | <2 6 RK_FUNC_1 &pcfg_pull_up>, | ||
| 776 | <2 7 RK_FUNC_1 &pcfg_pull_up>, | ||
| 777 | <2 8 RK_FUNC_1 &pcfg_pull_up>; | ||
| 778 | }; | ||
| 779 | }; | ||
| 780 | |||
| 781 | spi0 { | ||
| 782 | spi0_clk: spi0-clk { | ||
| 783 | rockchip,pins = <1 29 RK_FUNC_2 &pcfg_pull_up>; | ||
| 784 | }; | ||
| 785 | spi0_cs0: spi0-cs0 { | ||
| 786 | rockchip,pins = <1 24 RK_FUNC_3 &pcfg_pull_up>; | ||
| 787 | }; | ||
| 788 | spi0_cs1: spi0-cs1 { | ||
| 789 | rockchip,pins = <1 25 RK_FUNC_3 &pcfg_pull_up>; | ||
| 790 | }; | ||
| 791 | spi0_tx: spi0-tx { | ||
| 792 | rockchip,pins = <1 23 RK_FUNC_3 &pcfg_pull_up>; | ||
| 793 | }; | ||
| 794 | spi0_rx: spi0-rx { | ||
| 795 | rockchip,pins = <1 22 RK_FUNC_3 &pcfg_pull_up>; | ||
| 796 | }; | ||
| 797 | }; | ||
| 798 | |||
| 799 | spi1 { | ||
| 800 | spi1_clk: spi1-clk { | ||
| 801 | rockchip,pins = <1 14 RK_FUNC_2 &pcfg_pull_up>; | ||
| 802 | }; | ||
| 803 | spi1_cs0: spi1-cs0 { | ||
| 804 | rockchip,pins = <1 15 RK_FUNC_2 &pcfg_pull_up>; | ||
| 805 | }; | ||
| 806 | spi1_cs1: spi1-cs1 { | ||
| 807 | rockchip,pins = <3 28 RK_FUNC_2 &pcfg_pull_up>; | ||
| 808 | }; | ||
| 809 | spi1_rx: spi1-rx { | ||
| 810 | rockchip,pins = <1 16 RK_FUNC_2 &pcfg_pull_up>; | ||
| 811 | }; | ||
| 812 | spi1_tx: spi1-tx { | ||
| 813 | rockchip,pins = <1 17 RK_FUNC_2 &pcfg_pull_up>; | ||
| 814 | }; | ||
| 815 | }; | ||
| 816 | |||
| 817 | spi2 { | ||
| 818 | spi2_clk: spi2-clk { | ||
| 819 | rockchip,pins = <0 12 RK_FUNC_2 &pcfg_pull_up>; | ||
| 820 | }; | ||
| 821 | spi2_cs0: spi2-cs0 { | ||
| 822 | rockchip,pins = <0 13 RK_FUNC_2 &pcfg_pull_up>; | ||
| 823 | }; | ||
| 824 | spi2_rx: spi2-rx { | ||
| 825 | rockchip,pins = <0 10 RK_FUNC_2 &pcfg_pull_up>; | ||
| 826 | }; | ||
| 827 | spi2_tx: spi2-tx { | ||
| 828 | rockchip,pins = <0 11 RK_FUNC_2 &pcfg_pull_up>; | ||
| 829 | }; | ||
| 830 | }; | ||
| 831 | |||
| 832 | uart0 { | ||
| 833 | uart0_xfer: uart0-xfer { | ||
| 834 | rockchip,pins = <2 24 RK_FUNC_1 &pcfg_pull_up>, | ||
| 835 | <2 25 RK_FUNC_1 &pcfg_pull_none>; | ||
| 836 | }; | ||
| 837 | |||
| 838 | uart0_cts: uart0-cts { | ||
| 839 | rockchip,pins = <2 26 RK_FUNC_1 &pcfg_pull_none>; | ||
| 840 | }; | ||
| 841 | |||
| 842 | uart0_rts: uart0-rts { | ||
| 843 | rockchip,pins = <2 27 RK_FUNC_1 &pcfg_pull_none>; | ||
| 844 | }; | ||
| 845 | }; | ||
| 846 | |||
| 847 | uart1 { | ||
| 848 | uart1_xfer: uart1-xfer { | ||
| 849 | rockchip,pins = <0 20 RK_FUNC_3 &pcfg_pull_up>, | ||
| 850 | <0 21 RK_FUNC_3 &pcfg_pull_none>; | ||
| 851 | }; | ||
| 852 | |||
| 853 | uart1_cts: uart1-cts { | ||
| 854 | rockchip,pins = <0 22 RK_FUNC_3 &pcfg_pull_none>; | ||
| 855 | }; | ||
| 856 | |||
| 857 | uart1_rts: uart1-rts { | ||
| 858 | rockchip,pins = <0 23 RK_FUNC_3 &pcfg_pull_none>; | ||
| 859 | }; | ||
| 860 | }; | ||
| 861 | |||
| 862 | uart2 { | ||
| 863 | uart2_xfer: uart2-xfer { | ||
| 864 | rockchip,pins = <2 6 RK_FUNC_2 &pcfg_pull_up>, | ||
| 865 | <2 5 RK_FUNC_2 &pcfg_pull_none>; | ||
| 866 | }; | ||
| 867 | /* no rts / cts for uart2 */ | ||
| 868 | }; | ||
| 869 | |||
| 870 | uart3 { | ||
| 871 | uart3_xfer: uart3-xfer { | ||
| 872 | rockchip,pins = <3 29 RK_FUNC_2 &pcfg_pull_up>, | ||
| 873 | <3 30 RK_FUNC_3 &pcfg_pull_none>; | ||
| 874 | }; | ||
| 875 | |||
| 876 | uart3_cts: uart3-cts { | ||
| 877 | rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none>; | ||
| 878 | }; | ||
| 879 | |||
| 880 | uart3_rts: uart3-rts { | ||
| 881 | rockchip,pins = <3 17 RK_FUNC_2 &pcfg_pull_none>; | ||
| 882 | }; | ||
| 883 | }; | ||
| 884 | |||
| 885 | uart4 { | ||
| 886 | uart4_xfer: uart4-xfer { | ||
| 887 | rockchip,pins = <0 27 RK_FUNC_3 &pcfg_pull_up>, | ||
| 888 | <0 26 RK_FUNC_3 &pcfg_pull_none>; | ||
| 889 | }; | ||
| 890 | |||
| 891 | uart4_cts: uart4-cts { | ||
| 892 | rockchip,pins = <0 24 RK_FUNC_3 &pcfg_pull_none>; | ||
| 893 | }; | ||
| 894 | |||
| 895 | uart4_rts: uart4-rts { | ||
| 896 | rockchip,pins = <0 25 RK_FUNC_3 &pcfg_pull_none>; | ||
| 897 | }; | ||
| 898 | }; | ||
| 899 | }; | ||
| 900 | }; | ||
diff --git a/arch/arm64/boot/dts/sprd/sc9836.dtsi b/arch/arm64/boot/dts/sprd/sc9836.dtsi index ee34e1a36e03..63894c456969 100644 --- a/arch/arm64/boot/dts/sprd/sc9836.dtsi +++ b/arch/arm64/boot/dts/sprd/sc9836.dtsi | |||
| @@ -16,28 +16,28 @@ | |||
| 16 | #address-cells = <2>; | 16 | #address-cells = <2>; |
| 17 | #size-cells = <0>; | 17 | #size-cells = <0>; |
| 18 | 18 | ||
| 19 | cpu@0 { | 19 | cpu0: cpu@0 { |
| 20 | device_type = "cpu"; | 20 | device_type = "cpu"; |
| 21 | compatible = "arm,cortex-a53", "arm,armv8"; | 21 | compatible = "arm,cortex-a53", "arm,armv8"; |
| 22 | reg = <0x0 0x0>; | 22 | reg = <0x0 0x0>; |
| 23 | enable-method = "psci"; | 23 | enable-method = "psci"; |
| 24 | }; | 24 | }; |
| 25 | 25 | ||
| 26 | cpu@1 { | 26 | cpu1: cpu@1 { |
| 27 | device_type = "cpu"; | 27 | device_type = "cpu"; |
| 28 | compatible = "arm,cortex-a53", "arm,armv8"; | 28 | compatible = "arm,cortex-a53", "arm,armv8"; |
| 29 | reg = <0x0 0x1>; | 29 | reg = <0x0 0x1>; |
| 30 | enable-method = "psci"; | 30 | enable-method = "psci"; |
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | cpu@2 { | 33 | cpu2: cpu@2 { |
| 34 | device_type = "cpu"; | 34 | device_type = "cpu"; |
| 35 | compatible = "arm,cortex-a53", "arm,armv8"; | 35 | compatible = "arm,cortex-a53", "arm,armv8"; |
| 36 | reg = <0x0 0x2>; | 36 | reg = <0x0 0x2>; |
| 37 | enable-method = "psci"; | 37 | enable-method = "psci"; |
| 38 | }; | 38 | }; |
| 39 | 39 | ||
| 40 | cpu@3 { | 40 | cpu3: cpu@3 { |
| 41 | device_type = "cpu"; | 41 | device_type = "cpu"; |
| 42 | compatible = "arm,cortex-a53", "arm,armv8"; | 42 | compatible = "arm,cortex-a53", "arm,armv8"; |
| 43 | reg = <0x0 0x3>; | 43 | reg = <0x0 0x3>; |
| @@ -75,14 +75,103 @@ | |||
| 75 | }; | 75 | }; |
| 76 | }; | 76 | }; |
| 77 | 77 | ||
| 78 | /* funnel input port 0~3 is reserved for ETMs */ | 78 | /* funnel input port 0-4 */ |
| 79 | port@1 { | 79 | port@1 { |
| 80 | reg = <0>; | ||
| 81 | funnel_in_port0: endpoint { | ||
| 82 | slave-mode; | ||
| 83 | remote-endpoint = <&etm0_out>; | ||
| 84 | }; | ||
| 85 | }; | ||
| 86 | |||
| 87 | port@2 { | ||
| 88 | reg = <1>; | ||
| 89 | funnel_in_port1: endpoint { | ||
| 90 | slave-mode; | ||
| 91 | remote-endpoint = <&etm1_out>; | ||
| 92 | }; | ||
| 93 | }; | ||
| 94 | |||
| 95 | port@3 { | ||
| 96 | reg = <2>; | ||
| 97 | funnel_in_port2: endpoint { | ||
| 98 | slave-mode; | ||
| 99 | remote-endpoint = <&etm2_out>; | ||
| 100 | }; | ||
| 101 | }; | ||
| 102 | |||
| 103 | port@4 { | ||
| 104 | reg = <3>; | ||
| 105 | funnel_in_port3: endpoint { | ||
| 106 | slave-mode; | ||
| 107 | remote-endpoint = <&etm3_out>; | ||
| 108 | }; | ||
| 109 | }; | ||
| 110 | |||
| 111 | port@5 { | ||
| 80 | reg = <4>; | 112 | reg = <4>; |
| 81 | funnel_in_port4: endpoint { | 113 | funnel_in_port4: endpoint { |
| 82 | slave-mode; | 114 | slave-mode; |
| 83 | remote-endpoint = <&stm_out>; | 115 | remote-endpoint = <&stm_out>; |
| 84 | }; | 116 | }; |
| 85 | }; | 117 | }; |
| 118 | /* Other input ports aren't connected to anyone */ | ||
| 119 | }; | ||
| 120 | }; | ||
| 121 | |||
| 122 | etm@10440000 { | ||
| 123 | compatible = "arm,coresight-etm4x", "arm,primecell"; | ||
| 124 | reg = <0 0x10440000 0 0x1000>; | ||
| 125 | |||
| 126 | cpu = <&cpu0>; | ||
| 127 | clocks = <&clk26mhz>; | ||
| 128 | clock-names = "apb_pclk"; | ||
| 129 | port { | ||
| 130 | etm0_out: endpoint { | ||
| 131 | remote-endpoint = <&funnel_in_port0>; | ||
| 132 | }; | ||
| 133 | }; | ||
| 134 | }; | ||
| 135 | |||
| 136 | etm@10540000 { | ||
| 137 | compatible = "arm,coresight-etm4x", "arm,primecell"; | ||
| 138 | reg = <0 0x10540000 0 0x1000>; | ||
| 139 | |||
| 140 | cpu = <&cpu1>; | ||
| 141 | clocks = <&clk26mhz>; | ||
| 142 | clock-names = "apb_pclk"; | ||
| 143 | port { | ||
| 144 | etm1_out: endpoint { | ||
| 145 | remote-endpoint = <&funnel_in_port1>; | ||
| 146 | }; | ||
| 147 | }; | ||
| 148 | }; | ||
| 149 | |||
| 150 | etm@10640000 { | ||
| 151 | compatible = "arm,coresight-etm4x", "arm,primecell"; | ||
| 152 | reg = <0 0x10640000 0 0x1000>; | ||
| 153 | |||
| 154 | cpu = <&cpu2>; | ||
| 155 | clocks = <&clk26mhz>; | ||
| 156 | clock-names = "apb_pclk"; | ||
| 157 | port { | ||
| 158 | etm2_out: endpoint { | ||
| 159 | remote-endpoint = <&funnel_in_port2>; | ||
| 160 | }; | ||
| 161 | }; | ||
| 162 | }; | ||
| 163 | |||
| 164 | etm@10740000 { | ||
| 165 | compatible = "arm,coresight-etm4x", "arm,primecell"; | ||
| 166 | reg = <0 0x10740000 0 0x1000>; | ||
| 167 | |||
| 168 | cpu = <&cpu3>; | ||
| 169 | clocks = <&clk26mhz>; | ||
| 170 | clock-names = "apb_pclk"; | ||
| 171 | port { | ||
| 172 | etm3_out: endpoint { | ||
| 173 | remote-endpoint = <&funnel_in_port3>; | ||
| 174 | }; | ||
| 86 | }; | 175 | }; |
| 87 | }; | 176 | }; |
| 88 | 177 | ||
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts b/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts index 0a3f40ecd06d..ce5d848251fa 100644 --- a/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts +++ b/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | |||
| @@ -32,6 +32,10 @@ | |||
| 32 | }; | 32 | }; |
| 33 | }; | 33 | }; |
| 34 | 34 | ||
| 35 | &can0 { | ||
| 36 | status = "okay"; | ||
| 37 | }; | ||
| 38 | |||
| 35 | &gem0 { | 39 | &gem0 { |
| 36 | status = "okay"; | 40 | status = "okay"; |
| 37 | phy-handle = <&phy0>; | 41 | phy-handle = <&phy0>; |
| @@ -42,6 +46,91 @@ | |||
| 42 | }; | 46 | }; |
| 43 | }; | 47 | }; |
| 44 | 48 | ||
| 49 | &gpio { | ||
| 50 | status = "okay"; | ||
| 51 | }; | ||
| 52 | |||
| 53 | &i2c0 { | ||
| 54 | status = "okay"; | ||
| 55 | clock-frequency = <400000>; | ||
| 56 | eeprom@54 { | ||
| 57 | compatible = "at,24c64"; | ||
| 58 | reg = <0x54>; | ||
| 59 | }; | ||
| 60 | }; | ||
| 61 | |||
| 62 | &i2c1 { | ||
| 63 | status = "okay"; | ||
| 64 | clock-frequency = <400000>; | ||
| 65 | eeprom@55 { | ||
| 66 | compatible = "at,24c64"; | ||
| 67 | reg = <0x55>; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | |||
| 71 | &sata { | ||
| 72 | status = "okay"; | ||
| 73 | ceva,broken-gen2; | ||
| 74 | }; | ||
| 75 | |||
| 76 | &sdhci0 { | ||
| 77 | status = "okay"; | ||
| 78 | }; | ||
| 79 | |||
| 80 | &sdhci1 { | ||
| 81 | status = "okay"; | ||
| 82 | }; | ||
| 83 | |||
| 84 | &spi0 { | ||
| 85 | status = "okay"; | ||
| 86 | num-cs = <1>; | ||
| 87 | spi0_flash0: spi0_flash0@0 { | ||
| 88 | compatible = "m25p80"; | ||
| 89 | #address-cells = <1>; | ||
| 90 | #size-cells = <1>; | ||
| 91 | spi-max-frequency = <50000000>; | ||
| 92 | reg = <0>; | ||
| 93 | |||
| 94 | spi0_flash0@00000000 { | ||
| 95 | label = "spi0_flash0"; | ||
| 96 | reg = <0x0 0x100000>; | ||
| 97 | }; | ||
| 98 | }; | ||
| 99 | }; | ||
| 100 | |||
| 101 | &spi1 { | ||
| 102 | status = "okay"; | ||
| 103 | num-cs = <1>; | ||
| 104 | spi1_flash0: spi1_flash0@0 { | ||
| 105 | compatible = "m25p80"; | ||
| 106 | #address-cells = <1>; | ||
| 107 | #size-cells = <1>; | ||
| 108 | spi-max-frequency = <50000000>; | ||
| 109 | reg = <0>; | ||
| 110 | |||
| 111 | spi1_flash0@00000000 { | ||
| 112 | label = "spi1_flash0"; | ||
| 113 | reg = <0x0 0x100000>; | ||
| 114 | }; | ||
| 115 | }; | ||
| 116 | }; | ||
| 117 | |||
| 45 | &uart0 { | 118 | &uart0 { |
| 46 | status = "okay"; | 119 | status = "okay"; |
| 47 | }; | 120 | }; |
| 121 | |||
| 122 | &usb0 { | ||
| 123 | status = "okay"; | ||
| 124 | dr_mode = "peripheral"; | ||
| 125 | maximum-speed = "high-speed"; | ||
| 126 | }; | ||
| 127 | |||
| 128 | &usb1 { | ||
| 129 | status = "okay"; | ||
| 130 | dr_mode = "host"; | ||
| 131 | maximum-speed = "high-speed"; | ||
| 132 | }; | ||
| 133 | |||
| 134 | &watchdog0 { | ||
| 135 | status = "okay"; | ||
| 136 | }; | ||
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi index 11e0b00045cf..857eda5c7217 100644 --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi | |||
| @@ -96,74 +96,38 @@ | |||
| 96 | #size-cells = <1>; | 96 | #size-cells = <1>; |
| 97 | ranges; | 97 | ranges; |
| 98 | 98 | ||
| 99 | misc_clk: misc_clk { | 99 | can0: can@ff060000 { |
| 100 | compatible = "fixed-clock"; | 100 | compatible = "xlnx,zynq-can-1.0"; |
| 101 | #clock-cells = <0>; | ||
| 102 | clock-frequency = <25000000>; | ||
| 103 | }; | ||
| 104 | |||
| 105 | ttc0: timer@ff110000 { | ||
| 106 | compatible = "cdns,ttc"; | ||
| 107 | status = "disabled"; | ||
| 108 | interrupt-parent = <&gic>; | ||
| 109 | interrupts = <0 36 4>, <0 37 4>, <0 38 4>; | ||
| 110 | reg = <0x0 0xff110000 0x1000>; | ||
| 111 | clocks = <&misc_clk>; | ||
| 112 | timer-width = <32>; | ||
| 113 | }; | ||
| 114 | |||
| 115 | ttc1: timer@ff120000 { | ||
| 116 | compatible = "cdns,ttc"; | ||
| 117 | status = "disabled"; | ||
| 118 | interrupt-parent = <&gic>; | ||
| 119 | interrupts = <0 39 4>, <0 40 4>, <0 41 4>; | ||
| 120 | reg = <0x0 0xff120000 0x1000>; | ||
| 121 | clocks = <&misc_clk>; | ||
| 122 | timer-width = <32>; | ||
| 123 | }; | ||
| 124 | |||
| 125 | ttc2: timer@ff130000 { | ||
| 126 | compatible = "cdns,ttc"; | ||
| 127 | status = "disabled"; | ||
| 128 | interrupt-parent = <&gic>; | ||
| 129 | interrupts = <0 42 4>, <0 43 4>, <0 44 4>; | ||
| 130 | reg = <0x0 0xff130000 0x1000>; | ||
| 131 | clocks = <&misc_clk>; | ||
| 132 | timer-width = <32>; | ||
| 133 | }; | ||
| 134 | |||
| 135 | ttc3: timer@ff140000 { | ||
| 136 | compatible = "cdns,ttc"; | ||
| 137 | status = "disabled"; | 101 | status = "disabled"; |
| 102 | clocks = <&misc_clk &misc_clk>; | ||
| 103 | clock-names = "can_clk", "pclk"; | ||
| 104 | reg = <0x0 0xff060000 0x1000>; | ||
| 105 | interrupts = <0 23 4>; | ||
| 138 | interrupt-parent = <&gic>; | 106 | interrupt-parent = <&gic>; |
| 139 | interrupts = <0 45 4>, <0 46 4>, <0 47 4>; | 107 | tx-fifo-depth = <0x40>; |
| 140 | reg = <0x0 0xff140000 0x1000>; | 108 | rx-fifo-depth = <0x40>; |
| 141 | clocks = <&misc_clk>; | ||
| 142 | timer-width = <32>; | ||
| 143 | }; | 109 | }; |
| 144 | 110 | ||
| 145 | uart0: serial@ff000000 { | 111 | can1: can@ff070000 { |
| 146 | compatible = "cdns,uart-r1p8"; | 112 | compatible = "xlnx,zynq-can-1.0"; |
| 147 | status = "disabled"; | 113 | status = "disabled"; |
| 148 | interrupt-parent = <&gic>; | ||
| 149 | interrupts = <0 21 4>; | ||
| 150 | reg = <0x0 0xff000000 0x1000>; | ||
| 151 | clock-names = "uart_clk", "pclk"; | ||
| 152 | clocks = <&misc_clk &misc_clk>; | 114 | clocks = <&misc_clk &misc_clk>; |
| 115 | clock-names = "can_clk", "pclk"; | ||
| 116 | reg = <0x0 0xff070000 0x1000>; | ||
| 117 | interrupts = <0 24 4>; | ||
| 118 | interrupt-parent = <&gic>; | ||
| 119 | tx-fifo-depth = <0x40>; | ||
| 120 | rx-fifo-depth = <0x40>; | ||
| 153 | }; | 121 | }; |
| 154 | 122 | ||
| 155 | uart1: serial@ff010000 { | 123 | misc_clk: misc_clk { |
| 156 | compatible = "cdns,uart-r1p8"; | 124 | compatible = "fixed-clock"; |
| 157 | status = "disabled"; | 125 | #clock-cells = <0>; |
| 158 | interrupt-parent = <&gic>; | 126 | clock-frequency = <25000000>; |
| 159 | interrupts = <0 22 4>; | ||
| 160 | reg = <0x0 0xff010000 0x1000>; | ||
| 161 | clock-names = "uart_clk", "pclk"; | ||
| 162 | clocks = <&misc_clk &misc_clk>; | ||
| 163 | }; | 127 | }; |
| 164 | 128 | ||
| 165 | gpio: gpio@ff0a0000 { | 129 | gpio: gpio@ff0a0000 { |
| 166 | compatible = "xlnx,zynq-gpio-1.0"; | 130 | compatible = "xlnx,zynqmp-gpio-1.0"; |
| 167 | status = "disabled"; | 131 | status = "disabled"; |
| 168 | #gpio-cells = <0x2>; | 132 | #gpio-cells = <0x2>; |
| 169 | clocks = <&misc_clk>; | 133 | clocks = <&misc_clk>; |
| @@ -220,30 +184,6 @@ | |||
| 220 | #size-cells = <0>; | 184 | #size-cells = <0>; |
| 221 | }; | 185 | }; |
| 222 | 186 | ||
| 223 | spi0: spi@ff040000 { | ||
| 224 | compatible = "cdns,spi-r1p6"; | ||
| 225 | status = "disabled"; | ||
| 226 | interrupt-parent = <&gic>; | ||
| 227 | interrupts = <0 19 4>; | ||
| 228 | reg = <0x0 0xff040000 0x1000>; | ||
| 229 | clock-names = "ref_clk", "pclk"; | ||
| 230 | clocks = <&misc_clk &misc_clk>; | ||
| 231 | #address-cells = <1>; | ||
| 232 | #size-cells = <0>; | ||
| 233 | }; | ||
| 234 | |||
| 235 | spi1: spi@ff050000 { | ||
| 236 | compatible = "cdns,spi-r1p6"; | ||
| 237 | status = "disabled"; | ||
| 238 | interrupt-parent = <&gic>; | ||
| 239 | interrupts = <0 20 4>; | ||
| 240 | reg = <0x0 0xff050000 0x1000>; | ||
| 241 | clock-names = "ref_clk", "pclk"; | ||
| 242 | clocks = <&misc_clk &misc_clk>; | ||
| 243 | #address-cells = <1>; | ||
| 244 | #size-cells = <0>; | ||
| 245 | }; | ||
| 246 | |||
| 247 | i2c_clk: i2c_clk { | 187 | i2c_clk: i2c_clk { |
| 248 | compatible = "fixed-clock"; | 188 | compatible = "fixed-clock"; |
| 249 | #clock-cells = <0x0>; | 189 | #clock-cells = <0x0>; |
| @@ -272,6 +212,21 @@ | |||
| 272 | #size-cells = <0>; | 212 | #size-cells = <0>; |
| 273 | }; | 213 | }; |
| 274 | 214 | ||
| 215 | sata_clk: sata_clk { | ||
| 216 | compatible = "fixed-clock"; | ||
| 217 | #clock-cells = <0>; | ||
| 218 | clock-frequency = <75000000>; | ||
| 219 | }; | ||
| 220 | |||
| 221 | sata: ahci@fd0c0000 { | ||
| 222 | compatible = "ceva,ahci-1v84"; | ||
| 223 | status = "disabled"; | ||
| 224 | reg = <0x0 0xfd0c0000 0x2000>; | ||
| 225 | interrupt-parent = <&gic>; | ||
| 226 | interrupts = <0 133 4>; | ||
| 227 | clocks = <&sata_clk>; | ||
| 228 | }; | ||
| 229 | |||
| 275 | sdhci0: sdhci@ff160000 { | 230 | sdhci0: sdhci@ff160000 { |
| 276 | compatible = "arasan,sdhci-8.9a"; | 231 | compatible = "arasan,sdhci-8.9a"; |
| 277 | status = "disabled"; | 232 | status = "disabled"; |
| @@ -292,6 +247,122 @@ | |||
| 292 | clocks = <&misc_clk>, <&misc_clk>; | 247 | clocks = <&misc_clk>, <&misc_clk>; |
| 293 | }; | 248 | }; |
| 294 | 249 | ||
| 250 | smmu: smmu@fd800000 { | ||
| 251 | compatible = "arm,mmu-500"; | ||
| 252 | reg = <0x0 0xfd800000 0x20000>; | ||
| 253 | #global-interrupts = <1>; | ||
| 254 | interrupt-parent = <&gic>; | ||
| 255 | interrupts = <0 157 4>, | ||
| 256 | <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>, | ||
| 257 | <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>, | ||
| 258 | <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>, | ||
| 259 | <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>; | ||
| 260 | }; | ||
| 261 | |||
| 262 | spi0: spi@ff040000 { | ||
| 263 | compatible = "cdns,spi-r1p6"; | ||
| 264 | status = "disabled"; | ||
| 265 | interrupt-parent = <&gic>; | ||
| 266 | interrupts = <0 19 4>; | ||
| 267 | reg = <0x0 0xff040000 0x1000>; | ||
| 268 | clock-names = "ref_clk", "pclk"; | ||
| 269 | clocks = <&misc_clk &misc_clk>; | ||
| 270 | #address-cells = <1>; | ||
| 271 | #size-cells = <0>; | ||
| 272 | }; | ||
| 273 | |||
| 274 | spi1: spi@ff050000 { | ||
| 275 | compatible = "cdns,spi-r1p6"; | ||
| 276 | status = "disabled"; | ||
| 277 | interrupt-parent = <&gic>; | ||
| 278 | interrupts = <0 20 4>; | ||
| 279 | reg = <0x0 0xff050000 0x1000>; | ||
| 280 | clock-names = "ref_clk", "pclk"; | ||
| 281 | clocks = <&misc_clk &misc_clk>; | ||
| 282 | #address-cells = <1>; | ||
| 283 | #size-cells = <0>; | ||
| 284 | }; | ||
| 285 | |||
| 286 | ttc0: timer@ff110000 { | ||
| 287 | compatible = "cdns,ttc"; | ||
| 288 | status = "disabled"; | ||
| 289 | interrupt-parent = <&gic>; | ||
| 290 | interrupts = <0 36 4>, <0 37 4>, <0 38 4>; | ||
| 291 | reg = <0x0 0xff110000 0x1000>; | ||
| 292 | clocks = <&misc_clk>; | ||
| 293 | timer-width = <32>; | ||
| 294 | }; | ||
| 295 | |||
| 296 | ttc1: timer@ff120000 { | ||
| 297 | compatible = "cdns,ttc"; | ||
| 298 | status = "disabled"; | ||
| 299 | interrupt-parent = <&gic>; | ||
| 300 | interrupts = <0 39 4>, <0 40 4>, <0 41 4>; | ||
| 301 | reg = <0x0 0xff120000 0x1000>; | ||
| 302 | clocks = <&misc_clk>; | ||
| 303 | timer-width = <32>; | ||
| 304 | }; | ||
| 305 | |||
| 306 | ttc2: timer@ff130000 { | ||
| 307 | compatible = "cdns,ttc"; | ||
| 308 | status = "disabled"; | ||
| 309 | interrupt-parent = <&gic>; | ||
| 310 | interrupts = <0 42 4>, <0 43 4>, <0 44 4>; | ||
| 311 | reg = <0x0 0xff130000 0x1000>; | ||
| 312 | clocks = <&misc_clk>; | ||
| 313 | timer-width = <32>; | ||
| 314 | }; | ||
| 315 | |||
| 316 | ttc3: timer@ff140000 { | ||
| 317 | compatible = "cdns,ttc"; | ||
| 318 | status = "disabled"; | ||
| 319 | interrupt-parent = <&gic>; | ||
| 320 | interrupts = <0 45 4>, <0 46 4>, <0 47 4>; | ||
| 321 | reg = <0x0 0xff140000 0x1000>; | ||
| 322 | clocks = <&misc_clk>; | ||
| 323 | timer-width = <32>; | ||
| 324 | }; | ||
| 325 | |||
| 326 | uart0: serial@ff000000 { | ||
| 327 | compatible = "cdns,uart-r1p8"; | ||
| 328 | status = "disabled"; | ||
| 329 | interrupt-parent = <&gic>; | ||
| 330 | interrupts = <0 21 4>; | ||
| 331 | reg = <0x0 0xff000000 0x1000>; | ||
| 332 | clock-names = "uart_clk", "pclk"; | ||
| 333 | clocks = <&misc_clk &misc_clk>; | ||
| 334 | }; | ||
| 335 | |||
| 336 | uart1: serial@ff010000 { | ||
| 337 | compatible = "cdns,uart-r1p8"; | ||
| 338 | status = "disabled"; | ||
| 339 | interrupt-parent = <&gic>; | ||
| 340 | interrupts = <0 22 4>; | ||
| 341 | reg = <0x0 0xff010000 0x1000>; | ||
| 342 | clock-names = "uart_clk", "pclk"; | ||
| 343 | clocks = <&misc_clk &misc_clk>; | ||
| 344 | }; | ||
| 345 | |||
| 346 | usb0: usb@fe200000 { | ||
| 347 | compatible = "snps,dwc3"; | ||
| 348 | status = "disabled"; | ||
| 349 | interrupt-parent = <&gic>; | ||
| 350 | interrupts = <0 65 4>; | ||
| 351 | reg = <0x0 0xfe200000 0x40000>; | ||
| 352 | clock-names = "clk_xin", "clk_ahb"; | ||
| 353 | clocks = <&misc_clk>, <&misc_clk>; | ||
| 354 | }; | ||
| 355 | |||
| 356 | usb1: usb@fe300000 { | ||
| 357 | compatible = "snps,dwc3"; | ||
| 358 | status = "disabled"; | ||
| 359 | interrupt-parent = <&gic>; | ||
| 360 | interrupts = <0 70 4>; | ||
| 361 | reg = <0x0 0xfe300000 0x40000>; | ||
| 362 | clock-names = "clk_xin", "clk_ahb"; | ||
| 363 | clocks = <&misc_clk>, <&misc_clk>; | ||
| 364 | }; | ||
| 365 | |||
| 295 | watchdog0: watchdog@fd4d0000 { | 366 | watchdog0: watchdog@fd4d0000 { |
| 296 | compatible = "cdns,wdt-r1p2"; | 367 | compatible = "cdns,wdt-r1p2"; |
| 297 | status = "disabled"; | 368 | status = "disabled"; |
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index 4e17e7ede33d..34d71dd86781 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig | |||
| @@ -31,10 +31,13 @@ CONFIG_MODULES=y | |||
| 31 | CONFIG_MODULE_UNLOAD=y | 31 | CONFIG_MODULE_UNLOAD=y |
| 32 | # CONFIG_BLK_DEV_BSG is not set | 32 | # CONFIG_BLK_DEV_BSG is not set |
| 33 | # CONFIG_IOSCHED_DEADLINE is not set | 33 | # CONFIG_IOSCHED_DEADLINE is not set |
| 34 | CONFIG_ARCH_BCM_IPROC=y | ||
| 35 | CONFIG_ARCH_BERLIN=y | ||
| 34 | CONFIG_ARCH_EXYNOS7=y | 36 | CONFIG_ARCH_EXYNOS7=y |
| 35 | CONFIG_ARCH_FSL_LS2085A=y | 37 | CONFIG_ARCH_FSL_LS2085A=y |
| 36 | CONFIG_ARCH_HISI=y | 38 | CONFIG_ARCH_HISI=y |
| 37 | CONFIG_ARCH_MEDIATEK=y | 39 | CONFIG_ARCH_MEDIATEK=y |
| 40 | CONFIG_ARCH_ROCKCHIP=y | ||
| 38 | CONFIG_ARCH_SEATTLE=y | 41 | CONFIG_ARCH_SEATTLE=y |
| 39 | CONFIG_ARCH_TEGRA=y | 42 | CONFIG_ARCH_TEGRA=y |
| 40 | CONFIG_ARCH_TEGRA_132_SOC=y | 43 | CONFIG_ARCH_TEGRA_132_SOC=y |
| @@ -102,6 +105,7 @@ CONFIG_SERIO_AMBAKMI=y | |||
| 102 | CONFIG_LEGACY_PTY_COUNT=16 | 105 | CONFIG_LEGACY_PTY_COUNT=16 |
| 103 | CONFIG_SERIAL_8250=y | 106 | CONFIG_SERIAL_8250=y |
| 104 | CONFIG_SERIAL_8250_CONSOLE=y | 107 | CONFIG_SERIAL_8250_CONSOLE=y |
| 108 | CONFIG_SERIAL_8250_DW=y | ||
| 105 | CONFIG_SERIAL_8250_MT6577=y | 109 | CONFIG_SERIAL_8250_MT6577=y |
| 106 | CONFIG_SERIAL_AMBA_PL011=y | 110 | CONFIG_SERIAL_AMBA_PL011=y |
| 107 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y | 111 | CONFIG_SERIAL_AMBA_PL011_CONSOLE=y |
diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig index 1272b8002884..d5e58bae95cf 100644 --- a/drivers/pci/host/Kconfig +++ b/drivers/pci/host/Kconfig | |||
| @@ -117,7 +117,7 @@ config PCI_VERSATILE | |||
| 117 | 117 | ||
| 118 | config PCIE_IPROC | 118 | config PCIE_IPROC |
| 119 | tristate "Broadcom iProc PCIe controller" | 119 | tristate "Broadcom iProc PCIe controller" |
| 120 | depends on OF && ARM | 120 | depends on OF && (ARM || ARM64) |
| 121 | default n | 121 | default n |
| 122 | help | 122 | help |
| 123 | This enables the iProc PCIe core controller support for Broadcom's | 123 | This enables the iProc PCIe core controller support for Broadcom's |
| @@ -136,7 +136,7 @@ config PCIE_IPROC_PLATFORM | |||
| 136 | 136 | ||
| 137 | config PCIE_IPROC_BCMA | 137 | config PCIE_IPROC_BCMA |
| 138 | tristate "Broadcom iProc PCIe BCMA bus driver" | 138 | tristate "Broadcom iProc PCIe BCMA bus driver" |
| 139 | depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST) | 139 | depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST) |
| 140 | select PCIE_IPROC | 140 | select PCIE_IPROC |
| 141 | select BCMA | 141 | select BCMA |
| 142 | select PCI_DOMAINS | 142 | select PCI_DOMAINS |
