ARM: SoC 64-bit changes for v4.3
Here's our branch of ARM64 contents for this merge window. Most of this is DT contents for new SoCs (or those who have seen new device support added). Maybe we should stop separating out the arm64 contents here to avoid the kind of internal conflicts as we got this time around, where 32- and 64-bit contents conflicted. Anyhow, on the actual contents: New SoCs: - Broadcom North Star 2 (ns2) - Marvell Berlin4CT - Mediatek MT6795 - Rockchip RK3368 In addition, there are enhancements for the following platforms: - Mediatek MT8173: cpuidle-dt updates, misc other additions - ZyncMP: A bunch of devices added to the existing DTSI - Qualcomm MSM8916 and APQ8016 updates for USB, etc. + A handful of other updates for various platforms -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJV5N8IAAoJEIwa5zzehBx3qt0P/ju6RvgS2vUDk6QxjBvzp2oN daXOj73Nefe4Qef7GT5k5K1hLFVflKmesIDqG/eTfGTDSjMjQaJufZTKGh+5arLQ 28XAm897gsjt+NVzEgdkG1QD8GIlfth+S3ylh/nLx+zOMTz353dMgpNY0o3eWVFr TYq+x6u4UFEmBFvkYm7P9ONfqKKiaO2pqjsA41SfKao0c8+kwrB5jWO2m4DaYqhC Mj6ug8HoQLJk+ZpbhcsUDD4tAMIL0VJWl446LLCsd/tk81J05K95vPCTEdyGRu0U dwe0W0PgODPMqyYTXteVdOuT1n7CYFlySAKfJUx4yW4w9Y5hHbB6sHYRHHt6unny Ynn5u2xIUHKaqiOeShDHV433ssCB+1tgBefoAVPqY2kYC8eCP46zrieVwZip4/KA rEldc1c+tCUYROe39F4ljg3I4wFNtBhfn3JCoocvbljmMSro5MD3zf1n8p21C6GV vCidRbIXHVd89FALFL/1r1vuMAlaF6TD/FyxYVrJXgr8LTj5gak93/O5WpsYam6c GwiTnykz+3eHvDi7xrhsohCHptvE7TnBSNhfkxsngFoJr3evAbU3B4qJKLzrZCvf KHVIoSylEl+4+M6VISowid6NL4ADc8mNeHXfGxFHVBEfnK/tH3VySM4hV0reAh4m NR+TX15zqfF4uudoAqlC =SZR9 -----END PGP SIGNATURE----- Merge tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC 64-bit changes from Olof Johansson: "Here's our branch of ARM64 contents for this merge window. Most of this is DT contents for new SoCs (or those who have seen new device support added). Maybe we should stop separating out the arm64 contents here to avoid the kind of internal conflicts as we got this time around, where 32- and 64-bit contents conflicted. Anyhow, on the actual contents: New SoCs: - Broadcom North Star 2 (ns2) - Marvell Berlin4CT - Mediatek MT6795 - Rockchip RK3368 In addition, there are enhancements for the following platforms: - Mediatek MT8173: cpuidle-dt updates, misc other additions - ZyncMP: A bunch of devices added to the existing DTSI - Qualcomm MSM8916 and APQ8016 updates for USB, etc. + a handful of other updates for various platforms" * tag 'armsoc-arm64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (47 commits) ARM64: dts: vexpress: Use assigned-clock-parents for sp810 ARM64: dts: mt6795: enable basic SMP bringup for MT6795 arm64: Enable Marvell Berlin SoC family in defconfig arm64: Enable Marvell Berlin SoC family in Kconfig arm64: dts: Add dts files for Marvell Berlin4CT SoC ARM64: zynqmp: Move SPI nodes to the right location ARM64: zynqmp: Move uart and ttcs to the right location ARM64: zynqmp: Enable spi flashes on ep108 ARM64: zynqmp: Add eeprom memories on i2c bus ARM64: zynqmp: Enable sdhci on ep108 ARM64: zynqmp: Enable watchdog on ep108 ARM64: zynqmp: Add DWC3 usb support ARM64: zynqmp: Add SMMU support ARM64: zynqmp: Add CANs node for platform ARM64: zynqmp: Use zynqmp specific compatible string for gpio devicetree: xilinx: zynqmp: add sata node PCI: iproc: Fix BCMA dependency in Kconfig arm64: dts: Add Broadcom North Star 2 support arm64: Add Broadcom iProc family support PCI: iproc: Fix ARM64 dependency in Kconfig ...
This commit is contained in:
commit
8d01b66b4f
9
Documentation/devicetree/bindings/arm/bcm/ns2.txt
Normal file
9
Documentation/devicetree/bindings/arm/bcm/ns2.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
Broadcom North Star 2 (NS2) device tree bindings
|
||||
------------------------------------------------
|
||||
|
||||
Boards with NS2 shall have the following properties:
|
||||
|
||||
Required root node property:
|
||||
|
||||
NS2 SVK board
|
||||
compatible = "brcm,ns2-svk", "brcm,ns2";
|
|
@ -1,6 +1,7 @@
|
|||
MediaTek mt65xx & mt81xx Platforms Device Tree Bindings
|
||||
MediaTek mt65xx, mt67xx & mt81xx Platforms Device Tree Bindings
|
||||
|
||||
Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property:
|
||||
Boards with a MediaTek mt65xx/mt67xx/mt81xx SoC shall have the
|
||||
following property:
|
||||
|
||||
Required root node property:
|
||||
|
||||
|
@ -8,6 +9,7 @@ compatible: Must contain one of
|
|||
"mediatek,mt6580"
|
||||
"mediatek,mt6589"
|
||||
"mediatek,mt6592"
|
||||
"mediatek,mt6795"
|
||||
"mediatek,mt8127"
|
||||
"mediatek,mt8135"
|
||||
"mediatek,mt8173"
|
||||
|
@ -24,6 +26,9 @@ Supported boards:
|
|||
- Evaluation board for MT6592:
|
||||
Required root node properties:
|
||||
- compatible = "mediatek,mt6592-evb", "mediatek,mt6592";
|
||||
- Evaluation board for MT6795(Helio X10):
|
||||
Required root node properties:
|
||||
- compatible = "mediatek,mt6795-evb", "mediatek,mt6795";
|
||||
- MTK mt8127 tablet moose EVB:
|
||||
Required root node properties:
|
||||
- compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Mediatek 65xx/81xx sysirq
|
||||
+Mediatek 65xx/67xx/81xx sysirq
|
||||
|
||||
Mediatek SOCs sysirq support controllable irq inverter for each GIC SPI
|
||||
interrupt.
|
||||
|
@ -8,6 +8,7 @@ Required properties:
|
|||
"mediatek,mt8173-sysirq"
|
||||
"mediatek,mt8135-sysirq"
|
||||
"mediatek,mt8127-sysirq"
|
||||
"mediatek,mt6795-sysirq"
|
||||
"mediatek,mt6592-sysirq"
|
||||
"mediatek,mt6589-sysirq"
|
||||
"mediatek,mt6582-sysirq"
|
||||
|
|
|
@ -5,11 +5,12 @@ Required properties:
|
|||
* "mediatek,mt8135-uart" for MT8135 compatible UARTS
|
||||
* "mediatek,mt8127-uart" for MT8127 compatible UARTS
|
||||
* "mediatek,mt8173-uart" for MT8173 compatible UARTS
|
||||
* "mediatek,mt6795-uart" for MT6795 compatible UARTS
|
||||
* "mediatek,mt6589-uart" for MT6589 compatible UARTS
|
||||
* "mediatek,mt6582-uart" for MT6582 compatible UARTS
|
||||
* "mediatek,mt6580-uart" for MT6580 compatible UARTS
|
||||
* "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582,
|
||||
MT6580, MT6577)
|
||||
* "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6795,
|
||||
MT6589, MT6582, MT6580, MT6577)
|
||||
|
||||
- reg: The base address of the UART register bank.
|
||||
|
||||
|
|
|
@ -160,110 +160,7 @@ source "init/Kconfig"
|
|||
|
||||
source "kernel/Kconfig.freezer"
|
||||
|
||||
menu "Platform selection"
|
||||
|
||||
config ARCH_EXYNOS
|
||||
bool
|
||||
help
|
||||
This enables support for Samsung Exynos SoC family
|
||||
|
||||
config ARCH_EXYNOS7
|
||||
bool "ARMv8 based Samsung Exynos7"
|
||||
select ARCH_EXYNOS
|
||||
select COMMON_CLK_SAMSUNG
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select PINCTRL
|
||||
select PINCTRL_EXYNOS
|
||||
|
||||
help
|
||||
This enables support for Samsung Exynos7 SoC family
|
||||
|
||||
config ARCH_FSL_LS2085A
|
||||
bool "Freescale LS2085A SOC"
|
||||
help
|
||||
This enables support for Freescale LS2085A SOC.
|
||||
|
||||
config ARCH_HISI
|
||||
bool "Hisilicon SoC Family"
|
||||
help
|
||||
This enables support for Hisilicon ARMv8 SoC family
|
||||
|
||||
config ARCH_MEDIATEK
|
||||
bool "Mediatek MT65xx & MT81xx ARMv8 SoC"
|
||||
select ARM_GIC
|
||||
select PINCTRL
|
||||
help
|
||||
Support for Mediatek MT65xx & MT81xx ARMv8 SoCs
|
||||
|
||||
config ARCH_QCOM
|
||||
bool "Qualcomm Platforms"
|
||||
select PINCTRL
|
||||
help
|
||||
This enables support for the ARMv8 based Qualcomm chipsets.
|
||||
|
||||
config ARCH_SEATTLE
|
||||
bool "AMD Seattle SoC Family"
|
||||
help
|
||||
This enables support for AMD Seattle SOC Family
|
||||
|
||||
config ARCH_TEGRA
|
||||
bool "NVIDIA Tegra SoC Family"
|
||||
select ARCH_HAS_RESET_CONTROLLER
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select CLKSRC_OF
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_CLK
|
||||
select PINCTRL
|
||||
select RESET_CONTROLLER
|
||||
help
|
||||
This enables support for the NVIDIA Tegra SoC family.
|
||||
|
||||
config ARCH_TEGRA_132_SOC
|
||||
bool "NVIDIA Tegra132 SoC"
|
||||
depends on ARCH_TEGRA
|
||||
select PINCTRL_TEGRA124
|
||||
select USB_ULPI if USB_PHY
|
||||
select USB_ULPI_VIEWPORT if USB_PHY
|
||||
help
|
||||
Enable support for NVIDIA Tegra132 SoC, based on the Denver
|
||||
ARMv8 CPU. The Tegra132 SoC is similar to the Tegra124 SoC,
|
||||
but contains an NVIDIA Denver CPU complex in place of
|
||||
Tegra124's "4+1" Cortex-A15 CPU complex.
|
||||
|
||||
config ARCH_SPRD
|
||||
bool "Spreadtrum SoC platform"
|
||||
help
|
||||
Support for Spreadtrum ARM based SoCs
|
||||
|
||||
config ARCH_THUNDER
|
||||
bool "Cavium Inc. Thunder SoC Family"
|
||||
help
|
||||
This enables support for Cavium's Thunder Family of SoCs.
|
||||
|
||||
config ARCH_VEXPRESS
|
||||
bool "ARMv8 software model (Versatile Express)"
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select COMMON_CLK_VERSATILE
|
||||
select POWER_RESET_VEXPRESS
|
||||
select VEXPRESS_CONFIG
|
||||
help
|
||||
This enables support for the ARMv8 software model (Versatile
|
||||
Express).
|
||||
|
||||
config ARCH_XGENE
|
||||
bool "AppliedMicro X-Gene SOC Family"
|
||||
help
|
||||
This enables support for AppliedMicro X-Gene SOC Family
|
||||
|
||||
config ARCH_ZYNQMP
|
||||
bool "Xilinx ZynqMP Family"
|
||||
help
|
||||
This enables support for Xilinx ZynqMP Family
|
||||
|
||||
endmenu
|
||||
source "arch/arm64/Kconfig.platforms"
|
||||
|
||||
menu "Bus support"
|
||||
|
||||
|
|
125
arch/arm64/Kconfig.platforms
Normal file
125
arch/arm64/Kconfig.platforms
Normal file
|
@ -0,0 +1,125 @@
|
|||
menu "Platform selection"
|
||||
|
||||
config ARCH_BCM_IPROC
|
||||
bool "Broadcom iProc SoC Family"
|
||||
help
|
||||
This enables support for Broadcom iProc based SoCs
|
||||
|
||||
config ARCH_BERLIN
|
||||
bool "Marvell Berlin SoC Family"
|
||||
select DW_APB_ICTL
|
||||
help
|
||||
This enables support for Marvell Berlin SoC Family
|
||||
|
||||
config ARCH_EXYNOS
|
||||
bool
|
||||
help
|
||||
This enables support for Samsung Exynos SoC family
|
||||
|
||||
config ARCH_EXYNOS7
|
||||
bool "ARMv8 based Samsung Exynos7"
|
||||
select ARCH_EXYNOS
|
||||
select COMMON_CLK_SAMSUNG
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select HAVE_S3C_RTC if RTC_CLASS
|
||||
select PINCTRL
|
||||
select PINCTRL_EXYNOS
|
||||
|
||||
help
|
||||
This enables support for Samsung Exynos7 SoC family
|
||||
|
||||
config ARCH_FSL_LS2085A
|
||||
bool "Freescale LS2085A SOC"
|
||||
help
|
||||
This enables support for Freescale LS2085A SOC.
|
||||
|
||||
config ARCH_HISI
|
||||
bool "Hisilicon SoC Family"
|
||||
help
|
||||
This enables support for Hisilicon ARMv8 SoC family
|
||||
|
||||
config ARCH_MEDIATEK
|
||||
bool "Mediatek MT65xx & MT81xx ARMv8 SoC"
|
||||
select ARM_GIC
|
||||
select PINCTRL
|
||||
help
|
||||
Support for Mediatek MT65xx & MT81xx ARMv8 SoCs
|
||||
|
||||
config ARCH_QCOM
|
||||
bool "Qualcomm Platforms"
|
||||
select PINCTRL
|
||||
help
|
||||
This enables support for the ARMv8 based Qualcomm chipsets.
|
||||
|
||||
config ARCH_ROCKCHIP
|
||||
bool "Rockchip Platforms"
|
||||
select ARCH_HAS_RESET_CONTROLLER
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select PINCTRL
|
||||
select PINCTRL_ROCKCHIP
|
||||
help
|
||||
This enables support for the ARMv8 based Rockchip chipsets,
|
||||
like the RK3368.
|
||||
|
||||
config ARCH_SEATTLE
|
||||
bool "AMD Seattle SoC Family"
|
||||
help
|
||||
This enables support for AMD Seattle SOC Family
|
||||
|
||||
config ARCH_TEGRA
|
||||
bool "NVIDIA Tegra SoC Family"
|
||||
select ARCH_HAS_RESET_CONTROLLER
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select CLKSRC_OF
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_CLK
|
||||
select PINCTRL
|
||||
select RESET_CONTROLLER
|
||||
help
|
||||
This enables support for the NVIDIA Tegra SoC family.
|
||||
|
||||
config ARCH_TEGRA_132_SOC
|
||||
bool "NVIDIA Tegra132 SoC"
|
||||
depends on ARCH_TEGRA
|
||||
select PINCTRL_TEGRA124
|
||||
select USB_ULPI if USB_PHY
|
||||
select USB_ULPI_VIEWPORT if USB_PHY
|
||||
help
|
||||
Enable support for NVIDIA Tegra132 SoC, based on the Denver
|
||||
ARMv8 CPU. The Tegra132 SoC is similar to the Tegra124 SoC,
|
||||
but contains an NVIDIA Denver CPU complex in place of
|
||||
Tegra124's "4+1" Cortex-A15 CPU complex.
|
||||
|
||||
config ARCH_SPRD
|
||||
bool "Spreadtrum SoC platform"
|
||||
help
|
||||
Support for Spreadtrum ARM based SoCs
|
||||
|
||||
config ARCH_THUNDER
|
||||
bool "Cavium Inc. Thunder SoC Family"
|
||||
help
|
||||
This enables support for Cavium's Thunder Family of SoCs.
|
||||
|
||||
config ARCH_VEXPRESS
|
||||
bool "ARMv8 software model (Versatile Express)"
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select COMMON_CLK_VERSATILE
|
||||
select POWER_RESET_VEXPRESS
|
||||
select VEXPRESS_CONFIG
|
||||
help
|
||||
This enables support for the ARMv8 software model (Versatile
|
||||
Express).
|
||||
|
||||
config ARCH_XGENE
|
||||
bool "AppliedMicro X-Gene SOC Family"
|
||||
help
|
||||
This enables support for AppliedMicro X-Gene SOC Family
|
||||
|
||||
config ARCH_ZYNQMP
|
||||
bool "Xilinx ZynqMP Family"
|
||||
help
|
||||
This enables support for Xilinx ZynqMP Family
|
||||
|
||||
endmenu
|
|
@ -1,12 +1,15 @@
|
|||
dts-dirs += amd
|
||||
dts-dirs += apm
|
||||
dts-dirs += arm
|
||||
dts-dirs += broadcom
|
||||
dts-dirs += cavium
|
||||
dts-dirs += exynos
|
||||
dts-dirs += freescale
|
||||
dts-dirs += hisilicon
|
||||
dts-dirs += marvell
|
||||
dts-dirs += mediatek
|
||||
dts-dirs += qcom
|
||||
dts-dirs += rockchip
|
||||
dts-dirs += sprd
|
||||
dts-dirs += xilinx
|
||||
|
||||
|
|
|
@ -136,6 +136,8 @@
|
|||
clock-names = "refclk", "timclk", "apb_pclk";
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
|
||||
assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
|
||||
assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
|
||||
};
|
||||
|
||||
apbregs@010000 {
|
||||
|
|
|
@ -74,6 +74,8 @@
|
|||
clock-names = "refclk", "timclk", "apb_pclk";
|
||||
#clock-cells = <1>;
|
||||
clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
|
||||
assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
|
||||
assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
|
||||
};
|
||||
|
||||
aaci@040000 {
|
||||
|
|
5
arch/arm64/boot/dts/broadcom/Makefile
Normal file
5
arch/arm64/boot/dts/broadcom/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
|
||||
|
||||
always := $(dtb-y)
|
||||
subdir-y := $(dts-dirs)
|
||||
clean-files := *.dtb
|
59
arch/arm64/boot/dts/broadcom/ns2-svk.dts
Normal file
59
arch/arm64/boot/dts/broadcom/ns2-svk.dts
Normal file
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2015 Broadcom Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Broadcom Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "ns2.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Broadcom NS2 SVK";
|
||||
compatible = "brcm,ns2-svk", "brcm,ns2";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart3;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x000000000 0x80000000 0x00000000 0x40000000>;
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
uart3: serial@66130000 {
|
||||
status = "ok";
|
||||
};
|
||||
};
|
||||
};
|
118
arch/arm64/boot/dts/broadcom/ns2.dtsi
Normal file
118
arch/arm64/boot/dts/broadcom/ns2.dtsi
Normal file
|
@ -0,0 +1,118 @@
|
|||
/*
|
||||
* BSD LICENSE
|
||||
*
|
||||
* Copyright(c) 2015 Broadcom Corporation. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Broadcom Corporation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/memreserve/ 0x84b00000 0x00000008;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,ns2";
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
cpus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a57", "arm,armv8";
|
||||
reg = <0 0>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0 0x84b00000>;
|
||||
};
|
||||
|
||||
cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a57", "arm,armv8";
|
||||
reg = <0 1>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0 0x84b00000>;
|
||||
};
|
||||
|
||||
cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a57", "arm,armv8";
|
||||
reg = <0 2>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0 0x84b00000>;
|
||||
};
|
||||
|
||||
cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a57", "arm,armv8";
|
||||
reg = <0 3>;
|
||||
enable-method = "spin-table";
|
||||
cpu-release-addr = <0 0x84b00000>;
|
||||
};
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) |
|
||||
IRQ_TYPE_EDGE_RISING)>,
|
||||
<GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) |
|
||||
IRQ_TYPE_EDGE_RISING)>,
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) |
|
||||
IRQ_TYPE_EDGE_RISING)>,
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) |
|
||||
IRQ_TYPE_EDGE_RISING)>;
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0 0 0xffffffff>;
|
||||
|
||||
gic: interrupt-controller@65210000 {
|
||||
compatible = "arm,gic-400";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x65210000 0x1000>,
|
||||
<0x65220000 0x1000>,
|
||||
<0x65240000 0x2000>,
|
||||
<0x65260000 0x1000>;
|
||||
};
|
||||
|
||||
uart3: serial@66130000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0x66130000 0x100>;
|
||||
interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
clock-frequency = <23961600>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
5
arch/arm64/boot/dts/marvell/Makefile
Normal file
5
arch/arm64/boot/dts/marvell/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
dtb-$(CONFIG_ARCH_BERLIN) += berlin4ct-dmp.dtb
|
||||
|
||||
always := $(dtb-y)
|
||||
subdir-y := $(dts-dirs)
|
||||
clean-files := *.dtb
|
66
arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts
Normal file
66
arch/arm64/boot/dts/marvell/berlin4ct-dmp.dts
Normal file
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* Copyright (C) 2015 Marvell Technology Group Ltd.
|
||||
*
|
||||
* Author: Jisheng Zhang <jszhang@marvell.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPLv2 or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "berlin4ct.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Marvell BG4CT DMP board";
|
||||
compatible = "marvell,berlin4ct-dmp", "marvell,berlin4ct", "marvell,berlin";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
/* the first 16MB is for firmwares' usage */
|
||||
reg = <0 0x01000000 0 0x7f000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
164
arch/arm64/boot/dts/marvell/berlin4ct.dtsi
Normal file
164
arch/arm64/boot/dts/marvell/berlin4ct.dtsi
Normal file
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
* Copyright (C) 2015 Marvell Technology Group Ltd.
|
||||
*
|
||||
* Author: Jisheng Zhang <jszhang@marvell.com>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPLv2 or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
compatible = "marvell,berlin4ct", "marvell,berlin";
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
device_type = "cpu";
|
||||
reg = <0x0>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
device_type = "cpu";
|
||||
reg = <0x1>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
device_type = "cpu";
|
||||
reg = <0x2>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
device_type = "cpu";
|
||||
reg = <0x3>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
};
|
||||
|
||||
osc: osc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <25000000>;
|
||||
};
|
||||
|
||||
pmu {
|
||||
compatible = "arm,armv8-pmuv3";
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-affinity = <&cpu0>,
|
||||
<&cpu1>,
|
||||
<&cpu2>,
|
||||
<&cpu3>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
||||
soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0 0xf7000000 0x1000000>;
|
||||
|
||||
gic: interrupt-controller@901000 {
|
||||
compatible = "arm,gic-400";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-controller;
|
||||
reg = <0x901000 0x1000>,
|
||||
<0x902000 0x2000>,
|
||||
<0x904000 0x2000>,
|
||||
<0x906000 0x2000>;
|
||||
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
};
|
||||
|
||||
apb@fc0000 {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0 0xfc0000 0x10000>;
|
||||
interrupt-parent = <&sic>;
|
||||
|
||||
sic: interrupt-controller@1000 {
|
||||
compatible = "snps,dw-apb-ictl";
|
||||
reg = <0x1000 0x30>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
||||
uart0: uart@d000 {
|
||||
compatible = "snps,dw-apb-uart";
|
||||
reg = <0xd000 0x100>;
|
||||
interrupts = <8>;
|
||||
clocks = <&osc>;
|
||||
reg-shift = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -1,3 +1,4 @@
|
|||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
|
||||
|
||||
always := $(dtb-y)
|
||||
|
|
41
arch/arm64/boot/dts/mediatek/mt6795-evb.dts
Normal file
41
arch/arm64/boot/dts/mediatek/mt6795-evb.dts
Normal file
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* Copyright (c) 2015 MediaTek Inc.
|
||||
* Author: Mars.C <mars.cheng@mediatek.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "mt6795.dtsi"
|
||||
|
||||
/ {
|
||||
model = "MediaTek MT6795 Evaluation Board";
|
||||
compatible = "mediatek,mt6795-evb", "mediatek,mt6795";
|
||||
|
||||
aliases {
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
serial2 = &uart2;
|
||||
serial3 = &uart3;
|
||||
};
|
||||
|
||||
memory@40000000 {
|
||||
device_type = "memory";
|
||||
reg = <0 0x40000000 0 0x1e800000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial0:921600n8";
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
175
arch/arm64/boot/dts/mediatek/mt6795.dtsi
Normal file
175
arch/arm64/boot/dts/mediatek/mt6795.dtsi
Normal file
|
@ -0,0 +1,175 @@
|
|||
/*
|
||||
* Copyright (c) 2015 MediaTek Inc.
|
||||
* Author: Mars.C <mars.cheng@mediatek.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
/ {
|
||||
compatible = "mediatek,mt6795";
|
||||
interrupt-parent = <&sysirq>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x000>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x001>;
|
||||
};
|
||||
|
||||
cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x002>;
|
||||
};
|
||||
|
||||
cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x003>;
|
||||
};
|
||||
|
||||
cpu4: cpu@100 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x100>;
|
||||
};
|
||||
|
||||
cpu5: cpu@101 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x101>;
|
||||
};
|
||||
|
||||
cpu6: cpu@102 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x102>;
|
||||
};
|
||||
|
||||
cpu7: cpu@103 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
enable-method = "psci";
|
||||
reg = <0x103>;
|
||||
};
|
||||
};
|
||||
|
||||
system_clk: dummy13m {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <13000000>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
rtc_clk: dummy32k {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <32000>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
uart_clk: dummy26m {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <26000000>;
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_PPI 13
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 14
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 11
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
|
||||
<GIC_PPI 10
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
|
||||
};
|
||||
|
||||
sysirq: intpol-controller@10200620 {
|
||||
compatible = "mediatek,mt6795-sysirq",
|
||||
"mediatek,mt6577-sysirq";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-parent = <&gic>;
|
||||
reg = <0 0x10200620 0 0x20>;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@10221000 {
|
||||
compatible = "arm,gic-400";
|
||||
#interrupt-cells = <3>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupt-controller;
|
||||
reg = <0 0x10221000 0 0x1000>,
|
||||
<0 0x10222000 0 0x2000>,
|
||||
<0 0x10224000 0 0x2000>,
|
||||
<0 0x10226000 0 0x2000>;
|
||||
};
|
||||
|
||||
uart0: serial@11002000 {
|
||||
compatible = "mediatek,mt6795-uart",
|
||||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11002000 0 0x400>;
|
||||
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@11003000 {
|
||||
compatible = "mediatek,mt6795-uart",
|
||||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11003000 0 0x400>;
|
||||
interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@11004000 {
|
||||
compatible = "mediatek,mt6795-uart",
|
||||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11004000 0 0x400>;
|
||||
interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@11005000 {
|
||||
compatible = "mediatek,mt6795-uart",
|
||||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11005000 0 0x400>;
|
||||
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
|
@ -34,6 +34,359 @@
|
|||
chosen { };
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
|
||||
buck: da9211@68 {
|
||||
compatible = "dlg,da9211";
|
||||
reg = <0x68>;
|
||||
|
||||
regulators {
|
||||
da9211_vcpu_reg: BUCKA {
|
||||
regulator-name = "VBUCKA";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1310000>;
|
||||
regulator-min-microamp = <2000000>;
|
||||
regulator-max-microamp = <4400000>;
|
||||
regulator-ramp-delay = <10000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
da9211_vgpu_reg: BUCKB {
|
||||
regulator-name = "VBUCKB";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1310000>;
|
||||
regulator-min-microamp = <2000000>;
|
||||
regulator-max-microamp = <3000000>;
|
||||
regulator-ramp-delay = <10000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mmc0 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default", "state_uhs";
|
||||
pinctrl-0 = <&mmc0_pins_default>;
|
||||
pinctrl-1 = <&mmc0_pins_uhs>;
|
||||
bus-width = <8>;
|
||||
max-frequency = <50000000>;
|
||||
cap-mmc-highspeed;
|
||||
vmmc-supply = <&mt6397_vemc_3v3_reg>;
|
||||
vqmmc-supply = <&mt6397_vio18_reg>;
|
||||
non-removable;
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
status = "okay";
|
||||
pinctrl-names = "default", "state_uhs";
|
||||
pinctrl-0 = <&mmc1_pins_default>;
|
||||
pinctrl-1 = <&mmc1_pins_uhs>;
|
||||
bus-width = <4>;
|
||||
max-frequency = <50000000>;
|
||||
cap-sd-highspeed;
|
||||
sd-uhs-sdr25;
|
||||
cd-gpios = <&pio 132 0>;
|
||||
vmmc-supply = <&mt6397_vmch_reg>;
|
||||
vqmmc-supply = <&mt6397_vmc_reg>;
|
||||
};
|
||||
|
||||
&pio {
|
||||
mmc0_pins_default: mmc0default {
|
||||
pins_cmd_dat {
|
||||
pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
|
||||
<MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
|
||||
<MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
|
||||
<MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
|
||||
<MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
|
||||
<MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
|
||||
<MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
|
||||
<MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
|
||||
<MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>;
|
||||
input-enable;
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
pins_clk {
|
||||
pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
pins_rst {
|
||||
pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1_pins_default: mmc1default {
|
||||
pins_cmd_dat {
|
||||
pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
|
||||
<MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
|
||||
<MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
|
||||
<MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
|
||||
<MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>;
|
||||
input-enable;
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
|
||||
};
|
||||
|
||||
pins_clk {
|
||||
pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
|
||||
bias-pull-down;
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
};
|
||||
|
||||
pins_insert {
|
||||
pinmux = <MT8173_PIN_132_I2S0_DATA1__FUNC_GPIO132>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
mmc0_pins_uhs: mmc0 {
|
||||
pins_cmd_dat {
|
||||
pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
|
||||
<MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
|
||||
<MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
|
||||
<MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
|
||||
<MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
|
||||
<MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
|
||||
<MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
|
||||
<MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
|
||||
<MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>;
|
||||
input-enable;
|
||||
drive-strength = <MTK_DRIVE_2mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
|
||||
};
|
||||
|
||||
pins_clk {
|
||||
pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
|
||||
drive-strength = <MTK_DRIVE_2mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
|
||||
};
|
||||
|
||||
pins_rst {
|
||||
pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1_pins_uhs: mmc1 {
|
||||
pins_cmd_dat {
|
||||
pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
|
||||
<MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
|
||||
<MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
|
||||
<MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
|
||||
<MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>;
|
||||
input-enable;
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
|
||||
};
|
||||
|
||||
pins_clk {
|
||||
pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
|
||||
drive-strength = <MTK_DRIVE_4mA>;
|
||||
bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pwrap {
|
||||
pmic: mt6397 {
|
||||
compatible = "mediatek,mt6397";
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
mt6397regulator: mt6397regulator {
|
||||
compatible = "mediatek,mt6397-regulator";
|
||||
|
||||
mt6397_vpca15_reg: buck_vpca15 {
|
||||
regulator-compatible = "buck_vpca15";
|
||||
regulator-name = "vpca15";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vpca7_reg: buck_vpca7 {
|
||||
regulator-compatible = "buck_vpca7";
|
||||
regulator-name = "vpca7";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-enable-ramp-delay = <115>;
|
||||
};
|
||||
|
||||
mt6397_vsramca15_reg: buck_vsramca15 {
|
||||
regulator-compatible = "buck_vsramca15";
|
||||
regulator-name = "vsramca15";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vsramca7_reg: buck_vsramca7 {
|
||||
regulator-compatible = "buck_vsramca7";
|
||||
regulator-name = "vsramca7";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vcore_reg: buck_vcore {
|
||||
regulator-compatible = "buck_vcore";
|
||||
regulator-name = "vcore";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vgpu_reg: buck_vgpu {
|
||||
regulator-compatible = "buck_vgpu";
|
||||
regulator-name = "vgpu";
|
||||
regulator-min-microvolt = < 700000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-enable-ramp-delay = <115>;
|
||||
};
|
||||
|
||||
mt6397_vdrm_reg: buck_vdrm {
|
||||
regulator-compatible = "buck_vdrm";
|
||||
regulator-name = "vdrm";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1400000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vio18_reg: buck_vio18 {
|
||||
regulator-compatible = "buck_vio18";
|
||||
regulator-name = "vio18";
|
||||
regulator-min-microvolt = <1620000>;
|
||||
regulator-max-microvolt = <1980000>;
|
||||
regulator-ramp-delay = <12500>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vtcxo_reg: ldo_vtcxo {
|
||||
regulator-compatible = "ldo_vtcxo";
|
||||
regulator-name = "vtcxo";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_va28_reg: ldo_va28 {
|
||||
regulator-compatible = "ldo_va28";
|
||||
regulator-name = "va28";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vcama_reg: ldo_vcama {
|
||||
regulator-compatible = "ldo_vcama";
|
||||
regulator-name = "vcama";
|
||||
regulator-min-microvolt = <1500000>;
|
||||
regulator-max-microvolt = <2800000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vio28_reg: ldo_vio28 {
|
||||
regulator-compatible = "ldo_vio28";
|
||||
regulator-name = "vio28";
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
mt6397_vusb_reg: ldo_vusb {
|
||||
regulator-compatible = "ldo_vusb";
|
||||
regulator-name = "vusb";
|
||||
};
|
||||
|
||||
mt6397_vmc_reg: ldo_vmc {
|
||||
regulator-compatible = "ldo_vmc";
|
||||
regulator-name = "vmc";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vmch_reg: ldo_vmch {
|
||||
regulator-compatible = "ldo_vmch";
|
||||
regulator-name = "vmch";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vemc_3v3_reg: ldo_vemc3v3 {
|
||||
regulator-compatible = "ldo_vemc3v3";
|
||||
regulator-name = "vemc_3v3";
|
||||
regulator-min-microvolt = <3000000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vgp1_reg: ldo_vgp1 {
|
||||
regulator-compatible = "ldo_vgp1";
|
||||
regulator-name = "vcamd";
|
||||
regulator-min-microvolt = <1220000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <240>;
|
||||
};
|
||||
|
||||
mt6397_vgp2_reg: ldo_vgp2 {
|
||||
regulator-compatible = "ldo_vgp2";
|
||||
regulator-name = "vcamio";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vgp3_reg: ldo_vgp3 {
|
||||
regulator-compatible = "ldo_vgp3";
|
||||
regulator-name = "vcamaf";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vgp4_reg: ldo_vgp4 {
|
||||
regulator-compatible = "ldo_vgp4";
|
||||
regulator-name = "vgp4";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vgp5_reg: ldo_vgp5 {
|
||||
regulator-compatible = "ldo_vgp5";
|
||||
regulator-name = "vgp5";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3000000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vgp6_reg: ldo_vgp6 {
|
||||
regulator-compatible = "ldo_vgp6";
|
||||
regulator-name = "vgp6";
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
|
||||
mt6397_vibr_reg: ldo_vibr {
|
||||
regulator-compatible = "ldo_vibr";
|
||||
regulator-name = "vibr";
|
||||
regulator-min-microvolt = <1300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-enable-ramp-delay = <218>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -11,8 +11,11 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/mt8173-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/power/mt8173-power.h>
|
||||
#include <dt-bindings/reset-controller/mt8173-resets.h>
|
||||
#include "mt8173-pinfunc.h"
|
||||
|
||||
/ {
|
||||
|
@ -49,6 +52,8 @@
|
|||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53";
|
||||
reg = <0x000>;
|
||||
enable-method = "psci";
|
||||
cpu-idle-states = <&CPU_SLEEP_0>;
|
||||
};
|
||||
|
||||
cpu1: cpu@1 {
|
||||
|
@ -56,6 +61,7 @@
|
|||
compatible = "arm,cortex-a53";
|
||||
reg = <0x001>;
|
||||
enable-method = "psci";
|
||||
cpu-idle-states = <&CPU_SLEEP_0>;
|
||||
};
|
||||
|
||||
cpu2: cpu@100 {
|
||||
|
@ -63,6 +69,7 @@
|
|||
compatible = "arm,cortex-a57";
|
||||
reg = <0x100>;
|
||||
enable-method = "psci";
|
||||
cpu-idle-states = <&CPU_SLEEP_0>;
|
||||
};
|
||||
|
||||
cpu3: cpu@101 {
|
||||
|
@ -70,6 +77,20 @@
|
|||
compatible = "arm,cortex-a57";
|
||||
reg = <0x101>;
|
||||
enable-method = "psci";
|
||||
cpu-idle-states = <&CPU_SLEEP_0>;
|
||||
};
|
||||
|
||||
idle-states {
|
||||
entry-method = "arm,psci";
|
||||
|
||||
CPU_SLEEP_0: cpu-sleep-0 {
|
||||
compatible = "arm,idle-state";
|
||||
local-timer-stop;
|
||||
entry-latency-us = <639>;
|
||||
exit-latency-us = <680>;
|
||||
min-residency-us = <1088>;
|
||||
arm,psci-suspend-param = <0x0010000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -81,10 +102,18 @@
|
|||
cpu_on = <0x84000003>;
|
||||
};
|
||||
|
||||
uart_clk: dummy26m {
|
||||
clk26m: oscillator@0 {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <26000000>;
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
clock-output-names = "clk26m";
|
||||
};
|
||||
|
||||
clk32k: oscillator@1 {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32000>;
|
||||
clock-output-names = "clk32k";
|
||||
};
|
||||
|
||||
timer {
|
||||
|
@ -106,11 +135,32 @@
|
|||
compatible = "simple-bus";
|
||||
ranges;
|
||||
|
||||
/*
|
||||
* Pinctrl access register at 0x10005000 through regmap.
|
||||
* Register 0x1000b000 is used by EINT.
|
||||
*/
|
||||
pio: pinctrl@10005000 {
|
||||
topckgen: clock-controller@10000000 {
|
||||
compatible = "mediatek,mt8173-topckgen";
|
||||
reg = <0 0x10000000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
infracfg: power-controller@10001000 {
|
||||
compatible = "mediatek,mt8173-infracfg", "syscon";
|
||||
reg = <0 0x10001000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
pericfg: power-controller@10003000 {
|
||||
compatible = "mediatek,mt8173-pericfg", "syscon";
|
||||
reg = <0 0x10003000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
syscfg_pctl_a: syscfg_pctl_a@10005000 {
|
||||
compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon";
|
||||
reg = <0 0x10005000 0 0x1000>;
|
||||
};
|
||||
|
||||
pio: pinctrl@0x10005000 {
|
||||
compatible = "mediatek,mt8173-pinctrl";
|
||||
reg = <0 0x1000b000 0 0x1000>;
|
||||
mediatek,pctl-regmap = <&syscfg_pctl_a>;
|
||||
|
@ -122,11 +172,81 @@
|
|||
interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
i2c0_pins_a: i2c0 {
|
||||
pins1 {
|
||||
pinmux = <MT8173_PIN_45_SDA0__FUNC_SDA0>,
|
||||
<MT8173_PIN_46_SCL0__FUNC_SCL0>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c1_pins_a: i2c1 {
|
||||
pins1 {
|
||||
pinmux = <MT8173_PIN_125_SDA1__FUNC_SDA1>,
|
||||
<MT8173_PIN_126_SCL1__FUNC_SCL1>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c2_pins_a: i2c2 {
|
||||
pins1 {
|
||||
pinmux = <MT8173_PIN_43_SDA2__FUNC_SDA2>,
|
||||
<MT8173_PIN_44_SCL2__FUNC_SCL2>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c3_pins_a: i2c3 {
|
||||
pins1 {
|
||||
pinmux = <MT8173_PIN_106_SDA3__FUNC_SDA3>,
|
||||
<MT8173_PIN_107_SCL3__FUNC_SCL3>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c4_pins_a: i2c4 {
|
||||
pins1 {
|
||||
pinmux = <MT8173_PIN_133_SDA4__FUNC_SDA4>,
|
||||
<MT8173_PIN_134_SCL4__FUNC_SCL4>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c6_pins_a: i2c6 {
|
||||
pins1 {
|
||||
pinmux = <MT8173_PIN_100_MSDC2_DAT0__FUNC_SDA5>,
|
||||
<MT8173_PIN_101_MSDC2_DAT1__FUNC_SCL5>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
syscfg_pctl_a: syscfg_pctl_a@10005000 {
|
||||
compatible = "mediatek,mt8173-pctl-a-syscfg", "syscon";
|
||||
reg = <0 0x10005000 0 0x1000>;
|
||||
scpsys: scpsys@10006000 {
|
||||
compatible = "mediatek,mt8173-scpsys";
|
||||
#power-domain-cells = <1>;
|
||||
reg = <0 0x10006000 0 0x1000>;
|
||||
clocks = <&clk26m>,
|
||||
<&topckgen CLK_TOP_MM_SEL>;
|
||||
clock-names = "mfg", "mm";
|
||||
infracfg = <&infracfg>;
|
||||
};
|
||||
|
||||
watchdog: watchdog@10007000 {
|
||||
compatible = "mediatek,mt8173-wdt",
|
||||
"mediatek,mt6589-wdt";
|
||||
reg = <0 0x10007000 0 0x100>;
|
||||
};
|
||||
|
||||
pwrap: pwrap@1000d000 {
|
||||
compatible = "mediatek,mt8173-pwrap";
|
||||
reg = <0 0x1000d000 0 0x1000>;
|
||||
reg-names = "pwrap";
|
||||
interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
|
||||
resets = <&infracfg MT8173_INFRA_PMIC_WRAP_RST>;
|
||||
reset-names = "pwrap";
|
||||
clocks = <&infracfg CLK_INFRA_PMICSPI>, <&infracfg CLK_INFRA_PMICWRAP>;
|
||||
clock-names = "spi", "wrap";
|
||||
};
|
||||
|
||||
sysirq: intpol-controller@10200620 {
|
||||
|
@ -138,6 +258,12 @@
|
|||
reg = <0 0x10200620 0 0x20>;
|
||||
};
|
||||
|
||||
apmixedsys: clock-controller@10209000 {
|
||||
compatible = "mediatek,mt8173-apmixedsys";
|
||||
reg = <0 0x10209000 0 0x1000>;
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
gic: interrupt-controller@10220000 {
|
||||
compatible = "arm,gic-400";
|
||||
#interrupt-cells = <3>;
|
||||
|
@ -156,7 +282,8 @@
|
|||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11002000 0 0x400>;
|
||||
interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
|
||||
clock-names = "baud", "bus";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -165,7 +292,8 @@
|
|||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11003000 0 0x400>;
|
||||
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
|
||||
clock-names = "baud", "bus";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -174,7 +302,8 @@
|
|||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11004000 0 0x400>;
|
||||
interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
|
||||
clock-names = "baud", "bus";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -183,7 +312,179 @@
|
|||
"mediatek,mt6577-uart";
|
||||
reg = <0 0x11005000 0 0x400>;
|
||||
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&uart_clk>;
|
||||
clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
|
||||
clock-names = "baud", "bus";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@11007000 {
|
||||
compatible = "mediatek,mt8173-i2c";
|
||||
reg = <0 0x11007000 0 0x70>,
|
||||
<0 0x11000100 0 0x80>;
|
||||
interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-div = <16>;
|
||||
clocks = <&pericfg CLK_PERI_I2C0>,
|
||||
<&pericfg CLK_PERI_AP_DMA>;
|
||||
clock-names = "main", "dma";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins_a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@11008000 {
|
||||
compatible = "mediatek,mt8173-i2c";
|
||||
reg = <0 0x11008000 0 0x70>,
|
||||
<0 0x11000180 0 0x80>;
|
||||
interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-div = <16>;
|
||||
clocks = <&pericfg CLK_PERI_I2C1>,
|
||||
<&pericfg CLK_PERI_AP_DMA>;
|
||||
clock-names = "main", "dma";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins_a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@11009000 {
|
||||
compatible = "mediatek,mt8173-i2c";
|
||||
reg = <0 0x11009000 0 0x70>,
|
||||
<0 0x11000200 0 0x80>;
|
||||
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-div = <16>;
|
||||
clocks = <&pericfg CLK_PERI_I2C2>,
|
||||
<&pericfg CLK_PERI_AP_DMA>;
|
||||
clock-names = "main", "dma";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c2_pins_a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c3@11010000 {
|
||||
compatible = "mediatek,mt8173-i2c";
|
||||
reg = <0 0x11010000 0 0x70>,
|
||||
<0 0x11000280 0 0x80>;
|
||||
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-div = <16>;
|
||||
clocks = <&pericfg CLK_PERI_I2C3>,
|
||||
<&pericfg CLK_PERI_AP_DMA>;
|
||||
clock-names = "main", "dma";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c3_pins_a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c4: i2c4@11011000 {
|
||||
compatible = "mediatek,mt8173-i2c";
|
||||
reg = <0 0x11011000 0 0x70>,
|
||||
<0 0x11000300 0 0x80>;
|
||||
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-div = <16>;
|
||||
clocks = <&pericfg CLK_PERI_I2C4>,
|
||||
<&pericfg CLK_PERI_AP_DMA>;
|
||||
clock-names = "main", "dma";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c4_pins_a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c6: i2c6@11013000 {
|
||||
compatible = "mediatek,mt8173-i2c";
|
||||
reg = <0 0x11013000 0 0x70>,
|
||||
<0 0x11000080 0 0x80>;
|
||||
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>;
|
||||
clock-div = <16>;
|
||||
clocks = <&pericfg CLK_PERI_I2C6>,
|
||||
<&pericfg CLK_PERI_AP_DMA>;
|
||||
clock-names = "main", "dma";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c6_pins_a>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
afe: audio-controller@11220000 {
|
||||
compatible = "mediatek,mt8173-afe-pcm";
|
||||
reg = <0 0x11220000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_FALLING>;
|
||||
power-domains = <&scpsys MT8173_POWER_DOMAIN_AUDIO>;
|
||||
clocks = <&infracfg CLK_INFRA_AUDIO>,
|
||||
<&topckgen CLK_TOP_AUDIO_SEL>,
|
||||
<&topckgen CLK_TOP_AUD_INTBUS_SEL>,
|
||||
<&topckgen CLK_TOP_APLL1_DIV0>,
|
||||
<&topckgen CLK_TOP_APLL2_DIV0>,
|
||||
<&topckgen CLK_TOP_I2S0_M_SEL>,
|
||||
<&topckgen CLK_TOP_I2S1_M_SEL>,
|
||||
<&topckgen CLK_TOP_I2S2_M_SEL>,
|
||||
<&topckgen CLK_TOP_I2S3_M_SEL>,
|
||||
<&topckgen CLK_TOP_I2S3_B_SEL>;
|
||||
clock-names = "infra_sys_audio_clk",
|
||||
"top_pdn_audio",
|
||||
"top_pdn_aud_intbus",
|
||||
"bck0",
|
||||
"bck1",
|
||||
"i2s0_m",
|
||||
"i2s1_m",
|
||||
"i2s2_m",
|
||||
"i2s3_m",
|
||||
"i2s3_b";
|
||||
assigned-clocks = <&topckgen CLK_TOP_AUD_1_SEL>,
|
||||
<&topckgen CLK_TOP_AUD_2_SEL>;
|
||||
assigned-clock-parents = <&topckgen CLK_TOP_APLL1>,
|
||||
<&topckgen CLK_TOP_APLL2>;
|
||||
};
|
||||
|
||||
mmc0: mmc@11230000 {
|
||||
compatible = "mediatek,mt8173-mmc",
|
||||
"mediatek,mt8135-mmc";
|
||||
reg = <0 0x11230000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&pericfg CLK_PERI_MSDC30_0>,
|
||||
<&topckgen CLK_TOP_MSDC50_0_H_SEL>;
|
||||
clock-names = "source", "hclk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc1: mmc@11240000 {
|
||||
compatible = "mediatek,mt8173-mmc",
|
||||
"mediatek,mt8135-mmc";
|
||||
reg = <0 0x11240000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&pericfg CLK_PERI_MSDC30_1>,
|
||||
<&topckgen CLK_TOP_AXI_SEL>;
|
||||
clock-names = "source", "hclk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc2: mmc@11250000 {
|
||||
compatible = "mediatek,mt8173-mmc",
|
||||
"mediatek,mt8135-mmc";
|
||||
reg = <0 0x11250000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&pericfg CLK_PERI_MSDC30_2>,
|
||||
<&topckgen CLK_TOP_AXI_SEL>;
|
||||
clock-names = "source", "hclk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc3: mmc@11260000 {
|
||||
compatible = "mediatek,mt8173-mmc",
|
||||
"mediatek,mt8135-mmc";
|
||||
reg = <0 0x11260000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>;
|
||||
clocks = <&pericfg CLK_PERI_MSDC30_3>,
|
||||
<&topckgen CLK_TOP_MSDC50_2_H_SEL>;
|
||||
clock-names = "source", "hclk";
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -2,28 +2,38 @@
|
|||
|
||||
&pm8916_gpios {
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pm8916_gpios_default>;
|
||||
|
||||
pm8916_gpios_default: default {
|
||||
usb_hub_reset_pm {
|
||||
pins = "gpio1";
|
||||
function = PMIC_GPIO_FUNC_NORMAL;
|
||||
output-low;
|
||||
};
|
||||
usb_sw_sel_pm {
|
||||
pins = "gpio2";
|
||||
function = PMIC_GPIO_FUNC_NORMAL;
|
||||
input-disable;
|
||||
};
|
||||
usr_led_3_ctrl {
|
||||
usb_hub_reset_pm: usb_hub_reset_pm {
|
||||
pinconf {
|
||||
pins = "gpio3";
|
||||
function = PMIC_GPIO_FUNC_NORMAL;
|
||||
output-low;
|
||||
};
|
||||
usr_led_4_ctrl {
|
||||
};
|
||||
|
||||
usb_sw_sel_pm: usb_sw_sel_pm {
|
||||
pinconf {
|
||||
pins = "gpio4";
|
||||
function = PMIC_GPIO_FUNC_NORMAL;
|
||||
power-source = <PM8916_GPIO_VPH>;
|
||||
input-disable;
|
||||
};
|
||||
};
|
||||
|
||||
pm8916_gpios_leds: pm8916_gpios_leds {
|
||||
pinconf {
|
||||
pins = "gpio1", "gpio2";
|
||||
function = PMIC_GPIO_FUNC_NORMAL;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pm8916_mpps {
|
||||
|
||||
pm8916_mpps_leds: pm8916_mpps_leds {
|
||||
pinconf {
|
||||
pins = "mpp2", "mpp3";
|
||||
function = PMIC_GPIO_FUNC_NORMAL;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -3,17 +3,9 @@
|
|||
|
||||
&msmgpio {
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&soc_gpios_default>;
|
||||
|
||||
soc_gpios_default: default {
|
||||
usr_led_1_ctrl_default: usr_led_1_ctrl_default {
|
||||
pins = "gpio21";
|
||||
function = "gpio";
|
||||
output-low;
|
||||
};
|
||||
usr_led_2_ctrl_default: usr_led_2_ctrl_default {
|
||||
pins = "gpio120";
|
||||
msmgpio_leds: msmgpio_leds {
|
||||
pinconf {
|
||||
pins = "gpio21", "gpio120";
|
||||
function = "gpio";
|
||||
output-low;
|
||||
};
|
||||
|
|
|
@ -32,5 +32,56 @@
|
|||
pinctrl-0 = <&blsp1_uart2_default>;
|
||||
pinctrl-1 = <&blsp1_uart2_sleep>;
|
||||
};
|
||||
|
||||
leds {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&msmgpio_leds>,
|
||||
<&pm8916_gpios_leds>,
|
||||
<&pm8916_mpps_leds>;
|
||||
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led@1 {
|
||||
label = "apq8016-sbc:green:user1";
|
||||
gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@2 {
|
||||
label = "apq8016-sbc:green:user2";
|
||||
gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "mmc0";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@3 {
|
||||
label = "apq8016-sbc:green:user3";
|
||||
gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "mmc1";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@4 {
|
||||
label = "apq8016-sbc:green:user4";
|
||||
gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "none";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@5 {
|
||||
label = "apq8016-sbc:yellow:wlan";
|
||||
gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "wlan";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led@6 {
|
||||
label = "apq8016-sbc:blue:bt";
|
||||
gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "bt";
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
430
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
Normal file
430
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
Normal file
|
@ -0,0 +1,430 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
* only version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
&msmgpio {
|
||||
|
||||
blsp1_uart2_default: blsp1_uart2_default {
|
||||
pinmux {
|
||||
function = "blsp_uart2";
|
||||
pins = "gpio4", "gpio5";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio4", "gpio5";
|
||||
drive-strength = <16>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
blsp1_uart2_sleep: blsp1_uart2_sleep {
|
||||
pinmux {
|
||||
function = "blsp_uart2";
|
||||
pins = "gpio4", "gpio5";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio4", "gpio5";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
spi1_default: spi1_default {
|
||||
pinmux {
|
||||
function = "blsp_spi1";
|
||||
pins = "gpio0", "gpio1", "gpio3";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio2";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio0", "gpio1", "gpio3";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio2";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
spi1_sleep: spi1_sleep {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio0", "gpio1", "gpio2", "gpio3";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio0", "gpio1", "gpio2", "gpio3";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
spi2_default: spi2_default {
|
||||
pinmux {
|
||||
function = "blsp_spi2";
|
||||
pins = "gpio4", "gpio5", "gpio7";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio6";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio4", "gpio5", "gpio6", "gpio7";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio6";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
spi2_sleep: spi2_sleep {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio4", "gpio5", "gpio6", "gpio7";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio4", "gpio5", "gpio6", "gpio7";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
spi3_default: spi3_default {
|
||||
pinmux {
|
||||
function = "blsp_spi3";
|
||||
pins = "gpio8", "gpio9", "gpio11";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio10";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio8", "gpio9", "gpio10", "gpio11";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio10";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
spi3_sleep: spi3_sleep {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio8", "gpio9", "gpio10", "gpio11";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio8", "gpio9", "gpio10", "gpio11";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
spi4_default: spi4_default {
|
||||
pinmux {
|
||||
function = "blsp_spi4";
|
||||
pins = "gpio12", "gpio13", "gpio15";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio14";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio12", "gpio13", "gpio14", "gpio15";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio14";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
spi4_sleep: spi4_sleep {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio12", "gpio13", "gpio14", "gpio15";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio12", "gpio13", "gpio14", "gpio15";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
spi5_default: spi5_default {
|
||||
pinmux {
|
||||
function = "blsp_spi5";
|
||||
pins = "gpio16", "gpio17", "gpio19";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio18";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio16", "gpio17", "gpio18", "gpio19";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio18";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
spi5_sleep: spi5_sleep {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio16", "gpio17", "gpio18", "gpio19";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio16", "gpio17", "gpio18", "gpio19";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
spi6_default: spi6_default {
|
||||
pinmux {
|
||||
function = "blsp_spi6";
|
||||
pins = "gpio20", "gpio21", "gpio23";
|
||||
};
|
||||
pinmux_cs {
|
||||
function = "gpio";
|
||||
pins = "gpio22";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio20", "gpio21", "gpio22", "gpio23";
|
||||
drive-strength = <12>;
|
||||
bias-disable;
|
||||
};
|
||||
pinconf_cs {
|
||||
pins = "gpio22";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
spi6_sleep: spi6_sleep {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio20", "gpio21", "gpio22", "gpio23";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio20", "gpio21", "gpio22", "gpio23";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
|
||||
i2c4_default: i2c4_default {
|
||||
pinmux {
|
||||
function = "blsp_i2c4";
|
||||
pins = "gpio14", "gpio15";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio14", "gpio15";
|
||||
drive-strength = <2>;
|
||||
bias-disable = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c4_sleep: i2c4_sleep {
|
||||
pinmux {
|
||||
function = "blsp_i2c4";
|
||||
pins = "gpio14", "gpio15";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio14", "gpio15";
|
||||
drive-strength = <2>;
|
||||
bias-disable = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
sdhc2_cd_pin {
|
||||
sdc2_cd_on: cd_on {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio38";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio38";
|
||||
drive-strength = <2>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
sdc2_cd_off: cd_off {
|
||||
pinmux {
|
||||
function = "gpio";
|
||||
pins = "gpio38";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio38";
|
||||
drive-strength = <2>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmx_sdc1_clk {
|
||||
sdc1_clk_on: clk_on {
|
||||
pinmux {
|
||||
pins = "sdc1_clk";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc1_clk";
|
||||
bias-disable;
|
||||
drive-strength = <16>;
|
||||
};
|
||||
};
|
||||
sdc1_clk_off: clk_off {
|
||||
pinmux {
|
||||
pins = "sdc1_clk";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc1_clk";
|
||||
bias-disable;
|
||||
drive-strength = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmx_sdc1_cmd {
|
||||
sdc1_cmd_on: cmd_on {
|
||||
pinmux {
|
||||
pins = "sdc1_cmd";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc1_cmd";
|
||||
bias-pull-up;
|
||||
drive-strength = <10>;
|
||||
};
|
||||
};
|
||||
sdc1_cmd_off: cmd_off {
|
||||
pinmux {
|
||||
pins = "sdc1_cmd";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc1_cmd";
|
||||
bias-pull-up;
|
||||
drive-strength = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmx_sdc1_data {
|
||||
sdc1_data_on: data_on {
|
||||
pinmux {
|
||||
pins = "sdc1_data";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc1_data";
|
||||
bias-pull-up;
|
||||
drive-strength = <10>;
|
||||
};
|
||||
};
|
||||
sdc1_data_off: data_off {
|
||||
pinmux {
|
||||
pins = "sdc1_data";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc1_data";
|
||||
bias-pull-up;
|
||||
drive-strength = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmx_sdc2_clk {
|
||||
sdc2_clk_on: clk_on {
|
||||
pinmux {
|
||||
pins = "sdc2_clk";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc2_clk";
|
||||
bias-disable;
|
||||
drive-strength = <16>;
|
||||
};
|
||||
};
|
||||
sdc2_clk_off: clk_off {
|
||||
pinmux {
|
||||
pins = "sdc2_clk";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc2_clk";
|
||||
bias-disable;
|
||||
drive-strength = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmx_sdc2_cmd {
|
||||
sdc2_cmd_on: cmd_on {
|
||||
pinmux {
|
||||
pins = "sdc2_cmd";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc2_cmd";
|
||||
bias-pull-up;
|
||||
drive-strength = <10>;
|
||||
};
|
||||
};
|
||||
sdc2_cmd_off: cmd_off {
|
||||
pinmux {
|
||||
pins = "sdc2_cmd";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc2_cmd";
|
||||
bias-pull-up;
|
||||
drive-strength = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pmx_sdc2_data {
|
||||
sdc2_data_on: data_on {
|
||||
pinmux {
|
||||
pins = "sdc2_data";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc2_data";
|
||||
bias-pull-up;
|
||||
drive-strength = <10>;
|
||||
};
|
||||
};
|
||||
sdc2_data_off: data_off {
|
||||
pinmux {
|
||||
pins = "sdc2_data";
|
||||
};
|
||||
pinconf {
|
||||
pins = "sdc2_data";
|
||||
bias-pull-up;
|
||||
drive-strength = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -24,7 +24,10 @@
|
|||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases { };
|
||||
aliases {
|
||||
sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
|
||||
sdhc2 = &sdhc_2; /* SDC2 SD card slot */
|
||||
};
|
||||
|
||||
chosen { };
|
||||
|
||||
|
@ -90,30 +93,6 @@
|
|||
#gpio-cells = <2>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
|
||||
blsp1_uart2_default: blsp1_uart2_default {
|
||||
pinmux {
|
||||
function = "blsp_uart2";
|
||||
pins = "gpio4", "gpio5";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio4", "gpio5";
|
||||
drive-strength = <16>;
|
||||
bias-disable;
|
||||
};
|
||||
};
|
||||
|
||||
blsp1_uart2_sleep: blsp1_uart2_sleep {
|
||||
pinmux {
|
||||
function = "blsp_uart2";
|
||||
pins = "gpio4", "gpio5";
|
||||
};
|
||||
pinconf {
|
||||
pins = "gpio4", "gpio5";
|
||||
drive-strength = <2>;
|
||||
bias-pull-down;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gcc: qcom,gcc@1800000 {
|
||||
|
@ -132,6 +111,202 @@
|
|||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_dma: dma@7884000 {
|
||||
compatible = "qcom,bam-v1.7.0";
|
||||
reg = <0x07884000 0x23000>;
|
||||
interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "bam_clk";
|
||||
#dma-cells = <1>;
|
||||
qcom,ee = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_spi1: spi@78b5000 {
|
||||
compatible = "qcom,spi-qup-v2.2.1";
|
||||
reg = <0x078b5000 0x600>;
|
||||
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
|
||||
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
dmas = <&blsp_dma 5>, <&blsp_dma 4>;
|
||||
dma-names = "rx", "tx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&spi1_default>;
|
||||
pinctrl-1 = <&spi1_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_spi2: spi@78b6000 {
|
||||
compatible = "qcom,spi-qup-v2.2.1";
|
||||
reg = <0x078b6000 0x600>;
|
||||
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
|
||||
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
dmas = <&blsp_dma 7>, <&blsp_dma 6>;
|
||||
dma-names = "rx", "tx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&spi2_default>;
|
||||
pinctrl-1 = <&spi2_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_spi3: spi@78b7000 {
|
||||
compatible = "qcom,spi-qup-v2.2.1";
|
||||
reg = <0x078b7000 0x600>;
|
||||
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
|
||||
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
dmas = <&blsp_dma 9>, <&blsp_dma 8>;
|
||||
dma-names = "rx", "tx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&spi3_default>;
|
||||
pinctrl-1 = <&spi3_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_spi4: spi@78b8000 {
|
||||
compatible = "qcom,spi-qup-v2.2.1";
|
||||
reg = <0x078b8000 0x600>;
|
||||
interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
|
||||
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
dmas = <&blsp_dma 11>, <&blsp_dma 10>;
|
||||
dma-names = "rx", "tx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&spi4_default>;
|
||||
pinctrl-1 = <&spi4_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_spi5: spi@78b9000 {
|
||||
compatible = "qcom,spi-qup-v2.2.1";
|
||||
reg = <0x078b9000 0x600>;
|
||||
interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
|
||||
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
dmas = <&blsp_dma 13>, <&blsp_dma 12>;
|
||||
dma-names = "rx", "tx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&spi5_default>;
|
||||
pinctrl-1 = <&spi5_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_spi6: spi@78ba000 {
|
||||
compatible = "qcom,spi-qup-v2.2.1";
|
||||
reg = <0x078ba000 0x600>;
|
||||
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
|
||||
<&gcc GCC_BLSP1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
dmas = <&blsp_dma 15>, <&blsp_dma 14>;
|
||||
dma-names = "rx", "tx";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&spi6_default>;
|
||||
pinctrl-1 = <&spi6_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
blsp_i2c4: i2c@78b8000 {
|
||||
compatible = "qcom,i2c-qup-v2.2.1";
|
||||
reg = <0x78b8000 0x1000>;
|
||||
interrupts = <GIC_SPI 98 0>;
|
||||
clocks = <&gcc GCC_BLSP1_AHB_CLK>,
|
||||
<&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
pinctrl-names = "default", "sleep";
|
||||
pinctrl-0 = <&i2c4_default>;
|
||||
pinctrl-1 = <&i2c4_sleep>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdhc_1: sdhci@07824000 {
|
||||
compatible = "qcom,sdhci-msm-v4";
|
||||
reg = <0x07824900 0x11c>, <0x07824000 0x800>;
|
||||
reg-names = "hc_mem", "core_mem";
|
||||
|
||||
interrupts = <0 123 0>, <0 138 0>;
|
||||
interrupt-names = "hc_irq", "pwr_irq";
|
||||
clocks = <&gcc GCC_SDCC1_APPS_CLK>,
|
||||
<&gcc GCC_SDCC1_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
bus-width = <8>;
|
||||
non-removable;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdhc_2: sdhci@07864000 {
|
||||
compatible = "qcom,sdhci-msm-v4";
|
||||
reg = <0x07864900 0x11c>, <0x07864000 0x800>;
|
||||
reg-names = "hc_mem", "core_mem";
|
||||
|
||||
interrupts = <0 125 0>, <0 221 0>;
|
||||
interrupt-names = "hc_irq", "pwr_irq";
|
||||
clocks = <&gcc GCC_SDCC2_APPS_CLK>,
|
||||
<&gcc GCC_SDCC2_AHB_CLK>;
|
||||
clock-names = "core", "iface";
|
||||
bus-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb_dev: usb@78d9000 {
|
||||
compatible = "qcom,ci-hdrc";
|
||||
reg = <0x78d9000 0x400>;
|
||||
dr_mode = "peripheral";
|
||||
interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>;
|
||||
usb-phy = <&usb_otg>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb_host: ehci@78d9000 {
|
||||
compatible = "qcom,ehci-host";
|
||||
reg = <0x78d9000 0x400>;
|
||||
interrupts = <GIC_SPI 134 IRQ_TYPE_NONE>;
|
||||
usb-phy = <&usb_otg>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb_otg: phy@78d9000 {
|
||||
compatible = "qcom,usb-otg-snps";
|
||||
reg = <0x78d9000 0x400>;
|
||||
interrupts = <GIC_SPI 134 IRQ_TYPE_EDGE_BOTH>,
|
||||
<GIC_SPI 140 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
qcom,vdd-levels = <1 5 7>;
|
||||
qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>;
|
||||
dr_mode = "peripheral";
|
||||
qcom,otg-control = <2>; // PMIC
|
||||
|
||||
clocks = <&gcc GCC_USB_HS_AHB_CLK>,
|
||||
<&gcc GCC_USB_HS_SYSTEM_CLK>,
|
||||
<&gcc GCC_USB2A_PHY_SLEEP_CLK>;
|
||||
clock-names = "iface", "core", "sleep";
|
||||
|
||||
resets = <&gcc GCC_USB2A_PHY_BCR>,
|
||||
<&gcc GCC_USB_HS_BCR>;
|
||||
reset-names = "phy", "link";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
intc: interrupt-controller@b000000 {
|
||||
compatible = "qcom,msm-qgic2";
|
||||
interrupt-controller;
|
||||
|
@ -217,3 +392,5 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
#include "msm8916-pins.dtsi"
|
||||
|
|
5
arch/arm64/boot/dts/rockchip/Makefile
Normal file
5
arch/arm64/boot/dts/rockchip/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb
|
||||
|
||||
always := $(dtb-y)
|
||||
subdir-y := $(dts-dirs)
|
||||
clean-files := *.dtb
|
354
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
Normal file
354
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
Normal file
|
@ -0,0 +1,354 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This file is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This file is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "rk3368.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Rockchip R88";
|
||||
compatible = "rockchip,r88", "rockchip,rk3368";
|
||||
|
||||
chosen {
|
||||
stdout-path = "serial2:115200n8";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x40000000>;
|
||||
};
|
||||
|
||||
emmc_pwrseq: emmc-pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
pinctrl-0 = <&emmc_reset>;
|
||||
pinctrl-names = "default";
|
||||
reset-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
keys: gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwr_key>;
|
||||
|
||||
button@0 {
|
||||
gpio-key,wakeup = <1>;
|
||||
gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
|
||||
label = "GPIO Power";
|
||||
linux,code = <116>;
|
||||
};
|
||||
};
|
||||
|
||||
leds: gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
work {
|
||||
gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
|
||||
label = "r88:green:led";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&led_ctl>;
|
||||
};
|
||||
};
|
||||
|
||||
ir: ir-receiver {
|
||||
compatible = "gpio-ir-receiver";
|
||||
gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ir_int>;
|
||||
};
|
||||
|
||||
sdio_pwrseq: sdio-pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
clocks = <&hym8563>;
|
||||
clock-names = "ext_clock";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&bt_rst>, <&wifi_reg_on>;
|
||||
|
||||
reset-gpios =
|
||||
/* BT_RST_N */
|
||||
<&gpio3 5 GPIO_ACTIVE_LOW>,
|
||||
|
||||
/* WL_REG_ON */
|
||||
<&gpio3 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
vcc_18: vcc18-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_18";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
/* supplies both host and otg */
|
||||
vcc_host: vcc-host-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
enable-active-high;
|
||||
gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&host_vbus_drv>;
|
||||
regulator-name = "vcc_host";
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
vcc_io: vcc-io-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_io";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
vcc_lan: vcc-lan-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_lan";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_io>;
|
||||
};
|
||||
|
||||
vcc_sys: vcc-sys-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc_sys";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vccio_wl: vccio-wl-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vccio_wl";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_io>;
|
||||
};
|
||||
|
||||
vdd_10: vdd-10-regulator {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_10";
|
||||
regulator-min-microvolt = <1000000>;
|
||||
regulator-max-microvolt = <1000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
};
|
||||
|
||||
&emmc {
|
||||
broken-cd;
|
||||
bus-width = <8>;
|
||||
cap-mmc-highspeed;
|
||||
disable-wp;
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
non-removable;
|
||||
num-slots = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac {
|
||||
phy-supply = <&vcc_lan>;
|
||||
phy-mode = "rmii";
|
||||
clock_in_out = "output";
|
||||
snps,reset-gpio = <&gpio3 12 0>;
|
||||
snps,reset-active-low;
|
||||
snps,reset-delays-us = <0 10000 1000000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&rmii_pins>;
|
||||
tx_delay = <0x30>;
|
||||
rx_delay = <0x10>;
|
||||
status = "ok";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
|
||||
vdd_cpu: syr827@40 {
|
||||
compatible = "silergy,syr827";
|
||||
reg = <0x40>;
|
||||
fcs,suspend-voltage-selector = <1>;
|
||||
regulator-name = "vdd_cpu";
|
||||
regulator-enable-ramp-delay = <300>;
|
||||
regulator-min-microvolt = <712500>;
|
||||
regulator-max-microvolt = <1500000>;
|
||||
regulator-ramp-delay = <8000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
vin-supply = <&vcc_sys>;
|
||||
};
|
||||
|
||||
hym8563: hym8563@51 {
|
||||
compatible = "haoyu,hym8563";
|
||||
reg = <0x51>;
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
clock-output-names = "xin32k";
|
||||
/* rtc_int is not connected */
|
||||
};
|
||||
};
|
||||
|
||||
&sdio0 {
|
||||
assigned-clocks = <&cru SCLK_SDIO0>;
|
||||
assigned-clock-parents = <&cru PLL_CPLL>;
|
||||
broken-cd;
|
||||
bus-width = <4>;
|
||||
cap-sd-highspeed;
|
||||
cap-sdio-irq;
|
||||
keep-power-in-suspend;
|
||||
mmc-pwrseq = <&sdio_pwrseq>;
|
||||
non-removable;
|
||||
num-slots = <1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
|
||||
vmmc-supply = <&vcc_io>;
|
||||
vqmmc-supply = <&vccio_wl>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
|
||||
bias-disable;
|
||||
drive-strength = <8>;
|
||||
};
|
||||
|
||||
pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
|
||||
bias-pull-up;
|
||||
drive-strength = <8>;
|
||||
};
|
||||
|
||||
emmc {
|
||||
emmc_bus8: emmc-bus8 {
|
||||
rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 19 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 20 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 21 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 22 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 23 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 24 RK_FUNC_2 &pcfg_pull_up_drv_8ma>,
|
||||
<1 25 RK_FUNC_2 &pcfg_pull_up_drv_8ma>;
|
||||
};
|
||||
|
||||
emmc-clk {
|
||||
rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
|
||||
};
|
||||
|
||||
emmc-cmd {
|
||||
rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up_drv_8ma>;
|
||||
};
|
||||
|
||||
emmc_reset: emmc-reset {
|
||||
rockchip,pins = <2 3 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
ir {
|
||||
ir_int: ir-int {
|
||||
rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
pwr_key: pwr-key {
|
||||
rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
stby_pwren: stby-pwren {
|
||||
rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
led_ctl: led-ctl {
|
||||
rockchip,pins = <3 29 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
sdio {
|
||||
wifi_reg_on: wifi-reg-on {
|
||||
rockchip,pins = <3 4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
bt_rst: bt-rst {
|
||||
rockchip,pins = <3 5 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
usb {
|
||||
host_vbus_drv: host-vbus-drv {
|
||||
rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&saradc {
|
||||
vref-supply = <&vcc_18>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_host0_ehci {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb_otg {
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&wdt {
|
||||
status = "okay";
|
||||
};
|
900
arch/arm64/boot/dts/rockchip/rk3368.dtsi
Normal file
900
arch/arm64/boot/dts/rockchip/rk3368.dtsi
Normal file
|
@ -0,0 +1,900 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
|
||||
*
|
||||
* This file is dual-licensed: you can use it either under the terms
|
||||
* of the GPL or the X11 license, at your option. Note that this dual
|
||||
* licensing only applies to this file, and not this project as a
|
||||
* whole.
|
||||
*
|
||||
* a) This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* Or, alternatively,
|
||||
*
|
||||
* b) Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
* sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <dt-bindings/clock/rk3368-cru.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/pinctrl/rockchip.h>
|
||||
|
||||
/ {
|
||||
compatible = "rockchip,rk3368";
|
||||
interrupt-parent = <&gic>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases {
|
||||
i2c0 = &i2c0;
|
||||
i2c1 = &i2c1;
|
||||
i2c2 = &i2c2;
|
||||
i2c3 = &i2c3;
|
||||
i2c4 = &i2c4;
|
||||
i2c5 = &i2c5;
|
||||
serial0 = &uart0;
|
||||
serial1 = &uart1;
|
||||
serial2 = &uart2;
|
||||
serial3 = &uart3;
|
||||
serial4 = &uart4;
|
||||
spi0 = &spi0;
|
||||
spi1 = &spi1;
|
||||
spi2 = &spi2;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x0>;
|
||||
|
||||
cpu-map {
|
||||
cluster0 {
|
||||
core0 {
|
||||
cpu = <&cpu_b0>;
|
||||
};
|
||||
core1 {
|
||||
cpu = <&cpu_b1>;
|
||||
};
|
||||
core2 {
|
||||
cpu = <&cpu_b2>;
|
||||
};
|
||||
core3 {
|
||||
cpu = <&cpu_b3>;
|
||||
};
|
||||
};
|
||||
|
||||
cluster1 {
|
||||
core0 {
|
||||
cpu = <&cpu_l0>;
|
||||
};
|
||||
core1 {
|
||||
cpu = <&cpu_l1>;
|
||||
};
|
||||
core2 {
|
||||
cpu = <&cpu_l2>;
|
||||
};
|
||||
core3 {
|
||||
cpu = <&cpu_l3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
idle-states {
|
||||
entry-method = "arm,psci";
|
||||
|
||||
cpu_sleep: cpu-sleep-0 {
|
||||
compatible = "arm,idle-state";
|
||||
arm,psci-suspend-param = <0x1010000>;
|
||||
entry-latency-us = <0x3fffffff>;
|
||||
exit-latency-us = <0x40000000>;
|
||||
min-residency-us = <0xffffffff>;
|
||||
};
|
||||
};
|
||||
|
||||
cpu_l0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x0>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_l1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x1>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_l2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x2>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_l3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x3>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_b0: cpu@100 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x100>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_b1: cpu@101 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x101>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_b2: cpu@102 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x102>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu_b3: cpu@103 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x103>;
|
||||
cpu-idle-states = <&cpu_sleep>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
compatible = "arm,armv8-pmuv3";
|
||||
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>,
|
||||
<&cpu_l3>, <&cpu_b0>, <&cpu_b1>,
|
||||
<&cpu_b2>, <&cpu_b3>;
|
||||
};
|
||||
|
||||
psci {
|
||||
compatible = "arm,psci-0.2";
|
||||
method = "smc";
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv8-timer";
|
||||
interrupts = <GIC_PPI 13
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 14
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 11
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>,
|
||||
<GIC_PPI 10
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
};
|
||||
|
||||
xin24m: oscillator {
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <24000000>;
|
||||
clock-output-names = "xin24m";
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
sdmmc: dwmmc@ff0c0000 {
|
||||
compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff0c0000 0x0 0x4000>;
|
||||
clock-freq-min-max = <400000 150000000>;
|
||||
clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
|
||||
clock-names = "biu", "ciu";
|
||||
fifo-depth = <0x100>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdio0: dwmmc@ff0d0000 {
|
||||
compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff0d0000 0x0 0x4000>;
|
||||
clock-freq-min-max = <400000 150000000>;
|
||||
clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>,
|
||||
<&cru SCLK_SDIO0_DRV>, <&cru SCLK_SDIO0_SAMPLE>;
|
||||
clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
|
||||
fifo-depth = <0x100>;
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
emmc: dwmmc@ff0f0000 {
|
||||
compatible = "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||||
reg = <0x0 0xff0f0000 0x0 0x4000>;
|
||||
clock-freq-min-max = <400000 150000000>;
|
||||
clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
|
||||
clock-names = "biu", "ciu";
|
||||
fifo-depth = <0x100>;
|
||||
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saradc: saradc@ff100000 {
|
||||
compatible = "rockchip,saradc";
|
||||
reg = <0x0 0xff100000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#io-channel-cells = <1>;
|
||||
clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
|
||||
clock-names = "saradc", "apb_pclk";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi0: spi@ff110000 {
|
||||
compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
|
||||
reg = <0x0 0xff110000 0x0 0x1000>;
|
||||
clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
|
||||
clock-names = "spiclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@ff120000 {
|
||||
compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
|
||||
reg = <0x0 0xff120000 0x0 0x1000>;
|
||||
clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
|
||||
clock-names = "spiclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi2: spi@ff130000 {
|
||||
compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
|
||||
reg = <0x0 0xff130000 0x0 0x1000>;
|
||||
clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>;
|
||||
clock-names = "spiclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c1: i2c@ff140000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff140000 0x0 0x1000>;
|
||||
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-names = "i2c";
|
||||
clocks = <&cru PCLK_I2C1>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_xfer>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c3: i2c@ff150000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff150000 0x0 0x1000>;
|
||||
interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-names = "i2c";
|
||||
clocks = <&cru PCLK_I2C3>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c3_xfer>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c4: i2c@ff160000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff160000 0x0 0x1000>;
|
||||
interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-names = "i2c";
|
||||
clocks = <&cru PCLK_I2C4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c4_xfer>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c5: i2c@ff170000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff170000 0x0 0x1000>;
|
||||
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-names = "i2c";
|
||||
clocks = <&cru PCLK_I2C5>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c5_xfer>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart0: serial@ff180000 {
|
||||
compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
|
||||
reg = <0x0 0xff180000 0x0 0x100>;
|
||||
clock-frequency = <24000000>;
|
||||
clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: serial@ff190000 {
|
||||
compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
|
||||
reg = <0x0 0xff190000 0x0 0x100>;
|
||||
clock-frequency = <24000000>;
|
||||
clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart3: serial@ff1b0000 {
|
||||
compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
|
||||
reg = <0x0 0xff1b0000 0x0 0x100>;
|
||||
clock-frequency = <24000000>;
|
||||
clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart4: serial@ff1c0000 {
|
||||
compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
|
||||
reg = <0x0 0xff1c0000 0x0 0x100>;
|
||||
clock-frequency = <24000000>;
|
||||
clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gmac: ethernet@ff290000 {
|
||||
compatible = "rockchip,rk3368-gmac";
|
||||
reg = <0x0 0xff290000 0x0 0x10000>;
|
||||
interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "macirq";
|
||||
rockchip,grf = <&grf>;
|
||||
clocks = <&cru SCLK_MAC>,
|
||||
<&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
|
||||
<&cru SCLK_MACREF>, <&cru SCLK_MACREF_OUT>,
|
||||
<&cru ACLK_GMAC>, <&cru PCLK_GMAC>;
|
||||
clock-names = "stmmaceth",
|
||||
"mac_clk_rx", "mac_clk_tx",
|
||||
"clk_mac_ref", "clk_mac_refout",
|
||||
"aclk_mac", "pclk_mac";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb_host0_ehci: usb@ff500000 {
|
||||
compatible = "generic-ehci";
|
||||
reg = <0x0 0xff500000 0x0 0x100>;
|
||||
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_HOST0>;
|
||||
clock-names = "usbhost";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
usb_otg: usb@ff580000 {
|
||||
compatible = "rockchip,rk3368-usb", "rockchip,rk3066-usb",
|
||||
"snps,dwc2";
|
||||
reg = <0x0 0xff580000 0x0 0x40000>;
|
||||
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru HCLK_OTG0>;
|
||||
clock-names = "otg";
|
||||
dr_mode = "otg";
|
||||
g-np-tx-fifo-size = <16>;
|
||||
g-rx-fifo-size = <275>;
|
||||
g-tx-fifo-size = <256 128 128 64 64 32>;
|
||||
g-use-dma;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c0: i2c@ff650000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff650000 0x0 0x1000>;
|
||||
clocks = <&cru PCLK_I2C0>;
|
||||
clock-names = "i2c";
|
||||
interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_xfer>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2c2: i2c@ff660000 {
|
||||
compatible = "rockchip,rk3368-i2c", "rockchip,rk3288-i2c";
|
||||
reg = <0x0 0xff660000 0x0 0x1000>;
|
||||
interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
clock-names = "i2c";
|
||||
clocks = <&cru PCLK_I2C2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c2_xfer>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart2: serial@ff690000 {
|
||||
compatible = "rockchip,rk3368-uart", "snps,dw-apb-uart";
|
||||
reg = <0x0 0xff690000 0x0 0x100>;
|
||||
clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
|
||||
clock-names = "baudclk", "apb_pclk";
|
||||
interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart2_xfer>;
|
||||
reg-shift = <2>;
|
||||
reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pmugrf: syscon@ff738000 {
|
||||
compatible = "rockchip,rk3368-pmugrf", "syscon";
|
||||
reg = <0x0 0xff738000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
cru: clock-controller@ff760000 {
|
||||
compatible = "rockchip,rk3368-cru";
|
||||
reg = <0x0 0xff760000 0x0 0x1000>;
|
||||
rockchip,grf = <&grf>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
grf: syscon@ff770000 {
|
||||
compatible = "rockchip,rk3368-grf", "syscon";
|
||||
reg = <0x0 0xff770000 0x0 0x1000>;
|
||||
};
|
||||
|
||||
wdt: watchdog@ff800000 {
|
||||
compatible = "rockchip,rk3368-wdt", "snps,dw-wdt";
|
||||
reg = <0x0 0xff800000 0x0 0x100>;
|
||||
clocks = <&cru PCLK_WDT>;
|
||||
interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
gic: interrupt-controller@ffb71000 {
|
||||
compatible = "arm,gic-400";
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <0>;
|
||||
|
||||
reg = <0x0 0xffb71000 0x0 0x1000>,
|
||||
<0x0 0xffb72000 0x0 0x1000>,
|
||||
<0x0 0xffb74000 0x0 0x2000>,
|
||||
<0x0 0xffb76000 0x0 0x2000>;
|
||||
interrupts = <GIC_PPI 9
|
||||
(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
|
||||
};
|
||||
|
||||
pinctrl: pinctrl {
|
||||
compatible = "rockchip,rk3368-pinctrl";
|
||||
rockchip,grf = <&grf>;
|
||||
rockchip,pmu = <&pmugrf>;
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x2>;
|
||||
ranges;
|
||||
|
||||
gpio0: gpio0@ff750000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff750000 0x0 0x100>;
|
||||
clocks = <&cru PCLK_GPIO0>;
|
||||
interrupts = <GIC_SPI 0x51 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <0x2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <0x2>;
|
||||
};
|
||||
|
||||
gpio1: gpio1@ff780000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff780000 0x0 0x100>;
|
||||
clocks = <&cru PCLK_GPIO1>;
|
||||
interrupts = <GIC_SPI 0x52 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <0x2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <0x2>;
|
||||
};
|
||||
|
||||
gpio2: gpio2@ff790000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff790000 0x0 0x100>;
|
||||
clocks = <&cru PCLK_GPIO2>;
|
||||
interrupts = <GIC_SPI 0x53 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <0x2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <0x2>;
|
||||
};
|
||||
|
||||
gpio3: gpio3@ff7a0000 {
|
||||
compatible = "rockchip,gpio-bank";
|
||||
reg = <0x0 0xff7a0000 0x0 0x100>;
|
||||
clocks = <&cru PCLK_GPIO3>;
|
||||
interrupts = <GIC_SPI 0x54 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <0x2>;
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <0x2>;
|
||||
};
|
||||
|
||||
pcfg_pull_up: pcfg-pull-up {
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
pcfg_pull_down: pcfg-pull-down {
|
||||
bias-pull-down;
|
||||
};
|
||||
|
||||
pcfg_pull_none: pcfg-pull-none {
|
||||
bias-disable;
|
||||
};
|
||||
|
||||
pcfg_pull_none_12ma: pcfg-pull-none-12ma {
|
||||
bias-disable;
|
||||
drive-strength = <12>;
|
||||
};
|
||||
|
||||
emmc {
|
||||
emmc_clk: emmc-clk {
|
||||
rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
emmc_cmd: emmc-cmd {
|
||||
rockchip,pins = <1 26 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
emmc_pwr: emmc-pwr {
|
||||
rockchip,pins = <1 27 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
emmc_bus1: emmc-bus1 {
|
||||
rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
emmc_bus4: emmc-bus4 {
|
||||
rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 19 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 20 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 21 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
emmc_bus8: emmc-bus8 {
|
||||
rockchip,pins = <1 18 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 19 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 20 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 21 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 22 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 23 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 24 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<1 25 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
gmac {
|
||||
rgmii_pins: rgmii-pins {
|
||||
rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 24 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 19 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 9 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 10 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 14 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 28 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 13 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 15 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 16 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 17 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 18 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 25 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 20 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
rmii_pins: rmii-pins {
|
||||
rockchip,pins = <3 22 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 24 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 19 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 8 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 9 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 13 RK_FUNC_1 &pcfg_pull_none_12ma>,
|
||||
<3 15 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 16 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 20 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<3 21 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0 {
|
||||
i2c0_xfer: i2c0-xfer {
|
||||
rockchip,pins = <0 6 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<0 7 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c1 {
|
||||
i2c1_xfer: i2c1-xfer {
|
||||
rockchip,pins = <2 21 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<2 22 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c2 {
|
||||
i2c2_xfer: i2c2-xfer {
|
||||
rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_none>,
|
||||
<3 31 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c3 {
|
||||
i2c3_xfer: i2c3-xfer {
|
||||
rockchip,pins = <1 16 RK_FUNC_1 &pcfg_pull_none>,
|
||||
<1 17 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c4 {
|
||||
i2c4_xfer: i2c4-xfer {
|
||||
rockchip,pins = <3 24 RK_FUNC_2 &pcfg_pull_none>,
|
||||
<3 25 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c5 {
|
||||
i2c5_xfer: i2c5-xfer {
|
||||
rockchip,pins = <3 26 RK_FUNC_2 &pcfg_pull_none>,
|
||||
<3 27 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
sdio0 {
|
||||
sdio0_bus1: sdio0-bus1 {
|
||||
rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_bus4: sdio0-bus4 {
|
||||
rockchip,pins = <2 28 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 29 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 30 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 31 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_cmd: sdio0-cmd {
|
||||
rockchip,pins = <3 0 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_clk: sdio0-clk {
|
||||
rockchip,pins = <3 1 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
sdio0_cd: sdio0-cd {
|
||||
rockchip,pins = <3 2 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_wp: sdio0-wp {
|
||||
rockchip,pins = <3 3 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_pwr: sdio0-pwr {
|
||||
rockchip,pins = <3 4 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_bkpwr: sdio0-bkpwr {
|
||||
rockchip,pins = <3 5 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdio0_int: sdio0-int {
|
||||
rockchip,pins = <3 6 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
sdmmc {
|
||||
sdmmc_clk: sdmmc-clk {
|
||||
rockchip,pins = <2 9 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
sdmmc_cmd: sdmmc-cmd {
|
||||
rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdmmc_cd: sdmcc-cd {
|
||||
rockchip,pins = <2 11 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdmmc_bus1: sdmmc-bus1 {
|
||||
rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
|
||||
sdmmc_bus4: sdmmc-bus4 {
|
||||
rockchip,pins = <2 5 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 6 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 7 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 8 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
spi0 {
|
||||
spi0_clk: spi0-clk {
|
||||
rockchip,pins = <1 29 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi0_cs0: spi0-cs0 {
|
||||
rockchip,pins = <1 24 RK_FUNC_3 &pcfg_pull_up>;
|
||||
};
|
||||
spi0_cs1: spi0-cs1 {
|
||||
rockchip,pins = <1 25 RK_FUNC_3 &pcfg_pull_up>;
|
||||
};
|
||||
spi0_tx: spi0-tx {
|
||||
rockchip,pins = <1 23 RK_FUNC_3 &pcfg_pull_up>;
|
||||
};
|
||||
spi0_rx: spi0-rx {
|
||||
rockchip,pins = <1 22 RK_FUNC_3 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
spi1 {
|
||||
spi1_clk: spi1-clk {
|
||||
rockchip,pins = <1 14 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi1_cs0: spi1-cs0 {
|
||||
rockchip,pins = <1 15 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi1_cs1: spi1-cs1 {
|
||||
rockchip,pins = <3 28 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi1_rx: spi1-rx {
|
||||
rockchip,pins = <1 16 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi1_tx: spi1-tx {
|
||||
rockchip,pins = <1 17 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
spi2 {
|
||||
spi2_clk: spi2-clk {
|
||||
rockchip,pins = <0 12 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi2_cs0: spi2-cs0 {
|
||||
rockchip,pins = <0 13 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi2_rx: spi2-rx {
|
||||
rockchip,pins = <0 10 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
spi2_tx: spi2-tx {
|
||||
rockchip,pins = <0 11 RK_FUNC_2 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
|
||||
uart0 {
|
||||
uart0_xfer: uart0-xfer {
|
||||
rockchip,pins = <2 24 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<2 25 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart0_cts: uart0-cts {
|
||||
rockchip,pins = <2 26 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart0_rts: uart0-rts {
|
||||
rockchip,pins = <2 27 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
uart1 {
|
||||
uart1_xfer: uart1-xfer {
|
||||
rockchip,pins = <0 20 RK_FUNC_3 &pcfg_pull_up>,
|
||||
<0 21 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart1_cts: uart1-cts {
|
||||
rockchip,pins = <0 22 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart1_rts: uart1-rts {
|
||||
rockchip,pins = <0 23 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
uart2 {
|
||||
uart2_xfer: uart2-xfer {
|
||||
rockchip,pins = <2 6 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<2 5 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
/* no rts / cts for uart2 */
|
||||
};
|
||||
|
||||
uart3 {
|
||||
uart3_xfer: uart3-xfer {
|
||||
rockchip,pins = <3 29 RK_FUNC_2 &pcfg_pull_up>,
|
||||
<3 30 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart3_cts: uart3-cts {
|
||||
rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart3_rts: uart3-rts {
|
||||
rockchip,pins = <3 17 RK_FUNC_2 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
|
||||
uart4 {
|
||||
uart4_xfer: uart4-xfer {
|
||||
rockchip,pins = <0 27 RK_FUNC_3 &pcfg_pull_up>,
|
||||
<0 26 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart4_cts: uart4-cts {
|
||||
rockchip,pins = <0 24 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
uart4_rts: uart4-rts {
|
||||
rockchip,pins = <0 25 RK_FUNC_3 &pcfg_pull_none>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -16,28 +16,28 @@
|
|||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cpu@0 {
|
||||
cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x0>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu@1 {
|
||||
cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x1>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu@2 {
|
||||
cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x2>;
|
||||
enable-method = "psci";
|
||||
};
|
||||
|
||||
cpu@3 {
|
||||
cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a53", "arm,armv8";
|
||||
reg = <0x0 0x3>;
|
||||
|
@ -75,14 +75,103 @@
|
|||
};
|
||||
};
|
||||
|
||||
/* funnel input port 0~3 is reserved for ETMs */
|
||||
/* funnel input port 0-4 */
|
||||
port@1 {
|
||||
reg = <0>;
|
||||
funnel_in_port0: endpoint {
|
||||
slave-mode;
|
||||
remote-endpoint = <&etm0_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <1>;
|
||||
funnel_in_port1: endpoint {
|
||||
slave-mode;
|
||||
remote-endpoint = <&etm1_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <2>;
|
||||
funnel_in_port2: endpoint {
|
||||
slave-mode;
|
||||
remote-endpoint = <&etm2_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@4 {
|
||||
reg = <3>;
|
||||
funnel_in_port3: endpoint {
|
||||
slave-mode;
|
||||
remote-endpoint = <&etm3_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <4>;
|
||||
funnel_in_port4: endpoint {
|
||||
slave-mode;
|
||||
remote-endpoint = <&stm_out>;
|
||||
};
|
||||
};
|
||||
/* Other input ports aren't connected to anyone */
|
||||
};
|
||||
};
|
||||
|
||||
etm@10440000 {
|
||||
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||||
reg = <0 0x10440000 0 0x1000>;
|
||||
|
||||
cpu = <&cpu0>;
|
||||
clocks = <&clk26mhz>;
|
||||
clock-names = "apb_pclk";
|
||||
port {
|
||||
etm0_out: endpoint {
|
||||
remote-endpoint = <&funnel_in_port0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
etm@10540000 {
|
||||
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||||
reg = <0 0x10540000 0 0x1000>;
|
||||
|
||||
cpu = <&cpu1>;
|
||||
clocks = <&clk26mhz>;
|
||||
clock-names = "apb_pclk";
|
||||
port {
|
||||
etm1_out: endpoint {
|
||||
remote-endpoint = <&funnel_in_port1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
etm@10640000 {
|
||||
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||||
reg = <0 0x10640000 0 0x1000>;
|
||||
|
||||
cpu = <&cpu2>;
|
||||
clocks = <&clk26mhz>;
|
||||
clock-names = "apb_pclk";
|
||||
port {
|
||||
etm2_out: endpoint {
|
||||
remote-endpoint = <&funnel_in_port2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
etm@10740000 {
|
||||
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||||
reg = <0 0x10740000 0 0x1000>;
|
||||
|
||||
cpu = <&cpu3>;
|
||||
clocks = <&clk26mhz>;
|
||||
clock-names = "apb_pclk";
|
||||
port {
|
||||
etm3_out: endpoint {
|
||||
remote-endpoint = <&funnel_in_port3>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -32,6 +32,10 @@
|
|||
};
|
||||
};
|
||||
|
||||
&can0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gem0 {
|
||||
status = "okay";
|
||||
phy-handle = <&phy0>;
|
||||
|
@ -42,6 +46,91 @@
|
|||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
eeprom@54 {
|
||||
compatible = "at,24c64";
|
||||
reg = <0x54>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
eeprom@55 {
|
||||
compatible = "at,24c64";
|
||||
reg = <0x55>;
|
||||
};
|
||||
};
|
||||
|
||||
&sata {
|
||||
status = "okay";
|
||||
ceva,broken-gen2;
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhci1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
num-cs = <1>;
|
||||
spi0_flash0: spi0_flash0@0 {
|
||||
compatible = "m25p80";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
|
||||
spi0_flash0@00000000 {
|
||||
label = "spi0_flash0";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spi1 {
|
||||
status = "okay";
|
||||
num-cs = <1>;
|
||||
spi1_flash0: spi1_flash0@0 {
|
||||
compatible = "m25p80";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
spi-max-frequency = <50000000>;
|
||||
reg = <0>;
|
||||
|
||||
spi1_flash0@00000000 {
|
||||
label = "spi1_flash0";
|
||||
reg = <0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb0 {
|
||||
status = "okay";
|
||||
dr_mode = "peripheral";
|
||||
maximum-speed = "high-speed";
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
maximum-speed = "high-speed";
|
||||
};
|
||||
|
||||
&watchdog0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
|
|
@ -96,12 +96,193 @@
|
|||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
can0: can@ff060000 {
|
||||
compatible = "xlnx,zynq-can-1.0";
|
||||
status = "disabled";
|
||||
clocks = <&misc_clk &misc_clk>;
|
||||
clock-names = "can_clk", "pclk";
|
||||
reg = <0x0 0xff060000 0x1000>;
|
||||
interrupts = <0 23 4>;
|
||||
interrupt-parent = <&gic>;
|
||||
tx-fifo-depth = <0x40>;
|
||||
rx-fifo-depth = <0x40>;
|
||||
};
|
||||
|
||||
can1: can@ff070000 {
|
||||
compatible = "xlnx,zynq-can-1.0";
|
||||
status = "disabled";
|
||||
clocks = <&misc_clk &misc_clk>;
|
||||
clock-names = "can_clk", "pclk";
|
||||
reg = <0x0 0xff070000 0x1000>;
|
||||
interrupts = <0 24 4>;
|
||||
interrupt-parent = <&gic>;
|
||||
tx-fifo-depth = <0x40>;
|
||||
rx-fifo-depth = <0x40>;
|
||||
};
|
||||
|
||||
misc_clk: misc_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <25000000>;
|
||||
};
|
||||
|
||||
gpio: gpio@ff0a0000 {
|
||||
compatible = "xlnx,zynqmp-gpio-1.0";
|
||||
status = "disabled";
|
||||
#gpio-cells = <0x2>;
|
||||
clocks = <&misc_clk>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 16 4>;
|
||||
reg = <0x0 0xff0a0000 0x1000>;
|
||||
};
|
||||
|
||||
gem0: ethernet@ff0b0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 57 4>, <0 57 4>;
|
||||
reg = <0x0 0xff0b0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gem1: ethernet@ff0c0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 59 4>, <0 59 4>;
|
||||
reg = <0x0 0xff0c0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gem2: ethernet@ff0d0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 61 4>, <0 61 4>;
|
||||
reg = <0x0 0xff0d0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gem3: ethernet@ff0e0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 63 4>, <0 63 4>;
|
||||
reg = <0x0 0xff0e0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c_clk: i2c_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0x0>;
|
||||
clock-frequency = <111111111>;
|
||||
};
|
||||
|
||||
i2c0: i2c@ff020000 {
|
||||
compatible = "cdns,i2c-r1p10";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 17 4>;
|
||||
reg = <0x0 0xff020000 0x1000>;
|
||||
clocks = <&i2c_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c1: i2c@ff030000 {
|
||||
compatible = "cdns,i2c-r1p10";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 18 4>;
|
||||
reg = <0x0 0xff030000 0x1000>;
|
||||
clocks = <&i2c_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
sata_clk: sata_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <75000000>;
|
||||
};
|
||||
|
||||
sata: ahci@fd0c0000 {
|
||||
compatible = "ceva,ahci-1v84";
|
||||
status = "disabled";
|
||||
reg = <0x0 0xfd0c0000 0x2000>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 133 4>;
|
||||
clocks = <&sata_clk>;
|
||||
};
|
||||
|
||||
sdhci0: sdhci@ff160000 {
|
||||
compatible = "arasan,sdhci-8.9a";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 48 4>;
|
||||
reg = <0x0 0xff160000 0x1000>;
|
||||
clock-names = "clk_xin", "clk_ahb";
|
||||
clocks = <&misc_clk>, <&misc_clk>;
|
||||
};
|
||||
|
||||
sdhci1: sdhci@ff170000 {
|
||||
compatible = "arasan,sdhci-8.9a";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 49 4>;
|
||||
reg = <0x0 0xff170000 0x1000>;
|
||||
clock-names = "clk_xin", "clk_ahb";
|
||||
clocks = <&misc_clk>, <&misc_clk>;
|
||||
};
|
||||
|
||||
smmu: smmu@fd800000 {
|
||||
compatible = "arm,mmu-500";
|
||||
reg = <0x0 0xfd800000 0x20000>;
|
||||
#global-interrupts = <1>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 157 4>,
|
||||
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
|
||||
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
|
||||
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
|
||||
<0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>;
|
||||
};
|
||||
|
||||
spi0: spi@ff040000 {
|
||||
compatible = "cdns,spi-r1p6";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 19 4>;
|
||||
reg = <0x0 0xff040000 0x1000>;
|
||||
clock-names = "ref_clk", "pclk";
|
||||
clocks = <&misc_clk &misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
spi1: spi@ff050000 {
|
||||
compatible = "cdns,spi-r1p6";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 20 4>;
|
||||
reg = <0x0 0xff050000 0x1000>;
|
||||
clock-names = "ref_clk", "pclk";
|
||||
clocks = <&misc_clk &misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
ttc0: timer@ff110000 {
|
||||
compatible = "cdns,ttc";
|
||||
status = "disabled";
|
||||
|
@ -162,132 +343,22 @@
|
|||
clocks = <&misc_clk &misc_clk>;
|
||||
};
|
||||
|
||||
gpio: gpio@ff0a0000 {
|
||||
compatible = "xlnx,zynq-gpio-1.0";
|
||||
status = "disabled";
|
||||
#gpio-cells = <0x2>;
|
||||
clocks = <&misc_clk>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 16 4>;
|
||||
reg = <0x0 0xff0a0000 0x1000>;
|
||||
};
|
||||
|
||||
gem0: ethernet@ff0b0000 {
|
||||
compatible = "cdns,gem";
|
||||
usb0: usb@fe200000 {
|
||||
compatible = "snps,dwc3";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 57 4>, <0 57 4>;
|
||||
reg = <0x0 0xff0b0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gem1: ethernet@ff0c0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 59 4>, <0 59 4>;
|
||||
reg = <0x0 0xff0c0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gem2: ethernet@ff0d0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 61 4>, <0 61 4>;
|
||||
reg = <0x0 0xff0d0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
gem3: ethernet@ff0e0000 {
|
||||
compatible = "cdns,gem";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 63 4>, <0 63 4>;
|
||||
reg = <0x0 0xff0e0000 0x1000>;
|
||||
clock-names = "pclk", "hclk", "tx_clk";
|
||||
clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
spi0: spi@ff040000 {
|
||||
compatible = "cdns,spi-r1p6";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 19 4>;
|
||||
reg = <0x0 0xff040000 0x1000>;
|
||||
clock-names = "ref_clk", "pclk";
|
||||
clocks = <&misc_clk &misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
spi1: spi@ff050000 {
|
||||
compatible = "cdns,spi-r1p6";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 20 4>;
|
||||
reg = <0x0 0xff050000 0x1000>;
|
||||
clock-names = "ref_clk", "pclk";
|
||||
clocks = <&misc_clk &misc_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c_clk: i2c_clk {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0x0>;
|
||||
clock-frequency = <111111111>;
|
||||
};
|
||||
|
||||
i2c0: i2c@ff020000 {
|
||||
compatible = "cdns,i2c-r1p10";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 17 4>;
|
||||
reg = <0x0 0xff020000 0x1000>;
|
||||
clocks = <&i2c_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c1: i2c@ff030000 {
|
||||
compatible = "cdns,i2c-r1p10";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 18 4>;
|
||||
reg = <0x0 0xff030000 0x1000>;
|
||||
clocks = <&i2c_clk>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
sdhci0: sdhci@ff160000 {
|
||||
compatible = "arasan,sdhci-8.9a";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 48 4>;
|
||||
reg = <0x0 0xff160000 0x1000>;
|
||||
interrupts = <0 65 4>;
|
||||
reg = <0x0 0xfe200000 0x40000>;
|
||||
clock-names = "clk_xin", "clk_ahb";
|
||||
clocks = <&misc_clk>, <&misc_clk>;
|
||||
};
|
||||
|
||||
sdhci1: sdhci@ff170000 {
|
||||
compatible = "arasan,sdhci-8.9a";
|
||||
usb1: usb@fe300000 {
|
||||
compatible = "snps,dwc3";
|
||||
status = "disabled";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 49 4>;
|
||||
reg = <0x0 0xff170000 0x1000>;
|
||||
interrupts = <0 70 4>;
|
||||
reg = <0x0 0xfe300000 0x40000>;
|
||||
clock-names = "clk_xin", "clk_ahb";
|
||||
clocks = <&misc_clk>, <&misc_clk>;
|
||||
};
|
||||
|
|
|
@ -31,10 +31,13 @@ CONFIG_MODULES=y
|
|||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
CONFIG_ARCH_BCM_IPROC=y
|
||||
CONFIG_ARCH_BERLIN=y
|
||||
CONFIG_ARCH_EXYNOS7=y
|
||||
CONFIG_ARCH_FSL_LS2085A=y
|
||||
CONFIG_ARCH_HISI=y
|
||||
CONFIG_ARCH_MEDIATEK=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_ARCH_SEATTLE=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
CONFIG_ARCH_TEGRA_132_SOC=y
|
||||
|
@ -102,6 +105,7 @@ CONFIG_SERIO_AMBAKMI=y
|
|||
CONFIG_LEGACY_PTY_COUNT=16
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_8250_MT6577=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
|
|
|
@ -117,7 +117,7 @@ config PCI_VERSATILE
|
|||
|
||||
config PCIE_IPROC
|
||||
tristate "Broadcom iProc PCIe controller"
|
||||
depends on OF && ARM
|
||||
depends on OF && (ARM || ARM64)
|
||||
default n
|
||||
help
|
||||
This enables the iProc PCIe core controller support for Broadcom's
|
||||
|
@ -136,7 +136,7 @@ config PCIE_IPROC_PLATFORM
|
|||
|
||||
config PCIE_IPROC_BCMA
|
||||
tristate "Broadcom iProc PCIe BCMA bus driver"
|
||||
depends on ARCH_BCM_IPROC || (ARM && COMPILE_TEST)
|
||||
depends on ARM && (ARCH_BCM_IPROC || COMPILE_TEST)
|
||||
select PCIE_IPROC
|
||||
select BCMA
|
||||
select PCI_DOMAINS
|
||||
|
|
Loading…
Reference in a new issue