Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM 64-bit DT updates from Arnd Bergmann:
"We continue ramping up platform support for 64-bit ARM machines, with
111 individual non-merge changesets touching 21 platforms.

The LG1312 platform is completely new and is the first ARM platform by
LG that we support in the mainline kernel. Two other SoCs got added
that are updated versions of existing SoC families, so the port mainly
consists of new dts files:

- The Hisilicon Hip06/D03 is the latest server platform from
Huawei/Hisilicon, and follows the Hip05/D02 platform.

- Rockchip RK3399 follows the 32-bit RK3288 that is popular in
low-end Chromebooks and the 64-bit RK3368 that is mainly found in
chinese Android TV boxes.

The 96Boards HiKey based on the Hisilicon Hi6220 (Kirin 620) gets a
long-awaited overhaul with a lot of devices enabled in the DT, so it
should be much more usable with a mainline kernel now. See also

https://plus.google.com/111524780435806926688/posts/PeGb2VsNhJd

A lot of work went into enabling new device drivers on existing
machines, but we also have a couple of new commercially available
machines:

- Google Pixel C laptop based on Tegra210
- Hardkernel Odroid C2 Based on Amlogic Meson GXBB (S905)
- Geekbuying GeekBox based on Rockchip RK3368

And finally, a couple of reference or development platforms that are
not end-user platforms but are used for trying out the respective SoC
platforms:

- Amlogic Meson GXBB P200 and P201 development systems
- NXP Layerscape 1043A QDS development board
- Hisilicon Hip06 D03 server board, as mentioned above
- LG1312 Reference Design
- RK3399 Evaluation Board"

* tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (104 commits)
arm64: dts: marvell: add XOR node for Armada 3700 SoC
dt-bindings: document rockchip rk3399-evb board
arm64: dts: rockchip: add dts file for RK3399 evaluation board
arm64: dts: rockchip: add core dtsi file for RK3399 SoCs
dt-bindings: rockchip-dw-mshc: add description for rk3399
arm64: dts: marvell: Use a SoC-specific compatible for xHCI on Armada37xx
arm64: dts: marvell: Rename armada-37xx USB node
arm64: dts: marvell: Clean up armada-3720-db
Documentation: arm64: Add Hisilicon Hip06 D03 dts binding
arm64: dts: Add initial dts for Hisilicon Hip06 D03 board
arm64: dts: hip05: Add nor flash support
arm64: dts: hip05: fix its node without msi-cells
arm64: dts: r8a7795: Don't disable referenced optional clocks
arm64: dts: salvator-x: populate EXTALR
arm64: dts: r8a7795: enable PCIe on Salvator-X
arm64: dts: r8a7795: Add PCIe nodes
arm64: tegra: Add IOMMU node to GM20B on Tegra210
arm64: tegra: Add reference clock to GM20B on Tegra210
dt-bindings: Add documentation for GM20B GPU
dt-bindings: gk20a: Document iommus property
...

+8084 -527
+3
Documentation/devicetree/bindings/arm/amlogic.txt
··· 25 25 - "tronsmart,vega-s95-pro", "tronsmart,vega-s95" (Meson gxbb) 26 26 - "tronsmart,vega-s95-meta", "tronsmart,vega-s95" (Meson gxbb) 27 27 - "tronsmart,vega-s95-telos", "tronsmart,vega-s95" (Meson gxbb) 28 + - "hardkernel,odroid-c2" (Meson gxbb) 29 + - "amlogic,p200" (Meson gxbb) 30 + - "amlogic,p201" (Meson gxbb)
+4
Documentation/devicetree/bindings/arm/fsl.txt
··· 135 135 Required root node properties: 136 136 - compatible = "fsl,ls1043a-rdb", "fsl,ls1043a"; 137 137 138 + LS1043A ARMv8 based QDS Board 139 + Required root node properties: 140 + - compatible = "fsl,ls1043a-qds", "fsl,ls1043a"; 141 + 138 142 LS2080A ARMv8 based Simulator model 139 143 Required root node properties: 140 144 - compatible = "fsl,ls2080a-simu", "fsl,ls2080a";
+14 -10
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
··· 1 1 Hisilicon Platforms Device Tree Bindings 2 2 ---------------------------------------------------- 3 - Hi6220 SoC 4 - Required root node properties: 5 - - compatible = "hisilicon,hi6220"; 6 - 7 3 Hi4511 Board 8 4 Required root node properties: 9 5 - compatible = "hisilicon,hi3620-hi4511"; 10 6 11 - HiP04 D01 Board 7 + Hi6220 SoC 12 8 Required root node properties: 13 - - compatible = "hisilicon,hip04-d01"; 14 - 15 - HiP01 ca9x2 Board 16 - Required root node properties: 17 - - compatible = "hisilicon,hip01-ca9x2"; 9 + - compatible = "hisilicon,hi6220"; 18 10 19 11 HiKey Board 20 12 Required root node properties: 21 13 - compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220"; 22 14 15 + HiP01 ca9x2 Board 16 + Required root node properties: 17 + - compatible = "hisilicon,hip01-ca9x2"; 18 + 19 + HiP04 D01 Board 20 + Required root node properties: 21 + - compatible = "hisilicon,hip04-d01"; 22 + 23 23 HiP05 D02 Board 24 24 Required root node properties: 25 25 - compatible = "hisilicon,hip05-d02"; 26 + 27 + HiP06 D03 Board 28 + Required root node properties: 29 + - compatible = "hisilicon,hip06-d03"; 26 30 27 31 Hisilicon system controller 28 32
+9 -1
Documentation/devicetree/bindings/arm/rockchip.txt
··· 39 39 Required root node properties: 40 40 - compatible = "netxeon,r89", "rockchip,rk3288"; 41 41 42 + - GeekBuying GeekBox: 43 + Required root node properties: 44 + - compatible = "geekbuying,geekbox", "rockchip,rk3368"; 45 + 42 46 - Google Brain (dev-board): 43 47 Required root node properties: 44 48 - compatible = "google,veyron-brain-rev0", "google,veyron-brain", ··· 105 101 106 102 - Rockchip RK3228 Evaluation board: 107 103 Required root node properties: 108 - - compatible = "rockchip,rk3228-evb", "rockchip,rk3228"; 104 + - compatible = "rockchip,rk3228-evb", "rockchip,rk3228"; 105 + 106 + - Rockchip RK3399 evb: 107 + Required root node properties: 108 + - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
+161
Documentation/devicetree/bindings/gpio/nvidia,tegra186-gpio.txt
··· 1 + NVIDIA Tegra186 GPIO controllers 2 + 3 + Tegra186 contains two GPIO controllers; a main controller and an "AON" 4 + controller. This binding document applies to both controllers. The register 5 + layouts for the controllers share many similarities, but also some significant 6 + differences. Hence, this document describes closely related but different 7 + bindings and compatible values. 8 + 9 + The Tegra186 GPIO controller allows software to set the IO direction of, and 10 + read/write the value of, numerous GPIO signals. Routing of GPIO signals to 11 + package balls is under the control of a separate pin controller HW block. Two 12 + major sets of registers exist: 13 + 14 + a) Security registers, which allow configuration of allowed access to the GPIO 15 + register set. These registers exist in a single contiguous block of physical 16 + address space. The size of this block, and the security features available, 17 + varies between the different GPIO controllers. 18 + 19 + Access to this set of registers is not necessary in all circumstances. Code 20 + that wishes to configure access to the GPIO registers needs access to these 21 + registers to do so. Code which simply wishes to read or write GPIO data does not 22 + need access to these registers. 23 + 24 + b) GPIO registers, which allow manipulation of the GPIO signals. In some GPIO 25 + controllers, these registers are exposed via multiple "physical aliases" in 26 + address space, each of which access the same underlying state. See the hardware 27 + documentation for rationale. Any particular GPIO client is expected to access 28 + just one of these physical aliases. 29 + 30 + Tegra HW documentation describes a unified naming convention for all GPIOs 31 + implemented by the SoC. Each GPIO is assigned to a port, and a port may control 32 + a number of GPIOs. Thus, each GPIO is named according to an alphabetical port 33 + name and an integer GPIO name within the port. For example, GPIO_PA0, GPIO_PN6, 34 + or GPIO_PCC3. 35 + 36 + The number of ports implemented by each GPIO controller varies. The number of 37 + implemented GPIOs within each port varies. GPIO registers within a controller 38 + are grouped and laid out according to the port they affect. 39 + 40 + The mapping from port name to the GPIO controller that implements that port, and 41 + the mapping from port name to register offset within a controller, are both 42 + extremely non-linear. The header file <dt-bindings/gpio/tegra186-gpio.h> 43 + describes the port-level mapping. In that file, the naming convention for ports 44 + matches the HW documentation. The values chosen for the names are alphabetically 45 + sorted within a particular controller. Drivers need to map between the DT GPIO 46 + IDs and HW register offsets using a lookup table. 47 + 48 + Each GPIO controller can generate a number of interrupt signals. Each signal 49 + represents the aggregate status for all GPIOs within a set of ports. Thus, the 50 + number of interrupt signals generated by a controller varies as a rough function 51 + of the number of ports it implements. Note that the HW documentation refers to 52 + both the overall controller HW module and the sets-of-ports as "controllers". 53 + 54 + Each GPIO controller in fact generates multiple interrupts signals for each set 55 + of ports. Each GPIO may be configured to feed into a specific one of the 56 + interrupt signals generated by a set-of-ports. The intent is for each generated 57 + signal to be routed to a different CPU, thus allowing different CPUs to each 58 + handle subsets of the interrupts within a port. The status of each of these 59 + per-port-set signals is reported via a separate register. Thus, a driver needs 60 + to know which status register to observe. This binding currently defines no 61 + configuration mechanism for this. By default, drivers should use register 62 + GPIO_${port}_INTERRUPT_STATUS_G1_0. Future revisions to the binding could 63 + define a property to configure this. 64 + 65 + Required properties: 66 + - compatible 67 + Array of strings. 68 + One of: 69 + - "nvidia,tegra186-gpio". 70 + - "nvidia,tegra186-gpio-aon". 71 + - reg-names 72 + Array of strings. 73 + Contains a list of names for the register spaces described by the reg 74 + property. May contain the following entries, in any order: 75 + - "gpio": Mandatory. GPIO control registers. This may cover either: 76 + a) The single physical alias that this OS should use. 77 + b) All physical aliases that exist in the controller. This is 78 + appropriate when the OS is responsible for managing assignment of 79 + the physical aliases. 80 + - "security": Optional. Security configuration registers. 81 + Users of this binding MUST look up entries in the reg property by name, 82 + using this reg-names property to do so. 83 + - reg 84 + Array of (physical base address, length) tuples. 85 + Must contain one entry per entry in the reg-names property, in a matching 86 + order. 87 + - interrupts 88 + Array of interrupt specifiers. 89 + The interrupt outputs from the HW block, one per set of ports, in the 90 + order the HW manual describes them. The number of entries required varies 91 + depending on compatible value: 92 + - "nvidia,tegra186-gpio": 6 entries. 93 + - "nvidia,tegra186-gpio-aon": 1 entry. 94 + - gpio-controller 95 + Boolean. 96 + Marks the device node as a GPIO controller/provider. 97 + - #gpio-cells 98 + Single-cell integer. 99 + Must be <2>. 100 + Indicates how many cells are used in a consumer's GPIO specifier. 101 + In the specifier: 102 + - The first cell is the pin number. 103 + See <dt-bindings/gpio/tegra186-gpio.h>. 104 + - The second cell contains flags: 105 + - Bit 0 specifies polarity 106 + - 0: Active-high (normal). 107 + - 1: Active-low (inverted). 108 + - interrupt-controller 109 + Boolean. 110 + Marks the device node as an interrupt controller/provider. 111 + - #interrupt-cells 112 + Single-cell integer. 113 + Must be <2>. 114 + Indicates how many cells are used in a consumer's interrupt specifier. 115 + In the specifier: 116 + - The first cell is the GPIO number. 117 + See <dt-bindings/gpio/tegra186-gpio.h>. 118 + - The second cell is contains flags: 119 + - Bits [3:0] indicate trigger type and level: 120 + - 1: Low-to-high edge triggered. 121 + - 2: High-to-low edge triggered. 122 + - 4: Active high level-sensitive. 123 + - 8: Active low level-sensitive. 124 + Valid combinations are 1, 2, 3, 4, 8. 125 + 126 + Example: 127 + 128 + #include <dt-bindings/interrupt-controller/irq.h> 129 + 130 + gpio@2200000 { 131 + compatible = "nvidia,tegra186-gpio"; 132 + reg-names = "security", "gpio"; 133 + reg = 134 + <0x0 0x2200000 0x0 0x10000>, 135 + <0x0 0x2210000 0x0 0x10000>; 136 + interrupts = 137 + <0 47 IRQ_TYPE_LEVEL_HIGH>, 138 + <0 50 IRQ_TYPE_LEVEL_HIGH>, 139 + <0 53 IRQ_TYPE_LEVEL_HIGH>, 140 + <0 56 IRQ_TYPE_LEVEL_HIGH>, 141 + <0 59 IRQ_TYPE_LEVEL_HIGH>, 142 + <0 180 IRQ_TYPE_LEVEL_HIGH>; 143 + gpio-controller; 144 + #gpio-cells = <2>; 145 + interrupt-controller; 146 + #interrupt-cells = <2>; 147 + }; 148 + 149 + gpio@c2f0000 { 150 + compatible = "nvidia,tegra186-gpio-aon"; 151 + reg-names = "security", "gpio"; 152 + reg = 153 + <0x0 0xc2f0000 0x0 0x1000>, 154 + <0x0 0xc2f1000 0x0 0x1000>; 155 + interrupts = 156 + <0 60 IRQ_TYPE_LEVEL_HIGH>; 157 + gpio-controller; 158 + #gpio-cells = <2>; 159 + interrupt-controller; 160 + #interrupt-cells = <2>; 161 + };
+32 -5
Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt
··· 1 - NVIDIA GK20A Graphics Processing Unit 1 + NVIDIA Tegra Graphics Processing Units 2 2 3 3 Required properties: 4 - - compatible: "nvidia,<chip>-<gpu>" 4 + - compatible: "nvidia,<gpu>" 5 5 Currently recognized values: 6 - - nvidia,tegra124-gk20a 6 + - nvidia,gk20a 7 + - nvidia,gm20b 7 8 - reg: Physical base address and length of the controller's registers. 8 9 Must contain two entries: 9 10 - first entry for bar0 ··· 20 19 - clock-names: Must include the following entries: 21 20 - gpu 22 21 - pwr 22 + If the compatible string is "nvidia,gm20b", then the following clock 23 + is also required: 24 + - ref 23 25 - resets: Must contain an entry for each entry in reset-names. 24 26 See ../reset/reset.txt for details. 25 27 - reset-names: Must include the following entries: 26 28 - gpu 27 29 28 - Example: 30 + Optional properties: 31 + - iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details. 29 32 30 - gpu@0,57000000 { 33 + Example for GK20A: 34 + 35 + gpu@57000000 { 31 36 compatible = "nvidia,gk20a"; 32 37 reg = <0x0 0x57000000 0x0 0x01000000>, 33 38 <0x0 0x58000000 0x0 0x01000000>; ··· 46 39 clock-names = "gpu", "pwr"; 47 40 resets = <&tegra_car 184>; 48 41 reset-names = "gpu"; 42 + iommus = <&mc TEGRA_SWGROUP_GPU>; 43 + status = "disabled"; 44 + }; 45 + 46 + Example for GM20B: 47 + 48 + gpu@57000000 { 49 + compatible = "nvidia,gm20b"; 50 + reg = <0x0 0x57000000 0x0 0x01000000>, 51 + <0x0 0x58000000 0x0 0x01000000>; 52 + interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 53 + <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 54 + interrupt-names = "stall", "nonstall"; 55 + clocks = <&tegra_car TEGRA210_CLK_GPU>, 56 + <&tegra_car TEGRA210_CLK_PLL_P_OUT5>, 57 + <&tegra_car TEGRA210_CLK_PLL_G_REF>; 58 + clock-names = "gpu", "pwr", "ref"; 59 + resets = <&tegra_car 184>; 60 + reset-names = "gpu"; 61 + iommus = <&mc TEGRA_SWGROUP_GPU>; 49 62 status = "disabled"; 50 63 };
+80 -1
Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
··· 30 30 region may not be present in some scenarios, such 31 31 as in the device tree presented to a virtual machine. 32 32 33 + - msi-parent 34 + Value type: <phandle> 35 + Definition: Must be present and point to the MSI controller node 36 + handling message interrupts for the MC. 37 + 38 + - ranges 39 + Value type: <prop-encoded-array> 40 + Definition: A standard property. Defines the mapping between the child 41 + MC address space and the parent system address space. 42 + 43 + The MC address space is defined by 3 components: 44 + <region type> <offset hi> <offset lo> 45 + 46 + Valid values for region type are 47 + 0x0 - MC portals 48 + 0x1 - QBMAN portals 49 + 50 + - #address-cells 51 + Value type: <u32> 52 + Definition: Must be 3. (see definition in 'ranges' property) 53 + 54 + - #size-cells 55 + Value type: <u32> 56 + Definition: Must be 1. 57 + 58 + Sub-nodes: 59 + 60 + The fsl-mc node may optionally have dpmac sub-nodes that describe 61 + the relationship between the Ethernet MACs which belong to the MC 62 + and the Ethernet PHYs on the system board. 63 + 64 + The dpmac nodes must be under a node named "dpmacs" which contains 65 + the following properties: 66 + 67 + - #address-cells 68 + Value type: <u32> 69 + Definition: Must be present if dpmac sub-nodes are defined and must 70 + have a value of 1. 71 + 72 + - #size-cells 73 + Value type: <u32> 74 + Definition: Must be present if dpmac sub-nodes are defined and must 75 + have a value of 0. 76 + 77 + These nodes must have the following properties: 78 + 79 + - compatible 80 + Value type: <string> 81 + Definition: Must be "fsl,qoriq-mc-dpmac". 82 + 83 + - reg 84 + Value type: <prop-encoded-array> 85 + Definition: Specifies the id of the dpmac. 86 + 87 + - phy-handle 88 + Value type: <phandle> 89 + Definition: Specifies the phandle to the PHY device node associated 90 + with the this dpmac. 91 + 33 92 Example: 34 93 35 94 fsl_mc: fsl-mc@80c000000 { 36 95 compatible = "fsl,qoriq-mc"; 37 96 reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */ 38 97 <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ 39 - }; 98 + msi-parent = <&its>; 99 + #address-cells = <3>; 100 + #size-cells = <1>; 40 101 102 + /* 103 + * Region type 0x0 - MC portals 104 + * Region type 0x1 - QBMAN portals 105 + */ 106 + ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000 107 + 0x1 0x0 0x0 0x8 0x18000000 0x8000000>; 108 + 109 + dpmacs { 110 + #address-cells = <1>; 111 + #size-cells = <0>; 112 + 113 + dpmac@1 { 114 + compatible = "fsl,qoriq-mc-dpmac"; 115 + reg = <1>; 116 + phy-handle = <&mdio0_phy0>; 117 + } 118 + } 119 + };
+1
Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt
··· 15 15 - "rockchip,rk3288-dw-mshc": for Rockchip RK3288 16 16 - "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3036 17 17 - "rockchip,rk3368-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3368 18 + - "rockchip,rk3399-dw-mshc", "rockchip,rk3288-dw-mshc": for Rockchip RK3399 18 19 19 20 Optional Properties: 20 21 * clocks: from common clock binding: if ciu_drive and ciu_sample are
+2 -1
Documentation/devicetree/bindings/mtd/fsl-quadspi.txt
··· 5 5 "fsl,imx7d-qspi", "fsl,imx6ul-qspi", 6 6 "fsl,ls1021a-qspi" 7 7 or 8 - "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi" 8 + "fsl,ls2080a-qspi" followed by "fsl,ls1021a-qspi", 9 + "fsl,ls1043a-qspi" followed by "fsl,ls1021a-qspi" 9 10 - reg : the first contains the register location and length, 10 11 the second contains the memory mapping address and length 11 12 - reg-names: Should contain the reg names "QuadSPI" and "QuadSPI-memory"
+4 -1
Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt
··· 1 1 ARM Freescale DSPI controller 2 2 3 3 Required properties: 4 - - compatible : "fsl,vf610-dspi", "fsl,ls1021a-v1.0-dspi", "fsl,ls2085a-dspi" 4 + - compatible : "fsl,vf610-dspi", "fsl,ls1021a-v1.0-dspi", 5 + "fsl,ls2085a-dspi" 6 + or 7 + "fsl,ls2080a-dspi" followed by "fsl,ls2085a-dspi" 5 8 - reg : Offset and length of the register set for the device 6 9 - interrupts : Should contain SPI controller interrupt 7 10 - clocks: from common clock binding: handle to dspi clock.
+1
Documentation/devicetree/bindings/usb/usb-xhci.txt
··· 4 4 - compatible: should be one or more of 5 5 6 6 - "generic-xhci" for generic XHCI device 7 + - "marvell,armada3700-xhci" for Armada 37xx SoCs 7 8 - "marvell,armada-375-xhci" for Armada 375 SoCs 8 9 - "marvell,armada-380-xhci" for Armada 38x SoCs 9 10 - "renesas,xhci-r8a7790" for r8a7790 SoC
+1
Documentation/devicetree/bindings/vendor-prefixes.txt
··· 93 93 focaltech FocalTech Systems Co.,Ltd 94 94 fsl Freescale Semiconductor 95 95 ge General Electric Company 96 + geekbuying GeekBuying 96 97 GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. 97 98 gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. 98 99 geniatech Geniatech, Inc.
+1
arch/arm64/boot/dts/Makefile
··· 18 18 dts-dirs += socionext 19 19 dts-dirs += sprd 20 20 dts-dirs += xilinx 21 + dts-dirs += lg 21 22 22 23 subdir-y := $(dts-dirs) 23 24
+3
arch/arm64/boot/dts/amlogic/Makefile
··· 1 + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb 2 + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb 3 + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb 1 4 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb 2 5 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb 3 6 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb
+69
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
··· 1 + /* 2 + * Copyright (c) 2016 Andreas Färber 3 + * Copyright (c) 2016 BayLibre, Inc. 4 + * Author: Kevin Hilman <khilman@kernel.org> 5 + * 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 10 + * 11 + * a) This library is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License as 13 + * published by the Free Software Foundation; either version 2 of the 14 + * License, or (at your option) any later version. 15 + * 16 + * This library is distributed in the hope that it will be useful, 17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 + * GNU General Public License for more details. 20 + * 21 + * Or, alternatively, 22 + * 23 + * b) Permission is hereby granted, free of charge, to any person 24 + * obtaining a copy of this software and associated documentation 25 + * files (the "Software"), to deal in the Software without 26 + * restriction, including without limitation the rights to use, 27 + * copy, modify, merge, publish, distribute, sublicense, and/or 28 + * sell copies of the Software, and to permit persons to whom the 29 + * Software is furnished to do so, subject to the following 30 + * conditions: 31 + * 32 + * The above copyright notice and this permission notice shall be 33 + * included in all copies or substantial portions of the Software. 34 + * 35 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 + * OTHER DEALINGS IN THE SOFTWARE. 43 + */ 44 + 45 + /dts-v1/; 46 + 47 + #include "meson-gxbb.dtsi" 48 + 49 + / { 50 + compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; 51 + model = "Hardkernel ODROID-C2"; 52 + 53 + aliases { 54 + serial0 = &uart_AO; 55 + }; 56 + 57 + chosen { 58 + stdout-path = "serial0:115200n8"; 59 + }; 60 + 61 + memory@0 { 62 + device_type = "memory"; 63 + reg = <0x0 0x0 0x0 0x80000000>; 64 + }; 65 + }; 66 + 67 + &uart_AO { 68 + status = "okay"; 69 + };
+52
arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
··· 1 + /* 2 + * Copyright (c) 2016 Andreas Färber 3 + * Copyright (c) 2016 BayLibre, Inc. 4 + * Author: Kevin Hilman <khilman@kernel.org> 5 + * 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 10 + * 11 + * a) This library is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License as 13 + * published by the Free Software Foundation; either version 2 of the 14 + * License, or (at your option) any later version. 15 + * 16 + * This library is distributed in the hope that it will be useful, 17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 + * GNU General Public License for more details. 20 + * 21 + * Or, alternatively, 22 + * 23 + * b) Permission is hereby granted, free of charge, to any person 24 + * obtaining a copy of this software and associated documentation 25 + * files (the "Software"), to deal in the Software without 26 + * restriction, including without limitation the rights to use, 27 + * copy, modify, merge, publish, distribute, sublicense, and/or 28 + * sell copies of the Software, and to permit persons to whom the 29 + * Software is furnished to do so, subject to the following 30 + * conditions: 31 + * 32 + * The above copyright notice and this permission notice shall be 33 + * included in all copies or substantial portions of the Software. 34 + * 35 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 + * OTHER DEALINGS IN THE SOFTWARE. 43 + */ 44 + 45 + /dts-v1/; 46 + 47 + #include "meson-gxbb-p20x.dtsi" 48 + 49 + / { 50 + compatible = "amlogic,p200", "amlogic,meson-gxbb"; 51 + model = "Amlogic Meson GXBB P200 Development Board"; 52 + };
+52
arch/arm64/boot/dts/amlogic/meson-gxbb-p201.dts
··· 1 + /* 2 + * Copyright (c) 2016 Andreas Färber 3 + * Copyright (c) 2016 BayLibre, Inc. 4 + * Author: Kevin Hilman <khilman@kernel.org> 5 + * 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 10 + * 11 + * a) This library is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License as 13 + * published by the Free Software Foundation; either version 2 of the 14 + * License, or (at your option) any later version. 15 + * 16 + * This library is distributed in the hope that it will be useful, 17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 + * GNU General Public License for more details. 20 + * 21 + * Or, alternatively, 22 + * 23 + * b) Permission is hereby granted, free of charge, to any person 24 + * obtaining a copy of this software and associated documentation 25 + * files (the "Software"), to deal in the Software without 26 + * restriction, including without limitation the rights to use, 27 + * copy, modify, merge, publish, distribute, sublicense, and/or 28 + * sell copies of the Software, and to permit persons to whom the 29 + * Software is furnished to do so, subject to the following 30 + * conditions: 31 + * 32 + * The above copyright notice and this permission notice shall be 33 + * included in all copies or substantial portions of the Software. 34 + * 35 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 + * OTHER DEALINGS IN THE SOFTWARE. 43 + */ 44 + 45 + /dts-v1/; 46 + 47 + #include "meson-gxbb-p20x.dtsi" 48 + 49 + / { 50 + compatible = "amlogic,p201", "amlogic,meson-gxbb"; 51 + model = "Amlogic Meson GXBB P201 Development Board"; 52 + };
+65
arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
··· 1 + /* 2 + * Copyright (c) 2016 Andreas Färber 3 + * Copyright (c) 2016 BayLibre, Inc. 4 + * Author: Kevin Hilman <khilman@kernel.org> 5 + * 6 + * This file is dual-licensed: you can use it either under the terms 7 + * of the GPL or the X11 license, at your option. Note that this dual 8 + * licensing only applies to this file, and not this project as a 9 + * whole. 10 + * 11 + * a) This library is free software; you can redistribute it and/or 12 + * modify it under the terms of the GNU General Public License as 13 + * published by the Free Software Foundation; either version 2 of the 14 + * License, or (at your option) any later version. 15 + * 16 + * This library is distributed in the hope that it will be useful, 17 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 + * GNU General Public License for more details. 20 + * 21 + * Or, alternatively, 22 + * 23 + * b) Permission is hereby granted, free of charge, to any person 24 + * obtaining a copy of this software and associated documentation 25 + * files (the "Software"), to deal in the Software without 26 + * restriction, including without limitation the rights to use, 27 + * copy, modify, merge, publish, distribute, sublicense, and/or 28 + * sell copies of the Software, and to permit persons to whom the 29 + * Software is furnished to do so, subject to the following 30 + * conditions: 31 + * 32 + * The above copyright notice and this permission notice shall be 33 + * included in all copies or substantial portions of the Software. 34 + * 35 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 36 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 37 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 38 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 39 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 40 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 41 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 42 + * OTHER DEALINGS IN THE SOFTWARE. 43 + */ 44 + 45 + #include "meson-gxbb.dtsi" 46 + 47 + / { 48 + aliases { 49 + serial0 = &uart_AO; 50 + }; 51 + 52 + chosen { 53 + stdout-path = "serial0:115200n8"; 54 + }; 55 + 56 + memory@0 { 57 + device_type = "memory"; 58 + reg = <0x0 0x0 0x0 0x40000000>; 59 + }; 60 + }; 61 + 62 + /* This UART is brought out to the DB9 connector */ 63 + &uart_AO { 64 + status = "okay"; 65 + };
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95-meta.dts
··· 48 48 compatible = "tronsmart,vega-s95-meta", "tronsmart,vega-s95", "amlogic,meson-gxbb"; 49 49 model = "Tronsmart Vega S95 Meta"; 50 50 51 - memory { 51 + memory@0 { 52 52 device_type = "memory"; 53 53 reg = <0x0 0x0 0x0 0x80000000>; 54 54 };
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95-pro.dts
··· 48 48 compatible = "tronsmart,vega-s95-pro", "tronsmart,vega-s95", "amlogic,meson-gxbb"; 49 49 model = "Tronsmart Vega S95 Pro"; 50 50 51 - memory { 51 + memory@0 { 52 52 device_type = "memory"; 53 53 reg = <0x0 0x0 0x0 0x40000000>; 54 54 };
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95-telos.dts
··· 48 48 compatible = "tronsmart,vega-s95-telos", "tronsmart,vega-s95", "amlogic,meson-gxbb"; 49 49 model = "Tronsmart Vega S95 Telos"; 50 50 51 - memory { 51 + memory@0 { 52 52 device_type = "memory"; 53 53 reg = <0x0 0x0 0x0 0x80000000>; 54 54 };
+4
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
··· 45 45 / { 46 46 compatible = "tronsmart,vega-s95", "amlogic,meson-gxbb"; 47 47 48 + aliases { 49 + serial0 = &uart_AO; 50 + }; 51 + 48 52 chosen { 49 53 stdout-path = "serial0:115200n8"; 50 54 };
-5
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
··· 50 50 #address-cells = <2>; 51 51 #size-cells = <2>; 52 52 53 - aliases { 54 - serial0 = &uart_AO; 55 - serial1 = &uart_A; 56 - }; 57 - 58 53 cpus { 59 54 #address-cells = <0x2>; 60 55 #size-cells = <0x0>;
+3 -3
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
··· 543 543 }; 544 544 545 545 sata1: sata@1a000000 { 546 - compatible = "apm,xgene-ahci"; 546 + compatible = "apm,xgene-ahci-v2"; 547 547 reg = <0x0 0x1a000000 0x0 0x1000>, 548 548 <0x0 0x1f200000 0x0 0x1000>, 549 549 <0x0 0x1f20d000 0x0 0x1000>, ··· 553 553 }; 554 554 555 555 sata2: sata@1a200000 { 556 - compatible = "apm,xgene-ahci"; 556 + compatible = "apm,xgene-ahci-v2"; 557 557 reg = <0x0 0x1a200000 0x0 0x1000>, 558 558 <0x0 0x1f210000 0x0 0x1000>, 559 559 <0x0 0x1f21d000 0x0 0x1000>, ··· 563 563 }; 564 564 565 565 sata3: sata@1a400000 { 566 - compatible = "apm,xgene-ahci"; 566 + compatible = "apm,xgene-ahci-v2"; 567 567 reg = <0x0 0x1a400000 0x0 0x1000>, 568 568 <0x0 0x1f220000 0x0 0x1000>, 569 569 <0x0 0x1f22d000 0x0 0x1000>,
+10
arch/arm64/boot/dts/arm/juno-base.dtsi
··· 272 272 273 273 /include/ "juno-motherboard.dtsi" 274 274 }; 275 + 276 + site2: tlx@60000000 { 277 + compatible = "simple-bus"; 278 + #address-cells = <1>; 279 + #size-cells = <1>; 280 + ranges = <0 0 0x60000000 0x10000000>; 281 + #interrupt-cells = <1>; 282 + interrupt-map-mask = <0 0>; 283 + interrupt-map = <0 0 &gic 0 0 0 168 IRQ_TYPE_LEVEL_HIGH>; 284 + };
+105
arch/arm64/boot/dts/broadcom/ns2-clock.dtsi
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright (c) 2016 Broadcom. All rights reserved. 5 + * 6 + * Redistribution and use in source and binary forms, with or without 7 + * modification, are permitted provided that the following conditions 8 + * are met: 9 + * 10 + * * Redistributions of source code must retain the above copyright 11 + * notice, this list of conditions and the following disclaimer. 12 + * * Redistributions in binary form must reproduce the above copyright 13 + * notice, this list of conditions and the following disclaimer in 14 + * the documentation and/or other materials provided with the 15 + * distribution. 16 + * * Neither the name of Broadcom Corporation nor the names of its 17 + * contributors may be used to endorse or promote products derived 18 + * from this software without specific prior written permission. 19 + * 20 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 + */ 32 + 33 + #include <dt-bindings/clock/bcm-ns2.h> 34 + 35 + osc: oscillator { 36 + #clock-cells = <0>; 37 + compatible = "fixed-clock"; 38 + clock-frequency = <25000000>; 39 + }; 40 + 41 + lcpll_ddr: lcpll_ddr@6501d058 { 42 + #clock-cells = <1>; 43 + compatible = "brcm,ns2-lcpll-ddr"; 44 + reg = <0x6501d058 0x20>, 45 + <0x6501c020 0x4>, 46 + <0x6501d04c 0x4>; 47 + clocks = <&osc>; 48 + clock-output-names = "lcpll_ddr", "pcie_sata_usb", 49 + "ddr", "ddr_ch2_unused", 50 + "ddr_ch3_unused", "ddr_ch4_unused", 51 + "ddr_ch5_unused"; 52 + }; 53 + 54 + lcpll_ports: lcpll_ports@6501d078 { 55 + #clock-cells = <1>; 56 + compatible = "brcm,ns2-lcpll-ports"; 57 + reg = <0x6501d078 0x20>, 58 + <0x6501c020 0x4>, 59 + <0x6501d054 0x4>; 60 + clocks = <&osc>; 61 + clock-output-names = "lcpll_ports", "wan", "rgmii", 62 + "ports_ch2_unused", 63 + "ports_ch3_unused", 64 + "ports_ch4_unused", 65 + "ports_ch5_unused"; 66 + }; 67 + 68 + genpll_scr: genpll_scr@6501d098 { 69 + #clock-cells = <1>; 70 + compatible = "brcm,ns2-genpll-scr"; 71 + reg = <0x6501d098 0x32>, 72 + <0x6501c020 0x4>, 73 + <0x6501d044 0x4>; 74 + clocks = <&osc>; 75 + clock-output-names = "genpll_scr", "scr", "fs", 76 + "audio_ref", "scr_ch3_unused", 77 + "scr_ch4_unused", "scr_ch5_unused"; 78 + }; 79 + 80 + iprocmed: iprocmed { 81 + #clock-cells = <0>; 82 + compatible = "fixed-factor-clock"; 83 + clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>; 84 + clock-div = <2>; 85 + clock-mult = <1>; 86 + }; 87 + 88 + iprocslow: iprocslow { 89 + #clock-cells = <0>; 90 + compatible = "fixed-factor-clock"; 91 + clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>; 92 + clock-div = <4>; 93 + clock-mult = <1>; 94 + }; 95 + 96 + genpll_sw: genpll_sw@6501d0c4 { 97 + #clock-cells = <1>; 98 + compatible = "brcm,ns2-genpll-sw"; 99 + reg = <0x6501d0c4 0x32>, 100 + <0x6501c020 0x4>, 101 + <0x6501d044 0x4>; 102 + clocks = <&osc>; 103 + clock-output-names = "genpll_sw", "rpe", "250", "nic", 104 + "chimp", "port", "sdio"; 105 + };
+45
arch/arm64/boot/dts/broadcom/ns2-svk.dts
··· 72 72 status = "ok"; 73 73 }; 74 74 75 + &ssp0 { 76 + status = "ok"; 77 + 78 + slic@0 { 79 + compatible = "silabs,si3226x"; 80 + reg = <0>; 81 + spi-max-frequency = <5000000>; 82 + spi-cpha = <1>; 83 + spi-cpol = <1>; 84 + pl022,hierarchy = <0>; 85 + pl022,interface = <0>; 86 + pl022,slave-tx-disable = <0>; 87 + pl022,com-mode = <0>; 88 + pl022,rx-level-trig = <1>; 89 + pl022,tx-level-trig = <1>; 90 + pl022,ctrl-len = <11>; 91 + pl022,wait-state = <0>; 92 + pl022,duplex = <0>; 93 + }; 94 + }; 95 + 96 + &ssp1 { 97 + status = "ok"; 98 + 99 + at25@0 { 100 + compatible = "atmel,at25"; 101 + reg = <0>; 102 + spi-max-frequency = <5000000>; 103 + at25,byte-len = <0x8000>; 104 + at25,addr-mode = <2>; 105 + at25,page-size = <64>; 106 + spi-cpha = <1>; 107 + spi-cpol = <1>; 108 + pl022,hierarchy = <0>; 109 + pl022,interface = <0>; 110 + pl022,slave-tx-disable = <0>; 111 + pl022,com-mode = <0>; 112 + pl022,rx-level-trig = <1>; 113 + pl022,tx-level-trig = <1>; 114 + pl022,ctrl-len = <11>; 115 + pl022,wait-state = <0>; 116 + pl022,duplex = <0>; 117 + }; 118 + }; 119 + 75 120 &sdio0 { 76 121 status = "ok"; 77 122 };
+55 -100
arch/arm64/boot/dts/broadcom/ns2.dtsi
··· 1 1 /* 2 2 * BSD LICENSE 3 3 * 4 - * Copyright(c) 2015 Broadcom Corporation. All rights reserved. 4 + * Copyright (c) 2015 Broadcom. All rights reserved. 5 5 * 6 6 * Redistribution and use in source and binary forms, with or without 7 7 * modification, are permitted provided that the following conditions ··· 33 33 #include <dt-bindings/interrupt-controller/arm-gic.h> 34 34 #include <dt-bindings/clock/bcm-ns2.h> 35 35 36 - /memreserve/ 0x84b00000 0x00000008; 37 - 38 36 / { 39 37 compatible = "brcm,ns2"; 40 38 interrupt-parent = <&gic>; ··· 47 49 device_type = "cpu"; 48 50 compatible = "arm,cortex-a57", "arm,armv8"; 49 51 reg = <0 0>; 50 - enable-method = "spin-table"; 51 - cpu-release-addr = <0 0x84b00000>; 52 + enable-method = "psci"; 52 53 next-level-cache = <&CLUSTER0_L2>; 53 54 }; 54 55 ··· 55 58 device_type = "cpu"; 56 59 compatible = "arm,cortex-a57", "arm,armv8"; 57 60 reg = <0 1>; 58 - enable-method = "spin-table"; 59 - cpu-release-addr = <0 0x84b00000>; 61 + enable-method = "psci"; 60 62 next-level-cache = <&CLUSTER0_L2>; 61 63 }; 62 64 ··· 63 67 device_type = "cpu"; 64 68 compatible = "arm,cortex-a57", "arm,armv8"; 65 69 reg = <0 2>; 66 - enable-method = "spin-table"; 67 - cpu-release-addr = <0 0x84b00000>; 70 + enable-method = "psci"; 68 71 next-level-cache = <&CLUSTER0_L2>; 69 72 }; 70 73 ··· 71 76 device_type = "cpu"; 72 77 compatible = "arm,cortex-a57", "arm,armv8"; 73 78 reg = <0 3>; 74 - enable-method = "spin-table"; 75 - cpu-release-addr = <0 0x84b00000>; 79 + enable-method = "psci"; 76 80 next-level-cache = <&CLUSTER0_L2>; 77 81 }; 78 82 79 83 CLUSTER0_L2: l2-cache@000 { 80 84 compatible = "cache"; 81 85 }; 86 + }; 87 + 88 + psci { 89 + compatible = "arm,psci-1.0"; 90 + method = "smc"; 82 91 }; 83 92 84 93 timer { ··· 107 108 <&A57_1>, 108 109 <&A57_2>, 109 110 <&A57_3>; 110 - }; 111 - 112 - clocks { 113 - #address-cells = <1>; 114 - #size-cells = <1>; 115 - 116 - osc: oscillator { 117 - #clock-cells = <0>; 118 - compatible = "fixed-clock"; 119 - clock-frequency = <25000000>; 120 - }; 121 - 122 - iprocmed: iprocmed { 123 - #clock-cells = <0>; 124 - compatible = "fixed-factor-clock"; 125 - clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>; 126 - clock-div = <2>; 127 - clock-mult = <1>; 128 - }; 129 - 130 - iprocslow: iprocslow { 131 - #clock-cells = <0>; 132 - compatible = "fixed-factor-clock"; 133 - clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>; 134 - clock-div = <4>; 135 - clock-mult = <1>; 136 - }; 137 111 }; 138 112 139 113 pcie0: pcie@20020000 { ··· 189 217 #size-cells = <1>; 190 218 ranges = <0 0 0 0xffffffff>; 191 219 220 + #include "ns2-clock.dtsi" 221 + 222 + dma0: dma@61360000 { 223 + compatible = "arm,pl330", "arm,primecell"; 224 + reg = <0x61360000 0x1000>; 225 + interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, 226 + <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>, 227 + <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>, 228 + <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, 229 + <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>, 230 + <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>, 231 + <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>, 232 + <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, 233 + <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>; 234 + #dma-cells = <1>; 235 + #dma-channels = <8>; 236 + #dma-requests = <32>; 237 + clocks = <&iprocslow>; 238 + clock-names = "apb_pclk"; 239 + }; 240 + 192 241 smmu: mmu@64000000 { 193 242 compatible = "arm,mmu-500"; 194 243 reg = <0x64000000 0x40000>; ··· 251 258 mmu-masters; 252 259 }; 253 260 254 - lcpll_ddr: lcpll_ddr@6501d058 { 255 - #clock-cells = <1>; 256 - compatible = "brcm,ns2-lcpll-ddr"; 257 - reg = <0x6501d058 0x20>, 258 - <0x6501c020 0x4>, 259 - <0x6501d04c 0x4>; 260 - clocks = <&osc>; 261 - clock-output-names = "lcpll_ddr", "pcie_sata_usb", 262 - "ddr", "ddr_ch2_unused", 263 - "ddr_ch3_unused", "ddr_ch4_unused", 264 - "ddr_ch5_unused"; 265 - }; 266 - 267 - lcpll_ports: lcpll_ports@6501d078 { 268 - #clock-cells = <1>; 269 - compatible = "brcm,ns2-lcpll-ports"; 270 - reg = <0x6501d078 0x20>, 271 - <0x6501c020 0x4>, 272 - <0x6501d054 0x4>; 273 - clocks = <&osc>; 274 - clock-output-names = "lcpll_ports", "wan", "rgmii", 275 - "ports_ch2_unused", 276 - "ports_ch3_unused", 277 - "ports_ch4_unused", 278 - "ports_ch5_unused"; 279 - }; 280 - 281 - genpll_scr: genpll_scr@6501d098 { 282 - #clock-cells = <1>; 283 - compatible = "brcm,ns2-genpll-scr"; 284 - reg = <0x6501d098 0x32>, 285 - <0x6501c020 0x4>, 286 - <0x6501d044 0x4>; 287 - clocks = <&osc>; 288 - clock-output-names = "genpll_scr", "scr", "fs", 289 - "audio_ref", "scr_ch3_unused", 290 - "scr_ch4_unused", "scr_ch5_unused"; 291 - }; 292 - 293 - genpll_sw: genpll_sw@6501d0c4 { 294 - #clock-cells = <1>; 295 - compatible = "brcm,ns2-genpll-sw"; 296 - reg = <0x6501d0c4 0x32>, 297 - <0x6501c020 0x4>, 298 - <0x6501d044 0x4>; 299 - clocks = <&osc>; 300 - clock-output-names = "genpll_sw", "rpe", "250", "nic", 301 - "chimp", "port", "sdio"; 302 - }; 303 - 304 - crmu: crmu@65024000 { 305 - compatible = "syscon"; 306 - reg = <0x65024000 0x100>; 307 - }; 308 - 309 - reboot@65024000 { 310 - compatible ="syscon-reboot"; 311 - regmap = <&crmu>; 312 - offset = <0x90>; 313 - mask = <0xfffffffd>; 314 - }; 315 - 316 261 gic: interrupt-controller@65210000 { 317 262 compatible = "arm,gic-400"; 318 263 #interrupt-cells = <3>; ··· 259 328 <0x65220000 0x1000>, 260 329 <0x65240000 0x2000>, 261 330 <0x65260000 0x1000>; 331 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) | 332 + IRQ_TYPE_LEVEL_HIGH)>; 262 333 }; 263 334 264 335 timer0: timer@66030000 { ··· 338 405 reg-shift = <2>; 339 406 reg-io-width = <4>; 340 407 clocks = <&osc>; 408 + status = "disabled"; 409 + }; 410 + 411 + ssp0: ssp@66180000 { 412 + compatible = "arm,pl022", "arm,primecell"; 413 + reg = <0x66180000 0x1000>; 414 + interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>; 415 + clocks = <&iprocslow>, <&iprocslow>; 416 + clock-names = "spiclk", "apb_pclk"; 417 + #address-cells = <1>; 418 + #size-cells = <0>; 419 + status = "disabled"; 420 + }; 421 + 422 + ssp1: ssp@66190000 { 423 + compatible = "arm,pl022", "arm,primecell"; 424 + reg = <0x66190000 0x1000>; 425 + interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>; 426 + clocks = <&iprocslow>, <&iprocslow>; 427 + clock-names = "spiclk", "apb_pclk"; 428 + #address-cells = <1>; 429 + #size-cells = <0>; 341 430 status = "disabled"; 342 431 }; 343 432
+25
arch/arm64/boot/dts/exynos/exynos7-tmu-sensor-conf.dtsi
··· 1 + /* 2 + * Device tree sources for Exynos7 TMU sensor configuration 3 + * 4 + * Copyright (c) 2016 Samsung Electronics Co., Ltd. 5 + * http://www.samsung.com 6 + * 7 + * This program is free software; you can redistribute it and/or modify 8 + * it under the terms of the GNU General Public License version 2 as 9 + * published by the Free Software Foundation. 10 + * 11 + */ 12 + 13 + #include <dt-bindings/thermal/thermal_exynos.h> 14 + 15 + #thermal-sensor-cells = <0>; 16 + samsung,tmu_gain = <9>; 17 + samsung,tmu_reference_voltage = <17>; 18 + samsung,tmu_noise_cancel_mode = <4>; 19 + samsung,tmu_efuse_value = <75>; 20 + samsung,tmu_min_efuse_value = <15>; 21 + samsung,tmu_max_efuse_value = <100>; 22 + samsung,tmu_first_point_trim = <25>; 23 + samsung,tmu_second_point_trim = <85>; 24 + samsung,tmu_default_temp_offset = <50>; 25 + samsung,tmu_cal_type = <TYPE_ONE_POINT_TRIMMING>;
+54
arch/arm64/boot/dts/exynos/exynos7-trip-points.dtsi
··· 1 + /* 2 + * Device tree sources for default Exynos7 thermal zone definition 3 + * 4 + * Copyright (c) 2016 Samsung Electronics Co., Ltd. 5 + * http://www.samsung.com 6 + * 7 + * This program is free software; you can redistribute it and/or modify 8 + * it under the terms of the GNU General Public License version 2 as 9 + * published by the Free Software Foundation. 10 + * 11 + */ 12 + 13 + trips { 14 + cpu-alert-0 { 15 + temperature = <75000>; /* millicelsius */ 16 + hysteresis = <10000>; /* millicelsius */ 17 + type = "passive"; 18 + }; 19 + cpu-alert-1 { 20 + temperature = <80000>; /* millicelsius */ 21 + hysteresis = <10000>; /* millicelsius */ 22 + type = "passive"; 23 + }; 24 + cpu-alert-2 { 25 + temperature = <85000>; /* millicelsius */ 26 + hysteresis = <10000>; /* millicelsius */ 27 + type = "passive"; 28 + }; 29 + cpu-alert-3 { 30 + temperature = <90000>; /* millicelsius */ 31 + hysteresis = <10000>; /* millicelsius */ 32 + type = "passive"; 33 + }; 34 + cpu-alert-4 { 35 + temperature = <95000>; /* millicelsius */ 36 + hysteresis = <10000>; /* millicelsius */ 37 + type = "passive"; 38 + }; 39 + cpu-alert-5 { 40 + temperature = <100000>; /* millicelsius */ 41 + hysteresis = <10000>; /* millicelsius */ 42 + type = "passive"; 43 + }; 44 + cpu-alert-6 { 45 + temperature = <110000>; /* millicelsius */ 46 + hysteresis = <10000>; /* millicelsius */ 47 + type = "passive"; 48 + }; 49 + cpu-crit-0 { 50 + temperature = <115000>; /* millicelsius */ 51 + hysteresis = <0>; /* millicelsius */ 52 + type = "critical"; 53 + }; 54 + };
+49
arch/arm64/boot/dts/exynos/exynos7.dtsi
··· 27 27 pinctrl6 = &pinctrl_fsys0; 28 28 pinctrl7 = &pinctrl_fsys1; 29 29 pinctrl8 = &pinctrl_bus1; 30 + tmuctrl0 = &tmuctrl_0; 30 31 }; 31 32 32 33 cpus { ··· 94 93 <0x11002000 0x1000>, 95 94 <0x11004000 0x2000>, 96 95 <0x11006000 0x2000>; 96 + }; 97 + 98 + amba { 99 + compatible = "simple-bus"; 100 + #address-cells = <1>; 101 + #size-cells = <1>; 102 + ranges; 103 + 104 + pdma0: pdma@10E10000 { 105 + compatible = "arm,pl330", "arm,primecell"; 106 + reg = <0x10E10000 0x1000>; 107 + interrupts = <0 225 0>; 108 + clocks = <&clock_fsys0 ACLK_PDMA0>; 109 + clock-names = "apb_pclk"; 110 + #dma-cells = <1>; 111 + #dma-channels = <8>; 112 + #dma-requests = <32>; 113 + }; 114 + 115 + pdma1: pdma@10EB0000 { 116 + compatible = "arm,pl330", "arm,primecell"; 117 + reg = <0x10EB0000 0x1000>; 118 + interrupts = <0 226 0>; 119 + clocks = <&clock_fsys0 ACLK_PDMA1>; 120 + clock-names = "apb_pclk"; 121 + #dma-cells = <1>; 122 + #dma-channels = <8>; 123 + #dma-requests = <32>; 124 + }; 97 125 }; 98 126 99 127 clock_topc: clock-controller@10570000 { ··· 567 537 #pwm-cells = <3>; 568 538 clocks = <&clock_peric0 PCLK_PWM>; 569 539 clock-names = "timers"; 540 + }; 541 + 542 + tmuctrl_0: tmu@10060000 { 543 + compatible = "samsung,exynos7-tmu"; 544 + reg = <0x10060000 0x200>; 545 + interrupts = <0 108 0>; 546 + clocks = <&clock_peris PCLK_TMU>, 547 + <&clock_peris SCLK_TMU>; 548 + clock-names = "tmu_apbif", "tmu_sclk"; 549 + #include "exynos7-tmu-sensor-conf.dtsi" 550 + }; 551 + 552 + thermal-zones { 553 + atlas_thermal: cluster0-thermal { 554 + polling-delay-passive = <0>; /* milliseconds */ 555 + polling-delay = <0>; /* milliseconds */ 556 + thermal-sensors = <&tmuctrl_0>; 557 + #include "exynos7-trip-points.dtsi" 558 + }; 570 559 }; 571 560 }; 572 561 };
+2 -1
arch/arm64/boot/dts/freescale/Makefile
··· 1 + dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-qds.dtb 2 + dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb 1 3 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-qds.dtb 2 4 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-rdb.dtb 3 5 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2080a-simu.dtb 4 - dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1043a-rdb.dtb 5 6 6 7 always := $(dtb-y) 7 8 subdir-y := $(dts-dirs)
+181
arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
··· 1 + /* 2 + * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 + * 4 + * Copyright 2014-2015, Freescale Semiconductor 5 + * 6 + * Mingkai Hu <Mingkai.hu@freescale.com> 7 + * 8 + * This file is dual-licensed: you can use it either under the terms 9 + * of the GPLv2 or the X11 license, at your option. Note that this dual 10 + * licensing only applies to this file, and not this project as a 11 + * whole. 12 + * 13 + * a) This library is free software; you can redistribute it and/or 14 + * modify it under the terms of the GNU General Public License as 15 + * published by the Free Software Foundation; either version 2 of the 16 + * License, or (at your option) any later version. 17 + * 18 + * This library is distributed in the hope that it will be useful, 19 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 + * GNU General Public License for more details. 22 + * 23 + * Or, alternatively, 24 + * 25 + * b) Permission is hereby granted, free of charge, to any person 26 + * obtaining a copy of this software and associated documentation 27 + * files (the "Software"), to deal in the Software without 28 + * restriction, including without limitation the rights to use, 29 + * copy, modify, merge, publish, distribute, sublicense, and/or 30 + * sell copies of the Software, and to permit persons to whom the 31 + * Software is furnished to do so, subject to the following 32 + * conditions: 33 + * 34 + * The above copyright notice and this permission notice shall be 35 + * included in all copies or substantial portions of the Software. 36 + * 37 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 38 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 39 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 40 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 41 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 42 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 + * OTHER DEALINGS IN THE SOFTWARE. 45 + */ 46 + 47 + /dts-v1/; 48 + /include/ "fsl-ls1043a.dtsi" 49 + 50 + / { 51 + model = "LS1043A QDS Board"; 52 + compatible = "fsl,ls1043a-qds", "fsl,ls1043a"; 53 + 54 + aliases { 55 + gpio0 = &gpio1; 56 + gpio1 = &gpio2; 57 + gpio2 = &gpio3; 58 + gpio3 = &gpio4; 59 + serial0 = &lpuart0; 60 + serial1 = &lpuart1; 61 + serial2 = &lpuart2; 62 + serial3 = &lpuart3; 63 + serial4 = &lpuart4; 64 + serial5 = &lpuart5; 65 + }; 66 + }; 67 + 68 + &duart0 { 69 + status = "okay"; 70 + }; 71 + 72 + &duart1 { 73 + status = "okay"; 74 + }; 75 + 76 + &ifc { 77 + #address-cells = <2>; 78 + #size-cells = <1>; 79 + /* NOR, NAND Flashes and FPGA on board */ 80 + ranges = <0x0 0x0 0x0 0x60000000 0x08000000 81 + 0x1 0x0 0x0 0x7e800000 0x00010000 82 + 0x2 0x0 0x0 0x7fb00000 0x00000100>; 83 + status = "okay"; 84 + 85 + nor@0,0 { 86 + compatible = "cfi-flash"; 87 + reg = <0x0 0x0 0x8000000>; 88 + bank-width = <2>; 89 + device-width = <1>; 90 + }; 91 + 92 + nand@1,0 { 93 + compatible = "fsl,ifc-nand"; 94 + reg = <0x1 0x0 0x10000>; 95 + }; 96 + 97 + fpga: board-control@2,0 { 98 + compatible = "fsl,ls1043aqds-fpga", "fsl,fpga-qixis"; 99 + reg = <0x2 0x0 0x0000100>; 100 + }; 101 + }; 102 + 103 + &i2c0 { 104 + status = "okay"; 105 + 106 + pca9547@77 { 107 + compatible = "nxp,pca9547"; 108 + reg = <0x77>; 109 + #address-cells = <1>; 110 + #size-cells = <0>; 111 + 112 + i2c@0 { 113 + #address-cells = <1>; 114 + #size-cells = <0>; 115 + reg = <0x0>; 116 + 117 + rtc@68 { 118 + compatible = "dallas,ds3232"; 119 + reg = <0x68>; 120 + /* IRQ10_B */ 121 + interrupts = <0 150 0x4>; 122 + }; 123 + }; 124 + 125 + i2c@2 { 126 + #address-cells = <1>; 127 + #size-cells = <0>; 128 + reg = <0x2>; 129 + 130 + ina220@40 { 131 + compatible = "ti,ina220"; 132 + reg = <0x40>; 133 + shunt-resistor = <1000>; 134 + }; 135 + 136 + ina220@41 { 137 + compatible = "ti,ina220"; 138 + reg = <0x41>; 139 + shunt-resistor = <1000>; 140 + }; 141 + }; 142 + 143 + i2c@3 { 144 + #address-cells = <1>; 145 + #size-cells = <0>; 146 + reg = <0x3>; 147 + 148 + eeprom@56 { 149 + compatible = "atmel,24c512"; 150 + reg = <0x56>; 151 + }; 152 + 153 + eeprom@57 { 154 + compatible = "atmel,24c512"; 155 + reg = <0x57>; 156 + }; 157 + 158 + temp-sensor@4c { 159 + compatible = "adi,adt7461a"; 160 + reg = <0x4c>; 161 + }; 162 + }; 163 + }; 164 + }; 165 + 166 + &lpuart0 { 167 + status = "okay"; 168 + }; 169 + 170 + &qspi { 171 + bus-num = <0>; 172 + status = "okay"; 173 + 174 + qflash0: s25fl128s@0 { 175 + compatible = "spansion,m25p80"; 176 + #address-cells = <1>; 177 + #size-cells = <1>; 178 + spi-max-frequency = <20000000>; 179 + reg = <0>; 180 + }; 181 + };
+13
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
··· 107 107 }; 108 108 }; 109 109 110 + &dspi0 { 111 + bus-num = <0>; 112 + status = "okay"; 113 + 114 + flash@0 { 115 + #address-cells = <1>; 116 + #size-cells = <1>; 117 + compatible = "n25q128a13", "jedec,spi-nor"; /* 16MB */ 118 + reg = <0>; 119 + spi-max-frequency = <1000000>; /* input clock */ 120 + }; 121 + }; 122 + 110 123 &duart0 { 111 124 status = "okay"; 112 125 };
+18 -4
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
··· 171 171 interrupts = <0 43 0x4>; 172 172 }; 173 173 174 + qspi: quadspi@1550000 { 175 + compatible = "fsl,ls1043a-qspi", "fsl,ls1021a-qspi"; 176 + #address-cells = <1>; 177 + #size-cells = <0>; 178 + reg = <0x0 0x1550000 0x0 0x10000>, 179 + <0x0 0x40000000 0x0 0x4000000>; 180 + reg-names = "QuadSPI", "QuadSPI-memory"; 181 + interrupts = <0 99 0x4>; 182 + clock-names = "qspi_en", "qspi"; 183 + clocks = <&clockgen 4 0>, <&clockgen 4 0>; 184 + big-endian; 185 + status = "disabled"; 186 + }; 187 + 174 188 esdhc: esdhc@1560000 { 175 189 compatible = "fsl,ls1043a-esdhc", "fsl,esdhc"; 176 190 reg = <0x0 0x1560000 0x0 0x10000>; ··· 298 284 }; 299 285 300 286 gpio1: gpio@2300000 { 301 - compatible = "fsl,ls1043a-gpio"; 287 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 302 288 reg = <0x0 0x2300000 0x0 0x10000>; 303 289 interrupts = <0 66 0x4>; 304 290 gpio-controller; ··· 308 294 }; 309 295 310 296 gpio2: gpio@2310000 { 311 - compatible = "fsl,ls1043a-gpio"; 297 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 312 298 reg = <0x0 0x2310000 0x0 0x10000>; 313 299 interrupts = <0 67 0x4>; 314 300 gpio-controller; ··· 318 304 }; 319 305 320 306 gpio3: gpio@2320000 { 321 - compatible = "fsl,ls1043a-gpio"; 307 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 322 308 reg = <0x0 0x2320000 0x0 0x10000>; 323 309 interrupts = <0 68 0x4>; 324 310 gpio-controller; ··· 328 314 }; 329 315 330 316 gpio4: gpio@2330000 { 331 - compatible = "fsl,ls1043a-gpio"; 317 + compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio"; 332 318 reg = <0x0 0x2330000 0x0 0x10000>; 333 319 interrupts = <0 134 0x4>; 334 320 gpio-controller;
+8 -1
arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts
··· 178 178 179 179 &qspi { 180 180 status = "okay"; 181 - qflash0: s25fl008k { 181 + flash0: s25fl256s1@0 { 182 + #address-cells = <1>; 183 + #size-cells = <1>; 184 + compatible = "st,m25p80"; 185 + spi-max-frequency = <20000000>; 186 + reg = <0>; 187 + }; 188 + flash2: s25fl256s1@2 { 182 189 #address-cells = <1>; 183 190 #size-cells = <1>; 184 191 compatible = "st,m25p80";
+104 -6
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
··· 265 265 compatible = "fsl,qoriq-mc"; 266 266 reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */ 267 267 <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ 268 + msi-parent = <&its>; 269 + #address-cells = <3>; 270 + #size-cells = <1>; 271 + 272 + /* 273 + * Region type 0x0 - MC portals 274 + * Region type 0x1 - QBMAN portals 275 + */ 276 + ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000 277 + 0x1 0x0 0x0 0x8 0x18000000 0x8000000>; 278 + 279 + /* 280 + * Define the maximum number of MACs present on the SoC. 281 + */ 282 + dpmacs { 283 + #address-cells = <1>; 284 + #size-cells = <0>; 285 + 286 + dpmac1: dpmac@1 { 287 + compatible = "fsl,qoriq-mc-dpmac"; 288 + reg = <0x1>; 289 + }; 290 + 291 + dpmac2: dpmac@2 { 292 + compatible = "fsl,qoriq-mc-dpmac"; 293 + reg = <0x2>; 294 + }; 295 + 296 + dpmac3: dpmac@3 { 297 + compatible = "fsl,qoriq-mc-dpmac"; 298 + reg = <0x3>; 299 + }; 300 + 301 + dpmac4: dpmac@4 { 302 + compatible = "fsl,qoriq-mc-dpmac"; 303 + reg = <0x4>; 304 + }; 305 + 306 + dpmac5: dpmac@5 { 307 + compatible = "fsl,qoriq-mc-dpmac"; 308 + reg = <0x5>; 309 + }; 310 + 311 + dpmac6: dpmac@6 { 312 + compatible = "fsl,qoriq-mc-dpmac"; 313 + reg = <0x6>; 314 + }; 315 + 316 + dpmac7: dpmac@7 { 317 + compatible = "fsl,qoriq-mc-dpmac"; 318 + reg = <0x7>; 319 + }; 320 + 321 + dpmac8: dpmac@8 { 322 + compatible = "fsl,qoriq-mc-dpmac"; 323 + reg = <0x8>; 324 + }; 325 + 326 + dpmac9: dpmac@9 { 327 + compatible = "fsl,qoriq-mc-dpmac"; 328 + reg = <0x9>; 329 + }; 330 + 331 + dpmac10: dpmac@a { 332 + compatible = "fsl,qoriq-mc-dpmac"; 333 + reg = <0xa>; 334 + }; 335 + 336 + dpmac11: dpmac@b { 337 + compatible = "fsl,qoriq-mc-dpmac"; 338 + reg = <0xb>; 339 + }; 340 + 341 + dpmac12: dpmac@c { 342 + compatible = "fsl,qoriq-mc-dpmac"; 343 + reg = <0xc>; 344 + }; 345 + 346 + dpmac13: dpmac@d { 347 + compatible = "fsl,qoriq-mc-dpmac"; 348 + reg = <0xd>; 349 + }; 350 + 351 + dpmac14: dpmac@e { 352 + compatible = "fsl,qoriq-mc-dpmac"; 353 + reg = <0xe>; 354 + }; 355 + 356 + dpmac15: dpmac@f { 357 + compatible = "fsl,qoriq-mc-dpmac"; 358 + reg = <0xf>; 359 + }; 360 + 361 + dpmac16: dpmac@10 { 362 + compatible = "fsl,qoriq-mc-dpmac"; 363 + reg = <0x10>; 364 + }; 365 + }; 268 366 }; 269 367 270 368 smmu: iommu@5000000 { ··· 416 318 417 319 dspi: dspi@2100000 { 418 320 status = "disabled"; 419 - compatible = "fsl,vf610-dspi"; 321 + compatible = "fsl,ls2080a-dspi", "fsl,ls2085a-dspi"; 420 322 #address-cells = <1>; 421 323 #size-cells = <0>; 422 324 reg = <0x0 0x2100000 0x0 0x10000>; ··· 440 342 }; 441 343 442 344 gpio0: gpio@2300000 { 443 - compatible = "fsl,qoriq-gpio"; 345 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 444 346 reg = <0x0 0x2300000 0x0 0x10000>; 445 347 interrupts = <0 36 0x4>; /* Level high type */ 446 348 gpio-controller; ··· 451 353 }; 452 354 453 355 gpio1: gpio@2310000 { 454 - compatible = "fsl,qoriq-gpio"; 356 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 455 357 reg = <0x0 0x2310000 0x0 0x10000>; 456 358 interrupts = <0 36 0x4>; /* Level high type */ 457 359 gpio-controller; ··· 462 364 }; 463 365 464 366 gpio2: gpio@2320000 { 465 - compatible = "fsl,qoriq-gpio"; 367 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 466 368 reg = <0x0 0x2320000 0x0 0x10000>; 467 369 interrupts = <0 37 0x4>; /* Level high type */ 468 370 gpio-controller; ··· 473 375 }; 474 376 475 377 gpio3: gpio@2330000 { 476 - compatible = "fsl,qoriq-gpio"; 378 + compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio"; 477 379 reg = <0x0 0x2330000 0x0 0x10000>; 478 380 interrupts = <0 37 0x4>; /* Level high type */ 479 381 gpio-controller; ··· 542 444 543 445 qspi: quadspi@20c0000 { 544 446 status = "disabled"; 545 - compatible = "fsl,vf610-qspi"; 447 + compatible = "fsl,ls2080a-qspi", "fsl,ls1021a-qspi"; 546 448 #address-cells = <1>; 547 449 #size-cells = <0>; 548 450 reg = <0x0 0x20c0000 0x0 0x10000>,
+3 -1
arch/arm64/boot/dts/hisilicon/Makefile
··· 1 - dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb hip05-d02.dtb 1 + dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb 2 + dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb 3 + dtb-$(CONFIG_ARCH_HISI) += hip06-d03.dtb 2 4 3 5 always := $(dtb-y) 4 6 subdir-y := $(dts-dirs)
+195 -5
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
··· 6 6 */ 7 7 8 8 /dts-v1/; 9 - 10 - /*Reserved 1MB memory for MCU*/ 11 - /memreserve/ 0x05e00000 0x00100000; 12 - 13 9 #include "hi6220.dtsi" 10 + #include "hikey-pinctrl.dtsi" 11 + #include <dt-bindings/gpio/gpio.h> 14 12 15 13 / { 16 14 model = "HiKey Development Board"; ··· 25 27 stdout-path = "serial3:115200n8"; 26 28 }; 27 29 30 + /* 31 + * Reserve below regions from memory node: 32 + * 33 + * 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using 34 + * 0x06df,f000 - 0x06df,ffff: Mailbox message data 35 + * 0x0740,f000 - 0x0740,ffff: MCU firmware section 36 + * 0x3e00,0000 - 0x3fff,ffff: OP-TEE 37 + */ 28 38 memory@0 { 29 39 device_type = "memory"; 30 - reg = <0x0 0x0 0x0 0x40000000>; 40 + reg = <0x00000000 0x00000000 0x00000000 0x05e00000>, 41 + <0x00000000 0x05f00000 0x00000000 0x00eff000>, 42 + <0x00000000 0x06e00000 0x00000000 0x0060f000>, 43 + <0x00000000 0x07410000 0x00000000 0x36bf0000>; 44 + }; 45 + 46 + soc { 47 + spi0: spi@f7106000 { 48 + status = "ok"; 49 + }; 50 + 51 + i2c0: i2c@f7100000 { 52 + status = "ok"; 53 + }; 54 + 55 + i2c1: i2c@f7101000 { 56 + status = "ok"; 57 + }; 58 + 59 + uart1: uart@f7111000 { 60 + status = "ok"; 61 + }; 62 + 63 + uart2: uart@f7112000 { 64 + status = "ok"; 65 + }; 66 + 67 + uart3: uart@f7113000 { 68 + status = "ok"; 69 + }; 70 + 71 + dwmmc_2: dwmmc2@f723f000 { 72 + ti,non-removable; 73 + non-removable; 74 + /* WL_EN */ 75 + vmmc-supply = <&wlan_en_reg>; 76 + 77 + #address-cells = <0x1>; 78 + #size-cells = <0x0>; 79 + wlcore: wlcore@2 { 80 + compatible = "ti,wl1835"; 81 + reg = <2>; /* sdio func num */ 82 + /* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */ 83 + interrupt-parent = <&gpio1>; 84 + interrupts = <3 IRQ_TYPE_EDGE_RISING>; 85 + }; 86 + }; 87 + 88 + wlan_en_reg: regulator@1 { 89 + compatible = "regulator-fixed"; 90 + regulator-name = "wlan-en-regulator"; 91 + regulator-min-microvolt = <1800000>; 92 + regulator-max-microvolt = <1800000>; 93 + /* WLAN_EN GPIO */ 94 + gpio = <&gpio0 5 0>; 95 + /* WLAN card specific delay */ 96 + startup-delay-us = <70000>; 97 + enable-active-high; 98 + }; 99 + }; 100 + 101 + leds { 102 + compatible = "gpio-leds"; 103 + user_led4 { 104 + label = "user_led4"; 105 + gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */ 106 + linux,default-trigger = "heartbeat"; 107 + }; 108 + 109 + user_led3 { 110 + label = "user_led3"; 111 + gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */ 112 + linux,default-trigger = "mmc0"; 113 + }; 114 + 115 + user_led2 { 116 + label = "user_led2"; 117 + gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */ 118 + linux,default-trigger = "mmc1"; 119 + }; 120 + 121 + user_led1 { 122 + label = "user_led1"; 123 + gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */ 124 + linux,default-trigger = "cpu0"; 125 + }; 126 + 127 + wlan_active_led { 128 + label = "wifi_active"; 129 + gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */ 130 + linux,default-trigger = "phy0tx"; 131 + default-state = "off"; 132 + }; 133 + 134 + bt_active_led { 135 + label = "bt_active"; 136 + gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */ 137 + linux,default-trigger = "hci0rx"; 138 + default-state = "off"; 139 + }; 140 + }; 141 + 142 + pmic: pmic@f8000000 { 143 + compatible = "hisilicon,hi655x-pmic"; 144 + reg = <0x0 0xf8000000 0x0 0x1000>; 145 + interrupt-controller; 146 + #interrupt-cells = <2>; 147 + pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; 148 + 149 + regulators { 150 + ldo2: LDO2 { 151 + regulator-name = "LDO2_2V8"; 152 + regulator-min-microvolt = <2500000>; 153 + regulator-max-microvolt = <3200000>; 154 + regulator-enable-ramp-delay = <120>; 155 + }; 156 + 157 + ldo7: LDO7 { 158 + regulator-name = "LDO7_SDIO"; 159 + regulator-min-microvolt = <1800000>; 160 + regulator-max-microvolt = <3300000>; 161 + regulator-enable-ramp-delay = <120>; 162 + }; 163 + 164 + ldo10: LDO10 { 165 + regulator-name = "LDO10_2V85"; 166 + regulator-min-microvolt = <1800000>; 167 + regulator-max-microvolt = <3000000>; 168 + regulator-enable-ramp-delay = <360>; 169 + }; 170 + 171 + ldo13: LDO13 { 172 + regulator-name = "LDO13_1V8"; 173 + regulator-min-microvolt = <1600000>; 174 + regulator-max-microvolt = <1950000>; 175 + regulator-enable-ramp-delay = <120>; 176 + }; 177 + 178 + ldo14: LDO14 { 179 + regulator-name = "LDO14_2V8"; 180 + regulator-min-microvolt = <2500000>; 181 + regulator-max-microvolt = <3200000>; 182 + regulator-enable-ramp-delay = <120>; 183 + }; 184 + 185 + ldo15: LDO15 { 186 + regulator-name = "LDO15_1V8"; 187 + regulator-min-microvolt = <1600000>; 188 + regulator-max-microvolt = <1950000>; 189 + regulator-boot-on; 190 + regulator-always-on; 191 + regulator-enable-ramp-delay = <120>; 192 + }; 193 + 194 + ldo17: LDO17 { 195 + regulator-name = "LDO17_2V5"; 196 + regulator-min-microvolt = <2500000>; 197 + regulator-max-microvolt = <3200000>; 198 + regulator-enable-ramp-delay = <120>; 199 + }; 200 + 201 + ldo19: LDO19 { 202 + regulator-name = "LDO19_3V0"; 203 + regulator-min-microvolt = <1800000>; 204 + regulator-max-microvolt = <3000000>; 205 + regulator-enable-ramp-delay = <360>; 206 + }; 207 + 208 + ldo21: LDO21 { 209 + regulator-name = "LDO21_1V8"; 210 + regulator-min-microvolt = <1650000>; 211 + regulator-max-microvolt = <2000000>; 212 + regulator-always-on; 213 + regulator-enable-ramp-delay = <120>; 214 + }; 215 + 216 + ldo22: LDO22 { 217 + regulator-name = "LDO22_1V2"; 218 + regulator-min-microvolt = <900000>; 219 + regulator-max-microvolt = <1200000>; 220 + regulator-boot-on; 221 + regulator-always-on; 222 + regulator-enable-ramp-delay = <120>; 223 + }; 224 + }; 31 225 }; 32 226 }; 33 227
+623
arch/arm64/boot/dts/hisilicon/hi6220.dtsi
··· 6 6 7 7 #include <dt-bindings/interrupt-controller/arm-gic.h> 8 8 #include <dt-bindings/clock/hi6220-clock.h> 9 + #include <dt-bindings/pinctrl/hisi.h> 10 + #include <dt-bindings/thermal/thermal.h> 9 11 10 12 / { 11 13 compatible = "hisilicon,hi6220"; ··· 55 53 }; 56 54 }; 57 55 56 + idle-states { 57 + entry-method = "psci"; 58 + 59 + CPU_SLEEP: cpu-sleep { 60 + compatible = "arm,idle-state"; 61 + local-timer-stop; 62 + arm,psci-suspend-param = <0x0010000>; 63 + entry-latency-us = <700>; 64 + exit-latency-us = <250>; 65 + min-residency-us = <1000>; 66 + }; 67 + 68 + CLUSTER_SLEEP: cluster-sleep { 69 + compatible = "arm,idle-state"; 70 + local-timer-stop; 71 + arm,psci-suspend-param = <0x1010000>; 72 + entry-latency-us = <1000>; 73 + exit-latency-us = <700>; 74 + min-residency-us = <2700>; 75 + wakeup-latency-us = <1500>; 76 + }; 77 + }; 78 + 58 79 cpu0: cpu@0 { 59 80 compatible = "arm,cortex-a53", "arm,armv8"; 60 81 device_type = "cpu"; 61 82 reg = <0x0 0x0>; 62 83 enable-method = "psci"; 84 + next-level-cache = <&CLUSTER0_L2>; 85 + clocks = <&stub_clock 0>; 86 + operating-points-v2 = <&cpu_opp_table>; 87 + cooling-min-level = <4>; 88 + cooling-max-level = <0>; 89 + #cooling-cells = <2>; /* min followed by max */ 90 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 91 + dynamic-power-coefficient = <311>; 63 92 }; 64 93 65 94 cpu1: cpu@1 { ··· 98 65 device_type = "cpu"; 99 66 reg = <0x0 0x1>; 100 67 enable-method = "psci"; 68 + next-level-cache = <&CLUSTER0_L2>; 69 + operating-points-v2 = <&cpu_opp_table>; 70 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 101 71 }; 102 72 103 73 cpu2: cpu@2 { ··· 108 72 device_type = "cpu"; 109 73 reg = <0x0 0x2>; 110 74 enable-method = "psci"; 75 + next-level-cache = <&CLUSTER0_L2>; 76 + operating-points-v2 = <&cpu_opp_table>; 77 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 111 78 }; 112 79 113 80 cpu3: cpu@3 { ··· 118 79 device_type = "cpu"; 119 80 reg = <0x0 0x3>; 120 81 enable-method = "psci"; 82 + next-level-cache = <&CLUSTER0_L2>; 83 + operating-points-v2 = <&cpu_opp_table>; 84 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 121 85 }; 122 86 123 87 cpu4: cpu@100 { ··· 128 86 device_type = "cpu"; 129 87 reg = <0x0 0x100>; 130 88 enable-method = "psci"; 89 + next-level-cache = <&CLUSTER1_L2>; 90 + operating-points-v2 = <&cpu_opp_table>; 91 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 131 92 }; 132 93 133 94 cpu5: cpu@101 { ··· 138 93 device_type = "cpu"; 139 94 reg = <0x0 0x101>; 140 95 enable-method = "psci"; 96 + next-level-cache = <&CLUSTER1_L2>; 97 + operating-points-v2 = <&cpu_opp_table>; 98 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 141 99 }; 142 100 143 101 cpu6: cpu@102 { ··· 148 100 device_type = "cpu"; 149 101 reg = <0x0 0x102>; 150 102 enable-method = "psci"; 103 + next-level-cache = <&CLUSTER1_L2>; 104 + operating-points-v2 = <&cpu_opp_table>; 105 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 151 106 }; 152 107 153 108 cpu7: cpu@103 { ··· 158 107 device_type = "cpu"; 159 108 reg = <0x0 0x103>; 160 109 enable-method = "psci"; 110 + next-level-cache = <&CLUSTER1_L2>; 111 + operating-points-v2 = <&cpu_opp_table>; 112 + cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 113 + }; 114 + 115 + CLUSTER0_L2: l2-cache0 { 116 + compatible = "cache"; 117 + }; 118 + 119 + CLUSTER1_L2: l2-cache1 { 120 + compatible = "cache"; 121 + }; 122 + }; 123 + 124 + cpu_opp_table: cpu_opp_table { 125 + compatible = "operating-points-v2"; 126 + opp-shared; 127 + 128 + opp00 { 129 + opp-hz = /bits/ 64 <208000000>; 130 + opp-microvolt = <1040000>; 131 + clock-latency-ns = <500000>; 132 + }; 133 + opp01 { 134 + opp-hz = /bits/ 64 <432000000>; 135 + opp-microvolt = <1040000>; 136 + clock-latency-ns = <500000>; 137 + }; 138 + opp02 { 139 + opp-hz = /bits/ 64 <729000000>; 140 + opp-microvolt = <1090000>; 141 + clock-latency-ns = <500000>; 142 + }; 143 + opp03 { 144 + opp-hz = /bits/ 64 <960000000>; 145 + opp-microvolt = <1180000>; 146 + clock-latency-ns = <500000>; 147 + }; 148 + opp04 { 149 + opp-hz = /bits/ 64 <1200000000>; 150 + opp-microvolt = <1330000>; 151 + clock-latency-ns = <500000>; 161 152 }; 162 153 }; 163 154 ··· 230 137 #size-cells = <2>; 231 138 ranges; 232 139 140 + sram: sram@fff80000 { 141 + compatible = "hisilicon,hi6220-sramctrl", "syscon"; 142 + reg = <0x0 0xfff80000 0x0 0x12000>; 143 + }; 144 + 233 145 ao_ctrl: ao_ctrl@f7800000 { 234 146 compatible = "hisilicon,hi6220-aoctrl", "syscon"; 235 147 reg = <0x0 0xf7800000 0x0 0x2000>; ··· 260 162 #clock-cells = <1>; 261 163 }; 262 164 165 + stub_clock: stub_clock { 166 + compatible = "hisilicon,hi6220-stub-clk"; 167 + hisilicon,hi6220-clk-sram = <&sram>; 168 + #clock-cells = <1>; 169 + mbox-names = "mbox-tx"; 170 + mboxes = <&mailbox 1 0 11>; 171 + }; 172 + 263 173 uart0: uart@f8015000 { /* console */ 264 174 compatible = "arm,pl011", "arm,primecell"; 265 175 reg = <0x0 0xf8015000 0x0 0x1000>; ··· 284 178 clocks = <&sys_ctrl HI6220_UART1_PCLK>, 285 179 <&sys_ctrl HI6220_UART1_PCLK>; 286 180 clock-names = "uartclk", "apb_pclk"; 181 + pinctrl-names = "default"; 182 + pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func1 &uart1_cfg_func2>; 287 183 status = "disabled"; 288 184 }; 289 185 ··· 296 188 clocks = <&sys_ctrl HI6220_UART2_PCLK>, 297 189 <&sys_ctrl HI6220_UART2_PCLK>; 298 190 clock-names = "uartclk", "apb_pclk"; 191 + pinctrl-names = "default"; 192 + pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>; 299 193 status = "disabled"; 300 194 }; 301 195 ··· 308 198 clocks = <&sys_ctrl HI6220_UART3_PCLK>, 309 199 <&sys_ctrl HI6220_UART3_PCLK>; 310 200 clock-names = "uartclk", "apb_pclk"; 201 + pinctrl-names = "default"; 202 + pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>; 203 + status = "disabled"; 311 204 }; 312 205 313 206 uart4: uart@f7114000 { ··· 320 207 clocks = <&sys_ctrl HI6220_UART4_PCLK>, 321 208 <&sys_ctrl HI6220_UART4_PCLK>; 322 209 clock-names = "uartclk", "apb_pclk"; 210 + pinctrl-names = "default"; 211 + pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>; 323 212 status = "disabled"; 213 + }; 214 + 215 + dual_timer0: timer@f8008000 { 216 + compatible = "arm,sp804", "arm,primecell"; 217 + reg = <0x0 0xf8008000 0x0 0x1000>; 218 + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, 219 + <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 220 + clocks = <&ao_ctrl HI6220_TIMER0_PCLK>, 221 + <&ao_ctrl HI6220_TIMER0_PCLK>, 222 + <&ao_ctrl HI6220_TIMER0_PCLK>; 223 + clock-names = "timer1", "timer2", "apb_pclk"; 224 + }; 225 + 226 + pmx0: pinmux@f7010000 { 227 + compatible = "pinctrl-single"; 228 + reg = <0x0 0xf7010000 0x0 0x27c>; 229 + #address-cells = <1>; 230 + #size-cells = <1>; 231 + #gpio-range-cells = <3>; 232 + pinctrl-single,register-width = <32>; 233 + pinctrl-single,function-mask = <7>; 234 + pinctrl-single,gpio-range = < 235 + &range 80 8 MUX_M0 /* gpio 3: [0..7] */ 236 + &range 88 8 MUX_M0 /* gpio 4: [0..7] */ 237 + &range 96 8 MUX_M0 /* gpio 5: [0..7] */ 238 + &range 104 8 MUX_M0 /* gpio 6: [0..7] */ 239 + &range 112 8 MUX_M0 /* gpio 7: [0..7] */ 240 + &range 120 2 MUX_M0 /* gpio 8: [0..1] */ 241 + &range 2 6 MUX_M1 /* gpio 8: [2..7] */ 242 + &range 8 8 MUX_M1 /* gpio 9: [0..7] */ 243 + &range 0 1 MUX_M1 /* gpio 10: [0] */ 244 + &range 16 7 MUX_M1 /* gpio 10: [1..7] */ 245 + &range 23 3 MUX_M1 /* gpio 11: [0..2] */ 246 + &range 28 5 MUX_M1 /* gpio 11: [3..7] */ 247 + &range 33 3 MUX_M1 /* gpio 12: [0..2] */ 248 + &range 43 5 MUX_M1 /* gpio 12: [3..7] */ 249 + &range 48 8 MUX_M1 /* gpio 13: [0..7] */ 250 + &range 56 8 MUX_M1 /* gpio 14: [0..7] */ 251 + &range 74 6 MUX_M1 /* gpio 15: [0..5] */ 252 + &range 122 1 MUX_M1 /* gpio 15: [6] */ 253 + &range 126 1 MUX_M1 /* gpio 15: [7] */ 254 + &range 127 8 MUX_M1 /* gpio 16: [0..7] */ 255 + &range 135 8 MUX_M1 /* gpio 17: [0..7] */ 256 + &range 143 8 MUX_M1 /* gpio 18: [0..7] */ 257 + &range 151 8 MUX_M1 /* gpio 19: [0..7] */ 258 + >; 259 + range: gpio-range { 260 + #pinctrl-single,gpio-range-cells = <3>; 261 + }; 262 + }; 263 + 264 + pmx1: pinmux@f7010800 { 265 + compatible = "pinconf-single"; 266 + reg = <0x0 0xf7010800 0x0 0x28c>; 267 + #address-cells = <1>; 268 + #size-cells = <1>; 269 + pinctrl-single,register-width = <32>; 270 + }; 271 + 272 + pmx2: pinmux@f8001800 { 273 + compatible = "pinconf-single"; 274 + reg = <0x0 0xf8001800 0x0 0x78>; 275 + #address-cells = <1>; 276 + #size-cells = <1>; 277 + pinctrl-single,register-width = <32>; 278 + }; 279 + 280 + gpio0: gpio@f8011000 { 281 + compatible = "arm,pl061", "arm,primecell"; 282 + reg = <0x0 0xf8011000 0x0 0x1000>; 283 + interrupts = <0 52 0x4>; 284 + gpio-controller; 285 + #gpio-cells = <2>; 286 + interrupt-controller; 287 + #interrupt-cells = <2>; 288 + clocks = <&ao_ctrl 2>; 289 + clock-names = "apb_pclk"; 290 + }; 291 + 292 + gpio1: gpio@f8012000 { 293 + compatible = "arm,pl061", "arm,primecell"; 294 + reg = <0x0 0xf8012000 0x0 0x1000>; 295 + interrupts = <0 53 0x4>; 296 + gpio-controller; 297 + #gpio-cells = <2>; 298 + interrupt-controller; 299 + #interrupt-cells = <2>; 300 + clocks = <&ao_ctrl 2>; 301 + clock-names = "apb_pclk"; 302 + }; 303 + 304 + gpio2: gpio@f8013000 { 305 + compatible = "arm,pl061", "arm,primecell"; 306 + reg = <0x0 0xf8013000 0x0 0x1000>; 307 + interrupts = <0 54 0x4>; 308 + gpio-controller; 309 + #gpio-cells = <2>; 310 + interrupt-controller; 311 + #interrupt-cells = <2>; 312 + clocks = <&ao_ctrl 2>; 313 + clock-names = "apb_pclk"; 314 + }; 315 + 316 + gpio3: gpio@f8014000 { 317 + compatible = "arm,pl061", "arm,primecell"; 318 + reg = <0x0 0xf8014000 0x0 0x1000>; 319 + interrupts = <0 55 0x4>; 320 + gpio-controller; 321 + #gpio-cells = <2>; 322 + gpio-ranges = <&pmx0 0 80 8>; 323 + interrupt-controller; 324 + #interrupt-cells = <2>; 325 + clocks = <&ao_ctrl 2>; 326 + clock-names = "apb_pclk"; 327 + }; 328 + 329 + gpio4: gpio@f7020000 { 330 + compatible = "arm,pl061", "arm,primecell"; 331 + reg = <0x0 0xf7020000 0x0 0x1000>; 332 + interrupts = <0 56 0x4>; 333 + gpio-controller; 334 + #gpio-cells = <2>; 335 + gpio-ranges = <&pmx0 0 88 8>; 336 + interrupt-controller; 337 + #interrupt-cells = <2>; 338 + clocks = <&ao_ctrl 2>; 339 + clock-names = "apb_pclk"; 340 + }; 341 + 342 + gpio5: gpio@f7021000 { 343 + compatible = "arm,pl061", "arm,primecell"; 344 + reg = <0x0 0xf7021000 0x0 0x1000>; 345 + interrupts = <0 57 0x4>; 346 + gpio-controller; 347 + #gpio-cells = <2>; 348 + gpio-ranges = <&pmx0 0 96 8>; 349 + interrupt-controller; 350 + #interrupt-cells = <2>; 351 + clocks = <&ao_ctrl 2>; 352 + clock-names = "apb_pclk"; 353 + }; 354 + 355 + gpio6: gpio@f7022000 { 356 + compatible = "arm,pl061", "arm,primecell"; 357 + reg = <0x0 0xf7022000 0x0 0x1000>; 358 + interrupts = <0 58 0x4>; 359 + gpio-controller; 360 + #gpio-cells = <2>; 361 + gpio-ranges = <&pmx0 0 104 8>; 362 + interrupt-controller; 363 + #interrupt-cells = <2>; 364 + clocks = <&ao_ctrl 2>; 365 + clock-names = "apb_pclk"; 366 + }; 367 + 368 + gpio7: gpio@f7023000 { 369 + compatible = "arm,pl061", "arm,primecell"; 370 + reg = <0x0 0xf7023000 0x0 0x1000>; 371 + interrupts = <0 59 0x4>; 372 + gpio-controller; 373 + #gpio-cells = <2>; 374 + gpio-ranges = <&pmx0 0 112 8>; 375 + interrupt-controller; 376 + #interrupt-cells = <2>; 377 + clocks = <&ao_ctrl 2>; 378 + clock-names = "apb_pclk"; 379 + }; 380 + 381 + gpio8: gpio@f7024000 { 382 + compatible = "arm,pl061", "arm,primecell"; 383 + reg = <0x0 0xf7024000 0x0 0x1000>; 384 + interrupts = <0 60 0x4>; 385 + gpio-controller; 386 + #gpio-cells = <2>; 387 + gpio-ranges = <&pmx0 0 120 2 &pmx0 2 2 6>; 388 + interrupt-controller; 389 + #interrupt-cells = <2>; 390 + clocks = <&ao_ctrl 2>; 391 + clock-names = "apb_pclk"; 392 + }; 393 + 394 + gpio9: gpio@f7025000 { 395 + compatible = "arm,pl061", "arm,primecell"; 396 + reg = <0x0 0xf7025000 0x0 0x1000>; 397 + interrupts = <0 61 0x4>; 398 + gpio-controller; 399 + #gpio-cells = <2>; 400 + gpio-ranges = <&pmx0 0 8 8>; 401 + interrupt-controller; 402 + #interrupt-cells = <2>; 403 + clocks = <&ao_ctrl 2>; 404 + clock-names = "apb_pclk"; 405 + }; 406 + 407 + gpio10: gpio@f7026000 { 408 + compatible = "arm,pl061", "arm,primecell"; 409 + reg = <0x0 0xf7026000 0x0 0x1000>; 410 + interrupts = <0 62 0x4>; 411 + gpio-controller; 412 + #gpio-cells = <2>; 413 + gpio-ranges = <&pmx0 0 0 1 &pmx0 1 16 7>; 414 + interrupt-controller; 415 + #interrupt-cells = <2>; 416 + clocks = <&ao_ctrl 2>; 417 + clock-names = "apb_pclk"; 418 + }; 419 + 420 + gpio11: gpio@f7027000 { 421 + compatible = "arm,pl061", "arm,primecell"; 422 + reg = <0x0 0xf7027000 0x0 0x1000>; 423 + interrupts = <0 63 0x4>; 424 + gpio-controller; 425 + #gpio-cells = <2>; 426 + gpio-ranges = <&pmx0 0 23 3 &pmx0 3 28 5>; 427 + interrupt-controller; 428 + #interrupt-cells = <2>; 429 + clocks = <&ao_ctrl 2>; 430 + clock-names = "apb_pclk"; 431 + }; 432 + 433 + gpio12: gpio@f7028000 { 434 + compatible = "arm,pl061", "arm,primecell"; 435 + reg = <0x0 0xf7028000 0x0 0x1000>; 436 + interrupts = <0 64 0x4>; 437 + gpio-controller; 438 + #gpio-cells = <2>; 439 + gpio-ranges = <&pmx0 0 33 3 &pmx0 3 43 5>; 440 + interrupt-controller; 441 + #interrupt-cells = <2>; 442 + clocks = <&ao_ctrl 2>; 443 + clock-names = "apb_pclk"; 444 + }; 445 + 446 + gpio13: gpio@f7029000 { 447 + compatible = "arm,pl061", "arm,primecell"; 448 + reg = <0x0 0xf7029000 0x0 0x1000>; 449 + interrupts = <0 65 0x4>; 450 + gpio-controller; 451 + #gpio-cells = <2>; 452 + gpio-ranges = <&pmx0 0 48 8>; 453 + interrupt-controller; 454 + #interrupt-cells = <2>; 455 + clocks = <&ao_ctrl 2>; 456 + clock-names = "apb_pclk"; 457 + }; 458 + 459 + gpio14: gpio@f702a000 { 460 + compatible = "arm,pl061", "arm,primecell"; 461 + reg = <0x0 0xf702a000 0x0 0x1000>; 462 + interrupts = <0 66 0x4>; 463 + gpio-controller; 464 + #gpio-cells = <2>; 465 + gpio-ranges = <&pmx0 0 56 8>; 466 + interrupt-controller; 467 + #interrupt-cells = <2>; 468 + clocks = <&ao_ctrl 2>; 469 + clock-names = "apb_pclk"; 470 + }; 471 + 472 + gpio15: gpio@f702b000 { 473 + compatible = "arm,pl061", "arm,primecell"; 474 + reg = <0x0 0xf702b000 0x0 0x1000>; 475 + interrupts = <0 67 0x4>; 476 + gpio-controller; 477 + #gpio-cells = <2>; 478 + gpio-ranges = < 479 + &pmx0 0 74 6 480 + &pmx0 6 122 1 481 + &pmx0 7 126 1 482 + >; 483 + interrupt-controller; 484 + #interrupt-cells = <2>; 485 + clocks = <&ao_ctrl 2>; 486 + clock-names = "apb_pclk"; 487 + }; 488 + 489 + gpio16: gpio@f702c000 { 490 + compatible = "arm,pl061", "arm,primecell"; 491 + reg = <0x0 0xf702c000 0x0 0x1000>; 492 + interrupts = <0 68 0x4>; 493 + gpio-controller; 494 + #gpio-cells = <2>; 495 + gpio-ranges = <&pmx0 0 127 8>; 496 + interrupt-controller; 497 + #interrupt-cells = <2>; 498 + clocks = <&ao_ctrl 2>; 499 + clock-names = "apb_pclk"; 500 + }; 501 + 502 + gpio17: gpio@f702d000 { 503 + compatible = "arm,pl061", "arm,primecell"; 504 + reg = <0x0 0xf702d000 0x0 0x1000>; 505 + interrupts = <0 69 0x4>; 506 + gpio-controller; 507 + #gpio-cells = <2>; 508 + gpio-ranges = <&pmx0 0 135 8>; 509 + interrupt-controller; 510 + #interrupt-cells = <2>; 511 + clocks = <&ao_ctrl 2>; 512 + clock-names = "apb_pclk"; 513 + }; 514 + 515 + gpio18: gpio@f702e000 { 516 + compatible = "arm,pl061", "arm,primecell"; 517 + reg = <0x0 0xf702e000 0x0 0x1000>; 518 + interrupts = <0 70 0x4>; 519 + gpio-controller; 520 + #gpio-cells = <2>; 521 + gpio-ranges = <&pmx0 0 143 8>; 522 + interrupt-controller; 523 + #interrupt-cells = <2>; 524 + clocks = <&ao_ctrl 2>; 525 + clock-names = "apb_pclk"; 526 + }; 527 + 528 + gpio19: gpio@f702f000 { 529 + compatible = "arm,pl061", "arm,primecell"; 530 + reg = <0x0 0xf702f000 0x0 0x1000>; 531 + interrupts = <0 71 0x4>; 532 + gpio-controller; 533 + #gpio-cells = <2>; 534 + gpio-ranges = <&pmx0 0 151 8>; 535 + interrupt-controller; 536 + #interrupt-cells = <2>; 537 + clocks = <&ao_ctrl 2>; 538 + clock-names = "apb_pclk"; 539 + }; 540 + 541 + spi0: spi@f7106000 { 542 + compatible = "arm,pl022", "arm,primecell"; 543 + reg = <0x0 0xf7106000 0x0 0x1000>; 544 + interrupts = <0 50 4>; 545 + bus-id = <0>; 546 + enable-dma = <0>; 547 + clocks = <&sys_ctrl HI6220_SPI_CLK>; 548 + clock-names = "apb_pclk"; 549 + pinctrl-names = "default"; 550 + pinctrl-0 = <&spi0_pmx_func &spi0_cfg_func>; 551 + num-cs = <1>; 552 + cs-gpios = <&gpio6 2 0>; 553 + status = "disabled"; 554 + }; 555 + 556 + i2c0: i2c@f7100000 { 557 + compatible = "snps,designware-i2c"; 558 + reg = <0x0 0xf7100000 0x0 0x1000>; 559 + interrupts = <0 44 4>; 560 + clocks = <&sys_ctrl HI6220_I2C0_CLK>; 561 + i2c-sda-hold-time-ns = <300>; 562 + pinctrl-names = "default"; 563 + pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>; 564 + status = "disabled"; 565 + }; 566 + 567 + i2c1: i2c@f7101000 { 568 + compatible = "snps,designware-i2c"; 569 + reg = <0x0 0xf7101000 0x0 0x1000>; 570 + clocks = <&sys_ctrl HI6220_I2C1_CLK>; 571 + interrupts = <0 45 4>; 572 + i2c-sda-hold-time-ns = <300>; 573 + pinctrl-names = "default"; 574 + pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>; 575 + status = "disabled"; 576 + }; 577 + 578 + i2c2: i2c@f7102000 { 579 + compatible = "snps,designware-i2c"; 580 + reg = <0x0 0xf7102000 0x0 0x1000>; 581 + clocks = <&sys_ctrl HI6220_I2C2_CLK>; 582 + interrupts = <0 46 4>; 583 + i2c-sda-hold-time-ns = <300>; 584 + pinctrl-names = "default"; 585 + pinctrl-0 = <&i2c2_pmx_func &i2c2_cfg_func>; 586 + status = "disabled"; 587 + }; 588 + 589 + fixed_5v_hub: regulator@0 { 590 + compatible = "regulator-fixed"; 591 + regulator-name = "fixed_5v_hub"; 592 + regulator-min-microvolt = <5000000>; 593 + regulator-max-microvolt = <5000000>; 594 + regulator-boot-on; 595 + gpio = <&gpio0 7 0>; 596 + regulator-always-on; 597 + }; 598 + 599 + usb_phy: usbphy { 600 + compatible = "hisilicon,hi6220-usb-phy"; 601 + #phy-cells = <0>; 602 + phy-supply = <&fixed_5v_hub>; 603 + hisilicon,peripheral-syscon = <&sys_ctrl>; 604 + }; 605 + 606 + usb: usb@f72c0000 { 607 + compatible = "hisilicon,hi6220-usb"; 608 + reg = <0x0 0xf72c0000 0x0 0x40000>; 609 + phys = <&usb_phy>; 610 + phy-names = "usb2-phy"; 611 + clocks = <&sys_ctrl HI6220_USBOTG_HCLK>; 612 + clock-names = "otg"; 613 + dr_mode = "otg"; 614 + g-use-dma; 615 + g-rx-fifo-size = <512>; 616 + g-np-tx-fifo-size = <128>; 617 + g-tx-fifo-size = <128 128 128 128 128 128>; 618 + interrupts = <0 77 0x4>; 619 + }; 620 + 621 + mailbox: mailbox@f7510000 { 622 + compatible = "hisilicon,hi6220-mbox"; 623 + reg = <0x0 0xf7510000 0x0 0x1000>, /* IPC_S */ 624 + <0x0 0x06dff800 0x0 0x0800>; /* Mailbox buffer */ 625 + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 626 + #mbox-cells = <3>; 627 + }; 628 + 629 + dwmmc_0: dwmmc0@f723d000 { 630 + compatible = "hisilicon,hi6220-dw-mshc"; 631 + num-slots = <0x1>; 632 + cap-mmc-highspeed; 633 + non-removable; 634 + reg = <0x0 0xf723d000 0x0 0x1000>; 635 + interrupts = <0x0 0x48 0x4>; 636 + clocks = <&sys_ctrl 2>, <&sys_ctrl 1>; 637 + clock-names = "ciu", "biu"; 638 + bus-width = <0x8>; 639 + vmmc-supply = <&ldo19>; 640 + pinctrl-names = "default"; 641 + pinctrl-0 = <&emmc_pmx_func &emmc_clk_cfg_func 642 + &emmc_cfg_func &emmc_rst_cfg_func>; 643 + }; 644 + 645 + dwmmc_1: dwmmc1@f723e000 { 646 + compatible = "hisilicon,hi6220-dw-mshc"; 647 + num-slots = <0x1>; 648 + card-detect-delay = <200>; 649 + hisilicon,peripheral-syscon = <&ao_ctrl>; 650 + cap-sd-highspeed; 651 + reg = <0x0 0xf723e000 0x0 0x1000>; 652 + interrupts = <0x0 0x49 0x4>; 653 + #address-cells = <0x1>; 654 + #size-cells = <0x0>; 655 + clocks = <&sys_ctrl 4>, <&sys_ctrl 3>; 656 + clock-names = "ciu", "biu"; 657 + vqmmc-supply = <&ldo7>; 658 + vmmc-supply = <&ldo10>; 659 + bus-width = <0x4>; 660 + disable-wp; 661 + cd-gpios = <&gpio1 0 1>; 662 + pinctrl-names = "default", "idle"; 663 + pinctrl-0 = <&sd_pmx_func &sd_clk_cfg_func &sd_cfg_func>; 664 + pinctrl-1 = <&sd_pmx_idle &sd_clk_cfg_idle &sd_cfg_idle>; 665 + }; 666 + 667 + dwmmc_2: dwmmc2@f723f000 { 668 + compatible = "hisilicon,hi6220-dw-mshc"; 669 + num-slots = <0x1>; 670 + reg = <0x0 0xf723f000 0x0 0x1000>; 671 + interrupts = <0x0 0x4a 0x4>; 672 + clocks = <&sys_ctrl HI6220_MMC2_CIUCLK>, <&sys_ctrl HI6220_MMC2_CLK>; 673 + clock-names = "ciu", "biu"; 674 + bus-width = <0x4>; 675 + broken-cd; 676 + pinctrl-names = "default", "idle"; 677 + pinctrl-0 = <&sdio_pmx_func &sdio_clk_cfg_func &sdio_cfg_func>; 678 + pinctrl-1 = <&sdio_pmx_idle &sdio_clk_cfg_idle &sdio_cfg_idle>; 679 + }; 680 + 681 + tsensor: tsensor@0,f7030700 { 682 + compatible = "hisilicon,tsensor"; 683 + reg = <0x0 0xf7030700 0x0 0x1000>; 684 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 685 + clocks = <&sys_ctrl 22>; 686 + clock-names = "thermal_clk"; 687 + #thermal-sensor-cells = <1>; 688 + }; 689 + 690 + thermal-zones { 691 + 692 + cls0: cls0 { 693 + polling-delay = <1000>; 694 + polling-delay-passive = <100>; 695 + sustainable-power = <3326>; 696 + 697 + /* sensor ID */ 698 + thermal-sensors = <&tsensor 2>; 699 + 700 + trips { 701 + threshold: trip-point@0 { 702 + temperature = <65000>; 703 + hysteresis = <0>; 704 + type = "passive"; 705 + }; 706 + 707 + target: trip-point@1 { 708 + temperature = <75000>; 709 + hysteresis = <0>; 710 + type = "passive"; 711 + }; 712 + }; 713 + 714 + cooling-maps { 715 + map0 { 716 + trip = <&target>; 717 + cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 718 + }; 719 + }; 720 + }; 324 721 }; 325 722 }; 326 723 };
+705
arch/arm64/boot/dts/hisilicon/hikey-pinctrl.dtsi
··· 1 + /* 2 + * pinctrl dts fils for Hislicon HiKey development board 3 + * 4 + */ 5 + #include <dt-bindings/pinctrl/hisi.h> 6 + 7 + / { 8 + soc { 9 + pmx0: pinmux@f7010000 { 10 + pinctrl-names = "default"; 11 + pinctrl-0 = < 12 + &boot_sel_pmx_func 13 + &hkadc_ssi_pmx_func 14 + &codec_clk_pmx_func 15 + &pwm_in_pmx_func 16 + &bl_pwm_pmx_func 17 + >; 18 + 19 + boot_sel_pmx_func: boot_sel_pmx_func { 20 + pinctrl-single,pins = < 21 + 0x0 MUX_M0 /* BOOT_SEL (IOMG000) */ 22 + >; 23 + }; 24 + 25 + emmc_pmx_func: emmc_pmx_func { 26 + pinctrl-single,pins = < 27 + 0x100 MUX_M0 /* EMMC_CLK (IOMG064) */ 28 + 0x104 MUX_M0 /* EMMC_CMD (IOMG065) */ 29 + 0x108 MUX_M0 /* EMMC_DATA0 (IOMG066) */ 30 + 0x10c MUX_M0 /* EMMC_DATA1 (IOMG067) */ 31 + 0x110 MUX_M0 /* EMMC_DATA2 (IOMG068) */ 32 + 0x114 MUX_M0 /* EMMC_DATA3 (IOMG069) */ 33 + 0x118 MUX_M0 /* EMMC_DATA4 (IOMG070) */ 34 + 0x11c MUX_M0 /* EMMC_DATA5 (IOMG071) */ 35 + 0x120 MUX_M0 /* EMMC_DATA6 (IOMG072) */ 36 + 0x124 MUX_M0 /* EMMC_DATA7 (IOMG073) */ 37 + >; 38 + }; 39 + 40 + sd_pmx_func: sd_pmx_func { 41 + pinctrl-single,pins = < 42 + 0xc MUX_M0 /* SD_CLK (IOMG003) */ 43 + 0x10 MUX_M0 /* SD_CMD (IOMG004) */ 44 + 0x14 MUX_M0 /* SD_DATA0 (IOMG005) */ 45 + 0x18 MUX_M0 /* SD_DATA1 (IOMG006) */ 46 + 0x1c MUX_M0 /* SD_DATA2 (IOMG007) */ 47 + 0x20 MUX_M0 /* SD_DATA3 (IOMG008) */ 48 + >; 49 + }; 50 + sd_pmx_idle: sd_pmx_idle { 51 + pinctrl-single,pins = < 52 + 0xc MUX_M1 /* SD_CLK (IOMG003) */ 53 + 0x10 MUX_M1 /* SD_CMD (IOMG004) */ 54 + 0x14 MUX_M1 /* SD_DATA0 (IOMG005) */ 55 + 0x18 MUX_M1 /* SD_DATA1 (IOMG006) */ 56 + 0x1c MUX_M1 /* SD_DATA2 (IOMG007) */ 57 + 0x20 MUX_M1 /* SD_DATA3 (IOMG008) */ 58 + >; 59 + }; 60 + 61 + sdio_pmx_func: sdio_pmx_func { 62 + pinctrl-single,pins = < 63 + 0x128 MUX_M0 /* SDIO_CLK (IOMG074) */ 64 + 0x12c MUX_M0 /* SDIO_CMD (IOMG075) */ 65 + 0x130 MUX_M0 /* SDIO_DATA0 (IOMG076) */ 66 + 0x134 MUX_M0 /* SDIO_DATA1 (IOMG077) */ 67 + 0x138 MUX_M0 /* SDIO_DATA2 (IOMG078) */ 68 + 0x13c MUX_M0 /* SDIO_DATA3 (IOMG079) */ 69 + >; 70 + }; 71 + sdio_pmx_idle: sdio_pmx_idle { 72 + pinctrl-single,pins = < 73 + 0x128 MUX_M1 /* SDIO_CLK (IOMG074) */ 74 + 0x12c MUX_M1 /* SDIO_CMD (IOMG075) */ 75 + 0x130 MUX_M1 /* SDIO_DATA0 (IOMG076) */ 76 + 0x134 MUX_M1 /* SDIO_DATA1 (IOMG077) */ 77 + 0x138 MUX_M1 /* SDIO_DATA2 (IOMG078) */ 78 + 0x13c MUX_M1 /* SDIO_DATA3 (IOMG079) */ 79 + >; 80 + }; 81 + 82 + isp_pmx_func: isp_pmx_func { 83 + pinctrl-single,pins = < 84 + 0x24 MUX_M0 /* ISP_PWDN0 (IOMG009) */ 85 + 0x28 MUX_M0 /* ISP_PWDN1 (IOMG010) */ 86 + 0x2c MUX_M0 /* ISP_PWDN2 (IOMG011) */ 87 + 0x30 MUX_M1 /* ISP_SHUTTER0 (IOMG012) */ 88 + 0x34 MUX_M1 /* ISP_SHUTTER1 (IOMG013) */ 89 + 0x38 MUX_M1 /* ISP_PWM (IOMG014) */ 90 + 0x3c MUX_M0 /* ISP_CCLK0 (IOMG015) */ 91 + 0x40 MUX_M0 /* ISP_CCLK1 (IOMG016) */ 92 + 0x44 MUX_M0 /* ISP_RESETB0 (IOMG017) */ 93 + 0x48 MUX_M0 /* ISP_RESETB1 (IOMG018) */ 94 + 0x4c MUX_M1 /* ISP_STROBE0 (IOMG019) */ 95 + 0x50 MUX_M1 /* ISP_STROBE1 (IOMG020) */ 96 + 0x54 MUX_M0 /* ISP_SDA0 (IOMG021) */ 97 + 0x58 MUX_M0 /* ISP_SCL0 (IOMG022) */ 98 + 0x5c MUX_M0 /* ISP_SDA1 (IOMG023) */ 99 + 0x60 MUX_M0 /* ISP_SCL1 (IOMG024) */ 100 + >; 101 + }; 102 + 103 + hkadc_ssi_pmx_func: hkadc_ssi_pmx_func { 104 + pinctrl-single,pins = < 105 + 0x68 MUX_M0 /* HKADC_SSI (IOMG026) */ 106 + >; 107 + }; 108 + 109 + codec_clk_pmx_func: codec_clk_pmx_func { 110 + pinctrl-single,pins = < 111 + 0x6c MUX_M0 /* CODEC_CLK (IOMG027) */ 112 + >; 113 + }; 114 + 115 + codec_pmx_func: codec_pmx_func { 116 + pinctrl-single,pins = < 117 + 0x70 MUX_M1 /* DMIC_CLK (IOMG028) */ 118 + 0x74 MUX_M0 /* CODEC_SYNC (IOMG029) */ 119 + 0x78 MUX_M0 /* CODEC_DI (IOMG030) */ 120 + 0x7c MUX_M0 /* CODEC_DO (IOMG031) */ 121 + >; 122 + }; 123 + 124 + fm_pmx_func: fm_pmx_func { 125 + pinctrl-single,pins = < 126 + 0x80 MUX_M1 /* FM_XCLK (IOMG032) */ 127 + 0x84 MUX_M1 /* FM_XFS (IOMG033) */ 128 + 0x88 MUX_M1 /* FM_DI (IOMG034) */ 129 + 0x8c MUX_M1 /* FM_DO (IOMG035) */ 130 + >; 131 + }; 132 + 133 + bt_pmx_func: bt_pmx_func { 134 + pinctrl-single,pins = < 135 + 0x90 MUX_M0 /* BT_XCLK (IOMG036) */ 136 + 0x94 MUX_M0 /* BT_XFS (IOMG037) */ 137 + 0x98 MUX_M0 /* BT_DI (IOMG038) */ 138 + 0x9c MUX_M0 /* BT_DO (IOMG039) */ 139 + >; 140 + }; 141 + 142 + pwm_in_pmx_func: pwm_in_pmx_func { 143 + pinctrl-single,pins = < 144 + 0xb8 MUX_M1 /* PWM_IN (IOMG046) */ 145 + >; 146 + }; 147 + 148 + bl_pwm_pmx_func: bl_pwm_pmx_func { 149 + pinctrl-single,pins = < 150 + 0xbc MUX_M1 /* BL_PWM (IOMG047) */ 151 + >; 152 + }; 153 + 154 + uart0_pmx_func: uart0_pmx_func { 155 + pinctrl-single,pins = < 156 + 0xc0 MUX_M0 /* UART0_RXD (IOMG048) */ 157 + 0xc4 MUX_M0 /* UART0_TXD (IOMG049) */ 158 + >; 159 + }; 160 + 161 + uart1_pmx_func: uart1_pmx_func { 162 + pinctrl-single,pins = < 163 + 0xc8 MUX_M0 /* UART1_CTS_N (IOMG050) */ 164 + 0xcc MUX_M0 /* UART1_RTS_N (IOMG051) */ 165 + 0xd0 MUX_M0 /* UART1_RXD (IOMG052) */ 166 + 0xd4 MUX_M0 /* UART1_TXD (IOMG053) */ 167 + >; 168 + }; 169 + 170 + uart2_pmx_func: uart2_pmx_func { 171 + pinctrl-single,pins = < 172 + 0xd8 MUX_M0 /* UART2_CTS_N (IOMG054) */ 173 + 0xdc MUX_M0 /* UART2_RTS_N (IOMG055) */ 174 + 0xe0 MUX_M0 /* UART2_RXD (IOMG056) */ 175 + 0xe4 MUX_M0 /* UART2_TXD (IOMG057) */ 176 + >; 177 + }; 178 + 179 + uart3_pmx_func: uart3_pmx_func { 180 + pinctrl-single,pins = < 181 + 0x180 MUX_M1 /* UART3_CTS_N (IOMG096) */ 182 + 0x184 MUX_M1 /* UART3_RTS_N (IOMG097) */ 183 + 0x188 MUX_M1 /* UART3_RXD (IOMG098) */ 184 + 0x18c MUX_M1 /* UART3_TXD (IOMG099) */ 185 + >; 186 + }; 187 + 188 + uart4_pmx_func: uart4_pmx_func { 189 + pinctrl-single,pins = < 190 + 0x1d0 MUX_M1 /* UART4_CTS_N (IOMG116) */ 191 + 0x1d4 MUX_M1 /* UART4_RTS_N (IOMG117) */ 192 + 0x1d8 MUX_M1 /* UART4_RXD (IOMG118) */ 193 + 0x1dc MUX_M1 /* UART4_TXD (IOMG119) */ 194 + >; 195 + }; 196 + 197 + uart5_pmx_func: uart5_pmx_func { 198 + pinctrl-single,pins = < 199 + 0x1c8 MUX_M1 /* UART5_RXD (IOMG114) */ 200 + 0x1cc MUX_M1 /* UART5_TXD (IOMG115) */ 201 + >; 202 + }; 203 + 204 + i2c0_pmx_func: i2c0_pmx_func { 205 + pinctrl-single,pins = < 206 + 0xe8 MUX_M0 /* I2C0_SCL (IOMG058) */ 207 + 0xec MUX_M0 /* I2C0_SDA (IOMG059) */ 208 + >; 209 + }; 210 + 211 + i2c1_pmx_func: i2c1_pmx_func { 212 + pinctrl-single,pins = < 213 + 0xf0 MUX_M0 /* I2C1_SCL (IOMG060) */ 214 + 0xf4 MUX_M0 /* I2C1_SDA (IOMG061) */ 215 + >; 216 + }; 217 + 218 + i2c2_pmx_func: i2c2_pmx_func { 219 + pinctrl-single,pins = < 220 + 0xf8 MUX_M0 /* I2C2_SCL (IOMG062) */ 221 + 0xfc MUX_M0 /* I2C2_SDA (IOMG063) */ 222 + >; 223 + }; 224 + 225 + spi0_pmx_func: spi0_pmx_func { 226 + pinctrl-single,pins = < 227 + 0x1a0 MUX_M1 /* SPI0_DI (IOMG104) */ 228 + 0x1a4 MUX_M1 /* SPI0_DO (IOMG105) */ 229 + 0x1a8 MUX_M1 /* SPI0_CS_N (IOMG106) */ 230 + 0x1ac MUX_M1 /* SPI0_CLK (IOMG107) */ 231 + >; 232 + }; 233 + }; 234 + 235 + pmx1: pinmux@f7010800 { 236 + 237 + pinctrl-names = "default"; 238 + pinctrl-0 = < 239 + &boot_sel_cfg_func 240 + &hkadc_ssi_cfg_func 241 + &codec_clk_cfg_func 242 + &pwm_in_cfg_func 243 + &bl_pwm_cfg_func 244 + >; 245 + 246 + boot_sel_cfg_func: boot_sel_cfg_func { 247 + pinctrl-single,pins = < 248 + 0x0 0x0 /* BOOT_SEL (IOCFG000) */ 249 + >; 250 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 251 + pinctrl-single,bias-pullup = <PULL_UP PULL_UP PULL_DIS PULL_UP>; 252 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 253 + }; 254 + 255 + hkadc_ssi_cfg_func: hkadc_ssi_cfg_func { 256 + pinctrl-single,pins = < 257 + 0x6c 0x0 /* HKADC_SSI (IOCFG027) */ 258 + >; 259 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 260 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 261 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 262 + }; 263 + 264 + emmc_clk_cfg_func: emmc_clk_cfg_func { 265 + pinctrl-single,pins = < 266 + 0x104 0x0 /* EMMC_CLK (IOCFG065) */ 267 + >; 268 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 269 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 270 + pinctrl-single,drive-strength = <DRIVE1_08MA DRIVE_MASK>; 271 + }; 272 + 273 + emmc_cfg_func: emmc_cfg_func { 274 + pinctrl-single,pins = < 275 + 0x108 0x0 /* EMMC_CMD (IOCFG066) */ 276 + 0x10c 0x0 /* EMMC_DATA0 (IOCFG067) */ 277 + 0x110 0x0 /* EMMC_DATA1 (IOCFG068) */ 278 + 0x114 0x0 /* EMMC_DATA2 (IOCFG069) */ 279 + 0x118 0x0 /* EMMC_DATA3 (IOCFG070) */ 280 + 0x11c 0x0 /* EMMC_DATA4 (IOCFG071) */ 281 + 0x120 0x0 /* EMMC_DATA5 (IOCFG072) */ 282 + 0x124 0x0 /* EMMC_DATA6 (IOCFG073) */ 283 + 0x128 0x0 /* EMMC_DATA7 (IOCFG074) */ 284 + >; 285 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 286 + pinctrl-single,bias-pullup = <PULL_UP PULL_UP PULL_DIS PULL_UP>; 287 + pinctrl-single,drive-strength = <DRIVE1_04MA DRIVE_MASK>; 288 + }; 289 + 290 + emmc_rst_cfg_func: emmc_rst_cfg_func { 291 + pinctrl-single,pins = < 292 + 0x12c 0x0 /* EMMC_RST_N (IOCFG075) */ 293 + >; 294 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 295 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 296 + pinctrl-single,drive-strength = <DRIVE1_04MA DRIVE_MASK>; 297 + }; 298 + 299 + sd_clk_cfg_func: sd_clk_cfg_func { 300 + pinctrl-single,pins = < 301 + 0xc 0x0 /* SD_CLK (IOCFG003) */ 302 + >; 303 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 304 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 305 + pinctrl-single,drive-strength = <DRIVE1_10MA DRIVE_MASK>; 306 + }; 307 + sd_clk_cfg_idle: sd_clk_cfg_idle { 308 + pinctrl-single,pins = < 309 + 0xc 0x0 /* SD_CLK (IOCFG003) */ 310 + >; 311 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 312 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 313 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 314 + }; 315 + 316 + sd_cfg_func: sd_cfg_func { 317 + pinctrl-single,pins = < 318 + 0x10 0x0 /* SD_CMD (IOCFG004) */ 319 + 0x14 0x0 /* SD_DATA0 (IOCFG005) */ 320 + 0x18 0x0 /* SD_DATA1 (IOCFG006) */ 321 + 0x1c 0x0 /* SD_DATA2 (IOCFG007) */ 322 + 0x20 0x0 /* SD_DATA3 (IOCFG008) */ 323 + >; 324 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 325 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 326 + pinctrl-single,drive-strength = <DRIVE1_08MA DRIVE_MASK>; 327 + }; 328 + sd_cfg_idle: sd_cfg_idle { 329 + pinctrl-single,pins = < 330 + 0x10 0x0 /* SD_CMD (IOCFG004) */ 331 + 0x14 0x0 /* SD_DATA0 (IOCFG005) */ 332 + 0x18 0x0 /* SD_DATA1 (IOCFG006) */ 333 + 0x1c 0x0 /* SD_DATA2 (IOCFG007) */ 334 + 0x20 0x0 /* SD_DATA3 (IOCFG008) */ 335 + >; 336 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 337 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 338 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 339 + }; 340 + 341 + sdio_clk_cfg_func: sdio_clk_cfg_func { 342 + pinctrl-single,pins = < 343 + 0x134 0x0 /* SDIO_CLK (IOCFG077) */ 344 + >; 345 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 346 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 347 + pinctrl-single,drive-strength = <DRIVE1_08MA DRIVE_MASK>; 348 + }; 349 + sdio_clk_cfg_idle: sdio_clk_cfg_idle { 350 + pinctrl-single,pins = < 351 + 0x134 0x0 /* SDIO_CLK (IOCFG077) */ 352 + >; 353 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 354 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 355 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 356 + }; 357 + 358 + sdio_cfg_func: sdio_cfg_func { 359 + pinctrl-single,pins = < 360 + 0x138 0x0 /* SDIO_CMD (IOCFG078) */ 361 + 0x13c 0x0 /* SDIO_DATA0 (IOCFG079) */ 362 + 0x140 0x0 /* SDIO_DATA1 (IOCFG080) */ 363 + 0x144 0x0 /* SDIO_DATA2 (IOCFG081) */ 364 + 0x148 0x0 /* SDIO_DATA3 (IOCFG082) */ 365 + >; 366 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 367 + pinctrl-single,bias-pullup = <PULL_UP PULL_UP PULL_DIS PULL_UP>; 368 + pinctrl-single,drive-strength = <DRIVE1_04MA DRIVE_MASK>; 369 + }; 370 + sdio_cfg_idle: sdio_cfg_idle { 371 + pinctrl-single,pins = < 372 + 0x138 0x0 /* SDIO_CMD (IOCFG078) */ 373 + 0x13c 0x0 /* SDIO_DATA0 (IOCFG079) */ 374 + 0x140 0x0 /* SDIO_DATA1 (IOCFG080) */ 375 + 0x144 0x0 /* SDIO_DATA2 (IOCFG081) */ 376 + 0x148 0x0 /* SDIO_DATA3 (IOCFG082) */ 377 + >; 378 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 379 + pinctrl-single,bias-pullup = <PULL_UP PULL_UP PULL_DIS PULL_UP>; 380 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 381 + }; 382 + 383 + isp_cfg_func1: isp_cfg_func1 { 384 + pinctrl-single,pins = < 385 + 0x28 0x0 /* ISP_PWDN0 (IOCFG010) */ 386 + 0x2c 0x0 /* ISP_PWDN1 (IOCFG011) */ 387 + 0x30 0x0 /* ISP_PWDN2 (IOCFG012) */ 388 + 0x34 0x0 /* ISP_SHUTTER0 (IOCFG013) */ 389 + 0x38 0x0 /* ISP_SHUTTER1 (IOCFG014) */ 390 + 0x3c 0x0 /* ISP_PWM (IOCFG015) */ 391 + 0x40 0x0 /* ISP_CCLK0 (IOCFG016) */ 392 + 0x44 0x0 /* ISP_CCLK1 (IOCFG017) */ 393 + 0x48 0x0 /* ISP_RESETB0 (IOCFG018) */ 394 + 0x4c 0x0 /* ISP_RESETB1 (IOCFG019) */ 395 + 0x50 0x0 /* ISP_STROBE0 (IOCFG020) */ 396 + 0x58 0x0 /* ISP_SDA0 (IOCFG022) */ 397 + 0x5c 0x0 /* ISP_SCL0 (IOCFG023) */ 398 + 0x60 0x0 /* ISP_SDA1 (IOCFG024) */ 399 + 0x64 0x0 /* ISP_SCL1 (IOCFG025) */ 400 + >; 401 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 402 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 403 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 404 + }; 405 + isp_cfg_idle1: isp_cfg_idle1 { 406 + pinctrl-single,pins = < 407 + 0x34 0x0 /* ISP_SHUTTER0 (IOCFG013) */ 408 + 0x38 0x0 /* ISP_SHUTTER1 (IOCFG014) */ 409 + >; 410 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 411 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 412 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 413 + }; 414 + 415 + isp_cfg_func2: isp_cfg_func2 { 416 + pinctrl-single,pins = < 417 + 0x54 0x0 /* ISP_STROBE1 (IOCFG021) */ 418 + >; 419 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 420 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 421 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 422 + }; 423 + 424 + codec_clk_cfg_func: codec_clk_cfg_func { 425 + pinctrl-single,pins = < 426 + 0x70 0x0 /* CODEC_CLK (IOCFG028) */ 427 + >; 428 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 429 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 430 + pinctrl-single,drive-strength = <DRIVE1_04MA DRIVE_MASK>; 431 + }; 432 + codec_clk_cfg_idle: codec_clk_cfg_idle { 433 + pinctrl-single,pins = < 434 + 0x70 0x0 /* CODEC_CLK (IOCFG028) */ 435 + >; 436 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 437 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 438 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 439 + }; 440 + 441 + codec_cfg_func1: codec_cfg_func1 { 442 + pinctrl-single,pins = < 443 + 0x74 0x0 /* DMIC_CLK (IOCFG029) */ 444 + >; 445 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 446 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 447 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 448 + }; 449 + 450 + codec_cfg_func2: codec_cfg_func2 { 451 + pinctrl-single,pins = < 452 + 0x78 0x0 /* CODEC_SYNC (IOCFG030) */ 453 + 0x7c 0x0 /* CODEC_DI (IOCFG031) */ 454 + 0x80 0x0 /* CODEC_DO (IOCFG032) */ 455 + >; 456 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 457 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 458 + pinctrl-single,drive-strength = <DRIVE1_04MA DRIVE_MASK>; 459 + }; 460 + codec_cfg_idle2: codec_cfg_idle2 { 461 + pinctrl-single,pins = < 462 + 0x78 0x0 /* CODEC_SYNC (IOCFG030) */ 463 + 0x7c 0x0 /* CODEC_DI (IOCFG031) */ 464 + 0x80 0x0 /* CODEC_DO (IOCFG032) */ 465 + >; 466 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 467 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 468 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 469 + }; 470 + 471 + fm_cfg_func: fm_cfg_func { 472 + pinctrl-single,pins = < 473 + 0x84 0x0 /* FM_XCLK (IOCFG033) */ 474 + 0x88 0x0 /* FM_XFS (IOCFG034) */ 475 + 0x8c 0x0 /* FM_DI (IOCFG035) */ 476 + 0x90 0x0 /* FM_DO (IOCFG036) */ 477 + >; 478 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 479 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 480 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 481 + }; 482 + 483 + bt_cfg_func: bt_cfg_func { 484 + pinctrl-single,pins = < 485 + 0x94 0x0 /* BT_XCLK (IOCFG037) */ 486 + 0x98 0x0 /* BT_XFS (IOCFG038) */ 487 + 0x9c 0x0 /* BT_DI (IOCFG039) */ 488 + 0xa0 0x0 /* BT_DO (IOCFG040) */ 489 + >; 490 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 491 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 492 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 493 + }; 494 + bt_cfg_idle: bt_cfg_idle { 495 + pinctrl-single,pins = < 496 + 0x94 0x0 /* BT_XCLK (IOCFG037) */ 497 + 0x98 0x0 /* BT_XFS (IOCFG038) */ 498 + 0x9c 0x0 /* BT_DI (IOCFG039) */ 499 + 0xa0 0x0 /* BT_DO (IOCFG040) */ 500 + >; 501 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 502 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 503 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 504 + }; 505 + 506 + pwm_in_cfg_func: pwm_in_cfg_func { 507 + pinctrl-single,pins = < 508 + 0xbc 0x0 /* PWM_IN (IOCFG047) */ 509 + >; 510 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 511 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 512 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 513 + }; 514 + 515 + bl_pwm_cfg_func: bl_pwm_cfg_func { 516 + pinctrl-single,pins = < 517 + 0xc0 0x0 /* BL_PWM (IOCFG048) */ 518 + >; 519 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 520 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 521 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 522 + }; 523 + 524 + uart0_cfg_func1: uart0_cfg_func1 { 525 + pinctrl-single,pins = < 526 + 0xc4 0x0 /* UART0_RXD (IOCFG049) */ 527 + >; 528 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 529 + pinctrl-single,bias-pullup = <PULL_UP PULL_UP PULL_DIS PULL_UP>; 530 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 531 + }; 532 + 533 + uart0_cfg_func2: uart0_cfg_func2 { 534 + pinctrl-single,pins = < 535 + 0xc8 0x0 /* UART0_TXD (IOCFG050) */ 536 + >; 537 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 538 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 539 + pinctrl-single,drive-strength = <DRIVE1_04MA DRIVE_MASK>; 540 + }; 541 + 542 + uart1_cfg_func1: uart1_cfg_func1 { 543 + pinctrl-single,pins = < 544 + 0xcc 0x0 /* UART1_CTS_N (IOCFG051) */ 545 + 0xd4 0x0 /* UART1_RXD (IOCFG053) */ 546 + >; 547 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 548 + pinctrl-single,bias-pullup = <PULL_UP PULL_UP PULL_DIS PULL_UP>; 549 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 550 + }; 551 + 552 + uart1_cfg_func2: uart1_cfg_func2 { 553 + pinctrl-single,pins = < 554 + 0xd0 0x0 /* UART1_RTS_N (IOCFG052) */ 555 + 0xd8 0x0 /* UART1_TXD (IOCFG054) */ 556 + >; 557 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 558 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 559 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 560 + }; 561 + 562 + uart2_cfg_func: uart2_cfg_func { 563 + pinctrl-single,pins = < 564 + 0xdc 0x0 /* UART2_CTS_N (IOCFG055) */ 565 + 0xe0 0x0 /* UART2_RTS_N (IOCFG056) */ 566 + 0xe4 0x0 /* UART2_RXD (IOCFG057) */ 567 + 0xe8 0x0 /* UART2_TXD (IOCFG058) */ 568 + >; 569 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 570 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 571 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 572 + }; 573 + 574 + uart3_cfg_func: uart3_cfg_func { 575 + pinctrl-single,pins = < 576 + 0x190 0x0 /* UART3_CTS_N (IOCFG100) */ 577 + 0x194 0x0 /* UART3_RTS_N (IOCFG101) */ 578 + 0x198 0x0 /* UART3_RXD (IOCFG102) */ 579 + 0x19c 0x0 /* UART3_TXD (IOCFG103) */ 580 + >; 581 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 582 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 583 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 584 + }; 585 + 586 + uart4_cfg_func: uart4_cfg_func { 587 + pinctrl-single,pins = < 588 + 0x1e0 0x0 /* UART4_CTS_N (IOCFG120) */ 589 + 0x1e4 0x0 /* UART4_RTS_N (IOCFG121) */ 590 + 0x1e8 0x0 /* UART4_RXD (IOCFG122) */ 591 + 0x1ec 0x0 /* UART4_TXD (IOCFG123) */ 592 + >; 593 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 594 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 595 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 596 + }; 597 + 598 + uart5_cfg_func: uart5_cfg_func { 599 + pinctrl-single,pins = < 600 + 0x1d8 0x0 /* UART4_RXD (IOCFG118) */ 601 + 0x1dc 0x0 /* UART4_TXD (IOCFG119) */ 602 + >; 603 + pinctrl-single,bias-pulldown = <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN>; 604 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 605 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 606 + }; 607 + 608 + i2c0_cfg_func: i2c0_cfg_func { 609 + pinctrl-single,pins = < 610 + 0xec 0x0 /* I2C0_SCL (IOCFG059) */ 611 + 0xf0 0x0 /* I2C0_SDA (IOCFG060) */ 612 + >; 613 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 614 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 615 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 616 + }; 617 + 618 + i2c1_cfg_func: i2c1_cfg_func { 619 + pinctrl-single,pins = < 620 + 0xf4 0x0 /* I2C1_SCL (IOCFG061) */ 621 + 0xf8 0x0 /* I2C1_SDA (IOCFG062) */ 622 + >; 623 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 624 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 625 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 626 + }; 627 + 628 + i2c2_cfg_func: i2c2_cfg_func { 629 + pinctrl-single,pins = < 630 + 0xfc 0x0 /* I2C2_SCL (IOCFG063) */ 631 + 0x100 0x0 /* I2C2_SDA (IOCFG064) */ 632 + >; 633 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 634 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 635 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 636 + }; 637 + 638 + spi0_cfg_func: spi0_cfg_func { 639 + pinctrl-single,pins = < 640 + 0x1b0 0x0 /* SPI0_DI (IOCFG108) */ 641 + 0x1b4 0x0 /* SPI0_DO (IOCFG109) */ 642 + 0x1b8 0x0 /* SPI0_CS_N (IOCFG110) */ 643 + 0x1bc 0x0 /* SPI0_CLK (IOCFG111) */ 644 + >; 645 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 646 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 647 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 648 + }; 649 + }; 650 + 651 + pmx2: pinmux@f8001800 { 652 + 653 + pinctrl-names = "default"; 654 + pinctrl-0 = < 655 + &rstout_n_cfg_func 656 + >; 657 + 658 + rstout_n_cfg_func: rstout_n_cfg_func { 659 + pinctrl-single,pins = < 660 + 0x0 0x0 /* RSTOUT_N (IOCFG000) */ 661 + >; 662 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 663 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 664 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 665 + }; 666 + 667 + pmu_peri_en_cfg_func: pmu_peri_en_cfg_func { 668 + pinctrl-single,pins = < 669 + 0x4 0x0 /* PMU_PERI_EN (IOCFG001) */ 670 + >; 671 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 672 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 673 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 674 + }; 675 + 676 + sysclk0_en_cfg_func: sysclk0_en_cfg_func { 677 + pinctrl-single,pins = < 678 + 0x8 0x0 /* SYSCLK0_EN (IOCFG002) */ 679 + >; 680 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 681 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 682 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 683 + }; 684 + 685 + jtag_tdo_cfg_func: jtag_tdo_cfg_func { 686 + pinctrl-single,pins = < 687 + 0xc 0x0 /* JTAG_TDO (IOCFG003) */ 688 + >; 689 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 690 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 691 + pinctrl-single,drive-strength = <DRIVE1_08MA DRIVE_MASK>; 692 + }; 693 + 694 + rf_reset_cfg_func: rf_reset_cfg_func { 695 + pinctrl-single,pins = < 696 + 0x70 0x0 /* RF_RESET0 (IOCFG028) */ 697 + 0x74 0x0 /* RF_RESET1 (IOCFG029) */ 698 + >; 699 + pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>; 700 + pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>; 701 + pinctrl-single,drive-strength = <DRIVE1_02MA DRIVE_MASK>; 702 + }; 703 + }; 704 + }; 705 + };
+34
arch/arm64/boot/dts/hisilicon/hip05-d02.dts
··· 52 52 &peri_gpio0 { 53 53 status = "ok"; 54 54 }; 55 + 56 + &lbc { 57 + status = "ok"; 58 + #address-cells = <2>; 59 + #size-cells = <1>; 60 + ranges = <0 0 0x0 0x90000000 0x08000000>, 61 + <1 0 0x0 0x98000000 0x08000000>; 62 + 63 + nor-flash@0,0 { 64 + #address-cells = <1>; 65 + #size-cells = <1>; 66 + compatible = "numonyx,js28f00a", "cfi-flash"; 67 + reg = <0 0x0 0x08000000>; 68 + bank-width = <2>; 69 + /* The three parts may not used */ 70 + partition@0 { 71 + label = "BIOS"; 72 + reg = <0x0 0x300000>; 73 + }; 74 + partition@300000 { 75 + label = "Linux"; 76 + reg = <0x300000 0xa00000>; 77 + }; 78 + partition@1000000 { 79 + label = "Rootfs"; 80 + reg = <0x01000000 0x02000000>; 81 + }; 82 + }; 83 + 84 + cpld@1,0 { 85 + compatible = "hisilicon,hip05-cpld"; 86 + reg = <1 0x0 0x100>; 87 + }; 88 + };
+10
arch/arm64/boot/dts/hisilicon/hip05.dtsi
··· 249 249 its_peri: interrupt-controller@8c000000 { 250 250 compatible = "arm,gic-v3-its"; 251 251 msi-controller; 252 + #msi-cells = <1>; 252 253 reg = <0x0 0x8c000000 0x0 0x40000>; 253 254 }; 254 255 255 256 its_m3: interrupt-controller@a3000000 { 256 257 compatible = "arm,gic-v3-its"; 257 258 msi-controller; 259 + #msi-cells = <1>; 258 260 reg = <0x0 0xa3000000 0x0 0x40000>; 259 261 }; 260 262 261 263 its_pcie: interrupt-controller@b7000000 { 262 264 compatible = "arm,gic-v3-its"; 263 265 msi-controller; 266 + #msi-cells = <1>; 264 267 reg = <0x0 0xb7000000 0x0 0x40000>; 265 268 }; 266 269 267 270 its_dsa: interrupt-controller@c6000000 { 268 271 compatible = "arm,gic-v3-its"; 269 272 msi-controller; 273 + #msi-cells = <1>; 270 274 reg = <0x0 0xc6000000 0x0 0x40000>; 271 275 }; 272 276 }; ··· 324 320 clock-names = "apb_pclk"; 325 321 reg-shift = <2>; 326 322 reg-io-width = <4>; 323 + status = "disabled"; 324 + }; 325 + 326 + lbc: localbus@80380000 { 327 + compatible = "hisilicon,hisi-localbus", "simple-bus"; 328 + reg = <0x0 0x80380000 0x0 0x10000>; 327 329 status = "disabled"; 328 330 }; 329 331
+34
arch/arm64/boot/dts/hisilicon/hip06-d03.dts
··· 1 + /** 2 + * dts file for Hisilicon D03 Development Board 3 + * 4 + * Copyright (C) 2016 Hisilicon Ltd. 5 + * 6 + * This program is free software; you can redistribute it and/or modify 7 + * it under the terms of the GNU General Public License version 2 as 8 + * publishhed by the Free Software Foundation. 9 + * 10 + */ 11 + 12 + /dts-v1/; 13 + 14 + #include "hip06.dtsi" 15 + 16 + / { 17 + model = "Hisilicon Hip06 D03 Development Board"; 18 + compatible = "hisilicon,hip06-d03"; 19 + 20 + memory@00000000 { 21 + device_type = "memory"; 22 + reg = <0x0 0x00000000 0x0 0x40000000>; 23 + }; 24 + 25 + chosen { }; 26 + }; 27 + 28 + &usb_ohci { 29 + status = "ok"; 30 + }; 31 + 32 + &usb_ehci { 33 + status = "ok"; 34 + };
+307
arch/arm64/boot/dts/hisilicon/hip06.dtsi
··· 1 + /** 2 + * dts file for Hisilicon D03 Development Board 3 + * 4 + * Copyright (C) 2016 Hisilicon Ltd. 5 + * 6 + * This program is free software; you can redistribute it and/or modify 7 + * it under the terms of the GNU General Public License version 2 as 8 + * publishhed by the Free Software Foundation. 9 + * 10 + */ 11 + 12 + #include <dt-bindings/interrupt-controller/arm-gic.h> 13 + 14 + / { 15 + compatible = "hisilicon,hip06-d03"; 16 + interrupt-parent = <&gic>; 17 + #address-cells = <2>; 18 + #size-cells = <2>; 19 + 20 + psci { 21 + compatible = "arm,psci-0.2"; 22 + method = "smc"; 23 + }; 24 + 25 + cpus { 26 + #address-cells = <1>; 27 + #size-cells = <0>; 28 + 29 + cpu-map { 30 + cluster0 { 31 + core0 { 32 + cpu = <&cpu0>; 33 + }; 34 + core1 { 35 + cpu = <&cpu1>; 36 + }; 37 + core2 { 38 + cpu = <&cpu2>; 39 + }; 40 + core3 { 41 + cpu = <&cpu3>; 42 + }; 43 + }; 44 + cluster1 { 45 + core0 { 46 + cpu = <&cpu4>; 47 + }; 48 + core1 { 49 + cpu = <&cpu5>; 50 + }; 51 + core2 { 52 + cpu = <&cpu6>; 53 + }; 54 + core3 { 55 + cpu = <&cpu7>; 56 + }; 57 + }; 58 + cluster2 { 59 + core0 { 60 + cpu = <&cpu8>; 61 + }; 62 + core1 { 63 + cpu = <&cpu9>; 64 + }; 65 + core2 { 66 + cpu = <&cpu10>; 67 + }; 68 + core3 { 69 + cpu = <&cpu11>; 70 + }; 71 + }; 72 + cluster3 { 73 + core0 { 74 + cpu = <&cpu12>; 75 + }; 76 + core1 { 77 + cpu = <&cpu13>; 78 + }; 79 + core2 { 80 + cpu = <&cpu14>; 81 + }; 82 + core3 { 83 + cpu = <&cpu15>; 84 + }; 85 + }; 86 + }; 87 + 88 + cpu0: cpu@10000 { 89 + device_type = "cpu"; 90 + compatible = "arm,cortex-a57", "arm,armv8"; 91 + reg = <0x10000>; 92 + enable-method = "psci"; 93 + next-level-cache = <&cluster0_l2>; 94 + }; 95 + 96 + cpu1: cpu@10001 { 97 + device_type = "cpu"; 98 + compatible = "arm,cortex-a57", "arm,armv8"; 99 + reg = <0x10001>; 100 + enable-method = "psci"; 101 + next-level-cache = <&cluster0_l2>; 102 + }; 103 + 104 + cpu2: cpu@10002 { 105 + device_type = "cpu"; 106 + compatible = "arm,cortex-a57", "arm,armv8"; 107 + reg = <0x10002>; 108 + enable-method = "psci"; 109 + next-level-cache = <&cluster0_l2>; 110 + }; 111 + 112 + cpu3: cpu@10003 { 113 + device_type = "cpu"; 114 + compatible = "arm,cortex-a57", "arm,armv8"; 115 + reg = <0x10003>; 116 + enable-method = "psci"; 117 + next-level-cache = <&cluster0_l2>; 118 + }; 119 + 120 + cpu4: cpu@10100 { 121 + device_type = "cpu"; 122 + compatible = "arm,cortex-a57", "arm,armv8"; 123 + reg = <0x10100>; 124 + enable-method = "psci"; 125 + next-level-cache = <&cluster1_l2>; 126 + }; 127 + 128 + cpu5: cpu@10101 { 129 + device_type = "cpu"; 130 + compatible = "arm,cortex-a57", "arm,armv8"; 131 + reg = <0x10101>; 132 + enable-method = "psci"; 133 + next-level-cache = <&cluster1_l2>; 134 + }; 135 + 136 + cpu6: cpu@10102 { 137 + device_type = "cpu"; 138 + compatible = "arm,cortex-a57", "arm,armv8"; 139 + reg = <0x10102>; 140 + enable-method = "psci"; 141 + next-level-cache = <&cluster1_l2>; 142 + }; 143 + 144 + cpu7: cpu@10103 { 145 + device_type = "cpu"; 146 + compatible = "arm,cortex-a57", "arm,armv8"; 147 + reg = <0x10103>; 148 + enable-method = "psci"; 149 + next-level-cache = <&cluster1_l2>; 150 + }; 151 + 152 + cpu8: cpu@10200 { 153 + device_type = "cpu"; 154 + compatible = "arm,cortex-a57", "arm,armv8"; 155 + reg = <0x10200>; 156 + enable-method = "psci"; 157 + next-level-cache = <&cluster2_l2>; 158 + }; 159 + 160 + cpu9: cpu@10201 { 161 + device_type = "cpu"; 162 + compatible = "arm,cortex-a57", "arm,armv8"; 163 + reg = <0x10201>; 164 + enable-method = "psci"; 165 + next-level-cache = <&cluster2_l2>; 166 + }; 167 + 168 + cpu10: cpu@10202 { 169 + device_type = "cpu"; 170 + compatible = "arm,cortex-a57", "arm,armv8"; 171 + reg = <0x10202>; 172 + enable-method = "psci"; 173 + next-level-cache = <&cluster2_l2>; 174 + }; 175 + 176 + cpu11: cpu@10203 { 177 + device_type = "cpu"; 178 + compatible = "arm,cortex-a57", "arm,armv8"; 179 + reg = <0x10203>; 180 + enable-method = "psci"; 181 + next-level-cache = <&cluster2_l2>; 182 + }; 183 + 184 + cpu12: cpu@10300 { 185 + device_type = "cpu"; 186 + compatible = "arm,cortex-a57", "arm,armv8"; 187 + reg = <0x10300>; 188 + enable-method = "psci"; 189 + next-level-cache = <&cluster3_l2>; 190 + }; 191 + 192 + cpu13: cpu@10301 { 193 + device_type = "cpu"; 194 + compatible = "arm,cortex-a57", "arm,armv8"; 195 + reg = <0x10301>; 196 + enable-method = "psci"; 197 + next-level-cache = <&cluster3_l2>; 198 + }; 199 + 200 + cpu14: cpu@10302 { 201 + device_type = "cpu"; 202 + compatible = "arm,cortex-a57", "arm,armv8"; 203 + reg = <0x10302>; 204 + enable-method = "psci"; 205 + next-level-cache = <&cluster3_l2>; 206 + }; 207 + 208 + cpu15: cpu@10303 { 209 + device_type = "cpu"; 210 + compatible = "arm,cortex-a57", "arm,armv8"; 211 + reg = <0x10303>; 212 + enable-method = "psci"; 213 + next-level-cache = <&cluster3_l2>; 214 + }; 215 + 216 + cluster0_l2: l2-cache0 { 217 + compatible = "cache"; 218 + }; 219 + 220 + cluster1_l2: l2-cache1 { 221 + compatible = "cache"; 222 + }; 223 + 224 + cluster2_l2: l2-cache2 { 225 + compatible = "cache"; 226 + }; 227 + 228 + cluster3_l2: l2-cache3 { 229 + compatible = "cache"; 230 + }; 231 + }; 232 + 233 + gic: interrupt-controller@4d000000 { 234 + compatible = "arm,gic-v3"; 235 + #interrupt-cells = <3>; 236 + #address-cells = <2>; 237 + #size-cells = <2>; 238 + ranges; 239 + interrupt-controller; 240 + #redistributor-regions = <1>; 241 + redistributor-stride = <0x0 0x30000>; 242 + reg = <0x0 0x4d000000 0 0x10000>, /* GICD */ 243 + <0x0 0x4d100000 0 0x300000>, /* GICR */ 244 + <0x0 0xfe000000 0 0x10000>, /* GICC */ 245 + <0x0 0xfe010000 0 0x10000>, /* GICH */ 246 + <0x0 0xfe020000 0 0x10000>; /* GICV */ 247 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 248 + 249 + its_dsa: interrupt-controller@c6000000 { 250 + compatible = "arm,gic-v3-its"; 251 + msi-controller; 252 + #msi-cells = <1>; 253 + reg = <0x0 0xc6000000 0x0 0x40000>; 254 + }; 255 + }; 256 + 257 + timer { 258 + compatible = "arm,armv8-timer"; 259 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 260 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 261 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 262 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 263 + }; 264 + 265 + pmu { 266 + compatible = "arm,cortex-a57-pmu"; 267 + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 268 + }; 269 + 270 + mbigen_pcie@a0080000 { 271 + compatible = "hisilicon,mbigen-v2"; 272 + reg = <0x0 0xa0080000 0x0 0x10000>; 273 + 274 + mbigen_usb: intc_usb { 275 + msi-parent = <&its_dsa 0x40080>; 276 + interrupt-controller; 277 + #interrupt-cells = <2>; 278 + num-pins = <2>; 279 + }; 280 + }; 281 + 282 + soc { 283 + compatible = "simple-bus"; 284 + #address-cells = <2>; 285 + #size-cells = <2>; 286 + ranges; 287 + 288 + usb_ohci: ohci@a7030000 { 289 + compatible = "generic-ohci"; 290 + reg = <0x0 0xa7030000 0x0 0x10000>; 291 + interrupt-parent = <&mbigen_usb>; 292 + interrupts = <64 4>; 293 + dma-coherent; 294 + status = "disabled"; 295 + }; 296 + 297 + usb_ehci: ehci@a7020000 { 298 + compatible = "generic-ehci"; 299 + reg = <0x0 0xa7020000 0x0 0x10000>; 300 + interrupt-parent = <&mbigen_usb>; 301 + interrupts = <65 4>; 302 + dma-coherent; 303 + status = "disabled"; 304 + }; 305 + }; 306 + 307 + };
+5
arch/arm64/boot/dts/lg/Makefile
··· 1 + dtb-$(CONFIG_ARCH_LG1K) += lg1312-ref.dtb 2 + 3 + always := $(dtb-y) 4 + subdir-y := $(dts-dirs) 5 + clean-files := *.dtb
+36
arch/arm64/boot/dts/lg/lg1312-ref.dts
··· 1 + /* 2 + * dts file for lg1312 Reference Board. 3 + * 4 + * Copyright (C) 2016, LG Electronics 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "lg1312.dtsi" 10 + 11 + / { 12 + #address-cells = <2>; 13 + #size-cells = <1>; 14 + 15 + model = "LG Electronics, DTV SoC LG1312 Reference Board"; 16 + compatible = "lge,lg1312-ref", "lge,lg1312"; 17 + 18 + aliases { 19 + serial0 = &uart0; 20 + serial1 = &uart1; 21 + serial2 = &uart2; 22 + }; 23 + 24 + memory { 25 + device_type = "memory"; 26 + reg = <0x0 0x00000000 0x20000000>; 27 + }; 28 + 29 + chosen { 30 + stdout-path = "serial0:115200n8"; 31 + }; 32 + }; 33 + 34 + &uart0 { 35 + status = "okay"; 36 + };
+351
arch/arm64/boot/dts/lg/lg1312.dtsi
··· 1 + /* 2 + * dts file for lg1312 SoC 3 + * 4 + * Copyright (C) 2016, LG Electronics 5 + */ 6 + 7 + #include <dt-bindings/gpio/gpio.h> 8 + #include <dt-bindings/interrupt-controller/arm-gic.h> 9 + 10 + / { 11 + #address-cells = <2>; 12 + #size-cells = <2>; 13 + 14 + compatible = "lge,lg1312"; 15 + interrupt-parent = <&gic>; 16 + 17 + cpus { 18 + #address-cells = <2>; 19 + #size-cells = <0>; 20 + 21 + cpu0: cpu@0 { 22 + device_type = "cpu"; 23 + compatible = "arm,cortex-a53", "arm,armv8"; 24 + reg = <0x0 0x0>; 25 + next-level-cache = <&L2_0>; 26 + }; 27 + cpu1: cpu@1 { 28 + device_type = "cpu"; 29 + compatible = "arm,cortex-a53", "arm,armv8"; 30 + reg = <0x0 0x1>; 31 + enable-method = "psci"; 32 + next-level-cache = <&L2_0>; 33 + }; 34 + cpu2: cpu@2 { 35 + device_type = "cpu"; 36 + compatible = "arm,cortex-a53", "arm,armv8"; 37 + reg = <0x0 0x2>; 38 + enable-method = "psci"; 39 + next-level-cache = <&L2_0>; 40 + }; 41 + cpu3: cpu@3 { 42 + device_type = "cpu"; 43 + compatible = "arm,cortex-a53", "arm,armv8"; 44 + reg = <0x0 0x3>; 45 + enable-method = "psci"; 46 + next-level-cache = <&L2_0>; 47 + }; 48 + L2_0: l2-cache0 { 49 + compatible = "cache"; 50 + }; 51 + }; 52 + 53 + psci { 54 + compatible = "arm,psci-0.2", "arm,psci"; 55 + method = "smc"; 56 + cpu_suspend = <0x84000001>; 57 + cpu_off = <0x84000002>; 58 + cpu_on = <0x84000003>; 59 + }; 60 + 61 + gic: interrupt-controller@c0001000 { 62 + #interrupt-cells = <3>; 63 + compatible = "arm,gic-400"; 64 + interrupt-controller; 65 + reg = <0x0 0xc0001000 0x1000>, 66 + <0x0 0xc0002000 0x2000>, 67 + <0x0 0xc0004000 0x2000>, 68 + <0x0 0xc0006000 0x2000>; 69 + }; 70 + 71 + pmu { 72 + compatible = "arm,cortex-a53-pmu"; 73 + interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 74 + <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, 75 + <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, 76 + <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; 77 + interrupt-affinity = <&cpu0>, 78 + <&cpu1>, 79 + <&cpu2>, 80 + <&cpu3>; 81 + }; 82 + 83 + timer { 84 + compatible = "arm,armv8-timer"; 85 + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0x0f) | 86 + IRQ_TYPE_LEVEL_LOW)>, 87 + <GIC_PPI 14 (GIC_CPU_MASK_RAW(0x0f) | 88 + IRQ_TYPE_LEVEL_LOW)>, 89 + <GIC_PPI 11 (GIC_CPU_MASK_RAW(0x0f) | 90 + IRQ_TYPE_LEVEL_LOW)>, 91 + <GIC_PPI 10 (GIC_CPU_MASK_RAW(0x0f) | 92 + IRQ_TYPE_LEVEL_LOW)>; 93 + }; 94 + 95 + clk_bus: clk_bus { 96 + #clock-cells = <0>; 97 + 98 + compatible = "fixed-clock"; 99 + clock-frequency = <198000000>; 100 + clock-output-names = "BUSCLK"; 101 + }; 102 + 103 + soc { 104 + #address-cells = <2>; 105 + #size-cells = <1>; 106 + 107 + compatible = "simple-bus"; 108 + interrupt-parent = <&gic>; 109 + ranges; 110 + 111 + eth0: ethernet@c1b00000 { 112 + compatible = "cdns,gem"; 113 + reg = <0x0 0xc1b00000 0x1000>; 114 + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 115 + clocks = <&clk_bus>, <&clk_bus>; 116 + clock-names = "hclk", "pclk"; 117 + phy-mode = "rmii"; 118 + /* Filled in by boot */ 119 + mac-address = [ 00 00 00 00 00 00 ]; 120 + }; 121 + }; 122 + 123 + amba { 124 + #address-cells = <2>; 125 + #size-cells = <1>; 126 + #interrupts-cells = <3>; 127 + 128 + compatible = "arm,amba-bus"; 129 + interrupt-parent = <&gic>; 130 + ranges; 131 + 132 + timers: timer@fd100000 { 133 + compatible = "arm,sp804"; 134 + reg = <0x0 0xfd100000 0x1000>; 135 + interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 136 + clocks = <&clk_bus>; 137 + clock-names = "apb_pclk"; 138 + }; 139 + wdog: watchdog@fd200000 { 140 + compatible = "arm,sp805", "arm,primecell"; 141 + reg = <0x0 0xfd200000 0x1000>; 142 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 143 + clocks = <&clk_bus>; 144 + clock-names = "apb_pclk"; 145 + }; 146 + uart0: serial@fe000000 { 147 + compatible = "arm,pl011", "arm,primecell"; 148 + reg = <0x0 0xfe000000 0x1000>; 149 + interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 150 + clocks = <&clk_bus>; 151 + clock-names = "apb_pclk"; 152 + status="disabled"; 153 + }; 154 + uart1: serial@fe100000 { 155 + compatible = "arm,pl011", "arm,primecell"; 156 + reg = <0x0 0xfe100000 0x1000>; 157 + interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 158 + clocks = <&clk_bus>; 159 + clock-names = "apb_pclk"; 160 + status="disabled"; 161 + }; 162 + uart2: serial@fe200000 { 163 + compatible = "arm,pl011", "arm,primecell"; 164 + reg = <0x0 0xfe200000 0x1000>; 165 + interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 166 + clocks = <&clk_bus>; 167 + clock-names = "apb_pclk"; 168 + status="disabled"; 169 + }; 170 + spi0: ssp@fe800000 { 171 + compatible = "arm,pl022", "arm,primecell"; 172 + reg = <0x0 0xfe800000 0x1000>; 173 + interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 174 + clocks = <&clk_bus>; 175 + clock-names = "apb_pclk"; 176 + }; 177 + spi1: ssp@fe900000 { 178 + compatible = "arm,pl022", "arm,primecell"; 179 + reg = <0x0 0xfe900000 0x1000>; 180 + interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 181 + clocks = <&clk_bus>; 182 + clock-names = "apb_pclk"; 183 + }; 184 + dmac0: dma@c1128000 { 185 + compatible = "arm,pl330", "arm,primecell"; 186 + reg = <0x0 0xc1128000 0x1000>; 187 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 188 + clocks = <&clk_bus>; 189 + clock-names = "apb_pclk"; 190 + }; 191 + gpio0: gpio@fd400000 { 192 + #gpio-cells = <2>; 193 + compatible = "arm,pl061", "arm,primecell"; 194 + gpio-controller; 195 + reg = <0x0 0xfd400000 0x1000>; 196 + clocks = <&clk_bus>; 197 + clock-names = "apb_pclk"; 198 + status="disabled"; 199 + }; 200 + gpio1: gpio@fd410000 { 201 + #gpio-cells = <2>; 202 + compatible = "arm,pl061", "arm,primecell"; 203 + gpio-controller; 204 + reg = <0x0 0xfd410000 0x1000>; 205 + clocks = <&clk_bus>; 206 + clock-names = "apb_pclk"; 207 + status="disabled"; 208 + }; 209 + gpio2: gpio@fd420000 { 210 + #gpio-cells = <2>; 211 + compatible = "arm,pl061", "arm,primecell"; 212 + gpio-controller; 213 + reg = <0x0 0xfd420000 0x1000>; 214 + clocks = <&clk_bus>; 215 + clock-names = "apb_pclk"; 216 + status="disabled"; 217 + }; 218 + gpio3: gpio@fd430000 { 219 + #gpio-cells = <2>; 220 + compatible = "arm,pl061", "arm,primecell"; 221 + gpio-controller; 222 + reg = <0x0 0xfd430000 0x1000>; 223 + clocks = <&clk_bus>; 224 + clock-names = "apb_pclk"; 225 + }; 226 + gpio4: gpio@fd440000 { 227 + #gpio-cells = <2>; 228 + compatible = "arm,pl061", "arm,primecell"; 229 + gpio-controller; 230 + reg = <0x0 0xfd440000 0x1000>; 231 + clocks = <&clk_bus>; 232 + clock-names = "apb_pclk"; 233 + status="disabled"; 234 + }; 235 + gpio5: gpio@fd450000 { 236 + #gpio-cells = <2>; 237 + compatible = "arm,pl061", "arm,primecell"; 238 + gpio-controller; 239 + reg = <0x0 0xfd450000 0x1000>; 240 + clocks = <&clk_bus>; 241 + clock-names = "apb_pclk"; 242 + status="disabled"; 243 + }; 244 + gpio6: gpio@fd460000 { 245 + #gpio-cells = <2>; 246 + compatible = "arm,pl061", "arm,primecell"; 247 + gpio-controller; 248 + reg = <0x0 0xfd460000 0x1000>; 249 + clocks = <&clk_bus>; 250 + clock-names = "apb_pclk"; 251 + status="disabled"; 252 + }; 253 + gpio7: gpio@fd470000 { 254 + #gpio-cells = <2>; 255 + compatible = "arm,pl061", "arm,primecell"; 256 + gpio-controller; 257 + reg = <0x0 0xfd470000 0x1000>; 258 + clocks = <&clk_bus>; 259 + clock-names = "apb_pclk"; 260 + status="disabled"; 261 + }; 262 + gpio8: gpio@fd480000 { 263 + #gpio-cells = <2>; 264 + compatible = "arm,pl061", "arm,primecell"; 265 + gpio-controller; 266 + reg = <0x0 0xfd480000 0x1000>; 267 + clocks = <&clk_bus>; 268 + clock-names = "apb_pclk"; 269 + status="disabled"; 270 + }; 271 + gpio9: gpio@fd490000 { 272 + #gpio-cells = <2>; 273 + compatible = "arm,pl061", "arm,primecell"; 274 + gpio-controller; 275 + reg = <0x0 0xfd490000 0x1000>; 276 + clocks = <&clk_bus>; 277 + clock-names = "apb_pclk"; 278 + status="disabled"; 279 + }; 280 + gpio10: gpio@fd4a0000 { 281 + #gpio-cells = <2>; 282 + compatible = "arm,pl061", "arm,primecell"; 283 + gpio-controller; 284 + reg = <0x0 0xfd4a0000 0x1000>; 285 + clocks = <&clk_bus>; 286 + clock-names = "apb_pclk"; 287 + status="disabled"; 288 + }; 289 + gpio11: gpio@fd4b0000 { 290 + #gpio-cells = <2>; 291 + compatible = "arm,pl061", "arm,primecell"; 292 + gpio-controller; 293 + reg = <0x0 0xfd4b0000 0x1000>; 294 + clocks = <&clk_bus>; 295 + clock-names = "apb_pclk"; 296 + }; 297 + gpio12: gpio@fd4c0000 { 298 + #gpio-cells = <2>; 299 + compatible = "arm,pl061", "arm,primecell"; 300 + gpio-controller; 301 + reg = <0x0 0xfd4c0000 0x1000>; 302 + clocks = <&clk_bus>; 303 + clock-names = "apb_pclk"; 304 + status="disabled"; 305 + }; 306 + gpio13: gpio@fd4d0000 { 307 + #gpio-cells = <2>; 308 + compatible = "arm,pl061", "arm,primecell"; 309 + gpio-controller; 310 + reg = <0x0 0xfd4d0000 0x1000>; 311 + clocks = <&clk_bus>; 312 + clock-names = "apb_pclk"; 313 + status="disabled"; 314 + }; 315 + gpio14: gpio@fd4e0000 { 316 + #gpio-cells = <2>; 317 + compatible = "arm,pl061", "arm,primecell"; 318 + gpio-controller; 319 + reg = <0x0 0xfd4e0000 0x1000>; 320 + clocks = <&clk_bus>; 321 + clock-names = "apb_pclk"; 322 + status="disabled"; 323 + }; 324 + gpio15: gpio@fd4f0000 { 325 + #gpio-cells = <2>; 326 + compatible = "arm,pl061", "arm,primecell"; 327 + gpio-controller; 328 + reg = <0x0 0xfd4f0000 0x1000>; 329 + clocks = <&clk_bus>; 330 + clock-names = "apb_pclk"; 331 + status="disabled"; 332 + }; 333 + gpio16: gpio@fd500000 { 334 + #gpio-cells = <2>; 335 + compatible = "arm,pl061", "arm,primecell"; 336 + gpio-controller; 337 + reg = <0x0 0xfd500000 0x1000>; 338 + clocks = <&clk_bus>; 339 + clock-names = "apb_pclk"; 340 + status="disabled"; 341 + }; 342 + gpio17: gpio@fd510000 { 343 + #gpio-cells = <2>; 344 + compatible = "arm,pl061", "arm,primecell"; 345 + gpio-controller; 346 + reg = <0x0 0xfd510000 0x1000>; 347 + clocks = <&clk_bus>; 348 + clock-names = "apb_pclk"; 349 + }; 350 + }; 351 + };
+14 -22
arch/arm64/boot/dts/marvell/armada-3720-db.dts
··· 60 60 device_type = "memory"; 61 61 reg = <0x00000000 0x00000000 0x00000000 0x20000000>; 62 62 }; 63 - 64 - soc { 65 - internal-regs { 66 - /* 67 - * Exported on the micro USB connector CON32 68 - * through an FTDI 69 - */ 70 - uart0: serial@12000 { 71 - status = "okay"; 72 - }; 73 - 74 - /* CON31 */ 75 - usb3@58000 { 76 - status = "okay"; 77 - }; 78 - 79 - /* CON3 */ 80 - sata@e0000 { 81 - status = "okay"; 82 - }; 83 - }; 84 - }; 85 63 }; 86 64 65 + /* CON3 */ 66 + &sata { 67 + status = "okay"; 68 + }; 69 + 70 + /* Exported on the micro USB connector CON32 through an FTDI */ 71 + &uart0 { 72 + status = "okay"; 73 + }; 74 + 75 + /* CON31 */ 76 + &usb3 { 77 + status = "okay"; 78 + };
-1
arch/arm64/boot/dts/marvell/armada-372x.dtsi
··· 59 59 enable-method = "psci"; 60 60 }; 61 61 }; 62 - 63 62 };
+17 -3
arch/arm64/boot/dts/marvell/armada-37xx.dtsi
··· 105 105 status = "disabled"; 106 106 }; 107 107 108 - usb3@58000 { 109 - compatible = "generic-xhci"; 108 + usb3: usb@58000 { 109 + compatible = "marvell,armada3700-xhci", 110 + "generic-xhci"; 110 111 reg = <0x58000 0x4000>; 111 112 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 112 113 status = "disabled"; 113 114 }; 114 115 115 - sata@e0000 { 116 + xor@60900 { 117 + compatible = "marvell,armada-3700-xor"; 118 + reg = <0x60900 0x100 119 + 0x60b00 0x100>; 120 + 121 + xor10 { 122 + interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 123 + }; 124 + xor11 { 125 + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 126 + }; 127 + }; 128 + 129 + sata: sata@e0000 { 116 130 compatible = "marvell,armada-3700-ahci"; 117 131 reg = <0xe0000 0x2000>; 118 132 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+1
arch/arm64/boot/dts/marvell/armada-7020.dtsi
··· 46 46 */ 47 47 48 48 #include "armada-ap806-dual.dtsi" 49 + #include "armada-cp110-master.dtsi" 49 50 50 51 / { 51 52 model = "Marvell Armada 7020";
+83 -27
arch/arm64/boot/dts/marvell/armada-7040-db.dts
··· 51 51 compatible = "marvell,armada7040-db", "marvell,armada7040", 52 52 "marvell,armada-ap806-quad", "marvell,armada-ap806"; 53 53 54 + chosen { 55 + stdout-path = "serial0:115200n8"; 56 + }; 57 + 54 58 memory@00000000 { 55 59 device_type = "memory"; 56 60 reg = <0x0 0x0 0x0 0x80000000>; 57 61 }; 62 + }; 58 63 59 - ap806 { 60 - config-space { 61 - spi@510600 { 62 - status = "okay"; 64 + &i2c0 { 65 + status = "okay"; 66 + clock-frequency = <100000>; 67 + }; 63 68 64 - spi-flash@0 { 65 - #address-cells = <1>; 66 - #size-cells = <1>; 67 - compatible = "n25q128a13"; 68 - reg = <0>; /* Chip select 0 */ 69 - spi-max-frequency = <10000000>; 69 + &spi0 { 70 + status = "okay"; 70 71 71 - partition@0 { 72 - label = "U-Boot"; 73 - reg = <0 0x200000>; 74 - }; 75 - partition@400000 { 76 - label = "Filesystem"; 77 - reg = <0x200000 0xce0000>; 78 - }; 79 - }; 72 + spi-flash@0 { 73 + #address-cells = <1>; 74 + #size-cells = <1>; 75 + compatible = "jedec,spi-nor"; 76 + reg = <0>; 77 + spi-max-frequency = <10000000>; 78 + 79 + partitions { 80 + compatible = "fixed-partitions"; 81 + #address-cells = <1>; 82 + #size-cells = <1>; 83 + 84 + partition@0 { 85 + label = "U-Boot"; 86 + reg = <0 0x200000>; 80 87 }; 81 - 82 - i2c@511000 { 83 - status = "okay"; 84 - clock-frequency = <100000>; 85 - }; 86 - 87 - serial@512000 { 88 - status = "okay"; 88 + partition@400000 { 89 + label = "Filesystem"; 90 + reg = <0x200000 0xce0000>; 89 91 }; 90 92 }; 91 93 }; 94 + }; 95 + 96 + &uart0 { 97 + status = "okay"; 98 + }; 99 + 100 + 101 + &cpm_pcie2 { 102 + status = "okay"; 103 + }; 104 + 105 + &cpm_i2c0 { 106 + status = "okay"; 107 + clock-frequency = <100000>; 108 + }; 109 + 110 + &cpm_spi1 { 111 + status = "okay"; 112 + 113 + spi-flash@0 { 114 + #address-cells = <0x1>; 115 + #size-cells = <0x1>; 116 + compatible = "jedec,spi-nor"; 117 + reg = <0x0>; 118 + spi-max-frequency = <20000000>; 119 + 120 + partitions { 121 + compatible = "fixed-partitions"; 122 + #address-cells = <1>; 123 + #size-cells = <1>; 124 + 125 + partition@0 { 126 + label = "U-Boot"; 127 + reg = <0x0 0x200000>; 128 + }; 129 + 130 + partition@400000 { 131 + label = "Filesystem"; 132 + reg = <0x200000 0xe00000>; 133 + }; 134 + }; 135 + }; 136 + }; 137 + 138 + &cpm_sata0 { 139 + status = "okay"; 140 + }; 141 + 142 + &cpm_usb3_0 { 143 + status = "okay"; 144 + }; 145 + 146 + &cpm_usb3_1 { 147 + status = "okay"; 92 148 };
+1
arch/arm64/boot/dts/marvell/armada-7040.dtsi
··· 46 46 */ 47 47 48 48 #include "armada-ap806-quad.dtsi" 49 + #include "armada-cp110-master.dtsi" 49 50 50 51 / { 51 52 model = "Marvell Armada 7040";
+1
arch/arm64/boot/dts/marvell/armada-8020.dtsi
··· 46 46 */ 47 47 48 48 #include "armada-ap806-dual.dtsi" 49 + #include "armada-cp110-master.dtsi" 49 50 50 51 / { 51 52 model = "Marvell Armada 8020";
+1
arch/arm64/boot/dts/marvell/armada-8040.dtsi
··· 46 46 */ 47 47 48 48 #include "armada-ap806-quad.dtsi" 49 + #include "armada-cp110-master.dtsi" 49 50 50 51 / { 51 52 model = "Marvell Armada 8040";
-1
arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
··· 68 68 }; 69 69 }; 70 70 }; 71 -
-2
arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
··· 79 79 enable-method = "psci"; 80 80 }; 81 81 }; 82 - 83 82 }; 84 -
+24 -32
arch/arm64/boot/dts/marvell/armada-ap806.dtsi
··· 54 54 #address-cells = <2>; 55 55 #size-cells = <2>; 56 56 57 + aliases { 58 + serial0 = &uart0; 59 + serial1 = &uart1; 60 + }; 61 + 57 62 psci { 58 63 compatible = "arm,psci-0.2"; 59 64 method = "smc"; 60 65 }; 61 - 62 66 63 67 ap806 { 64 68 #address-cells = <2>; ··· 140 136 marvell,spi-base = <128>, <136>, <144>, <152>; 141 137 }; 142 138 143 - xor0@400000 { 139 + xor@400000 { 144 140 compatible = "marvell,mv-xor-v2"; 145 141 reg = <0x400000 0x1000>, 146 142 <0x410000 0x1000>; ··· 148 144 dma-coherent; 149 145 }; 150 146 151 - xor1@420000 { 147 + xor@420000 { 152 148 compatible = "marvell,mv-xor-v2"; 153 149 reg = <0x420000 0x1000>, 154 150 <0x430000 0x1000>; ··· 156 152 dma-coherent; 157 153 }; 158 154 159 - xor2@440000 { 155 + xor@440000 { 160 156 compatible = "marvell,mv-xor-v2"; 161 157 reg = <0x440000 0x1000>, 162 158 <0x450000 0x1000>; ··· 164 160 dma-coherent; 165 161 }; 166 162 167 - xor3@460000 { 163 + xor@460000 { 168 164 compatible = "marvell,mv-xor-v2"; 169 165 reg = <0x460000 0x1000>, 170 166 <0x470000 0x1000>; ··· 179 175 #size-cells = <0>; 180 176 cell-index = <0>; 181 177 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 182 - clocks = <&ringclk 2>; 178 + clocks = <&ap_syscon 3>; 183 179 status = "disabled"; 184 180 }; 185 181 186 182 i2c0: i2c@511000 { 187 - compatible = "marvell,mv64xxx-i2c"; 183 + compatible = "marvell,mv78230-i2c"; 188 184 reg = <0x511000 0x20>; 189 185 #address-cells = <1>; 190 186 #size-cells = <0>; 191 187 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 192 188 timeout-ms = <1000>; 193 - clocks = <&ringclk 2>; 189 + clocks = <&ap_syscon 3>; 194 190 status = "disabled"; 195 191 }; 196 192 197 - serial@512000 { 193 + uart0: serial@512000 { 198 194 compatible = "snps,dw-apb-uart"; 199 195 reg = <0x512000 0x100>; 200 196 reg-shift = <2>; 201 197 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 202 198 reg-io-width = <1>; 203 - clocks = <&ringclk 2>; 199 + clocks = <&ap_syscon 3>; 204 200 status = "disabled"; 205 201 }; 206 202 207 - serial@512100 { 203 + uart1: serial@512100 { 208 204 compatible = "snps,dw-apb-uart"; 209 205 reg = <0x512100 0x100>; 210 206 reg-shift = <2>; 211 207 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 212 208 reg-io-width = <1>; 213 - clocks = <&ringclk 2>; 209 + clocks = <&ap_syscon 3>; 214 210 status = "disabled"; 215 211 216 212 }; 217 213 218 - dfx-server@6f8000 { 219 - compatible = "simple-mfd", "syscon"; 220 - reg = <0x6f8000 0x70000>; 221 - 222 - coreclk: clk@204 { 223 - compatible = "marvell,armada-ap806-core-clock"; 224 - #clock-cells = <1>; 225 - clock-output-names = "ddr", "ring", "cpu"; 226 - }; 227 - 228 - ringclk: clk@250 { 229 - compatible = "marvell,armada-ap806-ring-clock"; 230 - #clock-cells = <1>; 231 - clock-output-names = "ring-0", "ring-2", 232 - "ring-3", "ring-4", 233 - "ring-5"; 234 - clocks = <&coreclk 1>; 235 - }; 214 + ap_syscon: system-controller@6f4000 { 215 + compatible = "marvell,ap806-system-controller", 216 + "syscon"; 217 + #clock-cells = <1>; 218 + clock-output-names = "ap-cpu-cluster-0", 219 + "ap-cpu-cluster-1", 220 + "ap-fixed", "ap-mss"; 221 + reg = <0x6f4000 0x1000>; 236 222 }; 237 223 }; 238 224 }; 239 - 240 225 }; 241 -
+228
arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
··· 1 + /* 2 + * Copyright (C) 2016 Marvell Technology Group Ltd. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPLv2 or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /* 44 + * Device Tree file for Marvell Armada CP110 Master. 45 + */ 46 + 47 + / { 48 + cp110-master { 49 + #address-cells = <2>; 50 + #size-cells = <2>; 51 + compatible = "simple-bus"; 52 + interrupt-parent = <&gic>; 53 + ranges; 54 + 55 + config-space { 56 + #address-cells = <1>; 57 + #size-cells = <1>; 58 + compatible = "simple-bus"; 59 + interrupt-parent = <&gic>; 60 + ranges = <0x0 0x0 0xf2000000 0x2000000>; 61 + 62 + cpm_syscon0: system-controller@440000 { 63 + compatible = "marvell,cp110-system-controller0", 64 + "syscon"; 65 + reg = <0x440000 0x1000>; 66 + #clock-cells = <2>; 67 + core-clock-output-names = 68 + "cpm-apll", "cpm-ppv2-core", "cpm-eip", 69 + "cpm-core", "cpm-nand-core"; 70 + gate-clock-output-names = 71 + "cpm-audio", "cpm-communit", "cpm-nand", 72 + "cpm-ppv2", "cpm-sdio", "cpm-mg-domain", 73 + "cpm-mg-core", "cpm-xor1", "cpm-xor0", 74 + "cpm-gop-dp", "none", "cpm-pcie_x10", 75 + "cpm-pcie_x11", "cpm-pcie_x4", "cpm-pcie-xor", 76 + "cpm-sata", "cpm-sata-usb", "cpm-main", 77 + "cpm-sd-mmc", "none", "none", 78 + "cpm-slow-io", "cpm-usb3h0", "cpm-usb3h1", 79 + "cpm-usb3dev", "cpm-eip150", "cpm-eip197"; 80 + }; 81 + 82 + cpm_sata0: sata@540000 { 83 + compatible = "marvell,armada-8k-ahci"; 84 + reg = <0x540000 0x30000>; 85 + interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 86 + clocks = <&cpm_syscon0 1 15>; 87 + status = "disabled"; 88 + }; 89 + 90 + cpm_usb3_0: usb3@500000 { 91 + compatible = "marvell,armada-8k-xhci", 92 + "generic-xhci"; 93 + reg = <0x500000 0x4000>; 94 + dma-coherent; 95 + interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 96 + clocks = <&cpm_syscon0 1 22>; 97 + status = "disabled"; 98 + }; 99 + 100 + cpm_usb3_1: usb3@510000 { 101 + compatible = "marvell,armada-8k-xhci", 102 + "generic-xhci"; 103 + reg = <0x510000 0x4000>; 104 + dma-coherent; 105 + interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 106 + clocks = <&cpm_syscon0 1 23>; 107 + status = "disabled"; 108 + }; 109 + 110 + cpm_spi0: spi@700600 { 111 + compatible = "marvell,armada-380-spi"; 112 + reg = <0x700600 0x50>; 113 + #address-cells = <0x1>; 114 + #size-cells = <0x0>; 115 + cell-index = <1>; 116 + clocks = <&cpm_syscon0 0 3>; 117 + status = "disabled"; 118 + }; 119 + 120 + cpm_spi1: spi@700680 { 121 + compatible = "marvell,armada-380-spi"; 122 + reg = <0x700680 0x50>; 123 + #address-cells = <1>; 124 + #size-cells = <0>; 125 + cell-index = <2>; 126 + clocks = <&cpm_syscon0 1 21>; 127 + status = "disabled"; 128 + }; 129 + 130 + cpm_i2c0: i2c@701000 { 131 + compatible = "marvell,mv78230-i2c"; 132 + reg = <0x701000 0x20>; 133 + #address-cells = <1>; 134 + #size-cells = <0>; 135 + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 136 + clocks = <&cpm_syscon0 1 21>; 137 + status = "disabled"; 138 + }; 139 + 140 + cpm_i2c1: i2c@701100 { 141 + compatible = "marvell,mv78230-i2c"; 142 + reg = <0x701100 0x20>; 143 + #address-cells = <1>; 144 + #size-cells = <0>; 145 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 146 + clocks = <&cpm_syscon0 1 21>; 147 + status = "disabled"; 148 + }; 149 + }; 150 + 151 + cpm_pcie0: pcie@f2600000 { 152 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 153 + reg = <0 0xf2600000 0 0x10000>, 154 + <0 0xf6f00000 0 0x80000>; 155 + reg-names = "ctrl", "config"; 156 + #address-cells = <3>; 157 + #size-cells = <2>; 158 + #interrupt-cells = <1>; 159 + device_type = "pci"; 160 + dma-coherent; 161 + 162 + bus-range = <0 0xff>; 163 + ranges = 164 + /* downstream I/O */ 165 + <0x81000000 0 0xf9000000 0 0xf9000000 0 0x10000 166 + /* non-prefetchable memory */ 167 + 0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>; 168 + interrupt-map-mask = <0 0 0 0>; 169 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 170 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 171 + num-lanes = <1>; 172 + clocks = <&cpm_syscon0 1 13>; 173 + status = "disabled"; 174 + }; 175 + 176 + cpm_pcie1: pcie@f2620000 { 177 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 178 + reg = <0 0xf2620000 0 0x10000>, 179 + <0 0xf7f00000 0 0x80000>; 180 + reg-names = "ctrl", "config"; 181 + #address-cells = <3>; 182 + #size-cells = <2>; 183 + #interrupt-cells = <1>; 184 + device_type = "pci"; 185 + dma-coherent; 186 + 187 + bus-range = <0 0xff>; 188 + ranges = 189 + /* downstream I/O */ 190 + <0x81000000 0 0xf9010000 0 0xf9010000 0 0x10000 191 + /* non-prefetchable memory */ 192 + 0x82000000 0 0xf7000000 0 0xf7000000 0 0xf00000>; 193 + interrupt-map-mask = <0 0 0 0>; 194 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 195 + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 196 + 197 + num-lanes = <1>; 198 + clocks = <&cpm_syscon0 1 11>; 199 + status = "disabled"; 200 + }; 201 + 202 + cpm_pcie2: pcie@f2640000 { 203 + compatible = "marvell,armada8k-pcie", "snps,dw-pcie"; 204 + reg = <0 0xf2640000 0 0x10000>, 205 + <0 0xf8f00000 0 0x80000>; 206 + reg-names = "ctrl", "config"; 207 + #address-cells = <3>; 208 + #size-cells = <2>; 209 + #interrupt-cells = <1>; 210 + device_type = "pci"; 211 + dma-coherent; 212 + 213 + bus-range = <0 0xff>; 214 + ranges = 215 + /* downstream I/O */ 216 + <0x81000000 0 0xf9020000 0 0xf9020000 0 0x10000 217 + /* non-prefetchable memory */ 218 + 0x82000000 0 0xf8000000 0 0xf8000000 0 0xf00000>; 219 + interrupt-map-mask = <0 0 0 0>; 220 + interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 221 + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 222 + 223 + num-lanes = <1>; 224 + clocks = <&cpm_syscon0 1 12>; 225 + status = "disabled"; 226 + }; 227 + }; 228 + };
+60
arch/arm64/boot/dts/mediatek/mt8173.dtsi
··· 125 125 clock-output-names = "cpum_ck"; 126 126 }; 127 127 128 + thermal-zones { 129 + cpu_thermal: cpu_thermal { 130 + polling-delay-passive = <1000>; /* milliseconds */ 131 + polling-delay = <1000>; /* milliseconds */ 132 + 133 + thermal-sensors = <&thermal>; 134 + sustainable-power = <1500>; /* milliwatts */ 135 + 136 + trips { 137 + threshold: trip-point@0 { 138 + temperature = <68000>; 139 + hysteresis = <2000>; 140 + type = "passive"; 141 + }; 142 + 143 + target: trip-point@1 { 144 + temperature = <85000>; 145 + hysteresis = <2000>; 146 + type = "passive"; 147 + }; 148 + 149 + cpu_crit: cpu_crit@0 { 150 + temperature = <115000>; 151 + hysteresis = <2000>; 152 + type = "critical"; 153 + }; 154 + }; 155 + 156 + cooling-maps { 157 + map@0 { 158 + trip = <&target>; 159 + cooling-device = <&cpu0 0 0>; 160 + contribution = <1024>; 161 + }; 162 + map@1 { 163 + trip = <&target>; 164 + cooling-device = <&cpu2 0 0>; 165 + contribution = <2048>; 166 + }; 167 + }; 168 + }; 169 + }; 170 + 128 171 timer { 129 172 compatible = "arm,armv8-timer"; 130 173 interrupt-parent = <&gic>; ··· 356 313 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 357 314 }; 358 315 316 + auxadc: auxadc@11001000 { 317 + compatible = "mediatek,mt8173-auxadc"; 318 + reg = <0 0x11001000 0 0x1000>; 319 + }; 320 + 359 321 uart0: serial@11002000 { 360 322 compatible = "mediatek,mt8173-uart", 361 323 "mediatek,mt6577-uart"; ··· 460 412 <&pericfg CLK_PERI_SPI0>; 461 413 clock-names = "parent-clk", "sel-clk", "spi-clk"; 462 414 status = "disabled"; 415 + }; 416 + 417 + thermal: thermal@1100b000 { 418 + #thermal-sensor-cells = <0>; 419 + compatible = "mediatek,mt8173-thermal"; 420 + reg = <0 0x1100b000 0 0x1000>; 421 + interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>; 422 + clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>; 423 + clock-names = "therm", "auxadc"; 424 + resets = <&pericfg MT8173_PERI_THERM_SW_RST>; 425 + mediatek,auxadc = <&auxadc>; 426 + mediatek,apmixedsys = <&apmixedsys>; 463 427 }; 464 428 465 429 nor_flash: spi@1100d000 {
+1
arch/arm64/boot/dts/nvidia/Makefile
··· 2 2 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-0000.dtb 3 3 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2371-2180.dtb 4 4 dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-p2571.dtb 5 + dtb-$(CONFIG_ARCH_TEGRA_210_SOC) += tegra210-smaug.dtb 5 6 6 7 always := $(dtb-y) 7 8 clean-files := *.dtb
+29 -26
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
··· 8 8 compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124"; 9 9 10 10 aliases { 11 - rtc0 = "/i2c@0,7000d000/as3722@40"; 12 - rtc1 = "/rtc@0,7000e000"; 11 + rtc0 = "/i2c@7000d000/as3722@40"; 12 + rtc1 = "/rtc@7000e000"; 13 + serial0 = &uarta; 13 14 }; 14 15 15 - chosen { }; 16 + chosen { 17 + stdout-path = "serial0:115200n8"; 18 + }; 16 19 17 20 memory { 18 21 device_type = "memory"; 19 22 reg = <0x0 0x80000000 0x0 0x80000000>; 20 23 }; 21 24 22 - host1x@0,50000000 { 23 - hdmi@0,54280000 { 25 + host1x@50000000 { 26 + hdmi@54280000 { 24 27 status = "disabled"; 25 28 26 29 vdd-supply = <&vdd_3v3_hdmi>; ··· 35 32 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 36 33 }; 37 34 38 - sor@0,54540000 { 35 + sor@54540000 { 39 36 status = "okay"; 40 37 41 38 nvidia,dpaux = <&dpaux>; 42 39 nvidia,panel = <&panel>; 43 40 }; 44 41 45 - dpaux: dpaux@0,545c0000 { 42 + dpaux: dpaux@545c0000 { 46 43 vdd-supply = <&vdd_3v3_panel>; 47 44 status = "okay"; 48 45 }; 49 46 }; 50 47 51 - gpu@0,57000000 { 48 + gpu@57000000 { 52 49 status = "okay"; 53 50 54 51 vdd-supply = <&vdd_gpu>; 55 52 }; 56 53 57 - pinmux@0,70000868 { 54 + pinmux@70000868 { 58 55 pinctrl-names = "default"; 59 56 pinctrl-0 = <&pinmux_default>; 60 57 ··· 526 523 }; 527 524 }; 528 525 529 - serial@0,70006000 { 526 + serial@70006000 { 530 527 status = "okay"; 531 528 }; 532 529 533 - pwm: pwm@0,7000a000 { 530 + pwm: pwm@7000a000 { 534 531 status = "okay"; 535 532 }; 536 533 537 534 /* HDMI DDC */ 538 - hdmi_ddc: i2c@0,7000c700 { 535 + hdmi_ddc: i2c@7000c700 { 539 536 status = "okay"; 540 537 clock-frequency = <100000>; 541 538 }; 542 539 543 - i2c@0,7000d000 { 540 + i2c@7000d000 { 544 541 status = "okay"; 545 542 clock-frequency = <400000>; 546 543 ··· 747 744 }; 748 745 }; 749 746 750 - spi@0,7000d400 { 747 + spi@7000d400 { 751 748 status = "okay"; 752 749 753 750 ec: cros-ec@0 { ··· 879 876 }; 880 877 }; 881 878 882 - pmc@0,7000e400 { 879 + pmc@7000e400 { 883 880 nvidia,invert-interrupt; 884 881 nvidia,suspend-mode = <0>; 885 882 #wake-cells = <3>; ··· 893 890 }; 894 891 895 892 /* WIFI/BT module */ 896 - sdhci@0,700b0000 { 893 + sdhci@700b0000 { 897 894 status = "disabled"; 898 895 }; 899 896 900 897 /* external SD/MMC */ 901 - sdhci@0,700b0400 { 898 + sdhci@700b0400 { 902 899 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 903 900 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>; 904 901 wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_HIGH>; ··· 908 905 }; 909 906 910 907 /* EMMC 4.51 */ 911 - sdhci@0,700b0600 { 908 + sdhci@700b0600 { 912 909 status = "okay"; 913 910 bus-width = <8>; 914 911 non-removable; 915 912 }; 916 913 917 - usb@0,7d000000 { 914 + usb@7d000000 { 918 915 status = "okay"; 919 916 }; 920 917 921 - usb-phy@0,7d000000 { 918 + usb-phy@7d000000 { 922 919 status = "okay"; 923 920 vbus-supply = <&vdd_usb1_vbus>; 924 921 }; 925 922 926 - usb@0,7d004000 { 923 + usb@7d004000 { 927 924 status = "okay"; 928 925 }; 929 926 930 - usb-phy@0,7d004000 { 927 + usb-phy@7d004000 { 931 928 status = "okay"; 932 929 vbus-supply = <&vdd_run_cam>; 933 930 }; 934 931 935 - usb@0,7d008000 { 932 + usb@7d008000 { 936 933 status = "okay"; 937 934 }; 938 935 939 - usb-phy@0,7d008000 { 936 + usb-phy@7d008000 { 940 937 status = "okay"; 941 938 vbus-supply = <&vdd_usb3_vbus>; 942 939 }; ··· 976 973 linux,input-type = <5>; 977 974 linux,code = <0>; 978 975 debounce-interval = <1>; 979 - gpio-key,wakeup; 976 + wakeup-source; 980 977 }; 981 978 982 979 power { ··· 984 981 gpios = <&gpio TEGRA_GPIO(Q, 0) GPIO_ACTIVE_LOW>; 985 982 linux,code = <KEY_POWER>; 986 983 debounce-interval = <10>; 987 - gpio-key,wakeup; 984 + wakeup-source; 988 985 }; 989 986 }; 990 987
+60 -60
arch/arm64/boot/dts/nvidia/tegra132.dtsi
··· 11 11 #address-cells = <2>; 12 12 #size-cells = <2>; 13 13 14 - pcie-controller@0,01003000 { 14 + pcie-controller@01003000 { 15 15 compatible = "nvidia,tegra124-pcie"; 16 16 device_type = "pci"; 17 17 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ ··· 77 77 }; 78 78 }; 79 79 80 - host1x@0,50000000 { 80 + host1x@50000000 { 81 81 compatible = "nvidia,tegra124-host1x", "simple-bus"; 82 82 reg = <0x0 0x50000000 0x0 0x00034000>; 83 83 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ ··· 92 92 93 93 ranges = <0 0x54000000 0 0x54000000 0 0x01000000>; 94 94 95 - dc@0,54200000 { 95 + dc@54200000 { 96 96 compatible = "nvidia,tegra124-dc"; 97 97 reg = <0x0 0x54200000 0x0 0x00040000>; 98 98 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; ··· 107 107 nvidia,head = <0>; 108 108 }; 109 109 110 - dc@0,54240000 { 110 + dc@54240000 { 111 111 compatible = "nvidia,tegra124-dc"; 112 112 reg = <0x0 0x54240000 0x0 0x00040000>; 113 113 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; ··· 122 122 nvidia,head = <1>; 123 123 }; 124 124 125 - hdmi@0,54280000 { 125 + hdmi@54280000 { 126 126 compatible = "nvidia,tegra124-hdmi"; 127 127 reg = <0x0 0x54280000 0x0 0x00040000>; 128 128 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; ··· 134 134 status = "disabled"; 135 135 }; 136 136 137 - sor@0,54540000 { 137 + sor@54540000 { 138 138 compatible = "nvidia,tegra124-sor"; 139 139 reg = <0x0 0x54540000 0x0 0x00040000>; 140 140 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; ··· 148 148 status = "disabled"; 149 149 }; 150 150 151 - dpaux: dpaux@0,545c0000 { 151 + dpaux: dpaux@545c0000 { 152 152 compatible = "nvidia,tegra124-dpaux"; 153 153 reg = <0x0 0x545c0000 0x0 0x00040000>; 154 154 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; ··· 161 161 }; 162 162 }; 163 163 164 - gic: interrupt-controller@0,50041000 { 164 + gic: interrupt-controller@50041000 { 165 165 compatible = "arm,cortex-a15-gic"; 166 166 #interrupt-cells = <3>; 167 167 interrupt-controller; ··· 174 174 interrupt-parent = <&gic>; 175 175 }; 176 176 177 - gpu@0,57000000 { 177 + gpu@57000000 { 178 178 compatible = "nvidia,gk20a"; 179 179 reg = <0x0 0x57000000 0x0 0x01000000>, 180 180 <0x0 0x58000000 0x0 0x01000000>; ··· 201 201 interrupt-parent = <&gic>; 202 202 }; 203 203 204 - timer@0,60005000 { 204 + timer@60005000 { 205 205 compatible = "nvidia,tegra124-timer", "nvidia,tegra20-timer"; 206 206 reg = <0x0 0x60005000 0x0 0x400>; 207 207 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, ··· 214 214 clock-names = "timer"; 215 215 }; 216 216 217 - tegra_car: clock@0,60006000 { 217 + tegra_car: clock@60006000 { 218 218 compatible = "nvidia,tegra132-car"; 219 219 reg = <0x0 0x60006000 0x0 0x1000>; 220 220 #clock-cells = <1>; ··· 222 222 nvidia,external-memory-controller = <&emc>; 223 223 }; 224 224 225 - flow-controller@0,60007000 { 225 + flow-controller@60007000 { 226 226 compatible = "nvidia,tegra124-flowctrl"; 227 227 reg = <0x0 0x60007000 0x0 0x1000>; 228 228 }; 229 229 230 - actmon@0,6000c800 { 230 + actmon@6000c800 { 231 231 compatible = "nvidia,tegra124-actmon"; 232 232 reg = <0x0 0x6000c800 0x0 0x400>; 233 233 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; ··· 238 238 reset-names = "actmon"; 239 239 }; 240 240 241 - gpio: gpio@0,6000d000 { 241 + gpio: gpio@6000d000 { 242 242 compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio"; 243 243 reg = <0x0 0x6000d000 0x0 0x1000>; 244 244 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, ··· 255 255 interrupt-controller; 256 256 }; 257 257 258 - apbdma: dma@0,60020000 { 258 + apbdma: dma@60020000 { 259 259 compatible = "nvidia,tegra124-apbdma", "nvidia,tegra148-apbdma"; 260 260 reg = <0x0 0x60020000 0x0 0x1400>; 261 261 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, ··· 297 297 #dma-cells = <1>; 298 298 }; 299 299 300 - apbmisc@0,70000800 { 300 + apbmisc@70000800 { 301 301 compatible = "nvidia,tegra124-apbmisc", "nvidia,tegra20-apbmisc"; 302 302 reg = <0x0 0x70000800 0x0 0x64>, /* Chip revision */ 303 303 <0x0 0x7000e864 0x0 0x04>; /* Strapping options */ 304 304 }; 305 305 306 - pinmux: pinmux@0,70000868 { 306 + pinmux: pinmux@70000868 { 307 307 compatible = "nvidia,tegra124-pinmux"; 308 308 reg = <0x0 0x70000868 0x0 0x164>, /* Pad control registers */ 309 309 <0x0 0x70003000 0x0 0x434>, /* Mux registers */ ··· 315 315 * driver and APB DMA based serial driver for higher baudrate 316 316 * and performance. To enable the 8250 based driver, the compatible 317 317 * is "nvidia,tegra124-uart", "nvidia,tegra20-uart" and to enable 318 - * the APB DMA based serial driver, the comptible is 318 + * the APB DMA based serial driver, the compatible is 319 319 * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart". 320 320 */ 321 - uarta: serial@0,70006000 { 321 + uarta: serial@70006000 { 322 322 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 323 323 reg = <0x0 0x70006000 0x0 0x40>; 324 324 reg-shift = <2>; ··· 332 332 status = "disabled"; 333 333 }; 334 334 335 - uartb: serial@0,70006040 { 335 + uartb: serial@70006040 { 336 336 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 337 337 reg = <0x0 0x70006040 0x0 0x40>; 338 338 reg-shift = <2>; ··· 346 346 status = "disabled"; 347 347 }; 348 348 349 - uartc: serial@0,70006200 { 349 + uartc: serial@70006200 { 350 350 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 351 351 reg = <0x0 0x70006200 0x0 0x40>; 352 352 reg-shift = <2>; ··· 360 360 status = "disabled"; 361 361 }; 362 362 363 - uartd: serial@0,70006300 { 363 + uartd: serial@70006300 { 364 364 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 365 365 reg = <0x0 0x70006300 0x0 0x40>; 366 366 reg-shift = <2>; ··· 374 374 status = "disabled"; 375 375 }; 376 376 377 - pwm: pwm@0,7000a000 { 377 + pwm: pwm@7000a000 { 378 378 compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm"; 379 379 reg = <0x0 0x7000a000 0x0 0x100>; 380 380 #pwm-cells = <2>; ··· 385 385 status = "disabled"; 386 386 }; 387 387 388 - i2c@0,7000c000 { 388 + i2c@7000c000 { 389 389 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 390 390 reg = <0x0 0x7000c000 0x0 0x100>; 391 391 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; ··· 400 400 status = "disabled"; 401 401 }; 402 402 403 - i2c@0,7000c400 { 403 + i2c@7000c400 { 404 404 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 405 405 reg = <0x0 0x7000c400 0x0 0x100>; 406 406 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; ··· 415 415 status = "disabled"; 416 416 }; 417 417 418 - i2c@0,7000c500 { 418 + i2c@7000c500 { 419 419 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 420 420 reg = <0x0 0x7000c500 0x0 0x100>; 421 421 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; ··· 430 430 status = "disabled"; 431 431 }; 432 432 433 - i2c@0,7000c700 { 433 + i2c@7000c700 { 434 434 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 435 435 reg = <0x0 0x7000c700 0x0 0x100>; 436 436 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; ··· 445 445 status = "disabled"; 446 446 }; 447 447 448 - i2c@0,7000d000 { 448 + i2c@7000d000 { 449 449 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 450 450 reg = <0x0 0x7000d000 0x0 0x100>; 451 451 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; ··· 460 460 status = "disabled"; 461 461 }; 462 462 463 - i2c@0,7000d100 { 463 + i2c@7000d100 { 464 464 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 465 465 reg = <0x0 0x7000d100 0x0 0x100>; 466 466 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; ··· 475 475 status = "disabled"; 476 476 }; 477 477 478 - spi@0,7000d400 { 478 + spi@7000d400 { 479 479 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 480 480 reg = <0x0 0x7000d400 0x0 0x200>; 481 481 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; ··· 490 490 status = "disabled"; 491 491 }; 492 492 493 - spi@0,7000d600 { 493 + spi@7000d600 { 494 494 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 495 495 reg = <0x0 0x7000d600 0x0 0x200>; 496 496 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; ··· 505 505 status = "disabled"; 506 506 }; 507 507 508 - spi@0,7000d800 { 508 + spi@7000d800 { 509 509 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 510 510 reg = <0x0 0x7000d800 0x0 0x200>; 511 511 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; ··· 520 520 status = "disabled"; 521 521 }; 522 522 523 - spi@0,7000da00 { 523 + spi@7000da00 { 524 524 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 525 525 reg = <0x0 0x7000da00 0x0 0x200>; 526 526 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; ··· 535 535 status = "disabled"; 536 536 }; 537 537 538 - spi@0,7000dc00 { 538 + spi@7000dc00 { 539 539 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 540 540 reg = <0x0 0x7000dc00 0x0 0x200>; 541 541 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; ··· 550 550 status = "disabled"; 551 551 }; 552 552 553 - spi@0,7000de00 { 553 + spi@7000de00 { 554 554 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 555 555 reg = <0x0 0x7000de00 0x0 0x200>; 556 556 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; ··· 565 565 status = "disabled"; 566 566 }; 567 567 568 - rtc@0,7000e000 { 568 + rtc@7000e000 { 569 569 compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; 570 570 reg = <0x0 0x7000e000 0x0 0x100>; 571 571 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; ··· 573 573 clock-names = "rtc"; 574 574 }; 575 575 576 - pmc@0,7000e400 { 576 + pmc@7000e400 { 577 577 compatible = "nvidia,tegra124-pmc"; 578 578 reg = <0x0 0x7000e400 0x0 0x400>; 579 579 clocks = <&tegra_car TEGRA124_CLK_PCLK>, <&clk32k_in>; 580 580 clock-names = "pclk", "clk32k_in"; 581 581 }; 582 582 583 - fuse@0,7000f800 { 583 + fuse@7000f800 { 584 584 compatible = "nvidia,tegra124-efuse"; 585 585 reg = <0x0 0x7000f800 0x0 0x400>; 586 586 clocks = <&tegra_car TEGRA124_CLK_FUSE>; ··· 589 589 reset-names = "fuse"; 590 590 }; 591 591 592 - mc: memory-controller@0,70019000 { 592 + mc: memory-controller@70019000 { 593 593 compatible = "nvidia,tegra132-mc"; 594 594 reg = <0x0 0x70019000 0x0 0x1000>; 595 595 clocks = <&tegra_car TEGRA124_CLK_MC>; ··· 600 600 #iommu-cells = <1>; 601 601 }; 602 602 603 - emc: emc@0,7001b000 { 603 + emc: emc@7001b000 { 604 604 compatible = "nvidia,tegra132-emc", "nvidia,tegra124-emc"; 605 605 reg = <0x0 0x7001b000 0x0 0x1000>; 606 606 607 607 nvidia,memory-controller = <&mc>; 608 608 }; 609 609 610 - sata@0,70020000 { 610 + sata@70020000 { 611 611 compatible = "nvidia,tegra124-ahci"; 612 612 reg = <0x0 0x70027000 0x0 0x2000>, /* AHCI */ 613 613 <0x0 0x70020000 0x0 0x7000>; /* SATA */ ··· 626 626 status = "disabled"; 627 627 }; 628 628 629 - hda@0,70030000 { 629 + hda@70030000 { 630 630 compatible = "nvidia,tegra132-hda", "nvidia,tegra124-hda", 631 631 "nvidia,tegra30-hda"; 632 632 reg = <0x0 0x70030000 0x0 0x10000>; ··· 642 642 status = "disabled"; 643 643 }; 644 644 645 - padctl: padctl@0,7009f000 { 645 + padctl: padctl@7009f000 { 646 646 compatible = "nvidia,tegra132-xusb-padctl", 647 647 "nvidia,tegra124-xusb-padctl"; 648 648 reg = <0x0 0x7009f000 0x0 0x1000>; ··· 682 682 }; 683 683 }; 684 684 685 - sdhci@0,700b0000 { 685 + sdhci@700b0000 { 686 686 compatible = "nvidia,tegra124-sdhci"; 687 687 reg = <0x0 0x700b0000 0x0 0x200>; 688 688 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; ··· 693 693 status = "disabled"; 694 694 }; 695 695 696 - sdhci@0,700b0200 { 696 + sdhci@700b0200 { 697 697 compatible = "nvidia,tegra124-sdhci"; 698 698 reg = <0x0 0x700b0200 0x0 0x200>; 699 699 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; ··· 704 704 status = "disabled"; 705 705 }; 706 706 707 - sdhci@0,700b0400 { 707 + sdhci@700b0400 { 708 708 compatible = "nvidia,tegra124-sdhci"; 709 709 reg = <0x0 0x700b0400 0x0 0x200>; 710 710 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; ··· 715 715 status = "disabled"; 716 716 }; 717 717 718 - sdhci@0,700b0600 { 718 + sdhci@700b0600 { 719 719 compatible = "nvidia,tegra124-sdhci"; 720 720 reg = <0x0 0x700b0600 0x0 0x200>; 721 721 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; ··· 726 726 status = "disabled"; 727 727 }; 728 728 729 - soctherm: thermal-sensor@0,700e2000 { 729 + soctherm: thermal-sensor@700e2000 { 730 730 compatible = "nvidia,tegra124-soctherm"; 731 731 reg = <0x0 0x700e2000 0x0 0x1000>; 732 732 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; ··· 738 738 #thermal-sensor-cells = <1>; 739 739 }; 740 740 741 - ahub@0,70300000 { 741 + ahub@70300000 { 742 742 compatible = "nvidia,tegra124-ahub"; 743 743 reg = <0x0 0x70300000 0x0 0x200>, 744 744 <0x0 0x70300800 0x0 0x800>, ··· 790 790 #address-cells = <2>; 791 791 #size-cells = <2>; 792 792 793 - tegra_i2s0: i2s@0,70301000 { 793 + tegra_i2s0: i2s@70301000 { 794 794 compatible = "nvidia,tegra124-i2s"; 795 795 reg = <0x0 0x70301000 0x0 0x100>; 796 796 nvidia,ahub-cif-ids = <4 4>; ··· 801 801 status = "disabled"; 802 802 }; 803 803 804 - tegra_i2s1: i2s@0,70301100 { 804 + tegra_i2s1: i2s@70301100 { 805 805 compatible = "nvidia,tegra124-i2s"; 806 806 reg = <0x0 0x70301100 0x0 0x100>; 807 807 nvidia,ahub-cif-ids = <5 5>; ··· 812 812 status = "disabled"; 813 813 }; 814 814 815 - tegra_i2s2: i2s@0,70301200 { 815 + tegra_i2s2: i2s@70301200 { 816 816 compatible = "nvidia,tegra124-i2s"; 817 817 reg = <0x0 0x70301200 0x0 0x100>; 818 818 nvidia,ahub-cif-ids = <6 6>; ··· 823 823 status = "disabled"; 824 824 }; 825 825 826 - tegra_i2s3: i2s@0,70301300 { 826 + tegra_i2s3: i2s@70301300 { 827 827 compatible = "nvidia,tegra124-i2s"; 828 828 reg = <0x0 0x70301300 0x0 0x100>; 829 829 nvidia,ahub-cif-ids = <7 7>; ··· 834 834 status = "disabled"; 835 835 }; 836 836 837 - tegra_i2s4: i2s@0,70301400 { 837 + tegra_i2s4: i2s@70301400 { 838 838 compatible = "nvidia,tegra124-i2s"; 839 839 reg = <0x0 0x70301400 0x0 0x100>; 840 840 nvidia,ahub-cif-ids = <8 8>; ··· 846 846 }; 847 847 }; 848 848 849 - usb@0,7d000000 { 849 + usb@7d000000 { 850 850 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 851 851 reg = <0x0 0x7d000000 0x0 0x4000>; 852 852 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; ··· 859 859 status = "disabled"; 860 860 }; 861 861 862 - phy1: usb-phy@0,7d000000 { 862 + phy1: usb-phy@7d000000 { 863 863 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy"; 864 864 reg = <0x0 0x7d000000 0x0 0x4000>, 865 865 <0x0 0x7d000000 0x0 0x4000>; ··· 884 884 status = "disabled"; 885 885 }; 886 886 887 - usb@0,7d004000 { 887 + usb@7d004000 { 888 888 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 889 889 reg = <0x0 0x7d004000 0x0 0x4000>; 890 890 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; ··· 897 897 status = "disabled"; 898 898 }; 899 899 900 - phy2: usb-phy@0,7d004000 { 900 + phy2: usb-phy@7d004000 { 901 901 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy"; 902 902 reg = <0x0 0x7d004000 0x0 0x4000>, 903 903 <0x0 0x7d000000 0x0 0x4000>; ··· 921 921 status = "disabled"; 922 922 }; 923 923 924 - usb@0,7d008000 { 924 + usb@7d008000 { 925 925 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 926 926 reg = <0x0 0x7d008000 0x0 0x4000>; 927 927 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; ··· 934 934 status = "disabled"; 935 935 }; 936 936 937 - phy3: usb-phy@0,7d008000 { 937 + phy3: usb-phy@7d008000 { 938 938 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy"; 939 939 reg = <0x0 0x7d008000 0x0 0x4000>, 940 940 <0x0 0x7d000000 0x0 0x4000>;
+4 -4
arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
··· 5 5 compatible = "nvidia,p2180", "nvidia,tegra210"; 6 6 7 7 aliases { 8 - rtc1 = "/rtc@0,7000e000"; 8 + rtc1 = "/rtc@7000e000"; 9 9 serial0 = &uarta; 10 10 }; 11 11 ··· 15 15 }; 16 16 17 17 /* debug port */ 18 - serial@0,70006000 { 18 + serial@70006000 { 19 19 status = "okay"; 20 20 }; 21 21 22 - pmc@0,7000e400 { 22 + pmc@7000e400 { 23 23 nvidia,invert-interrupt; 24 24 }; 25 25 26 26 /* eMMC */ 27 - sdhci@0,700b0600 { 27 + sdhci@700b0600 { 28 28 status = "okay"; 29 29 bus-width = <8>; 30 30 non-removable;
+9 -5
arch/arm64/boot/dts/nvidia/tegra210-p2530.dtsi
··· 5 5 compatible = "nvidia,p2530", "nvidia,tegra210"; 6 6 7 7 aliases { 8 - rtc1 = "/rtc@0,7000e000"; 8 + rtc1 = "/rtc@7000e000"; 9 9 serial0 = &uarta; 10 + }; 11 + 12 + chosen { 13 + stdout-path = "serial0:115200n8"; 10 14 }; 11 15 12 16 memory { ··· 19 15 }; 20 16 21 17 /* debug port */ 22 - serial@0,70006000 { 18 + serial@70006000 { 23 19 status = "okay"; 24 20 }; 25 21 26 - i2c@0,7000d000 { 22 + i2c@7000d000 { 27 23 status = "okay"; 28 24 clock-frequency = <400000>; 29 25 }; 30 26 31 - pmc@0,7000e400 { 27 + pmc@7000e400 { 32 28 nvidia,invert-interrupt; 33 29 }; 34 30 35 31 /* eMMC */ 36 - sdhci@0,700b0600 { 32 + sdhci@700b0600 { 37 33 status = "okay"; 38 34 bus-width = <8>; 39 35 non-removable;
+1 -1
arch/arm64/boot/dts/nvidia/tegra210-p2571.dts
··· 7 7 model = "NVIDIA Tegra210 P2571 reference design"; 8 8 compatible = "nvidia,p2571", "nvidia,tegra210"; 9 9 10 - pinmux: pinmux@0,700008d4 { 10 + pinmux: pinmux@700008d4 { 11 11 pinctrl-names = "boot"; 12 12 pinctrl-0 = <&state_boot>; 13 13
+1 -1
arch/arm64/boot/dts/nvidia/tegra210-p2595.dtsi
··· 2 2 model = "NVIDIA Tegra210 P2595 I/O board"; 3 3 compatible = "nvidia,p2595", "nvidia,tegra210"; 4 4 5 - pinmux: pinmux@0,700008d4 { 5 + pinmux: pinmux@700008d4 { 6 6 pinctrl-names = "boot"; 7 7 pinctrl-0 = <&state_boot>; 8 8
+28 -2
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
··· 1 + #include <dt-bindings/input/input.h> 2 + 1 3 / { 2 4 model = "NVIDIA Tegra210 P2597 I/O board"; 3 5 compatible = "nvidia,p2597", "nvidia,tegra210"; 4 6 5 - pinmux: pinmux@0,700008d4 { 7 + pinmux: pinmux@700008d4 { 6 8 pinctrl-names = "boot"; 7 9 pinctrl-0 = <&state_boot>; 8 10 ··· 1262 1260 }; 1263 1261 1264 1262 /* MMC/SD */ 1265 - sdhci@0,700b0000 { 1263 + sdhci@700b0000 { 1266 1264 status = "okay"; 1267 1265 bus-width = <4>; 1268 1266 no-1-8-v; 1269 1267 1270 1268 cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>; 1269 + }; 1270 + 1271 + gpio-keys { 1272 + compatible = "gpio-keys"; 1273 + label = "gpio-keys"; 1274 + 1275 + power { 1276 + label = "Power"; 1277 + gpios = <&gpio TEGRA_GPIO(X, 5) GPIO_ACTIVE_LOW>; 1278 + linux,code = <KEY_POWER>; 1279 + wakeup-source; 1280 + }; 1281 + 1282 + volume_down { 1283 + label = "Volume Down"; 1284 + gpios = <&gpio TEGRA_GPIO(Y, 0) GPIO_ACTIVE_LOW>; 1285 + linux,code = <KEY_VOLUMEDOWN>; 1286 + }; 1287 + 1288 + volume_up { 1289 + label = "Volume Up"; 1290 + gpios = <&gpio TEGRA_GPIO(X, 6) GPIO_ACTIVE_LOW>; 1291 + linux,code = <KEY_VOLUMEUP>; 1292 + }; 1271 1293 }; 1272 1294 };
+1424
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
··· 1 + /dts-v1/; 2 + 3 + #include <dt-bindings/input/input.h> 4 + #include <dt-bindings/pinctrl/pinctrl-tegra.h> 5 + 6 + #include "tegra210.dtsi" 7 + 8 + / { 9 + model = "Google Pixel C"; 10 + compatible = "google,smaug-rev8", "google,smaug-rev7", 11 + "google,smaug-rev6", "google,smaug-rev5", 12 + "google,smaug-rev4", "google,smaug-rev3", 13 + "google,smaug-rev1", "google,smaug", "nvidia,tegra210"; 14 + 15 + aliases { 16 + serial0 = &uarta; 17 + }; 18 + 19 + chosen { 20 + bootargs = "earlycon"; 21 + stdout-path = "serial0:115200n8"; 22 + }; 23 + 24 + memory { 25 + device_type = "memory"; 26 + reg = <0x0 0x80000000 0x0 0xc0000000>; 27 + }; 28 + 29 + pinmux: pinmux@700008d4 { 30 + pinctrl-names = "boot"; 31 + pinctrl-0 = <&state_boot>; 32 + 33 + state_boot: pinmux { 34 + pex_l0_rst_n_pa0 { 35 + nvidia,pins = "pex_l0_rst_n_pa0"; 36 + nvidia,function = "rsvd1"; 37 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 38 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 39 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 40 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 41 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 42 + }; 43 + pex_l0_clkreq_n_pa1 { 44 + nvidia,pins = "pex_l0_clkreq_n_pa1"; 45 + nvidia,function = "rsvd1"; 46 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 47 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 48 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 49 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 50 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 51 + }; 52 + pex_wake_n_pa2 { 53 + nvidia,pins = "pex_wake_n_pa2"; 54 + nvidia,function = "rsvd1"; 55 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 56 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 57 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 58 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 59 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 60 + }; 61 + pex_l1_rst_n_pa3 { 62 + nvidia,pins = "pex_l1_rst_n_pa3"; 63 + nvidia,function = "rsvd1"; 64 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 65 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 66 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 67 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 68 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 69 + }; 70 + pex_l1_clkreq_n_pa4 { 71 + nvidia,pins = "pex_l1_clkreq_n_pa4"; 72 + nvidia,function = "rsvd1"; 73 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 74 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 75 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 76 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 77 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 78 + }; 79 + sata_led_active_pa5 { 80 + nvidia,pins = "sata_led_active_pa5"; 81 + nvidia,function = "rsvd1"; 82 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 83 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 84 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 85 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 86 + }; 87 + pa6 { 88 + nvidia,pins = "pa6"; 89 + nvidia,function = "rsvd1"; 90 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 91 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 92 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 93 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 94 + }; 95 + dap1_fs_pb0 { 96 + nvidia,pins = "dap1_fs_pb0"; 97 + nvidia,function = "i2s1"; 98 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 99 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 100 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 101 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 102 + }; 103 + dap1_din_pb1 { 104 + nvidia,pins = "dap1_din_pb1"; 105 + nvidia,function = "i2s1"; 106 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 107 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 108 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 109 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 110 + }; 111 + dap1_dout_pb2 { 112 + nvidia,pins = "dap1_dout_pb2"; 113 + nvidia,function = "i2s1"; 114 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 115 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 116 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 117 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 118 + }; 119 + dap1_sclk_pb3 { 120 + nvidia,pins = "dap1_sclk_pb3"; 121 + nvidia,function = "i2s1"; 122 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 123 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 124 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 125 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 126 + }; 127 + spi2_mosi_pb4 { 128 + nvidia,pins = "spi2_mosi_pb4"; 129 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 130 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 131 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 132 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 133 + }; 134 + spi2_miso_pb5 { 135 + nvidia,pins = "spi2_miso_pb5"; 136 + nvidia,function = "rsvd2"; 137 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 138 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 139 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 140 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 141 + }; 142 + spi2_sck_pb6 { 143 + nvidia,pins = "spi2_sck_pb6"; 144 + nvidia,function = "rsvd2"; 145 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 146 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 147 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 148 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 149 + }; 150 + spi2_cs0_pb7 { 151 + nvidia,pins = "spi2_cs0_pb7"; 152 + nvidia,function = "rsvd2"; 153 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 154 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 155 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 156 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 157 + }; 158 + spi1_mosi_pc0 { 159 + nvidia,pins = "spi1_mosi_pc0"; 160 + nvidia,function = "spi1"; 161 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 162 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 163 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 164 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 165 + }; 166 + spi1_miso_pc1 { 167 + nvidia,pins = "spi1_miso_pc1"; 168 + nvidia,function = "spi1"; 169 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 170 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 171 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 172 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 173 + }; 174 + spi1_sck_pc2 { 175 + nvidia,pins = "spi1_sck_pc2"; 176 + nvidia,function = "spi1"; 177 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 178 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 179 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 180 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 181 + }; 182 + spi1_cs0_pc3 { 183 + nvidia,pins = "spi1_cs0_pc3"; 184 + nvidia,function = "spi1"; 185 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 186 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 187 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 188 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 189 + }; 190 + spi1_cs1_pc4 { 191 + nvidia,pins = "spi1_cs1_pc4"; 192 + nvidia,function = "rsvd1"; 193 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 194 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 195 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 196 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 197 + }; 198 + spi4_sck_pc5 { 199 + nvidia,pins = "spi4_sck_pc5"; 200 + nvidia,function = "rsvd1"; 201 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 202 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 203 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 204 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 205 + }; 206 + spi4_cs0_pc6 { 207 + nvidia,pins = "spi4_cs0_pc6"; 208 + nvidia,function = "rsvd1"; 209 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 210 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 211 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 212 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 213 + }; 214 + spi4_mosi_pc7 { 215 + nvidia,pins = "spi4_mosi_pc7"; 216 + nvidia,function = "rsvd1"; 217 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 218 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 219 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 220 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 221 + }; 222 + spi4_miso_pd0 { 223 + nvidia,pins = "spi4_miso_pd0"; 224 + nvidia,function = "rsvd1"; 225 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 226 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 227 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 228 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 229 + }; 230 + uart3_tx_pd1 { 231 + nvidia,pins = "uart3_tx_pd1"; 232 + nvidia,function = "uartc"; 233 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 234 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 235 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 236 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 237 + }; 238 + uart3_rx_pd2 { 239 + nvidia,pins = "uart3_rx_pd2"; 240 + nvidia,function = "uartc"; 241 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 242 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 243 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 244 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 245 + }; 246 + uart3_rts_pd3 { 247 + nvidia,pins = "uart3_rts_pd3"; 248 + nvidia,function = "uartc"; 249 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 250 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 251 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 252 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 253 + }; 254 + uart3_cts_pd4 { 255 + nvidia,pins = "uart3_cts_pd4"; 256 + nvidia,function = "uartc"; 257 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 258 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 259 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 260 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 261 + }; 262 + dmic1_clk_pe0 { 263 + nvidia,pins = "dmic1_clk_pe0"; 264 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 265 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 266 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 267 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 268 + }; 269 + dmic1_dat_pe1 { 270 + nvidia,pins = "dmic1_dat_pe1"; 271 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 272 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 273 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 274 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 275 + }; 276 + dmic2_clk_pe2 { 277 + nvidia,pins = "dmic2_clk_pe2"; 278 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 279 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 280 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 281 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 282 + }; 283 + dmic2_dat_pe3 { 284 + nvidia,pins = "dmic2_dat_pe3"; 285 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 286 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 287 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 288 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 289 + }; 290 + dmic3_clk_pe4 { 291 + nvidia,pins = "dmic3_clk_pe4"; 292 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 293 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 294 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 295 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 296 + }; 297 + dmic3_dat_pe5 { 298 + nvidia,pins = "dmic3_dat_pe5"; 299 + nvidia,function = "rsvd2"; 300 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 301 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 302 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 303 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 304 + }; 305 + pe6 { 306 + nvidia,pins = "pe6"; 307 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 308 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 309 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 310 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 311 + }; 312 + pe7 { 313 + nvidia,pins = "pe7"; 314 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 315 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 316 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 317 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 318 + }; 319 + gen3_i2c_scl_pf0 { 320 + nvidia,pins = "gen3_i2c_scl_pf0"; 321 + nvidia,function = "i2c3"; 322 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 323 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 324 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 325 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 326 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 327 + }; 328 + gen3_i2c_sda_pf1 { 329 + nvidia,pins = "gen3_i2c_sda_pf1"; 330 + nvidia,function = "i2c3"; 331 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 332 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 333 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 334 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 335 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 336 + }; 337 + uart2_tx_pg0 { 338 + nvidia,pins = "uart2_tx_pg0"; 339 + nvidia,function = "uartb"; 340 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 341 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 342 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 343 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 344 + }; 345 + uart2_rx_pg1 { 346 + nvidia,pins = "uart2_rx_pg1"; 347 + nvidia,function = "uartb"; 348 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 349 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 350 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 351 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 352 + }; 353 + uart2_rts_pg2 { 354 + nvidia,pins = "uart2_rts_pg2"; 355 + nvidia,function = "rsvd2"; 356 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 357 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 358 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 359 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 360 + }; 361 + uart2_cts_pg3 { 362 + nvidia,pins = "uart2_cts_pg3"; 363 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 364 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 365 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 366 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 367 + }; 368 + wifi_en_ph0 { 369 + nvidia,pins = "wifi_en_ph0"; 370 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 371 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 372 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 373 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 374 + }; 375 + wifi_rst_ph1 { 376 + nvidia,pins = "wifi_rst_ph1"; 377 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 378 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 379 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 380 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 381 + }; 382 + wifi_wake_ap_ph2 { 383 + nvidia,pins = "wifi_wake_ap_ph2"; 384 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 385 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 386 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 387 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 388 + }; 389 + ap_wake_bt_ph3 { 390 + nvidia,pins = "ap_wake_bt_ph3"; 391 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 392 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 393 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 394 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 395 + }; 396 + bt_rst_ph4 { 397 + nvidia,pins = "bt_rst_ph4"; 398 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 399 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 400 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 401 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 402 + }; 403 + bt_wake_ap_ph5 { 404 + nvidia,pins = "bt_wake_ap_ph5"; 405 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 406 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 407 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 408 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 409 + }; 410 + ph6 { 411 + nvidia,pins = "ph6"; 412 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 413 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 414 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 415 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 416 + }; 417 + ap_wake_nfc_ph7 { 418 + nvidia,pins = "ap_wake_nfc_ph7"; 419 + nvidia,function = "rsvd0"; 420 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 421 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 422 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 423 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 424 + }; 425 + nfc_en_pi0 { 426 + nvidia,pins = "nfc_en_pi0"; 427 + nvidia,function = "rsvd0"; 428 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 429 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 430 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 431 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 432 + }; 433 + nfc_int_pi1 { 434 + nvidia,pins = "nfc_int_pi1"; 435 + nvidia,function = "rsvd0"; 436 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 437 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 438 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 439 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 440 + }; 441 + gps_en_pi2 { 442 + nvidia,pins = "gps_en_pi2"; 443 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 444 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 445 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 446 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 447 + }; 448 + gps_rst_pi3 { 449 + nvidia,pins = "gps_rst_pi3"; 450 + nvidia,function = "rsvd0"; 451 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 452 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 453 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 454 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 455 + }; 456 + uart4_tx_pi4 { 457 + nvidia,pins = "uart4_tx_pi4"; 458 + nvidia,function = "uartd"; 459 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 460 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 461 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 462 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 463 + }; 464 + uart4_rx_pi5 { 465 + nvidia,pins = "uart4_rx_pi5"; 466 + nvidia,function = "uartd"; 467 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 468 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 469 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 470 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 471 + }; 472 + uart4_rts_pi6 { 473 + nvidia,pins = "uart4_rts_pi6"; 474 + nvidia,function = "uartd"; 475 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 476 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 477 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 478 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 479 + }; 480 + uart4_cts_pi7 { 481 + nvidia,pins = "uart4_cts_pi7"; 482 + nvidia,function = "uartd"; 483 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 484 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 485 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 486 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 487 + }; 488 + gen1_i2c_sda_pj0 { 489 + nvidia,pins = "gen1_i2c_sda_pj0"; 490 + nvidia,function = "i2c1"; 491 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 492 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 493 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 494 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 495 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 496 + }; 497 + gen1_i2c_scl_pj1 { 498 + nvidia,pins = "gen1_i2c_scl_pj1"; 499 + nvidia,function = "i2c1"; 500 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 501 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 502 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 503 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 504 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 505 + }; 506 + gen2_i2c_scl_pj2 { 507 + nvidia,pins = "gen2_i2c_scl_pj2"; 508 + nvidia,function = "i2c2"; 509 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 510 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 511 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 512 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 513 + nvidia,io-hv = <TEGRA_PIN_ENABLE>; 514 + }; 515 + gen2_i2c_sda_pj3 { 516 + nvidia,pins = "gen2_i2c_sda_pj3"; 517 + nvidia,function = "i2c2"; 518 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 519 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 520 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 521 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 522 + nvidia,io-hv = <TEGRA_PIN_ENABLE>; 523 + }; 524 + dap4_fs_pj4 { 525 + nvidia,pins = "dap4_fs_pj4"; 526 + nvidia,function = "rsvd1"; 527 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 528 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 529 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 530 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 531 + }; 532 + dap4_din_pj5 { 533 + nvidia,pins = "dap4_din_pj5"; 534 + nvidia,function = "rsvd1"; 535 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 536 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 537 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 538 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 539 + }; 540 + dap4_dout_pj6 { 541 + nvidia,pins = "dap4_dout_pj6"; 542 + nvidia,function = "rsvd1"; 543 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 544 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 545 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 546 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 547 + }; 548 + dap4_sclk_pj7 { 549 + nvidia,pins = "dap4_sclk_pj7"; 550 + nvidia,function = "rsvd1"; 551 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 552 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 553 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 554 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 555 + }; 556 + pk0 { 557 + nvidia,pins = "pk0"; 558 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 559 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 560 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 561 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 562 + }; 563 + pk1 { 564 + nvidia,pins = "pk1"; 565 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 566 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 567 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 568 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 569 + }; 570 + pk2 { 571 + nvidia,pins = "pk2"; 572 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 573 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 574 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 575 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 576 + }; 577 + pk3 { 578 + nvidia,pins = "pk3"; 579 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 580 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 581 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 582 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 583 + }; 584 + pk4 { 585 + nvidia,pins = "pk4"; 586 + nvidia,function = "rsvd1"; 587 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 588 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 589 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 590 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 591 + }; 592 + pk5 { 593 + nvidia,pins = "pk5"; 594 + nvidia,function = "rsvd1"; 595 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 596 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 597 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 598 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 599 + }; 600 + pk6 { 601 + nvidia,pins = "pk6"; 602 + nvidia,function = "rsvd1"; 603 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 604 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 605 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 606 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 607 + }; 608 + pk7 { 609 + nvidia,pins = "pk7"; 610 + nvidia,function = "rsvd1"; 611 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 612 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 613 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 614 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 615 + }; 616 + pl0 { 617 + nvidia,pins = "pl0"; 618 + nvidia,function = "rsvd0"; 619 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 620 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 621 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 622 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 623 + }; 624 + pl1 { 625 + nvidia,pins = "pl1"; 626 + nvidia,function = "rsvd1"; 627 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 628 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 629 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 630 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 631 + }; 632 + sdmmc1_clk_pm0 { 633 + nvidia,pins = "sdmmc1_clk_pm0"; 634 + nvidia,function = "rsvd1"; 635 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 636 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 637 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 638 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 639 + }; 640 + sdmmc1_cmd_pm1 { 641 + nvidia,pins = "sdmmc1_cmd_pm1"; 642 + nvidia,function = "rsvd2"; 643 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 644 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 645 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 646 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 647 + }; 648 + sdmmc1_dat3_pm2 { 649 + nvidia,pins = "sdmmc1_dat3_pm2"; 650 + nvidia,function = "rsvd2"; 651 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 652 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 653 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 654 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 655 + }; 656 + sdmmc1_dat2_pm3 { 657 + nvidia,pins = "sdmmc1_dat2_pm3"; 658 + nvidia,function = "rsvd2"; 659 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 660 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 661 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 662 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 663 + }; 664 + sdmmc1_dat1_pm4 { 665 + nvidia,pins = "sdmmc1_dat1_pm4"; 666 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 667 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 668 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 669 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 670 + }; 671 + sdmmc1_dat0_pm5 { 672 + nvidia,pins = "sdmmc1_dat0_pm5"; 673 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 674 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 675 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 676 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 677 + }; 678 + sdmmc3_clk_pp0 { 679 + nvidia,pins = "sdmmc3_clk_pp0"; 680 + nvidia,function = "rsvd1"; 681 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 682 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 683 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 684 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 685 + }; 686 + sdmmc3_cmd_pp1 { 687 + nvidia,pins = "sdmmc3_cmd_pp1"; 688 + nvidia,function = "rsvd1"; 689 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 690 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 691 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 692 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 693 + }; 694 + sdmmc3_dat3_pp2 { 695 + nvidia,pins = "sdmmc3_dat3_pp2"; 696 + nvidia,function = "rsvd1"; 697 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 698 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 699 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 700 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 701 + }; 702 + sdmmc3_dat2_pp3 { 703 + nvidia,pins = "sdmmc3_dat2_pp3"; 704 + nvidia,function = "rsvd1"; 705 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 706 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 707 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 708 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 709 + }; 710 + sdmmc3_dat1_pp4 { 711 + nvidia,pins = "sdmmc3_dat1_pp4"; 712 + nvidia,function = "rsvd1"; 713 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 714 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 715 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 716 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 717 + }; 718 + sdmmc3_dat0_pp5 { 719 + nvidia,pins = "sdmmc3_dat0_pp5"; 720 + nvidia,function = "rsvd1"; 721 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 722 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 723 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 724 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 725 + }; 726 + cam1_mclk_ps0 { 727 + nvidia,pins = "cam1_mclk_ps0"; 728 + nvidia,function = "extperiph3"; 729 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 730 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 731 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 732 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 733 + }; 734 + cam2_mclk_ps1 { 735 + nvidia,pins = "cam2_mclk_ps1"; 736 + nvidia,function = "extperiph3"; 737 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 738 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 739 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 740 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 741 + }; 742 + cam_i2c_scl_ps2 { 743 + nvidia,pins = "cam_i2c_scl_ps2"; 744 + nvidia,function = "i2cvi"; 745 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 746 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 747 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 748 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 749 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 750 + }; 751 + cam_i2c_sda_ps3 { 752 + nvidia,pins = "cam_i2c_sda_ps3"; 753 + nvidia,function = "i2cvi"; 754 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 755 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 756 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 757 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 758 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 759 + }; 760 + cam_rst_ps4 { 761 + nvidia,pins = "cam_rst_ps4"; 762 + nvidia,function = "rsvd1"; 763 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 764 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 765 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 766 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 767 + }; 768 + cam_af_en_ps5 { 769 + nvidia,pins = "cam_af_en_ps5"; 770 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 771 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 772 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 773 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 774 + }; 775 + cam_flash_en_ps6 { 776 + nvidia,pins = "cam_flash_en_ps6"; 777 + nvidia,function = "rsvd2"; 778 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 779 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 780 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 781 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 782 + }; 783 + cam1_pwdn_ps7 { 784 + nvidia,pins = "cam1_pwdn_ps7"; 785 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 786 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 787 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 788 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 789 + }; 790 + cam2_pwdn_pt0 { 791 + nvidia,pins = "cam2_pwdn_pt0"; 792 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 793 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 794 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 795 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 796 + }; 797 + cam1_strobe_pt1 { 798 + nvidia,pins = "cam1_strobe_pt1"; 799 + nvidia,function = "rsvd1"; 800 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 801 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 802 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 803 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 804 + }; 805 + uart1_tx_pu0 { 806 + nvidia,pins = "uart1_tx_pu0"; 807 + nvidia,function = "uarta"; 808 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 809 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 810 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 811 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 812 + }; 813 + uart1_rx_pu1 { 814 + nvidia,pins = "uart1_rx_pu1"; 815 + nvidia,function = "uarta"; 816 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 817 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 818 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 819 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 820 + }; 821 + uart1_rts_pu2 { 822 + nvidia,pins = "uart1_rts_pu2"; 823 + nvidia,function = "rsvd1"; 824 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 825 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 826 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 827 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 828 + }; 829 + uart1_cts_pu3 { 830 + nvidia,pins = "uart1_cts_pu3"; 831 + nvidia,function = "rsvd1"; 832 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 833 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 834 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 835 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 836 + }; 837 + lcd_bl_pwm_pv0 { 838 + nvidia,pins = "lcd_bl_pwm_pv0"; 839 + nvidia,function = "rsvd3"; 840 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 841 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 842 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 843 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 844 + }; 845 + lcd_bl_en_pv1 { 846 + nvidia,pins = "lcd_bl_en_pv1"; 847 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 848 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 849 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 850 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 851 + }; 852 + lcd_rst_pv2 { 853 + nvidia,pins = "lcd_rst_pv2"; 854 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 855 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 856 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 857 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 858 + }; 859 + lcd_gpio1_pv3 { 860 + nvidia,pins = "lcd_gpio1_pv3"; 861 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 862 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 863 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 864 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 865 + }; 866 + lcd_gpio2_pv4 { 867 + nvidia,pins = "lcd_gpio2_pv4"; 868 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 869 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 870 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 871 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 872 + }; 873 + ap_ready_pv5 { 874 + nvidia,pins = "ap_ready_pv5"; 875 + nvidia,function = "rsvd0"; 876 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 877 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 878 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 879 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 880 + }; 881 + touch_rst_pv6 { 882 + nvidia,pins = "touch_rst_pv6"; 883 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 884 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 885 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 886 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 887 + }; 888 + touch_clk_pv7 { 889 + nvidia,pins = "touch_clk_pv7"; 890 + nvidia,function = "touch"; 891 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 892 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 893 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 894 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 895 + }; 896 + modem_wake_ap_px0 { 897 + nvidia,pins = "modem_wake_ap_px0"; 898 + nvidia,function = "rsvd0"; 899 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 900 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 901 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 902 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 903 + }; 904 + touch_int_px1 { 905 + nvidia,pins = "touch_int_px1"; 906 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 907 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 908 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 909 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 910 + }; 911 + motion_int_px2 { 912 + nvidia,pins = "motion_int_px2"; 913 + nvidia,function = "rsvd0"; 914 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 915 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 916 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 917 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 918 + }; 919 + als_prox_int_px3 { 920 + nvidia,pins = "als_prox_int_px3"; 921 + nvidia,function = "rsvd0"; 922 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 923 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 924 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 925 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 926 + }; 927 + temp_alert_px4 { 928 + nvidia,pins = "temp_alert_px4"; 929 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 930 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 931 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 932 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 933 + }; 934 + button_power_on_px5 { 935 + nvidia,pins = "button_power_on_px5"; 936 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 937 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 938 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 939 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 940 + }; 941 + button_vol_up_px6 { 942 + nvidia,pins = "button_vol_up_px6"; 943 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 944 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 945 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 946 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 947 + }; 948 + button_vol_down_px7 { 949 + nvidia,pins = "button_vol_down_px7"; 950 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 951 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 952 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 953 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 954 + }; 955 + button_slide_sw_py0 { 956 + nvidia,pins = "button_slide_sw_py0"; 957 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 958 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 959 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 960 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 961 + }; 962 + button_home_py1 { 963 + nvidia,pins = "button_home_py1"; 964 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 965 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 966 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 967 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 968 + }; 969 + lcd_te_py2 { 970 + nvidia,pins = "lcd_te_py2"; 971 + nvidia,function = "displaya"; 972 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 973 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 974 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 975 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 976 + }; 977 + pwr_i2c_scl_py3 { 978 + nvidia,pins = "pwr_i2c_scl_py3"; 979 + nvidia,function = "i2cpmu"; 980 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 981 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 982 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 983 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 984 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 985 + }; 986 + pwr_i2c_sda_py4 { 987 + nvidia,pins = "pwr_i2c_sda_py4"; 988 + nvidia,function = "i2cpmu"; 989 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 990 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 991 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 992 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 993 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 994 + }; 995 + clk_32k_out_py5 { 996 + nvidia,pins = "clk_32k_out_py5"; 997 + nvidia,function = "soc"; 998 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 999 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1000 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1001 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1002 + }; 1003 + pz0 { 1004 + nvidia,pins = "pz0"; 1005 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1006 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1007 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1008 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1009 + }; 1010 + pz1 { 1011 + nvidia,pins = "pz1"; 1012 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1013 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1014 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1015 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1016 + }; 1017 + pz2 { 1018 + nvidia,pins = "pz2"; 1019 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1020 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1021 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1022 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1023 + }; 1024 + pz3 { 1025 + nvidia,pins = "pz3"; 1026 + nvidia,function = "rsvd1"; 1027 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1028 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1029 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1030 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1031 + }; 1032 + pz4 { 1033 + nvidia,pins = "pz4"; 1034 + nvidia,function = "rsvd1"; 1035 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1036 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1037 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1038 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1039 + }; 1040 + pz5 { 1041 + nvidia,pins = "pz5"; 1042 + nvidia,function = "soc"; 1043 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1044 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1045 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1046 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1047 + }; 1048 + dap2_fs_paa0 { 1049 + nvidia,pins = "dap2_fs_paa0"; 1050 + nvidia,function = "i2s2"; 1051 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1052 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1053 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1054 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1055 + }; 1056 + dap2_sclk_paa1 { 1057 + nvidia,pins = "dap2_sclk_paa1"; 1058 + nvidia,function = "i2s2"; 1059 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1060 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1061 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1062 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1063 + }; 1064 + dap2_din_paa2 { 1065 + nvidia,pins = "dap2_din_paa2"; 1066 + nvidia,function = "i2s2"; 1067 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1068 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1069 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1070 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1071 + }; 1072 + dap2_dout_paa3 { 1073 + nvidia,pins = "dap2_dout_paa3"; 1074 + nvidia,function = "i2s2"; 1075 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1076 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1077 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1078 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1079 + }; 1080 + aud_mclk_pbb0 { 1081 + nvidia,pins = "aud_mclk_pbb0"; 1082 + nvidia,function = "aud"; 1083 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1084 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1085 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1086 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1087 + }; 1088 + dvfs_pwm_pbb1 { 1089 + nvidia,pins = "dvfs_pwm_pbb1"; 1090 + nvidia,function = "rsvd0"; 1091 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1092 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1093 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1094 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1095 + }; 1096 + dvfs_clk_pbb2 { 1097 + nvidia,pins = "dvfs_clk_pbb2"; 1098 + nvidia,function = "rsvd0"; 1099 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1100 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1101 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1102 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1103 + }; 1104 + gpio_x1_aud_pbb3 { 1105 + nvidia,pins = "gpio_x1_aud_pbb3"; 1106 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1107 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1108 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1109 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1110 + }; 1111 + gpio_x3_aud_pbb4 { 1112 + nvidia,pins = "gpio_x3_aud_pbb4"; 1113 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1114 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1115 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1116 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1117 + }; 1118 + hdmi_cec_pcc0 { 1119 + nvidia,pins = "hdmi_cec_pcc0"; 1120 + nvidia,function = "rsvd1"; 1121 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1122 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1123 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1124 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1125 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 1126 + }; 1127 + hdmi_int_dp_hpd_pcc1 { 1128 + nvidia,pins = "hdmi_int_dp_hpd_pcc1"; 1129 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1130 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1131 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1132 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1133 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 1134 + }; 1135 + spdif_out_pcc2 { 1136 + nvidia,pins = "spdif_out_pcc2"; 1137 + nvidia,function = "rsvd1"; 1138 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1139 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1140 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1141 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1142 + }; 1143 + spdif_in_pcc3 { 1144 + nvidia,pins = "spdif_in_pcc3"; 1145 + nvidia,function = "rsvd1"; 1146 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1147 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1148 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1149 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1150 + }; 1151 + usb_vbus_en0_pcc4 { 1152 + nvidia,pins = "usb_vbus_en0_pcc4"; 1153 + nvidia,function = "rsvd1"; 1154 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1155 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1156 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1157 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1158 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 1159 + }; 1160 + usb_vbus_en1_pcc5 { 1161 + nvidia,pins = "usb_vbus_en1_pcc5"; 1162 + nvidia,function = "rsvd1"; 1163 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1164 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1165 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1166 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1167 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 1168 + }; 1169 + dp_hpd0_pcc6 { 1170 + nvidia,pins = "dp_hpd0_pcc6"; 1171 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1172 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1173 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1174 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1175 + }; 1176 + pcc7 { 1177 + nvidia,pins = "pcc7"; 1178 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1179 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1180 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1181 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1182 + nvidia,io-hv = <TEGRA_PIN_DISABLE>; 1183 + }; 1184 + spi2_cs1_pdd0 { 1185 + nvidia,pins = "spi2_cs1_pdd0"; 1186 + nvidia,function = "rsvd1"; 1187 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1188 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1189 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1190 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1191 + }; 1192 + qspi_sck_pee0 { 1193 + nvidia,pins = "qspi_sck_pee0"; 1194 + nvidia,function = "qspi"; 1195 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1196 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1197 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1198 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1199 + }; 1200 + qspi_cs_n_pee1 { 1201 + nvidia,pins = "qspi_cs_n_pee1"; 1202 + nvidia,function = "qspi"; 1203 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1204 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1205 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1206 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1207 + }; 1208 + qspi_io0_pee2 { 1209 + nvidia,pins = "qspi_io0_pee2"; 1210 + nvidia,function = "qspi"; 1211 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1212 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1213 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1214 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1215 + }; 1216 + qspi_io1_pee3 { 1217 + nvidia,pins = "qspi_io1_pee3"; 1218 + nvidia,function = "qspi"; 1219 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1220 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1221 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1222 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1223 + }; 1224 + qspi_io2_pee4 { 1225 + nvidia,pins = "qspi_io2_pee4"; 1226 + nvidia,function = "rsvd1"; 1227 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1228 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1229 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1230 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1231 + }; 1232 + qspi_io3_pee5 { 1233 + nvidia,pins = "qspi_io3_pee5"; 1234 + nvidia,function = "rsvd1"; 1235 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1236 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1237 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1238 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1239 + }; 1240 + core_pwr_req { 1241 + nvidia,pins = "core_pwr_req"; 1242 + nvidia,function = "core"; 1243 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1244 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1245 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1246 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1247 + }; 1248 + cpu_pwr_req { 1249 + nvidia,pins = "cpu_pwr_req"; 1250 + nvidia,function = "cpu"; 1251 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1252 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1253 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1254 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1255 + }; 1256 + pwr_int_n { 1257 + nvidia,pins = "pwr_int_n"; 1258 + nvidia,function = "pmi"; 1259 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1260 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1261 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1262 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1263 + }; 1264 + clk_32k_in { 1265 + nvidia,pins = "clk_32k_in"; 1266 + nvidia,function = "clk"; 1267 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1268 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1269 + nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1270 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1271 + }; 1272 + jtag_rtck { 1273 + nvidia,pins = "jtag_rtck"; 1274 + nvidia,function = "jtag"; 1275 + nvidia,pull = <TEGRA_PIN_PULL_UP>; 1276 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1277 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1278 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1279 + }; 1280 + clk_req { 1281 + nvidia,pins = "clk_req"; 1282 + nvidia,function = "rsvd1"; 1283 + nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1284 + nvidia,tristate = <TEGRA_PIN_ENABLE>; 1285 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1286 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1287 + }; 1288 + shutdown { 1289 + nvidia,pins = "shutdown"; 1290 + nvidia,function = "shutdown"; 1291 + nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1292 + nvidia,tristate = <TEGRA_PIN_DISABLE>; 1293 + nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1294 + nvidia,open-drain = <TEGRA_PIN_DISABLE>; 1295 + }; 1296 + }; 1297 + }; 1298 + 1299 + serial@70006000 { 1300 + status = "okay"; 1301 + }; 1302 + 1303 + i2c@7000c400 { 1304 + status = "okay"; 1305 + clock-frequency = <1000000>; 1306 + 1307 + ec@1e { 1308 + compatible = "google,cros-ec-i2c"; 1309 + reg = <0x1e>; 1310 + interrupt-parent = <&gpio>; 1311 + interrupts = <TEGRA_GPIO(Z, 1) IRQ_TYPE_LEVEL_LOW>; 1312 + wakeup-source; 1313 + 1314 + ec_i2c_0: i2c-tunnel { 1315 + compatible = "google,cros-ec-i2c-tunnel"; 1316 + #address-cells = <1>; 1317 + #size-cells = <0>; 1318 + 1319 + google,remote-bus = <0>; 1320 + 1321 + battery: bq27742@55 { 1322 + compatible = "ti,bq27742"; 1323 + reg = <0x55>; 1324 + battery-name = "battery"; 1325 + }; 1326 + }; 1327 + }; 1328 + }; 1329 + 1330 + pmc@7000e400 { 1331 + nvidia,invert-interrupt; 1332 + nvidia,suspend-mode = <0>; 1333 + nvidia,cpu-pwr-good-time = <0>; 1334 + nvidia,cpu-pwr-off-time = <0>; 1335 + nvidia,core-pwr-good-time = <12000 6000>; 1336 + nvidia,core-pwr-off-time = <39053>; 1337 + nvidia,core-power-req-active-high; 1338 + nvidia,sys-clock-req-active-high; 1339 + status = "okay"; 1340 + }; 1341 + 1342 + sdhci@700b0600 { 1343 + bus-width = <8>; 1344 + non-removable; 1345 + status = "okay"; 1346 + }; 1347 + 1348 + clocks { 1349 + compatible = "simple-bus"; 1350 + #address-cells = <1>; 1351 + #size-cells = <0>; 1352 + 1353 + clk32k_in: clock@0 { 1354 + compatible = "fixed-clock"; 1355 + reg = <0>; 1356 + #clock-cells = <0>; 1357 + clock-frequency = <32768>; 1358 + }; 1359 + }; 1360 + 1361 + cpus { 1362 + cpu@0 { 1363 + enable-method = "psci"; 1364 + }; 1365 + 1366 + cpu@1 { 1367 + enable-method = "psci"; 1368 + }; 1369 + 1370 + cpu@2 { 1371 + enable-method = "psci"; 1372 + }; 1373 + 1374 + cpu@3 { 1375 + enable-method = "psci"; 1376 + }; 1377 + }; 1378 + 1379 + gpio-keys { 1380 + compatible = "gpio-keys"; 1381 + gpio-keys,name = "gpio-keys"; 1382 + 1383 + power { 1384 + label = "Power"; 1385 + gpios = <&gpio TEGRA_GPIO(X, 5) GPIO_ACTIVE_LOW>; 1386 + linux,code = <KEY_POWER>; 1387 + debounce-interval = <30>; 1388 + wakeup-source; 1389 + }; 1390 + 1391 + lid { 1392 + label = "Lid"; 1393 + gpios = <&gpio TEGRA_GPIO(B, 4) GPIO_ACTIVE_LOW>; 1394 + linux,input-type = <EV_SW>; 1395 + linux,code = <SW_LID>; 1396 + wakeup-source; 1397 + }; 1398 + 1399 + tablet_mode { 1400 + label = "Tablet Mode"; 1401 + gpios = <&gpio TEGRA_GPIO(Z, 2) GPIO_ACTIVE_HIGH>; 1402 + linux,input-type = <EV_SW>; 1403 + linux,code = <SW_TABLET_MODE>; 1404 + wakeup-source; 1405 + }; 1406 + 1407 + volume_down { 1408 + label = "Volume Down"; 1409 + gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>; 1410 + linux,code = <KEY_VOLUMEDOWN>; 1411 + }; 1412 + 1413 + volume_up { 1414 + label = "Volume Up"; 1415 + gpios = <&gpio TEGRA_GPIO(M, 4) GPIO_ACTIVE_LOW>; 1416 + linux,code = <KEY_VOLUMEUP>; 1417 + }; 1418 + }; 1419 + 1420 + psci { 1421 + compatible = "arm,psci-1.0"; 1422 + method = "smc"; 1423 + }; 1424 + };
+66 -64
arch/arm64/boot/dts/nvidia/tegra210.dtsi
··· 10 10 #address-cells = <2>; 11 11 #size-cells = <2>; 12 12 13 - host1x@0,50000000 { 13 + host1x@50000000 { 14 14 compatible = "nvidia,tegra210-host1x", "simple-bus"; 15 15 reg = <0x0 0x50000000 0x0 0x00034000>; 16 16 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ ··· 25 25 26 26 ranges = <0x0 0x54000000 0x0 0x54000000 0x0 0x01000000>; 27 27 28 - dpaux1: dpaux@0,54040000 { 28 + dpaux1: dpaux@54040000 { 29 29 compatible = "nvidia,tegra210-dpaux"; 30 30 reg = <0x0 0x54040000 0x0 0x00040000>; 31 31 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; ··· 37 37 status = "disabled"; 38 38 }; 39 39 40 - vi@0,54080000 { 40 + vi@54080000 { 41 41 compatible = "nvidia,tegra210-vi"; 42 42 reg = <0x0 0x54080000 0x0 0x00040000>; 43 43 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 44 44 status = "disabled"; 45 45 }; 46 46 47 - tsec@0,54100000 { 47 + tsec@54100000 { 48 48 compatible = "nvidia,tegra210-tsec"; 49 49 reg = <0x0 0x54100000 0x0 0x00040000>; 50 50 }; 51 51 52 - dc@0,54200000 { 52 + dc@54200000 { 53 53 compatible = "nvidia,tegra210-dc"; 54 54 reg = <0x0 0x54200000 0x0 0x00040000>; 55 55 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; ··· 64 64 nvidia,head = <0>; 65 65 }; 66 66 67 - dc@0,54240000 { 67 + dc@54240000 { 68 68 compatible = "nvidia,tegra210-dc"; 69 69 reg = <0x0 0x54240000 0x0 0x00040000>; 70 70 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; ··· 79 79 nvidia,head = <1>; 80 80 }; 81 81 82 - dsi@0,54300000 { 82 + dsi@54300000 { 83 83 compatible = "nvidia,tegra210-dsi"; 84 84 reg = <0x0 0x54300000 0x0 0x00040000>; 85 85 clocks = <&tegra_car TEGRA210_CLK_DSIA>, ··· 96 96 #size-cells = <0>; 97 97 }; 98 98 99 - vic@0,54340000 { 99 + vic@54340000 { 100 100 compatible = "nvidia,tegra210-vic"; 101 101 reg = <0x0 0x54340000 0x0 0x00040000>; 102 102 status = "disabled"; 103 103 }; 104 104 105 - nvjpg@0,54380000 { 105 + nvjpg@54380000 { 106 106 compatible = "nvidia,tegra210-nvjpg"; 107 107 reg = <0x0 0x54380000 0x0 0x00040000>; 108 108 status = "disabled"; 109 109 }; 110 110 111 - dsi@0,54400000 { 111 + dsi@54400000 { 112 112 compatible = "nvidia,tegra210-dsi"; 113 113 reg = <0x0 0x54400000 0x0 0x00040000>; 114 114 clocks = <&tegra_car TEGRA210_CLK_DSIB>, ··· 125 125 #size-cells = <0>; 126 126 }; 127 127 128 - nvdec@0,54480000 { 128 + nvdec@54480000 { 129 129 compatible = "nvidia,tegra210-nvdec"; 130 130 reg = <0x0 0x54480000 0x0 0x00040000>; 131 131 status = "disabled"; 132 132 }; 133 133 134 - nvenc@0,544c0000 { 134 + nvenc@544c0000 { 135 135 compatible = "nvidia,tegra210-nvenc"; 136 136 reg = <0x0 0x544c0000 0x0 0x00040000>; 137 137 status = "disabled"; 138 138 }; 139 139 140 - tsec@0,54500000 { 140 + tsec@54500000 { 141 141 compatible = "nvidia,tegra210-tsec"; 142 142 reg = <0x0 0x54500000 0x0 0x00040000>; 143 143 status = "disabled"; 144 144 }; 145 145 146 - sor@0,54540000 { 146 + sor@54540000 { 147 147 compatible = "nvidia,tegra210-sor"; 148 148 reg = <0x0 0x54540000 0x0 0x00040000>; 149 149 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; ··· 157 157 status = "disabled"; 158 158 }; 159 159 160 - sor@0,54580000 { 160 + sor@54580000 { 161 161 compatible = "nvidia,tegra210-sor1"; 162 162 reg = <0x0 0x54580000 0x0 0x00040000>; 163 163 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; ··· 171 171 status = "disabled"; 172 172 }; 173 173 174 - dpaux: dpaux@0,545c0000 { 174 + dpaux: dpaux@545c0000 { 175 175 compatible = "nvidia,tegra124-dpaux"; 176 176 reg = <0x0 0x545c0000 0x0 0x00040000>; 177 177 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; ··· 183 183 status = "disabled"; 184 184 }; 185 185 186 - isp@0,54600000 { 186 + isp@54600000 { 187 187 compatible = "nvidia,tegra210-isp"; 188 188 reg = <0x0 0x54600000 0x0 0x00040000>; 189 189 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 190 190 status = "disabled"; 191 191 }; 192 192 193 - isp@0,54680000 { 193 + isp@54680000 { 194 194 compatible = "nvidia,tegra210-isp"; 195 195 reg = <0x0 0x54680000 0x0 0x00040000>; 196 196 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 197 197 status = "disabled"; 198 198 }; 199 199 200 - i2c@0,546c0000 { 200 + i2c@546c0000 { 201 201 compatible = "nvidia,tegra210-i2c-vi"; 202 202 reg = <0x0 0x546c0000 0x0 0x00040000>; 203 203 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; ··· 205 205 }; 206 206 }; 207 207 208 - gic: interrupt-controller@0,50041000 { 208 + gic: interrupt-controller@50041000 { 209 209 compatible = "arm,gic-400"; 210 210 #interrupt-cells = <3>; 211 211 interrupt-controller; ··· 218 218 interrupt-parent = <&gic>; 219 219 }; 220 220 221 - gpu@0,57000000 { 221 + gpu@57000000 { 222 222 compatible = "nvidia,gm20b"; 223 223 reg = <0x0 0x57000000 0x0 0x01000000>, 224 224 <0x0 0x58000000 0x0 0x01000000>; ··· 226 226 <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 227 227 interrupt-names = "stall", "nonstall"; 228 228 clocks = <&tegra_car TEGRA210_CLK_GPU>, 229 - <&tegra_car TEGRA210_CLK_PLL_P_OUT5>; 230 - clock-names = "gpu", "pwr"; 229 + <&tegra_car TEGRA210_CLK_PLL_P_OUT5>, 230 + <&tegra_car TEGRA210_CLK_PLL_G_REF>; 231 + clock-names = "gpu", "pwr", "ref"; 231 232 resets = <&tegra_car 184>; 232 233 reset-names = "gpu"; 234 + 235 + iommus = <&mc TEGRA_SWGROUP_GPU>; 236 + 233 237 status = "disabled"; 234 238 }; 235 239 236 - lic: interrupt-controller@0,60004000 { 240 + lic: interrupt-controller@60004000 { 237 241 compatible = "nvidia,tegra210-ictlr"; 238 242 reg = <0x0 0x60004000 0x0 0x40>, /* primary controller */ 239 243 <0x0 0x60004100 0x0 0x40>, /* secondary controller */ ··· 250 246 interrupt-parent = <&gic>; 251 247 }; 252 248 253 - timer@0,60005000 { 249 + timer@60005000 { 254 250 compatible = "nvidia,tegra210-timer", "nvidia,tegra20-timer"; 255 251 reg = <0x0 0x60005000 0x0 0x400>; 256 252 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, ··· 263 259 clock-names = "timer"; 264 260 }; 265 261 266 - tegra_car: clock@0,60006000 { 262 + tegra_car: clock@60006000 { 267 263 compatible = "nvidia,tegra210-car"; 268 264 reg = <0x0 0x60006000 0x0 0x1000>; 269 265 #clock-cells = <1>; 270 266 #reset-cells = <1>; 271 267 }; 272 268 273 - flow-controller@0,60007000 { 269 + flow-controller@60007000 { 274 270 compatible = "nvidia,tegra210-flowctrl"; 275 271 reg = <0x0 0x60007000 0x0 0x1000>; 276 272 }; 277 273 278 - gpio: gpio@0,6000d000 { 274 + gpio: gpio@6000d000 { 279 275 compatible = "nvidia,tegra210-gpio", "nvidia,tegra124-gpio", "nvidia,tegra30-gpio"; 280 276 reg = <0x0 0x6000d000 0x0 0x1000>; 281 277 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, ··· 292 288 interrupt-controller; 293 289 }; 294 290 295 - apbdma: dma@0,60020000 { 291 + apbdma: dma@60020000 { 296 292 compatible = "nvidia,tegra210-apbdma", "nvidia,tegra148-apbdma"; 297 293 reg = <0x0 0x60020000 0x0 0x1400>; 298 294 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, ··· 334 330 #dma-cells = <1>; 335 331 }; 336 332 337 - apbmisc@0,70000800 { 333 + apbmisc@70000800 { 338 334 compatible = "nvidia,tegra210-apbmisc", "nvidia,tegra20-apbmisc"; 339 335 reg = <0x0 0x70000800 0x0 0x64>, /* Chip revision */ 340 336 <0x0 0x7000e864 0x0 0x04>; /* Strapping options */ 341 337 }; 342 338 343 - pinmux: pinmux@0,700008d4 { 339 + pinmux: pinmux@700008d4 { 344 340 compatible = "nvidia,tegra210-pinmux"; 345 341 reg = <0x0 0x700008d4 0x0 0x29c>, /* Pad control registers */ 346 342 <0x0 0x70003000 0x0 0x294>; /* Mux registers */ ··· 351 347 * driver and APB DMA based serial driver for higher baudrate 352 348 * and performance. To enable the 8250 based driver, the compatible 353 349 * is "nvidia,tegra124-uart", "nvidia,tegra20-uart" and to enable 354 - * the APB DMA based serial driver, the comptible is 350 + * the APB DMA based serial driver, the compatible is 355 351 * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart". 356 352 */ 357 - uarta: serial@0,70006000 { 353 + uarta: serial@70006000 { 358 354 compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart"; 359 355 reg = <0x0 0x70006000 0x0 0x40>; 360 356 reg-shift = <2>; ··· 368 364 status = "disabled"; 369 365 }; 370 366 371 - uartb: serial@0,70006040 { 367 + uartb: serial@70006040 { 372 368 compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart"; 373 369 reg = <0x0 0x70006040 0x0 0x40>; 374 370 reg-shift = <2>; ··· 382 378 status = "disabled"; 383 379 }; 384 380 385 - uartc: serial@0,70006200 { 381 + uartc: serial@70006200 { 386 382 compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart"; 387 383 reg = <0x0 0x70006200 0x0 0x40>; 388 384 reg-shift = <2>; ··· 396 392 status = "disabled"; 397 393 }; 398 394 399 - uartd: serial@0,70006300 { 395 + uartd: serial@70006300 { 400 396 compatible = "nvidia,tegra210-uart", "nvidia,tegra20-uart"; 401 397 reg = <0x0 0x70006300 0x0 0x40>; 402 398 reg-shift = <2>; ··· 410 406 status = "disabled"; 411 407 }; 412 408 413 - pwm: pwm@0,7000a000 { 409 + pwm: pwm@7000a000 { 414 410 compatible = "nvidia,tegra210-pwm", "nvidia,tegra20-pwm"; 415 411 reg = <0x0 0x7000a000 0x0 0x100>; 416 412 #pwm-cells = <2>; ··· 421 417 status = "disabled"; 422 418 }; 423 419 424 - i2c@0,7000c000 { 420 + i2c@7000c000 { 425 421 compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c"; 426 422 reg = <0x0 0x7000c000 0x0 0x100>; 427 423 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; ··· 436 432 status = "disabled"; 437 433 }; 438 434 439 - i2c@0,7000c400 { 435 + i2c@7000c400 { 440 436 compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c"; 441 437 reg = <0x0 0x7000c400 0x0 0x100>; 442 438 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; ··· 451 447 status = "disabled"; 452 448 }; 453 449 454 - i2c@0,7000c500 { 450 + i2c@7000c500 { 455 451 compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c"; 456 452 reg = <0x0 0x7000c500 0x0 0x100>; 457 453 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; ··· 466 462 status = "disabled"; 467 463 }; 468 464 469 - i2c@0,7000c700 { 465 + i2c@7000c700 { 470 466 compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c"; 471 467 reg = <0x0 0x7000c700 0x0 0x100>; 472 468 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; ··· 481 477 status = "disabled"; 482 478 }; 483 479 484 - i2c@0,7000d000 { 480 + i2c@7000d000 { 485 481 compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c"; 486 482 reg = <0x0 0x7000d000 0x0 0x100>; 487 483 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; ··· 496 492 status = "disabled"; 497 493 }; 498 494 499 - i2c@0,7000d100 { 495 + i2c@7000d100 { 500 496 compatible = "nvidia,tegra210-i2c", "nvidia,tegra114-i2c"; 501 497 reg = <0x0 0x7000d100 0x0 0x100>; 502 498 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; ··· 511 507 status = "disabled"; 512 508 }; 513 509 514 - spi@0,7000d400 { 510 + spi@7000d400 { 515 511 compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi"; 516 512 reg = <0x0 0x7000d400 0x0 0x200>; 517 513 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; ··· 526 522 status = "disabled"; 527 523 }; 528 524 529 - spi@0,7000d600 { 525 + spi@7000d600 { 530 526 compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi"; 531 527 reg = <0x0 0x7000d600 0x0 0x200>; 532 528 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; ··· 541 537 status = "disabled"; 542 538 }; 543 539 544 - spi@0,7000d800 { 540 + spi@7000d800 { 545 541 compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi"; 546 542 reg = <0x0 0x7000d800 0x0 0x200>; 547 543 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; ··· 556 552 status = "disabled"; 557 553 }; 558 554 559 - spi@0,7000da00 { 555 + spi@7000da00 { 560 556 compatible = "nvidia,tegra210-spi", "nvidia,tegra114-spi"; 561 557 reg = <0x0 0x7000da00 0x0 0x200>; 562 558 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; ··· 571 567 status = "disabled"; 572 568 }; 573 569 574 - rtc@0,7000e000 { 570 + rtc@7000e000 { 575 571 compatible = "nvidia,tegra210-rtc", "nvidia,tegra20-rtc"; 576 572 reg = <0x0 0x7000e000 0x0 0x100>; 577 573 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; ··· 579 575 clock-names = "rtc"; 580 576 }; 581 577 582 - pmc: pmc@0,7000e400 { 578 + pmc: pmc@7000e400 { 583 579 compatible = "nvidia,tegra210-pmc"; 584 580 reg = <0x0 0x7000e400 0x0 0x400>; 585 581 clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>; 586 582 clock-names = "pclk", "clk32k_in"; 587 - 588 - #power-domain-cells = <1>; 589 583 }; 590 584 591 - fuse@0,7000f800 { 585 + fuse@7000f800 { 592 586 compatible = "nvidia,tegra210-efuse"; 593 587 reg = <0x0 0x7000f800 0x0 0x400>; 594 588 clocks = <&tegra_car TEGRA210_CLK_FUSE>; ··· 595 593 reset-names = "fuse"; 596 594 }; 597 595 598 - mc: memory-controller@0,70019000 { 596 + mc: memory-controller@70019000 { 599 597 compatible = "nvidia,tegra210-mc"; 600 598 reg = <0x0 0x70019000 0x0 0x1000>; 601 599 clocks = <&tegra_car TEGRA210_CLK_MC>; ··· 606 604 #iommu-cells = <1>; 607 605 }; 608 606 609 - hda@0,70030000 { 607 + hda@70030000 { 610 608 compatible = "nvidia,tegra210-hda", "nvidia,tegra30-hda"; 611 609 reg = <0x0 0x70030000 0x0 0x10000>; 612 610 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; ··· 621 619 status = "disabled"; 622 620 }; 623 621 624 - sdhci@0,700b0000 { 622 + sdhci@700b0000 { 625 623 compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci"; 626 624 reg = <0x0 0x700b0000 0x0 0x200>; 627 625 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; ··· 632 630 status = "disabled"; 633 631 }; 634 632 635 - sdhci@0,700b0200 { 633 + sdhci@700b0200 { 636 634 compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci"; 637 635 reg = <0x0 0x700b0200 0x0 0x200>; 638 636 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; ··· 643 641 status = "disabled"; 644 642 }; 645 643 646 - sdhci@0,700b0400 { 644 + sdhci@700b0400 { 647 645 compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci"; 648 646 reg = <0x0 0x700b0400 0x0 0x200>; 649 647 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; ··· 654 652 status = "disabled"; 655 653 }; 656 654 657 - sdhci@0,700b0600 { 655 + sdhci@700b0600 { 658 656 compatible = "nvidia,tegra210-sdhci", "nvidia,tegra124-sdhci"; 659 657 reg = <0x0 0x700b0600 0x0 0x200>; 660 658 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; ··· 665 663 status = "disabled"; 666 664 }; 667 665 668 - mipi: mipi@0,700e3000 { 666 + mipi: mipi@700e3000 { 669 667 compatible = "nvidia,tegra210-mipi"; 670 668 reg = <0x0 0x700e3000 0x0 0x100>; 671 669 clocks = <&tegra_car TEGRA210_CLK_MIPI_CAL>; ··· 673 671 #nvidia,mipi-calibrate-cells = <1>; 674 672 }; 675 673 676 - spi@0,70410000 { 674 + spi@70410000 { 677 675 compatible = "nvidia,tegra210-qspi"; 678 676 reg = <0x0 0x70410000 0x0 0x1000>; 679 677 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; ··· 688 686 status = "disabled"; 689 687 }; 690 688 691 - usb@0,7d000000 { 689 + usb@7d000000 { 692 690 compatible = "nvidia,tegra210-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 693 691 reg = <0x0 0x7d000000 0x0 0x4000>; 694 692 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; ··· 701 699 status = "disabled"; 702 700 }; 703 701 704 - phy1: usb-phy@0,7d000000 { 702 + phy1: usb-phy@7d000000 { 705 703 compatible = "nvidia,tegra210-usb-phy", "nvidia,tegra30-usb-phy"; 706 704 reg = <0x0 0x7d000000 0x0 0x4000>, 707 705 <0x0 0x7d000000 0x0 0x4000>; ··· 726 724 status = "disabled"; 727 725 }; 728 726 729 - usb@0,7d004000 { 727 + usb@7d004000 { 730 728 compatible = "nvidia,tegra210-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 731 729 reg = <0x0 0x7d004000 0x0 0x4000>; 732 730 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; ··· 739 737 status = "disabled"; 740 738 }; 741 739 742 - phy2: usb-phy@0,7d004000 { 740 + phy2: usb-phy@7d004000 { 743 741 compatible = "nvidia,tegra210-usb-phy", "nvidia,tegra30-usb-phy"; 744 742 reg = <0x0 0x7d004000 0x0 0x4000>, 745 743 <0x0 0x7d000000 0x0 0x4000>;
+40 -23
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
··· 141 141 clock-frequency = <16666666>; 142 142 }; 143 143 144 + &extalr_clk { 145 + clock-frequency = <32768>; 146 + }; 147 + 144 148 &pfc { 145 149 pinctrl-0 = <&scif_clk_pins>; 146 150 pinctrl-names = "default"; 147 151 148 152 scif1_pins: scif1 { 149 - renesas,groups = "scif1_data_a", "scif1_ctrl"; 150 - renesas,function = "scif1"; 153 + groups = "scif1_data_a", "scif1_ctrl"; 154 + function = "scif1"; 151 155 }; 152 156 scif2_pins: scif2 { 153 - renesas,groups = "scif2_data_a"; 154 - renesas,function = "scif2"; 157 + groups = "scif2_data_a"; 158 + function = "scif2"; 155 159 }; 156 160 scif_clk_pins: scif_clk { 157 - renesas,groups = "scif_clk_a"; 158 - renesas,function = "scif_clk"; 161 + groups = "scif_clk_a"; 162 + function = "scif_clk"; 159 163 }; 160 164 161 165 i2c2_pins: i2c2 { 162 - renesas,groups = "i2c2_a"; 163 - renesas,function = "i2c2"; 166 + groups = "i2c2_a"; 167 + function = "i2c2"; 164 168 }; 165 169 166 170 avb_pins: avb { 167 - renesas,groups = "avb_mdc"; 168 - renesas,function = "avb"; 171 + groups = "avb_mdc"; 172 + function = "avb"; 169 173 }; 170 174 171 175 sdhi0_pins: sd0 { 172 - renesas,groups = "sdhi0_data4", "sdhi0_ctrl"; 173 - renesas,function = "sdhi0"; 176 + groups = "sdhi0_data4", "sdhi0_ctrl"; 177 + function = "sdhi0"; 174 178 }; 175 179 176 180 sdhi3_pins: sd3 { 177 - renesas,groups = "sdhi3_data4", "sdhi3_ctrl"; 178 - renesas,function = "sdhi3"; 181 + groups = "sdhi3_data4", "sdhi3_ctrl"; 182 + function = "sdhi3"; 179 183 }; 180 184 181 185 sound_pins: sound { 182 - renesas,groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 183 - renesas,function = "ssi"; 186 + groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 187 + function = "ssi"; 184 188 }; 185 189 186 190 sound_clk_pins: sound_clk { 187 - renesas,groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 188 - "audio_clkout_a", "audio_clkout3_a"; 189 - renesas,function = "audio_clk"; 191 + groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 192 + "audio_clkout_a", "audio_clkout3_a"; 193 + function = "audio_clk"; 190 194 }; 191 195 192 196 usb1_pins: usb1 { 193 - renesas,groups = "usb1"; 194 - renesas,function = "usb1"; 197 + groups = "usb1"; 198 + function = "usb1"; 195 199 }; 196 200 197 201 usb2_pins: usb2 { 198 - renesas,groups = "usb2"; 199 - renesas,function = "usb2"; 202 + groups = "usb2"; 203 + function = "usb2"; 200 204 }; 201 205 }; 202 206 ··· 390 386 }; 391 387 392 388 &ohci2 { 389 + status = "okay"; 390 + }; 391 + 392 + &pcie_bus_clk { 393 + clock-frequency = <100000000>; 394 + status = "okay"; 395 + }; 396 + 397 + &pciec0 { 398 + status = "okay"; 399 + }; 400 + 401 + &pciec1 { 393 402 status = "okay"; 394 403 };
+56 -1
arch/arm64/boot/dts/renesas/r8a7795.dtsi
··· 120 120 compatible = "fixed-clock"; 121 121 #clock-cells = <0>; 122 122 clock-frequency = <0>; 123 - status = "disabled"; 124 123 }; 125 124 126 125 /* External SCIF clock - to be overridden by boards that provide it */ 127 126 scif_clk: scif { 127 + compatible = "fixed-clock"; 128 + #clock-cells = <0>; 129 + clock-frequency = <0>; 130 + }; 131 + 132 + /* External PCIe clock - can be overridden by the board */ 133 + pcie_bus_clk: pcie_bus { 128 134 compatible = "fixed-clock"; 129 135 #clock-cells = <0>; 130 136 clock-frequency = <0>; ··· 1158 1152 clocks = <&cpg CPG_MOD 701>; 1159 1153 phys = <&usb2_phy2>; 1160 1154 phy-names = "usb"; 1155 + power-domains = <&cpg>; 1156 + status = "disabled"; 1157 + }; 1158 + pciec0: pcie@fe000000 { 1159 + compatible = "renesas,pcie-r8a7795"; 1160 + reg = <0 0xfe000000 0 0x80000>; 1161 + #address-cells = <3>; 1162 + #size-cells = <2>; 1163 + bus-range = <0x00 0xff>; 1164 + device_type = "pci"; 1165 + ranges = <0x01000000 0 0x00000000 0 0xfe100000 0 0x00100000 1166 + 0x02000000 0 0xfe200000 0 0xfe200000 0 0x00200000 1167 + 0x02000000 0 0x30000000 0 0x30000000 0 0x08000000 1168 + 0x42000000 0 0x38000000 0 0x38000000 0 0x08000000>; 1169 + /* Map all possible DDR as inbound ranges */ 1170 + dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x40000000>; 1171 + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, 1172 + <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, 1173 + <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 1174 + #interrupt-cells = <1>; 1175 + interrupt-map-mask = <0 0 0 0>; 1176 + interrupt-map = <0 0 0 0 &gic GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 1177 + clocks = <&cpg CPG_MOD 319>, <&pcie_bus_clk>; 1178 + clock-names = "pcie", "pcie_bus"; 1179 + power-domains = <&cpg>; 1180 + status = "disabled"; 1181 + }; 1182 + 1183 + pciec1: pcie@ee800000 { 1184 + compatible = "renesas,pcie-r8a7795"; 1185 + reg = <0 0xee800000 0 0x80000>; 1186 + #address-cells = <3>; 1187 + #size-cells = <2>; 1188 + bus-range = <0x00 0xff>; 1189 + device_type = "pci"; 1190 + ranges = <0x01000000 0 0x00000000 0 0xee900000 0 0x00100000 1191 + 0x02000000 0 0xeea00000 0 0xeea00000 0 0x00200000 1192 + 0x02000000 0 0xc0000000 0 0xc0000000 0 0x08000000 1193 + 0x42000000 0 0xc8000000 0 0xc8000000 0 0x08000000>; 1194 + /* Map all possible DDR as inbound ranges */ 1195 + dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x40000000>; 1196 + interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 1197 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 1198 + <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 1199 + #interrupt-cells = <1>; 1200 + interrupt-map-mask = <0 0 0 0>; 1201 + interrupt-map = <0 0 0 0 &gic GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 1202 + clocks = <&cpg CPG_MOD 318>, <&pcie_bus_clk>; 1203 + clock-names = "pcie", "pcie_bus"; 1161 1204 power-domains = <&cpg>; 1162 1205 status = "disabled"; 1163 1206 };
+2
arch/arm64/boot/dts/rockchip/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb 2 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb 2 3 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb 4 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb 3 5 4 6 always := $(dtb-y) 5 7 subdir-y := $(dts-dirs)
+3 -5
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
··· 40 40 * OTHER DEALINGS IN THE SOFTWARE. 41 41 */ 42 42 43 + #include <dt-bindings/input/input.h> 43 44 #include <dt-bindings/pwm/pwm.h> 44 45 #include "rk3368.dtsi" 45 46 ··· 106 105 107 106 keys: gpio-keys { 108 107 compatible = "gpio-keys"; 109 - #address-cells = <1>; 110 - #size-cells = <0>; 111 108 pinctrl-names = "default"; 112 109 pinctrl-0 = <&pwr_key>; 113 110 114 - button@0 { 111 + power { 115 112 wakeup-source; 116 113 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 117 114 label = "GPIO Power"; 118 - linux,code = <116>; 115 + linux,code = <KEY_POWER>; 119 116 }; 120 117 }; 121 118 ··· 151 152 }; 152 153 153 154 &emmc { 154 - broken-cd; 155 155 bus-width = <8>; 156 156 cap-mmc-highspeed; 157 157 disable-wp;
+319
arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
··· 1 + /* 2 + * Copyright (c) 2016 Andreas Färber 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include "rk3368.dtsi" 45 + #include <dt-bindings/input/input.h> 46 + 47 + / { 48 + model = "GeekBox"; 49 + compatible = "geekbuying,geekbox", "rockchip,rk3368"; 50 + 51 + chosen { 52 + stdout-path = "serial2:115200n8"; 53 + }; 54 + 55 + memory@0 { 56 + device_type = "memory"; 57 + reg = <0x0 0x0 0x0 0x80000000>; 58 + }; 59 + 60 + ext_gmac: gmac-clk { 61 + compatible = "fixed-clock"; 62 + clock-frequency = <125000000>; 63 + clock-output-names = "ext_gmac"; 64 + #clock-cells = <0>; 65 + }; 66 + 67 + ir: ir-receiver { 68 + compatible = "gpio-ir-receiver"; 69 + gpios = <&gpio3 30 GPIO_ACTIVE_LOW>; 70 + pinctrl-names = "default"; 71 + pinctrl-0 = <&ir_int>; 72 + }; 73 + 74 + keys: gpio-keys { 75 + compatible = "gpio-keys"; 76 + pinctrl-names = "default"; 77 + pinctrl-0 = <&pwr_key>; 78 + 79 + power { 80 + gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 81 + label = "GPIO Power"; 82 + linux,code = <KEY_POWER>; 83 + wakeup-source; 84 + }; 85 + }; 86 + 87 + leds: gpio-leds { 88 + compatible = "gpio-leds"; 89 + 90 + blue { 91 + gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>; 92 + label = "geekbox:blue:led"; 93 + default-state = "on"; 94 + }; 95 + 96 + red { 97 + gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; 98 + label = "geekbox:red:led"; 99 + default-state = "off"; 100 + }; 101 + }; 102 + 103 + vcc_sys: vcc-sys-regulator { 104 + compatible = "regulator-fixed"; 105 + regulator-name = "vcc_sys"; 106 + regulator-min-microvolt = <5000000>; 107 + regulator-max-microvolt = <5000000>; 108 + regulator-always-on; 109 + regulator-boot-on; 110 + }; 111 + }; 112 + 113 + &emmc { 114 + status = "okay"; 115 + bus-width = <8>; 116 + cap-mmc-highspeed; 117 + clock-frequency = <150000000>; 118 + disable-wp; 119 + keep-power-in-suspend; 120 + non-removable; 121 + num-slots = <1>; 122 + vmmc-supply = <&vcc_io>; 123 + vqmmc-supply = <&vcc18_flash>; 124 + pinctrl-names = "default"; 125 + pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; 126 + }; 127 + 128 + &gmac { 129 + status = "okay"; 130 + phy-supply = <&vcc_lan>; 131 + phy-mode = "rgmii"; 132 + clock_in_out = "input"; 133 + assigned-clocks = <&cru SCLK_MAC>; 134 + assigned-clock-parents = <&ext_gmac>; 135 + pinctrl-names = "default"; 136 + pinctrl-0 = <&rgmii_pins>; 137 + tx_delay = <0x30>; 138 + rx_delay = <0x10>; 139 + }; 140 + 141 + &i2c0 { 142 + status = "okay"; 143 + 144 + rk808: pmic@1b { 145 + compatible = "rockchip,rk808"; 146 + reg = <0x1b>; 147 + pinctrl-names = "default"; 148 + pinctrl-0 = <&pmic_int>, <&pmic_sleep>; 149 + interrupt-parent = <&gpio0>; 150 + interrupts = <5 IRQ_TYPE_LEVEL_LOW>; 151 + rockchip,system-power-controller; 152 + vcc1-supply = <&vcc_sys>; 153 + vcc2-supply = <&vcc_sys>; 154 + vcc3-supply = <&vcc_sys>; 155 + vcc4-supply = <&vcc_sys>; 156 + vcc6-supply = <&vcc_sys>; 157 + vcc7-supply = <&vcc_sys>; 158 + vcc8-supply = <&vcc_io>; 159 + vcc9-supply = <&vcc_sys>; 160 + vcc10-supply = <&vcc_sys>; 161 + vcc11-supply = <&vcc_sys>; 162 + vcc12-supply = <&vcc_io>; 163 + clock-output-names = "xin32k", "rk808-clkout2"; 164 + #clock-cells = <1>; 165 + 166 + regulators { 167 + vdd_cpu: DCDC_REG1 { 168 + regulator-always-on; 169 + regulator-boot-on; 170 + regulator-min-microvolt = <700000>; 171 + regulator-max-microvolt = <1500000>; 172 + regulator-name = "vdd_cpu"; 173 + }; 174 + 175 + vdd_log: DCDC_REG2 { 176 + regulator-always-on; 177 + regulator-boot-on; 178 + regulator-min-microvolt = <700000>; 179 + regulator-max-microvolt = <1500000>; 180 + regulator-name = "vdd_log"; 181 + }; 182 + 183 + vcc_ddr: DCDC_REG3 { 184 + regulator-always-on; 185 + regulator-boot-on; 186 + regulator-name = "vcc_ddr"; 187 + }; 188 + 189 + vcc_io: DCDC_REG4 { 190 + regulator-always-on; 191 + regulator-boot-on; 192 + regulator-min-microvolt = <3300000>; 193 + regulator-max-microvolt = <3300000>; 194 + regulator-name = "vcc_io"; 195 + }; 196 + 197 + vcc18_flash: LDO_REG1 { 198 + regulator-always-on; 199 + regulator-boot-on; 200 + regulator-min-microvolt = <1800000>; 201 + regulator-max-microvolt = <1800000>; 202 + regulator-name = "vcc18_flash"; 203 + }; 204 + 205 + vcc33_lcd: LDO_REG2 { 206 + regulator-always-on; 207 + regulator-boot-on; 208 + regulator-min-microvolt = <3300000>; 209 + regulator-max-microvolt = <3300000>; 210 + regulator-name = "vcc33_lcd"; 211 + }; 212 + 213 + vdd_10: LDO_REG3 { 214 + regulator-always-on; 215 + regulator-boot-on; 216 + regulator-min-microvolt = <1000000>; 217 + regulator-max-microvolt = <1000000>; 218 + regulator-name = "vdd_10"; 219 + }; 220 + 221 + vcca_18: LDO_REG4 { 222 + regulator-boot-on; 223 + regulator-min-microvolt = <1800000>; 224 + regulator-max-microvolt = <1800000>; 225 + regulator-name = "vcca_18"; 226 + }; 227 + 228 + vccio_sd: LDO_REG5 { 229 + regulator-always-on; 230 + regulator-boot-on; 231 + regulator-min-microvolt = <1800000>; 232 + regulator-max-microvolt = <3300000>; 233 + regulator-name = "vccio_sd"; 234 + }; 235 + 236 + vdd10_lcd: LDO_REG6 { 237 + regulator-always-on; 238 + regulator-boot-on; 239 + regulator-min-microvolt = <1000000>; 240 + regulator-max-microvolt = <1000000>; 241 + regulator-name = "vdd10_lcd"; 242 + }; 243 + 244 + vcc_18: LDO_REG7 { 245 + regulator-always-on; 246 + regulator-boot-on; 247 + regulator-min-microvolt = <1800000>; 248 + regulator-max-microvolt = <1800000>; 249 + regulator-name = "vcc_18"; 250 + }; 251 + 252 + vcc18_lcd: LDO_REG8 { 253 + regulator-always-on; 254 + regulator-boot-on; 255 + regulator-min-microvolt = <1800000>; 256 + regulator-max-microvolt = <1800000>; 257 + regulator-name = "vcc18_lcd"; 258 + }; 259 + 260 + vcc_sd: SWITCH_REG1 { 261 + regulator-always-on; 262 + regulator-boot-on; 263 + regulator-name = "vcc_sd"; 264 + }; 265 + 266 + vcc_lan: SWITCH_REG2 { 267 + regulator-always-on; 268 + regulator-boot-on; 269 + regulator-name = "vcc_lan"; 270 + }; 271 + }; 272 + }; 273 + }; 274 + 275 + &pinctrl { 276 + ir { 277 + ir_int: ir-int { 278 + rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>; 279 + }; 280 + }; 281 + 282 + keys { 283 + pwr_key: pwr-key { 284 + rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>; 285 + }; 286 + }; 287 + 288 + pmic { 289 + pmic_sleep: pmic-sleep { 290 + rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>; 291 + }; 292 + 293 + pmic_int: pmic-int { 294 + rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>; 295 + }; 296 + }; 297 + }; 298 + 299 + &tsadc { 300 + status = "okay"; 301 + rockchip,hw-tshut-mode = <0>; /* CRU */ 302 + rockchip,hw-tshut-polarity = <1>; /* high */ 303 + }; 304 + 305 + &uart2 { 306 + status = "okay"; 307 + }; 308 + 309 + &usb_host0_ehci { 310 + status = "okay"; 311 + }; 312 + 313 + &usb_otg { 314 + status = "okay"; 315 + }; 316 + 317 + &wdt { 318 + status = "okay"; 319 + };
+3 -5
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
··· 42 42 43 43 /dts-v1/; 44 44 #include "rk3368.dtsi" 45 + #include <dt-bindings/input/input.h> 45 46 46 47 / { 47 48 model = "Rockchip R88"; ··· 66 65 67 66 keys: gpio-keys { 68 67 compatible = "gpio-keys"; 69 - #address-cells = <1>; 70 - #size-cells = <0>; 71 68 pinctrl-names = "default"; 72 69 pinctrl-0 = <&pwr_key>; 73 70 74 - button@0 { 71 + power { 75 72 wakeup-source; 76 73 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; 77 74 label = "GPIO Power"; 78 - linux,code = <116>; 75 + linux,code = <KEY_POWER>; 79 76 }; 80 77 }; 81 78 ··· 184 185 }; 185 186 186 187 &emmc { 187 - broken-cd; 188 188 bus-width = <8>; 189 189 cap-mmc-highspeed; 190 190 disable-wp;
+69 -57
arch/arm64/boot/dts/rockchip/rk3368-thermal.dtsi arch/arm64/boot/dts/rockchip/rk3399-evb.dts
··· 1 1 /* 2 - * Device Tree Source for RK3368 SoC thermal 3 - * 4 - * Copyright (c) 2015, Fuzhou Rockchip Electronics Co., Ltd 5 - * Caesar Wang <wxt@rock-chips.com> 2 + * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd 6 3 * 7 4 * This file is dual-licensed: you can use it either under the terms 8 5 * of the GPL or the X11 license, at your option. Note that this dual ··· 40 43 * OTHER DEALINGS IN THE SOFTWARE. 41 44 */ 42 45 43 - #include <dt-bindings/thermal/thermal.h> 46 + /dts-v1/; 47 + #include <dt-bindings/pwm/pwm.h> 48 + #include "rk3399.dtsi" 44 49 45 - cpu_thermal: cpu_thermal { 46 - polling-delay-passive = <100>; /* milliseconds */ 47 - polling-delay = <5000>; /* milliseconds */ 50 + / { 51 + model = "Rockchip RK3399 Evaluation Board"; 52 + compatible = "rockchip,rk3399-evb", "rockchip,rk3399", 53 + "google,rk3399evb-rev2"; 48 54 49 - thermal-sensors = <&tsadc 0>; 50 - 51 - trips { 52 - cpu_alert0: cpu_alert0 { 53 - temperature = <75000>; /* millicelsius */ 54 - hysteresis = <2000>; /* millicelsius */ 55 - type = "passive"; 56 - }; 57 - cpu_alert1: cpu_alert1 { 58 - temperature = <80000>; /* millicelsius */ 59 - hysteresis = <2000>; /* millicelsius */ 60 - type = "passive"; 61 - }; 62 - cpu_crit: cpu_crit { 63 - temperature = <95000>; /* millicelsius */ 64 - hysteresis = <2000>; /* millicelsius */ 65 - type = "critical"; 66 - }; 55 + vdd_center: vdd-center { 56 + compatible = "pwm-regulator"; 57 + pwms = <&pwm3 0 25000 0>; 58 + regulator-name = "vdd_center"; 59 + regulator-min-microvolt = <800000>; 60 + regulator-max-microvolt = <1400000>; 61 + regulator-always-on; 62 + regulator-boot-on; 63 + status = "okay"; 67 64 }; 68 65 69 - cooling-maps { 70 - map0 { 71 - trip = <&cpu_alert0>; 72 - cooling-device = 73 - <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 74 - }; 75 - map1 { 76 - trip = <&cpu_alert1>; 77 - cooling-device = 78 - <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 79 - }; 66 + vcc3v3_sys: vcc3v3-sys { 67 + compatible = "regulator-fixed"; 68 + regulator-name = "vcc3v3_sys"; 69 + regulator-always-on; 70 + regulator-boot-on; 71 + regulator-min-microvolt = <3300000>; 72 + regulator-max-microvolt = <3300000>; 73 + }; 74 + 75 + vcc_phy: vcc-phy-regulator { 76 + compatible = "regulator-fixed"; 77 + regulator-name = "vcc_phy"; 78 + regulator-always-on; 79 + regulator-boot-on; 80 80 }; 81 81 }; 82 82 83 - gpu_thermal: gpu_thermal { 84 - polling-delay-passive = <100>; /* milliseconds */ 85 - polling-delay = <5000>; /* milliseconds */ 83 + &pwm0 { 84 + status = "okay"; 85 + }; 86 86 87 - thermal-sensors = <&tsadc 1>; 87 + &pwm2 { 88 + status = "okay"; 89 + }; 88 90 89 - trips { 90 - gpu_alert0: gpu_alert0 { 91 - temperature = <80000>; /* millicelsius */ 92 - hysteresis = <2000>; /* millicelsius */ 93 - type = "passive"; 91 + &pwm3 { 92 + status = "okay"; 93 + }; 94 + 95 + &uart2 { 96 + status = "okay"; 97 + }; 98 + 99 + &usb_host0_ehci { 100 + status = "okay"; 101 + }; 102 + 103 + &usb_host0_ohci { 104 + status = "okay"; 105 + }; 106 + 107 + &usb_host1_ehci { 108 + status = "okay"; 109 + }; 110 + 111 + &usb_host1_ohci { 112 + status = "okay"; 113 + }; 114 + 115 + &pinctrl { 116 + pmic { 117 + pmic_int_l: pmic-int-l { 118 + rockchip,pins = 119 + <1 21 RK_FUNC_GPIO &pcfg_pull_up>; 94 120 }; 95 - gpu_crit: gpu_crit { 96 - temperature = <1150000>; /* millicelsius */ 97 - hysteresis = <2000>; /* millicelsius */ 98 - type = "critical"; 99 - }; 100 - }; 101 121 102 - cooling-maps { 103 - map0 { 104 - trip = <&gpu_alert0>; 105 - cooling-device = 106 - <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 122 + pmic_dvs2: pmic-dvs2 { 123 + rockchip,pins = 124 + <1 18 RK_FUNC_GPIO &pcfg_pull_down>; 107 125 }; 108 126 }; 109 127 };
+79 -3
arch/arm64/boot/dts/rockchip/rk3368.dtsi
··· 413 413 }; 414 414 415 415 thermal-zones { 416 - #include "rk3368-thermal.dtsi" 416 + cpu { 417 + polling-delay-passive = <100>; /* milliseconds */ 418 + polling-delay = <5000>; /* milliseconds */ 419 + 420 + thermal-sensors = <&tsadc 0>; 421 + 422 + trips { 423 + cpu_alert0: cpu_alert0 { 424 + temperature = <75000>; /* millicelsius */ 425 + hysteresis = <2000>; /* millicelsius */ 426 + type = "passive"; 427 + }; 428 + cpu_alert1: cpu_alert1 { 429 + temperature = <80000>; /* millicelsius */ 430 + hysteresis = <2000>; /* millicelsius */ 431 + type = "passive"; 432 + }; 433 + cpu_crit: cpu_crit { 434 + temperature = <95000>; /* millicelsius */ 435 + hysteresis = <2000>; /* millicelsius */ 436 + type = "critical"; 437 + }; 438 + }; 439 + 440 + cooling-maps { 441 + map0 { 442 + trip = <&cpu_alert0>; 443 + cooling-device = 444 + <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 445 + }; 446 + map1 { 447 + trip = <&cpu_alert1>; 448 + cooling-device = 449 + <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 450 + }; 451 + }; 452 + }; 453 + 454 + gpu { 455 + polling-delay-passive = <100>; /* milliseconds */ 456 + polling-delay = <5000>; /* milliseconds */ 457 + 458 + thermal-sensors = <&tsadc 1>; 459 + 460 + trips { 461 + gpu_alert0: gpu_alert0 { 462 + temperature = <80000>; /* millicelsius */ 463 + hysteresis = <2000>; /* millicelsius */ 464 + type = "passive"; 465 + }; 466 + gpu_crit: gpu_crit { 467 + temperature = <115000>; /* millicelsius */ 468 + hysteresis = <2000>; /* millicelsius */ 469 + type = "critical"; 470 + }; 471 + }; 472 + 473 + cooling-maps { 474 + map0 { 475 + trip = <&gpu_alert0>; 476 + cooling-device = 477 + <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 478 + }; 479 + }; 480 + }; 417 481 }; 418 482 419 483 tsadc: tsadc@ff280000 { ··· 617 553 reg-shift = <2>; 618 554 reg-io-width = <4>; 619 555 status = "disabled"; 556 + }; 557 + 558 + mbox: mbox@ff6b0000 { 559 + compatible = "rockchip,rk3368-mailbox"; 560 + reg = <0x0 0xff6b0000 0x0 0x1000>; 561 + interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 562 + <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 563 + <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 564 + <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 565 + clocks = <&cru PCLK_MAILBOX>; 566 + clock-names = "pclk_mailbox"; 567 + #mbox-cells = <1>; 620 568 }; 621 569 622 570 pmugrf: syscon@ff738000 { ··· 1002 926 1003 927 tsadc { 1004 928 otp_gpio: otp-gpio { 1005 - rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>; 929 + rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>; 1006 930 }; 1007 931 1008 932 otp_out: otp-out { 1009 - rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>; 933 + rockchip,pins = <0 3 RK_FUNC_1 &pcfg_pull_none>; 1010 934 }; 1011 935 }; 1012 936
+1013
arch/arm64/boot/dts/rockchip/rk3399.dtsi
··· 1 + /* 2 + * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + #include <dt-bindings/clock/rk3399-cru.h> 44 + #include <dt-bindings/gpio/gpio.h> 45 + #include <dt-bindings/interrupt-controller/arm-gic.h> 46 + #include <dt-bindings/interrupt-controller/irq.h> 47 + #include <dt-bindings/pinctrl/rockchip.h> 48 + 49 + / { 50 + compatible = "rockchip,rk3399"; 51 + 52 + interrupt-parent = <&gic>; 53 + #address-cells = <2>; 54 + #size-cells = <2>; 55 + 56 + aliases { 57 + serial0 = &uart0; 58 + serial1 = &uart1; 59 + serial2 = &uart2; 60 + serial3 = &uart3; 61 + serial4 = &uart4; 62 + }; 63 + 64 + cpus { 65 + #address-cells = <2>; 66 + #size-cells = <0>; 67 + 68 + cpu-map { 69 + cluster0 { 70 + core0 { 71 + cpu = <&cpu_l0>; 72 + }; 73 + core1 { 74 + cpu = <&cpu_l1>; 75 + }; 76 + core2 { 77 + cpu = <&cpu_l2>; 78 + }; 79 + core3 { 80 + cpu = <&cpu_l3>; 81 + }; 82 + }; 83 + 84 + cluster1 { 85 + core0 { 86 + cpu = <&cpu_b0>; 87 + }; 88 + core1 { 89 + cpu = <&cpu_b1>; 90 + }; 91 + }; 92 + }; 93 + 94 + cpu_l0: cpu@0 { 95 + device_type = "cpu"; 96 + compatible = "arm,cortex-a53", "arm,armv8"; 97 + reg = <0x0 0x0>; 98 + enable-method = "psci"; 99 + #cooling-cells = <2>; /* min followed by max */ 100 + clocks = <&cru ARMCLKL>; 101 + }; 102 + 103 + cpu_l1: cpu@1 { 104 + device_type = "cpu"; 105 + compatible = "arm,cortex-a53", "arm,armv8"; 106 + reg = <0x0 0x1>; 107 + enable-method = "psci"; 108 + clocks = <&cru ARMCLKL>; 109 + }; 110 + 111 + cpu_l2: cpu@2 { 112 + device_type = "cpu"; 113 + compatible = "arm,cortex-a53", "arm,armv8"; 114 + reg = <0x0 0x2>; 115 + enable-method = "psci"; 116 + clocks = <&cru ARMCLKL>; 117 + }; 118 + 119 + cpu_l3: cpu@3 { 120 + device_type = "cpu"; 121 + compatible = "arm,cortex-a53", "arm,armv8"; 122 + reg = <0x0 0x3>; 123 + enable-method = "psci"; 124 + clocks = <&cru ARMCLKL>; 125 + }; 126 + 127 + cpu_b0: cpu@100 { 128 + device_type = "cpu"; 129 + compatible = "arm,cortex-a72", "arm,armv8"; 130 + reg = <0x0 0x100>; 131 + enable-method = "psci"; 132 + #cooling-cells = <2>; /* min followed by max */ 133 + clocks = <&cru ARMCLKB>; 134 + }; 135 + 136 + cpu_b1: cpu@101 { 137 + device_type = "cpu"; 138 + compatible = "arm,cortex-a72", "arm,armv8"; 139 + reg = <0x0 0x101>; 140 + enable-method = "psci"; 141 + clocks = <&cru ARMCLKB>; 142 + }; 143 + }; 144 + 145 + psci { 146 + compatible = "arm,psci-1.0"; 147 + method = "smc"; 148 + }; 149 + 150 + timer { 151 + compatible = "arm,armv8-timer"; 152 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 153 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 154 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 155 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 156 + }; 157 + 158 + xin24m: xin24m { 159 + compatible = "fixed-clock"; 160 + clock-frequency = <24000000>; 161 + clock-output-names = "xin24m"; 162 + #clock-cells = <0>; 163 + }; 164 + 165 + amba { 166 + compatible = "arm,amba-bus"; 167 + #address-cells = <2>; 168 + #size-cells = <2>; 169 + ranges; 170 + 171 + dmac_bus: dma-controller@ff6d0000 { 172 + compatible = "arm,pl330", "arm,primecell"; 173 + reg = <0x0 0xff6d0000 0x0 0x4000>; 174 + interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 175 + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 176 + #dma-cells = <1>; 177 + clocks = <&cru ACLK_DMAC0_PERILP>; 178 + clock-names = "apb_pclk"; 179 + }; 180 + 181 + dmac_peri: dma-controller@ff6e0000 { 182 + compatible = "arm,pl330", "arm,primecell"; 183 + reg = <0x0 0xff6e0000 0x0 0x4000>; 184 + interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 185 + <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 186 + #dma-cells = <1>; 187 + clocks = <&cru ACLK_DMAC1_PERILP>; 188 + clock-names = "apb_pclk"; 189 + }; 190 + }; 191 + 192 + sdio0: dwmmc@fe310000 { 193 + compatible = "rockchip,rk3399-dw-mshc", 194 + "rockchip,rk3288-dw-mshc"; 195 + reg = <0x0 0xfe310000 0x0 0x4000>; 196 + interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; 197 + clock-freq-min-max = <400000 150000000>; 198 + clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, 199 + <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 200 + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 201 + fifo-depth = <0x100>; 202 + status = "disabled"; 203 + }; 204 + 205 + sdmmc: dwmmc@fe320000 { 206 + compatible = "rockchip,rk3399-dw-mshc", 207 + "rockchip,rk3288-dw-mshc"; 208 + reg = <0x0 0xfe320000 0x0 0x4000>; 209 + interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 210 + clock-freq-min-max = <400000 150000000>; 211 + clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 212 + <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 213 + clock-names = "biu", "ciu", "ciu-drive", "ciu-sample"; 214 + fifo-depth = <0x100>; 215 + status = "disabled"; 216 + }; 217 + 218 + usb_host0_ehci: usb@fe380000 { 219 + compatible = "generic-ehci"; 220 + reg = <0x0 0xfe380000 0x0 0x20000>; 221 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 222 + clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>; 223 + clock-names = "hclk_host0", "hclk_host0_arb"; 224 + status = "disabled"; 225 + }; 226 + 227 + usb_host0_ohci: usb@fe3a0000 { 228 + compatible = "generic-ohci"; 229 + reg = <0x0 0xfe3a0000 0x0 0x20000>; 230 + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 231 + clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST0_ARB>; 232 + clock-names = "hclk_host0", "hclk_host0_arb"; 233 + status = "disabled"; 234 + }; 235 + 236 + usb_host1_ehci: usb@fe3c0000 { 237 + compatible = "generic-ehci"; 238 + reg = <0x0 0xfe3c0000 0x0 0x20000>; 239 + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 240 + clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>; 241 + clock-names = "hclk_host1", "hclk_host1_arb"; 242 + status = "disabled"; 243 + }; 244 + 245 + usb_host1_ohci: usb@fe3e0000 { 246 + compatible = "generic-ohci"; 247 + reg = <0x0 0xfe3e0000 0x0 0x20000>; 248 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 249 + clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST1_ARB>; 250 + clock-names = "hclk_host1", "hclk_host1_arb"; 251 + status = "disabled"; 252 + }; 253 + 254 + gic: interrupt-controller@fee00000 { 255 + compatible = "arm,gic-v3"; 256 + #interrupt-cells = <3>; 257 + #address-cells = <2>; 258 + #size-cells = <2>; 259 + ranges; 260 + interrupt-controller; 261 + 262 + reg = <0x0 0xfee00000 0 0x10000>, /* GICD */ 263 + <0x0 0xfef00000 0 0xc0000>, /* GICR */ 264 + <0x0 0xfff00000 0 0x10000>, /* GICC */ 265 + <0x0 0xfff10000 0 0x10000>, /* GICH */ 266 + <0x0 0xfff20000 0 0x10000>; /* GICV */ 267 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 268 + its: interrupt-controller@fee20000 { 269 + compatible = "arm,gic-v3-its"; 270 + msi-controller; 271 + reg = <0x0 0xfee20000 0x0 0x20000>; 272 + }; 273 + }; 274 + 275 + uart0: serial@ff180000 { 276 + compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 277 + reg = <0x0 0xff180000 0x0 0x100>; 278 + clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>; 279 + clock-names = "baudclk", "apb_pclk"; 280 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 281 + reg-shift = <2>; 282 + reg-io-width = <4>; 283 + pinctrl-names = "default"; 284 + pinctrl-0 = <&uart0_xfer>; 285 + status = "disabled"; 286 + }; 287 + 288 + uart1: serial@ff190000 { 289 + compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 290 + reg = <0x0 0xff190000 0x0 0x100>; 291 + clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>; 292 + clock-names = "baudclk", "apb_pclk"; 293 + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 294 + reg-shift = <2>; 295 + reg-io-width = <4>; 296 + pinctrl-names = "default"; 297 + pinctrl-0 = <&uart1_xfer>; 298 + status = "disabled"; 299 + }; 300 + 301 + uart2: serial@ff1a0000 { 302 + compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 303 + reg = <0x0 0xff1a0000 0x0 0x100>; 304 + clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>; 305 + clock-names = "baudclk", "apb_pclk"; 306 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 307 + reg-shift = <2>; 308 + reg-io-width = <4>; 309 + pinctrl-names = "default"; 310 + pinctrl-0 = <&uart2c_xfer>; 311 + status = "disabled"; 312 + }; 313 + 314 + uart3: serial@ff1b0000 { 315 + compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 316 + reg = <0x0 0xff1b0000 0x0 0x100>; 317 + clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>; 318 + clock-names = "baudclk", "apb_pclk"; 319 + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 320 + reg-shift = <2>; 321 + reg-io-width = <4>; 322 + pinctrl-names = "default"; 323 + pinctrl-0 = <&uart3_xfer>; 324 + status = "disabled"; 325 + }; 326 + 327 + spi0: spi@ff1c0000 { 328 + compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 329 + reg = <0x0 0xff1c0000 0x0 0x1000>; 330 + clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>; 331 + clock-names = "spiclk", "apb_pclk"; 332 + interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>; 333 + pinctrl-names = "default"; 334 + pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>; 335 + #address-cells = <1>; 336 + #size-cells = <0>; 337 + status = "disabled"; 338 + }; 339 + 340 + spi1: spi@ff1d0000 { 341 + compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 342 + reg = <0x0 0xff1d0000 0x0 0x1000>; 343 + clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>; 344 + clock-names = "spiclk", "apb_pclk"; 345 + interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 346 + pinctrl-names = "default"; 347 + pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>; 348 + #address-cells = <1>; 349 + #size-cells = <0>; 350 + status = "disabled"; 351 + }; 352 + 353 + spi2: spi@ff1e0000 { 354 + compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 355 + reg = <0x0 0xff1e0000 0x0 0x1000>; 356 + clocks = <&cru SCLK_SPI2>, <&cru PCLK_SPI2>; 357 + clock-names = "spiclk", "apb_pclk"; 358 + interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 359 + pinctrl-names = "default"; 360 + pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>; 361 + #address-cells = <1>; 362 + #size-cells = <0>; 363 + status = "disabled"; 364 + }; 365 + 366 + spi4: spi@ff1f0000 { 367 + compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 368 + reg = <0x0 0xff1f0000 0x0 0x1000>; 369 + clocks = <&cru SCLK_SPI4>, <&cru PCLK_SPI4>; 370 + clock-names = "spiclk", "apb_pclk"; 371 + interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 372 + pinctrl-names = "default"; 373 + pinctrl-0 = <&spi4_clk &spi4_tx &spi4_rx &spi4_cs0>; 374 + #address-cells = <1>; 375 + #size-cells = <0>; 376 + status = "disabled"; 377 + }; 378 + 379 + spi5: spi@ff200000 { 380 + compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 381 + reg = <0x0 0xff200000 0x0 0x1000>; 382 + clocks = <&cru SCLK_SPI5>, <&cru PCLK_SPI5>; 383 + clock-names = "spiclk", "apb_pclk"; 384 + interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>; 385 + pinctrl-names = "default"; 386 + pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>; 387 + #address-cells = <1>; 388 + #size-cells = <0>; 389 + status = "disabled"; 390 + }; 391 + 392 + pmugrf: syscon@ff320000 { 393 + compatible = "rockchip,rk3399-pmugrf", "syscon"; 394 + reg = <0x0 0xff320000 0x0 0x1000>; 395 + }; 396 + 397 + spi3: spi@ff350000 { 398 + compatible = "rockchip,rk3399-spi", "rockchip,rk3066-spi"; 399 + reg = <0x0 0xff350000 0x0 0x1000>; 400 + clocks = <&pmucru SCLK_SPI3_PMU>, <&pmucru PCLK_SPI3_PMU>; 401 + clock-names = "spiclk", "apb_pclk"; 402 + interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 403 + pinctrl-names = "default"; 404 + pinctrl-0 = <&spi3_clk &spi3_tx &spi3_rx &spi3_cs0>; 405 + #address-cells = <1>; 406 + #size-cells = <0>; 407 + status = "disabled"; 408 + }; 409 + 410 + uart4: serial@ff370000 { 411 + compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; 412 + reg = <0x0 0xff370000 0x0 0x100>; 413 + clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>; 414 + clock-names = "baudclk", "apb_pclk"; 415 + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 416 + reg-shift = <2>; 417 + reg-io-width = <4>; 418 + pinctrl-names = "default"; 419 + pinctrl-0 = <&uart4_xfer>; 420 + status = "disabled"; 421 + }; 422 + 423 + pwm0: pwm@ff420000 { 424 + compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 425 + reg = <0x0 0xff420000 0x0 0x10>; 426 + #pwm-cells = <3>; 427 + pinctrl-names = "default"; 428 + pinctrl-0 = <&pwm0_pin>; 429 + clocks = <&pmucru PCLK_RKPWM_PMU>; 430 + clock-names = "pwm"; 431 + status = "disabled"; 432 + }; 433 + 434 + pwm1: pwm@ff420010 { 435 + compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 436 + reg = <0x0 0xff420010 0x0 0x10>; 437 + #pwm-cells = <3>; 438 + pinctrl-names = "default"; 439 + pinctrl-0 = <&pwm1_pin>; 440 + clocks = <&pmucru PCLK_RKPWM_PMU>; 441 + clock-names = "pwm"; 442 + status = "disabled"; 443 + }; 444 + 445 + pwm2: pwm@ff420020 { 446 + compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 447 + reg = <0x0 0xff420020 0x0 0x10>; 448 + #pwm-cells = <3>; 449 + pinctrl-names = "default"; 450 + pinctrl-0 = <&pwm2_pin>; 451 + clocks = <&pmucru PCLK_RKPWM_PMU>; 452 + clock-names = "pwm"; 453 + status = "disabled"; 454 + }; 455 + 456 + pwm3: pwm@ff420030 { 457 + compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm"; 458 + reg = <0x0 0xff420030 0x0 0x10>; 459 + #pwm-cells = <3>; 460 + pinctrl-names = "default"; 461 + pinctrl-0 = <&pwm3a_pin>; 462 + clocks = <&pmucru PCLK_RKPWM_PMU>; 463 + clock-names = "pwm"; 464 + status = "disabled"; 465 + }; 466 + 467 + pmucru: pmu-clock-controller@ff750000 { 468 + compatible = "rockchip,rk3399-pmucru"; 469 + reg = <0x0 0xff750000 0x0 0x1000>; 470 + #clock-cells = <1>; 471 + #reset-cells = <1>; 472 + assigned-clocks = <&pmucru PLL_PPLL>; 473 + assigned-clock-rates = <676000000>; 474 + }; 475 + 476 + cru: clock-controller@ff760000 { 477 + compatible = "rockchip,rk3399-cru"; 478 + reg = <0x0 0xff760000 0x0 0x1000>; 479 + #clock-cells = <1>; 480 + #reset-cells = <1>; 481 + }; 482 + 483 + grf: syscon@ff770000 { 484 + compatible = "rockchip,rk3399-grf", "syscon"; 485 + reg = <0x0 0xff770000 0x0 0x10000>; 486 + }; 487 + 488 + watchdog@ff840000 { 489 + compatible = "snps,dw-wdt"; 490 + reg = <0x0 0xff840000 0x0 0x100>; 491 + clocks = <&cru PCLK_WDT>; 492 + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 493 + }; 494 + 495 + spdif: spdif@ff870000 { 496 + compatible = "rockchip,rk3399-spdif"; 497 + reg = <0x0 0xff870000 0x0 0x1000>; 498 + interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 499 + dmas = <&dmac_bus 7>; 500 + dma-names = "tx"; 501 + clock-names = "mclk", "hclk"; 502 + clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>; 503 + pinctrl-names = "default"; 504 + pinctrl-0 = <&spdif_bus>; 505 + status = "disabled"; 506 + }; 507 + 508 + i2s0: i2s@ff880000 { 509 + compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 510 + reg = <0x0 0xff880000 0x0 0x1000>; 511 + rockchip,grf = <&grf>; 512 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 513 + dmas = <&dmac_bus 0>, <&dmac_bus 1>; 514 + dma-names = "tx", "rx"; 515 + clock-names = "i2s_clk", "i2s_hclk"; 516 + clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>; 517 + pinctrl-names = "default"; 518 + pinctrl-0 = <&i2s0_8ch_bus>; 519 + status = "disabled"; 520 + }; 521 + 522 + i2s1: i2s@ff890000 { 523 + compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 524 + reg = <0x0 0xff890000 0x0 0x1000>; 525 + interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 526 + dmas = <&dmac_bus 2>, <&dmac_bus 3>; 527 + dma-names = "tx", "rx"; 528 + clock-names = "i2s_clk", "i2s_hclk"; 529 + clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>; 530 + pinctrl-names = "default"; 531 + pinctrl-0 = <&i2s1_2ch_bus>; 532 + status = "disabled"; 533 + }; 534 + 535 + i2s2: i2s@ff8a0000 { 536 + compatible = "rockchip,rk3399-i2s", "rockchip,rk3066-i2s"; 537 + reg = <0x0 0xff8a0000 0x0 0x1000>; 538 + interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 539 + dmas = <&dmac_bus 4>, <&dmac_bus 5>; 540 + dma-names = "tx", "rx"; 541 + clock-names = "i2s_clk", "i2s_hclk"; 542 + clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>; 543 + status = "disabled"; 544 + }; 545 + 546 + pinctrl: pinctrl { 547 + compatible = "rockchip,rk3399-pinctrl"; 548 + rockchip,grf = <&grf>; 549 + rockchip,pmu = <&pmugrf>; 550 + #address-cells = <2>; 551 + #size-cells = <2>; 552 + ranges; 553 + 554 + gpio0: gpio0@ff720000 { 555 + compatible = "rockchip,gpio-bank"; 556 + reg = <0x0 0xff720000 0x0 0x100>; 557 + clocks = <&pmucru PCLK_GPIO0_PMU>; 558 + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 559 + 560 + gpio-controller; 561 + #gpio-cells = <0x2>; 562 + 563 + interrupt-controller; 564 + #interrupt-cells = <0x2>; 565 + }; 566 + 567 + gpio1: gpio1@ff730000 { 568 + compatible = "rockchip,gpio-bank"; 569 + reg = <0x0 0xff730000 0x0 0x100>; 570 + clocks = <&pmucru PCLK_GPIO1_PMU>; 571 + interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 572 + 573 + gpio-controller; 574 + #gpio-cells = <0x2>; 575 + 576 + interrupt-controller; 577 + #interrupt-cells = <0x2>; 578 + }; 579 + 580 + gpio2: gpio2@ff780000 { 581 + compatible = "rockchip,gpio-bank"; 582 + reg = <0x0 0xff780000 0x0 0x100>; 583 + clocks = <&cru PCLK_GPIO2>; 584 + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 585 + 586 + gpio-controller; 587 + #gpio-cells = <0x2>; 588 + 589 + interrupt-controller; 590 + #interrupt-cells = <0x2>; 591 + }; 592 + 593 + gpio3: gpio3@ff788000 { 594 + compatible = "rockchip,gpio-bank"; 595 + reg = <0x0 0xff788000 0x0 0x100>; 596 + clocks = <&cru PCLK_GPIO3>; 597 + interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 598 + 599 + gpio-controller; 600 + #gpio-cells = <0x2>; 601 + 602 + interrupt-controller; 603 + #interrupt-cells = <0x2>; 604 + }; 605 + 606 + gpio4: gpio4@ff790000 { 607 + compatible = "rockchip,gpio-bank"; 608 + reg = <0x0 0xff790000 0x0 0x100>; 609 + clocks = <&cru PCLK_GPIO4>; 610 + interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 611 + 612 + gpio-controller; 613 + #gpio-cells = <0x2>; 614 + 615 + interrupt-controller; 616 + #interrupt-cells = <0x2>; 617 + }; 618 + 619 + pcfg_pull_up: pcfg-pull-up { 620 + bias-pull-up; 621 + }; 622 + 623 + pcfg_pull_down: pcfg-pull-down { 624 + bias-pull-down; 625 + }; 626 + 627 + pcfg_pull_none: pcfg-pull-none { 628 + bias-disable; 629 + }; 630 + 631 + pcfg_pull_none_12ma: pcfg-pull-none-12ma { 632 + bias-disable; 633 + drive-strength = <12>; 634 + }; 635 + 636 + pcfg_pull_up_8ma: pcfg-pull-up-8ma { 637 + bias-pull-up; 638 + drive-strength = <8>; 639 + }; 640 + 641 + pcfg_pull_down_4ma: pcfg-pull-down-4ma { 642 + bias-pull-down; 643 + drive-strength = <4>; 644 + }; 645 + 646 + pcfg_pull_up_2ma: pcfg-pull-up-2ma { 647 + bias-pull-up; 648 + drive-strength = <2>; 649 + }; 650 + 651 + pcfg_pull_down_12ma: pcfg-pull-down-12ma { 652 + bias-pull-down; 653 + drive-strength = <12>; 654 + }; 655 + 656 + pcfg_pull_none_13ma: pcfg-pull-none-13ma { 657 + bias-disable; 658 + drive-strength = <13>; 659 + }; 660 + 661 + i2c0 { 662 + i2c0_xfer: i2c0-xfer { 663 + rockchip,pins = 664 + <1 15 RK_FUNC_2 &pcfg_pull_none>, 665 + <1 16 RK_FUNC_2 &pcfg_pull_none>; 666 + }; 667 + }; 668 + 669 + i2c1 { 670 + i2c1_xfer: i2c1-xfer { 671 + rockchip,pins = 672 + <4 2 RK_FUNC_1 &pcfg_pull_none>, 673 + <4 1 RK_FUNC_1 &pcfg_pull_none>; 674 + }; 675 + }; 676 + 677 + i2c2 { 678 + i2c2_xfer: i2c2-xfer { 679 + rockchip,pins = 680 + <2 1 RK_FUNC_2 &pcfg_pull_none_12ma>, 681 + <2 0 RK_FUNC_2 &pcfg_pull_none_12ma>; 682 + }; 683 + }; 684 + 685 + i2c3 { 686 + i2c3_xfer: i2c3-xfer { 687 + rockchip,pins = 688 + <4 17 RK_FUNC_1 &pcfg_pull_none>, 689 + <4 16 RK_FUNC_1 &pcfg_pull_none>; 690 + }; 691 + }; 692 + 693 + i2c4 { 694 + i2c4_xfer: i2c4-xfer { 695 + rockchip,pins = 696 + <1 12 RK_FUNC_1 &pcfg_pull_none>, 697 + <1 11 RK_FUNC_1 &pcfg_pull_none>; 698 + }; 699 + }; 700 + 701 + i2c5 { 702 + i2c5_xfer: i2c5-xfer { 703 + rockchip,pins = 704 + <3 11 RK_FUNC_2 &pcfg_pull_none>, 705 + <3 10 RK_FUNC_2 &pcfg_pull_none>; 706 + }; 707 + }; 708 + 709 + i2c6 { 710 + i2c6_xfer: i2c6-xfer { 711 + rockchip,pins = 712 + <2 10 RK_FUNC_2 &pcfg_pull_none>, 713 + <2 9 RK_FUNC_2 &pcfg_pull_none>; 714 + }; 715 + }; 716 + 717 + i2c7 { 718 + i2c7_xfer: i2c7-xfer { 719 + rockchip,pins = 720 + <2 8 RK_FUNC_2 &pcfg_pull_none>, 721 + <2 7 RK_FUNC_2 &pcfg_pull_none>; 722 + }; 723 + }; 724 + 725 + i2c8 { 726 + i2c8_xfer: i2c8-xfer { 727 + rockchip,pins = 728 + <1 21 RK_FUNC_1 &pcfg_pull_none>, 729 + <1 20 RK_FUNC_1 &pcfg_pull_none>; 730 + }; 731 + }; 732 + 733 + i2s0 { 734 + i2s0_8ch_bus: i2s0-8ch-bus { 735 + rockchip,pins = 736 + <3 24 RK_FUNC_1 &pcfg_pull_none>, 737 + <3 25 RK_FUNC_1 &pcfg_pull_none>, 738 + <3 26 RK_FUNC_1 &pcfg_pull_none>, 739 + <3 27 RK_FUNC_1 &pcfg_pull_none>, 740 + <3 28 RK_FUNC_1 &pcfg_pull_none>, 741 + <3 29 RK_FUNC_1 &pcfg_pull_none>, 742 + <3 30 RK_FUNC_1 &pcfg_pull_none>, 743 + <3 31 RK_FUNC_1 &pcfg_pull_none>, 744 + <4 0 RK_FUNC_1 &pcfg_pull_none>; 745 + }; 746 + }; 747 + 748 + i2s1 { 749 + i2s1_2ch_bus: i2s1-2ch-bus { 750 + rockchip,pins = 751 + <4 3 RK_FUNC_1 &pcfg_pull_none>, 752 + <4 4 RK_FUNC_1 &pcfg_pull_none>, 753 + <4 5 RK_FUNC_1 &pcfg_pull_none>, 754 + <4 6 RK_FUNC_1 &pcfg_pull_none>, 755 + <4 7 RK_FUNC_1 &pcfg_pull_none>; 756 + }; 757 + }; 758 + 759 + spdif { 760 + spdif_bus: spdif-bus { 761 + rockchip,pins = 762 + <4 21 RK_FUNC_1 &pcfg_pull_none>; 763 + }; 764 + }; 765 + 766 + spi0 { 767 + spi0_clk: spi0-clk { 768 + rockchip,pins = 769 + <3 6 RK_FUNC_2 &pcfg_pull_up>; 770 + }; 771 + spi0_cs0: spi0-cs0 { 772 + rockchip,pins = 773 + <3 7 RK_FUNC_2 &pcfg_pull_up>; 774 + }; 775 + spi0_cs1: spi0-cs1 { 776 + rockchip,pins = 777 + <3 8 RK_FUNC_2 &pcfg_pull_up>; 778 + }; 779 + spi0_tx: spi0-tx { 780 + rockchip,pins = 781 + <3 5 RK_FUNC_2 &pcfg_pull_up>; 782 + }; 783 + spi0_rx: spi0-rx { 784 + rockchip,pins = 785 + <3 4 RK_FUNC_2 &pcfg_pull_up>; 786 + }; 787 + }; 788 + 789 + spi1 { 790 + spi1_clk: spi1-clk { 791 + rockchip,pins = 792 + <1 9 RK_FUNC_2 &pcfg_pull_up>; 793 + }; 794 + spi1_cs0: spi1-cs0 { 795 + rockchip,pins = 796 + <1 10 RK_FUNC_2 &pcfg_pull_up>; 797 + }; 798 + spi1_rx: spi1-rx { 799 + rockchip,pins = 800 + <1 7 RK_FUNC_2 &pcfg_pull_up>; 801 + }; 802 + spi1_tx: spi1-tx { 803 + rockchip,pins = 804 + <1 8 RK_FUNC_2 &pcfg_pull_up>; 805 + }; 806 + }; 807 + 808 + spi2 { 809 + spi2_clk: spi2-clk { 810 + rockchip,pins = 811 + <2 11 RK_FUNC_1 &pcfg_pull_up>; 812 + }; 813 + spi2_cs0: spi2-cs0 { 814 + rockchip,pins = 815 + <2 12 RK_FUNC_1 &pcfg_pull_up>; 816 + }; 817 + spi2_rx: spi2-rx { 818 + rockchip,pins = 819 + <2 9 RK_FUNC_1 &pcfg_pull_up>; 820 + }; 821 + spi2_tx: spi2-tx { 822 + rockchip,pins = 823 + <2 10 RK_FUNC_1 &pcfg_pull_up>; 824 + }; 825 + }; 826 + 827 + spi3 { 828 + spi3_clk: spi3-clk { 829 + rockchip,pins = 830 + <1 17 RK_FUNC_1 &pcfg_pull_up>; 831 + }; 832 + spi3_cs0: spi3-cs0 { 833 + rockchip,pins = 834 + <1 18 RK_FUNC_1 &pcfg_pull_up>; 835 + }; 836 + spi3_rx: spi3-rx { 837 + rockchip,pins = 838 + <1 15 RK_FUNC_1 &pcfg_pull_up>; 839 + }; 840 + spi3_tx: spi3-tx { 841 + rockchip,pins = 842 + <1 16 RK_FUNC_1 &pcfg_pull_up>; 843 + }; 844 + }; 845 + 846 + spi4 { 847 + spi4_clk: spi4-clk { 848 + rockchip,pins = 849 + <3 2 RK_FUNC_2 &pcfg_pull_up>; 850 + }; 851 + spi4_cs0: spi4-cs0 { 852 + rockchip,pins = 853 + <3 3 RK_FUNC_2 &pcfg_pull_up>; 854 + }; 855 + spi4_rx: spi4-rx { 856 + rockchip,pins = 857 + <3 0 RK_FUNC_2 &pcfg_pull_up>; 858 + }; 859 + spi4_tx: spi4-tx { 860 + rockchip,pins = 861 + <3 1 RK_FUNC_2 &pcfg_pull_up>; 862 + }; 863 + }; 864 + 865 + spi5 { 866 + spi5_clk: spi5-clk { 867 + rockchip,pins = 868 + <2 22 RK_FUNC_2 &pcfg_pull_up>; 869 + }; 870 + spi5_cs0: spi5-cs0 { 871 + rockchip,pins = 872 + <2 23 RK_FUNC_2 &pcfg_pull_up>; 873 + }; 874 + spi5_rx: spi5-rx { 875 + rockchip,pins = 876 + <2 20 RK_FUNC_2 &pcfg_pull_up>; 877 + }; 878 + spi5_tx: spi5-tx { 879 + rockchip,pins = 880 + <2 21 RK_FUNC_2 &pcfg_pull_up>; 881 + }; 882 + }; 883 + 884 + uart0 { 885 + uart0_xfer: uart0-xfer { 886 + rockchip,pins = 887 + <2 16 RK_FUNC_1 &pcfg_pull_up>, 888 + <2 17 RK_FUNC_1 &pcfg_pull_none>; 889 + }; 890 + 891 + uart0_cts: uart0-cts { 892 + rockchip,pins = 893 + <2 18 RK_FUNC_1 &pcfg_pull_none>; 894 + }; 895 + 896 + uart0_rts: uart0-rts { 897 + rockchip,pins = 898 + <2 19 RK_FUNC_1 &pcfg_pull_none>; 899 + }; 900 + }; 901 + 902 + uart1 { 903 + uart1_xfer: uart1-xfer { 904 + rockchip,pins = 905 + <3 12 RK_FUNC_2 &pcfg_pull_up>, 906 + <3 13 RK_FUNC_2 &pcfg_pull_none>; 907 + }; 908 + }; 909 + 910 + uart2a { 911 + uart2a_xfer: uart2a-xfer { 912 + rockchip,pins = 913 + <4 8 RK_FUNC_2 &pcfg_pull_up>, 914 + <4 9 RK_FUNC_2 &pcfg_pull_none>; 915 + }; 916 + }; 917 + 918 + uart2b { 919 + uart2b_xfer: uart2b-xfer { 920 + rockchip,pins = 921 + <4 16 RK_FUNC_2 &pcfg_pull_up>, 922 + <4 17 RK_FUNC_2 &pcfg_pull_none>; 923 + }; 924 + }; 925 + 926 + uart2c { 927 + uart2c_xfer: uart2c-xfer { 928 + rockchip,pins = 929 + <4 19 RK_FUNC_1 &pcfg_pull_up>, 930 + <4 20 RK_FUNC_1 &pcfg_pull_none>; 931 + }; 932 + }; 933 + 934 + uart3 { 935 + uart3_xfer: uart3-xfer { 936 + rockchip,pins = 937 + <3 14 RK_FUNC_2 &pcfg_pull_up>, 938 + <3 15 RK_FUNC_2 &pcfg_pull_none>; 939 + }; 940 + 941 + uart3_cts: uart3-cts { 942 + rockchip,pins = 943 + <3 18 RK_FUNC_2 &pcfg_pull_none>; 944 + }; 945 + 946 + uart3_rts: uart3-rts { 947 + rockchip,pins = 948 + <3 19 RK_FUNC_2 &pcfg_pull_none>; 949 + }; 950 + }; 951 + 952 + uart4 { 953 + uart4_xfer: uart4-xfer { 954 + rockchip,pins = 955 + <1 7 RK_FUNC_1 &pcfg_pull_up>, 956 + <1 8 RK_FUNC_1 &pcfg_pull_none>; 957 + }; 958 + }; 959 + 960 + uarthdcp { 961 + uarthdcp_xfer: uarthdcp-xfer { 962 + rockchip,pins = 963 + <4 21 RK_FUNC_2 &pcfg_pull_up>, 964 + <4 22 RK_FUNC_2 &pcfg_pull_none>; 965 + }; 966 + }; 967 + 968 + pwm0 { 969 + pwm0_pin: pwm0-pin { 970 + rockchip,pins = 971 + <4 18 RK_FUNC_1 &pcfg_pull_none>; 972 + }; 973 + 974 + vop0_pwm_pin: vop0-pwm-pin { 975 + rockchip,pins = 976 + <4 18 RK_FUNC_2 &pcfg_pull_none>; 977 + }; 978 + }; 979 + 980 + pwm1 { 981 + pwm1_pin: pwm1-pin { 982 + rockchip,pins = 983 + <4 22 RK_FUNC_1 &pcfg_pull_none>; 984 + }; 985 + 986 + vop1_pwm_pin: vop1-pwm-pin { 987 + rockchip,pins = 988 + <4 18 RK_FUNC_3 &pcfg_pull_none>; 989 + }; 990 + }; 991 + 992 + pwm2 { 993 + pwm2_pin: pwm2-pin { 994 + rockchip,pins = 995 + <1 19 RK_FUNC_1 &pcfg_pull_none>; 996 + }; 997 + }; 998 + 999 + pwm3a { 1000 + pwm3a_pin: pwm3a-pin { 1001 + rockchip,pins = 1002 + <0 6 RK_FUNC_1 &pcfg_pull_none>; 1003 + }; 1004 + }; 1005 + 1006 + pwm3b { 1007 + pwm3b_pin: pwm3b-pin { 1008 + rockchip,pins = 1009 + <1 14 RK_FUNC_1 &pcfg_pull_none>; 1010 + }; 1011 + }; 1012 + }; 1013 + };
+1
arch/arm64/boot/dts/socionext/uniphier-ph1-ld20-ref.dts
··· 44 44 45 45 /dts-v1/; 46 46 /include/ "uniphier-ph1-ld20.dtsi" 47 + /include/ "uniphier-ref-daughter.dtsi" 47 48 /include/ "uniphier-support-card.dtsi" 48 49 49 50 / {
+6
arch/arm64/boot/dts/socionext/uniphier-ph1-ld20.dtsi
··· 106 106 }; 107 107 108 108 clocks { 109 + refclk: ref { 110 + compatible = "fixed-clock"; 111 + #clock-cells = <0>; 112 + clock-frequency = <25000000>; 113 + }; 114 + 109 115 uart_clk: uart_clk { 110 116 #clock-cells = <0>; 111 117 compatible = "fixed-clock";
+755
include/dt-bindings/clock/rk3399-cru.h
··· 1 + /* 2 + * Copyright (c) 2016 Rockchip Electronics Co. Ltd. 3 + * Author: Xing Zheng <zhengxing@rock-chips.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License as published by 7 + * the Free Software Foundation; either version 2 of the License, or 8 + * (at your option) any later version. 9 + * 10 + * This program is distributed in the hope that it will be useful, 11 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 + * GNU General Public License for more details. 14 + */ 15 + 16 + #ifndef _DT_BINDINGS_CLK_ROCKCHIP_RK3399_H 17 + #define _DT_BINDINGS_CLK_ROCKCHIP_RK3399_H 18 + 19 + /* core clocks */ 20 + #define PLL_APLLL 1 21 + #define PLL_APLLB 2 22 + #define PLL_DPLL 3 23 + #define PLL_CPLL 4 24 + #define PLL_GPLL 5 25 + #define PLL_NPLL 6 26 + #define PLL_VPLL 7 27 + #define ARMCLKL 8 28 + #define ARMCLKB 9 29 + 30 + /* sclk gates (special clocks) */ 31 + #define SCLK_I2C1 65 32 + #define SCLK_I2C2 66 33 + #define SCLK_I2C3 67 34 + #define SCLK_I2C5 68 35 + #define SCLK_I2C6 69 36 + #define SCLK_I2C7 70 37 + #define SCLK_SPI0 71 38 + #define SCLK_SPI1 72 39 + #define SCLK_SPI2 73 40 + #define SCLK_SPI4 74 41 + #define SCLK_SPI5 75 42 + #define SCLK_SDMMC 76 43 + #define SCLK_SDIO 77 44 + #define SCLK_EMMC 78 45 + #define SCLK_TSADC 79 46 + #define SCLK_SARADC 80 47 + #define SCLK_UART0 81 48 + #define SCLK_UART1 82 49 + #define SCLK_UART2 83 50 + #define SCLK_UART3 84 51 + #define SCLK_SPDIF_8CH 85 52 + #define SCLK_I2S0_8CH 86 53 + #define SCLK_I2S1_8CH 87 54 + #define SCLK_I2S2_8CH 88 55 + #define SCLK_I2S_8CH_OUT 89 56 + #define SCLK_TIMER00 90 57 + #define SCLK_TIMER01 91 58 + #define SCLK_TIMER02 92 59 + #define SCLK_TIMER03 93 60 + #define SCLK_TIMER04 94 61 + #define SCLK_TIMER05 95 62 + #define SCLK_TIMER06 96 63 + #define SCLK_TIMER07 97 64 + #define SCLK_TIMER08 98 65 + #define SCLK_TIMER09 99 66 + #define SCLK_TIMER10 100 67 + #define SCLK_TIMER11 101 68 + #define SCLK_MACREF 102 69 + #define SCLK_MAC_RX 103 70 + #define SCLK_MAC_TX 104 71 + #define SCLK_MAC 105 72 + #define SCLK_MACREF_OUT 106 73 + #define SCLK_VOP0_PWM 107 74 + #define SCLK_VOP1_PWM 108 75 + #define SCLK_RGA_CORE 109 76 + #define SCLK_ISP0 110 77 + #define SCLK_ISP1 111 78 + #define SCLK_HDMI_CEC 112 79 + #define SCLK_HDMI_SFR 113 80 + #define SCLK_DP_CORE 114 81 + #define SCLK_PVTM_CORE_L 115 82 + #define SCLK_PVTM_CORE_B 116 83 + #define SCLK_PVTM_GPU 117 84 + #define SCLK_PVTM_DDR 118 85 + #define SCLK_MIPIDPHY_REF 119 86 + #define SCLK_MIPIDPHY_CFG 120 87 + #define SCLK_HSICPHY 121 88 + #define SCLK_USBPHY480M 122 89 + #define SCLK_USB2PHY0_REF 123 90 + #define SCLK_USB2PHY1_REF 124 91 + #define SCLK_UPHY0_TCPDPHY_REF 125 92 + #define SCLK_UPHY0_TCPDCORE 126 93 + #define SCLK_UPHY1_TCPDPHY_REF 127 94 + #define SCLK_UPHY1_TCPDCORE 128 95 + #define SCLK_USB3OTG0_REF 129 96 + #define SCLK_USB3OTG1_REF 130 97 + #define SCLK_USB3OTG0_SUSPEND 131 98 + #define SCLK_USB3OTG1_SUSPEND 132 99 + #define SCLK_CRYPTO0 133 100 + #define SCLK_CRYPTO1 134 101 + #define SCLK_CCI_TRACE 135 102 + #define SCLK_CS 136 103 + #define SCLK_CIF_OUT 137 104 + #define SCLK_PCIEPHY_REF 138 105 + #define SCLK_PCIE_CORE 139 106 + #define SCLK_M0_PERILP 140 107 + #define SCLK_M0_PERILP_DEC 141 108 + #define SCLK_CM0S 142 109 + #define SCLK_DBG_NOC 143 110 + #define SCLK_DBG_PD_CORE_B 144 111 + #define SCLK_DBG_PD_CORE_L 145 112 + #define SCLK_DFIMON0_TIMER 146 113 + #define SCLK_DFIMON1_TIMER 147 114 + #define SCLK_INTMEM0 148 115 + #define SCLK_INTMEM1 149 116 + #define SCLK_INTMEM2 150 117 + #define SCLK_INTMEM3 151 118 + #define SCLK_INTMEM4 152 119 + #define SCLK_INTMEM5 153 120 + #define SCLK_SDMMC_DRV 154 121 + #define SCLK_SDMMC_SAMPLE 155 122 + #define SCLK_SDIO_DRV 156 123 + #define SCLK_SDIO_SAMPLE 157 124 + #define SCLK_VDU_CORE 158 125 + #define SCLK_VDU_CA 159 126 + #define SCLK_PCIE_PM 160 127 + #define SCLK_SPDIF_REC_DPTX 161 128 + #define SCLK_DPHY_PLL 162 129 + #define SCLK_DPHY_TX0_CFG 163 130 + #define SCLK_DPHY_TX1RX1_CFG 164 131 + #define SCLK_DPHY_RX0_CFG 165 132 + #define SCLK_RMII_SRC 166 133 + #define SCLK_PCIEPHY_REF100M 167 134 + 135 + #define DCLK_VOP0 180 136 + #define DCLK_VOP1 181 137 + #define DCLK_VOP0_DIV 182 138 + #define DCLK_VOP1_DIV 183 139 + #define DCLK_M0_PERILP 184 140 + 141 + #define FCLK_CM0S 190 142 + 143 + /* aclk gates */ 144 + #define ACLK_PERIHP 192 145 + #define ACLK_PERIHP_NOC 193 146 + #define ACLK_PERILP0 194 147 + #define ACLK_PERILP0_NOC 195 148 + #define ACLK_PERF_PCIE 196 149 + #define ACLK_PCIE 197 150 + #define ACLK_INTMEM 198 151 + #define ACLK_TZMA 199 152 + #define ACLK_DCF 200 153 + #define ACLK_CCI 201 154 + #define ACLK_CCI_NOC0 202 155 + #define ACLK_CCI_NOC1 203 156 + #define ACLK_CCI_GRF 204 157 + #define ACLK_CENTER 205 158 + #define ACLK_CENTER_MAIN_NOC 206 159 + #define ACLK_CENTER_PERI_NOC 207 160 + #define ACLK_GPU 208 161 + #define ACLK_PERF_GPU 209 162 + #define ACLK_GPU_GRF 210 163 + #define ACLK_DMAC0_PERILP 211 164 + #define ACLK_DMAC1_PERILP 212 165 + #define ACLK_GMAC 213 166 + #define ACLK_GMAC_NOC 214 167 + #define ACLK_PERF_GMAC 215 168 + #define ACLK_VOP0_NOC 216 169 + #define ACLK_VOP0 217 170 + #define ACLK_VOP1_NOC 218 171 + #define ACLK_VOP1 219 172 + #define ACLK_RGA 220 173 + #define ACLK_RGA_NOC 221 174 + #define ACLK_HDCP 222 175 + #define ACLK_HDCP_NOC 223 176 + #define ACLK_HDCP22 224 177 + #define ACLK_IEP 225 178 + #define ACLK_IEP_NOC 226 179 + #define ACLK_VIO 227 180 + #define ACLK_VIO_NOC 228 181 + #define ACLK_ISP0 229 182 + #define ACLK_ISP1 230 183 + #define ACLK_ISP0_NOC 231 184 + #define ACLK_ISP1_NOC 232 185 + #define ACLK_ISP0_WRAPPER 233 186 + #define ACLK_ISP1_WRAPPER 234 187 + #define ACLK_VCODEC 235 188 + #define ACLK_VCODEC_NOC 236 189 + #define ACLK_VDU 237 190 + #define ACLK_VDU_NOC 238 191 + #define ACLK_PERI 239 192 + #define ACLK_EMMC 240 193 + #define ACLK_EMMC_CORE 241 194 + #define ACLK_EMMC_NOC 242 195 + #define ACLK_EMMC_GRF 243 196 + #define ACLK_USB3 244 197 + #define ACLK_USB3_NOC 245 198 + #define ACLK_USB3OTG0 246 199 + #define ACLK_USB3OTG1 247 200 + #define ACLK_USB3_RKSOC_AXI_PERF 248 201 + #define ACLK_USB3_GRF 249 202 + #define ACLK_GIC 250 203 + #define ACLK_GIC_NOC 251 204 + #define ACLK_GIC_ADB400_CORE_L_2_GIC 252 205 + #define ACLK_GIC_ADB400_CORE_B_2_GIC 253 206 + #define ACLK_GIC_ADB400_GIC_2_CORE_L 254 207 + #define ACLK_GIC_ADB400_GIC_2_CORE_B 255 208 + #define ACLK_CORE_ADB400_CORE_L_2_CCI500 256 209 + #define ACLK_CORE_ADB400_CORE_B_2_CCI500 257 210 + #define ACLK_ADB400M_PD_CORE_L 258 211 + #define ACLK_ADB400M_PD_CORE_B 259 212 + #define ACLK_PERF_CORE_L 260 213 + #define ACLK_PERF_CORE_B 261 214 + #define ACLK_GIC_PRE 262 215 + #define ACLK_VOP0_PRE 263 216 + #define ACLK_VOP1_PRE 264 217 + 218 + /* pclk gates */ 219 + #define PCLK_PERIHP 320 220 + #define PCLK_PERIHP_NOC 321 221 + #define PCLK_PERILP0 322 222 + #define PCLK_PERILP1 323 223 + #define PCLK_PERILP1_NOC 324 224 + #define PCLK_PERILP_SGRF 325 225 + #define PCLK_PERIHP_GRF 326 226 + #define PCLK_PCIE 327 227 + #define PCLK_SGRF 328 228 + #define PCLK_INTR_ARB 329 229 + #define PCLK_CENTER_MAIN_NOC 330 230 + #define PCLK_CIC 331 231 + #define PCLK_COREDBG_B 332 232 + #define PCLK_COREDBG_L 333 233 + #define PCLK_DBG_CXCS_PD_CORE_B 334 234 + #define PCLK_DCF 335 235 + #define PCLK_GPIO2 336 236 + #define PCLK_GPIO3 337 237 + #define PCLK_GPIO4 338 238 + #define PCLK_GRF 339 239 + #define PCLK_HSICPHY 340 240 + #define PCLK_I2C1 341 241 + #define PCLK_I2C2 342 242 + #define PCLK_I2C3 343 243 + #define PCLK_I2C5 344 244 + #define PCLK_I2C6 345 245 + #define PCLK_I2C7 346 246 + #define PCLK_SPI0 347 247 + #define PCLK_SPI1 348 248 + #define PCLK_SPI2 349 249 + #define PCLK_SPI4 350 250 + #define PCLK_SPI5 351 251 + #define PCLK_UART0 352 252 + #define PCLK_UART1 353 253 + #define PCLK_UART2 354 254 + #define PCLK_UART3 355 255 + #define PCLK_TSADC 356 256 + #define PCLK_SARADC 357 257 + #define PCLK_GMAC 358 258 + #define PCLK_GMAC_NOC 359 259 + #define PCLK_TIMER0 360 260 + #define PCLK_TIMER1 361 261 + #define PCLK_EDP 362 262 + #define PCLK_EDP_NOC 363 263 + #define PCLK_EDP_CTRL 364 264 + #define PCLK_VIO 365 265 + #define PCLK_VIO_NOC 366 266 + #define PCLK_VIO_GRF 367 267 + #define PCLK_MIPI_DSI0 368 268 + #define PCLK_MIPI_DSI1 369 269 + #define PCLK_HDCP 370 270 + #define PCLK_HDCP_NOC 371 271 + #define PCLK_HDMI_CTRL 372 272 + #define PCLK_DP_CTRL 373 273 + #define PCLK_HDCP22 374 274 + #define PCLK_GASKET 375 275 + #define PCLK_DDR 376 276 + #define PCLK_DDR_MON 377 277 + #define PCLK_DDR_SGRF 378 278 + #define PCLK_ISP1_WRAPPER 379 279 + #define PCLK_WDT 380 280 + #define PCLK_EFUSE1024NS 381 281 + #define PCLK_EFUSE1024S 382 282 + #define PCLK_PMU_INTR_ARB 383 283 + #define PCLK_MAILBOX0 384 284 + #define PCLK_USBPHY_MUX_G 385 285 + #define PCLK_UPHY0_TCPHY_G 386 286 + #define PCLK_UPHY0_TCPD_G 387 287 + #define PCLK_UPHY1_TCPHY_G 388 288 + #define PCLK_UPHY1_TCPD_G 389 289 + #define PCLK_ALIVE 390 290 + 291 + /* hclk gates */ 292 + #define HCLK_PERIHP 448 293 + #define HCLK_PERILP0 449 294 + #define HCLK_PERILP1 450 295 + #define HCLK_PERILP0_NOC 451 296 + #define HCLK_PERILP1_NOC 452 297 + #define HCLK_M0_PERILP 453 298 + #define HCLK_M0_PERILP_NOC 454 299 + #define HCLK_AHB1TOM 455 300 + #define HCLK_HOST0 456 301 + #define HCLK_HOST0_ARB 457 302 + #define HCLK_HOST1 458 303 + #define HCLK_HOST1_ARB 459 304 + #define HCLK_HSIC 460 305 + #define HCLK_SD 461 306 + #define HCLK_SDMMC 462 307 + #define HCLK_SDMMC_NOC 463 308 + #define HCLK_M_CRYPTO0 464 309 + #define HCLK_M_CRYPTO1 465 310 + #define HCLK_S_CRYPTO0 466 311 + #define HCLK_S_CRYPTO1 467 312 + #define HCLK_I2S0_8CH 468 313 + #define HCLK_I2S1_8CH 469 314 + #define HCLK_I2S2_8CH 470 315 + #define HCLK_SPDIF 471 316 + #define HCLK_VOP0_NOC 472 317 + #define HCLK_VOP0 473 318 + #define HCLK_VOP1_NOC 474 319 + #define HCLK_VOP1 475 320 + #define HCLK_ROM 476 321 + #define HCLK_IEP 477 322 + #define HCLK_IEP_NOC 478 323 + #define HCLK_ISP0 479 324 + #define HCLK_ISP1 480 325 + #define HCLK_ISP0_NOC 481 326 + #define HCLK_ISP1_NOC 482 327 + #define HCLK_ISP0_WRAPPER 483 328 + #define HCLK_ISP1_WRAPPER 484 329 + #define HCLK_RGA 485 330 + #define HCLK_RGA_NOC 486 331 + #define HCLK_HDCP 487 332 + #define HCLK_HDCP_NOC 488 333 + #define HCLK_HDCP22 489 334 + #define HCLK_VCODEC 490 335 + #define HCLK_VCODEC_NOC 491 336 + #define HCLK_VDU 492 337 + #define HCLK_VDU_NOC 493 338 + #define HCLK_SDIO 494 339 + #define HCLK_SDIO_NOC 495 340 + #define HCLK_SDIOAUDIO_NOC 496 341 + 342 + #define CLK_NR_CLKS (HCLK_SDIOAUDIO_NOC + 1) 343 + 344 + /* pmu-clocks indices */ 345 + 346 + #define PLL_PPLL 1 347 + 348 + #define SCLK_32K_SUSPEND_PMU 2 349 + #define SCLK_SPI3_PMU 3 350 + #define SCLK_TIMER12_PMU 4 351 + #define SCLK_TIMER13_PMU 5 352 + #define SCLK_UART4_PMU 6 353 + #define SCLK_PVTM_PMU 7 354 + #define SCLK_WIFI_PMU 8 355 + #define SCLK_I2C0_PMU 9 356 + #define SCLK_I2C4_PMU 10 357 + #define SCLK_I2C8_PMU 11 358 + 359 + #define PCLK_SRC_PMU 19 360 + #define PCLK_PMU 20 361 + #define PCLK_PMUGRF_PMU 21 362 + #define PCLK_INTMEM1_PMU 22 363 + #define PCLK_GPIO0_PMU 23 364 + #define PCLK_GPIO1_PMU 24 365 + #define PCLK_SGRF_PMU 25 366 + #define PCLK_NOC_PMU 26 367 + #define PCLK_I2C0_PMU 27 368 + #define PCLK_I2C4_PMU 28 369 + #define PCLK_I2C8_PMU 29 370 + #define PCLK_RKPWM_PMU 30 371 + #define PCLK_SPI3_PMU 31 372 + #define PCLK_TIMER_PMU 32 373 + #define PCLK_MAILBOX_PMU 33 374 + #define PCLK_UART4_PMU 34 375 + #define PCLK_WDT_M0_PMU 35 376 + 377 + #define FCLK_CM0S_SRC_PMU 44 378 + #define FCLK_CM0S_PMU 45 379 + #define SCLK_CM0S_PMU 46 380 + #define HCLK_CM0S_PMU 47 381 + #define DCLK_CM0S_PMU 48 382 + #define PCLK_INTR_ARB_PMU 49 383 + #define HCLK_NOC_PMU 50 384 + 385 + #define CLKPMU_NR_CLKS (HCLK_NOC_PMU + 1) 386 + 387 + /* soft-reset indices */ 388 + 389 + /* cru_softrst_con0 */ 390 + #define SRST_CORE_L0 0 391 + #define SRST_CORE_B0 1 392 + #define SRST_CORE_PO_L0 2 393 + #define SRST_CORE_PO_B0 3 394 + #define SRST_L2_L 4 395 + #define SRST_L2_B 5 396 + #define SRST_ADB_L 6 397 + #define SRST_ADB_B 7 398 + #define SRST_A_CCI 8 399 + #define SRST_A_CCIM0_NOC 9 400 + #define SRST_A_CCIM1_NOC 10 401 + #define SRST_DBG_NOC 11 402 + 403 + /* cru_softrst_con1 */ 404 + #define SRST_CORE_L0_T 16 405 + #define SRST_CORE_L1 17 406 + #define SRST_CORE_L2 18 407 + #define SRST_CORE_L3 19 408 + #define SRST_CORE_PO_L0_T 20 409 + #define SRST_CORE_PO_L1 21 410 + #define SRST_CORE_PO_L2 22 411 + #define SRST_CORE_PO_L3 23 412 + #define SRST_A_ADB400_GIC2COREL 24 413 + #define SRST_A_ADB400_COREL2GIC 25 414 + #define SRST_P_DBG_L 26 415 + #define SRST_L2_L_T 28 416 + #define SRST_ADB_L_T 29 417 + #define SRST_A_RKPERF_L 30 418 + #define SRST_PVTM_CORE_L 31 419 + 420 + /* cru_softrst_con2 */ 421 + #define SRST_CORE_B0_T 32 422 + #define SRST_CORE_B1 33 423 + #define SRST_CORE_PO_B0_T 36 424 + #define SRST_CORE_PO_B1 37 425 + #define SRST_A_ADB400_GIC2COREB 40 426 + #define SRST_A_ADB400_COREB2GIC 41 427 + #define SRST_P_DBG_B 42 428 + #define SRST_L2_B_T 43 429 + #define SRST_ADB_B_T 45 430 + #define SRST_A_RKPERF_B 46 431 + #define SRST_PVTM_CORE_B 47 432 + 433 + /* cru_softrst_con3 */ 434 + #define SRST_A_CCI_T 50 435 + #define SRST_A_CCIM0_NOC_T 51 436 + #define SRST_A_CCIM1_NOC_T 52 437 + #define SRST_A_ADB400M_PD_CORE_B_T 53 438 + #define SRST_A_ADB400M_PD_CORE_L_T 54 439 + #define SRST_DBG_NOC_T 55 440 + #define SRST_DBG_CXCS 56 441 + #define SRST_CCI_TRACE 57 442 + #define SRST_P_CCI_GRF 58 443 + 444 + /* cru_softrst_con4 */ 445 + #define SRST_A_CENTER_MAIN_NOC 64 446 + #define SRST_A_CENTER_PERI_NOC 65 447 + #define SRST_P_CENTER_MAIN 66 448 + #define SRST_P_DDRMON 67 449 + #define SRST_P_CIC 68 450 + #define SRST_P_CENTER_SGRF 69 451 + #define SRST_DDR0_MSCH 70 452 + #define SRST_DDRCFG0_MSCH 71 453 + #define SRST_DDR0 72 454 + #define SRST_DDRPHY0 73 455 + #define SRST_DDR1_MSCH 74 456 + #define SRST_DDRCFG1_MSCH 75 457 + #define SRST_DDR1 76 458 + #define SRST_DDRPHY1 77 459 + #define SRST_DDR_CIC 78 460 + #define SRST_PVTM_DDR 79 461 + 462 + /* cru_softrst_con5 */ 463 + #define SRST_A_VCODEC_NOC 80 464 + #define SRST_A_VCODEC 81 465 + #define SRST_H_VCODEC_NOC 82 466 + #define SRST_H_VCODEC 83 467 + #define SRST_A_VDU_NOC 88 468 + #define SRST_A_VDU 89 469 + #define SRST_H_VDU_NOC 90 470 + #define SRST_H_VDU 91 471 + #define SRST_VDU_CORE 92 472 + #define SRST_VDU_CA 93 473 + 474 + /* cru_softrst_con6 */ 475 + #define SRST_A_IEP_NOC 96 476 + #define SRST_A_VOP_IEP 97 477 + #define SRST_A_IEP 98 478 + #define SRST_H_IEP_NOC 99 479 + #define SRST_H_IEP 100 480 + #define SRST_A_RGA_NOC 102 481 + #define SRST_A_RGA 103 482 + #define SRST_H_RGA_NOC 104 483 + #define SRST_H_RGA 105 484 + #define SRST_RGA_CORE 106 485 + #define SRST_EMMC_NOC 108 486 + #define SRST_EMMC 109 487 + #define SRST_EMMC_GRF 110 488 + 489 + /* cru_softrst_con7 */ 490 + #define SRST_A_PERIHP_NOC 112 491 + #define SRST_P_PERIHP_GRF 113 492 + #define SRST_H_PERIHP_NOC 114 493 + #define SRST_USBHOST0 115 494 + #define SRST_HOSTC0_AUX 116 495 + #define SRST_HOST0_ARB 117 496 + #define SRST_USBHOST1 118 497 + #define SRST_HOSTC1_AUX 119 498 + #define SRST_HOST1_ARB 120 499 + #define SRST_SDIO0 121 500 + #define SRST_SDMMC 122 501 + #define SRST_HSIC 123 502 + #define SRST_HSIC_AUX 124 503 + #define SRST_AHB1TOM 125 504 + #define SRST_P_PERIHP_NOC 126 505 + #define SRST_HSICPHY 127 506 + 507 + /* cru_softrst_con8 */ 508 + #define SRST_A_PCIE 128 509 + #define SRST_P_PCIE 129 510 + #define SRST_PCIE_CORE 130 511 + #define SRST_PCIE_MGMT 131 512 + #define SRST_PCIE_MGMT_STICKY 132 513 + #define SRST_PCIE_PIPE 133 514 + #define SRST_PCIE_PM 134 515 + #define SRST_PCIEPHY 135 516 + #define SRST_A_GMAC_NOC 136 517 + #define SRST_A_GMAC 137 518 + #define SRST_P_GMAC_NOC 138 519 + #define SRST_P_GMAC_GRF 140 520 + #define SRST_HSICPHY_POR 142 521 + #define SRST_HSICPHY_UTMI 143 522 + 523 + /* cru_softrst_con9 */ 524 + #define SRST_USB2PHY0_POR 144 525 + #define SRST_USB2PHY0_UTMI_PORT0 145 526 + #define SRST_USB2PHY0_UTMI_PORT1 146 527 + #define SRST_USB2PHY0_EHCIPHY 147 528 + #define SRST_UPHY0_PIPE_L00 148 529 + #define SRST_UPHY0 149 530 + #define SRST_UPHY0_TCPDPWRUP 150 531 + #define SRST_USB2PHY1_POR 152 532 + #define SRST_USB2PHY1_UTMI_PORT0 153 533 + #define SRST_USB2PHY1_UTMI_PORT1 154 534 + #define SRST_USB2PHY1_EHCIPHY 155 535 + #define SRST_UPHY1_PIPE_L00 156 536 + #define SRST_UPHY1 157 537 + #define SRST_UPHY1_TCPDPWRUP 158 538 + 539 + /* cru_softrst_con10 */ 540 + #define SRST_A_PERILP0_NOC 160 541 + #define SRST_A_DCF 161 542 + #define SRST_GIC500 162 543 + #define SRST_DMAC0_PERILP0 163 544 + #define SRST_DMAC1_PERILP0 164 545 + #define SRST_TZMA 165 546 + #define SRST_INTMEM 166 547 + #define SRST_ADB400_MST0 167 548 + #define SRST_ADB400_MST1 168 549 + #define SRST_ADB400_SLV0 169 550 + #define SRST_ADB400_SLV1 170 551 + #define SRST_H_PERILP0 171 552 + #define SRST_H_PERILP0_NOC 172 553 + #define SRST_ROM 173 554 + #define SRST_CRYPTO_S 174 555 + #define SRST_CRYPTO_M 175 556 + 557 + /* cru_softrst_con11 */ 558 + #define SRST_P_DCF 176 559 + #define SRST_CM0S_NOC 177 560 + #define SRST_CM0S 178 561 + #define SRST_CM0S_DBG 179 562 + #define SRST_CM0S_PO 180 563 + #define SRST_CRYPTO 181 564 + #define SRST_P_PERILP1_SGRF 182 565 + #define SRST_P_PERILP1_GRF 183 566 + #define SRST_CRYPTO1_S 184 567 + #define SRST_CRYPTO1_M 185 568 + #define SRST_CRYPTO1 186 569 + #define SRST_GIC_NOC 188 570 + #define SRST_SD_NOC 189 571 + #define SRST_SDIOAUDIO_BRG 190 572 + 573 + /* cru_softrst_con12 */ 574 + #define SRST_H_PERILP1 192 575 + #define SRST_H_PERILP1_NOC 193 576 + #define SRST_H_I2S0_8CH 194 577 + #define SRST_H_I2S1_8CH 195 578 + #define SRST_H_I2S2_8CH 196 579 + #define SRST_H_SPDIF_8CH 197 580 + #define SRST_P_PERILP1_NOC 198 581 + #define SRST_P_EFUSE_1024 199 582 + #define SRST_P_EFUSE_1024S 200 583 + #define SRST_P_I2C0 201 584 + #define SRST_P_I2C1 202 585 + #define SRST_P_I2C2 203 586 + #define SRST_P_I2C3 204 587 + #define SRST_P_I2C4 205 588 + #define SRST_P_I2C5 206 589 + #define SRST_P_MAILBOX0 207 590 + 591 + /* cru_softrst_con13 */ 592 + #define SRST_P_UART0 208 593 + #define SRST_P_UART1 209 594 + #define SRST_P_UART2 210 595 + #define SRST_P_UART3 211 596 + #define SRST_P_SARADC 212 597 + #define SRST_P_TSADC 213 598 + #define SRST_P_SPI0 214 599 + #define SRST_P_SPI1 215 600 + #define SRST_P_SPI2 216 601 + #define SRST_P_SPI3 217 602 + #define SRST_P_SPI4 218 603 + #define SRST_SPI0 219 604 + #define SRST_SPI1 220 605 + #define SRST_SPI2 221 606 + #define SRST_SPI3 222 607 + #define SRST_SPI4 223 608 + 609 + /* cru_softrst_con14 */ 610 + #define SRST_I2S0_8CH 224 611 + #define SRST_I2S1_8CH 225 612 + #define SRST_I2S2_8CH 226 613 + #define SRST_SPDIF_8CH 227 614 + #define SRST_UART0 228 615 + #define SRST_UART1 229 616 + #define SRST_UART2 230 617 + #define SRST_UART3 231 618 + #define SRST_TSADC 232 619 + #define SRST_I2C0 233 620 + #define SRST_I2C1 234 621 + #define SRST_I2C2 235 622 + #define SRST_I2C3 236 623 + #define SRST_I2C4 237 624 + #define SRST_I2C5 238 625 + #define SRST_SDIOAUDIO_NOC 239 626 + 627 + /* cru_softrst_con15 */ 628 + #define SRST_A_VIO_NOC 240 629 + #define SRST_A_HDCP_NOC 241 630 + #define SRST_A_HDCP 242 631 + #define SRST_H_HDCP_NOC 243 632 + #define SRST_H_HDCP 244 633 + #define SRST_P_HDCP_NOC 245 634 + #define SRST_P_HDCP 246 635 + #define SRST_P_HDMI_CTRL 247 636 + #define SRST_P_DP_CTRL 248 637 + #define SRST_S_DP_CTRL 249 638 + #define SRST_C_DP_CTRL 250 639 + #define SRST_P_MIPI_DSI0 251 640 + #define SRST_P_MIPI_DSI1 252 641 + #define SRST_DP_CORE 253 642 + #define SRST_DP_I2S 254 643 + 644 + /* cru_softrst_con16 */ 645 + #define SRST_GASKET 256 646 + #define SRST_VIO_GRF 258 647 + #define SRST_DPTX_SPDIF_REC 259 648 + #define SRST_HDMI_CTRL 260 649 + #define SRST_HDCP_CTRL 261 650 + #define SRST_A_ISP0_NOC 262 651 + #define SRST_A_ISP1_NOC 263 652 + #define SRST_H_ISP0_NOC 266 653 + #define SRST_H_ISP1_NOC 267 654 + #define SRST_H_ISP0 268 655 + #define SRST_H_ISP1 269 656 + #define SRST_ISP0 270 657 + #define SRST_ISP1 271 658 + 659 + /* cru_softrst_con17 */ 660 + #define SRST_A_VOP0_NOC 272 661 + #define SRST_A_VOP1_NOC 273 662 + #define SRST_A_VOP0 274 663 + #define SRST_A_VOP1 275 664 + #define SRST_H_VOP0_NOC 276 665 + #define SRST_H_VOP1_NOC 277 666 + #define SRST_H_VOP0 278 667 + #define SRST_H_VOP1 279 668 + #define SRST_D_VOP0 280 669 + #define SRST_D_VOP1 281 670 + #define SRST_VOP0_PWM 282 671 + #define SRST_VOP1_PWM 283 672 + #define SRST_P_EDP_NOC 284 673 + #define SRST_P_EDP_CTRL 285 674 + 675 + /* cru_softrst_con18 */ 676 + #define SRST_A_GPU 288 677 + #define SRST_A_GPU_NOC 289 678 + #define SRST_A_GPU_GRF 290 679 + #define SRST_PVTM_GPU 291 680 + #define SRST_A_USB3_NOC 292 681 + #define SRST_A_USB3_OTG0 293 682 + #define SRST_A_USB3_OTG1 294 683 + #define SRST_A_USB3_GRF 295 684 + #define SRST_PMU 296 685 + 686 + /* cru_softrst_con19 */ 687 + #define SRST_P_TIMER0_5 304 688 + #define SRST_TIMER0 305 689 + #define SRST_TIMER1 306 690 + #define SRST_TIMER2 307 691 + #define SRST_TIMER3 308 692 + #define SRST_TIMER4 309 693 + #define SRST_TIMER5 310 694 + #define SRST_P_TIMER6_11 311 695 + #define SRST_TIMER6 312 696 + #define SRST_TIMER7 313 697 + #define SRST_TIMER8 314 698 + #define SRST_TIMER9 315 699 + #define SRST_TIMER10 316 700 + #define SRST_TIMER11 317 701 + #define SRST_P_INTR_ARB_PMU 318 702 + #define SRST_P_ALIVE_SGRF 319 703 + 704 + /* cru_softrst_con20 */ 705 + #define SRST_P_GPIO2 320 706 + #define SRST_P_GPIO3 321 707 + #define SRST_P_GPIO4 322 708 + #define SRST_P_GRF 323 709 + #define SRST_P_ALIVE_NOC 324 710 + #define SRST_P_WDT0 325 711 + #define SRST_P_WDT1 326 712 + #define SRST_P_INTR_ARB 327 713 + #define SRST_P_UPHY0_DPTX 328 714 + #define SRST_P_UPHY0_APB 330 715 + #define SRST_P_UPHY0_TCPHY 332 716 + #define SRST_P_UPHY1_TCPHY 333 717 + #define SRST_P_UPHY0_TCPDCTRL 334 718 + #define SRST_P_UPHY1_TCPDCTRL 335 719 + 720 + /* pmu soft-reset indices */ 721 + 722 + /* pmu_cru_softrst_con0 */ 723 + #define SRST_P_NOC 0 724 + #define SRST_P_INTMEM 1 725 + #define SRST_H_CM0S 2 726 + #define SRST_H_CM0S_NOC 3 727 + #define SRST_DBG_CM0S 4 728 + #define SRST_PO_CM0S 5 729 + #define SRST_P_SPI6 6 730 + #define SRST_SPI6 7 731 + #define SRST_P_TIMER_0_1 8 732 + #define SRST_P_TIMER_0 9 733 + #define SRST_P_TIMER_1 10 734 + #define SRST_P_UART4 11 735 + #define SRST_UART4 12 736 + #define SRST_P_WDT 13 737 + 738 + /* pmu_cru_softrst_con1 */ 739 + #define SRST_P_I2C6 16 740 + #define SRST_P_I2C7 17 741 + #define SRST_P_I2C8 18 742 + #define SRST_P_MAILBOX 19 743 + #define SRST_P_RKPWM 20 744 + #define SRST_P_PMUGRF 21 745 + #define SRST_P_SGRF 22 746 + #define SRST_P_GPIO0 23 747 + #define SRST_P_GPIO1 24 748 + #define SRST_P_CRU 25 749 + #define SRST_P_INTR 26 750 + #define SRST_PVTM 27 751 + #define SRST_I2C6 28 752 + #define SRST_I2C7 29 753 + #define SRST_I2C8 30 754 + 755 + #endif
+34 -34
include/dt-bindings/gpio/tegra-gpio.h
··· 12 12 13 13 #include <dt-bindings/gpio/gpio.h> 14 14 15 - #define TEGRA_GPIO_BANK_ID_A 0 16 - #define TEGRA_GPIO_BANK_ID_B 1 17 - #define TEGRA_GPIO_BANK_ID_C 2 18 - #define TEGRA_GPIO_BANK_ID_D 3 19 - #define TEGRA_GPIO_BANK_ID_E 4 20 - #define TEGRA_GPIO_BANK_ID_F 5 21 - #define TEGRA_GPIO_BANK_ID_G 6 22 - #define TEGRA_GPIO_BANK_ID_H 7 23 - #define TEGRA_GPIO_BANK_ID_I 8 24 - #define TEGRA_GPIO_BANK_ID_J 9 25 - #define TEGRA_GPIO_BANK_ID_K 10 26 - #define TEGRA_GPIO_BANK_ID_L 11 27 - #define TEGRA_GPIO_BANK_ID_M 12 28 - #define TEGRA_GPIO_BANK_ID_N 13 29 - #define TEGRA_GPIO_BANK_ID_O 14 30 - #define TEGRA_GPIO_BANK_ID_P 15 31 - #define TEGRA_GPIO_BANK_ID_Q 16 32 - #define TEGRA_GPIO_BANK_ID_R 17 33 - #define TEGRA_GPIO_BANK_ID_S 18 34 - #define TEGRA_GPIO_BANK_ID_T 19 35 - #define TEGRA_GPIO_BANK_ID_U 20 36 - #define TEGRA_GPIO_BANK_ID_V 21 37 - #define TEGRA_GPIO_BANK_ID_W 22 38 - #define TEGRA_GPIO_BANK_ID_X 23 39 - #define TEGRA_GPIO_BANK_ID_Y 24 40 - #define TEGRA_GPIO_BANK_ID_Z 25 41 - #define TEGRA_GPIO_BANK_ID_AA 26 42 - #define TEGRA_GPIO_BANK_ID_BB 27 43 - #define TEGRA_GPIO_BANK_ID_CC 28 44 - #define TEGRA_GPIO_BANK_ID_DD 29 45 - #define TEGRA_GPIO_BANK_ID_EE 30 46 - #define TEGRA_GPIO_BANK_ID_FF 31 15 + #define TEGRA_GPIO_PORT_A 0 16 + #define TEGRA_GPIO_PORT_B 1 17 + #define TEGRA_GPIO_PORT_C 2 18 + #define TEGRA_GPIO_PORT_D 3 19 + #define TEGRA_GPIO_PORT_E 4 20 + #define TEGRA_GPIO_PORT_F 5 21 + #define TEGRA_GPIO_PORT_G 6 22 + #define TEGRA_GPIO_PORT_H 7 23 + #define TEGRA_GPIO_PORT_I 8 24 + #define TEGRA_GPIO_PORT_J 9 25 + #define TEGRA_GPIO_PORT_K 10 26 + #define TEGRA_GPIO_PORT_L 11 27 + #define TEGRA_GPIO_PORT_M 12 28 + #define TEGRA_GPIO_PORT_N 13 29 + #define TEGRA_GPIO_PORT_O 14 30 + #define TEGRA_GPIO_PORT_P 15 31 + #define TEGRA_GPIO_PORT_Q 16 32 + #define TEGRA_GPIO_PORT_R 17 33 + #define TEGRA_GPIO_PORT_S 18 34 + #define TEGRA_GPIO_PORT_T 19 35 + #define TEGRA_GPIO_PORT_U 20 36 + #define TEGRA_GPIO_PORT_V 21 37 + #define TEGRA_GPIO_PORT_W 22 38 + #define TEGRA_GPIO_PORT_X 23 39 + #define TEGRA_GPIO_PORT_Y 24 40 + #define TEGRA_GPIO_PORT_Z 25 41 + #define TEGRA_GPIO_PORT_AA 26 42 + #define TEGRA_GPIO_PORT_BB 27 43 + #define TEGRA_GPIO_PORT_CC 28 44 + #define TEGRA_GPIO_PORT_DD 29 45 + #define TEGRA_GPIO_PORT_EE 30 46 + #define TEGRA_GPIO_PORT_FF 31 47 47 48 - #define TEGRA_GPIO(bank, offset) \ 49 - ((TEGRA_GPIO_BANK_ID_##bank * 8) + offset) 48 + #define TEGRA_GPIO(port, offset) \ 49 + ((TEGRA_GPIO_PORT_##port * 8) + offset) 50 50 51 51 #endif
+56
include/dt-bindings/gpio/tegra186-gpio.h
··· 1 + /* 2 + * This header provides constants for binding nvidia,tegra186-gpio*. 3 + * 4 + * The first cell in Tegra's GPIO specifier is the GPIO ID. The macros below 5 + * provide names for this. 6 + * 7 + * The second cell contains standard flag values specified in gpio.h. 8 + */ 9 + 10 + #ifndef _DT_BINDINGS_GPIO_TEGRA_GPIO_H 11 + #define _DT_BINDINGS_GPIO_TEGRA_GPIO_H 12 + 13 + #include <dt-bindings/gpio/gpio.h> 14 + 15 + /* GPIOs implemented by main GPIO controller */ 16 + #define TEGRA_MAIN_GPIO_PORT_A 0 17 + #define TEGRA_MAIN_GPIO_PORT_B 1 18 + #define TEGRA_MAIN_GPIO_PORT_C 2 19 + #define TEGRA_MAIN_GPIO_PORT_D 3 20 + #define TEGRA_MAIN_GPIO_PORT_E 4 21 + #define TEGRA_MAIN_GPIO_PORT_F 5 22 + #define TEGRA_MAIN_GPIO_PORT_G 6 23 + #define TEGRA_MAIN_GPIO_PORT_H 7 24 + #define TEGRA_MAIN_GPIO_PORT_I 8 25 + #define TEGRA_MAIN_GPIO_PORT_J 9 26 + #define TEGRA_MAIN_GPIO_PORT_K 10 27 + #define TEGRA_MAIN_GPIO_PORT_L 11 28 + #define TEGRA_MAIN_GPIO_PORT_M 12 29 + #define TEGRA_MAIN_GPIO_PORT_N 13 30 + #define TEGRA_MAIN_GPIO_PORT_O 14 31 + #define TEGRA_MAIN_GPIO_PORT_P 15 32 + #define TEGRA_MAIN_GPIO_PORT_Q 16 33 + #define TEGRA_MAIN_GPIO_PORT_R 17 34 + #define TEGRA_MAIN_GPIO_PORT_T 18 35 + #define TEGRA_MAIN_GPIO_PORT_X 19 36 + #define TEGRA_MAIN_GPIO_PORT_Y 20 37 + #define TEGRA_MAIN_GPIO_PORT_BB 21 38 + #define TEGRA_MAIN_GPIO_PORT_CC 22 39 + 40 + #define TEGRA_MAIN_GPIO(port, offset) \ 41 + ((TEGRA_MAIN_GPIO_PORT_##port * 8) + offset) 42 + 43 + /* GPIOs implemented by AON GPIO controller */ 44 + #define TEGRA_AON_GPIO_PORT_S 0 45 + #define TEGRA_AON_GPIO_PORT_U 1 46 + #define TEGRA_AON_GPIO_PORT_V 2 47 + #define TEGRA_AON_GPIO_PORT_W 3 48 + #define TEGRA_AON_GPIO_PORT_Z 4 49 + #define TEGRA_AON_GPIO_PORT_AA 5 50 + #define TEGRA_AON_GPIO_PORT_EE 6 51 + #define TEGRA_AON_GPIO_PORT_FF 7 52 + 53 + #define TEGRA_AON_GPIO(port, offset) \ 54 + ((TEGRA_AON_GPIO_PORT_##port * 8) + offset) 55 + 56 + #endif
+59
include/dt-bindings/pinctrl/hisi.h
··· 1 + /* 2 + * This header provides constants for hisilicon pinctrl bindings. 3 + * 4 + * Copyright (c) 2015 Hisilicon Limited. 5 + * Copyright (c) 2015 Linaro Limited. 6 + * 7 + * This program is free software; you can redistribute it and/or modify 8 + * it under the terms of the GNU General Public License version 2 as 9 + * published by the Free Software Foundation. 10 + * 11 + * This program is distributed "as is" WITHOUT ANY WARRANTY of any 12 + * kind, whether express or implied; without even the implied warranty 13 + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 + * GNU General Public License for more details. 15 + */ 16 + 17 + #ifndef _DT_BINDINGS_PINCTRL_HISI_H 18 + #define _DT_BINDINGS_PINCTRL_HISI_H 19 + 20 + /* iomg bit definition */ 21 + #define MUX_M0 0 22 + #define MUX_M1 1 23 + #define MUX_M2 2 24 + #define MUX_M3 3 25 + #define MUX_M4 4 26 + #define MUX_M5 5 27 + #define MUX_M6 6 28 + #define MUX_M7 7 29 + 30 + /* iocg bit definition */ 31 + #define PULL_MASK (3) 32 + #define PULL_DIS (0) 33 + #define PULL_UP (1 << 0) 34 + #define PULL_DOWN (1 << 1) 35 + 36 + /* drive strength definition */ 37 + #define DRIVE_MASK (7 << 4) 38 + #define DRIVE1_02MA (0 << 4) 39 + #define DRIVE1_04MA (1 << 4) 40 + #define DRIVE1_08MA (2 << 4) 41 + #define DRIVE1_10MA (3 << 4) 42 + #define DRIVE2_02MA (0 << 4) 43 + #define DRIVE2_04MA (1 << 4) 44 + #define DRIVE2_08MA (2 << 4) 45 + #define DRIVE2_10MA (3 << 4) 46 + #define DRIVE3_04MA (0 << 4) 47 + #define DRIVE3_08MA (1 << 4) 48 + #define DRIVE3_12MA (2 << 4) 49 + #define DRIVE3_16MA (3 << 4) 50 + #define DRIVE3_20MA (4 << 4) 51 + #define DRIVE3_24MA (5 << 4) 52 + #define DRIVE3_32MA (6 << 4) 53 + #define DRIVE3_40MA (7 << 4) 54 + #define DRIVE4_02MA (0 << 4) 55 + #define DRIVE4_04MA (2 << 4) 56 + #define DRIVE4_08MA (4 << 4) 57 + #define DRIVE4_10MA (6 << 4) 58 + 59 + #endif