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:
"Device-tree updates for arm64 platforms. For the first time I can
remember, this is actually larger than the corresponding branch for
32-bit platforms overall, though that has more individual changes.

A significant portion this time is due to added machine support:

- Initial support for the Realtek RTD1295 SoC, along with the Zidoo
X9S set-top-box

- Initial support for Actions Semi S900 and the Bubblegum-96
single-board-cёmputer.

- Rockchips support for the rk3399-Firefly single-board-computer gets
added, this one stands out for being relatively fast, affordable
and well₋supported, compared to many boards that only fall into one
or two of the above categories.

- Mediatek gains support for the mt6797 mobile-phone SoC platform and
corresponding evaluation board.

- Amlogic board support gets added for the NanoPi K2 and S905x
LibreTech CC single-board computers and the R-Box Pro set-top-box

- Allwinner board support gets added for the OrangePi Win, Orangepi
Zero Plus 2, NanoPi NEO2 and Orange Pi Prime single board computers
and the SoPine system-on-module.

- Renesas board support for Salvator-XS and H3ULCB automotive
development systems.

- Socionext Uniphier board support for LD11-global and LD20-global,
whatever those may be.

- Broadcom adds support for the new Stingray communication processor
in its iProc family, along with two reference boards.

Other updates include:

- For the hisicon platform, support for Hi3660-Hikey960 gets extended
significantly.

- Lots of smaller updates for Renesas, Amlogic, Rockchip, UniPhier,
Broadcom, Allwinner, Hisilicon, Qualcomm, Marvell, and NXP"

* tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (243 commits)
ARM64: dts: marvell: armada37xx: Fix timer interrupt specifiers
Revert "arm64: dts: marvell: add dma-mask in crypto nodes for 7k/8k"
arm64: dts: mediatek: don't include missing file
ARM64: dts: meson-gxl: Add Libre Technology CC support
dt-bindings: arm: amlogic: Add Libre Technology CC board
dt-bindings: add Libre Technology vendor prefix
arm64: dts: marvell: enable GICP and ICU on Armada 7K/8K
arm64: dts: zte: Use - instead of @ for DT OPP entries
arm64: dts: marvell: add gpio support for Armada 7K/8K
arm64: dts: marvell: add pinctrl support for Armada 7K/8K
arm64: dts: marvell: use new binding for the system controller on cp110
arm64: dts: marvell: remove *-clock-output-names on cp110
arm64: dts: marvell: use new bindings for xor clocks on ap806
arm64: dts: marvell: mcbin: enable the mdio node
arm64: dts: Add Actions Semi S900 and Bubblegum-96
dt-bindings: Add vendor prefix for uCRobotics
arm64: dts: marvell: add xmdio nodes for 7k/8k
arm64: dts: marvell: add a comment on the cp110 slave node status
arm64: dts: marvell: remove cpm crypto nodes from dts files
arm64: dts: marvell: cp110: enable the crypto engine at the SoC level
...

+11444 -2380
+16 -7
Documentation/devicetree/bindings/arm/amlogic.txt
··· 29 29 Required root node property: 30 30 compatible: "amlogic,s912", "amlogic,meson-gxm"; 31 31 32 - Board compatible values: 32 + Board compatible values (alphabetically, grouped by SoC): 33 + 33 34 - "geniatech,atv1200" (Meson6) 35 + 34 36 - "minix,neo-x8" (Meson8) 35 - - "tronfy,mxq" (Meson8b) 37 + 36 38 - "hardkernel,odroid-c1" (Meson8b) 39 + - "tronfy,mxq" (Meson8b) 40 + 41 + - "amlogic,p200" (Meson gxbb) 42 + - "amlogic,p201" (Meson gxbb) 43 + - "friendlyarm,nanopi-k2" (Meson gxbb) 44 + - "hardkernel,odroid-c2" (Meson gxbb) 45 + - "nexbox,a95x" (Meson gxbb or Meson gxl s905x) 37 46 - "tronsmart,vega-s95-pro", "tronsmart,vega-s95" (Meson gxbb) 38 47 - "tronsmart,vega-s95-meta", "tronsmart,vega-s95" (Meson gxbb) 39 48 - "tronsmart,vega-s95-telos", "tronsmart,vega-s95" (Meson gxbb) 40 - - "hardkernel,odroid-c2" (Meson gxbb) 41 - - "amlogic,p200" (Meson gxbb) 42 - - "amlogic,p201" (Meson gxbb) 43 49 - "wetek,hub" (Meson gxbb) 44 50 - "wetek,play2" (Meson gxbb) 51 + 45 52 - "amlogic,p212" (Meson gxl s905x) 53 + - "hwacom,amazetv" (Meson gxl s905x) 46 54 - "khadas,vim" (Meson gxl s905x) 55 + - "libretech,cc" (Meson gxl s905x) 47 56 48 57 - "amlogic,p230" (Meson gxl s905d) 49 58 - "amlogic,p231" (Meson gxl s905d) 50 - - "hwacom,amazetv" (Meson gxl s905x) 59 + 51 60 - "amlogic,q200" (Meson gxm s912) 52 61 - "amlogic,q201" (Meson gxm s912) 53 - - "nexbox,a95x" (Meson gxbb or Meson gxl s905x) 62 + - "kingnovel,r-box-pro" (Meson gxm S912) 54 63 - "nexbox,a1" (Meson gxm s912)
+12
Documentation/devicetree/bindings/arm/bcm/brcm,stingray.txt
··· 1 + Broadcom Stingray device tree bindings 2 + ------------------------------------------------ 3 + 4 + Boards with Stingray shall have the following properties: 5 + 6 + Required root node property: 7 + 8 + Stingray Combo SVK board 9 + compatible = "brcm,bcm958742k", "brcm,stingray"; 10 + 11 + Stingray SST100 board 12 + compatible = "brcm,bcm958742t", "brcm,stingray";
+4
Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
··· 4 4 Required root node properties: 5 5 - compatible = "hisilicon,hi3660"; 6 6 7 + HiKey960 Board 8 + Required root node properties: 9 + - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660"; 10 + 7 11 Hi3798cv200 SoC 8 12 Required root node properties: 9 13 - compatible = "hisilicon,hi3798cv200";
+8
Documentation/devicetree/bindings/arm/mediatek.txt
··· 12 12 "mediatek,mt6592" 13 13 "mediatek,mt6755" 14 14 "mediatek,mt6795" 15 + "mediatek,mt6797" 16 + "mediatek,mt7622" 15 17 "mediatek,mt7623" 16 18 "mediatek,mt8127" 17 19 "mediatek,mt8135" ··· 40 38 - Evaluation board for MT6795(Helio X10): 41 39 Required root node properties: 42 40 - compatible = "mediatek,mt6795-evb", "mediatek,mt6795"; 41 + - Evaluation board for MT6797(Helio X20): 42 + Required root node properties: 43 + - compatible = "mediatek,mt6797-evb", "mediatek,mt6797"; 44 + - Reference board variant 1 for MT7622: 45 + Required root node properties: 46 + - compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622"; 43 47 - Evaluation board for MT7623: 44 48 Required root node properties: 45 49 - compatible = "mediatek,mt7623-evb", "mediatek,mt7623";
+20
Documentation/devicetree/bindings/arm/realtek.txt
··· 1 + Realtek platforms device tree bindings 2 + -------------------------------------- 3 + 4 + 5 + RTD1295 SoC 6 + =========== 7 + 8 + Required root node properties: 9 + 10 + - compatible : must contain "realtek,rtd1295" 11 + 12 + 13 + Root node property compatible must contain, depending on board: 14 + 15 + - Zidoo X9S: "zidoo,x9s" 16 + 17 + 18 + Example: 19 + 20 + compatible = "zidoo,x9s", "realtek,rtd1295";
+4
Documentation/devicetree/bindings/arm/rockchip.txt
··· 42 42 Required root node properties: 43 43 - compatible = "firefly,firefly-rk3288-reload", "rockchip,rk3288"; 44 44 45 + - Firefly Firefly-RK3399 board: 46 + Required root node properties: 47 + - compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; 48 + 45 49 - ChipSPARK PopMetal-RK3288 board: 46 50 Required root node properties: 47 51 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
+1 -1
Documentation/devicetree/bindings/ata/ahci-fsl-qoriq.txt
··· 3 3 Required properties: 4 4 - reg: Physical base address and size of the controller's register area. 5 5 - compatible: Compatibility string. Must be 'fsl,<chip>-ahci', where 6 - chip could be ls1021a, ls1043a, ls1046a, ls2080a etc. 6 + chip could be ls1021a, ls1043a, ls1046a, ls1088a, ls2080a etc. 7 7 - clocks: Input clock specifier. Refer to common clock bindings. 8 8 - interrupts: Interrupt specifier. Refer to interrupt binding. 9 9
+76
Documentation/devicetree/bindings/clock/brcm,iproc-clocks.txt
··· 219 219 -------- 220 220 PLL and leaf clock compatible strings for BCM63138 are: 221 221 "brcm,bcm63138-armpll" 222 + 223 + Stingray 224 + ----------- 225 + PLL and leaf clock compatible strings for Stingray are: 226 + "brcm,sr-genpll0" 227 + "brcm,sr-genpll1" 228 + "brcm,sr-genpll2" 229 + "brcm,sr-genpll3" 230 + "brcm,sr-genpll4" 231 + "brcm,sr-genpll5" 232 + "brcm,sr-genpll6" 233 + 234 + "brcm,sr-lcpll0" 235 + "brcm,sr-lcpll1" 236 + "brcm,sr-lcpll-pcie" 237 + 238 + 239 + The following table defines the set of PLL/clock index and ID for Stingray. 240 + These clock IDs are defined in: 241 + "include/dt-bindings/clock/bcm-sr.h" 242 + 243 + Clock Source Index ID 244 + --- ----- ----- --------- 245 + crystal N/A N/A N/A 246 + crmu_ref25m crystal N/A N/A 247 + 248 + genpll0 crystal 0 BCM_SR_GENPLL0 249 + clk_125m genpll0 1 BCM_SR_GENPLL0_125M_CLK 250 + clk_scr genpll0 2 BCM_SR_GENPLL0_SCR_CLK 251 + clk_250 genpll0 3 BCM_SR_GENPLL0_250M_CLK 252 + clk_pcie_axi genpll0 4 BCM_SR_GENPLL0_PCIE_AXI_CLK 253 + clk_paxc_axi_x2 genpll0 5 BCM_SR_GENPLL0_PAXC_AXI_X2_CLK 254 + clk_paxc_axi genpll0 6 BCM_SR_GENPLL0_PAXC_AXI_CLK 255 + 256 + genpll1 crystal 0 BCM_SR_GENPLL1 257 + clk_pcie_tl genpll1 1 BCM_SR_GENPLL1_PCIE_TL_CLK 258 + clk_mhb_apb genpll1 2 BCM_SR_GENPLL1_MHB_APB_CLK 259 + 260 + genpll2 crystal 0 BCM_SR_GENPLL2 261 + clk_nic genpll2 1 BCM_SR_GENPLL2_NIC_CLK 262 + clk_ts_500_ref genpll2 2 BCM_SR_GENPLL2_TS_500_REF_CLK 263 + clk_125_nitro genpll2 3 BCM_SR_GENPLL2_125_NITRO_CLK 264 + clk_chimp genpll2 4 BCM_SR_GENPLL2_CHIMP_CLK 265 + clk_nic_flash genpll2 5 BCM_SR_GENPLL2_NIC_FLASH 266 + 267 + genpll3 crystal 0 BCM_SR_GENPLL3 268 + clk_hsls genpll3 1 BCM_SR_GENPLL3_HSLS_CLK 269 + clk_sdio genpll3 2 BCM_SR_GENPLL3_SDIO_CLK 270 + 271 + genpll4 crystal 0 BCM_SR_GENPLL4 272 + ccn genpll4 1 BCM_SR_GENPLL4_CCN_CLK 273 + clk_tpiu_pll genpll4 2 BCM_SR_GENPLL4_TPIU_PLL_CLK 274 + noc_clk genpll4 3 BCM_SR_GENPLL4_NOC_CLK 275 + clk_chclk_fs4 genpll4 4 BCM_SR_GENPLL4_CHCLK_FS4_CLK 276 + clk_bridge_fscpu genpll4 5 BCM_SR_GENPLL4_BRIDGE_FSCPU_CLK 277 + 278 + 279 + genpll5 crystal 0 BCM_SR_GENPLL5 280 + fs4_hf_clk genpll5 1 BCM_SR_GENPLL5_FS4_HF_CLK 281 + crypto_ae_clk genpll5 2 BCM_SR_GENPLL5_CRYPTO_AE_CLK 282 + raid_ae_clk genpll5 3 BCM_SR_GENPLL5_RAID_AE_CLK 283 + 284 + genpll6 crystal 0 BCM_SR_GENPLL6 285 + 48_usb genpll6 1 BCM_SR_GENPLL6_48_USB_CLK 286 + 287 + lcpll0 crystal 0 BCM_SR_LCPLL0 288 + clk_sata_refp lcpll0 1 BCM_SR_LCPLL0_SATA_REFP_CLK 289 + clk_sata_refn lcpll0 2 BCM_SR_LCPLL0_SATA_REFN_CLK 290 + clk_usb_ref lcpll0 3 BCM_SR_LCPLL0_USB_REF_CLK 291 + sata_refpn lcpll0 3 BCM_SR_LCPLL0_SATA_REFPN_CLK 292 + 293 + lcpll1 crystal 0 BCM_SR_LCPLL1 294 + wan lcpll1 1 BCM_SR_LCPLL0_WAN_CLK 295 + 296 + lcpll_pcie crystal 0 BCM_SR_LCPLL_PCIE 297 + pcie_phy_ref lcpll1 1 BCM_SR_LCPLL_PCIE_PHY_REF_CLK
+5 -5
Documentation/devicetree/bindings/i2c/i2c-mt6577.txt Documentation/devicetree/bindings/i2c/i2c-mtk.txt
··· 4 4 5 5 Required properties: 6 6 - compatible: value should be either of the following. 7 - (a) "mediatek,mt6577-i2c", for i2c compatible with mt6577 i2c. 8 - (b) "mediatek,mt6589-i2c", for i2c compatible with mt6589 i2c. 9 - (c) "mediatek,mt8127-i2c", for i2c compatible with mt8127 i2c. 10 - (d) "mediatek,mt8135-i2c", for i2c compatible with mt8135 i2c. 11 - (e) "mediatek,mt8173-i2c", for i2c compatible with mt8173 i2c. 7 + "mediatek,mt2701-i2c", "mediatek,mt6577-i2c": for Mediatek mt2701 8 + "mediatek,mt6577-i2c": for i2c compatible with mt6577. 9 + "mediatek,mt6589-i2c": for i2c compatible with mt6589. 10 + "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for i2c compatible with mt7623. 11 + "mediatek,mt8173-i2c": for i2c compatible with mt8173. 12 12 - reg: physical base address of the controller and dma base, length of memory 13 13 mapped region. 14 14 - interrupts: interrupt number to the cpu.
+15 -13
Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt
··· 1 - +Mediatek 65xx/67xx/81xx sysirq 1 + +Mediatek MT65xx/MT67xx/MT81xx sysirq 2 2 3 3 Mediatek SOCs sysirq support controllable irq inverter for each GIC SPI 4 4 interrupt. 5 5 6 6 Required properties: 7 - - compatible: should be one of: 8 - "mediatek,mt8173-sysirq" 9 - "mediatek,mt8135-sysirq" 10 - "mediatek,mt8127-sysirq" 11 - "mediatek,mt6795-sysirq" 12 - "mediatek,mt6755-sysirq" 13 - "mediatek,mt6592-sysirq" 14 - "mediatek,mt6589-sysirq" 15 - "mediatek,mt6582-sysirq" 16 - "mediatek,mt6580-sysirq" 17 - "mediatek,mt6577-sysirq" 18 - "mediatek,mt2701-sysirq" 7 + - compatible: should be 8 + "mediatek,mt8173-sysirq", "mediatek,mt6577-sysirq": for MT8173 9 + "mediatek,mt8135-sysirq", "mediatek,mt6577-sysirq": for MT8135 10 + "mediatek,mt8127-sysirq", "mediatek,mt6577-sysirq": for MT8127 11 + "mediatek,mt7622-sysirq", "mediatek,mt6577-sysirq": for MT7622 12 + "mediatek,mt6795-sysirq", "mediatek,mt6577-sysirq": for MT6795 13 + "mediatek,mt6797-sysirq", "mediatek,mt6577-sysirq": for MT6797 14 + "mediatek,mt6755-sysirq", "mediatek,mt6577-sysirq": for MT6755 15 + "mediatek,mt6592-sysirq", "mediatek,mt6577-sysirq": for MT6592 16 + "mediatek,mt6589-sysirq", "mediatek,mt6577-sysirq": for MT6589 17 + "mediatek,mt6582-sysirq", "mediatek,mt6577-sysirq": for MT6582 18 + "mediatek,mt6580-sysirq", "mediatek,mt6577-sysirq": for MT6580 19 + "mediatek,mt6577-sysirq": for MT6577 20 + "mediatek,mt2701-sysirq", "mediatek,mt6577-sysirq": for MT2701 19 21 - interrupt-controller : Identifies the node as an interrupt controller 20 22 - #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt. 21 23 - interrupt-parent: phandle of irq parent for sysirq. The parent must
+3 -1
Documentation/devicetree/bindings/mfd/hi6421.txt
··· 1 1 * HI6421 Multi-Functional Device (MFD), by HiSilicon Ltd. 2 2 3 3 Required parent device properties: 4 - - compatible : contains "hisilicon,hi6421-pmic"; 4 + - compatible : One of the following chip-specific strings: 5 + "hisilicon,hi6421-pmic"; 6 + "hisilicon,hi6421v530-pmic"; 5 7 - reg : register range space of hi6421; 6 8 7 9 Supported Hi6421 sub-devices include:
+14
Documentation/devicetree/bindings/mmc/fsl-esdhc.txt
··· 7 7 by mmc.txt and the properties used by the sdhci-esdhc driver. 8 8 9 9 Required properties: 10 + - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc". 11 + Possible compatibles for PowerPC: 12 + "fsl,mpc8536-esdhc" 13 + "fsl,mpc8378-esdhc" 14 + "fsl,p2020-esdhc" 15 + "fsl,p4080-esdhc" 16 + "fsl,t1040-esdhc" 17 + "fsl,t4240-esdhc" 18 + Possible compatibles for ARM: 19 + "fsl,ls1012a-esdhc" 20 + "fsl,ls1088a-esdhc" 21 + "fsl,ls1043a-esdhc" 22 + "fsl,ls1046a-esdhc" 23 + "fsl,ls2080a-esdhc" 10 24 - interrupt-parent : interrupt source phandle. 11 25 - clock-frequency : specifies eSDHC base clock frequency. 12 26
+1
Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
··· 12 12 Required Properties: 13 13 14 14 * compatible: should be one of the following. 15 + - "hisilicon,hi3660-dw-mshc": for controllers with hi3660 specific extensions. 15 16 - "hisilicon,hi4511-dw-mshc": for controllers with hi4511 specific extensions. 16 17 - "hisilicon,hi6220-dw-mshc": for controllers with hi6220 specific extensions. 17 18
+50
Documentation/devicetree/bindings/pci/kirin-pcie.txt
··· 1 + HiSilicon Kirin SoCs PCIe host DT description 2 + 3 + Kirin PCIe host controller is based on Designware PCI core. 4 + It shares common functions with PCIe Designware core driver 5 + and inherits common properties defined in 6 + Documentation/devicetree/bindings/pci/designware-pci.txt. 7 + 8 + Additional properties are described here: 9 + 10 + Required properties 11 + - compatible: 12 + "hisilicon,kirin960-pcie" for PCIe of Kirin960 SoC 13 + - reg: Should contain rc_dbi, apb, phy, config registers location and length. 14 + - reg-names: Must include the following entries: 15 + "dbi": controller configuration registers; 16 + "apb": apb Ctrl register defined by Kirin; 17 + "phy": apb PHY register defined by Kirin; 18 + "config": PCIe configuration space registers. 19 + - reset-gpios: The gpio to generate PCIe perst assert and deassert signal. 20 + 21 + Optional properties: 22 + 23 + Example based on kirin960: 24 + 25 + pcie@f4000000 { 26 + compatible = "hisilicon,kirin-pcie"; 27 + reg = <0x0 0xf4000000 0x0 0x1000>, <0x0 0xff3fe000 0x0 0x1000>, 28 + <0x0 0xf3f20000 0x0 0x40000>, <0x0 0xF4000000 0 0x2000>; 29 + reg-names = "dbi","apb","phy", "config"; 30 + bus-range = <0x0 0x1>; 31 + #address-cells = <3>; 32 + #size-cells = <2>; 33 + device_type = "pci"; 34 + ranges = <0x02000000 0x0 0x00000000 0x0 0xf5000000 0x0 0x2000000>; 35 + num-lanes = <1>; 36 + #interrupt-cells = <1>; 37 + interrupt-map-mask = <0xf800 0 0 7>; 38 + interrupt-map = <0x0 0 0 1 &gic 0 0 0 282 4>, 39 + <0x0 0 0 2 &gic 0 0 0 283 4>, 40 + <0x0 0 0 3 &gic 0 0 0 284 4>, 41 + <0x0 0 0 4 &gic 0 0 0 285 4>; 42 + clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 43 + <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 44 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 45 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 46 + <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 47 + clock-names = "pcie_phy_ref", "pcie_aux", 48 + "pcie_apb_phy", "pcie_apb_sys", "pcie_aclk"; 49 + reset-gpios = <&gpio11 1 0 >; 50 + };
+2
Documentation/devicetree/bindings/serial/mtk-uart.txt
··· 8 8 * "mediatek,mt6589-uart" for MT6589 compatible UARTS 9 9 * "mediatek,mt6755-uart" for MT6755 compatible UARTS 10 10 * "mediatek,mt6795-uart" for MT6795 compatible UARTS 11 + * "mediatek,mt6797-uart" for MT6797 compatible UARTS 12 + * "mediatek,mt7622-uart" for MT7622 compatible UARTS 11 13 * "mediatek,mt7623-uart" for MT7623 compatible UARTS 12 14 * "mediatek,mt8127-uart" for MT8127 compatible UARTS 13 15 * "mediatek,mt8135-uart" for MT8135 compatible UARTS
+5 -1
Documentation/devicetree/bindings/soc/mediatek/scpsys.txt
··· 9 9 10 10 The driver implements the Generic PM domain bindings described in 11 11 power/power_domain.txt. It provides the power domains defined in 12 - include/dt-bindings/power/mt8173-power.h and mt2701-power.h. 12 + - include/dt-bindings/power/mt8173-power.h 13 + - include/dt-bindings/power/mt6797-power.h 14 + - include/dt-bindings/power/mt2701-power.h 13 15 14 16 Required properties: 15 17 - compatible: Should be one of: 16 18 - "mediatek,mt2701-scpsys" 19 + - "mediatek,mt6797-scpsys" 17 20 - "mediatek,mt8173-scpsys" 18 21 - #power-domain-cells: Must be 1 19 22 - reg: Address range of the SCPSYS unit ··· 25 22 These are clocks which hardware needs to be 26 23 enabled before enabling certain power domains. 27 24 Required clocks for MT2701: "mm", "mfg", "ethif" 25 + Required clocks for MT6797: "mm", "mfg", "vdec" 28 26 Required clocks for MT8173: "mm", "mfg", "venc", "venc_lt" 29 27 30 28 Optional properties:
+4
Documentation/devicetree/bindings/vendor-prefixes.txt
··· 166 166 keymile Keymile GmbH 167 167 khadas Khadas 168 168 kinetic Kinetic Technologies 169 + kingnovel Kingnovel Technology Co., Ltd. 169 170 kosagi Sutajio Ko-Usagi PTE Ltd. 170 171 kyo Kyocera Corporation 171 172 lacie LaCie ··· 174 173 lego LEGO Systems A/S 175 174 lenovo Lenovo Group Ltd. 176 175 lg LG Corporation 176 + libretech Shenzhen Libre Technology Co., Ltd 177 177 licheepi Lichee Pi 178 178 linaro Linaro Limited 179 179 linux Linux-specific binding ··· 334 332 tronsmart Tronsmart 335 333 truly Truly Semiconductors Limited 336 334 tyan Tyan Computer Corporation 335 + ucrobotics uCRobotics 337 336 udoo Udoo 338 337 uniwest United Western Technologies Corp (UniWest) 339 338 upisemi uPI Semiconductor Corp. ··· 360 357 xunlong Shenzhen Xunlong Software CO.,Limited 361 358 zarlink Zarlink Semiconductor 362 359 zeitec ZEITEC Semiconductor Co., LTD. 360 + zidoo Shenzhen Zidoo Technology Co., Ltd. 363 361 zii Zodiac Inflight Innovations 364 362 zte ZTE Corp. 365 363 zyxel ZyXEL Communications Corp.
+2
arch/arm64/boot/dts/Makefile
··· 1 + dts-dirs += actions 1 2 dts-dirs += al 2 3 dts-dirs += allwinner 3 4 dts-dirs += altera ··· 15 14 dts-dirs += mediatek 16 15 dts-dirs += nvidia 17 16 dts-dirs += qcom 17 + dts-dirs += realtek 18 18 dts-dirs += renesas 19 19 dts-dirs += rockchip 20 20 dts-dirs += socionext
+5
arch/arm64/boot/dts/actions/Makefile
··· 1 + dtb-$(CONFIG_ARCH_ACTIONS) += s900-bubblegum-96.dtb 2 + 3 + always := $(dtb-y) 4 + subdir-y := $(dts-dirs) 5 + clean-files := *.dtb
+35
arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
··· 1 + /* 2 + * Copyright (c) 2017 Andreas Färber 3 + * 4 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + #include "s900.dtsi" 10 + 11 + / { 12 + compatible = "ucrobotics,bubblegum-96", "actions,s900"; 13 + model = "Bubblegum-96"; 14 + 15 + aliases { 16 + serial5 = &uart5; 17 + }; 18 + 19 + chosen { 20 + stdout-path = "serial5:115200n8"; 21 + }; 22 + 23 + memory@0 { 24 + device_type = "memory"; 25 + reg = <0x0 0x0 0x0 0x80000000>; 26 + }; 27 + }; 28 + 29 + &timer { 30 + clocks = <&hosc>; 31 + }; 32 + 33 + &uart5 { 34 + status = "okay"; 35 + };
+164
arch/arm64/boot/dts/actions/s900.dtsi
··· 1 + /* 2 + * Copyright (c) 2017 Andreas Färber 3 + * 4 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 5 + */ 6 + 7 + #include <dt-bindings/interrupt-controller/arm-gic.h> 8 + 9 + / { 10 + compatible = "actions,s900"; 11 + interrupt-parent = <&gic>; 12 + #address-cells = <2>; 13 + #size-cells = <2>; 14 + 15 + cpus { 16 + #address-cells = <2>; 17 + #size-cells = <0>; 18 + 19 + cpu0: cpu@0 { 20 + device_type = "cpu"; 21 + compatible = "arm,cortex-a53", "arm,armv8"; 22 + reg = <0x0 0x0>; 23 + enable-method = "psci"; 24 + }; 25 + 26 + cpu1: cpu@1 { 27 + device_type = "cpu"; 28 + compatible = "arm,cortex-a53", "arm,armv8"; 29 + reg = <0x0 0x1>; 30 + enable-method = "psci"; 31 + }; 32 + 33 + cpu2: cpu@2 { 34 + device_type = "cpu"; 35 + compatible = "arm,cortex-a53", "arm,armv8"; 36 + reg = <0x0 0x2>; 37 + enable-method = "psci"; 38 + }; 39 + 40 + cpu3: cpu@3 { 41 + device_type = "cpu"; 42 + compatible = "arm,cortex-a53", "arm,armv8"; 43 + reg = <0x0 0x3>; 44 + enable-method = "psci"; 45 + }; 46 + }; 47 + 48 + reserved-memory { 49 + #address-cells = <2>; 50 + #size-cells = <2>; 51 + ranges; 52 + 53 + secmon@1f000000 { 54 + reg = <0x0 0x1f000000 0x0 0x1000000>; 55 + no-map; 56 + }; 57 + }; 58 + 59 + psci { 60 + compatible = "arm,psci-0.2"; 61 + method = "smc"; 62 + }; 63 + 64 + arm-pmu { 65 + compatible = "arm,cortex-a53-pmu"; 66 + interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>, 67 + <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>, 68 + <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 69 + <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 70 + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 71 + }; 72 + 73 + timer { 74 + compatible = "arm,armv8-timer"; 75 + interrupts = <GIC_PPI 13 76 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 77 + <GIC_PPI 14 78 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 79 + <GIC_PPI 11 80 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 81 + <GIC_PPI 10 82 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 83 + }; 84 + 85 + hosc: hosc { 86 + compatible = "fixed-clock"; 87 + clock-frequency = <24000000>; 88 + #clock-cells = <0>; 89 + }; 90 + 91 + soc { 92 + compatible = "simple-bus"; 93 + #address-cells = <2>; 94 + #size-cells = <2>; 95 + ranges; 96 + 97 + gic: interrupt-controller@e00f1000 { 98 + compatible = "arm,gic-400"; 99 + reg = <0x0 0xe00f1000 0x0 0x1000>, 100 + <0x0 0xe00f2000 0x0 0x2000>, 101 + <0x0 0xe00f4000 0x0 0x2000>, 102 + <0x0 0xe00f6000 0x0 0x2000>; 103 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 104 + interrupt-controller; 105 + #interrupt-cells = <3>; 106 + }; 107 + 108 + uart0: serial@e0120000 { 109 + compatible = "actions,s900-uart", "actions,owl-uart"; 110 + reg = <0x0 0xe0120000 0x0 0x2000>; 111 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 112 + status = "disabled"; 113 + }; 114 + 115 + uart1: serial@e0122000 { 116 + compatible = "actions,s900-uart", "actions,owl-uart"; 117 + reg = <0x0 0xe0122000 0x0 0x2000>; 118 + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 119 + status = "disabled"; 120 + }; 121 + 122 + uart2: serial@e0124000 { 123 + compatible = "actions,s900-uart", "actions,owl-uart"; 124 + reg = <0x0 0xe0124000 0x0 0x2000>; 125 + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 126 + status = "disabled"; 127 + }; 128 + 129 + uart3: serial@e0126000 { 130 + compatible = "actions,s900-uart", "actions,owl-uart"; 131 + reg = <0x0 0xe0126000 0x0 0x2000>; 132 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 133 + status = "disabled"; 134 + }; 135 + 136 + uart4: serial@e0128000 { 137 + compatible = "actions,s900-uart", "actions,owl-uart"; 138 + reg = <0x0 0xe0128000 0x0 0x2000>; 139 + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 140 + status = "disabled"; 141 + }; 142 + 143 + uart5: serial@e012a000 { 144 + compatible = "actions,s900-uart", "actions,owl-uart"; 145 + reg = <0x0 0xe012a000 0x0 0x2000>; 146 + interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 147 + status = "disabled"; 148 + }; 149 + 150 + uart6: serial@e012c000 { 151 + compatible = "actions,s900-uart", "actions,owl-uart"; 152 + reg = <0x0 0xe012c000 0x0 0x2000>; 153 + interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 154 + status = "disabled"; 155 + }; 156 + 157 + timer: timer@e0228000 { 158 + compatible = "actions,s900-timer"; 159 + reg = <0x0 0xe0228000 0x0 0x8000>; 160 + interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 161 + interrupt-names = "timer1"; 162 + }; 163 + }; 164 + };
+5
arch/arm64/boot/dts/allwinner/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb 2 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb 2 3 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb 4 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb 3 5 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb 6 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb 7 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb 8 + dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb 4 9 5 10 always := $(dtb-y) 6 11 subdir-y := $(dts-dirs)
+15
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
··· 67 67 }; 68 68 }; 69 69 70 + &emac { 71 + pinctrl-names = "default"; 72 + pinctrl-0 = <&rgmii_pins>; 73 + phy-mode = "rgmii"; 74 + phy-handle = <&ext_rgmii_phy>; 75 + status = "okay"; 76 + }; 77 + 70 78 &i2c1 { 71 79 pinctrl-names = "default"; 72 80 pinctrl-0 = <&i2c1_pins>; ··· 83 75 84 76 &i2c1_pins { 85 77 bias-pull-up; 78 + }; 79 + 80 + &mdio { 81 + ext_rgmii_phy: ethernet-phy@1 { 82 + compatible = "ethernet-phy-ieee802.3-c22"; 83 + reg = <1>; 84 + }; 86 85 }; 87 86 88 87 &mmc0 {
+95
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
··· 1 + /* 2 + * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + 45 + #include "sun50i-a64.dtsi" 46 + 47 + #include <dt-bindings/gpio/gpio.h> 48 + 49 + / { 50 + model = "OrangePi Win/Win Plus"; 51 + compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64"; 52 + 53 + aliases { 54 + serial0 = &uart0; 55 + }; 56 + 57 + chosen { 58 + stdout-path = "serial0:115200n8"; 59 + }; 60 + 61 + reg_vcc3v3: vcc3v3 { 62 + compatible = "regulator-fixed"; 63 + regulator-name = "vcc3v3"; 64 + regulator-min-microvolt = <3300000>; 65 + regulator-max-microvolt = <3300000>; 66 + }; 67 + }; 68 + 69 + &ehci1 { 70 + status = "okay"; 71 + }; 72 + 73 + &mmc0 { 74 + pinctrl-names = "default"; 75 + pinctrl-0 = <&mmc0_pins>; 76 + vmmc-supply = <&reg_vcc3v3>; 77 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; 78 + cd-inverted; 79 + status = "okay"; 80 + }; 81 + 82 + &ohci1 { 83 + status = "okay"; 84 + }; 85 + 86 + &uart0 { 87 + pinctrl-names = "default"; 88 + pinctrl-0 = <&uart0_pins_a>; 89 + status = "okay"; 90 + }; 91 + 92 + &usbphy { 93 + status = "okay"; 94 + }; 95 +
+16 -1
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
··· 46 46 model = "Pine64+"; 47 47 compatible = "pine64,pine64-plus", "allwinner,sun50i-a64"; 48 48 49 - /* TODO: Camera, Ethernet PHY, touchscreen, etc. */ 49 + /* TODO: Camera, touchscreen, etc. */ 50 + }; 51 + 52 + &emac { 53 + pinctrl-names = "default"; 54 + pinctrl-0 = <&rgmii_pins>; 55 + phy-mode = "rgmii"; 56 + phy-handle = <&ext_rgmii_phy>; 57 + status = "okay"; 58 + }; 59 + 60 + &mdio { 61 + ext_rgmii_phy: ethernet-phy@1 { 62 + compatible = "ethernet-phy-ieee802.3-c22"; 63 + reg = <1>; 64 + }; 50 65 };
+57
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
··· 52 52 53 53 aliases { 54 54 serial0 = &uart0; 55 + serial1 = &uart1; 56 + serial2 = &uart2; 57 + serial3 = &uart3; 58 + serial4 = &uart4; 55 59 }; 56 60 57 61 chosen { ··· 70 66 }; 71 67 }; 72 68 69 + &ehci0 { 70 + status = "okay"; 71 + }; 72 + 73 73 &ehci1 { 74 74 status = "okay"; 75 + }; 76 + 77 + &emac { 78 + pinctrl-names = "default"; 79 + pinctrl-0 = <&rmii_pins>; 80 + phy-mode = "rmii"; 81 + phy-handle = <&ext_rmii_phy1>; 82 + status = "okay"; 83 + 75 84 }; 76 85 77 86 &i2c1 { ··· 95 78 96 79 &i2c1_pins { 97 80 bias-pull-up; 81 + }; 82 + 83 + &mdio { 84 + ext_rmii_phy1: ethernet-phy@1 { 85 + compatible = "ethernet-phy-ieee802.3-c22"; 86 + reg = <1>; 87 + }; 98 88 }; 99 89 100 90 &mmc0 { ··· 115 91 status = "okay"; 116 92 }; 117 93 94 + &ohci0 { 95 + status = "okay"; 96 + }; 97 + 118 98 &ohci1 { 119 99 status = "okay"; 120 100 }; 121 101 102 + /* On Exp and Euler connectors */ 122 103 &uart0 { 123 104 pinctrl-names = "default"; 124 105 pinctrl-0 = <&uart0_pins_a>; 125 106 status = "okay"; 107 + }; 108 + 109 + /* On Wifi/BT connector, with RTS/CTS */ 110 + &uart1 { 111 + pinctrl-names = "default"; 112 + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 113 + status = "disabled"; 114 + }; 115 + 116 + /* On Pi-2 connector */ 117 + &uart2 { 118 + pinctrl-names = "default"; 119 + pinctrl-0 = <&uart2_pins>; 120 + status = "disabled"; 121 + }; 122 + 123 + /* On Euler connector */ 124 + &uart3 { 125 + pinctrl-names = "default"; 126 + pinctrl-0 = <&uart3_pins>; 127 + status = "disabled"; 128 + }; 129 + 130 + /* On Euler connector, RTS/CTS optional */ 131 + &uart4 { 132 + pinctrl-names = "default"; 133 + pinctrl-0 = <&uart4_pins>; 134 + status = "disabled"; 126 135 }; 127 136 128 137 &usb_otg {
+126
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
··· 1 + /* 2 + * Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.xyz> 3 + * 4 + * Based on sun50i-a64-pine64.dts, which is: 5 + * Copyright (c) 2016 ARM Ltd. 6 + * 7 + * This file is dual-licensed: you can use it either under the terms 8 + * of the GPL or the X11 license, at your option. Note that this dual 9 + * licensing only applies to this file, and not this project as a 10 + * whole. 11 + * 12 + * a) This library is free software; you can redistribute it and/or 13 + * modify it under the terms of the GNU General Public License as 14 + * published by the Free Software Foundation; either version 2 of the 15 + * License, or (at your option) any later version. 16 + * 17 + * This library is distributed in the hope that it will be useful, 18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 + * GNU General Public License for more details. 21 + * 22 + * Or, alternatively, 23 + * 24 + * b) Permission is hereby granted, free of charge, to any person 25 + * obtaining a copy of this software and associated documentation 26 + * files (the "Software"), to deal in the Software without 27 + * restriction, including without limitation the rights to use, 28 + * copy, modify, merge, publish, distribute, sublicense, and/or 29 + * sell copies of the Software, and to permit persons to whom the 30 + * Software is furnished to do so, subject to the following 31 + * conditions: 32 + * 33 + * The above copyright notice and this permission notice shall be 34 + * included in all copies or substantial portions of the Software. 35 + * 36 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 + * OTHER DEALINGS IN THE SOFTWARE. 44 + */ 45 + 46 + /dts-v1/; 47 + 48 + #include "sun50i-a64-sopine.dtsi" 49 + 50 + / { 51 + model = "SoPine with baseboard"; 52 + compatible = "pine64,sopine-baseboard", "pine64,sopine", 53 + "allwinner,sun50i-a64"; 54 + 55 + aliases { 56 + serial0 = &uart0; 57 + }; 58 + 59 + chosen { 60 + stdout-path = "serial0:115200n8"; 61 + }; 62 + 63 + reg_vcc1v8: vcc1v8 { 64 + compatible = "regulator-fixed"; 65 + regulator-name = "vcc1v8"; 66 + regulator-min-microvolt = <1800000>; 67 + regulator-max-microvolt = <1800000>; 68 + }; 69 + }; 70 + 71 + &ehci0 { 72 + status = "okay"; 73 + }; 74 + 75 + &ehci1 { 76 + status = "okay"; 77 + }; 78 + 79 + &emac { 80 + pinctrl-names = "default"; 81 + pinctrl-0 = <&rgmii_pins>; 82 + phy-mode = "rgmii"; 83 + phy-handle = <&ext_rgmii_phy>; 84 + status = "okay"; 85 + }; 86 + 87 + &mdio { 88 + ext_rgmii_phy: ethernet-phy@1 { 89 + compatible = "ethernet-phy-ieee802.3-c22"; 90 + reg = <1>; 91 + }; 92 + }; 93 + 94 + &mmc2 { 95 + pinctrl-names = "default"; 96 + pinctrl-0 = <&mmc2_pins>; 97 + vmmc-supply = <&reg_vcc3v3>; 98 + vqmmc-supply = <&reg_vcc1v8>; 99 + bus-width = <8>; 100 + non-removable; 101 + cap-mmc-hw-reset; 102 + status = "okay"; 103 + }; 104 + 105 + &ohci0 { 106 + status = "okay"; 107 + }; 108 + 109 + &ohci1 { 110 + status = "okay"; 111 + }; 112 + 113 + &uart0 { 114 + pinctrl-names = "default"; 115 + pinctrl-0 = <&uart0_pins_a>; 116 + status = "okay"; 117 + }; 118 + 119 + &usb_otg { 120 + dr_mode = "host"; 121 + status = "okay"; 122 + }; 123 + 124 + &usbphy { 125 + status = "okay"; 126 + };
+65
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
··· 1 + /* 2 + * Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.xyz> 3 + * 4 + * Based on sun50i-a64-pine64.dts, which is: 5 + * Copyright (c) 2016 ARM Ltd. 6 + * 7 + * This file is dual-licensed: you can use it either under the terms 8 + * of the GPL or the X11 license, at your option. Note that this dual 9 + * licensing only applies to this file, and not this project as a 10 + * whole. 11 + * 12 + * a) This library is free software; you can redistribute it and/or 13 + * modify it under the terms of the GNU General Public License as 14 + * published by the Free Software Foundation; either version 2 of the 15 + * License, or (at your option) any later version. 16 + * 17 + * This library is distributed in the hope that it will be useful, 18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 + * GNU General Public License for more details. 21 + * 22 + * Or, alternatively, 23 + * 24 + * b) Permission is hereby granted, free of charge, to any person 25 + * obtaining a copy of this software and associated documentation 26 + * files (the "Software"), to deal in the Software without 27 + * restriction, including without limitation the rights to use, 28 + * copy, modify, merge, publish, distribute, sublicense, and/or 29 + * sell copies of the Software, and to permit persons to whom the 30 + * Software is furnished to do so, subject to the following 31 + * conditions: 32 + * 33 + * The above copyright notice and this permission notice shall be 34 + * included in all copies or substantial portions of the Software. 35 + * 36 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 + * OTHER DEALINGS IN THE SOFTWARE. 44 + */ 45 + 46 + #include "sun50i-a64.dtsi" 47 + 48 + / { 49 + reg_vcc3v3: vcc3v3 { 50 + compatible = "regulator-fixed"; 51 + regulator-name = "vcc3v3"; 52 + regulator-min-microvolt = <3300000>; 53 + regulator-max-microvolt = <3300000>; 54 + }; 55 + }; 56 + 57 + &mmc0 { 58 + pinctrl-names = "default"; 59 + pinctrl-0 = <&mmc0_pins>; 60 + vmmc-supply = <&reg_vcc3v3>; 61 + non-removable; 62 + disable-wp; 63 + bus-width = <4>; 64 + status = "okay"; 65 + };
+120 -17
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
··· 43 43 */ 44 44 45 45 #include <dt-bindings/clock/sun50i-a64-ccu.h> 46 + #include <dt-bindings/clock/sun8i-r-ccu.h> 46 47 #include <dt-bindings/interrupt-controller/arm-gic.h> 47 48 #include <dt-bindings/reset/sun50i-a64-ccu.h> 48 49 ··· 130 129 #size-cells = <1>; 131 130 ranges; 132 131 132 + syscon: syscon@1c00000 { 133 + compatible = "allwinner,sun50i-a64-system-controller", 134 + "syscon"; 135 + reg = <0x01c00000 0x1000>; 136 + }; 137 + 133 138 mmc0: mmc@1c0f000 { 134 139 compatible = "allwinner,sun50i-a64-mmc"; 135 140 reg = <0x01c0f000 0x1000>; ··· 209 202 "usb1_reset"; 210 203 status = "disabled"; 211 204 #phy-cells = <1>; 205 + }; 206 + 207 + ehci0: usb@01c1a000 { 208 + compatible = "allwinner,sun50i-a64-ehci", "generic-ehci"; 209 + reg = <0x01c1a000 0x100>; 210 + interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 211 + clocks = <&ccu CLK_BUS_OHCI0>, 212 + <&ccu CLK_BUS_EHCI0>, 213 + <&ccu CLK_USB_OHCI0>; 214 + resets = <&ccu RST_BUS_OHCI0>, 215 + <&ccu RST_BUS_EHCI0>; 216 + status = "disabled"; 217 + }; 218 + 219 + ohci0: usb@01c1a400 { 220 + compatible = "allwinner,sun50i-a64-ohci", "generic-ohci"; 221 + reg = <0x01c1a400 0x100>; 222 + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 223 + clocks = <&ccu CLK_BUS_OHCI0>, 224 + <&ccu CLK_USB_OHCI0>; 225 + resets = <&ccu RST_BUS_OHCI0>; 226 + status = "disabled"; 212 227 }; 213 228 214 229 ehci1: usb@01c1b000 { ··· 310 281 bias-pull-up; 311 282 }; 312 283 284 + rmii_pins: rmii_pins { 285 + pins = "PD10", "PD11", "PD13", "PD14", "PD17", 286 + "PD18", "PD19", "PD20", "PD22", "PD23"; 287 + function = "emac"; 288 + drive-strength = <40>; 289 + }; 290 + 291 + rgmii_pins: rgmii_pins { 292 + pins = "PD8", "PD9", "PD10", "PD11", "PD12", 293 + "PD13", "PD15", "PD16", "PD17", "PD18", 294 + "PD19", "PD20", "PD21", "PD22", "PD23"; 295 + function = "emac"; 296 + drive-strength = <40>; 297 + }; 298 + 313 299 uart0_pins_a: uart0@0 { 314 300 pins = "PB8", "PB9"; 315 301 function = "uart0"; ··· 339 295 pins = "PG8", "PG9"; 340 296 function = "uart1"; 341 297 }; 298 + 299 + uart2_pins: uart2-pins { 300 + pins = "PB0", "PB1"; 301 + function = "uart2"; 302 + }; 303 + 304 + uart3_pins: uart3-pins { 305 + pins = "PD0", "PD1"; 306 + function = "uart3"; 307 + }; 308 + 309 + uart4_pins: uart4-pins { 310 + pins = "PD2", "PD3"; 311 + function = "uart4"; 312 + }; 313 + 314 + uart4_rts_cts_pins: uart4-rts-cts-pins { 315 + pins = "PD4", "PD5"; 316 + function = "uart4"; 317 + }; 342 318 }; 343 319 344 320 uart0: serial@1c28000 { ··· 367 303 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 368 304 reg-shift = <2>; 369 305 reg-io-width = <4>; 370 - clocks = <&ccu 67>; 371 - resets = <&ccu 46>; 306 + clocks = <&ccu CLK_BUS_UART0>; 307 + resets = <&ccu RST_BUS_UART0>; 372 308 status = "disabled"; 373 309 }; 374 310 ··· 378 314 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 379 315 reg-shift = <2>; 380 316 reg-io-width = <4>; 381 - clocks = <&ccu 68>; 382 - resets = <&ccu 47>; 317 + clocks = <&ccu CLK_BUS_UART1>; 318 + resets = <&ccu RST_BUS_UART1>; 383 319 status = "disabled"; 384 320 }; 385 321 ··· 389 325 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 390 326 reg-shift = <2>; 391 327 reg-io-width = <4>; 392 - clocks = <&ccu 69>; 393 - resets = <&ccu 48>; 328 + clocks = <&ccu CLK_BUS_UART2>; 329 + resets = <&ccu RST_BUS_UART2>; 394 330 status = "disabled"; 395 331 }; 396 332 ··· 400 336 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 401 337 reg-shift = <2>; 402 338 reg-io-width = <4>; 403 - clocks = <&ccu 70>; 404 - resets = <&ccu 49>; 339 + clocks = <&ccu CLK_BUS_UART3>; 340 + resets = <&ccu RST_BUS_UART3>; 405 341 status = "disabled"; 406 342 }; 407 343 ··· 411 347 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 412 348 reg-shift = <2>; 413 349 reg-io-width = <4>; 414 - clocks = <&ccu 71>; 415 - resets = <&ccu 50>; 350 + clocks = <&ccu CLK_BUS_UART4>; 351 + resets = <&ccu RST_BUS_UART4>; 416 352 status = "disabled"; 417 353 }; 418 354 ··· 420 356 compatible = "allwinner,sun6i-a31-i2c"; 421 357 reg = <0x01c2ac00 0x400>; 422 358 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 423 - clocks = <&ccu 63>; 424 - resets = <&ccu 42>; 359 + clocks = <&ccu CLK_BUS_I2C0>; 360 + resets = <&ccu RST_BUS_I2C0>; 425 361 status = "disabled"; 426 362 #address-cells = <1>; 427 363 #size-cells = <0>; ··· 431 367 compatible = "allwinner,sun6i-a31-i2c"; 432 368 reg = <0x01c2b000 0x400>; 433 369 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 434 - clocks = <&ccu 64>; 435 - resets = <&ccu 43>; 370 + clocks = <&ccu CLK_BUS_I2C1>; 371 + resets = <&ccu RST_BUS_I2C1>; 436 372 status = "disabled"; 437 373 #address-cells = <1>; 438 374 #size-cells = <0>; ··· 442 378 compatible = "allwinner,sun6i-a31-i2c"; 443 379 reg = <0x01c2b400 0x400>; 444 380 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 445 - clocks = <&ccu 65>; 446 - resets = <&ccu 44>; 381 + clocks = <&ccu CLK_BUS_I2C2>; 382 + resets = <&ccu RST_BUS_I2C2>; 447 383 status = "disabled"; 448 384 #address-cells = <1>; 449 385 #size-cells = <0>; 386 + }; 387 + 388 + emac: ethernet@1c30000 { 389 + compatible = "allwinner,sun50i-a64-emac"; 390 + syscon = <&syscon>; 391 + reg = <0x01c30000 0x100>; 392 + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 393 + interrupt-names = "macirq"; 394 + resets = <&ccu RST_BUS_EMAC>; 395 + reset-names = "stmmaceth"; 396 + clocks = <&ccu CLK_BUS_EMAC>; 397 + clock-names = "stmmaceth"; 398 + status = "disabled"; 399 + #address-cells = <1>; 400 + #size-cells = <0>; 401 + 402 + mdio: mdio { 403 + #address-cells = <1>; 404 + #size-cells = <0>; 405 + }; 450 406 }; 451 407 452 408 gic: interrupt-controller@1c81000 { ··· 501 417 compatible = "allwinner,sun50i-a64-r-pinctrl"; 502 418 reg = <0x01f02c00 0x400>; 503 419 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 504 - clocks = <&r_ccu 3>, <&osc24M>, <&osc32k>; 420 + clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, <&osc32k>; 505 421 clock-names = "apb", "hosc", "losc"; 506 422 gpio-controller; 507 423 #gpio-cells = <3>; 508 424 interrupt-controller; 509 425 #interrupt-cells = <3>; 426 + 427 + r_rsb_pins: rsb@0 { 428 + pins = "PL0", "PL1"; 429 + function = "s_rsb"; 430 + }; 431 + }; 432 + 433 + r_rsb: rsb@1f03400 { 434 + compatible = "allwinner,sun8i-a23-rsb"; 435 + reg = <0x01f03400 0x400>; 436 + interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 437 + clocks = <&r_ccu 6>; 438 + clock-frequency = <3000000>; 439 + resets = <&r_ccu 2>; 440 + pinctrl-names = "default"; 441 + pinctrl-0 = <&r_rsb_pins>; 442 + status = "disabled"; 443 + #address-cells = <1>; 444 + #size-cells = <0>; 510 445 }; 511 446 }; 512 447 };
+161
arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts
··· 1 + /* 2 + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.io> 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 "sun50i-h5.dtsi" 45 + 46 + #include <dt-bindings/gpio/gpio.h> 47 + 48 + / { 49 + model = "FriendlyARM NanoPi NEO 2"; 50 + compatible = "friendlyarm,nanopi-neo2", "allwinner,sun50i-h5"; 51 + 52 + aliases { 53 + ethernet0 = &emac; 54 + serial0 = &uart0; 55 + }; 56 + 57 + chosen { 58 + stdout-path = "serial0:115200n8"; 59 + }; 60 + 61 + leds { 62 + compatible = "gpio-leds"; 63 + 64 + pwr { 65 + label = "nanopi:green:pwr"; 66 + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; 67 + default-state = "on"; 68 + }; 69 + 70 + status { 71 + label = "nanopi:blue:status"; 72 + gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; 73 + }; 74 + }; 75 + 76 + reg_gmac_3v3: gmac-3v3 { 77 + compatible = "regulator-fixed"; 78 + regulator-name = "gmac-3v3"; 79 + regulator-min-microvolt = <3300000>; 80 + regulator-max-microvolt = <3300000>; 81 + startup-delay-us = <100000>; 82 + enable-active-high; 83 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 84 + }; 85 + 86 + reg_vcc3v3: vcc3v3 { 87 + compatible = "regulator-fixed"; 88 + regulator-name = "vcc3v3"; 89 + regulator-min-microvolt = <3300000>; 90 + regulator-max-microvolt = <3300000>; 91 + }; 92 + 93 + reg_usb0_vbus: usb0-vbus { 94 + compatible = "regulator-fixed"; 95 + regulator-name = "usb0-vbus"; 96 + regulator-min-microvolt = <5000000>; 97 + regulator-max-microvolt = <5000000>; 98 + enable-active-high; 99 + gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 100 + status = "okay"; 101 + }; 102 + }; 103 + 104 + &ehci0 { 105 + status = "okay"; 106 + }; 107 + 108 + &ehci3 { 109 + status = "okay"; 110 + }; 111 + 112 + &emac { 113 + pinctrl-names = "default"; 114 + pinctrl-0 = <&emac_rgmii_pins>; 115 + phy-supply = <&reg_gmac_3v3>; 116 + phy-handle = <&ext_rgmii_phy>; 117 + phy-mode = "rgmii"; 118 + status = "okay"; 119 + }; 120 + 121 + &mdio { 122 + ext_rgmii_phy: ethernet-phy@7 { 123 + compatible = "ethernet-phy-ieee802.3-c22"; 124 + reg = <7>; 125 + }; 126 + }; 127 + 128 + &mmc0 { 129 + pinctrl-names = "default"; 130 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 131 + vmmc-supply = <&reg_vcc3v3>; 132 + bus-width = <4>; 133 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 134 + status = "okay"; 135 + }; 136 + 137 + &ohci0 { 138 + status = "okay"; 139 + }; 140 + 141 + &ohci3 { 142 + status = "okay"; 143 + }; 144 + 145 + &uart0 { 146 + pinctrl-names = "default"; 147 + pinctrl-0 = <&uart0_pins_a>; 148 + status = "okay"; 149 + }; 150 + 151 + &usb_otg { 152 + dr_mode = "otg"; 153 + status = "okay"; 154 + }; 155 + 156 + &usbphy { 157 + /* USB Type-A port's VBUS is always on */ 158 + usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ 159 + usb0_vbus-supply = <&reg_usb0_vbus>; 160 + status = "okay"; 161 + };
+27
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
··· 59 59 }; 60 60 61 61 aliases { 62 + ethernet0 = &emac; 62 63 serial0 = &uart0; 63 64 }; 64 65 ··· 90 89 linux,code = <BTN_0>; 91 90 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 92 91 }; 92 + }; 93 + 94 + reg_gmac_3v3: gmac-3v3 { 95 + compatible = "regulator-fixed"; 96 + regulator-name = "gmac-3v3"; 97 + regulator-min-microvolt = <3300000>; 98 + regulator-max-microvolt = <3300000>; 99 + startup-delay-us = <100000>; 100 + enable-active-high; 101 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 93 102 }; 94 103 95 104 reg_usb0_vbus: usb0-vbus { ··· 137 126 status = "okay"; 138 127 }; 139 128 129 + &emac { 130 + pinctrl-names = "default"; 131 + pinctrl-0 = <&emac_rgmii_pins>; 132 + phy-supply = <&reg_gmac_3v3>; 133 + phy-handle = <&ext_rgmii_phy>; 134 + phy-mode = "rgmii"; 135 + status = "okay"; 136 + }; 137 + 140 138 &ir { 141 139 pinctrl-names = "default"; 142 140 pinctrl-0 = <&ir_pins_a>; 143 141 status = "okay"; 142 + }; 143 + 144 + &mdio { 145 + ext_rgmii_phy: ethernet-phy@1 { 146 + compatible = "ethernet-phy-ieee802.3-c22"; 147 + reg = <1>; 148 + }; 144 149 }; 145 150 146 151 &mmc0 {
+232
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
··· 1 + /* 2 + * Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz> 3 + * 4 + * Based on sun50i-h5-orangepi-pc2.dts, which is: 5 + * Copyright (C) 2016 ARM Ltd. 6 + * 7 + * This file is dual-licensed: you can use it either under the terms 8 + * of the GPL or the X11 license, at your option. Note that this dual 9 + * licensing only applies to this file, and not this project as a 10 + * whole. 11 + * 12 + * a) This file is free software; you can redistribute it and/or 13 + * modify it under the terms of the GNU General Public License as 14 + * published by the Free Software Foundation; either version 2 of the 15 + * License, or (at your option) any later version. 16 + * 17 + * This file is distributed in the hope that it will be useful, 18 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 + * GNU General Public License for more details. 21 + * 22 + * Or, alternatively, 23 + * 24 + * b) Permission is hereby granted, free of charge, to any person 25 + * obtaining a copy of this software and associated documentation 26 + * files (the "Software"), to deal in the Software without 27 + * restriction, including without limitation the rights to use, 28 + * copy, modify, merge, publish, distribute, sublicense, and/or 29 + * sell copies of the Software, and to permit persons to whom the 30 + * Software is furnished to do so, subject to the following 31 + * conditions: 32 + * 33 + * The above copyright notice and this permission notice shall be 34 + * included in all copies or substantial portions of the Software. 35 + * 36 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 + * OTHER DEALINGS IN THE SOFTWARE. 44 + */ 45 + 46 + /dts-v1/; 47 + #include "sun50i-h5.dtsi" 48 + 49 + #include <dt-bindings/gpio/gpio.h> 50 + #include <dt-bindings/input/input.h> 51 + 52 + / { 53 + model = "Xunlong Orange Pi Prime"; 54 + compatible = "xunlong,orangepi-prime", "allwinner,sun50i-h5"; 55 + 56 + aliases { 57 + ethernet0 = &emac; 58 + serial0 = &uart0; 59 + }; 60 + 61 + chosen { 62 + stdout-path = "serial0:115200n8"; 63 + }; 64 + 65 + leds { 66 + compatible = "gpio-leds"; 67 + 68 + pwr { 69 + label = "orangepi:green:pwr"; 70 + gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; 71 + default-state = "on"; 72 + }; 73 + 74 + status { 75 + label = "orangepi:red:status"; 76 + gpios = <&pio 0 20 GPIO_ACTIVE_HIGH>; 77 + }; 78 + }; 79 + 80 + r-gpio-keys { 81 + compatible = "gpio-keys"; 82 + 83 + sw4 { 84 + label = "sw4"; 85 + linux,code = <BTN_0>; 86 + gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; 87 + }; 88 + }; 89 + 90 + reg_gmac_3v3: gmac-3v3 { 91 + compatible = "regulator-fixed"; 92 + regulator-name = "gmac-3v3"; 93 + regulator-min-microvolt = <3300000>; 94 + regulator-max-microvolt = <3300000>; 95 + startup-delay-us = <100000>; 96 + enable-active-high; 97 + gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; 98 + }; 99 + 100 + reg_vcc3v3: vcc3v3 { 101 + compatible = "regulator-fixed"; 102 + regulator-name = "vcc3v3"; 103 + regulator-min-microvolt = <3300000>; 104 + regulator-max-microvolt = <3300000>; 105 + }; 106 + 107 + reg_usb0_vbus: usb0-vbus { 108 + compatible = "regulator-fixed"; 109 + regulator-name = "usb0-vbus"; 110 + regulator-min-microvolt = <5000000>; 111 + regulator-max-microvolt = <5000000>; 112 + enable-active-high; 113 + gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */ 114 + status = "okay"; 115 + }; 116 + 117 + wifi_pwrseq: wifi_pwrseq { 118 + compatible = "mmc-pwrseq-simple"; 119 + reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */ 120 + }; 121 + }; 122 + 123 + &codec { 124 + allwinner,audio-routing = 125 + "Line Out", "LINEOUT", 126 + "MIC1", "Mic", 127 + "Mic", "MBIAS"; 128 + status = "okay"; 129 + }; 130 + 131 + &ehci0 { 132 + status = "okay"; 133 + }; 134 + 135 + &ehci1 { 136 + status = "okay"; 137 + }; 138 + 139 + &ehci2 { 140 + status = "okay"; 141 + }; 142 + 143 + &ehci3 { 144 + status = "okay"; 145 + }; 146 + 147 + &emac { 148 + pinctrl-names = "default"; 149 + pinctrl-0 = <&emac_rgmii_pins>; 150 + phy-supply = <&reg_gmac_3v3>; 151 + phy-handle = <&ext_rgmii_phy>; 152 + phy-mode = "rgmii"; 153 + status = "okay"; 154 + }; 155 + 156 + &ir { 157 + pinctrl-names = "default"; 158 + pinctrl-0 = <&ir_pins_a>; 159 + status = "okay"; 160 + }; 161 + 162 + &mdio { 163 + ext_rgmii_phy: ethernet-phy@1 { 164 + compatible = "ethernet-phy-ieee802.3-c22"; 165 + reg = <1>; 166 + }; 167 + }; 168 + 169 + &mmc0 { 170 + pinctrl-names = "default"; 171 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 172 + vmmc-supply = <&reg_vcc3v3>; 173 + bus-width = <4>; 174 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 175 + status = "okay"; 176 + }; 177 + 178 + &mmc1 { 179 + pinctrl-names = "default"; 180 + pinctrl-0 = <&mmc1_pins_a>; 181 + vmmc-supply = <&reg_vcc3v3>; 182 + mmc-pwrseq = <&wifi_pwrseq>; 183 + bus-width = <4>; 184 + non-removable; 185 + status = "okay"; 186 + }; 187 + 188 + &ohci0 { 189 + status = "okay"; 190 + }; 191 + 192 + &ohci1 { 193 + status = "okay"; 194 + }; 195 + 196 + &ohci2 { 197 + status = "okay"; 198 + }; 199 + 200 + &ohci3 { 201 + status = "okay"; 202 + }; 203 + 204 + &uart0 { 205 + pinctrl-names = "default"; 206 + pinctrl-0 = <&uart0_pins_a>; 207 + status = "okay"; 208 + }; 209 + 210 + &uart1 { 211 + pinctrl-names = "default"; 212 + pinctrl-0 = <&uart1_pins>; 213 + status = "disabled"; 214 + }; 215 + 216 + &uart2 { 217 + pinctrl-names = "default"; 218 + pinctrl-0 = <&uart2_pins>; 219 + status = "disabled"; 220 + }; 221 + 222 + &usb_otg { 223 + dr_mode = "otg"; 224 + status = "okay"; 225 + }; 226 + 227 + &usbphy { 228 + /* USB Type-A ports' VBUS is always on */ 229 + usb0_id_det-gpios = <&pio 0 21 GPIO_ACTIVE_HIGH>; /* PA21 */ 230 + usb0_vbus-supply = <&reg_usb0_vbus>; 231 + status = "okay"; 232 + };
+92
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
··· 1 + /* 2 + * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This library is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This library is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + 45 + #include "sun50i-h5.dtsi" 46 + 47 + #include <dt-bindings/gpio/gpio.h> 48 + 49 + / { 50 + model = "OrangePi Zero Plus2"; 51 + compatible = "xunlong,orangepi-zero-plus2", "allwinner,sun50i-h5"; 52 + 53 + aliases { 54 + serial0 = &uart0; 55 + }; 56 + 57 + chosen { 58 + stdout-path = "serial0:115200n8"; 59 + }; 60 + 61 + reg_vcc3v3: vcc3v3 { 62 + compatible = "regulator-fixed"; 63 + regulator-name = "vcc3v3"; 64 + regulator-min-microvolt = <3300000>; 65 + regulator-max-microvolt = <3300000>; 66 + }; 67 + }; 68 + 69 + &mmc0 { 70 + pinctrl-names = "default"; 71 + pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 72 + vmmc-supply = <&reg_vcc3v3>; 73 + bus-width = <4>; 74 + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; 75 + status = "okay"; 76 + }; 77 + 78 + &mmc2 { 79 + pinctrl-names = "default"; 80 + pinctrl-0 = <&mmc2_8bit_pins>; 81 + vmmc-supply = <&reg_vcc3v3>; 82 + bus-width = <8>; 83 + non-removable; 84 + cap-mmc-hw-reset; 85 + status = "okay"; 86 + }; 87 + 88 + &uart0 { 89 + pinctrl-names = "default"; 90 + pinctrl-0 = <&uart0_pins_a>; 91 + status = "okay"; 92 + };
+6 -3
arch/arm64/boot/dts/amlogic/Makefile
··· 1 + dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb 1 2 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb 2 3 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb 3 4 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb ··· 8 7 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb 9 8 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb 10 9 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb 10 + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb 11 11 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb 12 + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb 13 + dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb 12 14 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb 13 15 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb 14 16 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb 15 - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb 16 - dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb 17 + dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb 17 18 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q200.dtb 18 19 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb 19 - dtb-$(CONFIG_ARCH_MESON) += meson-gxm-nexbox-a1.dtb 20 + dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb 20 21 21 22 always := $(dtb-y) 22 23 subdir-y := $(dts-dirs)
+30 -30
arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
··· 121 121 }; 122 122 }; 123 123 124 - /* This UART is brought out to the DB9 connector */ 125 - &uart_AO { 124 + &cvbs_vdac_port { 125 + cvbs_vdac_out: endpoint { 126 + remote-endpoint = <&cvbs_connector_in>; 127 + }; 128 + }; 129 + 130 + &ethmac { 126 131 status = "okay"; 127 - pinctrl-0 = <&uart_ao_a_pins>; 132 + }; 133 + 134 + &hdmi_tx { 135 + status = "okay"; 136 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 128 137 pinctrl-names = "default"; 138 + }; 139 + 140 + &hdmi_tx_tmds_port { 141 + hdmi_tx_tmds_out: endpoint { 142 + remote-endpoint = <&hdmi_connector_in>; 143 + }; 129 144 }; 130 145 131 146 &ir { 132 147 status = "okay"; 133 148 pinctrl-0 = <&remote_input_ao_pins>; 134 149 pinctrl-names = "default"; 150 + }; 151 + 152 + &pwm_ef { 153 + status = "okay"; 154 + pinctrl-0 = <&pwm_e_pins>; 155 + pinctrl-names = "default"; 156 + clocks = <&clkc CLKID_FCLK_DIV4>; 157 + clock-names = "clkin0"; 135 158 }; 136 159 137 160 /* Wireless SDIO Module */ ··· 177 154 vmmc-supply = <&vddao_3v3>; 178 155 vqmmc-supply = <&vddio_boot>; 179 156 180 - brcmf: bcrmf@1 { 157 + brcmf: wifi@1 { 181 158 reg = <1>; 182 159 compatible = "brcm,bcm4329-fmac"; 183 160 }; ··· 221 198 vqmmc-supply = <&vddio_boot>; 222 199 }; 223 200 224 - &pwm_ef { 201 + /* This UART is brought out to the DB9 connector */ 202 + &uart_AO { 225 203 status = "okay"; 226 - pinctrl-0 = <&pwm_e_pins>; 204 + pinctrl-0 = <&uart_ao_a_pins>; 227 205 pinctrl-names = "default"; 228 - clocks = <&clkc CLKID_FCLK_DIV4>; 229 - clock-names = "clkin0"; 230 - }; 231 - 232 - &ethmac { 233 - status = "okay"; 234 - }; 235 - 236 - &cvbs_vdac_port { 237 - cvbs_vdac_out: endpoint { 238 - remote-endpoint = <&cvbs_connector_in>; 239 - }; 240 - }; 241 - 242 - &hdmi_tx { 243 - status = "okay"; 244 - pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 245 - pinctrl-names = "default"; 246 - }; 247 - 248 - &hdmi_tx_tmds_port { 249 - hdmi_tx_tmds_out: endpoint { 250 - remote-endpoint = <&hdmi_connector_in>; 251 - }; 252 206 };
+10 -1
arch/arm64/boot/dts/amlogic/meson-gx.dtsi
··· 200 200 }; 201 201 202 202 scpi_sensors: sensors { 203 - compatible = "arm,scpi-sensors"; 203 + compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors"; 204 204 #thermal-sensor-cells = <1>; 205 205 }; 206 206 }; ··· 299 299 compatible = "amlogic,meson-gx-i2c", "amlogic,meson-gxbb-i2c"; 300 300 reg = <0x0 0x087e0 0x0 0x20>; 301 301 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>; 302 + #address-cells = <1>; 303 + #size-cells = <0>; 304 + status = "disabled"; 305 + }; 306 + 307 + spicc: spi@8d80 { 308 + compatible = "amlogic,meson-gx-spicc"; 309 + reg = <0x0 0x08d80 0x0 0x80>; 310 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 302 311 #address-cells = <1>; 303 312 #size-cells = <0>; 304 313 status = "disabled";
+291
arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
··· 1 + /* 2 + * Copyright (c) 2017 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 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 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 43 + */ 44 + 45 + /dts-v1/; 46 + 47 + #include "meson-gxbb.dtsi" 48 + #include <dt-bindings/gpio/gpio.h> 49 + 50 + / { 51 + compatible = "friendlyarm,nanopi-k2", "amlogic,meson-gxbb"; 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 + leds { 67 + compatible = "gpio-leds"; 68 + 69 + stat { 70 + label = "nanopi-k2:blue:stat"; 71 + gpios = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>; 72 + default-state = "on"; 73 + panic-indicator; 74 + }; 75 + }; 76 + 77 + vdd_5v: regulator-vdd-5v { 78 + compatible = "regulator-fixed"; 79 + regulator-name = "VDD_5V"; 80 + regulator-min-microvolt = <5000000>; 81 + regulator-max-microvolt = <5000000>; 82 + }; 83 + 84 + vddio_ao18: regulator-vddio-ao18 { 85 + compatible = "regulator-fixed"; 86 + regulator-name = "VDDIO_AO18"; 87 + regulator-min-microvolt = <1800000>; 88 + regulator-max-microvolt = <1800000>; 89 + }; 90 + 91 + vddio_ao3v3: regulator-vddio-ao3v3 { 92 + compatible = "regulator-fixed"; 93 + regulator-name = "VDDIO_AO3.3V"; 94 + regulator-min-microvolt = <3300000>; 95 + regulator-max-microvolt = <3300000>; 96 + }; 97 + 98 + vddio_tf: regulator-vddio-tf { 99 + compatible = "regulator-gpio"; 100 + 101 + regulator-name = "VDDIO_TF"; 102 + regulator-min-microvolt = <1800000>; 103 + regulator-max-microvolt = <3300000>; 104 + 105 + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 106 + gpios-states = <0>; 107 + 108 + states = <3300000 0>, 109 + <1800000 1>; 110 + }; 111 + 112 + wifi_32k: wifi-32k { 113 + compatible = "pwm-clock"; 114 + #clock-cells = <0>; 115 + clock-frequency = <32768>; 116 + pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 117 + }; 118 + 119 + sdio_pwrseq: sdio-pwrseq { 120 + compatible = "mmc-pwrseq-simple"; 121 + reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 122 + clocks = <&wifi_32k>; 123 + clock-names = "ext_clock"; 124 + }; 125 + 126 + vcc1v8: regulator-vcc1v8 { 127 + compatible = "regulator-fixed"; 128 + regulator-name = "VCC1.8V"; 129 + regulator-min-microvolt = <1800000>; 130 + regulator-max-microvolt = <1800000>; 131 + }; 132 + 133 + vcc3v3: regulator-vcc3v3 { 134 + compatible = "regulator-fixed"; 135 + regulator-name = "VCC3.3V"; 136 + regulator-min-microvolt = <3300000>; 137 + regulator-max-microvolt = <3300000>; 138 + }; 139 + 140 + emmc_pwrseq: emmc-pwrseq { 141 + compatible = "mmc-pwrseq-emmc"; 142 + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 143 + }; 144 + }; 145 + 146 + &ethmac { 147 + status = "okay"; 148 + pinctrl-0 = <&eth_rgmii_pins>; 149 + pinctrl-names = "default"; 150 + 151 + phy-handle = <&eth_phy0>; 152 + phy-mode = "rgmii"; 153 + 154 + amlogic,tx-delay-ns = <2>; 155 + 156 + snps,reset-gpio = <&gpio GPIOZ_14 0>; 157 + snps,reset-delays-us = <0 10000 1000000>; 158 + snps,reset-active-low; 159 + 160 + mdio { 161 + compatible = "snps,dwmac-mdio"; 162 + #address-cells = <1>; 163 + #size-cells = <0>; 164 + 165 + eth_phy0: ethernet-phy@0 { 166 + /* Realtek RTL8211F (0x001cc916) */ 167 + reg = <0>; 168 + }; 169 + }; 170 + }; 171 + 172 + &ir { 173 + status = "okay"; 174 + pinctrl-0 = <&remote_input_ao_pins>; 175 + pinctrl-names = "default"; 176 + }; 177 + 178 + &pwm_ef { 179 + status = "okay"; 180 + pinctrl-0 = <&pwm_e_pins>; 181 + pinctrl-names = "default"; 182 + clocks = <&clkc CLKID_FCLK_DIV4>; 183 + clock-names = "clkin0"; 184 + }; 185 + 186 + &saradc { 187 + status = "okay"; 188 + vref-supply = <&vddio_ao18>; 189 + }; 190 + 191 + /* SDIO */ 192 + &sd_emmc_a { 193 + status = "okay"; 194 + pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>; 195 + pinctrl-names = "default"; 196 + #address-cells = <1>; 197 + #size-cells = <0>; 198 + 199 + bus-width = <4>; 200 + cap-sd-highspeed; 201 + max-frequency = <200000000>; 202 + 203 + non-removable; 204 + disable-wp; 205 + 206 + mmc-pwrseq = <&sdio_pwrseq>; 207 + 208 + vmmc-supply = <&vddio_ao3v3>; 209 + vqmmc-supply = <&vddio_ao18>; 210 + 211 + brcmf: wifi@1 { 212 + compatible = "brcm,bcm4329-fmac"; 213 + reg = <1>; 214 + }; 215 + }; 216 + 217 + /* SD */ 218 + &sd_emmc_b { 219 + status = "okay"; 220 + pinctrl-0 = <&sdcard_pins>; 221 + pinctrl-names = "default"; 222 + 223 + bus-width = <4>; 224 + cap-sd-highspeed; 225 + max-frequency = <100000000>; 226 + disable-wp; 227 + 228 + cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 229 + cd-inverted; 230 + 231 + vmmc-supply = <&vddio_ao3v3>; 232 + vqmmc-supply = <&vddio_tf>; 233 + }; 234 + 235 + /* eMMC */ 236 + &sd_emmc_c { 237 + status = "disabled"; 238 + pinctrl-0 = <&emmc_pins>; 239 + pinctrl-names = "default"; 240 + 241 + bus-width = <8>; 242 + cap-sd-highspeed; 243 + max-frequency = <200000000>; 244 + non-removable; 245 + disable-wp; 246 + cap-mmc-highspeed; 247 + mmc-ddr-1_8v; 248 + mmc-hs200-1_8v; 249 + 250 + mmc-pwrseq = <&emmc_pwrseq>; 251 + vmmc-supply = <&vcc3v3>; 252 + vqmmc-supply = <&vcc1v8>; 253 + }; 254 + 255 + /* DBG_UART */ 256 + &uart_AO { 257 + status = "okay"; 258 + pinctrl-0 = <&uart_ao_a_pins>; 259 + pinctrl-names = "default"; 260 + }; 261 + 262 + /* Bluetooth on AP6212 */ 263 + &uart_A { 264 + status = "disabled"; 265 + pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; 266 + pinctrl-names = "default"; 267 + }; 268 + 269 + /* 40-pin CON1 */ 270 + &uart_C { 271 + status = "disabled"; 272 + pinctrl-0 = <&uart_c_pins>; 273 + pinctrl-names = "default"; 274 + }; 275 + 276 + &usb0_phy { 277 + status = "okay"; 278 + phy-supply = <&vdd_5v>; 279 + }; 280 + 281 + &usb1_phy { 282 + status = "okay"; 283 + }; 284 + 285 + &usb0 { 286 + status = "okay"; 287 + }; 288 + 289 + &usb1 { 290 + status = "okay"; 291 + };
+26 -26
arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
··· 165 165 }; 166 166 }; 167 167 168 - &uart_AO { 169 - status = "okay"; 170 - pinctrl-0 = <&uart_ao_a_pins>; 171 - pinctrl-names = "default"; 168 + &cvbs_vdac_port { 169 + cvbs_vdac_out: endpoint { 170 + remote-endpoint = <&cvbs_connector_in>; 171 + }; 172 172 }; 173 173 174 174 &ethmac { ··· 195 195 }; 196 196 }; 197 197 198 + &hdmi_tx { 199 + status = "okay"; 200 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 201 + pinctrl-names = "default"; 202 + }; 203 + 204 + &hdmi_tx_tmds_port { 205 + hdmi_tx_tmds_out: endpoint { 206 + remote-endpoint = <&hdmi_connector_in>; 207 + }; 208 + }; 209 + 198 210 &ir { 199 211 status = "okay"; 200 212 pinctrl-0 = <&remote_input_ao_pins>; 201 213 pinctrl-names = "default"; 214 + }; 215 + 216 + &pwm_ef { 217 + status = "okay"; 218 + pinctrl-0 = <&pwm_e_pins>; 219 + pinctrl-names = "default"; 220 + clocks = <&clkc CLKID_FCLK_DIV4>; 221 + clock-names = "clkin0"; 202 222 }; 203 223 204 224 /* Wireless SDIO Module */ ··· 280 260 vqmmc-supply = <&vddio_boot>; 281 261 }; 282 262 283 - &pwm_ef { 263 + &uart_AO { 284 264 status = "okay"; 285 - pinctrl-0 = <&pwm_e_pins>; 265 + pinctrl-0 = <&uart_ao_a_pins>; 286 266 pinctrl-names = "default"; 287 - clocks = <&clkc CLKID_FCLK_DIV4>; 288 - clock-names = "clkin0"; 289 - }; 290 - 291 - &cvbs_vdac_port { 292 - cvbs_vdac_out: endpoint { 293 - remote-endpoint = <&cvbs_connector_in>; 294 - }; 295 - }; 296 - 297 - &hdmi_tx { 298 - status = "okay"; 299 - pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 300 - pinctrl-names = "default"; 301 - }; 302 - 303 - &hdmi_tx_tmds_port { 304 - hdmi_tx_tmds_out: endpoint { 305 - remote-endpoint = <&hdmi_connector_in>; 306 - }; 307 267 };
+54 -54
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
··· 137 137 }; 138 138 }; 139 139 140 - &scpi_clocks { 141 - status = "disabled"; 142 - }; 143 - 144 - &uart_AO { 145 - status = "okay"; 146 - pinctrl-0 = <&uart_ao_a_pins>; 147 - pinctrl-names = "default"; 148 - }; 149 - 150 140 &ethmac { 151 141 status = "okay"; 152 142 pinctrl-0 = <&eth_rgmii_pins>; ··· 160 170 eee-broken-1000t; 161 171 }; 162 172 }; 173 + }; 174 + 175 + &gpio_ao { 176 + /* 177 + * WARNING: The USB Hub on the Odroid-C2 needs a reset signal 178 + * to be turned high in order to be detected by the USB Controller 179 + * This signal should be handled by a USB specific power sequence 180 + * in order to reset the Hub when USB bus is powered down. 181 + */ 182 + usb-hub { 183 + gpio-hog; 184 + gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; 185 + output-high; 186 + line-name = "usb-hub-reset"; 187 + }; 188 + }; 189 + 190 + &i2c_A { 191 + status = "okay"; 192 + pinctrl-0 = <&i2c_a_pins>; 193 + pinctrl-names = "default"; 194 + }; 195 + 196 + &ir { 197 + status = "okay"; 198 + pinctrl-0 = <&remote_input_ao_pins>; 199 + pinctrl-names = "default"; 163 200 }; 164 201 165 202 &pinctrl_aobus { ··· 240 223 ""; 241 224 }; 242 225 243 - &ir { 244 - status = "okay"; 245 - pinctrl-0 = <&remote_input_ao_pins>; 246 - pinctrl-names = "default"; 247 - }; 248 - 249 - &i2c_A { 250 - status = "okay"; 251 - pinctrl-0 = <&i2c_a_pins>; 252 - pinctrl-names = "default"; 253 - }; 254 - 255 - &gpio_ao { 256 - /* 257 - * WARNING: The USB Hub on the Odroid-C2 needs a reset signal 258 - * to be turned high in order to be detected by the USB Controller 259 - * This signal should be handled by a USB specific power sequence 260 - * in order to reset the Hub when USB bus is powered down. 261 - */ 262 - usb-hub { 263 - gpio-hog; 264 - gpios = <GPIOAO_4 GPIO_ACTIVE_HIGH>; 265 - output-high; 266 - line-name = "usb-hub-reset"; 267 - }; 268 - }; 269 - 270 - &usb0_phy { 271 - status = "okay"; 272 - phy-supply = <&usb_otg_pwr>; 273 - }; 274 - 275 - &usb1_phy { 276 - status = "okay"; 277 - }; 278 - 279 - &usb0 { 280 - status = "okay"; 281 - }; 282 - 283 - &usb1 { 284 - status = "okay"; 285 - }; 286 - 287 226 &saradc { 288 227 status = "okay"; 289 228 vref-supply = <&vcc1v8>; 229 + }; 230 + 231 + &scpi_clocks { 232 + status = "disabled"; 290 233 }; 291 234 292 235 /* SD */ ··· 285 308 mmc-pwrseq = <&emmc_pwrseq>; 286 309 vmmc-supply = <&vcc3v3>; 287 310 vqmmc-supply = <&vcc1v8>; 311 + }; 312 + 313 + &uart_AO { 314 + status = "okay"; 315 + pinctrl-0 = <&uart_ao_a_pins>; 316 + pinctrl-names = "default"; 317 + }; 318 + 319 + &usb0_phy { 320 + status = "okay"; 321 + phy-supply = <&usb_otg_pwr>; 322 + }; 323 + 324 + &usb1_phy { 325 + status = "okay"; 326 + }; 327 + 328 + &usb0 { 329 + status = "okay"; 330 + }; 331 + 332 + &usb1 { 333 + status = "okay"; 288 334 };
+39 -39
arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
··· 126 126 clock-names = "ext_clock"; 127 127 }; 128 128 129 - cvbs-connector { 129 + cvbs_connector: cvbs-connector { 130 130 compatible = "composite-video-connector"; 131 131 132 132 port { ··· 148 148 }; 149 149 }; 150 150 151 - /* This UART is brought out to the DB9 connector */ 152 - &uart_AO { 151 + &cvbs_vdac_port { 152 + cvbs_vdac_out: endpoint { 153 + remote-endpoint = <&cvbs_connector_in>; 154 + }; 155 + }; 156 + 157 + &hdmi_tx { 153 158 status = "okay"; 154 - pinctrl-0 = <&uart_ao_a_pins>; 159 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 155 160 pinctrl-names = "default"; 161 + }; 162 + 163 + &hdmi_tx_tmds_port { 164 + hdmi_tx_tmds_out: endpoint { 165 + remote-endpoint = <&hdmi_connector_in>; 166 + }; 156 167 }; 157 168 158 169 &ir { ··· 172 161 pinctrl-names = "default"; 173 162 }; 174 163 175 - &usb0_phy { 164 + &pwm_ef { 176 165 status = "okay"; 177 - phy-supply = <&usb_pwr>; 178 - }; 179 - 180 - &usb1_phy { 181 - status = "okay"; 182 - }; 183 - 184 - &usb0 { 185 - status = "okay"; 186 - }; 187 - 188 - &usb1 { 189 - status = "okay"; 166 + pinctrl-0 = <&pwm_e_pins>; 167 + pinctrl-names = "default"; 168 + clocks = <&clkc CLKID_FCLK_DIV4>; 169 + clock-names = "clkin0"; 190 170 }; 191 171 192 172 /* Wireless SDIO Module */ ··· 200 198 vmmc-supply = <&vddao_3v3>; 201 199 vqmmc-supply = <&vddio_boot>; 202 200 203 - brcmf: bcrmf@1 { 201 + brcmf: wifi@1 { 204 202 reg = <1>; 205 203 compatible = "brcm,bcm4329-fmac"; 206 204 }; ··· 244 242 vqmmc-supply = <&vddio_boot>; 245 243 }; 246 244 247 - &pwm_ef { 245 + /* This UART is brought out to the DB9 connector */ 246 + &uart_AO { 248 247 status = "okay"; 249 - pinctrl-0 = <&pwm_e_pins>; 250 - pinctrl-names = "default"; 251 - clocks = <&clkc CLKID_FCLK_DIV4>; 252 - clock-names = "clkin0"; 253 - }; 254 - 255 - &cvbs_vdac_port { 256 - cvbs_vdac_out: endpoint { 257 - remote-endpoint = <&cvbs_connector_in>; 258 - }; 259 - }; 260 - 261 - &hdmi_tx { 262 - status = "okay"; 263 - pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 248 + pinctrl-0 = <&uart_ao_a_pins>; 264 249 pinctrl-names = "default"; 265 250 }; 266 251 267 - &hdmi_tx_tmds_port { 268 - hdmi_tx_tmds_out: endpoint { 269 - remote-endpoint = <&hdmi_connector_in>; 270 - }; 252 + &usb0_phy { 253 + status = "okay"; 254 + phy-supply = <&usb_pwr>; 255 + }; 256 + 257 + &usb1_phy { 258 + status = "okay"; 259 + }; 260 + 261 + &usb0 { 262 + status = "okay"; 263 + }; 264 + 265 + &usb1 { 266 + status = "okay"; 271 267 };
+28 -28
arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
··· 111 111 }; 112 112 }; 113 113 114 - &uart_AO { 115 - status = "okay"; 116 - pinctrl-0 = <&uart_ao_a_pins>; 117 - pinctrl-names = "default"; 118 - }; 119 - 120 - &ir { 121 - status = "okay"; 122 - pinctrl-0 = <&remote_input_ao_pins>; 123 - pinctrl-names = "default"; 124 - }; 125 - 126 114 &ethmac { 127 115 status = "okay"; 128 116 pinctrl-0 = <&eth_rgmii_pins>; ··· 137 149 }; 138 150 }; 139 151 140 - &usb0_phy { 152 + &ir { 141 153 status = "okay"; 142 - phy-supply = <&usb_vbus>; 154 + pinctrl-0 = <&remote_input_ao_pins>; 155 + pinctrl-names = "default"; 143 156 }; 144 157 145 - &usb1_phy { 158 + &pwm_ef { 146 159 status = "okay"; 147 - }; 148 - 149 - &usb0 { 150 - status = "okay"; 151 - }; 152 - 153 - &usb1 { 154 - status = "okay"; 160 + pinctrl-0 = <&pwm_e_pins>; 161 + pinctrl-names = "default"; 162 + clocks = <&clkc CLKID_FCLK_DIV4>; 163 + clock-names = "clkin0"; 155 164 }; 156 165 157 166 /* Wireless SDIO Module */ ··· 171 186 vmmc-supply = <&vcc_3v3>; 172 187 vqmmc-supply = <&vcc_1v8>; 173 188 174 - brcmf: bcrmf@1 { 189 + brcmf: wifi@1 { 175 190 reg = <1>; 176 191 compatible = "brcm,bcm4329-fmac"; 177 192 }; ··· 214 229 vmmcq-sumpply = <&vcc_1v8>; 215 230 }; 216 231 217 - &pwm_ef { 232 + &uart_AO { 218 233 status = "okay"; 219 - pinctrl-0 = <&pwm_e_pins>; 234 + pinctrl-0 = <&uart_ao_a_pins>; 220 235 pinctrl-names = "default"; 221 - clocks = <&clkc CLKID_FCLK_DIV4>; 222 - clock-names = "clkin0"; 236 + }; 237 + 238 + &usb0_phy { 239 + status = "okay"; 240 + phy-supply = <&usb_vbus>; 241 + }; 242 + 243 + &usb1_phy { 244 + status = "okay"; 245 + }; 246 + 247 + &usb0 { 248 + status = "okay"; 249 + }; 250 + 251 + &usb1 { 252 + status = "okay"; 223 253 };
+3 -3
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-hub.dts
··· 59 59 panic-indicator; 60 60 }; 61 61 }; 62 + }; 62 63 63 - cvbs-connector { 64 - status = "disabled"; 65 - }; 64 + &cvbs_connector { 65 + status = "disabled"; 66 66 }; 67 67 68 68 &ethmac {
+40
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts
··· 85 85 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>; 86 86 }; 87 87 }; 88 + 89 + cvbs-connector { 90 + compatible = "composite-video-connector"; 91 + 92 + port { 93 + cvbs_connector_in: endpoint { 94 + remote-endpoint = <&cvbs_vdac_out>; 95 + }; 96 + }; 97 + }; 98 + 99 + hdmi-connector { 100 + compatible = "hdmi-connector"; 101 + type = "a"; 102 + 103 + port { 104 + hdmi_connector_in: endpoint { 105 + remote-endpoint = <&hdmi_tx_tmds_out>; 106 + }; 107 + }; 108 + }; 109 + }; 110 + 111 + 112 + &cvbs_vdac_port { 113 + cvbs_vdac_out: endpoint { 114 + remote-endpoint = <&cvbs_connector_in>; 115 + }; 88 116 }; 89 117 90 118 &ethmac { ··· 138 110 /* Realtek RTL8211F (0x001cc916) */ 139 111 reg = <0>; 140 112 }; 113 + }; 114 + }; 115 + 116 + &hdmi_tx { 117 + status = "okay"; 118 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 119 + pinctrl-names = "default"; 120 + }; 121 + 122 + &hdmi_tx_tmds_port { 123 + hdmi_tx_tmds_out: endpoint { 124 + remote-endpoint = <&hdmi_connector_in>; 141 125 }; 142 126 }; 143 127
+134 -86
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
··· 97 97 }; 98 98 }; 99 99 100 - &ethmac { 101 - clocks = <&clkc CLKID_ETH>, 102 - <&clkc CLKID_FCLK_DIV2>, 103 - <&clkc CLKID_MPLL2>; 104 - clock-names = "stmmaceth", "clkin0", "clkin1"; 105 - }; 106 - 107 100 &aobus { 108 101 pinctrl_aobus: pinctrl@14 { 109 102 compatible = "amlogic,meson-gxbb-aobus-pinctrl"; ··· 242 249 function = "spdif_out_ao"; 243 250 }; 244 251 }; 252 + 253 + ao_cec_pins: ao_cec { 254 + mux { 255 + groups = "ao_cec"; 256 + function = "cec_ao"; 257 + }; 258 + }; 259 + 260 + ee_cec_pins: ee_cec { 261 + mux { 262 + groups = "ee_cec"; 263 + function = "cec_ao"; 264 + }; 265 + }; 245 266 }; 267 + }; 268 + 269 + &apb { 270 + mali: gpu@c0000 { 271 + compatible = "amlogic,meson-gxbb-mali", "arm,mali-450"; 272 + reg = <0x0 0xc0000 0x0 0x40000>; 273 + interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 274 + <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 275 + <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 276 + <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 277 + <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 278 + <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 279 + <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 280 + <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 281 + <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 282 + <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 283 + interrupt-names = "gp", "gpmmu", "pp", "pmu", 284 + "pp0", "ppmmu0", "pp1", "ppmmu1", 285 + "pp2", "ppmmu2"; 286 + clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 287 + clock-names = "bus", "core"; 288 + 289 + /* 290 + * Mali clocking is provided by two identical clock paths 291 + * MALI_0 and MALI_1 muxed to a single clock by a glitch 292 + * free mux to safely change frequency while running. 293 + */ 294 + assigned-clocks = <&clkc CLKID_MALI_0_SEL>, 295 + <&clkc CLKID_MALI_0>, 296 + <&clkc CLKID_MALI>; /* Glitch free mux */ 297 + assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, 298 + <0>, /* Do Nothing */ 299 + <&clkc CLKID_MALI_0>; 300 + assigned-clock-rates = <0>, /* Do Nothing */ 301 + <666666666>, 302 + <0>; /* Do Nothing */ 303 + }; 304 + }; 305 + 306 + &cbus { 307 + spifc: spi@8c80 { 308 + compatible = "amlogic,meson-gxbb-spifc"; 309 + reg = <0x0 0x08c80 0x0 0x80>; 310 + #address-cells = <1>; 311 + #size-cells = <0>; 312 + clocks = <&clkc CLKID_SPI>; 313 + status = "disabled"; 314 + }; 315 + }; 316 + 317 + &ethmac { 318 + clocks = <&clkc CLKID_ETH>, 319 + <&clkc CLKID_FCLK_DIV2>, 320 + <&clkc CLKID_MPLL2>; 321 + clock-names = "stmmaceth", "clkin0", "clkin1"; 322 + }; 323 + 324 + &hdmi_tx { 325 + compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 326 + resets = <&reset RESET_HDMITX_CAPB3>, 327 + <&reset RESET_HDMI_SYSTEM_RESET>, 328 + <&reset RESET_HDMI_TX>; 329 + reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 330 + clocks = <&clkc CLKID_HDMI_PCLK>, 331 + <&clkc CLKID_CLK81>, 332 + <&clkc CLKID_GCLK_VENCI_INT0>; 333 + clock-names = "isfr", "iahb", "venci"; 334 + }; 335 + 336 + &hiubus { 337 + clkc: clock-controller@0 { 338 + compatible = "amlogic,gxbb-clkc"; 339 + #clock-cells = <1>; 340 + reg = <0x0 0x0 0x0 0x3db>; 341 + }; 342 + }; 343 + 344 + &hwrng { 345 + clocks = <&clkc CLKID_RNG0>; 346 + clock-names = "core"; 347 + }; 348 + 349 + &i2c_A { 350 + clocks = <&clkc CLKID_I2C>; 351 + }; 352 + 353 + &i2c_AO { 354 + clocks = <&clkc CLKID_AO_I2C>; 355 + }; 356 + 357 + &i2c_B { 358 + clocks = <&clkc CLKID_I2C>; 359 + }; 360 + 361 + &i2c_C { 362 + clocks = <&clkc CLKID_I2C>; 246 363 }; 247 364 248 365 &periphs { ··· 365 262 gpio: bank@4b0 { 366 263 reg = <0x0 0x004b0 0x0 0x28>, 367 264 <0x0 0x004e8 0x0 0x14>, 368 - <0x0 0x00120 0x0 0x14>, 265 + <0x0 0x00520 0x0 0x14>, 369 266 <0x0 0x00430 0x0 0x40>; 370 267 reg-names = "mux", "pull", "pull-enable", "gpio"; 371 268 gpio-controller; ··· 390 287 "nor_c", 391 288 "nor_cs"; 392 289 function = "nor"; 290 + }; 291 + }; 292 + 293 + spi_pins: spi { 294 + mux { 295 + groups = "spi_miso", 296 + "spi_mosi", 297 + "spi_sclk"; 298 + function = "spi"; 299 + }; 300 + }; 301 + 302 + spi_ss0_pins: spi-ss0 { 303 + mux { 304 + groups = "spi_ss0"; 305 + function = "spi"; 393 306 }; 394 307 }; 395 308 ··· 640 521 }; 641 522 }; 642 523 643 - &hiubus { 644 - clkc: clock-controller@0 { 645 - compatible = "amlogic,gxbb-clkc"; 646 - #clock-cells = <1>; 647 - reg = <0x0 0x0 0x0 0x3db>; 648 - }; 649 - }; 650 - 651 - &apb { 652 - mali: gpu@c0000 { 653 - compatible = "amlogic,meson-gxbb-mali", "arm,mali-450"; 654 - reg = <0x0 0xc0000 0x0 0x40000>; 655 - interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 656 - <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, 657 - <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, 658 - <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>, 659 - <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, 660 - <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>, 661 - <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, 662 - <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>, 663 - <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, 664 - <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 665 - interrupt-names = "gp", "gpmmu", "pp", "pmu", 666 - "pp0", "ppmmu0", "pp1", "ppmmu1", 667 - "pp2", "ppmmu2"; 668 - clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>; 669 - clock-names = "bus", "core"; 670 - 671 - /* 672 - * Mali clocking is provided by two identical clock paths 673 - * MALI_0 and MALI_1 muxed to a single clock by a glitch 674 - * free mux to safely change frequency while running. 675 - */ 676 - assigned-clocks = <&clkc CLKID_MALI_0_SEL>, 677 - <&clkc CLKID_MALI_0>, 678 - <&clkc CLKID_MALI>; /* Glitch free mux */ 679 - assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>, 680 - <0>, /* Do Nothing */ 681 - <&clkc CLKID_MALI_0>; 682 - assigned-clock-rates = <0>, /* Do Nothing */ 683 - <666666666>, 684 - <0>; /* Do Nothing */ 685 - }; 686 - }; 687 - 688 - &i2c_A { 689 - clocks = <&clkc CLKID_I2C>; 690 - }; 691 - 692 - &i2c_AO { 693 - clocks = <&clkc CLKID_AO_I2C>; 694 - }; 695 - 696 - &i2c_B { 697 - clocks = <&clkc CLKID_I2C>; 698 - }; 699 - 700 - &i2c_C { 701 - clocks = <&clkc CLKID_I2C>; 702 - }; 703 - 704 524 &saradc { 705 525 compatible = "amlogic,meson-gxbb-saradc", "amlogic,meson-saradc"; 706 526 clocks = <&xtal>, ··· 671 613 clock-names = "core", "clkin0", "clkin1"; 672 614 }; 673 615 616 + &spicc { 617 + clocks = <&clkc CLKID_SPICC>; 618 + clock-names = "core"; 619 + resets = <&reset RESET_PERIPHS_SPICC>; 620 + num-cs = <1>; 621 + }; 622 + 674 623 &spifc { 675 624 clocks = <&clkc CLKID_SPI>; 676 625 }; 677 626 678 627 &vpu { 679 628 compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu"; 680 - }; 681 - 682 - &hwrng { 683 - clocks = <&clkc CLKID_RNG0>; 684 - clock-names = "core"; 685 - }; 686 - 687 - &hdmi_tx { 688 - compatible = "amlogic,meson-gxbb-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 689 - resets = <&reset RESET_HDMITX_CAPB3>, 690 - <&reset RESET_HDMI_SYSTEM_RESET>, 691 - <&reset RESET_HDMI_TX>; 692 - reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 693 - clocks = <&clkc CLKID_HDMI_PCLK>, 694 - <&clkc CLKID_CLK81>, 695 - <&clkc CLKID_GCLK_VENCI_INT0>; 696 - clock-names = "isfr", "iahb", "venci"; 697 629 };
+24
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
··· 84 84 regulator-min-microvolt = <1800000>; 85 85 regulator-max-microvolt = <1800000>; 86 86 }; 87 + 88 + hdmi-connector { 89 + compatible = "hdmi-connector"; 90 + type = "a"; 91 + 92 + port { 93 + hdmi_connector_in: endpoint { 94 + remote-endpoint = <&hdmi_tx_tmds_out>; 95 + }; 96 + }; 97 + }; 87 98 }; 88 99 89 100 /* P230 has exclusive choice between internal or external PHY */ ··· 121 110 compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 122 111 reg = <0>; 123 112 max-speed = <1000>; 113 + }; 114 + }; 115 + 116 + 117 + &hdmi_tx { 118 + status = "okay"; 119 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 120 + pinctrl-names = "default"; 121 + }; 122 + 123 + &hdmi_tx_tmds_port { 124 + hdmi_tx_tmds_out: endpoint { 125 + remote-endpoint = <&hdmi_connector_in>; 124 126 }; 125 127 }; 126 128
+24 -1
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
··· 54 54 linux,default-trigger = "default-on"; 55 55 }; 56 56 }; 57 + 58 + hdmi-connector { 59 + compatible = "hdmi-connector"; 60 + type = "a"; 61 + 62 + port { 63 + hdmi_connector_in: endpoint { 64 + remote-endpoint = <&hdmi_tx_tmds_out>; 65 + }; 66 + }; 67 + }; 68 + }; 69 + 70 + &hdmi_tx { 71 + status = "okay"; 72 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 73 + pinctrl-names = "default"; 74 + }; 75 + 76 + &hdmi_tx_tmds_port { 77 + hdmi_tx_tmds_out: endpoint { 78 + remote-endpoint = <&hdmi_connector_in>; 79 + }; 57 80 }; 58 81 59 82 &i2c_A { ··· 118 95 }; 119 96 120 97 &sd_emmc_a { 121 - brcmf: bcrmf@1 { 98 + brcmf: wifi@1 { 122 99 reg = <1>; 123 100 compatible = "brcm,bcm4329-fmac"; 124 101 };
+92
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
··· 1 + /* 2 + * Copyright (c) 2017 BayLibre, SAS. 3 + * Author: Neil Armstrong <narmstrong@baylibre.com> 4 + * Author: Jerome Brunet <jbrunet@baylibre.com> 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 + */ 8 + 9 + /dts-v1/; 10 + 11 + #include <dt-bindings/input/input.h> 12 + 13 + #include "meson-gxl-s905x-p212.dtsi" 14 + 15 + / { 16 + compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl"; 17 + model = "Libre Technology CC"; 18 + 19 + cvbs-connector { 20 + compatible = "composite-video-connector"; 21 + 22 + port { 23 + cvbs_connector_in: endpoint { 24 + remote-endpoint = <&cvbs_vdac_out>; 25 + }; 26 + }; 27 + }; 28 + 29 + hdmi-connector { 30 + compatible = "hdmi-connector"; 31 + type = "a"; 32 + 33 + port { 34 + hdmi_connector_in: endpoint { 35 + remote-endpoint = <&hdmi_tx_tmds_out>; 36 + }; 37 + }; 38 + }; 39 + 40 + leds { 41 + compatible = "gpio-leds"; 42 + 43 + system { 44 + label = "librecomputer:system-status"; 45 + gpios = <&gpio GPIODV_24 GPIO_ACTIVE_HIGH>; 46 + default-state = "on"; 47 + panic-indicator; 48 + }; 49 + 50 + blue { 51 + label = "librecomputer:blue"; 52 + gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 53 + linux,default-trigger = "heartbeat"; 54 + }; 55 + }; 56 + }; 57 + 58 + &cvbs_vdac_port { 59 + cvbs_vdac_out: endpoint { 60 + remote-endpoint = <&cvbs_connector_in>; 61 + }; 62 + }; 63 + 64 + &hdmi_tx { 65 + status = "okay"; 66 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 67 + pinctrl-names = "default"; 68 + }; 69 + 70 + &hdmi_tx_tmds_port { 71 + hdmi_tx_tmds_out: endpoint { 72 + remote-endpoint = <&hdmi_connector_in>; 73 + }; 74 + }; 75 + 76 + /* 77 + * The following devices exists but are exposed on the general 78 + * purpose GPIO header. End user may well decide to use those pins 79 + * for another purpose 80 + */ 81 + 82 + &sd_emmc_a { 83 + status = "disabled"; 84 + }; 85 + 86 + &uart_A { 87 + status = "disabled"; 88 + }; 89 + 90 + &wifi32k { 91 + status = "disabled"; 92 + };
+26 -26
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
··· 140 140 }; 141 141 }; 142 142 143 - &uart_AO { 144 - status = "okay"; 145 - pinctrl-0 = <&uart_ao_a_pins>; 146 - pinctrl-names = "default"; 143 + &cvbs_vdac_port { 144 + cvbs_vdac_out: endpoint { 145 + remote-endpoint = <&cvbs_connector_in>; 146 + }; 147 147 }; 148 148 149 149 &ethmac { ··· 152 152 phy-handle = <&internal_phy>; 153 153 }; 154 154 155 + &hdmi_tx { 156 + status = "okay"; 157 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 158 + pinctrl-names = "default"; 159 + }; 160 + 161 + &hdmi_tx_tmds_port { 162 + hdmi_tx_tmds_out: endpoint { 163 + remote-endpoint = <&hdmi_connector_in>; 164 + }; 165 + }; 166 + 155 167 &ir { 156 168 status = "okay"; 157 169 pinctrl-0 = <&remote_input_ao_pins>; 158 170 pinctrl-names = "default"; 171 + }; 172 + 173 + &pwm_ef { 174 + status = "okay"; 175 + pinctrl-0 = <&pwm_e_pins>; 176 + pinctrl-names = "default"; 177 + clocks = <&clkc CLKID_FCLK_DIV4>; 178 + clock-names = "clkin0"; 159 179 }; 160 180 161 181 /* Wireless SDIO Module */ ··· 237 217 vqmmc-supply = <&vddio_boot>; 238 218 }; 239 219 240 - &pwm_ef { 220 + &uart_AO { 241 221 status = "okay"; 242 - pinctrl-0 = <&pwm_e_pins>; 222 + pinctrl-0 = <&uart_ao_a_pins>; 243 223 pinctrl-names = "default"; 244 - clocks = <&clkc CLKID_FCLK_DIV4>; 245 - clock-names = "clkin0"; 246 - }; 247 - 248 - &cvbs_vdac_port { 249 - cvbs_vdac_out: endpoint { 250 - remote-endpoint = <&cvbs_connector_in>; 251 - }; 252 - }; 253 - 254 - &hdmi_tx { 255 - status = "okay"; 256 - pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 257 - pinctrl-names = "default"; 258 - }; 259 - 260 - &hdmi_tx_tmds_port { 261 - hdmi_tx_tmds_out: endpoint { 262 - remote-endpoint = <&hdmi_connector_in>; 263 - }; 264 224 };
+23
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
··· 58 58 }; 59 59 }; 60 60 }; 61 + 62 + hdmi-connector { 63 + compatible = "hdmi-connector"; 64 + type = "a"; 65 + 66 + port { 67 + hdmi_connector_in: endpoint { 68 + remote-endpoint = <&hdmi_tx_tmds_out>; 69 + }; 70 + }; 71 + }; 61 72 }; 62 73 63 74 &cvbs_vdac_port { 64 75 cvbs_vdac_out: endpoint { 65 76 remote-endpoint = <&cvbs_connector_in>; 77 + }; 78 + }; 79 + 80 + &hdmi_tx { 81 + status = "okay"; 82 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 83 + pinctrl-names = "default"; 84 + }; 85 + 86 + &hdmi_tx_tmds_port { 87 + hdmi_tx_tmds_out: endpoint { 88 + remote-endpoint = <&hdmi_connector_in>; 66 89 }; 67 90 }; 68 91
+1 -1
arch/arm64/boot/dts/amlogic/meson-gxl-s905x.dtsi
··· 48 48 compatible = "amlogic,s905x", "amlogic,meson-gxl"; 49 49 }; 50 50 51 - /* S905X Only has access to its internal PHY */ 51 + /* S905X only has access to its internal PHY */ 52 52 &ethmac { 53 53 phy-mode = "rmii"; 54 54 phy-handle = <&internal_phy>;
+89 -38
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
··· 190 190 function = "spdif_out_ao"; 191 191 }; 192 192 }; 193 + 194 + ao_cec_pins: ao_cec { 195 + mux { 196 + groups = "ao_cec"; 197 + function = "cec_ao"; 198 + }; 199 + }; 200 + 201 + ee_cec_pins: ee_cec { 202 + mux { 203 + groups = "ee_cec"; 204 + function = "cec_ao"; 205 + }; 206 + }; 193 207 }; 208 + }; 209 + 210 + &hdmi_tx { 211 + compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 212 + resets = <&reset RESET_HDMITX_CAPB3>, 213 + <&reset RESET_HDMI_SYSTEM_RESET>, 214 + <&reset RESET_HDMI_TX>; 215 + reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 216 + clocks = <&clkc CLKID_HDMI_PCLK>, 217 + <&clkc CLKID_CLK81>, 218 + <&clkc CLKID_GCLK_VENCI_INT0>; 219 + clock-names = "isfr", "iahb", "venci"; 220 + }; 221 + 222 + &hiubus { 223 + clkc: clock-controller@0 { 224 + compatible = "amlogic,gxl-clkc", "amlogic,gxbb-clkc"; 225 + #clock-cells = <1>; 226 + reg = <0x0 0x0 0x0 0x3db>; 227 + }; 228 + }; 229 + 230 + &i2c_A { 231 + clocks = <&clkc CLKID_I2C>; 232 + }; 233 + 234 + &i2c_AO { 235 + clocks = <&clkc CLKID_AO_I2C>; 236 + }; 237 + 238 + &i2c_B { 239 + clocks = <&clkc CLKID_I2C>; 240 + }; 241 + 242 + &i2c_C { 243 + clocks = <&clkc CLKID_I2C>; 194 244 }; 195 245 196 246 &periphs { ··· 253 203 gpio: bank@4b0 { 254 204 reg = <0x0 0x004b0 0x0 0x28>, 255 205 <0x0 0x004e8 0x0 0x14>, 256 - <0x0 0x00120 0x0 0x14>, 206 + <0x0 0x00520 0x0 0x14>, 257 207 <0x0 0x00430 0x0 0x40>; 258 208 reg-names = "mux", "pull", "pull-enable", "gpio"; 259 209 gpio-controller; 260 210 #gpio-cells = <2>; 261 - gpio-ranges = <&pinctrl_periphs 0 14 101>; 211 + gpio-ranges = <&pinctrl_periphs 0 10 101>; 262 212 }; 263 213 264 214 emmc_pins: emmc { ··· 278 228 "nor_c", 279 229 "nor_cs"; 280 230 function = "nor"; 231 + }; 232 + }; 233 + 234 + spi_pins: spi { 235 + mux { 236 + groups = "spi_miso", 237 + "spi_mosi", 238 + "spi_sclk"; 239 + function = "spi"; 240 + }; 241 + }; 242 + 243 + spi_ss0_pins: spi-ss0 { 244 + mux { 245 + groups = "spi_ss0"; 246 + function = "spi"; 281 247 }; 282 248 }; 283 249 ··· 420 354 }; 421 355 }; 422 356 357 + eth_link_led_pins: eth_link_led { 358 + mux { 359 + groups = "eth_link_led"; 360 + function = "eth_led"; 361 + }; 362 + }; 363 + 364 + eth_act_led_pins: eth_act_led { 365 + mux { 366 + groups = "eth_act_led"; 367 + function = "eth_led"; 368 + }; 369 + }; 370 + 423 371 pwm_a_pins: pwm_a { 424 372 mux { 425 373 groups = "pwm_a"; ··· 581 501 }; 582 502 }; 583 503 584 - &hiubus { 585 - clkc: clock-controller@0 { 586 - compatible = "amlogic,gxl-clkc", "amlogic,gxbb-clkc"; 587 - #clock-cells = <1>; 588 - reg = <0x0 0x0 0x0 0x3db>; 589 - }; 590 - }; 591 - 592 - &i2c_A { 593 - clocks = <&clkc CLKID_I2C>; 594 - }; 595 - 596 - &i2c_AO { 597 - clocks = <&clkc CLKID_AO_I2C>; 598 - }; 599 - 600 - &i2c_B { 601 - clocks = <&clkc CLKID_I2C>; 602 - }; 603 - 604 - &i2c_C { 605 - clocks = <&clkc CLKID_I2C>; 606 - }; 607 - 608 504 &saradc { 609 505 compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc"; 610 506 clocks = <&xtal>, ··· 612 556 clock-names = "core", "clkin0", "clkin1"; 613 557 }; 614 558 559 + &spicc { 560 + clocks = <&clkc CLKID_SPICC>; 561 + clock-names = "core"; 562 + resets = <&reset RESET_PERIPHS_SPICC>; 563 + num-cs = <1>; 564 + }; 565 + 615 566 &spifc { 616 567 clocks = <&clkc CLKID_SPI>; 617 568 }; 618 569 619 570 &vpu { 620 571 compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu"; 621 - }; 622 - 623 - &hdmi_tx { 624 - compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi"; 625 - resets = <&reset RESET_HDMITX_CAPB3>, 626 - <&reset RESET_HDMI_SYSTEM_RESET>, 627 - <&reset RESET_HDMI_TX>; 628 - reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy"; 629 - clocks = <&clkc CLKID_HDMI_PCLK>, 630 - <&clkc CLKID_CLK81>, 631 - <&clkc CLKID_GCLK_VENCI_INT0>; 632 - clock-names = "isfr", "iahb", "venci"; 633 572 };
+43 -44
arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
··· 113 113 }; 114 114 }; 115 115 116 - /* This UART is brought out to the DB9 connector */ 117 - &uart_AO { 116 + &cvbs_vdac_port { 117 + cvbs_vdac_out: endpoint { 118 + remote-endpoint = <&cvbs_connector_in>; 119 + }; 120 + }; 121 + 122 + &ethmac { 118 123 status = "okay"; 119 - pinctrl-0 = <&uart_ao_a_pins>; 124 + 125 + pinctrl-0 = <&eth_pins>; 120 126 pinctrl-names = "default"; 127 + 128 + /* Select external PHY by default */ 129 + phy-handle = <&external_phy>; 130 + 131 + amlogic,tx-delay-ns = <2>; 132 + 133 + snps,reset-gpio = <&gpio GPIOZ_14 0>; 134 + snps,reset-delays-us = <0 10000 1000000>; 135 + snps,reset-active-low; 136 + 137 + /* External PHY is in RGMII */ 138 + phy-mode = "rgmii"; 139 + }; 140 + 141 + &external_mdio { 142 + external_phy: ethernet-phy@0 { 143 + compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 144 + reg = <0>; 145 + max-speed = <1000>; 146 + }; 147 + }; 148 + 149 + &hdmi_tx { 150 + status = "okay"; 151 + pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 152 + pinctrl-names = "default"; 153 + }; 154 + 155 + &hdmi_tx_tmds_port { 156 + hdmi_tx_tmds_out: endpoint { 157 + remote-endpoint = <&hdmi_connector_in>; 158 + }; 121 159 }; 122 160 123 161 &ir { ··· 202 164 vqmmc-supply = <&vddio_boot>; 203 165 }; 204 166 205 - &ethmac { 167 + &uart_AO { 206 168 status = "okay"; 207 - 208 - pinctrl-0 = <&eth_pins>; 169 + pinctrl-0 = <&uart_ao_a_pins>; 209 170 pinctrl-names = "default"; 210 - 211 - /* Select external PHY by default */ 212 - phy-handle = <&external_phy>; 213 - 214 - amlogic,tx-delay-ns = <2>; 215 - 216 - snps,reset-gpio = <&gpio GPIOZ_14 0>; 217 - snps,reset-delays-us = <0 10000 1000000>; 218 - snps,reset-active-low; 219 - 220 - /* External PHY is in RGMII */ 221 - phy-mode = "rgmii"; 222 - }; 223 - 224 - &external_mdio { 225 - external_phy: ethernet-phy@0 { 226 - compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 227 - reg = <0>; 228 - max-speed = <1000>; 229 - }; 230 - }; 231 - 232 - &cvbs_vdac_port { 233 - cvbs_vdac_out: endpoint { 234 - remote-endpoint = <&cvbs_connector_in>; 235 - }; 236 - }; 237 - 238 - &hdmi_tx { 239 - status = "okay"; 240 - pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 241 - pinctrl-names = "default"; 242 - }; 243 - 244 - &hdmi_tx_tmds_port { 245 - hdmi_tx_tmds_out: endpoint { 246 - remote-endpoint = <&hdmi_connector_in>; 247 - }; 248 171 };
+240
arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
··· 1 + /* 2 + * Copyright (c) 2016-2017 Andreas Färber 3 + * 4 + * Based on nexbox-a1: 5 + * 6 + * Copyright (c) 2016 BayLibre, SAS. 7 + * Author: Neil Armstrong <narmstrong@baylibre.com> 8 + * 9 + * Copyright (c) 2016 Endless Computers, Inc. 10 + * Author: Carlo Caione <carlo@endlessm.com> 11 + * 12 + * This file is dual-licensed: you can use it either under the terms 13 + * of the GPL or the X11 license, at your option. Note that this dual 14 + * licensing only applies to this file, and not this project as a 15 + * whole. 16 + * 17 + * a) This library is free software; you can redistribute it and/or 18 + * modify it under the terms of the GNU General Public License as 19 + * published by the Free Software Foundation; either version 2 of the 20 + * License, or (at your option) any later version. 21 + * 22 + * This library is distributed in the hope that it will be useful, 23 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 24 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 + * GNU General Public License for more details. 26 + * 27 + * Or, alternatively, 28 + * 29 + * b) Permission is hereby granted, free of charge, to any person 30 + * obtaining a copy of this software and associated documentation 31 + * files (the "Software"), to deal in the Software without 32 + * restriction, including without limitation the rights to use, 33 + * copy, modify, merge, publish, distribute, sublicense, and/or 34 + * sell copies of the Software, and to permit persons to whom the 35 + * Software is furnished to do so, subject to the following 36 + * conditions: 37 + * 38 + * The above copyright notice and this permission notice shall be 39 + * included in all copies or substantial portions of the Software. 40 + * 41 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 42 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 43 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 44 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 45 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 46 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 47 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 48 + * OTHER DEALINGS IN THE SOFTWARE. 49 + */ 50 + 51 + /dts-v1/; 52 + 53 + #include "meson-gxm.dtsi" 54 + 55 + / { 56 + compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm"; 57 + model = "R-Box Pro"; 58 + 59 + aliases { 60 + serial0 = &uart_AO; 61 + }; 62 + 63 + chosen { 64 + stdout-path = "serial0:115200n8"; 65 + }; 66 + 67 + memory@0 { 68 + device_type = "memory"; 69 + reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */ 70 + }; 71 + 72 + leds { 73 + compatible = "gpio-leds"; 74 + 75 + blue { 76 + label = "rbox-pro:blue:on"; 77 + gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; 78 + default-state = "on"; 79 + }; 80 + 81 + red { 82 + label = "rbox-pro:red:standby"; 83 + gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>; 84 + default-state = "off"; 85 + retain-state-suspended; 86 + panic-indicator; 87 + }; 88 + }; 89 + 90 + vddio_boot: regulator-vddio-boot { 91 + compatible = "regulator-fixed"; 92 + regulator-name = "VDDIO_BOOT"; 93 + regulator-min-microvolt = <1800000>; 94 + regulator-max-microvolt = <1800000>; 95 + }; 96 + 97 + vddao_3v3: regulator-vddao-3v3 { 98 + compatible = "regulator-fixed"; 99 + regulator-name = "VDDAO_3V3"; 100 + regulator-min-microvolt = <3300000>; 101 + regulator-max-microvolt = <3300000>; 102 + }; 103 + 104 + vcc_3v3: regulator-vcc-3v3 { 105 + compatible = "regulator-fixed"; 106 + regulator-name = "VCC_3V3"; 107 + regulator-min-microvolt = <3300000>; 108 + regulator-max-microvolt = <3300000>; 109 + }; 110 + 111 + emmc_pwrseq: emmc-pwrseq { 112 + compatible = "mmc-pwrseq-emmc"; 113 + reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>; 114 + }; 115 + 116 + wifi32k: wifi32k { 117 + compatible = "pwm-clock"; 118 + #clock-cells = <0>; 119 + clock-frequency = <32768>; 120 + pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */ 121 + }; 122 + 123 + sdio_pwrseq: sdio-pwrseq { 124 + compatible = "mmc-pwrseq-simple"; 125 + reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>; 126 + clocks = <&wifi32k>; 127 + clock-names = "ext_clock"; 128 + }; 129 + }; 130 + 131 + &ethmac { 132 + status = "okay"; 133 + 134 + pinctrl-0 = <&eth_pins>; 135 + pinctrl-names = "default"; 136 + 137 + /* Select external PHY by default */ 138 + phy-handle = <&external_phy>; 139 + 140 + snps,reset-gpio = <&gpio GPIOZ_14 0>; 141 + snps,reset-delays-us = <0 10000 1000000>; 142 + snps,reset-active-low; 143 + 144 + amlogic,tx-delay-ns = <2>; 145 + 146 + /* External PHY is in RGMII */ 147 + phy-mode = "rgmii"; 148 + }; 149 + 150 + &external_mdio { 151 + external_phy: ethernet-phy@0 { 152 + compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22"; 153 + reg = <0>; 154 + max-speed = <1000>; 155 + }; 156 + }; 157 + 158 + &ir { 159 + status = "okay"; 160 + pinctrl-0 = <&remote_input_ao_pins>; 161 + pinctrl-names = "default"; 162 + }; 163 + 164 + &pwm_ef { 165 + status = "okay"; 166 + pinctrl-0 = <&pwm_e_pins>; 167 + pinctrl-names = "default"; 168 + clocks = <&clkc CLKID_FCLK_DIV4>; 169 + clock-names = "clkin0"; 170 + }; 171 + 172 + /* Wireless SDIO Module */ 173 + &sd_emmc_a { 174 + status = "okay"; 175 + pinctrl-0 = <&sdio_pins>; 176 + pinctrl-names = "default"; 177 + #address-cells = <1>; 178 + #size-cells = <0>; 179 + 180 + bus-width = <4>; 181 + cap-sd-highspeed; 182 + max-frequency = <100000000>; 183 + 184 + non-removable; 185 + disable-wp; 186 + 187 + mmc-pwrseq = <&sdio_pwrseq>; 188 + 189 + vmmc-supply = <&vddao_3v3>; 190 + vqmmc-supply = <&vddio_boot>; 191 + 192 + brcmf: brcmf@1 { 193 + reg = <1>; 194 + compatible = "brcm,bcm4329-fmac"; 195 + }; 196 + }; 197 + 198 + /* SD card */ 199 + &sd_emmc_b { 200 + status = "okay"; 201 + pinctrl-0 = <&sdcard_pins>; 202 + pinctrl-names = "default"; 203 + 204 + bus-width = <4>; 205 + cap-sd-highspeed; 206 + max-frequency = <100000000>; 207 + disable-wp; 208 + 209 + cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; 210 + cd-inverted; 211 + 212 + vmmc-supply = <&vddao_3v3>; 213 + vqmmc-supply = <&vddio_boot>; 214 + }; 215 + 216 + /* eMMC */ 217 + &sd_emmc_c { 218 + status = "okay"; 219 + pinctrl-0 = <&emmc_pins>; 220 + pinctrl-names = "default"; 221 + 222 + bus-width = <8>; 223 + cap-sd-highspeed; 224 + cap-mmc-highspeed; 225 + max-frequency = <200000000>; 226 + non-removable; 227 + disable-wp; 228 + mmc-ddr-1_8v; 229 + mmc-hs200-1_8v; 230 + 231 + mmc-pwrseq = <&emmc_pwrseq>; 232 + vmmc-supply = <&vcc_3v3>; 233 + vqmmc-supply = <&vddio_boot>; 234 + }; 235 + 236 + &uart_AO { 237 + status = "okay"; 238 + pinctrl-0 = <&uart_ao_a_pins>; 239 + pinctrl-names = "default"; 240 + };
+54 -4
arch/arm64/boot/dts/arm/juno-base.dtsi
··· 53 53 #global-interrupts = <1>; 54 54 dma-coherent; 55 55 power-domains = <&scpi_devpd 0>; 56 - status = "disabled"; 57 56 }; 58 57 59 58 gic: interrupt-controller@2c010000 { ··· 201 202 }; 202 203 }; 203 204 205 + cpu_debug0: cpu_debug@22010000 { 206 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 207 + reg = <0x0 0x22010000 0x0 0x1000>; 208 + 209 + clocks = <&soc_smc50mhz>; 210 + clock-names = "apb_pclk"; 211 + power-domains = <&scpi_devpd 0>; 212 + }; 213 + 204 214 etm0: etm@22040000 { 205 215 compatible = "arm,coresight-etm4x", "arm,primecell"; 206 216 reg = <0 0x22040000 0 0x1000>; ··· 260 252 }; 261 253 }; 262 254 255 + cpu_debug1: cpu_debug@22110000 { 256 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 257 + reg = <0x0 0x22110000 0x0 0x1000>; 258 + 259 + clocks = <&soc_smc50mhz>; 260 + clock-names = "apb_pclk"; 261 + power-domains = <&scpi_devpd 0>; 262 + }; 263 + 263 264 etm1: etm@22140000 { 264 265 compatible = "arm,coresight-etm4x", "arm,primecell"; 265 266 reg = <0 0x22140000 0 0x1000>; ··· 281 264 remote-endpoint = <&cluster0_funnel_in_port1>; 282 265 }; 283 266 }; 267 + }; 268 + 269 + cpu_debug2: cpu_debug@23010000 { 270 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 271 + reg = <0x0 0x23010000 0x0 0x1000>; 272 + 273 + clocks = <&soc_smc50mhz>; 274 + clock-names = "apb_pclk"; 275 + power-domains = <&scpi_devpd 0>; 284 276 }; 285 277 286 278 etm2: etm@23040000 { ··· 356 330 }; 357 331 }; 358 332 333 + cpu_debug3: cpu_debug@23110000 { 334 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 335 + reg = <0x0 0x23110000 0x0 0x1000>; 336 + 337 + clocks = <&soc_smc50mhz>; 338 + clock-names = "apb_pclk"; 339 + power-domains = <&scpi_devpd 0>; 340 + }; 341 + 359 342 etm3: etm@23140000 { 360 343 compatible = "arm,coresight-etm4x", "arm,primecell"; 361 344 reg = <0 0x23140000 0 0x1000>; ··· 379 344 }; 380 345 }; 381 346 347 + cpu_debug4: cpu_debug@23210000 { 348 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 349 + reg = <0x0 0x23210000 0x0 0x1000>; 350 + 351 + clocks = <&soc_smc50mhz>; 352 + clock-names = "apb_pclk"; 353 + power-domains = <&scpi_devpd 0>; 354 + }; 355 + 382 356 etm4: etm@23240000 { 383 357 compatible = "arm,coresight-etm4x", "arm,primecell"; 384 358 reg = <0 0x23240000 0 0x1000>; ··· 400 356 remote-endpoint = <&cluster1_funnel_in_port2>; 401 357 }; 402 358 }; 359 + }; 360 + 361 + cpu_debug5: cpu_debug@23310000 { 362 + compatible = "arm,coresight-cpu-debug", "arm,primecell"; 363 + reg = <0x0 0x23310000 0x0 0x1000>; 364 + 365 + clocks = <&soc_smc50mhz>; 366 + clock-names = "apb_pclk"; 367 + power-domains = <&scpi_devpd 0>; 403 368 }; 404 369 405 370 etm5: etm@23340000 { ··· 599 546 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 600 547 #iommu-cells = <1>; 601 548 #global-interrupts = <1>; 602 - status = "disabled"; 603 549 }; 604 550 605 551 smmu_hdlcd0: iommu@7fb20000 { ··· 608 556 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 609 557 #iommu-cells = <1>; 610 558 #global-interrupts = <1>; 611 - status = "disabled"; 612 559 }; 613 560 614 561 smmu_usb: iommu@7fb30000 { ··· 618 567 #iommu-cells = <1>; 619 568 #global-interrupts = <1>; 620 569 dma-coherent; 621 - status = "disabled"; 622 570 }; 623 571 624 572 dma@7ff00000 {
+24
arch/arm64/boot/dts/arm/juno-r1.dts
··· 281 281 &stm_out_port { 282 282 remote-endpoint = <&csys1_funnel_in_port0>; 283 283 }; 284 + 285 + &cpu_debug0 { 286 + cpu = <&A57_0>; 287 + }; 288 + 289 + &cpu_debug1 { 290 + cpu = <&A57_1>; 291 + }; 292 + 293 + &cpu_debug2 { 294 + cpu = <&A53_0>; 295 + }; 296 + 297 + &cpu_debug3 { 298 + cpu = <&A53_1>; 299 + }; 300 + 301 + &cpu_debug4 { 302 + cpu = <&A53_2>; 303 + }; 304 + 305 + &cpu_debug5 { 306 + cpu = <&A53_3>; 307 + };
+24
arch/arm64/boot/dts/arm/juno-r2.dts
··· 281 281 &stm_out_port { 282 282 remote-endpoint = <&csys1_funnel_in_port0>; 283 283 }; 284 + 285 + &cpu_debug0 { 286 + cpu = <&A72_0>; 287 + }; 288 + 289 + &cpu_debug1 { 290 + cpu = <&A72_1>; 291 + }; 292 + 293 + &cpu_debug2 { 294 + cpu = <&A53_0>; 295 + }; 296 + 297 + &cpu_debug3 { 298 + cpu = <&A53_1>; 299 + }; 300 + 301 + &cpu_debug4 { 302 + cpu = <&A53_2>; 303 + }; 304 + 305 + &cpu_debug5 { 306 + cpu = <&A53_3>; 307 + };
+24
arch/arm64/boot/dts/arm/juno.dts
··· 268 268 }; 269 269 }; 270 270 }; 271 + 272 + &cpu_debug0 { 273 + cpu = <&A57_0>; 274 + }; 275 + 276 + &cpu_debug1 { 277 + cpu = <&A57_1>; 278 + }; 279 + 280 + &cpu_debug2 { 281 + cpu = <&A53_0>; 282 + }; 283 + 284 + &cpu_debug3 { 285 + cpu = <&A53_1>; 286 + }; 287 + 288 + &cpu_debug4 { 289 + cpu = <&A53_2>; 290 + }; 291 + 292 + &cpu_debug5 { 293 + cpu = <&A53_3>; 294 + };
+1
arch/arm64/boot/dts/broadcom/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb 2 2 dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb ns2-xmc.dtb 3 3 4 + dts-dirs := stingray 4 5 always := $(dtb-y) 5 6 subdir-y := $(dts-dirs) 6 7 clean-files := *.dtb
+17
arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
··· 22 22 &uart1 { 23 23 status = "okay"; 24 24 }; 25 + 26 + /* SDHCI is used to control the SDIO for wireless */ 27 + &sdhci { 28 + pinctrl-names = "default"; 29 + pinctrl-0 = <&emmc_gpio34>; 30 + status = "okay"; 31 + bus-width = <4>; 32 + non-removable; 33 + }; 34 + 35 + /* SDHOST is used to drive the SD card */ 36 + &sdhost { 37 + pinctrl-names = "default"; 38 + pinctrl-0 = <&sdhost_gpio48>; 39 + status = "okay"; 40 + bus-width = <4>; 41 + };
+4
arch/arm64/boot/dts/broadcom/bcm2837.dtsi
··· 75 75 interrupts = <8>; 76 76 }; 77 77 78 + &cpu_thermal { 79 + coefficients = <(-538) 412000>; 80 + }; 81 + 78 82 /* enable thermal sensor with the correct compatible property set */ 79 83 &thermal { 80 84 compatible = "brcm,bcm2837-thermal";
+14
arch/arm64/boot/dts/broadcom/ns2.dtsi
··· 460 460 }; 461 461 }; 462 462 463 + usbdrd_phy: phy@66000960 { 464 + #phy-cells = <0>; 465 + compatible = "brcm,ns2-drd-phy"; 466 + reg = <0x66000960 0x24>, 467 + <0x67012800 0x4>, 468 + <0x6501d148 0x4>, 469 + <0x664d0700 0x4>; 470 + reg-names = "icfg", "rst-ctrl", 471 + "crmu-ctrl", "usb2-strap"; 472 + id-gpios = <&gpio_g 30 0>; 473 + vbus-gpios = <&gpio_g 31 0>; 474 + status = "disabled"; 475 + }; 476 + 463 477 pwm: pwm@66010000 { 464 478 compatible = "brcm,iproc-pwm"; 465 479 reg = <0x66010000 0x28>;
+6
arch/arm64/boot/dts/broadcom/stingray/Makefile
··· 1 + dtb-$(CONFIG_ARCH_BCM_IPROC) += bcm958742k.dtb 2 + dtb-$(CONFIG_ARCH_BCM_IPROC) += bcm958742t.dtb 3 + 4 + always := $(dtb-y) 5 + subdir-y := $(dts-dirs) 6 + clean-files := *.dtb
+131
arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2016-2017 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 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 "stingray.dtsi" 34 + 35 + / { 36 + chosen { 37 + stdout-path = "serial0:115200n8"; 38 + }; 39 + 40 + aliases { 41 + serial0 = &uart1; 42 + serial1 = &uart0; 43 + serial2 = &uart2; 44 + serial3 = &uart3; 45 + }; 46 + 47 + sdio0_vddo_ctrl_reg: sdio0_vddo_ctrl { 48 + compatible = "regulator-gpio"; 49 + regulator-name = "sdio0_vddo_ctrl_reg"; 50 + regulator-type = "voltage"; 51 + regulator-min-microvolt = <1800000>; 52 + regulator-max-microvolt = <3300000>; 53 + gpios = <&pca9505 18 0>; 54 + states = <3300000 0x0 55 + 1800000 0x1>; 56 + }; 57 + 58 + sdio1_vddo_ctrl_reg: sdio1_vddo_ctrl { 59 + compatible = "regulator-gpio"; 60 + regulator-name = "sdio1_vddo_ctrl_reg"; 61 + regulator-type = "voltage"; 62 + regulator-min-microvolt = <1800000>; 63 + regulator-max-microvolt = <3300000>; 64 + gpios = <&pca9505 19 0>; 65 + states = <3300000 0x0 66 + 1800000 0x1>; 67 + }; 68 + }; 69 + 70 + &memory { /* Default DRAM banks */ 71 + reg = <0x00000000 0x80000000 0x0 0x80000000>, /* 2G @ 2G */ 72 + <0x00000008 0x80000000 0x1 0x80000000>; /* 6G @ 34G */ 73 + }; 74 + 75 + &uart1 { 76 + status = "okay"; 77 + }; 78 + 79 + &pwm { 80 + status = "okay"; 81 + }; 82 + 83 + &i2c0 { 84 + status = "okay"; 85 + 86 + pca9505: pca9505@20 { 87 + compatible = "nxp,pca9505"; 88 + gpio-controller; 89 + #gpio-cells = <2>; 90 + reg = <0x20>; 91 + }; 92 + }; 93 + 94 + &i2c1 { 95 + status = "okay"; 96 + 97 + pcf8574: pcf8574@20 { 98 + compatible = "nxp,pcf8574a"; 99 + gpio-controller; 100 + #gpio-cells = <2>; 101 + reg = <0x27>; 102 + }; 103 + }; 104 + 105 + &nand { 106 + status = "ok"; 107 + nandcs@0 { 108 + compatible = "brcm,nandcs"; 109 + reg = <0>; 110 + nand-ecc-mode = "hw"; 111 + nand-ecc-strength = <8>; 112 + nand-ecc-step-size = <512>; 113 + nand-bus-width = <16>; 114 + brcm,nand-oob-sector-size = <16>; 115 + #address-cells = <1>; 116 + #size-cells = <1>; 117 + }; 118 + }; 119 + 120 + &sdio0 { 121 + vqmmc-supply = <&sdio0_vddo_ctrl_reg>; 122 + non-removable; 123 + full-pwr-cycle; 124 + status = "okay"; 125 + }; 126 + 127 + &sdio1 { 128 + vqmmc-supply = <&sdio1_vddo_ctrl_reg>; 129 + full-pwr-cycle; 130 + status = "okay"; 131 + };
+78
arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2016-2017 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 nor the names of its 17 + * contributors may be used to endorse or promote products derived 18 + * from this software without specific prior written permission. 19 + * 20 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 + */ 32 + 33 + /dts-v1/; 34 + 35 + #include "bcm958742-base.dtsi" 36 + 37 + / { 38 + compatible = "brcm,bcm958742k", "brcm,stingray"; 39 + model = "Stingray Combo SVK (BCM958742K)"; 40 + }; 41 + 42 + &uart2 { 43 + status = "okay"; 44 + }; 45 + 46 + &uart3 { 47 + status = "okay"; 48 + }; 49 + 50 + &ssp0 { 51 + pinctrl-0 = <&spi0_pins>; 52 + pinctrl-names = "default"; 53 + cs-gpios = <&gpio_hsls 34 0>; 54 + status = "okay"; 55 + 56 + spi-flash@0 { 57 + compatible = "jedec,spi-nor"; 58 + reg = <0>; 59 + spi-max-frequency = <20000000>; 60 + #address-cells = <1>; 61 + #size-cells = <1>; 62 + }; 63 + }; 64 + 65 + &ssp1 { 66 + pinctrl-0 = <&spi1_pins>; 67 + pinctrl-names = "default"; 68 + cs-gpios = <&gpio_hsls 96 0>; 69 + status = "okay"; 70 + 71 + spi-flash@0 { 72 + compatible = "jedec,spi-nor"; 73 + reg = <0>; 74 + spi-max-frequency = <20000000>; 75 + #address-cells = <1>; 76 + #size-cells = <1>; 77 + }; 78 + };
+40
arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2017 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 nor the names of its 17 + * contributors may be used to endorse or promote products derived 18 + * from this software without specific prior written permission. 19 + * 20 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 + */ 32 + 33 + /dts-v1/; 34 + 35 + #include "bcm958742-base.dtsi" 36 + 37 + / { 38 + compatible = "brcm,bcm958742t", "brcm,stingray"; 39 + model = "Stingray SST100 (BCM958742T)"; 40 + };
+170
arch/arm64/boot/dts/broadcom/stingray/stingray-clock.dtsi
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2016-2017 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 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-sr.h> 34 + 35 + osc: oscillator { 36 + #clock-cells = <0>; 37 + compatible = "fixed-clock"; 38 + clock-frequency = <50000000>; 39 + }; 40 + 41 + crmu_ref25m: crmu_ref25m { 42 + #clock-cells = <0>; 43 + compatible = "fixed-factor-clock"; 44 + clocks = <&osc>; 45 + clock-div = <2>; 46 + clock-mult = <1>; 47 + }; 48 + 49 + genpll0: genpll0@0001d104 { 50 + #clock-cells = <1>; 51 + compatible = "brcm,sr-genpll0"; 52 + reg = <0x0001d104 0x32>, 53 + <0x0001c854 0x4>; 54 + clocks = <&osc>; 55 + clock-output-names = "genpll0", "clk_125", "clk_scr", 56 + "clk_250", "clk_pcie_axi", 57 + "clk_paxc_axi_x2", 58 + "clk_paxc_axi"; 59 + }; 60 + 61 + genpll3: genpll3@0001d1e0 { 62 + #clock-cells = <1>; 63 + compatible = "brcm,sr-genpll3"; 64 + reg = <0x0001d1e0 0x32>, 65 + <0x0001c854 0x4>; 66 + clocks = <&osc>; 67 + clock-output-names = "genpll3", "clk_hsls", 68 + "clk_sdio"; 69 + }; 70 + 71 + genpll4: genpll4@0001d214 { 72 + #clock-cells = <1>; 73 + compatible = "brcm,sr-genpll4"; 74 + reg = <0x0001d214 0x32>, 75 + <0x0001c854 0x4>; 76 + clocks = <&osc>; 77 + clock-output-names = "genpll4", "clk_ccn", 78 + "clk_tpiu_pll", "noc_clk", 79 + "pll_chclk_fs4", 80 + "clk_bridge_fscpu"; 81 + }; 82 + 83 + genpll5: genpll5@0001d248 { 84 + #clock-cells = <1>; 85 + compatible = "brcm,sr-genpll5"; 86 + reg = <0x0001d248 0x32>, 87 + <0x0001c870 0x4>; 88 + clocks = <&osc>; 89 + clock-output-names = "genpll5", "fs4_hf_clk", 90 + "crypto_ae_clk", "raid_ae_clk"; 91 + }; 92 + 93 + lcpll0: lcpll0@0001d0c4 { 94 + #clock-cells = <1>; 95 + compatible = "brcm,sr-lcpll0"; 96 + reg = <0x0001d0c4 0x3c>, 97 + <0x0001c870 0x4>; 98 + clocks = <&osc>; 99 + clock-output-names = "lcpll0", "clk_sata_refp", 100 + "clk_sata_refn", "clk_sata_350", 101 + "clk_sata_500"; 102 + }; 103 + 104 + lcpll1: lcpll1@0001d138 { 105 + #clock-cells = <1>; 106 + compatible = "brcm,sr-lcpll1"; 107 + reg = <0x0001d138 0x3c>, 108 + <0x0001c870 0x4>; 109 + clocks = <&osc>; 110 + clock-output-names = "lcpll1", "clk_wanpn", 111 + "clk_usb_ref", 112 + "timesync_evt_clk"; 113 + }; 114 + 115 + hsls_clk: hsls_clk { 116 + #clock-cells = <0>; 117 + compatible = "fixed-factor-clock"; 118 + clocks = <&genpll3 1>; 119 + clock-div = <1>; 120 + clock-mult = <1>; 121 + }; 122 + 123 + hsls_div2_clk: hsls_div2_clk { 124 + #clock-cells = <0>; 125 + compatible = "fixed-factor-clock"; 126 + clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>; 127 + clock-div = <2>; 128 + clock-mult = <1>; 129 + 130 + }; 131 + 132 + hsls_div4_clk: hsls_div4_clk { 133 + #clock-cells = <0>; 134 + compatible = "fixed-factor-clock"; 135 + clocks = <&genpll3 BCM_SR_GENPLL3_HSLS_CLK>; 136 + clock-div = <4>; 137 + clock-mult = <1>; 138 + }; 139 + 140 + hsls_25m_clk: hsls_25m_clk { 141 + #clock-cells = <0>; 142 + compatible = "fixed-factor-clock"; 143 + clocks = <&crmu_ref25m>; 144 + clock-div = <1>; 145 + clock-mult = <1>; 146 + }; 147 + 148 + hsls_25m_div2_clk: hsls_25m_div2_clk { 149 + #clock-cells = <0>; 150 + compatible = "fixed-factor-clock"; 151 + clocks = <&hsls_25m_clk>; 152 + clock-div = <2>; 153 + clock-mult = <1>; 154 + }; 155 + 156 + sdio0_clk: sdio0_clk { 157 + #clock-cells = <0>; 158 + compatible = "fixed-factor-clock"; 159 + clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>; 160 + clock-div = <1>; 161 + clock-mult = <1>; 162 + }; 163 + 164 + sdio1_clk: sdio1_clk { 165 + #clock-cells = <0>; 166 + compatible = "fixed-factor-clock"; 167 + clocks = <&genpll3 BCM_SR_GENPLL3_SDIO_CLK>; 168 + clock-div = <1>; 169 + clock-mult = <1>; 170 + };
+345
arch/arm64/boot/dts/broadcom/stingray/stingray-pinctrl.dtsi
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2016-2017 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 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/pinctrl/brcm,pinctrl-stingray.h> 34 + 35 + pinconf: pinconf@00140000 { 36 + compatible = "pinconf-single"; 37 + reg = <0x00140000 0x250>; 38 + pinctrl-single,register-width = <32>; 39 + 40 + /* pinconf functions */ 41 + }; 42 + 43 + pinmux: pinmux@0014029c { 44 + compatible = "pinctrl-single"; 45 + reg = <0x0014029c 0x250>; 46 + #address-cells = <1>; 47 + #size-cells = <1>; 48 + pinctrl-single,register-width = <32>; 49 + pinctrl-single,function-mask = <0xf>; 50 + pinctrl-single,gpio-range = < 51 + &range 0 154 MODE_GPIO 52 + >; 53 + range: gpio-range { 54 + #pinctrl-single,gpio-range-cells = <3>; 55 + }; 56 + 57 + /* pinctrl functions */ 58 + tsio_pins: pinmux_gpio_14 { 59 + pinctrl-single,pins = < 60 + 0x038 MODE_NITRO /* tsio_0 */ 61 + 0x03c MODE_NITRO /* tsio_1 */ 62 + >; 63 + }; 64 + 65 + nor_pins: pinmux_pnor_adv_n { 66 + pinctrl-single,pins = < 67 + 0x0ac MODE_PNOR /* nand_ce1_n */ 68 + 0x0b0 MODE_PNOR /* nand_ce0_n */ 69 + 0x0b4 MODE_PNOR /* nand_we_n */ 70 + 0x0b8 MODE_PNOR /* nand_wp_n */ 71 + 0x0bc MODE_PNOR /* nand_re_n */ 72 + 0x0c0 MODE_PNOR /* nand_rdy_bsy_n */ 73 + 0x0c4 MODE_PNOR /* nand_io0_0 */ 74 + 0x0c8 MODE_PNOR /* nand_io1_0 */ 75 + 0x0cc MODE_PNOR /* nand_io2_0 */ 76 + 0x0d0 MODE_PNOR /* nand_io3_0 */ 77 + 0x0d4 MODE_PNOR /* nand_io4_0 */ 78 + 0x0d8 MODE_PNOR /* nand_io5_0 */ 79 + 0x0dc MODE_PNOR /* nand_io6_0 */ 80 + 0x0e0 MODE_PNOR /* nand_io7_0 */ 81 + 0x0e4 MODE_PNOR /* nand_io8_0 */ 82 + 0x0e8 MODE_PNOR /* nand_io9_0 */ 83 + 0x0ec MODE_PNOR /* nand_io10_0 */ 84 + 0x0f0 MODE_PNOR /* nand_io11_0 */ 85 + 0x0f4 MODE_PNOR /* nand_io12_0 */ 86 + 0x0f8 MODE_PNOR /* nand_io13_0 */ 87 + 0x0fc MODE_PNOR /* nand_io14_0 */ 88 + 0x100 MODE_PNOR /* nand_io15_0 */ 89 + 0x104 MODE_PNOR /* nand_ale_0 */ 90 + 0x108 MODE_PNOR /* nand_cle_0 */ 91 + 0x040 MODE_PNOR /* pnor_adv_n */ 92 + 0x044 MODE_PNOR /* pnor_baa_n */ 93 + 0x048 MODE_PNOR /* pnor_bls_0_n */ 94 + 0x04c MODE_PNOR /* pnor_bls_1_n */ 95 + 0x050 MODE_PNOR /* pnor_cre */ 96 + 0x054 MODE_PNOR /* pnor_cs_2_n */ 97 + 0x058 MODE_PNOR /* pnor_cs_1_n */ 98 + 0x05c MODE_PNOR /* pnor_cs_0_n */ 99 + 0x060 MODE_PNOR /* pnor_we_n */ 100 + 0x064 MODE_PNOR /* pnor_oe_n */ 101 + 0x068 MODE_PNOR /* pnor_intr */ 102 + 0x06c MODE_PNOR /* pnor_dat_0 */ 103 + 0x070 MODE_PNOR /* pnor_dat_1 */ 104 + 0x074 MODE_PNOR /* pnor_dat_2 */ 105 + 0x078 MODE_PNOR /* pnor_dat_3 */ 106 + 0x07c MODE_PNOR /* pnor_dat_4 */ 107 + 0x080 MODE_PNOR /* pnor_dat_5 */ 108 + 0x084 MODE_PNOR /* pnor_dat_6 */ 109 + 0x088 MODE_PNOR /* pnor_dat_7 */ 110 + 0x08c MODE_PNOR /* pnor_dat_8 */ 111 + 0x090 MODE_PNOR /* pnor_dat_9 */ 112 + 0x094 MODE_PNOR /* pnor_dat_10 */ 113 + 0x098 MODE_PNOR /* pnor_dat_11 */ 114 + 0x09c MODE_PNOR /* pnor_dat_12 */ 115 + 0x0a0 MODE_PNOR /* pnor_dat_13 */ 116 + 0x0a4 MODE_PNOR /* pnor_dat_14 */ 117 + 0x0a8 MODE_PNOR /* pnor_dat_15 */ 118 + >; 119 + }; 120 + 121 + nand_pins: pinmux_nand_ce1_n { 122 + pinctrl-single,pins = < 123 + 0x0ac MODE_NAND /* nand_ce1_n */ 124 + 0x0b0 MODE_NAND /* nand_ce0_n */ 125 + 0x0b4 MODE_NAND /* nand_we_n */ 126 + 0x0b8 MODE_NAND /* nand_wp_n */ 127 + 0x0bc MODE_NAND /* nand_re_n */ 128 + 0x0c0 MODE_NAND /* nand_rdy_bsy_n */ 129 + 0x0c4 MODE_NAND /* nand_io0_0 */ 130 + 0x0c8 MODE_NAND /* nand_io1_0 */ 131 + 0x0cc MODE_NAND /* nand_io2_0 */ 132 + 0x0d0 MODE_NAND /* nand_io3_0 */ 133 + 0x0d4 MODE_NAND /* nand_io4_0 */ 134 + 0x0d8 MODE_NAND /* nand_io5_0 */ 135 + 0x0dc MODE_NAND /* nand_io6_0 */ 136 + 0x0e0 MODE_NAND /* nand_io7_0 */ 137 + 0x0e4 MODE_NAND /* nand_io8_0 */ 138 + 0x0e8 MODE_NAND /* nand_io9_0 */ 139 + 0x0ec MODE_NAND /* nand_io10_0 */ 140 + 0x0f0 MODE_NAND /* nand_io11_0 */ 141 + 0x0f4 MODE_NAND /* nand_io12_0 */ 142 + 0x0f8 MODE_NAND /* nand_io13_0 */ 143 + 0x0fc MODE_NAND /* nand_io14_0 */ 144 + 0x100 MODE_NAND /* nand_io15_0 */ 145 + 0x104 MODE_NAND /* nand_ale_0 */ 146 + 0x108 MODE_NAND /* nand_cle_0 */ 147 + >; 148 + }; 149 + 150 + pwm0_pins: pinmux_pwm_0 { 151 + pinctrl-single,pins = < 152 + 0x10c MODE_NITRO 153 + >; 154 + }; 155 + 156 + pwm1_pins: pinmux_pwm_1 { 157 + pinctrl-single,pins = < 158 + 0x110 MODE_NITRO 159 + >; 160 + }; 161 + 162 + pwm2_pins: pinmux_pwm_2 { 163 + pinctrl-single,pins = < 164 + 0x114 MODE_NITRO 165 + >; 166 + }; 167 + 168 + pwm3_pins: pinmux_pwm_3 { 169 + pinctrl-single,pins = < 170 + 0x118 MODE_NITRO 171 + >; 172 + }; 173 + 174 + dbu_rxd_pins: pinmux_uart1_sin_nitro { 175 + pinctrl-single,pins = < 176 + 0x11c MODE_NITRO /* dbu_rxd */ 177 + 0x120 MODE_NITRO /* dbu_txd */ 178 + >; 179 + }; 180 + 181 + uart1_pins: pinmux_uart1_sin_nand { 182 + pinctrl-single,pins = < 183 + 0x11c MODE_NAND /* uart1_sin */ 184 + 0x120 MODE_NAND /* uart1_out */ 185 + >; 186 + }; 187 + 188 + uart2_pins: pinmux_uart2_sin { 189 + pinctrl-single,pins = < 190 + 0x124 MODE_NITRO /* uart2_sin */ 191 + 0x128 MODE_NITRO /* uart2_out */ 192 + >; 193 + }; 194 + 195 + uart3_pins: pinmux_uart3_sin { 196 + pinctrl-single,pins = < 197 + 0x12c MODE_NITRO /* uart3_sin */ 198 + 0x130 MODE_NITRO /* uart3_out */ 199 + >; 200 + }; 201 + 202 + i2s_pins: pinmux_i2s_bitclk { 203 + pinctrl-single,pins = < 204 + 0x134 MODE_NITRO /* i2s_bitclk */ 205 + 0x138 MODE_NITRO /* i2s_sdout */ 206 + 0x13c MODE_NITRO /* i2s_sdin */ 207 + 0x140 MODE_NITRO /* i2s_ws */ 208 + 0x144 MODE_NITRO /* i2s_mclk */ 209 + 0x148 MODE_NITRO /* i2s_spdif_out */ 210 + >; 211 + }; 212 + 213 + qspi_pins: pinumx_qspi_hold_n { 214 + pinctrl-single,pins = < 215 + 0x14c MODE_NAND /* qspi_hold_n */ 216 + 0x150 MODE_NAND /* qspi_wp_n */ 217 + 0x154 MODE_NAND /* qspi_sck */ 218 + 0x158 MODE_NAND /* qspi_cs_n */ 219 + 0x15c MODE_NAND /* qspi_mosi */ 220 + 0x160 MODE_NAND /* qspi_miso */ 221 + >; 222 + }; 223 + 224 + mdio_pins: pinumx_ext_mdio { 225 + pinctrl-single,pins = < 226 + 0x164 MODE_NITRO /* ext_mdio */ 227 + 0x168 MODE_NITRO /* ext_mdc */ 228 + >; 229 + }; 230 + 231 + i2c0_pins: pinmux_i2c0_sda { 232 + pinctrl-single,pins = < 233 + 0x16c MODE_NITRO /* i2c0_sda */ 234 + 0x170 MODE_NITRO /* i2c0_scl */ 235 + >; 236 + }; 237 + 238 + i2c1_pins: pinmux_i2c1_sda { 239 + pinctrl-single,pins = < 240 + 0x174 MODE_NITRO /* i2c1_sda */ 241 + 0x178 MODE_NITRO /* i2c1_scl */ 242 + >; 243 + }; 244 + 245 + sdio0_pins: pinmux_sdio0_cd_l { 246 + pinctrl-single,pins = < 247 + 0x17c MODE_NITRO /* sdio0_cd_l */ 248 + 0x180 MODE_NITRO /* sdio0_clk_sdcard */ 249 + 0x184 MODE_NITRO /* sdio0_data0 */ 250 + 0x188 MODE_NITRO /* sdio0_data1 */ 251 + 0x18c MODE_NITRO /* sdio0_data2 */ 252 + 0x190 MODE_NITRO /* sdio0_data3 */ 253 + 0x194 MODE_NITRO /* sdio0_data4 */ 254 + 0x198 MODE_NITRO /* sdio0_data5 */ 255 + 0x19c MODE_NITRO /* sdio0_data6 */ 256 + 0x1a0 MODE_NITRO /* sdio0_data7 */ 257 + 0x1a4 MODE_NITRO /* sdio0_cmd */ 258 + 0x1a8 MODE_NITRO /* sdio0_emmc_rst_n */ 259 + 0x1ac MODE_NITRO /* sdio0_led_on */ 260 + 0x1b0 MODE_NITRO /* sdio0_wp */ 261 + >; 262 + }; 263 + 264 + sdio1_pins: pinmux_sdio1_cd_l { 265 + pinctrl-single,pins = < 266 + 0x1b4 MODE_NITRO /* sdio1_cd_l */ 267 + 0x1b8 MODE_NITRO /* sdio1_clk_sdcard */ 268 + 0x1bc MODE_NITRO /* sdio1_data0 */ 269 + 0x1c0 MODE_NITRO /* sdio1_data1 */ 270 + 0x1c4 MODE_NITRO /* sdio1_data2 */ 271 + 0x1c8 MODE_NITRO /* sdio1_data3 */ 272 + 0x1cc MODE_NITRO /* sdio1_data4 */ 273 + 0x1d0 MODE_NITRO /* sdio1_data5 */ 274 + 0x1d4 MODE_NITRO /* sdio1_data6 */ 275 + 0x1d8 MODE_NITRO /* sdio1_data7 */ 276 + 0x1dc MODE_NITRO /* sdio1_cmd */ 277 + 0x1e0 MODE_NITRO /* sdio1_emmc_rst_n */ 278 + 0x1e4 MODE_NITRO /* sdio1_led_on */ 279 + 0x1e8 MODE_NITRO /* sdio1_wp */ 280 + >; 281 + }; 282 + 283 + spi0_pins: pinmux_spi0_sck_nand { 284 + pinctrl-single,pins = < 285 + 0x1ec MODE_NITRO /* spi0_sck */ 286 + 0x1f0 MODE_NITRO /* spi0_rxd */ 287 + 0x1f4 MODE_NITRO /* spi0_fss */ 288 + 0x1f8 MODE_NITRO /* spi0_txd */ 289 + >; 290 + }; 291 + 292 + spi1_pins: pinmux_spi1_sck_nand { 293 + pinctrl-single,pins = < 294 + 0x1fc MODE_NITRO /* spi1_sck */ 295 + 0x200 MODE_NITRO /* spi1_rxd */ 296 + 0x204 MODE_NITRO /* spi1_fss */ 297 + 0x208 MODE_NITRO /* spi1_txd */ 298 + >; 299 + }; 300 + 301 + nuart_pins: pinmux_uart0_sin_nitro { 302 + pinctrl-single,pins = < 303 + 0x20c MODE_NITRO /* nuart_rxd */ 304 + 0x210 MODE_NITRO /* nuart_txd */ 305 + >; 306 + }; 307 + 308 + uart0_pins: pinumux_uart0_sin_nand { 309 + pinctrl-single,pins = < 310 + 0x20c MODE_NAND /* uart0_sin */ 311 + 0x210 MODE_NAND /* uart0_out */ 312 + 0x214 MODE_NAND /* uart0_rts */ 313 + 0x218 MODE_NAND /* uart0_cts */ 314 + 0x21c MODE_NAND /* uart0_dtr */ 315 + 0x220 MODE_NAND /* uart0_dcd */ 316 + 0x224 MODE_NAND /* uart0_dsr */ 317 + 0x228 MODE_NAND /* uart0_ri */ 318 + >; 319 + }; 320 + 321 + drdu2_pins: pinmux_drdu2_overcurrent { 322 + pinctrl-single,pins = < 323 + 0x22c MODE_NITRO /* drdu2_overcurrent */ 324 + 0x230 MODE_NITRO /* drdu2_vbus_ppc */ 325 + 0x234 MODE_NITRO /* drdu2_vbus_present */ 326 + 0x238 MODE_NITRO /* drdu2_id */ 327 + >; 328 + }; 329 + 330 + drdu3_pins: pinmux_drdu3_overcurrent { 331 + pinctrl-single,pins = < 332 + 0x23c MODE_NITRO /* drdu3_overcurrent */ 333 + 0x240 MODE_NITRO /* drdu3_vbus_ppc */ 334 + 0x244 MODE_NITRO /* drdu3_vbus_present */ 335 + 0x248 MODE_NITRO /* drdu3_id */ 336 + >; 337 + }; 338 + 339 + usb3h_pins: pinmux_usb3h_overcurrent { 340 + pinctrl-single,pins = < 341 + 0x24c MODE_NITRO /* usb3h_overcurrent */ 342 + 0x250 MODE_NITRO /* usb3h_vbus_ppc */ 343 + >; 344 + }; 345 + };
+460
arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2015-2017 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 nor the names of its 17 + * contributors may be used to endorse or promote products derived 18 + * from this software without specific prior written permission. 19 + * 20 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 + */ 32 + 33 + #include <dt-bindings/interrupt-controller/arm-gic.h> 34 + 35 + / { 36 + compatible = "brcm,stingray"; 37 + interrupt-parent = <&gic>; 38 + #address-cells = <2>; 39 + #size-cells = <2>; 40 + 41 + cpus { 42 + #address-cells = <2>; 43 + #size-cells = <0>; 44 + 45 + cpu@000 { 46 + device_type = "cpu"; 47 + compatible = "arm,cortex-a72", "arm,armv8"; 48 + reg = <0x0 0x0>; 49 + enable-method = "psci"; 50 + next-level-cache = <&CLUSTER0_L2>; 51 + }; 52 + 53 + cpu@001 { 54 + device_type = "cpu"; 55 + compatible = "arm,cortex-a72", "arm,armv8"; 56 + reg = <0x0 0x1>; 57 + enable-method = "psci"; 58 + next-level-cache = <&CLUSTER0_L2>; 59 + }; 60 + 61 + cpu@100 { 62 + device_type = "cpu"; 63 + compatible = "arm,cortex-a72", "arm,armv8"; 64 + reg = <0x0 0x100>; 65 + enable-method = "psci"; 66 + next-level-cache = <&CLUSTER1_L2>; 67 + }; 68 + 69 + cpu@101 { 70 + device_type = "cpu"; 71 + compatible = "arm,cortex-a72", "arm,armv8"; 72 + reg = <0x0 0x101>; 73 + enable-method = "psci"; 74 + next-level-cache = <&CLUSTER1_L2>; 75 + }; 76 + 77 + cpu@200 { 78 + device_type = "cpu"; 79 + compatible = "arm,cortex-a72", "arm,armv8"; 80 + reg = <0x0 0x200>; 81 + enable-method = "psci"; 82 + next-level-cache = <&CLUSTER2_L2>; 83 + }; 84 + 85 + cpu@201 { 86 + device_type = "cpu"; 87 + compatible = "arm,cortex-a72", "arm,armv8"; 88 + reg = <0x0 0x201>; 89 + enable-method = "psci"; 90 + next-level-cache = <&CLUSTER2_L2>; 91 + }; 92 + 93 + cpu@300 { 94 + device_type = "cpu"; 95 + compatible = "arm,cortex-a72", "arm,armv8"; 96 + reg = <0x0 0x300>; 97 + enable-method = "psci"; 98 + next-level-cache = <&CLUSTER3_L2>; 99 + }; 100 + 101 + cpu@301 { 102 + device_type = "cpu"; 103 + compatible = "arm,cortex-a72", "arm,armv8"; 104 + reg = <0x0 0x301>; 105 + enable-method = "psci"; 106 + next-level-cache = <&CLUSTER3_L2>; 107 + }; 108 + 109 + CLUSTER0_L2: l2-cache@000 { 110 + compatible = "cache"; 111 + }; 112 + 113 + CLUSTER1_L2: l2-cache@100 { 114 + compatible = "cache"; 115 + }; 116 + 117 + CLUSTER2_L2: l2-cache@200 { 118 + compatible = "cache"; 119 + }; 120 + 121 + CLUSTER3_L2: l2-cache@300 { 122 + compatible = "cache"; 123 + }; 124 + }; 125 + 126 + memory: memory@80000000 { 127 + device_type = "memory"; 128 + reg = <0x00000000 0x80000000 0 0x40000000>; 129 + }; 130 + 131 + psci { 132 + compatible = "arm,psci-0.2"; 133 + method = "smc"; 134 + }; 135 + 136 + pmu { 137 + compatible = "arm,armv8-pmuv3"; 138 + interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 139 + }; 140 + 141 + timer { 142 + compatible = "arm,armv8-timer"; 143 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 144 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 145 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 146 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 147 + }; 148 + 149 + scr { 150 + compatible = "simple-bus"; 151 + #address-cells = <1>; 152 + #size-cells = <1>; 153 + ranges = <0x0 0x0 0x61000000 0x05000000>; 154 + 155 + gic: interrupt-controller@02c00000 { 156 + compatible = "arm,gic-v3"; 157 + #interrupt-cells = <3>; 158 + #address-cells = <1>; 159 + #size-cells = <1>; 160 + ranges; 161 + interrupt-controller; 162 + reg = <0x02c00000 0x010000>, /* GICD */ 163 + <0x02e00000 0x600000>; /* GICR */ 164 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 165 + 166 + gic_its: gic-its@63c20000 { 167 + compatible = "arm,gic-v3-its"; 168 + msi-controller; 169 + #msi-cells = <1>; 170 + reg = <0x02c20000 0x10000>; 171 + }; 172 + }; 173 + 174 + smmu: mmu@03000000 { 175 + compatible = "arm,mmu-500"; 176 + reg = <0x03000000 0x80000>; 177 + #global-interrupts = <1>; 178 + interrupts = <GIC_SPI 704 IRQ_TYPE_LEVEL_HIGH>, 179 + <GIC_SPI 711 IRQ_TYPE_LEVEL_HIGH>, 180 + <GIC_SPI 712 IRQ_TYPE_LEVEL_HIGH>, 181 + <GIC_SPI 713 IRQ_TYPE_LEVEL_HIGH>, 182 + <GIC_SPI 714 IRQ_TYPE_LEVEL_HIGH>, 183 + <GIC_SPI 715 IRQ_TYPE_LEVEL_HIGH>, 184 + <GIC_SPI 716 IRQ_TYPE_LEVEL_HIGH>, 185 + <GIC_SPI 717 IRQ_TYPE_LEVEL_HIGH>, 186 + <GIC_SPI 718 IRQ_TYPE_LEVEL_HIGH>, 187 + <GIC_SPI 719 IRQ_TYPE_LEVEL_HIGH>, 188 + <GIC_SPI 720 IRQ_TYPE_LEVEL_HIGH>, 189 + <GIC_SPI 721 IRQ_TYPE_LEVEL_HIGH>, 190 + <GIC_SPI 722 IRQ_TYPE_LEVEL_HIGH>, 191 + <GIC_SPI 723 IRQ_TYPE_LEVEL_HIGH>, 192 + <GIC_SPI 724 IRQ_TYPE_LEVEL_HIGH>, 193 + <GIC_SPI 725 IRQ_TYPE_LEVEL_HIGH>, 194 + <GIC_SPI 726 IRQ_TYPE_LEVEL_HIGH>, 195 + <GIC_SPI 727 IRQ_TYPE_LEVEL_HIGH>, 196 + <GIC_SPI 728 IRQ_TYPE_LEVEL_HIGH>, 197 + <GIC_SPI 729 IRQ_TYPE_LEVEL_HIGH>, 198 + <GIC_SPI 730 IRQ_TYPE_LEVEL_HIGH>, 199 + <GIC_SPI 731 IRQ_TYPE_LEVEL_HIGH>, 200 + <GIC_SPI 732 IRQ_TYPE_LEVEL_HIGH>, 201 + <GIC_SPI 733 IRQ_TYPE_LEVEL_HIGH>, 202 + <GIC_SPI 734 IRQ_TYPE_LEVEL_HIGH>, 203 + <GIC_SPI 735 IRQ_TYPE_LEVEL_HIGH>, 204 + <GIC_SPI 736 IRQ_TYPE_LEVEL_HIGH>, 205 + <GIC_SPI 737 IRQ_TYPE_LEVEL_HIGH>, 206 + <GIC_SPI 738 IRQ_TYPE_LEVEL_HIGH>, 207 + <GIC_SPI 739 IRQ_TYPE_LEVEL_HIGH>, 208 + <GIC_SPI 740 IRQ_TYPE_LEVEL_HIGH>, 209 + <GIC_SPI 741 IRQ_TYPE_LEVEL_HIGH>, 210 + <GIC_SPI 742 IRQ_TYPE_LEVEL_HIGH>, 211 + <GIC_SPI 743 IRQ_TYPE_LEVEL_HIGH>, 212 + <GIC_SPI 744 IRQ_TYPE_LEVEL_HIGH>, 213 + <GIC_SPI 745 IRQ_TYPE_LEVEL_HIGH>, 214 + <GIC_SPI 746 IRQ_TYPE_LEVEL_HIGH>, 215 + <GIC_SPI 747 IRQ_TYPE_LEVEL_HIGH>, 216 + <GIC_SPI 748 IRQ_TYPE_LEVEL_HIGH>, 217 + <GIC_SPI 749 IRQ_TYPE_LEVEL_HIGH>, 218 + <GIC_SPI 750 IRQ_TYPE_LEVEL_HIGH>, 219 + <GIC_SPI 751 IRQ_TYPE_LEVEL_HIGH>, 220 + <GIC_SPI 752 IRQ_TYPE_LEVEL_HIGH>, 221 + <GIC_SPI 753 IRQ_TYPE_LEVEL_HIGH>, 222 + <GIC_SPI 754 IRQ_TYPE_LEVEL_HIGH>, 223 + <GIC_SPI 755 IRQ_TYPE_LEVEL_HIGH>, 224 + <GIC_SPI 756 IRQ_TYPE_LEVEL_HIGH>, 225 + <GIC_SPI 757 IRQ_TYPE_LEVEL_HIGH>, 226 + <GIC_SPI 758 IRQ_TYPE_LEVEL_HIGH>, 227 + <GIC_SPI 759 IRQ_TYPE_LEVEL_HIGH>, 228 + <GIC_SPI 760 IRQ_TYPE_LEVEL_HIGH>, 229 + <GIC_SPI 761 IRQ_TYPE_LEVEL_HIGH>, 230 + <GIC_SPI 762 IRQ_TYPE_LEVEL_HIGH>, 231 + <GIC_SPI 763 IRQ_TYPE_LEVEL_HIGH>, 232 + <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH>, 233 + <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH>, 234 + <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH>, 235 + <GIC_SPI 767 IRQ_TYPE_LEVEL_HIGH>, 236 + <GIC_SPI 768 IRQ_TYPE_LEVEL_HIGH>, 237 + <GIC_SPI 769 IRQ_TYPE_LEVEL_HIGH>, 238 + <GIC_SPI 770 IRQ_TYPE_LEVEL_HIGH>, 239 + <GIC_SPI 771 IRQ_TYPE_LEVEL_HIGH>, 240 + <GIC_SPI 772 IRQ_TYPE_LEVEL_HIGH>, 241 + <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>, 242 + <GIC_SPI 774 IRQ_TYPE_LEVEL_HIGH>; 243 + #iommu-cells = <2>; 244 + }; 245 + }; 246 + 247 + crmu: crmu { 248 + compatible = "simple-bus"; 249 + #address-cells = <1>; 250 + #size-cells = <1>; 251 + ranges = <0x0 0x0 0x66400000 0x100000>; 252 + 253 + #include "stingray-clock.dtsi" 254 + 255 + gpio_crmu: gpio@00024800 { 256 + compatible = "brcm,iproc-gpio"; 257 + reg = <0x00024800 0x4c>; 258 + ngpios = <6>; 259 + #gpio-cells = <2>; 260 + gpio-controller; 261 + }; 262 + }; 263 + 264 + hsls { 265 + compatible = "simple-bus"; 266 + #address-cells = <1>; 267 + #size-cells = <1>; 268 + ranges = <0x0 0x0 0x68900000 0x17700000>; 269 + 270 + #include "stingray-pinctrl.dtsi" 271 + 272 + pwm: pwm@00010000 { 273 + compatible = "brcm,iproc-pwm"; 274 + reg = <0x00010000 0x1000>; 275 + clocks = <&crmu_ref25m>; 276 + #pwm-cells = <3>; 277 + status = "disabled"; 278 + }; 279 + 280 + i2c0: i2c@000b0000 { 281 + compatible = "brcm,iproc-i2c"; 282 + reg = <0x000b0000 0x100>; 283 + #address-cells = <1>; 284 + #size-cells = <0>; 285 + interrupts = <GIC_SPI 177 IRQ_TYPE_NONE>; 286 + clock-frequency = <100000>; 287 + status = "disabled"; 288 + }; 289 + 290 + wdt0: watchdog@000c0000 { 291 + compatible = "arm,sp805", "arm,primecell"; 292 + reg = <0x000c0000 0x1000>; 293 + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 294 + clocks = <&hsls_25m_div2_clk>, <&hsls_div4_clk>; 295 + clock-names = "wdogclk", "apb_pclk"; 296 + }; 297 + 298 + gpio_hsls: gpio@000d0000 { 299 + compatible = "brcm,iproc-gpio"; 300 + reg = <0x000d0000 0x864>; 301 + ngpios = <151>; 302 + #gpio-cells = <2>; 303 + gpio-controller; 304 + interrupt-controller; 305 + interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>; 306 + gpio-ranges = <&pinmux 0 0 16>, 307 + <&pinmux 16 71 2>, 308 + <&pinmux 18 131 8>, 309 + <&pinmux 26 83 6>, 310 + <&pinmux 32 123 4>, 311 + <&pinmux 36 43 24>, 312 + <&pinmux 60 89 2>, 313 + <&pinmux 62 73 4>, 314 + <&pinmux 66 95 28>, 315 + <&pinmux 94 127 4>, 316 + <&pinmux 98 139 10>, 317 + <&pinmux 108 16 27>, 318 + <&pinmux 135 77 6>, 319 + <&pinmux 141 67 4>, 320 + <&pinmux 145 149 6>, 321 + <&pinmux 151 91 4>; 322 + }; 323 + 324 + i2c1: i2c@000e0000 { 325 + compatible = "brcm,iproc-i2c"; 326 + reg = <0x000e0000 0x100>; 327 + #address-cells = <1>; 328 + #size-cells = <0>; 329 + interrupts = <GIC_SPI 178 IRQ_TYPE_NONE>; 330 + clock-frequency = <100000>; 331 + status = "disabled"; 332 + }; 333 + 334 + uart0: uart@00100000 { 335 + device_type = "serial"; 336 + compatible = "snps,dw-apb-uart"; 337 + reg = <0x00100000 0x1000>; 338 + reg-shift = <2>; 339 + clock-frequency = <25000000>; 340 + interrupt-parent = <&gic>; 341 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 342 + status = "disabled"; 343 + }; 344 + 345 + uart1: uart@00110000 { 346 + device_type = "serial"; 347 + compatible = "snps,dw-apb-uart"; 348 + reg = <0x00110000 0x1000>; 349 + reg-shift = <2>; 350 + clock-frequency = <25000000>; 351 + interrupt-parent = <&gic>; 352 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 353 + status = "disabled"; 354 + }; 355 + 356 + uart2: uart@00120000 { 357 + device_type = "serial"; 358 + compatible = "snps,dw-apb-uart"; 359 + reg = <0x00120000 0x1000>; 360 + reg-shift = <2>; 361 + clock-frequency = <25000000>; 362 + interrupt-parent = <&gic>; 363 + interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 364 + status = "disabled"; 365 + }; 366 + 367 + uart3: uart@00130000 { 368 + device_type = "serial"; 369 + compatible = "snps,dw-apb-uart"; 370 + reg = <0x00130000 0x1000>; 371 + reg-shift = <2>; 372 + clock-frequency = <25000000>; 373 + interrupt-parent = <&gic>; 374 + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 375 + status = "disabled"; 376 + }; 377 + 378 + ssp0: ssp@00180000 { 379 + compatible = "arm,pl022", "arm,primecell"; 380 + reg = <0x00180000 0x1000>; 381 + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 382 + clocks = <&hsls_div2_clk>, <&hsls_div2_clk>; 383 + clock-names = "spiclk", "apb_pclk"; 384 + num-cs = <1>; 385 + #address-cells = <1>; 386 + #size-cells = <0>; 387 + status = "disabled"; 388 + }; 389 + 390 + ssp1: ssp@00190000 { 391 + compatible = "arm,pl022", "arm,primecell"; 392 + reg = <0x00190000 0x1000>; 393 + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 394 + clocks = <&hsls_div2_clk>, <&hsls_div2_clk>; 395 + clock-names = "spiclk", "apb_pclk"; 396 + num-cs = <1>; 397 + #address-cells = <1>; 398 + #size-cells = <0>; 399 + status = "disabled"; 400 + }; 401 + 402 + hwrng: hwrng@00220000 { 403 + compatible = "brcm,iproc-rng200"; 404 + reg = <0x00220000 0x28>; 405 + }; 406 + 407 + dma0: dma@00310000 { 408 + compatible = "arm,pl330", "arm,primecell"; 409 + reg = <0x00310000 0x1000>; 410 + interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, 411 + <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, 412 + <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, 413 + <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, 414 + <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, 415 + <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, 416 + <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>, 417 + <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>, 418 + <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>; 419 + #dma-cells = <1>; 420 + #dma-channels = <8>; 421 + #dma-requests = <32>; 422 + clocks = <&hsls_div2_clk>; 423 + clock-names = "apb_pclk"; 424 + iommus = <&smmu 0x6000 0x0000>; 425 + }; 426 + 427 + nand: nand@00360000 { 428 + compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 429 + reg = <0x00360000 0x600>, 430 + <0x0050a408 0x600>, 431 + <0x00360f00 0x20>; 432 + reg-names = "nand", "iproc-idm", "iproc-ext"; 433 + interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>; 434 + #address-cells = <1>; 435 + #size-cells = <0>; 436 + brcm,nand-has-wp; 437 + status = "disabled"; 438 + }; 439 + 440 + sdio0: sdhci@003f1000 { 441 + compatible = "brcm,sdhci-iproc"; 442 + reg = <0x003f1000 0x100>; 443 + interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>; 444 + bus-width = <8>; 445 + clocks = <&sdio0_clk>; 446 + iommus = <&smmu 0x6002 0x0000>; 447 + status = "disabled"; 448 + }; 449 + 450 + sdio1: sdhci@003f2000 { 451 + compatible = "brcm,sdhci-iproc"; 452 + reg = <0x003f2000 0x100>; 453 + interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>; 454 + bus-width = <8>; 455 + clocks = <&sdio1_clk>; 456 + iommus = <&smmu 0x6003 0x0000>; 457 + status = "disabled"; 458 + }; 459 + }; 460 + };
-1
arch/arm64/boot/dts/exynos/exynos5433-tm2.dts
··· 60 60 vci-supply = <&ldo28_reg>; 61 61 reset-gpios = <&gpg0 0 GPIO_ACTIVE_LOW>; 62 62 enable-gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>; 63 - te-gpios = <&gpf1 3 GPIO_ACTIVE_HIGH>; 64 63 }; 65 64 }; 66 65
+1 -1
arch/arm64/boot/dts/freescale/fsl-ls1012a-frdm.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS1012A Freedom Board. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * This file is dual-licensed: you can use it either under the terms 7 7 * of the GPLv2 or the X11 license, at your option. Note that this dual
+9 -1
arch/arm64/boot/dts/freescale/fsl-ls1012a-qds.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS1012A QDS Board. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * This file is dual-licensed: you can use it either under the terms 7 7 * of the GPLv2 or the X11 license, at your option. Note that this dual ··· 94 94 }; 95 95 96 96 &duart0 { 97 + status = "okay"; 98 + }; 99 + 100 + &esdhc0 { 101 + status = "okay"; 102 + }; 103 + 104 + &esdhc1 { 97 105 status = "okay"; 98 106 }; 99 107
+14 -1
arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS1012A RDB Board. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * This file is dual-licensed: you can use it either under the terms 7 7 * of the GPLv2 or the X11 license, at your option. Note that this dual ··· 51 51 }; 52 52 53 53 &duart0 { 54 + status = "okay"; 55 + }; 56 + 57 + &esdhc0 { 58 + sd-uhs-sdr104; 59 + sd-uhs-sdr50; 60 + sd-uhs-sdr25; 61 + sd-uhs-sdr12; 62 + status = "okay"; 63 + }; 64 + 65 + &esdhc1 { 66 + mmc-hs200-1_8v; 54 67 status = "okay"; 55 68 }; 56 69
+36 -3
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1012A family SoC. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * This file is dual-licensed: you can use it either under the terms 7 7 * of the GPLv2 or the X11 license, at your option. Note that this dual ··· 76 76 sysclk: sysclk { 77 77 compatible = "fixed-clock"; 78 78 #clock-cells = <0>; 79 - clock-frequency = <100000000>; 79 + clock-frequency = <125000000>; 80 80 clock-output-names = "sysclk"; 81 + }; 82 + 83 + coreclk: coreclk { 84 + compatible = "fixed-clock"; 85 + #clock-cells = <0>; 86 + clock-frequency = <100000000>; 87 + clock-output-names = "coreclk"; 81 88 }; 82 89 83 90 timer { ··· 124 117 #size-cells = <2>; 125 118 ranges; 126 119 120 + esdhc0: esdhc@1560000 { 121 + compatible = "fsl,ls1012a-esdhc", "fsl,esdhc"; 122 + reg = <0x0 0x1560000 0x0 0x10000>; 123 + interrupts = <0 62 0x4>; 124 + clocks = <&clockgen 4 0>; 125 + voltage-ranges = <1800 1800 3300 3300>; 126 + sdhci,auto-cmd12; 127 + big-endian; 128 + bus-width = <4>; 129 + status = "disabled"; 130 + }; 131 + 127 132 scfg: scfg@1570000 { 128 133 compatible = "fsl,ls1012a-scfg", "syscon"; 129 134 reg = <0x0 0x1570000 0x0 0x10000>; 130 135 big-endian; 136 + }; 137 + 138 + esdhc1: esdhc@1580000 { 139 + compatible = "fsl,ls1012a-esdhc", "fsl,esdhc"; 140 + reg = <0x0 0x1580000 0x0 0x10000>; 141 + interrupts = <0 65 0x4>; 142 + clocks = <&clockgen 4 0>; 143 + voltage-ranges = <1800 1800 3300 3300>; 144 + sdhci,auto-cmd12; 145 + big-endian; 146 + broken-cd; 147 + bus-width = <4>; 148 + status = "disabled"; 131 149 }; 132 150 133 151 crypto: crypto@1700000 { ··· 255 223 compatible = "fsl,ls1012a-clockgen"; 256 224 reg = <0x0 0x1ee1000 0x0 0x1000>; 257 225 #clock-cells = <2>; 258 - clocks = <&sysclk>; 226 + clocks = <&sysclk &coreclk>; 227 + clock-names = "sysclk", "coreclk"; 259 228 }; 260 229 261 230 tmu: tmu@1f00000 {
+45
arch/arm64/boot/dts/freescale/fsl-ls1043-post.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 device tree nodes for ls1043 3 + * 4 + * Copyright 2015-2016 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + &soc { 10 + 11 + /* include used FMan blocks */ 12 + #include "qoriq-fman3-0.dtsi" 13 + #include "qoriq-fman3-0-1g-0.dtsi" 14 + #include "qoriq-fman3-0-1g-1.dtsi" 15 + #include "qoriq-fman3-0-1g-2.dtsi" 16 + #include "qoriq-fman3-0-1g-3.dtsi" 17 + #include "qoriq-fman3-0-1g-4.dtsi" 18 + #include "qoriq-fman3-0-1g-5.dtsi" 19 + #include "qoriq-fman3-0-10g-0.dtsi" 20 + 21 + }; 22 + 23 + &fman0 { 24 + /* these aliases provide the FMan ports mapping */ 25 + enet0: ethernet@e0000 { 26 + }; 27 + 28 + enet1: ethernet@e2000 { 29 + }; 30 + 31 + enet2: ethernet@e4000 { 32 + }; 33 + 34 + enet3: ethernet@e6000 { 35 + }; 36 + 37 + enet4: ethernet@e8000 { 38 + }; 39 + 40 + enet5: ethernet@ea000 { 41 + }; 42 + 43 + enet6: ethernet@f0000 { 44 + }; 45 + };
+3 -1
arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 3 * 4 - * Copyright 2014-2015, Freescale Semiconductor 4 + * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 5 * 6 6 * Mingkai Hu <Mingkai.hu@freescale.com> 7 7 * ··· 181 181 reg = <0>; 182 182 }; 183 183 }; 184 + 185 + #include "fsl-ls1043-post.dtsi"
+76 -3
arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 3 * 4 - * Copyright 2014-2015, Freescale Semiconductor 4 + * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 5 * 6 6 * Mingkai Hu <Mingkai.hu@freescale.com> 7 7 * ··· 75 75 reg = <0x4c>; 76 76 }; 77 77 eeprom@52 { 78 - compatible = "at24,24c512"; 78 + compatible = "atmel,24c512"; 79 79 reg = <0x52>; 80 80 }; 81 81 eeprom@53 { 82 - compatible = "at24,24c512"; 82 + compatible = "atmel,24c512"; 83 83 reg = <0x53>; 84 84 }; 85 85 rtc@68 { ··· 138 138 139 139 &duart1 { 140 140 status = "okay"; 141 + }; 142 + 143 + #include "fsl-ls1043-post.dtsi" 144 + 145 + &fman0 { 146 + ethernet@e0000 { 147 + phy-handle = <&qsgmii_phy1>; 148 + phy-connection-type = "qsgmii"; 149 + }; 150 + 151 + ethernet@e2000 { 152 + phy-handle = <&qsgmii_phy2>; 153 + phy-connection-type = "qsgmii"; 154 + }; 155 + 156 + ethernet@e4000 { 157 + phy-handle = <&rgmii_phy1>; 158 + phy-connection-type = "rgmii-txid"; 159 + }; 160 + 161 + ethernet@e6000 { 162 + phy-handle = <&rgmii_phy2>; 163 + phy-connection-type = "rgmii-txid"; 164 + }; 165 + 166 + ethernet@e8000 { 167 + phy-handle = <&qsgmii_phy3>; 168 + phy-connection-type = "qsgmii"; 169 + }; 170 + 171 + ethernet@ea000 { 172 + phy-handle = <&qsgmii_phy4>; 173 + phy-connection-type = "qsgmii"; 174 + }; 175 + 176 + ethernet@f0000 { /* 10GEC1 */ 177 + phy-handle = <&aqr105_phy>; 178 + phy-connection-type = "xgmii"; 179 + }; 180 + 181 + mdio@fc000 { 182 + rgmii_phy1: ethernet-phy@1 { 183 + reg = <0x1>; 184 + }; 185 + 186 + rgmii_phy2: ethernet-phy@2 { 187 + reg = <0x2>; 188 + }; 189 + 190 + qsgmii_phy1: ethernet-phy@4 { 191 + reg = <0x4>; 192 + }; 193 + 194 + qsgmii_phy2: ethernet-phy@5 { 195 + reg = <0x5>; 196 + }; 197 + 198 + qsgmii_phy3: ethernet-phy@6 { 199 + reg = <0x6>; 200 + }; 201 + 202 + qsgmii_phy4: ethernet-phy@7 { 203 + reg = <0x7>; 204 + }; 205 + }; 206 + 207 + mdio@fd000 { 208 + aqr105_phy: ethernet-phy@1 { 209 + compatible = "ethernet-phy-ieee802.3-c45"; 210 + interrupts = <0 132 4>; 211 + reg = <0x1>; 212 + }; 213 + }; 141 214 };
+67 -2
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 3 * 4 - * Copyright 2014-2015, Freescale Semiconductor 4 + * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 5 * 6 6 * Mingkai Hu <Mingkai.hu@freescale.com> 7 7 * ··· 45 45 */ 46 46 47 47 #include <dt-bindings/thermal/thermal.h> 48 + #include <dt-bindings/interrupt-controller/arm-gic.h> 48 49 49 50 / { 50 51 compatible = "fsl,ls1043a"; 51 52 interrupt-parent = <&gic>; 52 53 #address-cells = <2>; 53 54 #size-cells = <2>; 55 + 56 + aliases { 57 + fman0 = &fman0; 58 + ethernet0 = &enet0; 59 + ethernet1 = &enet1; 60 + ethernet2 = &enet2; 61 + ethernet3 = &enet3; 62 + ethernet4 = &enet4; 63 + ethernet5 = &enet5; 64 + ethernet6 = &enet6; 65 + }; 54 66 55 67 cpus { 56 68 #address-cells = <1>; ··· 118 106 /* DRAM space 1, size: 2GiB DRAM */ 119 107 }; 120 108 109 + reserved-memory { 110 + #address-cells = <2>; 111 + #size-cells = <2>; 112 + ranges; 113 + 114 + bman_fbpr: bman-fbpr { 115 + compatible = "shared-dma-pool"; 116 + size = <0 0x1000000>; 117 + alignment = <0 0x1000000>; 118 + no-map; 119 + }; 120 + 121 + qman_fqd: qman-fqd { 122 + compatible = "shared-dma-pool"; 123 + size = <0 0x400000>; 124 + alignment = <0 0x400000>; 125 + no-map; 126 + }; 127 + 128 + qman_pfdr: qman-pfdr { 129 + compatible = "shared-dma-pool"; 130 + size = <0 0x2000000>; 131 + alignment = <0 0x2000000>; 132 + no-map; 133 + }; 134 + }; 135 + 121 136 sysclk: sysclk { 122 137 compatible = "fixed-clock"; 123 138 #clock-cells = <0>; ··· 191 152 interrupts = <1 9 0xf08>; 192 153 }; 193 154 194 - soc { 155 + soc: soc { 195 156 compatible = "simple-bus"; 196 157 #address-cells = <2>; 197 158 #size-cells = <2>; ··· 262 223 ifc: ifc@1530000 { 263 224 compatible = "fsl,ifc", "simple-bus"; 264 225 reg = <0x0 0x1530000 0x0 0x10000>; 226 + big-endian; 265 227 interrupts = <0 43 0x4>; 266 228 }; 267 229 ··· 371 331 }; 372 332 }; 373 333 }; 334 + }; 335 + 336 + qman: qman@1880000 { 337 + compatible = "fsl,qman"; 338 + reg = <0x0 0x1880000 0x0 0x10000>; 339 + interrupts = <0 45 0x4>; 340 + memory-region = <&qman_fqd &qman_pfdr>; 341 + }; 342 + 343 + bman: bman@1890000 { 344 + compatible = "fsl,bman"; 345 + reg = <0x0 0x1890000 0x0 0x10000>; 346 + interrupts = <0 45 0x4>; 347 + memory-region = <&bman_fbpr>; 348 + }; 349 + 350 + bportals: bman-portals@508000000 { 351 + ranges = <0x0 0x5 0x08000000 0x8000000>; 352 + }; 353 + 354 + qportals: qman-portals@500000000 { 355 + ranges = <0x0 0x5 0x00000000 0x8000000>; 374 356 }; 375 357 376 358 dspi0: dspi@2100000 { ··· 750 688 }; 751 689 752 690 }; 691 + 692 + #include "qoriq-qman-portals.dtsi" 693 + #include "qoriq-bman-portals.dtsi"
+48
arch/arm64/boot/dts/freescale/fsl-ls1046-post.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 device tree nodes for ls1046 3 + * 4 + * Copyright 2015-2016 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + &soc { 10 + 11 + /* include used FMan blocks */ 12 + #include "qoriq-fman3-0.dtsi" 13 + #include "qoriq-fman3-0-1g-0.dtsi" 14 + #include "qoriq-fman3-0-1g-1.dtsi" 15 + #include "qoriq-fman3-0-1g-2.dtsi" 16 + #include "qoriq-fman3-0-1g-3.dtsi" 17 + #include "qoriq-fman3-0-1g-4.dtsi" 18 + #include "qoriq-fman3-0-1g-5.dtsi" 19 + #include "qoriq-fman3-0-10g-0.dtsi" 20 + #include "qoriq-fman3-0-10g-1.dtsi" 21 + }; 22 + 23 + &fman0 { 24 + /* these aliases provide the FMan ports mapping */ 25 + enet0: ethernet@e0000 { 26 + }; 27 + 28 + enet1: ethernet@e2000 { 29 + }; 30 + 31 + enet2: ethernet@e4000 { 32 + }; 33 + 34 + enet3: ethernet@e6000 { 35 + }; 36 + 37 + enet4: ethernet@e8000 { 38 + }; 39 + 40 + enet5: ethernet@ea000 { 41 + }; 42 + 43 + enet6: ethernet@f0000 { 44 + }; 45 + 46 + enet7: ethernet@f2000 { 47 + }; 48 + };
+3 -1
arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1046A family SoC. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor, Inc. 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * Shaohui Xie <Shaohui.Xie@nxp.com> 7 7 * ··· 210 210 reg = <0>; 211 211 }; 212 212 }; 213 + 214 + #include "fsl-ls1046-post.dtsi"
+69 -1
arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1046A family SoC. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor, Inc. 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * Mingkai Hu <mingkai.hu@nxp.com> 7 7 * ··· 70 70 71 71 &duart1 { 72 72 status = "okay"; 73 + }; 74 + 75 + &esdhc { 76 + mmc-hs200-1_8v; 77 + sd-uhs-sdr104; 78 + sd-uhs-sdr50; 79 + sd-uhs-sdr25; 80 + sd-uhs-sdr12; 73 81 }; 74 82 75 83 &i2c0 { ··· 154 146 #size-cells = <1>; 155 147 spi-max-frequency = <20000000>; 156 148 reg = <1>; 149 + }; 150 + }; 151 + 152 + #include "fsl-ls1046-post.dtsi" 153 + 154 + &fman0 { 155 + ethernet@e4000 { 156 + phy-handle = <&rgmii_phy1>; 157 + phy-connection-type = "rgmii"; 158 + }; 159 + 160 + ethernet@e6000 { 161 + phy-handle = <&rgmii_phy2>; 162 + phy-connection-type = "rgmii"; 163 + }; 164 + 165 + ethernet@e8000 { 166 + phy-handle = <&sgmii_phy1>; 167 + phy-connection-type = "sgmii"; 168 + }; 169 + 170 + ethernet@ea000 { 171 + phy-handle = <&sgmii_phy2>; 172 + phy-connection-type = "sgmii"; 173 + }; 174 + 175 + ethernet@f0000 { /* 10GEC1 */ 176 + phy-handle = <&aqr106_phy>; 177 + phy-connection-type = "xgmii"; 178 + }; 179 + 180 + ethernet@f2000 { /* 10GEC2 */ 181 + fixed-link = <0 1 1000 0 0>; 182 + phy-connection-type = "xgmii"; 183 + }; 184 + 185 + mdio@fc000 { 186 + rgmii_phy1: ethernet-phy@1 { 187 + reg = <0x1>; 188 + }; 189 + 190 + rgmii_phy2: ethernet-phy@2 { 191 + reg = <0x2>; 192 + }; 193 + 194 + sgmii_phy1: ethernet-phy@3 { 195 + reg = <0x3>; 196 + }; 197 + 198 + sgmii_phy2: ethernet-phy@4 { 199 + reg = <0x4>; 200 + }; 201 + }; 202 + 203 + mdio@fd000 { 204 + aqr106_phy: ethernet-phy@0 { 205 + compatible = "ethernet-phy-ieee802.3-c45"; 206 + interrupts = <0 131 4>; 207 + reg = <0x0>; 208 + }; 157 209 }; 158 210 };
+71 -4
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-1046A family SoC. 3 3 * 4 - * Copyright 2016, Freescale Semiconductor, Inc. 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * Mingkai Hu <mingkai.hu@nxp.com> 7 7 * ··· 55 55 56 56 aliases { 57 57 crypto = &crypto; 58 + fman0 = &fman0; 59 + ethernet0 = &enet0; 60 + ethernet1 = &enet1; 61 + ethernet2 = &enet2; 62 + ethernet3 = &enet3; 63 + ethernet4 = &enet4; 64 + ethernet5 = &enet5; 65 + ethernet6 = &enet6; 66 + ethernet7 = &enet7; 58 67 }; 59 68 60 69 cpus { ··· 183 174 IRQ_TYPE_LEVEL_LOW)>; 184 175 }; 185 176 186 - soc { 177 + soc: soc { 187 178 compatible = "simple-bus"; 188 179 #address-cells = <2>; 189 180 #size-cells = <2>; ··· 199 190 ifc: ifc@1530000 { 200 191 compatible = "fsl,ifc", "simple-bus"; 201 192 reg = <0x0 0x1530000 0x0 0x10000>; 193 + big-endian; 202 194 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 203 195 }; 204 196 ··· 219 209 }; 220 210 221 211 esdhc: esdhc@1560000 { 222 - compatible = "fsl,esdhc"; 212 + compatible = "fsl,ls1046a-esdhc", "fsl,esdhc"; 223 213 reg = <0x0 0x1560000 0x0 0x10000>; 224 214 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 225 - clock-frequency = <0>; 215 + clocks = <&clockgen 2 1>; 226 216 voltage-ranges = <1800 1800 3300 3300>; 227 217 sdhci,auto-cmd12; 228 218 big-endian; ··· 276 266 reg = <0x40000 0x10000>; 277 267 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 278 268 }; 269 + }; 270 + 271 + qman: qman@1880000 { 272 + compatible = "fsl,qman"; 273 + reg = <0x0 0x1880000 0x0 0x10000>; 274 + interrupts = <0 45 0x4>; 275 + memory-region = <&qman_fqd &qman_pfdr>; 276 + 277 + }; 278 + 279 + bman: bman@1890000 { 280 + compatible = "fsl,bman"; 281 + reg = <0x0 0x1890000 0x0 0x10000>; 282 + interrupts = <0 45 0x4>; 283 + memory-region = <&bman_fbpr>; 284 + 285 + }; 286 + 287 + qportals: qman-portals@500000000 { 288 + ranges = <0x0 0x5 0x00000000 0x8000000>; 289 + }; 290 + 291 + bportals: bman-portals@508000000 { 292 + ranges = <0x0 0x5 0x08000000 0x8000000>; 279 293 }; 280 294 281 295 dcfg: dcfg@1ee0000 { ··· 601 567 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 602 568 dr_mode = "host"; 603 569 snps,quirk-frame-length-adjustment = <0x20>; 570 + snps,dis_rxdet_inp3_quirk; 604 571 }; 605 572 606 573 usb1: usb@3000000 { ··· 610 575 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 611 576 dr_mode = "host"; 612 577 snps,quirk-frame-length-adjustment = <0x20>; 578 + snps,dis_rxdet_inp3_quirk; 613 579 }; 614 580 615 581 usb2: usb@3100000 { ··· 619 583 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 620 584 dr_mode = "host"; 621 585 snps,quirk-frame-length-adjustment = <0x20>; 586 + snps,dis_rxdet_inp3_quirk; 622 587 }; 623 588 624 589 sata: sata@3200000 { ··· 631 594 clocks = <&clockgen 4 1>; 632 595 }; 633 596 }; 597 + 598 + reserved-memory { 599 + #address-cells = <2>; 600 + #size-cells = <2>; 601 + ranges; 602 + 603 + bman_fbpr: bman-fbpr { 604 + compatible = "shared-dma-pool"; 605 + size = <0 0x1000000>; 606 + alignment = <0 0x1000000>; 607 + no-map; 608 + }; 609 + 610 + qman_fqd: qman-fqd { 611 + compatible = "shared-dma-pool"; 612 + size = <0 0x800000>; 613 + alignment = <0 0x800000>; 614 + no-map; 615 + }; 616 + 617 + qman_pfdr: qman-pfdr { 618 + compatible = "shared-dma-pool"; 619 + size = <0 0x2000000>; 620 + alignment = <0 0x2000000>; 621 + no-map; 622 + }; 623 + }; 634 624 }; 625 + 626 + #include "qoriq-qman-portals.dtsi" 627 + #include "qoriq-bman-portals.dtsi"
+28
arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dts
··· 110 110 }; 111 111 }; 112 112 113 + &ifc { 114 + ranges = <0 0 0x5 0x80000000 0x08000000 115 + 2 0 0x5 0x30000000 0x00010000 116 + 3 0 0x5 0x20000000 0x00010000>; 117 + status = "okay"; 118 + 119 + nor@0,0 { 120 + compatible = "cfi-flash"; 121 + reg = <0x0 0x0 0x8000000>; 122 + bank-width = <2>; 123 + device-width = <1>; 124 + }; 125 + 126 + nand@2,0 { 127 + compatible = "fsl,ifc-nand"; 128 + reg = <0x2 0x0 0x10000>; 129 + }; 130 + 131 + fpga: board-control@3,0 { 132 + compatible = "fsl,ls1088aqds-fpga", "fsl,fpga-qixis"; 133 + reg = <0x3 0x0 0x0000100>; 134 + }; 135 + }; 136 + 113 137 &duart0 { 114 138 status = "okay"; 115 139 }; 116 140 117 141 &duart1 { 142 + status = "okay"; 143 + }; 144 + 145 + &esdhc { 118 146 status = "okay"; 119 147 }; 120 148
+20
arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
··· 94 94 }; 95 95 }; 96 96 97 + &ifc { 98 + ranges = <0 0 0x5 0x30000000 0x00010000 99 + 2 0 0x5 0x20000000 0x00010000>; 100 + status = "okay"; 101 + 102 + nand@0,0 { 103 + compatible = "fsl,ifc-nand"; 104 + reg = <0x0 0x0 0x10000>; 105 + }; 106 + 107 + fpga: board-control@2,0 { 108 + compatible = "fsl,ls1088ardb-fpga", "fsl,fpga-qixis"; 109 + reg = <0x2 0x0 0x0000100>; 110 + }; 111 + }; 112 + 97 113 &duart0 { 98 114 status = "okay"; 99 115 }; 100 116 101 117 &duart1 { 118 + status = "okay"; 119 + }; 120 + 121 + &esdhc { 102 122 status = "okay"; 103 123 }; 104 124
+105 -6
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
··· 44 44 * OTHER DEALINGS IN THE SOFTWARE. 45 45 */ 46 46 #include <dt-bindings/interrupt-controller/arm-gic.h> 47 + #include <dt-bindings/thermal/thermal.h> 47 48 48 49 / { 49 50 compatible = "fsl,ls1088a"; ··· 62 61 compatible = "arm,cortex-a53"; 63 62 reg = <0x0>; 64 63 clocks = <&clockgen 1 0>; 64 + #cooling-cells = <2>; 65 65 }; 66 66 67 67 cpu1: cpu@1 { ··· 91 89 compatible = "arm,cortex-a53"; 92 90 reg = <0x100>; 93 91 clocks = <&clockgen 1 1>; 92 + #cooling-cells = <2>; 94 93 }; 95 94 96 95 cpu5: cpu@101 { ··· 154 151 reg = <0 0x1300000 0 0xa0000>; 155 152 #clock-cells = <2>; 156 153 clocks = <&sysclk>; 154 + }; 155 + 156 + tmu: tmu@1f80000 { 157 + compatible = "fsl,qoriq-tmu"; 158 + reg = <0x0 0x1f80000 0x0 0x10000>; 159 + interrupts = <0 23 0x4>; 160 + fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>; 161 + fsl,tmu-calibration = 162 + /* Calibration data group 1 */ 163 + <0x00000000 0x00000026 164 + 0x00000001 0x0000002d 165 + 0x00000002 0x00000032 166 + 0x00000003 0x00000039 167 + 0x00000004 0x0000003f 168 + 0x00000005 0x00000046 169 + 0x00000006 0x0000004d 170 + 0x00000007 0x00000054 171 + 0x00000008 0x0000005a 172 + 0x00000009 0x00000061 173 + 0x0000000a 0x0000006a 174 + 0x0000000b 0x00000071 175 + /* Calibration data group 2 */ 176 + 0x00010000 0x00000025 177 + 0x00010001 0x0000002c 178 + 0x00010002 0x00000035 179 + 0x00010003 0x0000003d 180 + 0x00010004 0x00000045 181 + 0x00010005 0x0000004e 182 + 0x00010006 0x00000057 183 + 0x00010007 0x00000061 184 + 0x00010008 0x0000006b 185 + 0x00010009 0x00000076 186 + /* Calibration data group 3 */ 187 + 0x00020000 0x00000029 188 + 0x00020001 0x00000033 189 + 0x00020002 0x0000003d 190 + 0x00020003 0x00000049 191 + 0x00020004 0x00000056 192 + 0x00020005 0x00000061 193 + 0x00020006 0x0000006d 194 + /* Calibration data group 4 */ 195 + 0x00030000 0x00000021 196 + 0x00030001 0x0000002a 197 + 0x00030002 0x0000003c 198 + 0x00030003 0x0000004e>; 199 + little-endian; 200 + #thermal-sensor-cells = <1>; 201 + }; 202 + 203 + thermal-zones { 204 + cpu_thermal: cpu-thermal { 205 + polling-delay-passive = <1000>; 206 + polling-delay = <5000>; 207 + thermal-sensors = <&tmu 0>; 208 + 209 + trips { 210 + cpu_alert: cpu-alert { 211 + temperature = <85000>; 212 + hysteresis = <2000>; 213 + type = "passive"; 214 + }; 215 + 216 + cpu_crit: cpu-crit { 217 + temperature = <95000>; 218 + hysteresis = <2000>; 219 + type = "critical"; 220 + }; 221 + }; 222 + 223 + cooling-maps { 224 + map0 { 225 + trip = <&cpu_alert>; 226 + cooling-device = 227 + <&cpu0 THERMAL_NO_LIMIT 228 + THERMAL_NO_LIMIT>; 229 + }; 230 + 231 + map1 { 232 + trip = <&cpu_alert>; 233 + cooling-device = 234 + <&cpu4 THERMAL_NO_LIMIT 235 + THERMAL_NO_LIMIT>; 236 + }; 237 + }; 238 + }; 157 239 }; 158 240 159 241 duart0: serial@21c0500 { ··· 304 216 little-endian; 305 217 #address-cells = <2>; 306 218 #size-cells = <1>; 307 - 308 - ranges = <0 0 0x5 0x80000000 0x08000000 309 - 2 0 0x5 0x30000000 0x00010000 310 - 3 0 0x5 0x20000000 0x00010000>; 311 219 status = "disabled"; 312 220 }; 313 221 ··· 347 263 status = "disabled"; 348 264 }; 349 265 266 + esdhc: esdhc@2140000 { 267 + compatible = "fsl,ls1088a-esdhc", "fsl,esdhc"; 268 + reg = <0x0 0x2140000 0x0 0x10000>; 269 + interrupts = <0 28 0x4>; /* Level high type */ 270 + clock-frequency = <0>; 271 + voltage-ranges = <1800 1800 3300 3300>; 272 + sdhci,auto-cmd12; 273 + little-endian; 274 + bus-width = <4>; 275 + status = "disabled"; 276 + }; 277 + 350 278 sata: sata@3200000 { 351 - compatible = "fsl,ls1088a-ahci", "fsl,ls1043a-ahci"; 352 - reg = <0x0 0x3200000 0x0 0x10000>; 279 + compatible = "fsl,ls1088a-ahci"; 280 + reg = <0x0 0x3200000 0x0 0x10000>, 281 + <0x7 0x100520 0x0 0x4>; 282 + reg-names = "ahci", "sata-ecc"; 353 283 interrupts = <0 133 IRQ_TYPE_LEVEL_HIGH>; 354 284 clocks = <&clockgen 4 3>; 285 + dma-coherent; 355 286 status = "disabled"; 356 287 }; 357 288 };
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2080a QDS Board. 3 3 * 4 - * Copyright (C) 2015-17, Freescale Semiconductor 4 + * Copyright 2015-2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 * Bhupesh Sharma <bhupesh.sharma@freescale.com>
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2080a RDB Board. 3 3 * 4 - * Copyright (C) 2016-17, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 * Bhupesh Sharma <bhupesh.sharma@freescale.com>
+1 -1
arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2080a software Simulator model 3 3 * 4 - * Copyright (C) 2014-2015, Freescale Semiconductor 4 + * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 5 * 6 6 * Bhupesh Sharma <bhupesh.sharma@freescale.com> 7 7 *
+1 -1
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-2080A family SoC. 3 3 * 4 - * Copyright (C) 2014-2016, Freescale Semiconductor 4 + * Copyright 2014-2016 Freescale Semiconductor, Inc. 5 5 * 6 6 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 7 * Bhupesh Sharma <bhupesh.sharma@freescale.com>
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls2088a-qds.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2088A QDS Board. 3 3 * 4 - * Copyright (C) 2016-17, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 *
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2088A RDB Board. 3 3 * 4 - * Copyright (C) 2016-17, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 *
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-2088A family SoC. 3 3 * 4 - * Copyright (C) 2016-17, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 *
+3 -1
arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2080A QDS Board. 3 3 * 4 - * Copyright (C) 2016-17, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 * ··· 46 45 */ 47 46 48 47 &esdhc { 48 + mmc-hs200-1_8v; 49 49 status = "okay"; 50 50 }; 51 51
+2 -1
arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi
··· 1 1 /* 2 2 * Device Tree file for Freescale LS2080A RDB Board. 3 3 * 4 - * Copyright (C) 2016-17, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 *
+3 -2
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
··· 1 1 /* 2 2 * Device Tree Include file for Freescale Layerscape-2080A family SoC. 3 3 * 4 - * Copyright (C) 2016-2017, Freescale Semiconductor 4 + * Copyright 2016 Freescale Semiconductor, Inc. 5 + * Copyright 2017 NXP 5 6 * 6 7 * Abhimanyu Saini <abhimanyu.saini@nxp.com> 7 8 * ··· 472 471 compatible = "fsl,ls2080a-esdhc", "fsl,esdhc"; 473 472 reg = <0x0 0x2140000 0x0 0x10000>; 474 473 interrupts = <0 28 0x4>; /* Level high type */ 475 - clock-frequency = <0>; /* Updated by bootloader */ 474 + clocks = <&clockgen 4 1>; 476 475 voltage-ranges = <1800 1800 3300 3300>; 477 476 sdhci,auto-cmd12; 478 477 little-endian;
+71
arch/arm64/boot/dts/freescale/qoriq-bman-portals.dtsi
··· 1 + /* 2 + * QorIQ BMan Portals device tree 3 + * 4 + * Copyright 2011-2016 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + &bportals { 10 + #address-cells = <1>; 11 + #size-cells = <1>; 12 + compatible = "simple-bus"; 13 + 14 + bman-portal@0 { 15 + /* 16 + * bootloader fix-ups are expected to provide the 17 + * "fsl,bman-portal-<hardware revision>" compatible 18 + */ 19 + compatible = "fsl,bman-portal"; 20 + reg = <0x0 0x4000>, <0x4000000 0x4000>; 21 + interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 22 + }; 23 + 24 + bman-portal@10000 { 25 + compatible = "fsl,bman-portal"; 26 + reg = <0x10000 0x4000>, <0x4010000 0x4000>; 27 + interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 28 + }; 29 + 30 + bman-portal@20000 { 31 + compatible = "fsl,bman-portal"; 32 + reg = <0x20000 0x4000>, <0x4020000 0x4000>; 33 + interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 34 + }; 35 + 36 + bman-portal@30000 { 37 + compatible = "fsl,bman-portal"; 38 + reg = <0x30000 0x4000>, <0x4030000 0x4000>; 39 + interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>; 40 + }; 41 + 42 + bman-portal@40000 { 43 + compatible = "fsl,bman-portal"; 44 + reg = <0x40000 0x4000>, <0x4040000 0x4000>; 45 + interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>; 46 + }; 47 + 48 + bman-portal@50000 { 49 + compatible = "fsl,bman-portal"; 50 + reg = <0x50000 0x4000>, <0x4050000 0x4000>; 51 + interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>; 52 + }; 53 + 54 + bman-portal@60000 { 55 + compatible = "fsl,bman-portal"; 56 + reg = <0x60000 0x4000>, <0x4060000 0x4000>; 57 + interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>; 58 + }; 59 + 60 + bman-portal@70000 { 61 + compatible = "fsl,bman-portal"; 62 + reg = <0x70000 0x4000>, <0x4070000 0x4000>; 63 + interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 64 + }; 65 + 66 + bman-portal@80000 { 67 + compatible = "fsl,bman-portal"; 68 + reg = <0x80000 0x4000>, <0x4080000 0x4000>; 69 + interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; 70 + }; 71 + };
+42
arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-0.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 10g port #0 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x10: port@90000 { 11 + cell-index = <0x10>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x90000 0x1000>; 14 + fsl,fman-10g-port; 15 + }; 16 + 17 + fman0_tx_0x30: port@b0000 { 18 + cell-index = <0x30>; 19 + compatible = "fsl,fman-v3-port-tx"; 20 + reg = <0xb0000 0x1000>; 21 + fsl,fman-10g-port; 22 + }; 23 + 24 + ethernet@f0000 { 25 + cell-index = <0x8>; 26 + compatible = "fsl,fman-memac"; 27 + reg = <0xf0000 0x1000>; 28 + fsl,fman-ports = <&fman0_rx_0x10 &fman0_tx_0x30>; 29 + pcsphy-handle = <&pcsphy6>; 30 + }; 31 + 32 + mdio@f1000 { 33 + #address-cells = <1>; 34 + #size-cells = <0>; 35 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 36 + reg = <0xf1000 0x1000>; 37 + 38 + pcsphy6: ethernet-phy@0 { 39 + reg = <0x0>; 40 + }; 41 + }; 42 + };
+42
arch/arm64/boot/dts/freescale/qoriq-fman3-0-10g-1.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 10g port #1 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x11: port@91000 { 11 + cell-index = <0x11>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x91000 0x1000>; 14 + fsl,fman-10g-port; 15 + }; 16 + 17 + fman0_tx_0x31: port@b1000 { 18 + cell-index = <0x31>; 19 + compatible = "fsl,fman-v3-port-tx"; 20 + reg = <0xb1000 0x1000>; 21 + fsl,fman-10g-port; 22 + }; 23 + 24 + ethernet@f2000 { 25 + cell-index = <0x9>; 26 + compatible = "fsl,fman-memac"; 27 + reg = <0xf2000 0x1000>; 28 + fsl,fman-ports = <&fman0_rx_0x11 &fman0_tx_0x31>; 29 + pcsphy-handle = <&pcsphy7>; 30 + }; 31 + 32 + mdio@f3000 { 33 + #address-cells = <1>; 34 + #size-cells = <0>; 35 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 36 + reg = <0xf3000 0x1000>; 37 + 38 + pcsphy7: ethernet-phy@0 { 39 + reg = <0x0>; 40 + }; 41 + }; 42 + };
+41
arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-0.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 1g port #0 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x08: port@88000 { 11 + cell-index = <0x8>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x88000 0x1000>; 14 + }; 15 + 16 + fman0_tx_0x28: port@a8000 { 17 + cell-index = <0x28>; 18 + compatible = "fsl,fman-v3-port-tx"; 19 + reg = <0xa8000 0x1000>; 20 + }; 21 + 22 + ethernet@e0000 { 23 + cell-index = <0>; 24 + compatible = "fsl,fman-memac"; 25 + reg = <0xe0000 0x1000>; 26 + fsl,fman-ports = <&fman0_rx_0x08 &fman0_tx_0x28>; 27 + ptp-timer = <&ptp_timer0>; 28 + pcsphy-handle = <&pcsphy0>; 29 + }; 30 + 31 + mdio@e1000 { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 35 + reg = <0xe1000 0x1000>; 36 + 37 + pcsphy0: ethernet-phy@0 { 38 + reg = <0x0>; 39 + }; 40 + }; 41 + };
+41
arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-1.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 1g port #1 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x09: port@89000 { 11 + cell-index = <0x9>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x89000 0x1000>; 14 + }; 15 + 16 + fman0_tx_0x29: port@a9000 { 17 + cell-index = <0x29>; 18 + compatible = "fsl,fman-v3-port-tx"; 19 + reg = <0xa9000 0x1000>; 20 + }; 21 + 22 + ethernet@e2000 { 23 + cell-index = <1>; 24 + compatible = "fsl,fman-memac"; 25 + reg = <0xe2000 0x1000>; 26 + fsl,fman-ports = <&fman0_rx_0x09 &fman0_tx_0x29>; 27 + ptp-timer = <&ptp_timer0>; 28 + pcsphy-handle = <&pcsphy1>; 29 + }; 30 + 31 + mdio@e3000 { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 35 + reg = <0xe3000 0x1000>; 36 + 37 + pcsphy1: ethernet-phy@0 { 38 + reg = <0x0>; 39 + }; 40 + }; 41 + };
+41
arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-2.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 1g port #2 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x0a: port@8a000 { 11 + cell-index = <0xa>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x8a000 0x1000>; 14 + }; 15 + 16 + fman0_tx_0x2a: port@aa000 { 17 + cell-index = <0x2a>; 18 + compatible = "fsl,fman-v3-port-tx"; 19 + reg = <0xaa000 0x1000>; 20 + }; 21 + 22 + ethernet@e4000 { 23 + cell-index = <2>; 24 + compatible = "fsl,fman-memac"; 25 + reg = <0xe4000 0x1000>; 26 + fsl,fman-ports = <&fman0_rx_0x0a &fman0_tx_0x2a>; 27 + ptp-timer = <&ptp_timer0>; 28 + pcsphy-handle = <&pcsphy2>; 29 + }; 30 + 31 + mdio@e5000 { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 35 + reg = <0xe5000 0x1000>; 36 + 37 + pcsphy2: ethernet-phy@0 { 38 + reg = <0x0>; 39 + }; 40 + }; 41 + };
+41
arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-3.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 1g port #3 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x0b: port@8b000 { 11 + cell-index = <0xb>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x8b000 0x1000>; 14 + }; 15 + 16 + fman0_tx_0x2b: port@ab000 { 17 + cell-index = <0x2b>; 18 + compatible = "fsl,fman-v3-port-tx"; 19 + reg = <0xab000 0x1000>; 20 + }; 21 + 22 + ethernet@e6000 { 23 + cell-index = <3>; 24 + compatible = "fsl,fman-memac"; 25 + reg = <0xe6000 0x1000>; 26 + fsl,fman-ports = <&fman0_rx_0x0b &fman0_tx_0x2b>; 27 + ptp-timer = <&ptp_timer0>; 28 + pcsphy-handle = <&pcsphy3>; 29 + }; 30 + 31 + mdio@e7000 { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 35 + reg = <0xe7000 0x1000>; 36 + 37 + pcsphy3: ethernet-phy@0 { 38 + reg = <0x0>; 39 + }; 40 + }; 41 + };
+41
arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-4.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 1g port #4 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x0c: port@8c000 { 11 + cell-index = <0xc>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x8c000 0x1000>; 14 + }; 15 + 16 + fman0_tx_0x2c: port@ac000 { 17 + cell-index = <0x2c>; 18 + compatible = "fsl,fman-v3-port-tx"; 19 + reg = <0xac000 0x1000>; 20 + }; 21 + 22 + ethernet@e8000 { 23 + cell-index = <4>; 24 + compatible = "fsl,fman-memac"; 25 + reg = <0xe8000 0x1000>; 26 + fsl,fman-ports = <&fman0_rx_0x0c &fman0_tx_0x2c>; 27 + ptp-timer = <&ptp_timer0>; 28 + pcsphy-handle = <&pcsphy4>; 29 + }; 30 + 31 + mdio@e9000 { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 35 + reg = <0xe9000 0x1000>; 36 + 37 + pcsphy4: ethernet-phy@0 { 38 + reg = <0x0>; 39 + }; 40 + }; 41 + };
+41
arch/arm64/boot/dts/freescale/qoriq-fman3-0-1g-5.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 1g port #5 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman@1a00000 { 10 + fman0_rx_0x0d: port@8d000 { 11 + cell-index = <0xd>; 12 + compatible = "fsl,fman-v3-port-rx"; 13 + reg = <0x8d000 0x1000>; 14 + }; 15 + 16 + fman0_tx_0x2d: port@ad000 { 17 + cell-index = <0x2d>; 18 + compatible = "fsl,fman-v3-port-tx"; 19 + reg = <0xad000 0x1000>; 20 + }; 21 + 22 + ethernet@ea000 { 23 + cell-index = <5>; 24 + compatible = "fsl,fman-memac"; 25 + reg = <0xea000 0x1000>; 26 + fsl,fman-ports = <&fman0_rx_0x0d &fman0_tx_0x2d>; 27 + ptp-timer = <&ptp_timer0>; 28 + pcsphy-handle = <&pcsphy5>; 29 + }; 30 + 31 + mdio@eb000 { 32 + #address-cells = <1>; 33 + #size-cells = <0>; 34 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 35 + reg = <0xeb000 0x1000>; 36 + 37 + pcsphy5: ethernet-phy@0 { 38 + reg = <0x0>; 39 + }; 40 + }; 41 + };
+81
arch/arm64/boot/dts/freescale/qoriq-fman3-0.dtsi
··· 1 + /* 2 + * QorIQ FMan v3 device tree 3 + * 4 + * Copyright 2012-2015 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + fman0: fman@1a00000 { 10 + #address-cells = <1>; 11 + #size-cells = <1>; 12 + cell-index = <0>; 13 + compatible = "fsl,fman"; 14 + ranges = <0x0 0x0 0x1a00000 0x100000>; 15 + reg = <0x0 0x1a00000 0x0 0x100000>; 16 + interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>, 17 + <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 18 + clocks = <&clockgen 3 0>; 19 + clock-names = "fmanclk"; 20 + fsl,qman-channel-range = <0x800 0x10>; 21 + 22 + muram@0 { 23 + compatible = "fsl,fman-muram"; 24 + reg = <0x0 0x60000>; 25 + }; 26 + 27 + fman0_oh_0x2: port@82000 { 28 + cell-index = <0x2>; 29 + compatible = "fsl,fman-v3-port-oh"; 30 + reg = <0x82000 0x1000>; 31 + }; 32 + 33 + fman0_oh_0x3: port@83000 { 34 + cell-index = <0x3>; 35 + compatible = "fsl,fman-v3-port-oh"; 36 + reg = <0x83000 0x1000>; 37 + }; 38 + 39 + fman0_oh_0x4: port@84000 { 40 + cell-index = <0x4>; 41 + compatible = "fsl,fman-v3-port-oh"; 42 + reg = <0x84000 0x1000>; 43 + }; 44 + 45 + fman0_oh_0x5: port@85000 { 46 + cell-index = <0x5>; 47 + compatible = "fsl,fman-v3-port-oh"; 48 + reg = <0x85000 0x1000>; 49 + }; 50 + 51 + fman0_oh_0x6: port@86000 { 52 + cell-index = <0x6>; 53 + compatible = "fsl,fman-v3-port-oh"; 54 + reg = <0x86000 0x1000>; 55 + }; 56 + 57 + fman0_oh_0x7: port@87000 { 58 + cell-index = <0x7>; 59 + compatible = "fsl,fman-v3-port-oh"; 60 + reg = <0x87000 0x1000>; 61 + }; 62 + 63 + mdio0: mdio@fc000 { 64 + #address-cells = <1>; 65 + #size-cells = <0>; 66 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 67 + reg = <0xfc000 0x1000>; 68 + }; 69 + 70 + xmdio0: mdio@fd000 { 71 + #address-cells = <1>; 72 + #size-cells = <0>; 73 + compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio"; 74 + reg = <0xfd000 0x1000>; 75 + }; 76 + 77 + ptp_timer0: ptp-timer@fe000 { 78 + compatible = "fsl,fman-ptp-timer"; 79 + reg = <0xfe000 0x1000>; 80 + }; 81 + };
+80
arch/arm64/boot/dts/freescale/qoriq-qman-portals.dtsi
··· 1 + /* 2 + * QorIQ QMan Portals device tree 3 + * 4 + * Copyright 2011-2016 Freescale Semiconductor Inc. 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 7 + */ 8 + 9 + &qportals { 10 + #address-cells = <1>; 11 + #size-cells = <1>; 12 + compatible = "simple-bus"; 13 + 14 + qportal0: qman-portal@0 { 15 + /* 16 + * bootloader fix-ups are expected to provide the 17 + * "fsl,bman-portal-<hardware revision>" compatible 18 + */ 19 + compatible = "fsl,qman-portal"; 20 + reg = <0x0 0x4000>, <0x4000000 0x4000>; 21 + interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>; 22 + cell-index = <0>; 23 + }; 24 + 25 + qportal1: qman-portal@10000 { 26 + compatible = "fsl,qman-portal"; 27 + reg = <0x10000 0x4000>, <0x4010000 0x4000>; 28 + interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 29 + cell-index = <1>; 30 + }; 31 + 32 + qportal2: qman-portal@20000 { 33 + compatible = "fsl,qman-portal"; 34 + reg = <0x20000 0x4000>, <0x4020000 0x4000>; 35 + interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 36 + cell-index = <2>; 37 + }; 38 + 39 + qportal3: qman-portal@30000 { 40 + compatible = "fsl,qman-portal"; 41 + reg = <0x30000 0x4000>, <0x4030000 0x4000>; 42 + interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>; 43 + cell-index = <3>; 44 + }; 45 + 46 + qportal4: qman-portal@40000 { 47 + compatible = "fsl,qman-portal"; 48 + reg = <0x40000 0x4000>, <0x4040000 0x4000>; 49 + interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>; 50 + cell-index = <4>; 51 + }; 52 + 53 + qportal5: qman-portal@50000 { 54 + compatible = "fsl,qman-portal"; 55 + reg = <0x50000 0x4000>, <0x4050000 0x4000>; 56 + interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>; 57 + cell-index = <5>; 58 + }; 59 + 60 + qportal6: qman-portal@60000 { 61 + compatible = "fsl,qman-portal"; 62 + reg = <0x60000 0x4000>, <0x4060000 0x4000>; 63 + interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 64 + cell-index = <6>; 65 + }; 66 + 67 + qportal7: qman-portal@70000 { 68 + compatible = "fsl,qman-portal"; 69 + reg = <0x70000 0x4000>, <0x4070000 0x4000>; 70 + interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; 71 + cell-index = <7>; 72 + }; 73 + 74 + qportal8: qman-portal@80000 { 75 + compatible = "fsl,qman-portal"; 76 + reg = <0x80000 0x4000>, <0x4080000 0x4000>; 77 + interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 78 + cell-index = <8>; 79 + }; 80 + };
+213 -4
arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
··· 9 9 10 10 #include "hi3660.dtsi" 11 11 #include "hikey960-pinctrl.dtsi" 12 + #include <dt-bindings/gpio/gpio.h> 13 + #include <dt-bindings/input/input.h> 14 + #include <dt-bindings/interrupt-controller/irq.h> 12 15 13 16 / { 14 17 model = "HiKey960"; 15 - compatible = "hisilicon,hi3660"; 18 + compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660"; 16 19 17 20 aliases { 18 - serial5 = &uart5; /* console UART */ 21 + mshc1 = &dwmmc1; 22 + mshc2 = &dwmmc2; 23 + serial0 = &uart0; 24 + serial1 = &uart1; 25 + serial2 = &uart2; 26 + serial3 = &uart3; 27 + serial4 = &uart4; 28 + serial5 = &uart5; 29 + serial6 = &uart6; 19 30 }; 20 31 21 32 chosen { 22 - stdout-path = "serial5:115200n8"; 33 + stdout-path = "serial6:115200n8"; 23 34 }; 24 35 25 36 memory@0 { ··· 38 27 /* rewrite this at bootloader */ 39 28 reg = <0x0 0x0 0x0 0x0>; 40 29 }; 30 + 31 + keys { 32 + compatible = "gpio-keys"; 33 + pinctrl-names = "default"; 34 + pinctrl-0 = <&pwr_key_pmx_func &pwr_key_cfg_func>; 35 + 36 + power { 37 + wakeup-source; 38 + gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; 39 + label = "GPIO Power"; 40 + linux,code = <KEY_POWER>; 41 + }; 42 + }; 43 + 44 + leds { 45 + compatible = "gpio-leds"; 46 + 47 + user_led1 { 48 + label = "user_led1"; 49 + /* gpio_150_user_led1 */ 50 + gpios = <&gpio18 6 0>; 51 + linux,default-trigger = "heartbeat"; 52 + }; 53 + 54 + user_led2 { 55 + label = "user_led2"; 56 + /* gpio_151_user_led2 */ 57 + gpios = <&gpio18 7 0>; 58 + linux,default-trigger = "mmc0"; 59 + }; 60 + 61 + user_led3 { 62 + label = "user_led3"; 63 + /* gpio_189_user_led3 */ 64 + gpios = <&gpio23 5 0>; 65 + default-state = "off"; 66 + }; 67 + 68 + user_led4 { 69 + label = "user_led4"; 70 + /* gpio_190_user_led4 */ 71 + gpios = <&gpio23 6 0>; 72 + linux,default-trigger = "cpu0"; 73 + }; 74 + 75 + wlan_active_led { 76 + label = "wifi_active"; 77 + /* gpio_205_wifi_active */ 78 + gpios = <&gpio25 5 0>; 79 + linux,default-trigger = "phy0tx"; 80 + default-state = "off"; 81 + }; 82 + 83 + bt_active_led { 84 + label = "bt_active"; 85 + gpios = <&gpio25 7 0>; 86 + /* gpio_207_user_led1 */ 87 + linux,default-trigger = "hci0-power"; 88 + default-state = "off"; 89 + }; 90 + }; 91 + 92 + pmic: pmic@fff34000 { 93 + compatible = "hisilicon,hi6421v530-pmic"; 94 + reg = <0x0 0xfff34000 0x0 0x1000>; 95 + interrupt-controller; 96 + #interrupt-cells = <2>; 97 + 98 + regulators { 99 + ldo3: LDO3 { /* HDMI */ 100 + regulator-name = "VOUT3_1V85"; 101 + regulator-min-microvolt = <1800000>; 102 + regulator-max-microvolt = <2200000>; 103 + regulator-enable-ramp-delay = <120>; 104 + }; 105 + 106 + ldo9: LDO9 { /* SDCARD I/O */ 107 + regulator-name = "VOUT9_1V8_2V95"; 108 + regulator-min-microvolt = <1750000>; 109 + regulator-max-microvolt = <3300000>; 110 + regulator-enable-ramp-delay = <240>; 111 + }; 112 + 113 + ldo11: LDO11 { /* Low Speed Connector */ 114 + regulator-name = "VOUT11_1V8_2V95"; 115 + regulator-min-microvolt = <1750000>; 116 + regulator-max-microvolt = <3300000>; 117 + regulator-enable-ramp-delay = <240>; 118 + }; 119 + 120 + ldo15: LDO15 { /* UFS VCC */ 121 + regulator-name = "VOUT15_3V0"; 122 + regulator-min-microvolt = <1750000>; 123 + regulator-max-microvolt = <3000000>; 124 + regulator-boot-on; 125 + regulator-always-on; 126 + regulator-enable-ramp-delay = <120>; 127 + }; 128 + 129 + ldo16: LDO16 { /* SD VDD */ 130 + regulator-name = "VOUT16_2V95"; 131 + regulator-min-microvolt = <1750000>; 132 + regulator-max-microvolt = <3000000>; 133 + regulator-enable-ramp-delay = <360>; 134 + }; 135 + }; 136 + }; 137 + 138 + wlan_en: wlan-en-1-8v { 139 + compatible = "regulator-fixed"; 140 + regulator-name = "wlan-en-regulator"; 141 + regulator-min-microvolt = <1800000>; 142 + regulator-max-microvolt = <1800000>; 143 + 144 + /* GPIO_051_WIFI_EN */ 145 + gpio = <&gpio6 3 0>; 146 + 147 + /* WLAN card specific delay */ 148 + startup-delay-us = <70000>; 149 + enable-active-high; 150 + }; 41 151 }; 42 152 43 - &uart5 { 153 + &i2c0 { 154 + /* On Low speed expansion */ 155 + label = "LS-I2C0"; 44 156 status = "okay"; 157 + }; 158 + 159 + &i2c1 { 160 + status = "okay"; 161 + 162 + adv7533: adv7533@39 { 163 + status = "ok"; 164 + compatible = "adi,adv7533"; 165 + reg = <0x39>; 166 + }; 167 + }; 168 + 169 + &i2c7 { 170 + /* On Low speed expansion */ 171 + label = "LS-I2C1"; 172 + status = "okay"; 173 + }; 174 + 175 + &uart3 { 176 + /* On Low speed expansion */ 177 + label = "LS-UART0"; 178 + status = "okay"; 179 + }; 180 + 181 + &uart4 { 182 + status = "okay"; 183 + 184 + bluetooth { 185 + compatible = "ti,wl1837-st"; 186 + enable-gpios = <&gpio15 6 GPIO_ACTIVE_HIGH>; 187 + max-speed = <921600>; 188 + }; 189 + }; 190 + 191 + &uart6 { 192 + /* On Low speed expansion */ 193 + label = "LS-UART1"; 194 + status = "okay"; 195 + }; 196 + 197 + &spi2 { 198 + /* On Low speed expansion */ 199 + label = "LS-SPI0"; 200 + status = "okay"; 201 + }; 202 + 203 + &spi3 { 204 + /* On High speed expansion */ 205 + label = "HS-SPI1"; 206 + status = "okay"; 207 + }; 208 + 209 + &dwmmc1 { 210 + vmmc-supply = <&ldo16>; 211 + vqmmc-supply = <&ldo9>; 212 + status = "okay"; 213 + }; 214 + 215 + &dwmmc2 { /* WIFI */ 216 + broken-cd; 217 + /* WL_EN */ 218 + vmmc-supply = <&wlan_en>; 219 + ti,non-removable; 220 + non-removable; 221 + #address-cells = <0x1>; 222 + #size-cells = <0x0>; 223 + status = "ok"; 224 + 225 + wlcore: wlcore@2 { 226 + compatible = "ti,wl1837"; 227 + reg = <2>; /* sdio func num */ 228 + /* WL_IRQ, GPIO_179_WL_WAKEUP_AP */ 229 + interrupt-parent = <&gpio22>; 230 + interrupts = <3 IRQ_TYPE_EDGE_RISING>; 231 + }; 45 232 };
+699 -7
arch/arm64/boot/dts/hisilicon/hi3660.dtsi
··· 5 5 */ 6 6 7 7 #include <dt-bindings/interrupt-controller/arm-gic.h> 8 + #include <dt-bindings/clock/hi3660-clock.h> 8 9 9 10 / { 10 11 compatible = "hisilicon,hi3660"; ··· 142 141 #size-cells = <2>; 143 142 ranges; 144 143 145 - fixed_uart5: fixed_19_2M { 146 - compatible = "fixed-clock"; 147 - #clock-cells = <0>; 148 - clock-frequency = <19200000>; 149 - clock-output-names = "fixed:uart5"; 144 + crg_ctrl: crg_ctrl@fff35000 { 145 + compatible = "hisilicon,hi3660-crgctrl", "syscon"; 146 + reg = <0x0 0xfff35000 0x0 0x1000>; 147 + #clock-cells = <1>; 150 148 }; 151 149 152 - uart5: uart@fdf05000 { 150 + crg_rst: crg_rst_controller { 151 + compatible = "hisilicon,hi3660-reset"; 152 + #reset-cells = <2>; 153 + hisi,rst-syscon = <&crg_ctrl>; 154 + }; 155 + 156 + 157 + pctrl: pctrl@e8a09000 { 158 + compatible = "hisilicon,hi3660-pctrl", "syscon"; 159 + reg = <0x0 0xe8a09000 0x0 0x2000>; 160 + #clock-cells = <1>; 161 + }; 162 + 163 + pmuctrl: crg_ctrl@fff34000 { 164 + compatible = "hisilicon,hi3660-pmuctrl", "syscon"; 165 + reg = <0x0 0xfff34000 0x0 0x1000>; 166 + #clock-cells = <1>; 167 + }; 168 + 169 + sctrl: sctrl@fff0a000 { 170 + compatible = "hisilicon,hi3660-sctrl", "syscon"; 171 + reg = <0x0 0xfff0a000 0x0 0x1000>; 172 + #clock-cells = <1>; 173 + }; 174 + 175 + iomcu: iomcu@ffd7e000 { 176 + compatible = "hisilicon,hi3660-iomcu", "syscon"; 177 + reg = <0x0 0xffd7e000 0x0 0x1000>; 178 + #clock-cells = <1>; 179 + 180 + }; 181 + 182 + iomcu_rst: reset { 183 + compatible = "hisilicon,hi3660-reset"; 184 + hisi,rst-syscon = <&iomcu>; 185 + #reset-cells = <2>; 186 + }; 187 + 188 + dual_timer0: timer@fff14000 { 189 + compatible = "arm,sp804", "arm,primecell"; 190 + reg = <0x0 0xfff14000 0x0 0x1000>; 191 + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, 192 + <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 193 + clocks = <&crg_ctrl HI3660_OSC32K>, 194 + <&crg_ctrl HI3660_OSC32K>, 195 + <&crg_ctrl HI3660_OSC32K>; 196 + clock-names = "timer1", "timer2", "apb_pclk"; 197 + }; 198 + 199 + i2c0: i2c@ffd71000 { 200 + compatible = "snps,designware-i2c"; 201 + reg = <0x0 0xffd71000 0x0 0x1000>; 202 + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; 203 + #address-cells = <1>; 204 + #size-cells = <0>; 205 + clock-frequency = <400000>; 206 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>; 207 + resets = <&iomcu_rst 0x20 3>; 208 + pinctrl-names = "default"; 209 + pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>; 210 + status = "disabled"; 211 + }; 212 + 213 + i2c1: i2c@ffd72000 { 214 + compatible = "snps,designware-i2c"; 215 + reg = <0x0 0xffd72000 0x0 0x1000>; 216 + interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; 217 + #address-cells = <1>; 218 + #size-cells = <0>; 219 + clock-frequency = <400000>; 220 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>; 221 + resets = <&iomcu_rst 0x20 4>; 222 + pinctrl-names = "default"; 223 + pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>; 224 + status = "disabled"; 225 + }; 226 + 227 + i2c3: i2c@fdf0c000 { 228 + compatible = "snps,designware-i2c"; 229 + reg = <0x0 0xfdf0c000 0x0 0x1000>; 230 + interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 231 + #address-cells = <1>; 232 + #size-cells = <0>; 233 + clock-frequency = <400000>; 234 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>; 235 + resets = <&crg_rst 0x78 7>; 236 + pinctrl-names = "default"; 237 + pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>; 238 + status = "disabled"; 239 + }; 240 + 241 + i2c7: i2c@fdf0b000 { 242 + compatible = "snps,designware-i2c"; 243 + reg = <0x0 0xfdf0b000 0x0 0x1000>; 244 + interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>; 245 + #address-cells = <1>; 246 + #size-cells = <0>; 247 + clock-frequency = <400000>; 248 + clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>; 249 + resets = <&crg_rst 0x60 14>; 250 + pinctrl-names = "default"; 251 + pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>; 252 + status = "disabled"; 253 + }; 254 + 255 + uart0: serial@fdf02000 { 256 + compatible = "arm,pl011", "arm,primecell"; 257 + reg = <0x0 0xfdf02000 0x0 0x1000>; 258 + interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 259 + clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>, 260 + <&crg_ctrl HI3660_PCLK>; 261 + clock-names = "uartclk", "apb_pclk"; 262 + pinctrl-names = "default"; 263 + pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>; 264 + status = "disabled"; 265 + }; 266 + 267 + uart1: serial@fdf00000 { 268 + compatible = "arm,pl011", "arm,primecell"; 269 + reg = <0x0 0xfdf00000 0x0 0x1000>; 270 + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 271 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>, 272 + <&crg_ctrl HI3660_CLK_GATE_UART1>; 273 + clock-names = "uartclk", "apb_pclk"; 274 + pinctrl-names = "default"; 275 + pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>; 276 + status = "disabled"; 277 + }; 278 + 279 + uart2: serial@fdf03000 { 280 + compatible = "arm,pl011", "arm,primecell"; 281 + reg = <0x0 0xfdf03000 0x0 0x1000>; 282 + interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 283 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>, 284 + <&crg_ctrl HI3660_PCLK>; 285 + clock-names = "uartclk", "apb_pclk"; 286 + pinctrl-names = "default"; 287 + pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>; 288 + status = "disabled"; 289 + }; 290 + 291 + uart3: serial@ffd74000 { 292 + compatible = "arm,pl011", "arm,primecell"; 293 + reg = <0x0 0xffd74000 0x0 0x1000>; 294 + interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>; 295 + clocks = <&crg_ctrl HI3660_FACTOR_UART3>, 296 + <&crg_ctrl HI3660_PCLK>; 297 + clock-names = "uartclk", "apb_pclk"; 298 + pinctrl-names = "default"; 299 + pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>; 300 + status = "disabled"; 301 + }; 302 + 303 + uart4: serial@fdf01000 { 304 + compatible = "arm,pl011", "arm,primecell"; 305 + reg = <0x0 0xfdf01000 0x0 0x1000>; 306 + interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 307 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>, 308 + <&crg_ctrl HI3660_CLK_GATE_UART4>; 309 + clock-names = "uartclk", "apb_pclk"; 310 + pinctrl-names = "default"; 311 + pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>; 312 + status = "disabled"; 313 + }; 314 + 315 + uart5: serial@fdf05000 { 153 316 compatible = "arm,pl011", "arm,primecell"; 154 317 reg = <0x0 0xfdf05000 0x0 0x1000>; 155 318 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 156 - clocks = <&fixed_uart5 &fixed_uart5>; 319 + clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>, 320 + <&crg_ctrl HI3660_CLK_GATE_UART5>; 157 321 clock-names = "uartclk", "apb_pclk"; 322 + pinctrl-names = "default"; 323 + pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>; 324 + status = "disabled"; 325 + }; 326 + 327 + uart6: serial@fff32000 { 328 + compatible = "arm,pl011", "arm,primecell"; 329 + reg = <0x0 0xfff32000 0x0 0x1000>; 330 + interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 331 + clocks = <&crg_ctrl HI3660_CLK_UART6>, 332 + <&crg_ctrl HI3660_PCLK>; 333 + clock-names = "uartclk", "apb_pclk"; 334 + pinctrl-names = "default"; 335 + pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>; 336 + status = "disabled"; 337 + }; 338 + 339 + rtc0: rtc@fff04000 { 340 + compatible = "arm,pl031", "arm,primecell"; 341 + reg = <0x0 0Xfff04000 0x0 0x1000>; 342 + interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 343 + clocks = <&crg_ctrl HI3660_PCLK>; 344 + clock-names = "apb_pclk"; 345 + }; 346 + 347 + gpio0: gpio@e8a0b000 { 348 + compatible = "arm,pl061", "arm,primecell"; 349 + reg = <0 0xe8a0b000 0 0x1000>; 350 + interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 351 + gpio-controller; 352 + #gpio-cells = <2>; 353 + gpio-ranges = <&pmx0 1 0 7>; 354 + interrupt-controller; 355 + #interrupt-cells = <2>; 356 + clocks = <&crg_ctrl HI3660_PCLK_GPIO0>; 357 + clock-names = "apb_pclk"; 358 + }; 359 + 360 + gpio1: gpio@e8a0c000 { 361 + compatible = "arm,pl061", "arm,primecell"; 362 + reg = <0 0xe8a0c000 0 0x1000>; 363 + interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 364 + gpio-controller; 365 + #gpio-cells = <2>; 366 + gpio-ranges = <&pmx0 1 7 7>; 367 + interrupt-controller; 368 + #interrupt-cells = <2>; 369 + clocks = <&crg_ctrl HI3660_PCLK_GPIO1>; 370 + clock-names = "apb_pclk"; 371 + }; 372 + 373 + gpio2: gpio@e8a0d000 { 374 + compatible = "arm,pl061", "arm,primecell"; 375 + reg = <0 0xe8a0d000 0 0x1000>; 376 + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 377 + gpio-controller; 378 + #gpio-cells = <2>; 379 + gpio-ranges = <&pmx0 0 14 8>; 380 + interrupt-controller; 381 + #interrupt-cells = <2>; 382 + clocks = <&crg_ctrl HI3660_PCLK_GPIO2>; 383 + clock-names = "apb_pclk"; 384 + }; 385 + 386 + gpio3: gpio@e8a0e000 { 387 + compatible = "arm,pl061", "arm,primecell"; 388 + reg = <0 0xe8a0e000 0 0x1000>; 389 + interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 390 + gpio-controller; 391 + #gpio-cells = <2>; 392 + gpio-ranges = <&pmx0 0 22 8>; 393 + interrupt-controller; 394 + #interrupt-cells = <2>; 395 + clocks = <&crg_ctrl HI3660_PCLK_GPIO3>; 396 + clock-names = "apb_pclk"; 397 + }; 398 + 399 + gpio4: gpio@e8a0f000 { 400 + compatible = "arm,pl061", "arm,primecell"; 401 + reg = <0 0xe8a0f000 0 0x1000>; 402 + interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 403 + gpio-controller; 404 + #gpio-cells = <2>; 405 + gpio-ranges = <&pmx0 0 30 8>; 406 + interrupt-controller; 407 + #interrupt-cells = <2>; 408 + clocks = <&crg_ctrl HI3660_PCLK_GPIO4>; 409 + clock-names = "apb_pclk"; 410 + }; 411 + 412 + gpio5: gpio@e8a10000 { 413 + compatible = "arm,pl061", "arm,primecell"; 414 + reg = <0 0xe8a10000 0 0x1000>; 415 + interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 416 + gpio-controller; 417 + #gpio-cells = <2>; 418 + gpio-ranges = <&pmx0 0 38 8>; 419 + interrupt-controller; 420 + #interrupt-cells = <2>; 421 + clocks = <&crg_ctrl HI3660_PCLK_GPIO5>; 422 + clock-names = "apb_pclk"; 423 + }; 424 + 425 + gpio6: gpio@e8a11000 { 426 + compatible = "arm,pl061", "arm,primecell"; 427 + reg = <0 0xe8a11000 0 0x1000>; 428 + interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 429 + gpio-controller; 430 + #gpio-cells = <2>; 431 + gpio-ranges = <&pmx0 0 46 8>; 432 + interrupt-controller; 433 + #interrupt-cells = <2>; 434 + clocks = <&crg_ctrl HI3660_PCLK_GPIO6>; 435 + clock-names = "apb_pclk"; 436 + }; 437 + 438 + gpio7: gpio@e8a12000 { 439 + compatible = "arm,pl061", "arm,primecell"; 440 + reg = <0 0xe8a12000 0 0x1000>; 441 + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 442 + gpio-controller; 443 + #gpio-cells = <2>; 444 + gpio-ranges = <&pmx0 0 54 8>; 445 + interrupt-controller; 446 + #interrupt-cells = <2>; 447 + clocks = <&crg_ctrl HI3660_PCLK_GPIO7>; 448 + clock-names = "apb_pclk"; 449 + }; 450 + 451 + gpio8: gpio@e8a13000 { 452 + compatible = "arm,pl061", "arm,primecell"; 453 + reg = <0 0xe8a13000 0 0x1000>; 454 + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 455 + gpio-controller; 456 + #gpio-cells = <2>; 457 + gpio-ranges = <&pmx0 0 62 8>; 458 + interrupt-controller; 459 + #interrupt-cells = <2>; 460 + clocks = <&crg_ctrl HI3660_PCLK_GPIO8>; 461 + clock-names = "apb_pclk"; 462 + }; 463 + 464 + gpio9: gpio@e8a14000 { 465 + compatible = "arm,pl061", "arm,primecell"; 466 + reg = <0 0xe8a14000 0 0x1000>; 467 + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 468 + gpio-controller; 469 + #gpio-cells = <2>; 470 + gpio-ranges = <&pmx0 0 70 8>; 471 + interrupt-controller; 472 + #interrupt-cells = <2>; 473 + clocks = <&crg_ctrl HI3660_PCLK_GPIO9>; 474 + clock-names = "apb_pclk"; 475 + }; 476 + 477 + gpio10: gpio@e8a15000 { 478 + compatible = "arm,pl061", "arm,primecell"; 479 + reg = <0 0xe8a15000 0 0x1000>; 480 + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 481 + gpio-controller; 482 + #gpio-cells = <2>; 483 + gpio-ranges = <&pmx0 0 78 8>; 484 + interrupt-controller; 485 + #interrupt-cells = <2>; 486 + clocks = <&crg_ctrl HI3660_PCLK_GPIO10>; 487 + clock-names = "apb_pclk"; 488 + }; 489 + 490 + gpio11: gpio@e8a16000 { 491 + compatible = "arm,pl061", "arm,primecell"; 492 + reg = <0 0xe8a16000 0 0x1000>; 493 + interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 494 + gpio-controller; 495 + #gpio-cells = <2>; 496 + gpio-ranges = <&pmx0 0 86 8>; 497 + interrupt-controller; 498 + #interrupt-cells = <2>; 499 + clocks = <&crg_ctrl HI3660_PCLK_GPIO11>; 500 + clock-names = "apb_pclk"; 501 + }; 502 + 503 + gpio12: gpio@e8a17000 { 504 + compatible = "arm,pl061", "arm,primecell"; 505 + reg = <0 0xe8a17000 0 0x1000>; 506 + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 507 + gpio-controller; 508 + #gpio-cells = <2>; 509 + gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>; 510 + interrupt-controller; 511 + #interrupt-cells = <2>; 512 + clocks = <&crg_ctrl HI3660_PCLK_GPIO12>; 513 + clock-names = "apb_pclk"; 514 + }; 515 + 516 + gpio13: gpio@e8a18000 { 517 + compatible = "arm,pl061", "arm,primecell"; 518 + reg = <0 0xe8a18000 0 0x1000>; 519 + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 520 + gpio-controller; 521 + #gpio-cells = <2>; 522 + gpio-ranges = <&pmx0 0 102 8>; 523 + interrupt-controller; 524 + #interrupt-cells = <2>; 525 + clocks = <&crg_ctrl HI3660_PCLK_GPIO13>; 526 + clock-names = "apb_pclk"; 527 + }; 528 + 529 + gpio14: gpio@e8a19000 { 530 + compatible = "arm,pl061", "arm,primecell"; 531 + reg = <0 0xe8a19000 0 0x1000>; 532 + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 533 + gpio-controller; 534 + #gpio-cells = <2>; 535 + gpio-ranges = <&pmx0 0 110 8>; 536 + interrupt-controller; 537 + #interrupt-cells = <2>; 538 + clocks = <&crg_ctrl HI3660_PCLK_GPIO14>; 539 + clock-names = "apb_pclk"; 540 + }; 541 + 542 + gpio15: gpio@e8a1a000 { 543 + compatible = "arm,pl061", "arm,primecell"; 544 + reg = <0 0xe8a1a000 0 0x1000>; 545 + interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; 546 + gpio-controller; 547 + #gpio-cells = <2>; 548 + gpio-ranges = <&pmx0 0 118 6>; 549 + interrupt-controller; 550 + #interrupt-cells = <2>; 551 + clocks = <&crg_ctrl HI3660_PCLK_GPIO15>; 552 + clock-names = "apb_pclk"; 553 + }; 554 + 555 + gpio16: gpio@e8a1b000 { 556 + compatible = "arm,pl061", "arm,primecell"; 557 + reg = <0 0xe8a1b000 0 0x1000>; 558 + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 559 + gpio-controller; 560 + #gpio-cells = <2>; 561 + interrupt-controller; 562 + #interrupt-cells = <2>; 563 + clocks = <&crg_ctrl HI3660_PCLK_GPIO16>; 564 + clock-names = "apb_pclk"; 565 + }; 566 + 567 + gpio17: gpio@e8a1c000 { 568 + compatible = "arm,pl061", "arm,primecell"; 569 + reg = <0 0xe8a1c000 0 0x1000>; 570 + interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; 571 + gpio-controller; 572 + #gpio-cells = <2>; 573 + interrupt-controller; 574 + #interrupt-cells = <2>; 575 + clocks = <&crg_ctrl HI3660_PCLK_GPIO17>; 576 + clock-names = "apb_pclk"; 577 + }; 578 + 579 + gpio18: gpio@ff3b4000 { 580 + compatible = "arm,pl061", "arm,primecell"; 581 + reg = <0 0xff3b4000 0 0x1000>; 582 + interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 583 + gpio-controller; 584 + #gpio-cells = <2>; 585 + gpio-ranges = <&pmx2 0 0 8>; 586 + interrupt-controller; 587 + #interrupt-cells = <2>; 588 + clocks = <&crg_ctrl HI3660_PCLK_GPIO18>; 589 + clock-names = "apb_pclk"; 590 + }; 591 + 592 + gpio19: gpio@ff3b5000 { 593 + compatible = "arm,pl061", "arm,primecell"; 594 + reg = <0 0xff3b5000 0 0x1000>; 595 + interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 596 + gpio-controller; 597 + #gpio-cells = <2>; 598 + gpio-ranges = <&pmx2 0 8 4>; 599 + interrupt-controller; 600 + #interrupt-cells = <2>; 601 + clocks = <&crg_ctrl HI3660_PCLK_GPIO19>; 602 + clock-names = "apb_pclk"; 603 + }; 604 + 605 + gpio20: gpio@e8a1f000 { 606 + compatible = "arm,pl061", "arm,primecell"; 607 + reg = <0 0xe8a1f000 0 0x1000>; 608 + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 609 + gpio-controller; 610 + #gpio-cells = <2>; 611 + gpio-ranges = <&pmx1 0 0 6>; 612 + interrupt-controller; 613 + #interrupt-cells = <2>; 614 + clocks = <&crg_ctrl HI3660_PCLK_GPIO20>; 615 + clock-names = "apb_pclk"; 616 + }; 617 + 618 + gpio21: gpio@e8a20000 { 619 + compatible = "arm,pl061", "arm,primecell"; 620 + reg = <0 0xe8a20000 0 0x1000>; 621 + interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 622 + gpio-controller; 623 + #gpio-cells = <2>; 624 + interrupt-controller; 625 + #interrupt-cells = <2>; 626 + gpio-ranges = <&pmx3 0 0 6>; 627 + clocks = <&crg_ctrl HI3660_PCLK_GPIO21>; 628 + clock-names = "apb_pclk"; 629 + }; 630 + 631 + gpio22: gpio@fff0b000 { 632 + compatible = "arm,pl061", "arm,primecell"; 633 + reg = <0 0xfff0b000 0 0x1000>; 634 + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 635 + gpio-controller; 636 + #gpio-cells = <2>; 637 + /* GPIO176 */ 638 + gpio-ranges = <&pmx4 2 0 6>; 639 + interrupt-controller; 640 + #interrupt-cells = <2>; 641 + clocks = <&sctrl HI3660_PCLK_AO_GPIO0>; 642 + clock-names = "apb_pclk"; 643 + }; 644 + 645 + gpio23: gpio@fff0c000 { 646 + compatible = "arm,pl061", "arm,primecell"; 647 + reg = <0 0xfff0c000 0 0x1000>; 648 + interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 649 + gpio-controller; 650 + #gpio-cells = <2>; 651 + /* GPIO184 */ 652 + gpio-ranges = <&pmx4 0 6 7>; 653 + interrupt-controller; 654 + #interrupt-cells = <2>; 655 + clocks = <&sctrl HI3660_PCLK_AO_GPIO1>; 656 + clock-names = "apb_pclk"; 657 + }; 658 + 659 + gpio24: gpio@fff0d000 { 660 + compatible = "arm,pl061", "arm,primecell"; 661 + reg = <0 0xfff0d000 0 0x1000>; 662 + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 663 + gpio-controller; 664 + #gpio-cells = <2>; 665 + /* GPIO192 */ 666 + gpio-ranges = <&pmx4 0 13 8>; 667 + interrupt-controller; 668 + #interrupt-cells = <2>; 669 + clocks = <&sctrl HI3660_PCLK_AO_GPIO2>; 670 + clock-names = "apb_pclk"; 671 + }; 672 + 673 + gpio25: gpio@fff0e000 { 674 + compatible = "arm,pl061", "arm,primecell"; 675 + reg = <0 0xfff0e000 0 0x1000>; 676 + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; 677 + gpio-controller; 678 + #gpio-cells = <2>; 679 + /* GPIO200 */ 680 + gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>; 681 + interrupt-controller; 682 + #interrupt-cells = <2>; 683 + clocks = <&sctrl HI3660_PCLK_AO_GPIO3>; 684 + clock-names = "apb_pclk"; 685 + }; 686 + 687 + gpio26: gpio@fff0f000 { 688 + compatible = "arm,pl061", "arm,primecell"; 689 + reg = <0 0xfff0f000 0 0x1000>; 690 + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; 691 + gpio-controller; 692 + #gpio-cells = <2>; 693 + /* GPIO208 */ 694 + gpio-ranges = <&pmx4 0 28 8>; 695 + interrupt-controller; 696 + #interrupt-cells = <2>; 697 + clocks = <&sctrl HI3660_PCLK_AO_GPIO4>; 698 + clock-names = "apb_pclk"; 699 + }; 700 + 701 + gpio27: gpio@fff10000 { 702 + compatible = "arm,pl061", "arm,primecell"; 703 + reg = <0 0xfff10000 0 0x1000>; 704 + interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 705 + gpio-controller; 706 + #gpio-cells = <2>; 707 + /* GPIO216 */ 708 + gpio-ranges = <&pmx4 0 36 6>; 709 + interrupt-controller; 710 + #interrupt-cells = <2>; 711 + clocks = <&sctrl HI3660_PCLK_AO_GPIO5>; 712 + clock-names = "apb_pclk"; 713 + }; 714 + 715 + gpio28: gpio@fff1d000 { 716 + compatible = "arm,pl061", "arm,primecell"; 717 + reg = <0 0xfff1d000 0 0x1000>; 718 + interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; 719 + gpio-controller; 720 + #gpio-cells = <2>; 721 + interrupt-controller; 722 + #interrupt-cells = <2>; 723 + clocks = <&sctrl HI3660_PCLK_AO_GPIO6>; 724 + clock-names = "apb_pclk"; 725 + }; 726 + 727 + spi2: spi@ffd68000 { 728 + compatible = "arm,pl022", "arm,primecell"; 729 + reg = <0x0 0xffd68000 0x0 0x1000>; 730 + #address-cells = <1>; 731 + #size-cells = <0>; 732 + interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; 733 + clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>; 734 + clock-names = "apb_pclk"; 735 + pinctrl-names = "default"; 736 + pinctrl-0 = <&spi2_pmx_func>; 737 + num-cs = <1>; 738 + cs-gpios = <&gpio27 2 0>; 739 + status = "disabled"; 740 + }; 741 + 742 + spi3: spi@ff3b3000 { 743 + compatible = "arm,pl022", "arm,primecell"; 744 + reg = <0x0 0xff3b3000 0x0 0x1000>; 745 + #address-cells = <1>; 746 + #size-cells = <0>; 747 + interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 748 + clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>; 749 + clock-names = "apb_pclk"; 750 + pinctrl-names = "default"; 751 + pinctrl-0 = <&spi3_pmx_func>; 752 + num-cs = <1>; 753 + cs-gpios = <&gpio18 5 0>; 754 + status = "disabled"; 755 + }; 756 + 757 + pcie@f4000000 { 758 + compatible = "hisilicon,kirin960-pcie"; 759 + reg = <0x0 0xf4000000 0x0 0x1000>, 760 + <0x0 0xff3fe000 0x0 0x1000>, 761 + <0x0 0xf3f20000 0x0 0x40000>, 762 + <0x0 0xf5000000 0x0 0x2000>; 763 + reg-names = "dbi", "apb", "phy", "config"; 764 + bus-range = <0x0 0x1>; 765 + #address-cells = <3>; 766 + #size-cells = <2>; 767 + device_type = "pci"; 768 + ranges = <0x02000000 0x0 0x00000000 769 + 0x0 0xf6000000 770 + 0x0 0x02000000>; 771 + num-lanes = <1>; 772 + #interrupt-cells = <1>; 773 + interrupt-map-mask = <0xf800 0 0 7>; 774 + interrupt-map = <0x0 0 0 1 775 + &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>, 776 + <0x0 0 0 2 777 + &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>, 778 + <0x0 0 0 3 779 + &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>, 780 + <0x0 0 0 4 781 + &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 782 + clocks = <&crg_ctrl HI3660_PCIEPHY_REF>, 783 + <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>, 784 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>, 785 + <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>, 786 + <&crg_ctrl HI3660_ACLK_GATE_PCIE>; 787 + clock-names = "pcie_phy_ref", "pcie_aux", 788 + "pcie_apb_phy", "pcie_apb_sys", 789 + "pcie_aclk"; 790 + reset-gpios = <&gpio11 1 0 >; 791 + }; 792 + 793 + /* SD */ 794 + dwmmc1: dwmmc1@ff37f000 { 795 + #address-cells = <1>; 796 + #size-cells = <0>; 797 + cd-inverted; 798 + compatible = "hisilicon,hi3660-dw-mshc"; 799 + num-slots = <1>; 800 + bus-width = <0x4>; 801 + disable-wp; 802 + cap-sd-highspeed; 803 + supports-highspeed; 804 + card-detect-delay = <200>; 805 + reg = <0x0 0xff37f000 0x0 0x1000>; 806 + interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>; 807 + clocks = <&crg_ctrl HI3660_CLK_GATE_SD>, 808 + <&crg_ctrl HI3660_HCLK_GATE_SD>; 809 + clock-names = "ciu", "biu"; 810 + clock-frequency = <3200000>; 811 + resets = <&crg_rst 0x94 18>; 812 + cd-gpios = <&gpio25 3 0>; 813 + hisilicon,peripheral-syscon = <&sctrl>; 814 + pinctrl-names = "default"; 815 + pinctrl-0 = <&sd_pmx_func 816 + &sd_clk_cfg_func 817 + &sd_cfg_func>; 818 + sd-uhs-sdr12; 819 + sd-uhs-sdr25; 820 + sd-uhs-sdr50; 821 + sd-uhs-sdr104; 822 + status = "disabled"; 823 + 824 + slot@0 { 825 + reg = <0x0>; 826 + bus-width = <4>; 827 + disable-wp; 828 + }; 829 + }; 830 + 831 + /* SDIO */ 832 + dwmmc2: dwmmc2@ff3ff000 { 833 + compatible = "hisilicon,hi3660-dw-mshc"; 834 + reg = <0x0 0xff3ff000 0x0 0x1000>; 835 + interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 836 + num-slots = <1>; 837 + clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>, 838 + <&crg_ctrl HI3660_HCLK_GATE_SDIO0>; 839 + clock-names = "ciu", "biu"; 840 + resets = <&crg_rst 0x94 20>; 841 + card-detect-delay = <200>; 842 + supports-highspeed; 843 + keep-power-in-suspend; 844 + pinctrl-names = "default"; 845 + pinctrl-0 = <&sdio_pmx_func 846 + &sdio_clk_cfg_func 847 + &sdio_cfg_func>; 158 848 status = "disabled"; 159 849 }; 160 850 };
+31 -3
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
··· 466 466 method = "smc"; 467 467 }; 468 468 }; 469 + 470 + sound_card { 471 + compatible = "audio-graph-card"; 472 + dais = <&i2s0_port0>; 473 + }; 469 474 }; 470 475 471 476 &uart2 { ··· 511 506 interrupts = <1 2>; 512 507 pd-gpio = <&gpio0 4 0>; 513 508 adi,dsi-lanes = <4>; 509 + #sound-dai-cells = <0>; 514 510 515 - port { 516 - adv7533_in: endpoint { 517 - remote-endpoint = <&dsi_out0>; 511 + ports { 512 + #address-cells = <1>; 513 + #size-cells = <0>; 514 + port@0 { 515 + adv7533_in: endpoint { 516 + remote-endpoint = <&dsi_out0>; 517 + }; 518 + }; 519 + port@2 { 520 + reg = <2>; 521 + codec_endpoint: endpoint { 522 + remote-endpoint = <&i2s0_cpu_endpoint>; 523 + }; 524 + }; 525 + }; 526 + }; 527 + }; 528 + 529 + &i2s0 { 530 + 531 + ports { 532 + i2s0_port0: port@0 { 533 + i2s0_cpu_endpoint: endpoint { 534 + remote-endpoint = <&codec_endpoint>; 535 + dai-format = "i2s"; 518 536 }; 519 537 }; 520 538 };
+26
arch/arm64/boot/dts/hisilicon/hi6220.dtsi
··· 332 332 status = "disabled"; 333 333 }; 334 334 335 + dma0: dma@f7370000 { 336 + compatible = "hisilicon,k3-dma-1.0"; 337 + reg = <0x0 0xf7370000 0x0 0x1000>; 338 + #dma-cells = <1>; 339 + dma-channels = <15>; 340 + dma-requests = <32>; 341 + interrupts = <0 84 4>; 342 + clocks = <&sys_ctrl HI6220_EDMAC_ACLK>; 343 + dma-no-cci; 344 + dma-type = "hi6220_dma"; 345 + status = "ok"; 346 + }; 347 + 335 348 dual_timer0: timer@f8008000 { 336 349 compatible = "arm,sp804", "arm,primecell"; 337 350 reg = <0x0 0xf8008000 0x0 0x1000>; ··· 816 803 clocks = <&sys_ctrl 22>; 817 804 clock-names = "thermal_clk"; 818 805 #thermal-sensor-cells = <1>; 806 + }; 807 + 808 + i2s0: i2s@f7118000{ 809 + compatible = "hisilicon,hi6210-i2s"; 810 + reg = <0x0 0xf7118000 0x0 0x8000>; /* i2s unit */ 811 + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; /* 155 "DigACodec_intr"-32 */ 812 + clocks = <&sys_ctrl HI6220_DACODEC_PCLK>, 813 + <&sys_ctrl HI6220_BBPPLL0_DIV>; 814 + clock-names = "dacodec", "i2s-base"; 815 + dmas = <&dma0 15 &dma0 14>; 816 + dma-names = "rx", "tx"; 817 + hisilicon,sysctrl-syscon = <&sys_ctrl>; 818 + #sound-dai-cells = <1>; 819 819 }; 820 820 821 821 thermal-zones {
+691 -39
arch/arm64/boot/dts/hisilicon/hikey960-pinctrl.dtsi
··· 24 24 &range 0 7 0 25 25 &range 8 116 0>; 26 26 27 + pmu_pmx_func: pmu_pmx_func { 28 + pinctrl-single,pins = < 29 + 0x008 MUX_M1 /* PMU1_SSI */ 30 + 0x00c MUX_M1 /* PMU2_SSI */ 31 + 0x010 MUX_M1 /* PMU_CLKOUT */ 32 + 0x100 MUX_M1 /* PMU_HKADC_SSI */ 33 + >; 34 + }; 35 + 36 + csi0_pwd_n_pmx_func: csi0_pwd_n_pmx_func { 37 + pinctrl-single,pins = < 38 + 0x044 MUX_M0 /* CSI0_PWD_N */ 39 + >; 40 + }; 41 + 42 + csi1_pwd_n_pmx_func: csi1_pwd_n_pmx_func { 43 + pinctrl-single,pins = < 44 + 0x04c MUX_M0 /* CSI1_PWD_N */ 45 + >; 46 + }; 47 + 27 48 isp0_pmx_func: isp0_pmx_func { 28 49 pinctrl-single,pins = < 29 50 0x058 MUX_M1 /* ISP_CLK0 */ ··· 58 37 0x05c MUX_M1 /* ISP_CLK1 */ 59 38 0x06c MUX_M1 /* ISP_SCL1 */ 60 39 0x070 MUX_M1 /* ISP_SDA1 */ 40 + >; 41 + }; 42 + 43 + pwr_key_pmx_func: pwr_key_pmx_func { 44 + pinctrl-single,pins = < 45 + 0x080 MUX_M0 /* GPIO_034 */ 61 46 >; 62 47 }; 63 48 ··· 94 67 >; 95 68 }; 96 69 97 - spi1_pmx_func: spi1_pmx_func { 98 - pinctrl-single,pins = < 99 - 0x034 MUX_M1 /* SPI1_CLK */ 100 - 0x038 MUX_M1 /* SPI1_DI */ 101 - 0x03c MUX_M1 /* SPI1_DO */ 102 - 0x040 MUX_M1 /* SPI1_CS_N */ 103 - >; 104 - }; 105 - 106 70 uart0_pmx_func: uart0_pmx_func { 107 71 pinctrl-single,pins = < 108 72 0x0cc MUX_M2 /* UART0_RXD */ 109 73 0x0d0 MUX_M2 /* UART0_TXD */ 110 - 0x0d4 MUX_M2 /* UART0_RXD_M */ 111 - 0x0d8 MUX_M2 /* UART0_TXD_M */ 112 74 >; 113 75 }; 114 76 ··· 154 138 0x0d8 MUX_M1 /* UART6_TXD */ 155 139 >; 156 140 }; 141 + 142 + cam0_rst_pmx_func: cam0_rst_pmx_func { 143 + pinctrl-single,pins = < 144 + 0x0c8 MUX_M0 /* CAM0_RST */ 145 + >; 146 + }; 147 + 148 + cam1_rst_pmx_func: cam1_rst_pmx_func { 149 + pinctrl-single,pins = < 150 + 0x124 MUX_M0 /* CAM1_RST */ 151 + >; 152 + }; 157 153 }; 158 154 159 155 /* [IOMG_MMC0_000, IOMG_MMC0_005] */ ··· 201 173 pinctrl-single,function-mask = <0x7>; 202 174 /* pin base, nr pins & gpio function */ 203 175 pinctrl-single,gpio-range = <&range 0 12 0>; 176 + 177 + ufs_pmx_func: ufs_pmx_func { 178 + pinctrl-single,pins = < 179 + 0x000 MUX_M1 /* UFS_REF_CLK */ 180 + 0x004 MUX_M1 /* UFS_RST_N */ 181 + >; 182 + }; 204 183 205 184 spi3_pmx_func: spi3_pmx_func { 206 185 pinctrl-single,pins = < ··· 283 248 >; 284 249 }; 285 250 286 - i2c2_pmx_func: i2c2_pmx_func { 287 - pinctrl-single,pins = < 288 - 0x024 MUX_M1 /* I2C2_SCL */ 289 - 0x028 MUX_M1 /* I2C2_SDA */ 290 - >; 291 - }; 292 - 293 251 i2c7_pmx_func: i2c7_pmx_func { 294 252 pinctrl-single,pins = < 295 253 0x024 MUX_M3 /* I2C7_SCL */ 296 254 0x028 MUX_M3 /* I2C7_SDA */ 255 + >; 256 + }; 257 + 258 + pcie_pmx_func: pcie_pmx_func { 259 + pinctrl-single,pins = < 260 + 0x084 MUX_M1 /* PCIE_CLKREQ_N */ 261 + 0x088 MUX_M1 /* PCIE_WAKE_N */ 297 262 >; 298 263 }; 299 264 ··· 303 268 0x090 MUX_M1 /* SPI2_DI */ 304 269 0x094 MUX_M1 /* SPI2_DO */ 305 270 0x098 MUX_M1 /* SPI2_CS0_N */ 306 - >; 307 - }; 308 - 309 - spi4_pmx_func: spi4_pmx_func { 310 - pinctrl-single,pins = < 311 - 0x08c MUX_M4 /* SPI4_CLK */ 312 - 0x090 MUX_M4 /* SPI4_DI */ 313 - 0x094 MUX_M4 /* SPI4_DO */ 314 - 0x098 MUX_M4 /* SPI4_CS0_N */ 315 271 >; 316 272 }; 317 273 ··· 316 290 }; 317 291 }; 318 292 319 - pmx5: pinmux@ff3fd800 { 293 + pmx5: pinmux@e896c800 { 294 + compatible = "pinconf-single"; 295 + reg = <0x0 0xe896c800 0x0 0x200>; 296 + #pinctrl-cells = <1>; 297 + pinctrl-single,register-width = <0x20>; 298 + 299 + pmu_cfg_func: pmu_cfg_func { 300 + pinctrl-single,pins = < 301 + 0x010 0x0 /* PMU1_SSI */ 302 + 0x014 0x0 /* PMU2_SSI */ 303 + 0x018 0x0 /* PMU_CLKOUT */ 304 + 0x10c 0x0 /* PMU_HKADC_SSI */ 305 + >; 306 + pinctrl-single,bias-pulldown = < 307 + PULL_DIS 308 + PULL_DOWN 309 + PULL_DIS 310 + PULL_DOWN 311 + >; 312 + pinctrl-single,bias-pullup = < 313 + PULL_DIS 314 + PULL_UP 315 + PULL_DIS 316 + PULL_UP 317 + >; 318 + pinctrl-single,drive-strength = < 319 + DRIVE7_06MA DRIVE6_MASK 320 + >; 321 + }; 322 + 323 + i2c3_cfg_func: i2c3_cfg_func { 324 + pinctrl-single,pins = < 325 + 0x038 0x0 /* I2C3_SCL */ 326 + 0x03c 0x0 /* I2C3_SDA */ 327 + >; 328 + pinctrl-single,bias-pulldown = < 329 + PULL_DIS 330 + PULL_DOWN 331 + PULL_DIS 332 + PULL_DOWN 333 + >; 334 + pinctrl-single,bias-pullup = < 335 + PULL_DIS 336 + PULL_UP 337 + PULL_DIS 338 + PULL_UP 339 + >; 340 + pinctrl-single,drive-strength = < 341 + DRIVE7_02MA DRIVE6_MASK 342 + >; 343 + }; 344 + 345 + csi0_pwd_n_cfg_func: csi0_pwd_n_cfg_func { 346 + pinctrl-single,pins = < 347 + 0x050 0x0 /* CSI0_PWD_N */ 348 + >; 349 + pinctrl-single,bias-pulldown = < 350 + PULL_DIS 351 + PULL_DOWN 352 + PULL_DIS 353 + PULL_DOWN 354 + >; 355 + pinctrl-single,bias-pullup = < 356 + PULL_DIS 357 + PULL_UP 358 + PULL_DIS 359 + PULL_UP 360 + >; 361 + pinctrl-single,drive-strength = < 362 + DRIVE7_04MA DRIVE6_MASK 363 + >; 364 + }; 365 + 366 + csi1_pwd_n_cfg_func: csi1_pwd_n_cfg_func { 367 + pinctrl-single,pins = < 368 + 0x058 0x0 /* CSI1_PWD_N */ 369 + >; 370 + pinctrl-single,bias-pulldown = < 371 + PULL_DIS 372 + PULL_DOWN 373 + PULL_DIS 374 + PULL_DOWN 375 + >; 376 + pinctrl-single,bias-pullup = < 377 + PULL_DIS 378 + PULL_UP 379 + PULL_DIS 380 + PULL_UP 381 + >; 382 + pinctrl-single,drive-strength = < 383 + DRIVE7_04MA DRIVE6_MASK 384 + >; 385 + }; 386 + 387 + isp0_cfg_func: isp0_cfg_func { 388 + pinctrl-single,pins = < 389 + 0x064 0x0 /* ISP_CLK0 */ 390 + 0x070 0x0 /* ISP_SCL0 */ 391 + 0x074 0x0 /* ISP_SDA0 */ 392 + >; 393 + pinctrl-single,bias-pulldown = < 394 + PULL_DIS 395 + PULL_DOWN 396 + PULL_DIS 397 + PULL_DOWN 398 + >; 399 + pinctrl-single,bias-pullup = < 400 + PULL_DIS 401 + PULL_UP 402 + PULL_DIS 403 + PULL_UP 404 + >; 405 + pinctrl-single,drive-strength = < 406 + DRIVE7_04MA DRIVE6_MASK>; 407 + }; 408 + 409 + isp1_cfg_func: isp1_cfg_func { 410 + pinctrl-single,pins = < 411 + 0x068 0x0 /* ISP_CLK1 */ 412 + 0x078 0x0 /* ISP_SCL1 */ 413 + 0x07c 0x0 /* ISP_SDA1 */ 414 + >; 415 + pinctrl-single,bias-pulldown = < 416 + PULL_DIS 417 + PULL_DOWN 418 + PULL_DIS 419 + PULL_DOWN 420 + >; 421 + pinctrl-single,bias-pullup = < 422 + PULL_DIS 423 + PULL_UP 424 + PULL_DIS 425 + PULL_UP 426 + >; 427 + pinctrl-single,drive-strength = < 428 + DRIVE7_04MA DRIVE6_MASK 429 + >; 430 + }; 431 + 432 + pwr_key_cfg_func: pwr_key_cfg_func { 433 + pinctrl-single,pins = < 434 + 0x08c 0x0 /* GPIO_034 */ 435 + >; 436 + pinctrl-single,bias-pulldown = < 437 + PULL_DIS 438 + PULL_DOWN 439 + PULL_DIS 440 + PULL_DOWN 441 + >; 442 + pinctrl-single,bias-pullup = < 443 + PULL_DIS 444 + PULL_UP 445 + PULL_DIS 446 + PULL_UP 447 + >; 448 + pinctrl-single,drive-strength = < 449 + DRIVE7_02MA DRIVE6_MASK 450 + >; 451 + }; 452 + 453 + uart1_cfg_func: uart1_cfg_func { 454 + pinctrl-single,pins = < 455 + 0x0b4 0x0 /* UART1_RXD */ 456 + 0x0b8 0x0 /* UART1_TXD */ 457 + 0x0bc 0x0 /* UART1_CTS_N */ 458 + 0x0c0 0x0 /* UART1_RTS_N */ 459 + >; 460 + pinctrl-single,bias-pulldown = < 461 + PULL_DIS 462 + PULL_DOWN 463 + PULL_DIS 464 + PULL_DOWN 465 + >; 466 + pinctrl-single,bias-pullup = < 467 + PULL_DIS 468 + PULL_UP 469 + PULL_DIS 470 + PULL_UP 471 + >; 472 + pinctrl-single,drive-strength = < 473 + DRIVE7_02MA DRIVE6_MASK 474 + >; 475 + }; 476 + 477 + uart2_cfg_func: uart2_cfg_func { 478 + pinctrl-single,pins = < 479 + 0x0c8 0x0 /* UART2_CTS_N */ 480 + 0x0cc 0x0 /* UART2_RTS_N */ 481 + 0x0d0 0x0 /* UART2_TXD */ 482 + 0x0d4 0x0 /* UART2_RXD */ 483 + >; 484 + pinctrl-single,bias-pulldown = < 485 + PULL_DIS 486 + PULL_DOWN 487 + PULL_DIS 488 + PULL_DOWN 489 + >; 490 + pinctrl-single,bias-pullup = < 491 + PULL_DIS 492 + PULL_UP 493 + PULL_DIS 494 + PULL_UP 495 + >; 496 + pinctrl-single,drive-strength = < 497 + DRIVE7_02MA DRIVE6_MASK 498 + >; 499 + }; 500 + 501 + uart5_cfg_func: uart5_cfg_func { 502 + pinctrl-single,pins = < 503 + 0x0c8 0x0 /* UART5_RXD */ 504 + 0x0cc 0x0 /* UART5_TXD */ 505 + 0x0d0 0x0 /* UART5_CTS_N */ 506 + 0x0d4 0x0 /* UART5_RTS_N */ 507 + >; 508 + pinctrl-single,bias-pulldown = < 509 + PULL_DIS 510 + PULL_DOWN 511 + PULL_DIS 512 + PULL_DOWN 513 + >; 514 + pinctrl-single,bias-pullup = < 515 + PULL_DIS 516 + PULL_UP 517 + PULL_DIS 518 + PULL_UP 519 + >; 520 + pinctrl-single,drive-strength = < 521 + DRIVE7_02MA DRIVE6_MASK 522 + >; 523 + }; 524 + 525 + cam0_rst_cfg_func: cam0_rst_cfg_func { 526 + pinctrl-single,pins = < 527 + 0x0d4 0x0 /* CAM0_RST */ 528 + >; 529 + pinctrl-single,bias-pulldown = < 530 + PULL_DIS 531 + PULL_DOWN 532 + PULL_DIS 533 + PULL_DOWN 534 + >; 535 + pinctrl-single,bias-pullup = < 536 + PULL_DIS 537 + PULL_UP 538 + PULL_DIS 539 + PULL_UP 540 + >; 541 + pinctrl-single,drive-strength = < 542 + DRIVE7_04MA DRIVE6_MASK 543 + >; 544 + }; 545 + 546 + uart0_cfg_func: uart0_cfg_func { 547 + pinctrl-single,pins = < 548 + 0x0d8 0x0 /* UART0_RXD */ 549 + 0x0dc 0x0 /* UART0_TXD */ 550 + >; 551 + pinctrl-single,bias-pulldown = < 552 + PULL_DIS 553 + PULL_DOWN 554 + PULL_DIS 555 + PULL_DOWN 556 + >; 557 + pinctrl-single,bias-pullup = < 558 + PULL_DIS 559 + PULL_UP 560 + PULL_DIS 561 + PULL_UP 562 + >; 563 + pinctrl-single,drive-strength = < 564 + DRIVE7_02MA DRIVE6_MASK 565 + >; 566 + }; 567 + 568 + uart6_cfg_func: uart6_cfg_func { 569 + pinctrl-single,pins = < 570 + 0x0d8 0x0 /* UART6_CTS_N */ 571 + 0x0dc 0x0 /* UART6_RTS_N */ 572 + 0x0e0 0x0 /* UART6_RXD */ 573 + 0x0e4 0x0 /* UART6_TXD */ 574 + >; 575 + pinctrl-single,bias-pulldown = < 576 + PULL_DIS 577 + PULL_DOWN 578 + PULL_DIS 579 + PULL_DOWN 580 + >; 581 + pinctrl-single,bias-pullup = < 582 + PULL_DIS 583 + PULL_UP 584 + PULL_DIS 585 + PULL_UP 586 + >; 587 + pinctrl-single,drive-strength = < 588 + DRIVE7_02MA DRIVE6_MASK 589 + >; 590 + }; 591 + 592 + uart3_cfg_func: uart3_cfg_func { 593 + pinctrl-single,pins = < 594 + 0x0e8 0x0 /* UART3_CTS_N */ 595 + 0x0ec 0x0 /* UART3_RTS_N */ 596 + 0x0f0 0x0 /* UART3_RXD */ 597 + 0x0f4 0x0 /* UART3_TXD */ 598 + >; 599 + pinctrl-single,bias-pulldown = < 600 + PULL_DIS 601 + PULL_DOWN 602 + PULL_DIS 603 + PULL_DOWN 604 + >; 605 + pinctrl-single,bias-pullup = < 606 + PULL_DIS 607 + PULL_UP 608 + PULL_DIS 609 + PULL_UP 610 + >; 611 + pinctrl-single,drive-strength = < 612 + DRIVE7_02MA DRIVE6_MASK 613 + >; 614 + }; 615 + 616 + uart4_cfg_func: uart4_cfg_func { 617 + pinctrl-single,pins = < 618 + 0x0f8 0x0 /* UART4_CTS_N */ 619 + 0x0fc 0x0 /* UART4_RTS_N */ 620 + 0x100 0x0 /* UART4_RXD */ 621 + 0x104 0x0 /* UART4_TXD */ 622 + >; 623 + pinctrl-single,bias-pulldown = < 624 + PULL_DIS 625 + PULL_DOWN 626 + PULL_DIS 627 + PULL_DOWN 628 + >; 629 + pinctrl-single,bias-pullup = < 630 + PULL_DIS 631 + PULL_UP 632 + PULL_DIS 633 + PULL_UP 634 + >; 635 + pinctrl-single,drive-strength = < 636 + DRIVE7_02MA DRIVE6_MASK 637 + >; 638 + }; 639 + 640 + cam1_rst_cfg_func: cam1_rst_cfg_func { 641 + pinctrl-single,pins = < 642 + 0x130 0x0 /* CAM1_RST */ 643 + >; 644 + pinctrl-single,bias-pulldown = < 645 + PULL_DIS 646 + PULL_DOWN 647 + PULL_DIS 648 + PULL_DOWN 649 + >; 650 + pinctrl-single,bias-pullup = < 651 + PULL_DIS 652 + PULL_UP 653 + PULL_DIS 654 + PULL_UP 655 + >; 656 + pinctrl-single,drive-strength = < 657 + DRIVE7_04MA DRIVE6_MASK 658 + >; 659 + }; 660 + }; 661 + 662 + pmx6: pinmux@ff3b6800 { 663 + compatible = "pinconf-single"; 664 + reg = <0x0 0xff3b6800 0x0 0x18>; 665 + #pinctrl-cells = <1>; 666 + pinctrl-single,register-width = <0x20>; 667 + 668 + ufs_cfg_func: ufs_cfg_func { 669 + pinctrl-single,pins = < 670 + 0x000 0x0 /* UFS_REF_CLK */ 671 + 0x004 0x0 /* UFS_RST_N */ 672 + >; 673 + pinctrl-single,bias-pulldown = < 674 + PULL_DIS 675 + PULL_DOWN 676 + PULL_DIS 677 + PULL_DOWN 678 + >; 679 + pinctrl-single,bias-pullup = < 680 + PULL_DIS 681 + PULL_UP 682 + PULL_DIS 683 + PULL_UP 684 + >; 685 + pinctrl-single,drive-strength = < 686 + DRIVE7_08MA DRIVE6_MASK 687 + >; 688 + }; 689 + 690 + spi3_cfg_func: spi3_cfg_func { 691 + pinctrl-single,pins = < 692 + 0x008 0x0 /* SPI3_CLK */ 693 + 0x0 /* SPI3_DI */ 694 + 0x010 0x0 /* SPI3_DO */ 695 + 0x014 0x0 /* SPI3_CS0_N */ 696 + >; 697 + pinctrl-single,bias-pulldown = < 698 + PULL_DIS 699 + PULL_DOWN 700 + PULL_DIS 701 + PULL_DOWN 702 + >; 703 + pinctrl-single,bias-pullup = < 704 + PULL_DIS 705 + PULL_UP 706 + PULL_DIS 707 + PULL_UP 708 + >; 709 + pinctrl-single,drive-strength = < 710 + DRIVE7_02MA DRIVE6_MASK 711 + >; 712 + }; 713 + }; 714 + 715 + pmx7: pinmux@ff3fd800 { 320 716 compatible = "pinconf-single"; 321 717 reg = <0x0 0xff3fd800 0x0 0x18>; 322 718 #pinctrl-cells = <1>; 323 - #address-cells = <1>; 324 - #size-cells = <1>; 325 - pinctrl-single,register-width = <32>; 719 + pinctrl-single,register-width = <0x20>; 326 720 327 721 sdio_clk_cfg_func: sdio_clk_cfg_func { 328 722 pinctrl-single,pins = < ··· 761 315 PULL_UP 762 316 >; 763 317 pinctrl-single,drive-strength = < 764 - DRIVE6_32MA 765 - DRIVE6_MASK 318 + DRIVE6_32MA DRIVE6_MASK 766 319 >; 767 320 }; 768 321 ··· 786 341 PULL_UP 787 342 >; 788 343 pinctrl-single,drive-strength = < 789 - DRIVE6_19MA 790 - DRIVE6_MASK 344 + DRIVE6_19MA DRIVE6_MASK 791 345 >; 792 346 }; 793 347 }; 794 348 795 - pmx6: pinmux@ff37e800 { 349 + pmx8: pinmux@ff37e800 { 796 350 compatible = "pinconf-single"; 797 351 reg = <0x0 0xff37e800 0x0 0x18>; 798 352 #pinctrl-cells = <1>; 799 - #address-cells = <1>; 800 - #size-cells = <1>; 801 - pinctrl-single,register-width = <32>; 353 + pinctrl-single,register-width = <0x20>; 802 354 803 355 sd_clk_cfg_func: sd_clk_cfg_func { 804 356 pinctrl-single,pins = < ··· 842 400 pinctrl-single,drive-strength = < 843 401 DRIVE6_19MA 844 402 DRIVE6_MASK 403 + >; 404 + }; 405 + }; 406 + 407 + pmx9: pinmux@fff11800 { 408 + compatible = "pinconf-single"; 409 + reg = <0x0 0xfff11800 0x0 0xbc>; 410 + #pinctrl-cells = <1>; 411 + pinctrl-single,register-width = <0x20>; 412 + 413 + i2c0_cfg_func: i2c0_cfg_func { 414 + pinctrl-single,pins = < 415 + 0x01c 0x0 /* I2C0_SCL */ 416 + 0x020 0x0 /* I2C0_SDA */ 417 + >; 418 + pinctrl-single,bias-pulldown = < 419 + PULL_DIS 420 + PULL_DOWN 421 + PULL_DIS 422 + PULL_DOWN 423 + >; 424 + pinctrl-single,bias-pullup = < 425 + PULL_UP 426 + PULL_UP 427 + PULL_DIS 428 + PULL_UP 429 + >; 430 + pinctrl-single,drive-strength = < 431 + DRIVE7_02MA DRIVE6_MASK 432 + >; 433 + }; 434 + 435 + i2c1_cfg_func: i2c1_cfg_func { 436 + pinctrl-single,pins = < 437 + 0x024 0x0 /* I2C1_SCL */ 438 + 0x028 0x0 /* I2C1_SDA */ 439 + >; 440 + pinctrl-single,bias-pulldown = < 441 + PULL_DIS 442 + PULL_DOWN 443 + PULL_DIS 444 + PULL_DOWN 445 + >; 446 + pinctrl-single,bias-pullup = < 447 + PULL_UP 448 + PULL_UP 449 + PULL_DIS 450 + PULL_UP 451 + >; 452 + pinctrl-single,drive-strength = < 453 + DRIVE7_02MA DRIVE6_MASK 454 + >; 455 + }; 456 + 457 + i2c7_cfg_func: i2c7_cfg_func { 458 + pinctrl-single,pins = < 459 + 0x02c 0x0 /* I2C7_SCL */ 460 + 0x030 0x0 /* I2C7_SDA */ 461 + >; 462 + pinctrl-single,bias-pulldown = < 463 + PULL_DIS 464 + PULL_DOWN 465 + PULL_DIS 466 + PULL_DOWN 467 + >; 468 + pinctrl-single,bias-pullup = < 469 + PULL_UP 470 + PULL_UP 471 + PULL_DIS 472 + PULL_UP 473 + >; 474 + pinctrl-single,drive-strength = < 475 + DRIVE7_02MA DRIVE6_MASK 476 + >; 477 + }; 478 + 479 + slimbus_cfg_func: slimbus_cfg_func { 480 + pinctrl-single,pins = < 481 + 0x034 0x0 /* SLIMBUS_CLK */ 482 + 0x038 0x0 /* SLIMBUS_DATA */ 483 + >; 484 + pinctrl-single,bias-pulldown = < 485 + PULL_DIS 486 + PULL_DOWN 487 + PULL_DIS 488 + PULL_DOWN 489 + >; 490 + pinctrl-single,bias-pullup = < 491 + PULL_UP 492 + PULL_UP 493 + PULL_DIS 494 + PULL_UP 495 + >; 496 + pinctrl-single,drive-strength = < 497 + DRIVE7_02MA DRIVE6_MASK 498 + >; 499 + }; 500 + 501 + i2s0_cfg_func: i2s0_cfg_func { 502 + pinctrl-single,pins = < 503 + 0x040 0x0 /* I2S0_DI */ 504 + 0x044 0x0 /* I2S0_DO */ 505 + 0x048 0x0 /* I2S0_XCLK */ 506 + 0x04c 0x0 /* I2S0_XFS */ 507 + >; 508 + pinctrl-single,bias-pulldown = < 509 + PULL_DIS 510 + PULL_DOWN 511 + PULL_DIS 512 + PULL_DOWN 513 + >; 514 + pinctrl-single,bias-pullup = < 515 + PULL_UP 516 + PULL_UP 517 + PULL_DIS 518 + PULL_UP 519 + >; 520 + pinctrl-single,drive-strength = < 521 + DRIVE7_02MA DRIVE6_MASK 522 + >; 523 + }; 524 + 525 + i2s2_cfg_func: i2s2_cfg_func { 526 + pinctrl-single,pins = < 527 + 0x050 0x0 /* I2S2_DI */ 528 + 0x054 0x0 /* I2S2_DO */ 529 + 0x058 0x0 /* I2S2_XCLK */ 530 + 0x05c 0x0 /* I2S2_XFS */ 531 + >; 532 + pinctrl-single,bias-pulldown = < 533 + PULL_DIS 534 + PULL_DOWN 535 + PULL_DIS 536 + PULL_DOWN 537 + >; 538 + pinctrl-single,bias-pullup = < 539 + PULL_UP 540 + PULL_UP 541 + PULL_DIS 542 + PULL_UP 543 + >; 544 + pinctrl-single,drive-strength = < 545 + DRIVE7_02MA DRIVE6_MASK 546 + >; 547 + }; 548 + 549 + pcie_cfg_func: pcie_cfg_func { 550 + pinctrl-single,pins = < 551 + 0x094 0x0 /* PCIE_CLKREQ_N */ 552 + 0x098 0x0 /* PCIE_WAKE_N */ 553 + >; 554 + pinctrl-single,bias-pulldown = < 555 + PULL_DIS 556 + PULL_DOWN 557 + PULL_DIS 558 + PULL_DOWN 559 + >; 560 + pinctrl-single,bias-pullup = < 561 + PULL_UP 562 + PULL_UP 563 + PULL_DIS 564 + PULL_UP 565 + >; 566 + pinctrl-single,drive-strength = < 567 + DRIVE7_02MA DRIVE6_MASK 568 + >; 569 + }; 570 + 571 + spi2_cfg_func: spi2_cfg_func { 572 + pinctrl-single,pins = < 573 + 0x09c 0x0 /* SPI2_CLK */ 574 + 0x0a0 0x0 /* SPI2_DI */ 575 + 0x0a4 0x0 /* SPI2_DO */ 576 + 0x0a8 0x0 /* SPI2_CS0_N */ 577 + >; 578 + pinctrl-single,bias-pulldown = < 579 + PULL_DIS 580 + PULL_DOWN 581 + PULL_DIS 582 + PULL_DOWN 583 + >; 584 + pinctrl-single,bias-pullup = < 585 + PULL_UP 586 + PULL_UP 587 + PULL_DIS 588 + PULL_UP 589 + >; 590 + pinctrl-single,drive-strength = < 591 + DRIVE7_02MA DRIVE6_MASK 592 + >; 593 + }; 594 + 595 + usb_cfg_func: usb_cfg_func { 596 + pinctrl-single,pins = < 597 + 0x0ac 0x0 /* GPIO_219 */ 598 + >; 599 + pinctrl-single,bias-pulldown = < 600 + PULL_DIS 601 + PULL_DOWN 602 + PULL_DIS 603 + PULL_DOWN 604 + >; 605 + pinctrl-single,bias-pullup = < 606 + PULL_UP 607 + PULL_UP 608 + PULL_DIS 609 + PULL_UP 610 + >; 611 + pinctrl-single,drive-strength = < 612 + DRIVE7_02MA DRIVE6_MASK 845 613 >; 846 614 }; 847 615 };
+77 -45
arch/arm64/boot/dts/marvell/armada-3720-db.dts
··· 42 42 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 43 43 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 44 44 * OTHER DEALINGS IN THE SOFTWARE. 45 + * 46 + * This file is compatible with the version 1.4 and the version 2.0 of 47 + * the board, however the CON numbers are different between the 2 48 + * version 45 49 */ 46 50 47 51 /dts-v1/; ··· 80 76 compatible = "usb-nop-xceiv"; 81 77 vcc-supply = <&exp_usb3_vbus>; 82 78 }; 79 + 80 + vcc_sd_reg1: regulator { 81 + compatible = "regulator-gpio"; 82 + regulator-name = "vcc_sd1"; 83 + regulator-min-microvolt = <1800000>; 84 + regulator-max-microvolt = <3300000>; 85 + regulator-boot-on; 86 + 87 + gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>; 88 + gpios-states = <0>; 89 + states = <1800000 0x1 90 + 3300000 0x0>; 91 + enable-active-high; 92 + }; 93 + }; 94 + 95 + /* Gigabit module on CON19(V2.0)/CON21(V1.4) */ 96 + &eth0 { 97 + pinctrl-names = "default"; 98 + pinctrl-0 = <&rgmii_pins>; 99 + phy-mode = "rgmii-id"; 100 + phy = <&phy0>; 101 + status = "okay"; 102 + }; 103 + 104 + /* Gigabit module on CON18(V2.0)/CON20(V1.4) */ 105 + &eth1 { 106 + phy-mode = "sgmii"; 107 + phy = <&phy1>; 108 + status = "okay"; 83 109 }; 84 110 85 111 &i2c0 { ··· 142 108 }; 143 109 }; 144 110 111 + &mdio { 112 + status = "okay"; 113 + phy0: ethernet-phy@0 { 114 + reg = <0>; 115 + }; 116 + 117 + phy1: ethernet-phy@1 { 118 + reg = <1>; 119 + }; 120 + }; 121 + 122 + /* CON15(V2.0)/CON17(V1.4) : PCIe / CON15(V2.0)/CON12(V1.4) :mini-PCIe */ 123 + &pcie0 { 124 + status = "okay"; 125 + }; 126 + 145 127 /* CON3 */ 146 128 &sata { 129 + status = "okay"; 130 + }; 131 + 132 + &sdhci0 { 133 + non-removable; 134 + bus-width = <8>; 135 + mmc-ddr-1_8v; 136 + mmc-hs400-1_8v; 137 + marvell,pad-type = "fixed-1-8v"; 138 + status = "okay"; 139 + }; 140 + 141 + /* SD slot module on CON14(V2.0)/CON15(V1.4) */ 142 + &sdhci1 { 143 + wp-inverted; 144 + cd-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>; 145 + bus-width = <4>; 146 + marvell,pad-type = "sd"; 147 + vqmmc-supply = <&vcc_sd_reg1>; 147 148 status = "okay"; 148 149 }; 149 150 ··· 214 145 }; 215 146 }; 216 147 217 - /* Exported on the micro USB connector CON32 through an FTDI */ 148 + /* 149 + * Exported on the micro USB connector CON30(V2.0)/CON32(V1.4) through 150 + * an FTDI 151 + */ 218 152 &uart0 { 219 153 pinctrl-names = "default"; 220 154 pinctrl-0 = <&uart1_pins>; 221 155 status = "okay"; 222 156 }; 223 157 224 - &sdhci0 { 225 - non-removable; 226 - bus-width = <8>; 227 - mmc-ddr-1_8v; 228 - mmc-hs400-1_8v; 229 - marvell,pad-type = "fixed-1-8v"; 230 - status = "okay"; 231 - }; 232 - 233 - /* CON31 */ 234 - &usb3 { 235 - status = "okay"; 236 - usb-phy = <&usb3_phy>; 237 - }; 238 - 239 - /* CON17 (PCIe) / CON12 (mini-PCIe) */ 240 - &pcie0 { 241 - status = "okay"; 242 - }; 243 - 244 - /* CON27 */ 158 + /* CON27(V2.0)/CON29(V1.4) */ 245 159 &usb2 { 246 160 status = "okay"; 247 161 }; 248 162 249 - 250 - &mdio { 163 + /* CON29(V2.0)/CON31(V1.4) */ 164 + &usb3 { 251 165 status = "okay"; 252 - phy0: ethernet-phy@0 { 253 - reg = <0>; 254 - }; 255 - 256 - phy1: ethernet-phy@1 { 257 - reg = <1>; 258 - }; 259 - }; 260 - 261 - &eth0 { 262 - pinctrl-names = "default"; 263 - pinctrl-0 = <&rgmii_pins>; 264 - phy-mode = "rgmii-id"; 265 - phy = <&phy0>; 266 - status = "okay"; 267 - }; 268 - 269 - &eth1 { 270 - phy-mode = "sgmii"; 271 - phy = <&phy1>; 272 - status = "okay"; 166 + usb-phy = <&usb3_phy>; 273 167 };
+22 -15
arch/arm64/boot/dts/marvell/armada-37xx.dtsi
··· 75 75 76 76 timer { 77 77 compatible = "arm,armv8-timer"; 78 - interrupts = <GIC_PPI 13 79 - (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>, 80 - <GIC_PPI 14 81 - (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>, 82 - <GIC_PPI 11 83 - (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>, 84 - <GIC_PPI 10 85 - (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 78 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, 79 + <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, 80 + <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, 81 + <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; 86 82 }; 87 83 88 84 soc { ··· 159 163 160 164 pinctrl_nb: pinctrl@13800 { 161 165 compatible = "marvell,armada3710-nb-pinctrl", 162 - "syscon", "simple-mfd"; 166 + "syscon", "simple-mfd"; 163 167 reg = <0x13800 0x100>, <0x13C00 0x20>; 164 168 gpionb: gpio { 165 169 #gpio-cells = <2>; ··· 215 219 216 220 pinctrl_sb: pinctrl@18800 { 217 221 compatible = "marvell,armada3710-sb-pinctrl", 218 - "syscon", "simple-mfd"; 222 + "syscon", "simple-mfd"; 219 223 reg = <0x18800 0x100>, <0x18C00 0x20>; 220 224 gpiosb: gpio { 221 225 #gpio-cells = <2>; ··· 277 281 278 282 xor@60900 { 279 283 compatible = "marvell,armada-3700-xor"; 280 - reg = <0x60900 0x100 281 - 0x60b00 0x100>; 284 + reg = <0x60900 0x100>, 285 + <0x60b00 0x100>; 282 286 283 287 xor10 { 284 288 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; ··· 288 292 }; 289 293 }; 290 294 295 + sdhci1: sdhci@d0000 { 296 + compatible = "marvell,armada-3700-sdhci", 297 + "marvell,sdhci-xenon"; 298 + reg = <0xd0000 0x300>, 299 + <0x1e808 0x4>; 300 + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 301 + clocks = <&nb_periph_clk 0>; 302 + clock-names = "core"; 303 + status = "disabled"; 304 + }; 305 + 291 306 sdhci0: sdhci@d8000 { 292 307 compatible = "marvell,armada-3700-sdhci", 293 - "marvell,sdhci-xenon"; 294 - reg = <0xd8000 0x300 295 - 0x17808 0x4>; 308 + "marvell,sdhci-xenon"; 309 + reg = <0xd8000 0x300>, 310 + <0x17808 0x4>; 296 311 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 297 312 clocks = <&nb_periph_clk 0>; 298 313 clock-names = "core";
+1 -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 + #include "armada-70x0.dtsi" 50 50 51 51 / { 52 52 model = "Marvell Armada 7020";
+2 -4
arch/arm64/boot/dts/marvell/armada-7040-db.dts
··· 162 162 }; 163 163 164 164 &cpm_mdio { 165 + status = "okay"; 166 + 165 167 phy0: ethernet-phy@0 { 166 168 reg = <0>; 167 169 }; ··· 186 184 status = "okay"; 187 185 phy = <&phy1>; 188 186 phy-mode = "rgmii-id"; 189 - }; 190 - 191 - &cpm_crypto { 192 - status = "okay"; 193 187 };
+1 -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 + #include "armada-70x0.dtsi" 50 50 51 51 / { 52 52 model = "Marvell Armada 7040";
+68
arch/arm64/boot/dts/marvell/armada-70x0.dtsi
··· 1 + /* 2 + * Copyright (C) 2017 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 the Armada 70x0 SoC 45 + */ 46 + 47 + #include "armada-cp110-master.dtsi" 48 + 49 + / { 50 + aliases { 51 + gpio1 = &cpm_gpio1; 52 + gpio2 = &cpm_gpio2; 53 + }; 54 + }; 55 + 56 + &cpm_gpio1 { 57 + status = "okay"; 58 + }; 59 + 60 + &cpm_gpio2 { 61 + status = "okay"; 62 + }; 63 + 64 + &cpm_syscon0 { 65 + cpm_pinctrl: pinctrl { 66 + compatible = "marvell,armada-7k-pinctrl"; 67 + }; 68 + };
+1 -2
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" 50 - #include "armada-cp110-slave.dtsi" 49 + #include "armada-80x0.dtsi" 51 50 52 51 / { 53 52 model = "Marvell Armada 8020";
+20 -4
arch/arm64/boot/dts/marvell/armada-8040-db.dts
··· 125 125 }; 126 126 127 127 &cpm_mdio { 128 + status = "okay"; 129 + 128 130 phy1: ethernet-phy@1 { 129 131 reg = <1>; 130 132 }; ··· 140 138 status = "okay"; 141 139 phy = <&phy1>; 142 140 phy-mode = "rgmii-id"; 143 - }; 144 - 145 - &cpm_crypto { 146 - status = "okay"; 147 141 }; 148 142 149 143 /* CON5 on CP1 expansion */ ··· 165 167 /* CON10 on CP1 expansion */ 166 168 &cps_usb3_1 { 167 169 status = "okay"; 170 + }; 171 + 172 + &cps_mdio { 173 + status = "okay"; 174 + 175 + phy0: ethernet-phy@0 { 176 + reg = <0>; 177 + }; 178 + }; 179 + 180 + &cps_ethernet { 181 + status = "okay"; 182 + }; 183 + 184 + &cps_eth1 { 185 + status = "okay"; 186 + phy = <&phy0>; 187 + phy-mode = "rgmii-id"; 168 188 }; 169 189 170 190 &ap_sdhci0 {
+42
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
··· 95 95 status = "okay"; 96 96 }; 97 97 98 + &ap_sdhci0 { 99 + bus-width = <8>; 100 + /* 101 + * Not stable in HS modes - phy needs "more calibration", so add 102 + * the "slow-mode" and disable SDR104, SDR50 and DDR50 modes. 103 + */ 104 + marvell,xenon-phy-slow-mode; 105 + no-1-8-v; 106 + no-sd; 107 + no-sdio; 108 + non-removable; 109 + status = "okay"; 110 + vqmmc-supply = <&v_vddo_h>; 111 + }; 112 + 98 113 &cpm_i2c0 { 99 114 clock-frequency = <100000>; 100 115 status = "okay"; 101 116 }; 102 117 118 + &cpm_mdio { 119 + status = "okay"; 120 + 121 + ge_phy: ethernet-phy@0 { 122 + reg = <0>; 123 + }; 124 + }; 125 + 103 126 &cpm_sata0 { 104 127 /* CPM Lane 0 - U29 */ 105 128 status = "okay"; 129 + }; 130 + 131 + &cpm_sdhci0 { 132 + /* U6 */ 133 + broken-cd; 134 + bus-width = <4>; 135 + status = "okay"; 136 + vqmmc-supply = <&v_3_3>; 106 137 }; 107 138 108 139 &cpm_usb3_0 { ··· 144 113 &cpm_usb3_1 { 145 114 /* J38? - USB2.0 only */ 146 115 status = "okay"; 116 + }; 117 + 118 + &cps_ethernet { 119 + status = "okay"; 120 + }; 121 + 122 + &cps_eth1 { 123 + /* CPS Lane 0 - J5 (Gigabit RJ45) */ 124 + status = "okay"; 125 + phy = <&ge_phy>; 126 + phy-mode = "sgmii"; 147 127 }; 148 128 149 129 &cps_sata0 {
+1 -2
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" 50 - #include "armada-cp110-slave.dtsi" 49 + #include "armada-80x0.dtsi" 51 50 52 51 / { 53 52 model = "Marvell Armada 8040";
+76
arch/arm64/boot/dts/marvell/armada-80x0.dtsi
··· 1 + /* 2 + * Copyright (C) 2017 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 the Armada 80x0 SoC family 45 + */ 46 + 47 + #include "armada-cp110-master.dtsi" 48 + #include "armada-cp110-slave.dtsi" 49 + 50 + / { 51 + aliases { 52 + gpio1 = &cps_gpio1; 53 + gpio2 = &cpm_gpio2; 54 + }; 55 + }; 56 + 57 + /* The 80x0 has two CP blocks, but uses only one block from each. */ 58 + &cps_gpio1 { 59 + status = "okay"; 60 + }; 61 + 62 + &cpm_gpio2 { 63 + status = "okay"; 64 + }; 65 + 66 + &cpm_syscon0 { 67 + cpm_pinctrl: pinctrl { 68 + compatible = "marvell,armada-8k-cpm-pinctrl"; 69 + }; 70 + }; 71 + 72 + &cps_syscon0 { 73 + cps_pinctrl: pinctrl { 74 + compatible = "marvell,armada-8k-cps-pinctrl"; 75 + }; 76 + };
+36 -12
arch/arm64/boot/dts/marvell/armada-ap806.dtsi
··· 57 57 aliases { 58 58 serial0 = &uart0; 59 59 serial1 = &uart1; 60 + gpio0 = &ap_gpio; 60 61 }; 61 62 62 63 psci { ··· 147 146 marvell,spi-base = <128>, <136>, <144>, <152>; 148 147 }; 149 148 149 + gicp: gicp@3f0040 { 150 + compatible = "marvell,ap806-gicp"; 151 + reg = <0x3f0040 0x10>; 152 + marvell,spi-ranges = <64 64>, <288 64>; 153 + msi-controller; 154 + }; 155 + 150 156 pic: interrupt-controller@3f0100 { 151 157 compatible = "marvell,armada-8k-pic"; 152 158 reg = <0x3f0100 0x10>; ··· 167 159 reg = <0x400000 0x1000>, 168 160 <0x410000 0x1000>; 169 161 msi-parent = <&gic_v2m0>; 162 + clocks = <&ap_clk 3>; 170 163 dma-coherent; 171 164 }; 172 165 ··· 176 167 reg = <0x420000 0x1000>, 177 168 <0x430000 0x1000>; 178 169 msi-parent = <&gic_v2m0>; 170 + clocks = <&ap_clk 3>; 179 171 dma-coherent; 180 172 }; 181 173 ··· 185 175 reg = <0x440000 0x1000>, 186 176 <0x450000 0x1000>; 187 177 msi-parent = <&gic_v2m0>; 178 + clocks = <&ap_clk 3>; 188 179 dma-coherent; 189 180 }; 190 181 ··· 194 183 reg = <0x460000 0x1000>, 195 184 <0x470000 0x1000>; 196 185 msi-parent = <&gic_v2m0>; 186 + clocks = <&ap_clk 3>; 197 187 dma-coherent; 198 188 }; 199 189 ··· 205 193 #size-cells = <0>; 206 194 cell-index = <0>; 207 195 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 208 - clocks = <&ap_syscon 3>; 196 + clocks = <&ap_clk 3>; 209 197 status = "disabled"; 210 198 }; 211 199 ··· 216 204 #size-cells = <0>; 217 205 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 218 206 timeout-ms = <1000>; 219 - clocks = <&ap_syscon 3>; 207 + clocks = <&ap_clk 3>; 220 208 status = "disabled"; 221 209 }; 222 210 ··· 226 214 reg-shift = <2>; 227 215 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 228 216 reg-io-width = <1>; 229 - clocks = <&ap_syscon 3>; 217 + clocks = <&ap_clk 3>; 230 218 status = "disabled"; 231 219 }; 232 220 ··· 236 224 reg-shift = <2>; 237 225 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 238 226 reg-io-width = <1>; 239 - clocks = <&ap_syscon 3>; 227 + clocks = <&ap_clk 3>; 240 228 status = "disabled"; 241 229 242 230 }; ··· 246 234 reg = <0x6e0000 0x300>; 247 235 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 248 236 clock-names = "core"; 249 - clocks = <&ap_syscon 4>; 237 + clocks = <&ap_clk 4>; 250 238 dma-coherent; 251 239 marvell,xenon-phy-slow-mode; 252 240 status = "disabled"; 253 241 }; 254 242 255 243 ap_syscon: system-controller@6f4000 { 256 - compatible = "marvell,ap806-system-controller", 257 - "syscon"; 258 - #clock-cells = <1>; 259 - clock-output-names = "ap-cpu-cluster-0", 260 - "ap-cpu-cluster-1", 261 - "ap-fixed", "ap-mss", 262 - "ap-emmc"; 244 + compatible = "syscon", "simple-mfd"; 263 245 reg = <0x6f4000 0x1000>; 246 + 247 + ap_clk: clock { 248 + compatible = "marvell,ap806-clock"; 249 + #clock-cells = <1>; 250 + }; 251 + 252 + ap_pinctrl: pinctrl { 253 + compatible = "marvell,ap806-pinctrl"; 254 + }; 255 + 256 + ap_gpio: gpio { 257 + compatible = "marvell,armada-8k-gpio"; 258 + offset = <0x1040>; 259 + ngpios = <19>; 260 + gpio-controller; 261 + #gpio-cells = <2>; 262 + gpio-ranges = <&ap_pinctrl 0 0 19>; 263 + }; 264 264 }; 265 265 }; 266 266 };
+87 -58
arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
··· 44 44 * Device Tree file for Marvell Armada CP110 Master. 45 45 */ 46 46 47 + #define ICU_GRP_NSR 0x0 48 + 47 49 / { 48 50 cp110-master { 49 51 #address-cells = <2>; 50 52 #size-cells = <2>; 51 53 compatible = "simple-bus"; 52 - interrupt-parent = <&gic>; 54 + interrupt-parent = <&cpm_icu>; 53 55 ranges; 54 56 55 57 config-space@f2000000 { 56 58 #address-cells = <1>; 57 59 #size-cells = <1>; 58 60 compatible = "simple-bus"; 59 - interrupt-parent = <&gic>; 60 61 ranges = <0x0 0x0 0xf2000000 0x2000000>; 61 62 62 63 cpm_ethernet: ethernet@0 { 63 64 compatible = "marvell,armada-7k-pp22"; 64 65 reg = <0x0 0x100000>, <0x129000 0xb000>; 65 - clocks = <&cpm_syscon0 1 3>, <&cpm_syscon0 1 9>, <&cpm_syscon0 1 5>; 66 + clocks = <&cpm_clk 1 3>, <&cpm_clk 1 9>, <&cpm_clk 1 5>; 66 67 clock-names = "pp_clk", "gop_clk", "mg_clk"; 67 68 status = "disabled"; 68 69 dma-coherent; 69 70 70 71 cpm_eth0: eth0 { 71 - interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 72 + interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>; 72 73 port-id = <0>; 73 74 gop-port-id = <0>; 74 75 status = "disabled"; 75 76 }; 76 77 77 78 cpm_eth1: eth1 { 78 - interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 79 + interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>; 79 80 port-id = <1>; 80 81 gop-port-id = <2>; 81 82 status = "disabled"; 82 83 }; 83 84 84 85 cpm_eth2: eth2 { 85 - interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 86 + interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>; 86 87 port-id = <2>; 87 88 gop-port-id = <3>; 88 89 status = "disabled"; ··· 95 94 #size-cells = <0>; 96 95 compatible = "marvell,orion-mdio"; 97 96 reg = <0x12a200 0x10>; 97 + clocks = <&cpm_clk 1 9>, <&cpm_clk 1 5>; 98 + status = "disabled"; 99 + }; 100 + 101 + cpm_xmdio: mdio@12a600 { 102 + #address-cells = <1>; 103 + #size-cells = <0>; 104 + compatible = "marvell,xmdio"; 105 + reg = <0x12a600 0x10>; 106 + status = "disabled"; 107 + }; 108 + 109 + cpm_icu: interrupt-controller@1e0000 { 110 + compatible = "marvell,cp110-icu"; 111 + reg = <0x1e0000 0x10>; 112 + #interrupt-cells = <3>; 113 + interrupt-controller; 114 + msi-parent = <&gicp>; 98 115 }; 99 116 100 117 cpm_syscon0: system-controller@440000 { 101 - compatible = "marvell,cp110-system-controller0", 102 - "syscon"; 118 + compatible = "syscon", "simple-mfd"; 103 119 reg = <0x440000 0x1000>; 104 - #clock-cells = <2>; 105 - core-clock-output-names = 106 - "cpm-apll", "cpm-ppv2-core", "cpm-eip", 107 - "cpm-core", "cpm-nand-core"; 108 - gate-clock-output-names = 109 - "cpm-audio", "cpm-communit", "cpm-nand", 110 - "cpm-ppv2", "cpm-sdio", "cpm-mg-domain", 111 - "cpm-mg-core", "cpm-xor1", "cpm-xor0", 112 - "cpm-gop-dp", "none", "cpm-pcie_x10", 113 - "cpm-pcie_x11", "cpm-pcie_x4", "cpm-pcie-xor", 114 - "cpm-sata", "cpm-sata-usb", "cpm-main", 115 - "cpm-sd-mmc-gop", "none", "none", 116 - "cpm-slow-io", "cpm-usb3h0", "cpm-usb3h1", 117 - "cpm-usb3dev", "cpm-eip150", "cpm-eip197"; 120 + 121 + cpm_clk: clock { 122 + compatible = "marvell,cp110-clock"; 123 + #clock-cells = <2>; 124 + }; 125 + 126 + cpm_gpio1: gpio@100 { 127 + compatible = "marvell,armada-8k-gpio"; 128 + offset = <0x100>; 129 + ngpios = <32>; 130 + gpio-controller; 131 + #gpio-cells = <2>; 132 + gpio-ranges = <&cpm_pinctrl 0 0 32>; 133 + status = "disabled"; 134 + 135 + }; 136 + 137 + cpm_gpio2: gpio@140 { 138 + compatible = "marvell,armada-8k-gpio"; 139 + offset = <0x140>; 140 + ngpios = <31>; 141 + gpio-controller; 142 + #gpio-cells = <2>; 143 + gpio-ranges = <&cpm_pinctrl 0 32 31>; 144 + status = "disabled"; 145 + }; 118 146 }; 119 147 120 148 cpm_rtc: rtc@284000 { 121 149 compatible = "marvell,armada-8k-rtc"; 122 150 reg = <0x284000 0x20>, <0x284080 0x24>; 123 151 reg-names = "rtc", "rtc-soc"; 124 - interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 152 + interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>; 125 153 }; 126 154 127 155 cpm_sata0: sata@540000 { 128 156 compatible = "marvell,armada-8k-ahci", 129 157 "generic-ahci"; 130 158 reg = <0x540000 0x30000>; 131 - interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 132 - clocks = <&cpm_syscon0 1 15>; 159 + interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>; 160 + clocks = <&cpm_clk 1 15>; 133 161 status = "disabled"; 134 162 }; 135 163 ··· 167 137 "generic-xhci"; 168 138 reg = <0x500000 0x4000>; 169 139 dma-coherent; 170 - interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 171 - clocks = <&cpm_syscon0 1 22>; 140 + interrupts = <ICU_GRP_NSR 106 IRQ_TYPE_LEVEL_HIGH>; 141 + clocks = <&cpm_clk 1 22>; 172 142 status = "disabled"; 173 143 }; 174 144 ··· 177 147 "generic-xhci"; 178 148 reg = <0x510000 0x4000>; 179 149 dma-coherent; 180 - interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 181 - clocks = <&cpm_syscon0 1 23>; 150 + interrupts = <ICU_GRP_NSR 105 IRQ_TYPE_LEVEL_HIGH>; 151 + clocks = <&cpm_clk 1 23>; 182 152 status = "disabled"; 183 153 }; 184 154 ··· 188 158 <0x6b0000 0x1000>; 189 159 dma-coherent; 190 160 msi-parent = <&gic_v2m0>; 191 - clocks = <&cpm_syscon0 1 8>; 161 + clocks = <&cpm_clk 1 8>; 192 162 }; 193 163 194 164 cpm_xor1: xor@6c0000 { ··· 197 167 <0x6d0000 0x1000>; 198 168 dma-coherent; 199 169 msi-parent = <&gic_v2m0>; 200 - clocks = <&cpm_syscon0 1 7>; 170 + clocks = <&cpm_clk 1 7>; 201 171 }; 202 172 203 173 cpm_spi0: spi@700600 { ··· 206 176 #address-cells = <0x1>; 207 177 #size-cells = <0x0>; 208 178 cell-index = <1>; 209 - clocks = <&cpm_syscon0 1 21>; 179 + clocks = <&cpm_clk 1 21>; 210 180 status = "disabled"; 211 181 }; 212 182 ··· 216 186 #address-cells = <1>; 217 187 #size-cells = <0>; 218 188 cell-index = <2>; 219 - clocks = <&cpm_syscon0 1 21>; 189 + clocks = <&cpm_clk 1 21>; 220 190 status = "disabled"; 221 191 }; 222 192 ··· 225 195 reg = <0x701000 0x20>; 226 196 #address-cells = <1>; 227 197 #size-cells = <0>; 228 - interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 229 - clocks = <&cpm_syscon0 1 21>; 198 + interrupts = <ICU_GRP_NSR 120 IRQ_TYPE_LEVEL_HIGH>; 199 + clocks = <&cpm_clk 1 21>; 230 200 status = "disabled"; 231 201 }; 232 202 ··· 235 205 reg = <0x701100 0x20>; 236 206 #address-cells = <1>; 237 207 #size-cells = <0>; 238 - interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>; 239 - clocks = <&cpm_syscon0 1 21>; 208 + interrupts = <ICU_GRP_NSR 121 IRQ_TYPE_LEVEL_HIGH>; 209 + clocks = <&cpm_clk 1 21>; 240 210 status = "disabled"; 241 211 }; 242 212 243 213 cpm_trng: trng@760000 { 244 214 compatible = "marvell,armada-8k-rng", "inside-secure,safexcel-eip76"; 245 215 reg = <0x760000 0x7d>; 246 - interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 247 - clocks = <&cpm_syscon0 1 25>; 216 + interrupts = <ICU_GRP_NSR 95 IRQ_TYPE_LEVEL_HIGH>; 217 + clocks = <&cpm_clk 1 25>; 248 218 status = "okay"; 249 219 }; 250 220 251 221 cpm_sdhci0: sdhci@780000 { 252 222 compatible = "marvell,armada-cp110-sdhci"; 253 223 reg = <0x780000 0x300>; 254 - interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 224 + interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>; 255 225 clock-names = "core"; 256 - clocks = <&cpm_syscon0 1 4>; 226 + clocks = <&cpm_clk 1 4>; 257 227 dma-coherent; 258 228 status = "disabled"; 259 229 }; ··· 261 231 cpm_crypto: crypto@800000 { 262 232 compatible = "inside-secure,safexcel-eip197"; 263 233 reg = <0x800000 0x200000>; 264 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 265 - <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 266 - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 267 - <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 268 - <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 269 - <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; 234 + interrupts = <ICU_GRP_NSR 87 IRQ_TYPE_LEVEL_HIGH>, 235 + <ICU_GRP_NSR 88 IRQ_TYPE_LEVEL_HIGH>, 236 + <ICU_GRP_NSR 89 IRQ_TYPE_LEVEL_HIGH>, 237 + <ICU_GRP_NSR 90 IRQ_TYPE_LEVEL_HIGH>, 238 + <ICU_GRP_NSR 91 IRQ_TYPE_LEVEL_HIGH>, 239 + <ICU_GRP_NSR 92 IRQ_TYPE_LEVEL_HIGH>; 270 240 interrupt-names = "mem", "ring0", "ring1", 271 241 "ring2", "ring3", "eip"; 272 - clocks = <&cpm_syscon0 1 26>; 273 - status = "disabled"; 242 + clocks = <&cpm_clk 1 26>; 274 243 }; 275 244 }; 276 245 ··· 292 263 /* non-prefetchable memory */ 293 264 0x82000000 0 0xf6000000 0 0xf6000000 0 0xf00000>; 294 265 interrupt-map-mask = <0 0 0 0>; 295 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 296 - interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 266 + interrupt-map = <0 0 0 0 &cpm_icu 0 ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 267 + interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 297 268 num-lanes = <1>; 298 - clocks = <&cpm_syscon0 1 13>; 269 + clocks = <&cpm_clk 1 13>; 299 270 status = "disabled"; 300 271 }; 301 272 ··· 318 289 /* non-prefetchable memory */ 319 290 0x82000000 0 0xf7000000 0 0xf7000000 0 0xf00000>; 320 291 interrupt-map-mask = <0 0 0 0>; 321 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 322 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 292 + interrupt-map = <0 0 0 0 &cpm_icu 0 ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 293 + interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 323 294 324 295 num-lanes = <1>; 325 - clocks = <&cpm_syscon0 1 11>; 296 + clocks = <&cpm_clk 1 11>; 326 297 status = "disabled"; 327 298 }; 328 299 ··· 345 316 /* non-prefetchable memory */ 346 317 0x82000000 0 0xf8000000 0 0xf8000000 0 0xf00000>; 347 318 interrupt-map-mask = <0 0 0 0>; 348 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 349 - interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 319 + interrupt-map = <0 0 0 0 &cpm_icu 0 ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 320 + interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 350 321 351 322 num-lanes = <1>; 352 - clocks = <&cpm_syscon0 1 12>; 323 + clocks = <&cpm_clk 1 12>; 353 324 status = "disabled"; 354 325 }; 355 326 };
+92 -54
arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
··· 44 44 * Device Tree file for Marvell Armada CP110 Slave. 45 45 */ 46 46 47 + #define ICU_GRP_NSR 0x0 48 + 47 49 / { 48 50 cp110-slave { 49 51 #address-cells = <2>; 50 52 #size-cells = <2>; 51 53 compatible = "simple-bus"; 52 - interrupt-parent = <&gic>; 54 + interrupt-parent = <&cps_icu>; 53 55 ranges; 54 56 55 57 config-space@f4000000 { 56 58 #address-cells = <1>; 57 59 #size-cells = <1>; 58 60 compatible = "simple-bus"; 59 - interrupt-parent = <&gic>; 60 61 ranges = <0x0 0x0 0xf4000000 0x2000000>; 61 62 62 63 cps_rtc: rtc@284000 { ··· 70 69 cps_ethernet: ethernet@0 { 71 70 compatible = "marvell,armada-7k-pp22"; 72 71 reg = <0x0 0x100000>, <0x129000 0xb000>; 73 - clocks = <&cps_syscon0 1 3>, <&cps_syscon0 1 9>, <&cps_syscon0 1 5>; 72 + clocks = <&cps_clk 1 3>, <&cps_clk 1 9>, <&cps_clk 1 5>; 74 73 clock-names = "pp_clk", "gop_clk", "mg_clk"; 75 74 status = "disabled"; 76 75 dma-coherent; 77 76 78 77 cps_eth0: eth0 { 79 - interrupts = <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>; 78 + interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>; 80 79 port-id = <0>; 81 80 gop-port-id = <0>; 82 81 status = "disabled"; 83 82 }; 84 83 85 84 cps_eth1: eth1 { 86 - interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>; 85 + interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>; 87 86 port-id = <1>; 88 87 gop-port-id = <2>; 89 88 status = "disabled"; 90 89 }; 91 90 92 91 cps_eth2: eth2 { 93 - interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>; 92 + interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>; 94 93 port-id = <2>; 95 94 gop-port-id = <3>; 96 95 status = "disabled"; ··· 102 101 #size-cells = <0>; 103 102 compatible = "marvell,orion-mdio"; 104 103 reg = <0x12a200 0x10>; 104 + clocks = <&cps_clk 1 9>, <&cps_clk 1 5>; 105 + status = "disabled"; 106 + }; 107 + 108 + cps_xmdio: mdio@12a600 { 109 + #address-cells = <1>; 110 + #size-cells = <0>; 111 + compatible = "marvell,xmdio"; 112 + reg = <0x12a600 0x10>; 113 + status = "disabled"; 114 + }; 115 + 116 + cps_icu: interrupt-controller@1e0000 { 117 + compatible = "marvell,cp110-icu"; 118 + reg = <0x1e0000 0x10>; 119 + #interrupt-cells = <3>; 120 + interrupt-controller; 121 + msi-parent = <&gicp>; 105 122 }; 106 123 107 124 cps_syscon0: system-controller@440000 { 108 - compatible = "marvell,cp110-system-controller0", 109 - "syscon"; 125 + compatible = "syscon", "simple-mfd"; 110 126 reg = <0x440000 0x1000>; 111 - #clock-cells = <2>; 112 - core-clock-output-names = 113 - "cps-apll", "cps-ppv2-core", "cps-eip", 114 - "cps-core", "cps-nand-core"; 115 - gate-clock-output-names = 116 - "cps-audio", "cps-communit", "cps-nand", 117 - "cps-ppv2", "cps-sdio", "cps-mg-domain", 118 - "cps-mg-core", "cps-xor1", "cps-xor0", 119 - "cps-gop-dp", "none", "cps-pcie_x10", 120 - "cps-pcie_x11", "cps-pcie_x4", "cps-pcie-xor", 121 - "cps-sata", "cps-sata-usb", "cps-main", 122 - "cps-sd-mmc-gop", "none", "none", 123 - "cps-slow-io", "cps-usb3h0", "cps-usb3h1", 124 - "cps-usb3dev", "cps-eip150", "cps-eip197"; 127 + 128 + cps_clk: clock { 129 + compatible = "marvell,cp110-clock"; 130 + #clock-cells = <2>; 131 + }; 132 + 133 + cps_gpio1: gpio@100 { 134 + compatible = "marvell,armada-8k-gpio"; 135 + offset = <0x100>; 136 + ngpios = <32>; 137 + gpio-controller; 138 + #gpio-cells = <2>; 139 + gpio-ranges = <&cps_pinctrl 0 0 32>; 140 + status = "disabled"; 141 + 142 + }; 143 + 144 + cps_gpio2: gpio@140 { 145 + compatible = "marvell,armada-8k-gpio"; 146 + offset = <0x140>; 147 + ngpios = <31>; 148 + gpio-controller; 149 + #gpio-cells = <2>; 150 + gpio-ranges = <&cps_pinctrl 0 32 31>; 151 + status = "disabled"; 152 + }; 153 + 125 154 }; 126 155 127 156 cps_sata0: sata@540000 { 128 157 compatible = "marvell,armada-8k-ahci", 129 158 "generic-ahci"; 130 159 reg = <0x540000 0x30000>; 131 - interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; 132 - clocks = <&cps_syscon0 1 15>; 160 + interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>; 161 + clocks = <&cps_clk 1 15>; 133 162 status = "disabled"; 134 163 }; 135 164 ··· 168 137 "generic-xhci"; 169 138 reg = <0x500000 0x4000>; 170 139 dma-coherent; 171 - interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>; 172 - clocks = <&cps_syscon0 1 22>; 140 + interrupts = <ICU_GRP_NSR 106 IRQ_TYPE_LEVEL_HIGH>; 141 + clocks = <&cps_clk 1 22>; 173 142 status = "disabled"; 174 143 }; 175 144 ··· 178 147 "generic-xhci"; 179 148 reg = <0x510000 0x4000>; 180 149 dma-coherent; 181 - interrupts = <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>; 182 - clocks = <&cps_syscon0 1 23>; 150 + interrupts = <ICU_GRP_NSR 105 IRQ_TYPE_LEVEL_HIGH>; 151 + clocks = <&cps_clk 1 23>; 183 152 status = "disabled"; 184 153 }; 185 154 ··· 189 158 <0x6b0000 0x1000>; 190 159 dma-coherent; 191 160 msi-parent = <&gic_v2m0>; 192 - clocks = <&cps_syscon0 1 8>; 161 + clocks = <&cps_clk 1 8>; 193 162 }; 194 163 195 164 cps_xor1: xor@6c0000 { ··· 198 167 <0x6d0000 0x1000>; 199 168 dma-coherent; 200 169 msi-parent = <&gic_v2m0>; 201 - clocks = <&cps_syscon0 1 7>; 170 + clocks = <&cps_clk 1 7>; 202 171 }; 203 172 204 173 cps_spi0: spi@700600 { ··· 207 176 #address-cells = <0x1>; 208 177 #size-cells = <0x0>; 209 178 cell-index = <3>; 210 - clocks = <&cps_syscon0 1 21>; 179 + clocks = <&cps_clk 1 21>; 211 180 status = "disabled"; 212 181 }; 213 182 ··· 217 186 #address-cells = <1>; 218 187 #size-cells = <0>; 219 188 cell-index = <4>; 220 - clocks = <&cps_syscon0 1 21>; 189 + clocks = <&cps_clk 1 21>; 221 190 status = "disabled"; 222 191 }; 223 192 ··· 226 195 reg = <0x701000 0x20>; 227 196 #address-cells = <1>; 228 197 #size-cells = <0>; 229 - interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>; 230 - clocks = <&cps_syscon0 1 21>; 198 + interrupts = <ICU_GRP_NSR 120 IRQ_TYPE_LEVEL_HIGH>; 199 + clocks = <&cps_clk 1 21>; 231 200 status = "disabled"; 232 201 }; 233 202 ··· 236 205 reg = <0x701100 0x20>; 237 206 #address-cells = <1>; 238 207 #size-cells = <0>; 239 - interrupts = <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>; 240 - clocks = <&cps_syscon0 1 21>; 208 + interrupts = <ICU_GRP_NSR 121 IRQ_TYPE_LEVEL_HIGH>; 209 + clocks = <&cps_clk 1 21>; 241 210 status = "disabled"; 242 211 }; 243 212 244 213 cps_trng: trng@760000 { 245 214 compatible = "marvell,armada-8k-rng", "inside-secure,safexcel-eip76"; 246 215 reg = <0x760000 0x7d>; 247 - interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>; 248 - clocks = <&cps_syscon0 1 25>; 216 + interrupts = <ICU_GRP_NSR 95 IRQ_TYPE_LEVEL_HIGH>; 217 + clocks = <&cps_clk 1 25>; 249 218 status = "okay"; 250 219 }; 251 220 252 221 cps_crypto: crypto@800000 { 253 222 compatible = "inside-secure,safexcel-eip197"; 254 223 reg = <0x800000 0x200000>; 255 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>, 256 - <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>, 257 - <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>, 258 - <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>, 259 - <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>, 260 - <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>; 224 + interrupts = <ICU_GRP_NSR 87 IRQ_TYPE_LEVEL_HIGH>, 225 + <ICU_GRP_NSR 88 IRQ_TYPE_LEVEL_HIGH>, 226 + <ICU_GRP_NSR 89 IRQ_TYPE_LEVEL_HIGH>, 227 + <ICU_GRP_NSR 90 IRQ_TYPE_LEVEL_HIGH>, 228 + <ICU_GRP_NSR 91 IRQ_TYPE_LEVEL_HIGH>, 229 + <ICU_GRP_NSR 92 IRQ_TYPE_LEVEL_HIGH>; 261 230 interrupt-names = "mem", "ring0", "ring1", 262 231 "ring2", "ring3", "eip"; 263 - clocks = <&cps_syscon0 1 26>; 232 + clocks = <&cps_clk 1 26>; 233 + /* 234 + * The cryptographic engine found on the cp110 235 + * master is enabled by default at the SoC 236 + * level. Because it is not possible as of now 237 + * to enable two cryptographic engines in 238 + * parallel, disable this one by default. 239 + */ 264 240 status = "disabled"; 265 241 }; 266 242 }; ··· 291 253 /* non-prefetchable memory */ 292 254 0x82000000 0 0xfa000000 0 0xfa000000 0 0xf00000>; 293 255 interrupt-map-mask = <0 0 0 0>; 294 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>; 295 - interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>; 256 + interrupt-map = <0 0 0 0 &cps_icu 0 ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 257 + interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 296 258 num-lanes = <1>; 297 - clocks = <&cps_syscon0 1 13>; 259 + clocks = <&cps_clk 1 13>; 298 260 status = "disabled"; 299 261 }; 300 262 ··· 317 279 /* non-prefetchable memory */ 318 280 0x82000000 0 0xfb000000 0 0xfb000000 0 0xf00000>; 319 281 interrupt-map-mask = <0 0 0 0>; 320 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>; 321 - interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>; 282 + interrupt-map = <0 0 0 0 &cps_icu 0 ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 283 + interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 322 284 323 285 num-lanes = <1>; 324 - clocks = <&cps_syscon0 1 11>; 286 + clocks = <&cps_clk 1 11>; 325 287 status = "disabled"; 326 288 }; 327 289 ··· 344 306 /* non-prefetchable memory */ 345 307 0x82000000 0 0xfc000000 0 0xfc000000 0 0xf00000>; 346 308 interrupt-map-mask = <0 0 0 0>; 347 - interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>; 348 - interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>; 309 + interrupt-map = <0 0 0 0 &cps_icu 0 ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 310 + interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 349 311 350 312 num-lanes = <1>; 351 - clocks = <&cps_syscon0 1 12>; 313 + clocks = <&cps_clk 1 12>; 352 314 status = "disabled"; 353 315 }; 354 316 };
+1
arch/arm64/boot/dts/mediatek/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6755-evb.dtb 2 2 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb 3 + dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb 3 4 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb 4 5 5 6 always := $(dtb-y)
+36
arch/arm64/boot/dts/mediatek/mt6797-evb.dts
··· 1 + /* 2 + * Copyright (c) 2017 MediaTek Inc. 3 + * Author: Mars.C <mars.cheng@mediatek.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License version 2 as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, 10 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 + * GNU General Public License for more details. 13 + */ 14 + 15 + /dts-v1/; 16 + #include "mt6797.dtsi" 17 + 18 + / { 19 + model = "MediaTek MT6797 Evaluation Board"; 20 + compatible = "mediatek,mt6797-evb", "mediatek,mt6797"; 21 + 22 + aliases { 23 + serial0 = &uart0; 24 + }; 25 + 26 + memory@40000000 { 27 + device_type = "memory"; 28 + reg = <0 0x40000000 0 0x1e800000>; 29 + }; 30 + 31 + chosen {}; 32 + }; 33 + 34 + &uart0 { 35 + status = "okay"; 36 + };
+244
arch/arm64/boot/dts/mediatek/mt6797.dtsi
··· 1 + /* 2 + * Copyright (c) 2017 MediaTek Inc. 3 + * Author: Mars.C <mars.cheng@mediatek.com> 4 + * 5 + * This program is free software; you can redistribute it and/or modify 6 + * it under the terms of the GNU General Public License version 2 as 7 + * published by the Free Software Foundation. 8 + * 9 + * This program is distributed in the hope that it will be useful, 10 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 + * GNU General Public License for more details. 12 + */ 13 + 14 + #include <dt-bindings/clock/mt6797-clk.h> 15 + #include <dt-bindings/interrupt-controller/irq.h> 16 + #include <dt-bindings/interrupt-controller/arm-gic.h> 17 + 18 + / { 19 + compatible = "mediatek,mt6797"; 20 + interrupt-parent = <&sysirq>; 21 + #address-cells = <2>; 22 + #size-cells = <2>; 23 + 24 + psci { 25 + compatible = "arm,psci-0.2"; 26 + method = "smc"; 27 + }; 28 + 29 + cpus { 30 + #address-cells = <1>; 31 + #size-cells = <0>; 32 + 33 + cpu0: cpu@0 { 34 + device_type = "cpu"; 35 + compatible = "arm,cortex-a53"; 36 + enable-method = "psci"; 37 + reg = <0x000>; 38 + }; 39 + 40 + cpu1: cpu@1 { 41 + device_type = "cpu"; 42 + compatible = "arm,cortex-a53"; 43 + enable-method = "psci"; 44 + reg = <0x001>; 45 + }; 46 + 47 + cpu2: cpu@2 { 48 + device_type = "cpu"; 49 + compatible = "arm,cortex-a53"; 50 + enable-method = "psci"; 51 + reg = <0x002>; 52 + }; 53 + 54 + cpu3: cpu@3 { 55 + device_type = "cpu"; 56 + compatible = "arm,cortex-a53"; 57 + enable-method = "psci"; 58 + reg = <0x003>; 59 + }; 60 + 61 + cpu4: cpu@100 { 62 + device_type = "cpu"; 63 + compatible = "arm,cortex-a53"; 64 + enable-method = "psci"; 65 + reg = <0x100>; 66 + }; 67 + 68 + cpu5: cpu@101 { 69 + device_type = "cpu"; 70 + compatible = "arm,cortex-a53"; 71 + enable-method = "psci"; 72 + reg = <0x101>; 73 + }; 74 + 75 + cpu6: cpu@102 { 76 + device_type = "cpu"; 77 + compatible = "arm,cortex-a53"; 78 + enable-method = "psci"; 79 + reg = <0x102>; 80 + }; 81 + 82 + cpu7: cpu@103 { 83 + device_type = "cpu"; 84 + compatible = "arm,cortex-a53"; 85 + enable-method = "psci"; 86 + reg = <0x103>; 87 + }; 88 + 89 + cpu8: cpu@200 { 90 + device_type = "cpu"; 91 + compatible = "arm,cortex-a72"; 92 + enable-method = "psci"; 93 + reg = <0x200>; 94 + }; 95 + 96 + cpu9: cpu@201 { 97 + device_type = "cpu"; 98 + compatible = "arm,cortex-a72"; 99 + enable-method = "psci"; 100 + reg = <0x201>; 101 + }; 102 + }; 103 + 104 + clk26m: oscillator@0 { 105 + compatible = "fixed-clock"; 106 + #clock-cells = <0>; 107 + clock-frequency = <26000000>; 108 + clock-output-names = "clk26m"; 109 + }; 110 + 111 + clk32k: oscillator@1 { 112 + compatible = "fixed-clock"; 113 + #clock-cells = <0>; 114 + clock-frequency = <32000>; 115 + clock-output-names = "clk32k"; 116 + }; 117 + 118 + timer { 119 + compatible = "arm,armv8-timer"; 120 + interrupt-parent = <&gic>; 121 + interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 122 + <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 123 + <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 124 + <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 125 + }; 126 + 127 + topckgen: topckgen@10000000 { 128 + compatible = "mediatek,mt6797-topckgen"; 129 + reg = <0 0x10000000 0 0x1000>; 130 + #clock-cells = <1>; 131 + }; 132 + 133 + infrasys: infracfg_ao@10001000 { 134 + compatible = "mediatek,mt6797-infracfg", "syscon"; 135 + reg = <0 0x10001000 0 0x1000>; 136 + #clock-cells = <1>; 137 + }; 138 + 139 + scpsys: scpsys@10006000 { 140 + compatible = "mediatek,mt6797-scpsys"; 141 + #power-domain-cells = <1>; 142 + reg = <0 0x10006000 0 0x1000>; 143 + clocks = <&topckgen CLK_TOP_MUX_MFG>, 144 + <&topckgen CLK_TOP_MUX_MM>, 145 + <&topckgen CLK_TOP_MUX_VDEC>; 146 + clock-names = "mfg", "mm", "vdec"; 147 + infracfg = <&infrasys>; 148 + }; 149 + 150 + apmixedsys: apmixed@1000c000 { 151 + compatible = "mediatek,mt6797-apmixedsys"; 152 + reg = <0 0x1000c000 0 0x1000>; 153 + #clock-cells = <1>; 154 + }; 155 + 156 + sysirq: intpol-controller@10200620 { 157 + compatible = "mediatek,mt6797-sysirq", 158 + "mediatek,mt6577-sysirq"; 159 + interrupt-controller; 160 + #interrupt-cells = <3>; 161 + interrupt-parent = <&gic>; 162 + reg = <0 0x10220620 0 0x20>, 163 + <0 0x10220690 0 0x10>; 164 + }; 165 + 166 + uart0: serial@11002000 { 167 + compatible = "mediatek,mt6797-uart", 168 + "mediatek,mt6577-uart"; 169 + reg = <0 0x11002000 0 0x400>; 170 + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 171 + clocks = <&infrasys CLK_INFRA_UART0>, 172 + <&infrasys CLK_INFRA_AP_DMA>; 173 + clock-names = "baud", "bus"; 174 + status = "disabled"; 175 + }; 176 + 177 + uart1: serial@11003000 { 178 + compatible = "mediatek,mt6797-uart", 179 + "mediatek,mt6577-uart"; 180 + reg = <0 0x11003000 0 0x400>; 181 + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 182 + clocks = <&infrasys CLK_INFRA_UART1>, 183 + <&infrasys CLK_INFRA_AP_DMA>; 184 + clock-names = "baud", "bus"; 185 + status = "disabled"; 186 + }; 187 + 188 + uart2: serial@11004000 { 189 + compatible = "mediatek,mt6797-uart", 190 + "mediatek,mt6577-uart"; 191 + reg = <0 0x11004000 0 0x400>; 192 + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 193 + clocks = <&infrasys CLK_INFRA_UART2>, 194 + <&infrasys CLK_INFRA_AP_DMA>; 195 + clock-names = "baud", "bus"; 196 + status = "disabled"; 197 + }; 198 + 199 + uart3: serial@11005000 { 200 + compatible = "mediatek,mt6797-uart", 201 + "mediatek,mt6577-uart"; 202 + reg = <0 0x11005000 0 0x400>; 203 + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>; 204 + clocks = <&infrasys CLK_INFRA_UART3>, 205 + <&infrasys CLK_INFRA_AP_DMA>; 206 + clock-names = "baud", "bus"; 207 + status = "disabled"; 208 + }; 209 + 210 + mmsys: mmsys_config@14000000 { 211 + compatible = "mediatek,mt6797-mmsys", "syscon"; 212 + reg = <0 0x14000000 0 0x1000>; 213 + #clock-cells = <1>; 214 + }; 215 + 216 + imgsys: imgsys_config@15000000 { 217 + compatible = "mediatek,mt6797-imgsys", "syscon"; 218 + reg = <0 0x15000000 0 0x1000>; 219 + #clock-cells = <1>; 220 + }; 221 + 222 + vdecsys: vdec_gcon@16000000 { 223 + compatible = "mediatek,mt6797-vdecsys", "syscon"; 224 + reg = <0 0x16000000 0 0x10000>; 225 + #clock-cells = <1>; 226 + }; 227 + 228 + vencsys: venc_gcon@17000000 { 229 + compatible = "mediatek,mt6797-vencsys", "syscon"; 230 + reg = <0 0x17000000 0 0x1000>; 231 + #clock-cells = <1>; 232 + }; 233 + 234 + gic: interrupt-controller@19000000 { 235 + compatible = "arm,gic-v3"; 236 + #interrupt-cells = <3>; 237 + interrupt-parent = <&gic>; 238 + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 239 + interrupt-controller; 240 + reg = <0 0x19000000 0 0x10000>, /* GICD */ 241 + <0 0x19200000 0 0x200000>, /* GICR */ 242 + <0 0x10240000 0 0x2000>; /* GICC */ 243 + }; 244 + };
+79 -74
arch/arm64/boot/dts/mediatek/mt8173.dtsi
··· 731 731 <0 0x11280700 0 0x0100>; 732 732 reg-names = "mac", "ippc"; 733 733 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_LOW>; 734 - phys = <&phy_port0 PHY_TYPE_USB3>, 735 - <&phy_port1 PHY_TYPE_USB2>; 734 + phys = <&u2port0 PHY_TYPE_USB2>, 735 + <&u3port0 PHY_TYPE_USB3>, 736 + <&u2port1 PHY_TYPE_USB2>; 736 737 power-domains = <&scpsys MT8173_POWER_DOMAIN_USB>; 737 738 clocks = <&topckgen CLK_TOP_USB30_SEL>, 738 739 <&clk26m>, ··· 764 763 u3phy: usb-phy@11290000 { 765 764 compatible = "mediatek,mt8173-u3phy"; 766 765 reg = <0 0x11290000 0 0x800>; 767 - clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; 768 - clock-names = "u3phya_ref"; 769 766 #address-cells = <2>; 770 767 #size-cells = <2>; 771 768 ranges; 772 769 status = "okay"; 773 770 774 - phy_port0: port@11290800 { 775 - reg = <0 0x11290800 0 0x800>; 771 + u2port0: usb-phy@11290800 { 772 + reg = <0 0x11290800 0 0x100>; 773 + clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; 774 + clock-names = "ref"; 776 775 #phy-cells = <1>; 777 776 status = "okay"; 778 777 }; 779 778 780 - phy_port1: port@11291000 { 781 - reg = <0 0x11291000 0 0x800>; 779 + u3port0: usb-phy@11290900 { 780 + reg = <0 0x11290900 0 0x700>; 781 + clocks = <&clk26m>; 782 + clock-names = "ref"; 783 + #phy-cells = <1>; 784 + status = "okay"; 785 + }; 786 + 787 + u2port1: usb-phy@11291000 { 788 + reg = <0 0x11291000 0 0x100>; 789 + clocks = <&apmixedsys CLK_APMIXED_REF2USB_TX>; 790 + clock-names = "ref"; 782 791 #phy-cells = <1>; 783 792 status = "okay"; 784 793 }; ··· 803 792 #clock-cells = <1>; 804 793 }; 805 794 806 - mdp { 807 - compatible = "mediatek,mt8173-mdp"; 808 - #address-cells = <2>; 809 - #size-cells = <2>; 810 - ranges; 795 + mdp_rdma0: rdma@14001000 { 796 + compatible = "mediatek,mt8173-mdp-rdma", 797 + "mediatek,mt8173-mdp"; 798 + reg = <0 0x14001000 0 0x1000>; 799 + clocks = <&mmsys CLK_MM_MDP_RDMA0>, 800 + <&mmsys CLK_MM_MUTEX_32K>; 801 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 802 + iommus = <&iommu M4U_PORT_MDP_RDMA0>; 803 + mediatek,larb = <&larb0>; 811 804 mediatek,vpu = <&vpu>; 805 + }; 812 806 813 - mdp_rdma0: rdma@14001000 { 814 - compatible = "mediatek,mt8173-mdp-rdma"; 815 - reg = <0 0x14001000 0 0x1000>; 816 - clocks = <&mmsys CLK_MM_MDP_RDMA0>, 817 - <&mmsys CLK_MM_MUTEX_32K>; 818 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 819 - iommus = <&iommu M4U_PORT_MDP_RDMA0>; 820 - mediatek,larb = <&larb0>; 821 - }; 807 + mdp_rdma1: rdma@14002000 { 808 + compatible = "mediatek,mt8173-mdp-rdma"; 809 + reg = <0 0x14002000 0 0x1000>; 810 + clocks = <&mmsys CLK_MM_MDP_RDMA1>, 811 + <&mmsys CLK_MM_MUTEX_32K>; 812 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 813 + iommus = <&iommu M4U_PORT_MDP_RDMA1>; 814 + mediatek,larb = <&larb4>; 815 + }; 822 816 823 - mdp_rdma1: rdma@14002000 { 824 - compatible = "mediatek,mt8173-mdp-rdma"; 825 - reg = <0 0x14002000 0 0x1000>; 826 - clocks = <&mmsys CLK_MM_MDP_RDMA1>, 827 - <&mmsys CLK_MM_MUTEX_32K>; 828 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 829 - iommus = <&iommu M4U_PORT_MDP_RDMA1>; 830 - mediatek,larb = <&larb4>; 831 - }; 817 + mdp_rsz0: rsz@14003000 { 818 + compatible = "mediatek,mt8173-mdp-rsz"; 819 + reg = <0 0x14003000 0 0x1000>; 820 + clocks = <&mmsys CLK_MM_MDP_RSZ0>; 821 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 822 + }; 832 823 833 - mdp_rsz0: rsz@14003000 { 834 - compatible = "mediatek,mt8173-mdp-rsz"; 835 - reg = <0 0x14003000 0 0x1000>; 836 - clocks = <&mmsys CLK_MM_MDP_RSZ0>; 837 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 838 - }; 824 + mdp_rsz1: rsz@14004000 { 825 + compatible = "mediatek,mt8173-mdp-rsz"; 826 + reg = <0 0x14004000 0 0x1000>; 827 + clocks = <&mmsys CLK_MM_MDP_RSZ1>; 828 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 829 + }; 839 830 840 - mdp_rsz1: rsz@14004000 { 841 - compatible = "mediatek,mt8173-mdp-rsz"; 842 - reg = <0 0x14004000 0 0x1000>; 843 - clocks = <&mmsys CLK_MM_MDP_RSZ1>; 844 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 845 - }; 831 + mdp_rsz2: rsz@14005000 { 832 + compatible = "mediatek,mt8173-mdp-rsz"; 833 + reg = <0 0x14005000 0 0x1000>; 834 + clocks = <&mmsys CLK_MM_MDP_RSZ2>; 835 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 836 + }; 846 837 847 - mdp_rsz2: rsz@14005000 { 848 - compatible = "mediatek,mt8173-mdp-rsz"; 849 - reg = <0 0x14005000 0 0x1000>; 850 - clocks = <&mmsys CLK_MM_MDP_RSZ2>; 851 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 852 - }; 838 + mdp_wdma0: wdma@14006000 { 839 + compatible = "mediatek,mt8173-mdp-wdma"; 840 + reg = <0 0x14006000 0 0x1000>; 841 + clocks = <&mmsys CLK_MM_MDP_WDMA>; 842 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 843 + iommus = <&iommu M4U_PORT_MDP_WDMA>; 844 + mediatek,larb = <&larb0>; 845 + }; 853 846 854 - mdp_wdma0: wdma@14006000 { 855 - compatible = "mediatek,mt8173-mdp-wdma"; 856 - reg = <0 0x14006000 0 0x1000>; 857 - clocks = <&mmsys CLK_MM_MDP_WDMA>; 858 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 859 - iommus = <&iommu M4U_PORT_MDP_WDMA>; 860 - mediatek,larb = <&larb0>; 861 - }; 847 + mdp_wrot0: wrot@14007000 { 848 + compatible = "mediatek,mt8173-mdp-wrot"; 849 + reg = <0 0x14007000 0 0x1000>; 850 + clocks = <&mmsys CLK_MM_MDP_WROT0>; 851 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 852 + iommus = <&iommu M4U_PORT_MDP_WROT0>; 853 + mediatek,larb = <&larb0>; 854 + }; 862 855 863 - mdp_wrot0: wrot@14007000 { 864 - compatible = "mediatek,mt8173-mdp-wrot"; 865 - reg = <0 0x14007000 0 0x1000>; 866 - clocks = <&mmsys CLK_MM_MDP_WROT0>; 867 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 868 - iommus = <&iommu M4U_PORT_MDP_WROT0>; 869 - mediatek,larb = <&larb0>; 870 - }; 871 - 872 - mdp_wrot1: wrot@14008000 { 873 - compatible = "mediatek,mt8173-mdp-wrot"; 874 - reg = <0 0x14008000 0 0x1000>; 875 - clocks = <&mmsys CLK_MM_MDP_WROT1>; 876 - power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 877 - iommus = <&iommu M4U_PORT_MDP_WROT1>; 878 - mediatek,larb = <&larb4>; 879 - }; 856 + mdp_wrot1: wrot@14008000 { 857 + compatible = "mediatek,mt8173-mdp-wrot"; 858 + reg = <0 0x14008000 0 0x1000>; 859 + clocks = <&mmsys CLK_MM_MDP_WROT1>; 860 + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; 861 + iommus = <&iommu M4U_PORT_MDP_WROT1>; 862 + mediatek,larb = <&larb4>; 880 863 }; 881 864 882 865 ovl0: ovl@1400c000 {
+3 -1
arch/arm64/boot/dts/nvidia/tegra132.dtsi
··· 12 12 #address-cells = <2>; 13 13 #size-cells = <2>; 14 14 15 - pcie-controller@01003000 { 15 + pcie@1003000 { 16 16 compatible = "nvidia,tegra124-pcie"; 17 17 device_type = "pci"; 18 18 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ ··· 55 55 device_type = "pci"; 56 56 assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>; 57 57 reg = <0x000800 0 0 0 0>; 58 + bus-range = <0x00 0xff>; 58 59 status = "disabled"; 59 60 60 61 #address-cells = <3>; ··· 69 68 device_type = "pci"; 70 69 assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>; 71 70 reg = <0x001000 0 0 0 0>; 71 + bus-range = <0x00 0xff>; 72 72 status = "disabled"; 73 73 74 74 #address-cells = <3>;
+7
arch/arm64/boot/dts/nvidia/tegra186.dtsi
··· 348 348 reg-names = "pmc", "wake", "aotag", "scratch"; 349 349 }; 350 350 351 + ccplex@e000000 { 352 + compatible = "nvidia,tegra186-ccplex-cluster"; 353 + reg = <0x0 0x0e000000 0x0 0x3fffff>; 354 + 355 + nvidia,bpmp = <&bpmp>; 356 + }; 357 + 351 358 gpu@17000000 { 352 359 compatible = "nvidia,gp10b"; 353 360 reg = <0x0 0x17000000 0x0 0x1000000>,
+1 -1
arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts
··· 7 7 model = "NVIDIA Jetson TX1 Developer Kit"; 8 8 compatible = "nvidia,p2371-2180", "nvidia,tegra210"; 9 9 10 - pcie-controller@01003000 { 10 + pcie@1003000 { 11 11 status = "okay"; 12 12 13 13 avdd-pll-uerefe-supply = <&avdd_1v05_pll>;
+3 -1
arch/arm64/boot/dts/nvidia/tegra210.dtsi
··· 11 11 #address-cells = <2>; 12 12 #size-cells = <2>; 13 13 14 - pcie-controller@01003000 { 14 + pcie@1003000 { 15 15 compatible = "nvidia,tegra210-pcie"; 16 16 device_type = "pci"; 17 17 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ ··· 51 51 device_type = "pci"; 52 52 assigned-addresses = <0x82000800 0 0x01000000 0 0x1000>; 53 53 reg = <0x000800 0 0 0 0>; 54 + bus-range = <0x00 0xff>; 54 55 status = "disabled"; 55 56 56 57 #address-cells = <3>; ··· 65 64 device_type = "pci"; 66 65 assigned-addresses = <0x82001000 0 0x01001000 0 0x1000>; 67 66 reg = <0x001000 0 0 0 0>; 67 + bus-range = <0x00 0xff>; 68 68 status = "disabled"; 69 69 70 70 #address-cells = <3>;
+19 -17
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
··· 178 178 led@5 { 179 179 label = "apq8016-sbc:yellow:wlan"; 180 180 gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>; 181 - linux,default-trigger = "wlan"; 181 + linux,default-trigger = "phy0tx"; 182 182 default-state = "off"; 183 183 }; 184 184 ··· 215 215 usb@78d9000 { 216 216 extcon = <&usb_id>, <&usb_id>; 217 217 status = "okay"; 218 - }; 219 - 220 - ehci@78d9000 { 221 - status = "okay"; 222 - }; 223 - 224 - phy@78d9000 { 225 - v1p8-supply = <&pm8916_l7>; 226 - v3p3-supply = <&pm8916_l13>; 227 - vddcx-supply = <&pm8916_s1>; 228 - extcon = <&usb_id>, <&usb_id>; 229 - dr_mode = "otg"; 230 - status = "okay"; 231 - switch-gpio = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; 232 - pinctrl-names = "default"; 233 - pinctrl-0 = <&usb_sw_sel_pm>; 218 + adp-disable; 219 + hnp-disable; 220 + srp-disable; 221 + ulpi { 222 + phy { 223 + v1p8-supply = <&pm8916_l7>; 224 + v3p3-supply = <&pm8916_l13>; 225 + extcon = <&usb_id>; 226 + }; 227 + }; 234 228 }; 235 229 236 230 lpass@07708000 { ··· 340 346 id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>; 341 347 pinctrl-names = "default"; 342 348 pinctrl-0 = <&usb_id_default>; 349 + }; 350 + 351 + usb-switch { 352 + compatible = "toshiba,tc7usb40mu"; 353 + switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; 354 + extcon = <&usb_id>; 355 + pinctrl-names = "default"; 356 + pinctrl-0 = <&usb_sw_sel_pm>; 343 357 }; 344 358 345 359 hdmi-out {
+29 -33
arch/arm64/boot/dts/qcom/msm8916.dtsi
··· 546 546 status = "disabled"; 547 547 }; 548 548 549 - usb_dev: usb@78d9000 { 549 + otg: usb@78d9000 { 550 550 compatible = "qcom,ci-hdrc"; 551 - reg = <0x78d9000 0x400>; 552 - dr_mode = "peripheral"; 553 - interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 554 - usb-phy = <&usb_otg>; 555 - status = "disabled"; 556 - }; 557 - 558 - usb_host: ehci@78d9000 { 559 - compatible = "qcom,ehci-host"; 560 - reg = <0x78d9000 0x400>; 561 - interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; 562 - usb-phy = <&usb_otg>; 563 - status = "disabled"; 564 - }; 565 - 566 - usb_otg: phy@78d9000 { 567 - compatible = "qcom,usb-otg-snps"; 568 - reg = <0x78d9000 0x400>; 551 + reg = <0x78d9000 0x200>, 552 + <0x78d9200 0x200>; 569 553 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, 570 554 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 571 - 572 - qcom,vdd-levels = <500000 1000000 1320000>; 573 - qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>; 574 - dr_mode = "peripheral"; 575 - qcom,otg-control = <2>; // PMIC 576 - qcom,manual-pullup; 577 - 578 555 clocks = <&gcc GCC_USB_HS_AHB_CLK>, 579 - <&gcc GCC_USB_HS_SYSTEM_CLK>, 580 - <&gcc GCC_USB2A_PHY_SLEEP_CLK>; 581 - clock-names = "iface", "core", "sleep"; 582 - 583 - resets = <&gcc GCC_USB2A_PHY_BCR>, 584 - <&gcc GCC_USB_HS_BCR>; 585 - reset-names = "phy", "link"; 556 + <&gcc GCC_USB_HS_SYSTEM_CLK>; 557 + clock-names = "iface", "core"; 558 + assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>; 559 + assigned-clock-rates = <80000000>; 560 + resets = <&gcc GCC_USB_HS_BCR>; 561 + reset-names = "core"; 562 + phy_type = "ulpi"; 563 + dr_mode = "otg"; 564 + ahb-burst-config = <0>; 565 + phy-names = "usb-phy"; 566 + phys = <&usb_hs_phy>; 586 567 status = "disabled"; 568 + #reset-cells = <1>; 569 + 570 + ulpi { 571 + usb_hs_phy: phy { 572 + compatible = "qcom,usb-hs-phy-msm8916", 573 + "qcom,usb-hs-phy"; 574 + #phy-cells = <0>; 575 + clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>; 576 + clock-names = "ref", "sleep"; 577 + resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>; 578 + reset-names = "phy", "por"; 579 + qcom,init-seq = /bits/ 8 <0x0 0x44 580 + 0x1 0x6b 0x2 0x24 0x3 0x13>; 581 + }; 582 + }; 587 583 }; 588 584 589 585 intc: interrupt-controller@b000000 {
+53
arch/arm64/boot/dts/qcom/msm8992.dtsi
··· 68 68 clock-frequency = <32768>; 69 69 }; 70 70 71 + vreg_vph_pwr: vreg-vph-pwr { 72 + compatible = "regulator-fixed"; 73 + status = "okay"; 74 + regulator-name = "vph-pwr"; 75 + 76 + regulator-min-microvolt = <3600000>; 77 + regulator-max-microvolt = <3600000>; 78 + 79 + regulator-always-on; 80 + }; 81 + 82 + sfpb_mutex: hwmutex { 83 + compatible = "qcom,sfpb-mutex"; 84 + syscon = <&sfpb_mutex_regs 0x0 0x100>; 85 + #hwlock-cells = <1>; 86 + }; 87 + 88 + smem { 89 + compatible = "qcom,smem"; 90 + memory-region = <&smem_region>; 91 + qcom,rpm-msg-ram = <&rpm_msg_ram>; 92 + hwlocks = <&sfpb_mutex 3>; 93 + }; 94 + 71 95 soc { 72 96 #address-cells = <1>; 73 97 #size-cells = <1>; ··· 104 80 #interrupt-cells = <3>; 105 81 reg = <0xf9000000 0x1000>, 106 82 <0xf9002000 0x1000>; 83 + }; 84 + 85 + apcs: syscon@f900d000 { 86 + compatible = "syscon"; 87 + reg = <0xf900d000 0x2000>; 107 88 }; 108 89 109 90 timer@f9020000 { ··· 201 172 #power-domain-cells = <1>; 202 173 reg = <0xfc400000 0x2000>; 203 174 }; 175 + 176 + rpm_msg_ram: memory@fc428000 { 177 + compatible = "qcom,rpm-msg-ram"; 178 + reg = <0xfc428000 0x4000>; 179 + }; 180 + 181 + sfpb_mutex_regs: syscon@fd484000 { 182 + #address-cells = <1>; 183 + #size-cells = <1>; 184 + compatible = "syscon"; 185 + reg = <0xfd484000 0x400>; 186 + }; 204 187 }; 205 188 206 189 memory { 207 190 device_type = "memory"; 208 191 reg = <0 0 0 0>; // bootloader will update 209 192 }; 193 + 194 + reserved-memory { 195 + #address-cells = <2>; 196 + #size-cells = <2>; 197 + ranges; 198 + 199 + smem_region: smem@6a00000 { 200 + reg = <0x0 0x6a00000 0x0 0x200000>; 201 + no-map; 202 + }; 203 + }; 204 + 210 205 }; 211 206 212 207
+6
arch/arm64/boot/dts/qcom/msm8996.dtsi
··· 311 311 reg = <0x300000 0x90000>; 312 312 }; 313 313 314 + kryocc: clock-controller@6400000 { 315 + compatible = "qcom,apcc-msm8996"; 316 + reg = <0x6400000 0x90000>; 317 + #clock-cells = <1>; 318 + }; 319 + 314 320 blsp1_spi0: spi@07575000 { 315 321 compatible = "qcom,spi-qup-v2.2.1"; 316 322 reg = <0x07575000 0x600>;
+5
arch/arm64/boot/dts/realtek/Makefile
··· 1 + dtb-$(CONFIG_ARCH_REALTEK) += rtd1295-zidoo-x9s.dtb 2 + 3 + always := $(dtb-y) 4 + subdir-y := $(dts-dirs) 5 + clean-files := *.dtb
+42
arch/arm64/boot/dts/realtek/rtd1295-zidoo-x9s.dts
··· 1 + /* 2 + * Copyright (c) 2016-2017 Andreas Färber 3 + * 4 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 5 + */ 6 + 7 + /dts-v1/; 8 + 9 + /memreserve/ 0x0000000000000000 0x0000000000030000; 10 + /memreserve/ 0x000000000001f000 0x0000000000001000; 11 + /memreserve/ 0x0000000000030000 0x00000000000d0000; 12 + /memreserve/ 0x0000000001b00000 0x00000000004be000; 13 + /memreserve/ 0x0000000001ffe000 0x0000000000004000; 14 + 15 + #include "rtd1295.dtsi" 16 + 17 + / { 18 + compatible = "zidoo,x9s", "realtek,rtd1295"; 19 + model = "Zidoo X9S"; 20 + 21 + memory@0 { 22 + device_type = "memory"; 23 + reg = <0x0 0x80000000>; 24 + }; 25 + 26 + aliases { 27 + serial0 = &uart0; 28 + serial1 = &uart1; 29 + }; 30 + 31 + chosen { 32 + stdout-path = "serial0:115200n8"; 33 + }; 34 + }; 35 + 36 + &uart0 { 37 + status = "okay"; 38 + }; 39 + 40 + &uart1 { 41 + status = "okay"; 42 + };
+131
arch/arm64/boot/dts/realtek/rtd1295.dtsi
··· 1 + /* 2 + * Realtek RTD1295 SoC 3 + * 4 + * Copyright (c) 2016-2017 Andreas Färber 5 + * 6 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 + */ 8 + 9 + #include <dt-bindings/interrupt-controller/arm-gic.h> 10 + 11 + / { 12 + compatible = "realtek,rtd1295"; 13 + interrupt-parent = <&gic>; 14 + #address-cells = <1>; 15 + #size-cells = <1>; 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>; 26 + }; 27 + 28 + cpu1: cpu@1 { 29 + device_type = "cpu"; 30 + compatible = "arm,cortex-a53", "arm,armv8"; 31 + reg = <0x0 0x1>; 32 + next-level-cache = <&l2>; 33 + }; 34 + 35 + cpu2: cpu@2 { 36 + device_type = "cpu"; 37 + compatible = "arm,cortex-a53", "arm,armv8"; 38 + reg = <0x0 0x2>; 39 + next-level-cache = <&l2>; 40 + }; 41 + 42 + cpu3: cpu@3 { 43 + device_type = "cpu"; 44 + compatible = "arm,cortex-a53", "arm,armv8"; 45 + reg = <0x0 0x3>; 46 + next-level-cache = <&l2>; 47 + }; 48 + 49 + l2: l2-cache { 50 + compatible = "cache"; 51 + }; 52 + }; 53 + 54 + reserved-memory { 55 + #address-cells = <1>; 56 + #size-cells = <1>; 57 + ranges; 58 + 59 + tee@10100000 { 60 + reg = <0x10100000 0xf00000>; 61 + no-map; 62 + }; 63 + }; 64 + 65 + arm-pmu { 66 + compatible = "arm,cortex-a53-pmu"; 67 + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 68 + interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 69 + }; 70 + 71 + timer { 72 + compatible = "arm,armv8-timer"; 73 + interrupts = <GIC_PPI 13 74 + (GIC_CPU_MASK_RAW(0xf) | IRQ_TYPE_LEVEL_LOW)>, 75 + <GIC_PPI 14 76 + (GIC_CPU_MASK_RAW(0xf) | IRQ_TYPE_LEVEL_LOW)>, 77 + <GIC_PPI 11 78 + (GIC_CPU_MASK_RAW(0xf) | IRQ_TYPE_LEVEL_LOW)>, 79 + <GIC_PPI 10 80 + (GIC_CPU_MASK_RAW(0xf) | IRQ_TYPE_LEVEL_LOW)>; 81 + }; 82 + 83 + soc { 84 + compatible = "simple-bus"; 85 + #address-cells = <1>; 86 + #size-cells = <1>; 87 + /* Exclude up to 2 GiB of RAM */ 88 + ranges = <0x80000000 0x80000000 0x80000000>; 89 + 90 + uart0: serial@98007800 { 91 + compatible = "snps,dw-apb-uart"; 92 + reg = <0x98007800 0x400>, 93 + <0x98007000 0x100>; 94 + reg-shift = <2>; 95 + reg-io-width = <4>; 96 + clock-frequency = <27000000>; 97 + status = "disabled"; 98 + }; 99 + 100 + uart1: serial@9801b200 { 101 + compatible = "snps,dw-apb-uart"; 102 + reg = <0x9801b200 0x100>, 103 + <0x9801b00c 0x100>; 104 + reg-shift = <2>; 105 + reg-io-width = <4>; 106 + clock-frequency = <432000000>; 107 + status = "disabled"; 108 + }; 109 + 110 + uart2: serial@9801b400 { 111 + compatible = "snps,dw-apb-uart"; 112 + reg = <0x9801b400 0x100>, 113 + <0x9801b00c 0x100>; 114 + reg-shift = <2>; 115 + reg-io-width = <4>; 116 + clock-frequency = <432000000>; 117 + status = "disabled"; 118 + }; 119 + 120 + gic: interrupt-controller@ff011000 { 121 + compatible = "arm,gic-400"; 122 + reg = <0xff011000 0x1000>, 123 + <0xff012000 0x2000>, 124 + <0xff014000 0x2000>, 125 + <0xff016000 0x2000>; 126 + interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 127 + interrupt-controller; 128 + #interrupt-cells = <3>; 129 + }; 130 + }; 131 + };
+2
arch/arm64/boot/dts/renesas/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb 2 + dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-xs.dtb 3 + dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb 2 4 dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb 3 5 4 6 always := $(dtb-y)
+42
arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb.dts
··· 1 + /* 2 + * Device Tree Source for the H3ULCB (R-Car Starter Kit Premier) board 3 + * 4 + * Copyright (C) 2016 Renesas Electronics Corp. 5 + * Copyright (C) 2016 Cogent Embedded, Inc. 6 + * 7 + * This file is licensed under the terms of the GNU General Public License 8 + * version 2. This program is licensed "as is" without any warranty of any 9 + * kind, whether express or implied. 10 + */ 11 + 12 + #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 13 + 14 + /dts-v1/; 15 + #include "r8a7795-es1.dtsi" 16 + #include "ulcb.dtsi" 17 + 18 + / { 19 + model = "Renesas H3ULCB board based on r8a7795 ES1.x"; 20 + compatible = "renesas,h3ulcb", "renesas,r8a7795"; 21 + 22 + memory@48000000 { 23 + device_type = "memory"; 24 + /* first 128MB is reserved for secure area. */ 25 + reg = <0x0 0x48000000 0x0 0x38000000>; 26 + }; 27 + 28 + memory@500000000 { 29 + device_type = "memory"; 30 + reg = <0x5 0x00000000 0x0 0x40000000>; 31 + }; 32 + 33 + memory@600000000 { 34 + device_type = "memory"; 35 + reg = <0x6 0x00000000 0x0 0x40000000>; 36 + }; 37 + 38 + memory@700000000 { 39 + device_type = "memory"; 40 + reg = <0x7 0x00000000 0x0 0x40000000>; 41 + }; 42 + };
+115
arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts
··· 1 + /* 2 + * Device Tree Source for the Salvator-X board 3 + * 4 + * Copyright (C) 2015 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 12 + 13 + /dts-v1/; 14 + #include "r8a7795-es1.dtsi" 15 + #include "salvator-x.dtsi" 16 + 17 + / { 18 + model = "Renesas Salvator-X board based on r8a7795 ES1.x"; 19 + compatible = "renesas,salvator-x", "renesas,r8a7795"; 20 + 21 + memory@48000000 { 22 + device_type = "memory"; 23 + /* first 128MB is reserved for secure area. */ 24 + reg = <0x0 0x48000000 0x0 0x38000000>; 25 + }; 26 + 27 + memory@500000000 { 28 + device_type = "memory"; 29 + reg = <0x5 0x00000000 0x0 0x40000000>; 30 + }; 31 + 32 + memory@600000000 { 33 + device_type = "memory"; 34 + reg = <0x6 0x00000000 0x0 0x40000000>; 35 + }; 36 + 37 + memory@700000000 { 38 + device_type = "memory"; 39 + reg = <0x7 0x00000000 0x0 0x40000000>; 40 + }; 41 + }; 42 + 43 + &du { 44 + clocks = <&cpg CPG_MOD 724>, 45 + <&cpg CPG_MOD 723>, 46 + <&cpg CPG_MOD 722>, 47 + <&cpg CPG_MOD 721>, 48 + <&cpg CPG_MOD 727>, 49 + <&versaclock5 1>, 50 + <&x21_clk>, 51 + <&x22_clk>, 52 + <&versaclock5 2>; 53 + clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 54 + "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; 55 + }; 56 + 57 + &ehci2 { 58 + status = "okay"; 59 + }; 60 + 61 + &hdmi0 { 62 + status = "okay"; 63 + 64 + ports { 65 + port@1 { 66 + reg = <1>; 67 + rcar_dw_hdmi0_out: endpoint { 68 + remote-endpoint = <&hdmi0_con>; 69 + }; 70 + }; 71 + }; 72 + }; 73 + 74 + &hdmi0_con { 75 + remote-endpoint = <&rcar_dw_hdmi0_out>; 76 + }; 77 + 78 + &hdmi1 { 79 + status = "okay"; 80 + 81 + ports { 82 + port@1 { 83 + reg = <1>; 84 + rcar_dw_hdmi1_out: endpoint { 85 + remote-endpoint = <&hdmi1_con>; 86 + }; 87 + }; 88 + }; 89 + }; 90 + 91 + &hdmi1_con { 92 + remote-endpoint = <&rcar_dw_hdmi1_out>; 93 + }; 94 + 95 + &ohci2 { 96 + status = "okay"; 97 + }; 98 + 99 + &pfc { 100 + usb2_pins: usb2 { 101 + groups = "usb2"; 102 + function = "usb2"; 103 + }; 104 + }; 105 + 106 + &sata { 107 + status = "okay"; 108 + }; 109 + 110 + &usb2_phy2 { 111 + pinctrl-0 = <&usb2_pins>; 112 + pinctrl-names = "default"; 113 + 114 + status = "okay"; 115 + };
+84
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
··· 1 + /* 2 + * Device Tree Source for the r8a7795 ES1.x SoC 3 + * 4 + * Copyright (C) 2015 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #include "r8a7795.dtsi" 12 + 13 + &soc { 14 + xhci1: usb@ee0400000 { 15 + compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci"; 16 + reg = <0 0xee040000 0 0xc00>; 17 + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 18 + clocks = <&cpg CPG_MOD 327>; 19 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 20 + resets = <&cpg 327>; 21 + status = "disabled"; 22 + }; 23 + 24 + fcpf2: fcp@fe952000 { 25 + compatible = "renesas,fcpf"; 26 + reg = <0 0xfe952000 0 0x200>; 27 + clocks = <&cpg CPG_MOD 613>; 28 + power-domains = <&sysc R8A7795_PD_A3VP>; 29 + resets = <&cpg 613>; 30 + }; 31 + 32 + vspi2: vsp@fe9c0000 { 33 + compatible = "renesas,vsp2"; 34 + reg = <0 0xfe9c0000 0 0x8000>; 35 + interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; 36 + clocks = <&cpg CPG_MOD 629>; 37 + power-domains = <&sysc R8A7795_PD_A3VP>; 38 + resets = <&cpg 629>; 39 + 40 + renesas,fcp = <&fcpvi2>; 41 + }; 42 + 43 + fcpvi2: fcp@fe9cf000 { 44 + compatible = "renesas,fcpv"; 45 + reg = <0 0xfe9cf000 0 0x200>; 46 + clocks = <&cpg CPG_MOD 609>; 47 + power-domains = <&sysc R8A7795_PD_A3VP>; 48 + resets = <&cpg 609>; 49 + }; 50 + 51 + vspd3: vsp@fea38000 { 52 + compatible = "renesas,vsp2"; 53 + reg = <0 0xfea38000 0 0x4000>; 54 + interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>; 55 + clocks = <&cpg CPG_MOD 620>; 56 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 57 + resets = <&cpg 620>; 58 + 59 + renesas,fcp = <&fcpvd3>; 60 + }; 61 + 62 + fcpvd3: fcp@fea3f000 { 63 + compatible = "renesas,fcpv"; 64 + reg = <0 0xfea3f000 0 0x200>; 65 + clocks = <&cpg CPG_MOD 600>; 66 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 67 + resets = <&cpg 600>; 68 + }; 69 + 70 + fdp1@fe948000 { 71 + compatible = "renesas,fdp1"; 72 + reg = <0 0xfe948000 0 0x2400>; 73 + interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; 74 + clocks = <&cpg CPG_MOD 117>; 75 + power-domains = <&sysc R8A7795_PD_A3VP>; 76 + resets = <&cpg 117>; 77 + renesas,fcp = <&fcpf2>; 78 + }; 79 + }; 80 + 81 + &du { 82 + compatible = "renesas,du-r8a7795"; 83 + vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; 84 + };
+4 -338
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
··· 9 9 * kind, whether express or implied. 10 10 */ 11 11 12 + #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 13 + 12 14 /dts-v1/; 13 15 #include "r8a7795.dtsi" 14 - #include <dt-bindings/gpio/gpio.h> 15 - #include <dt-bindings/input/input.h> 16 + #include "ulcb.dtsi" 16 17 17 18 / { 18 - model = "Renesas H3ULCB board based on r8a7795"; 19 + model = "Renesas H3ULCB board based on r8a7795 ES2.0+"; 19 20 compatible = "renesas,h3ulcb", "renesas,r8a7795"; 20 - 21 - aliases { 22 - serial0 = &scif2; 23 - ethernet0 = &avb; 24 - }; 25 - 26 - chosen { 27 - stdout-path = "serial0:115200n8"; 28 - }; 29 21 30 22 memory@48000000 { 31 23 device_type = "memory"; ··· 39 47 device_type = "memory"; 40 48 reg = <0x7 0x00000000 0x0 0x40000000>; 41 49 }; 42 - 43 - leds { 44 - compatible = "gpio-leds"; 45 - 46 - led5 { 47 - gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; 48 - }; 49 - led6 { 50 - gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; 51 - }; 52 - }; 53 - 54 - keyboard { 55 - compatible = "gpio-keys"; 56 - 57 - key-1 { 58 - linux,code = <KEY_1>; 59 - label = "SW3"; 60 - wakeup-source; 61 - debounce-interval = <20>; 62 - gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 63 - }; 64 - }; 65 - 66 - x12_clk: x12 { 67 - compatible = "fixed-clock"; 68 - #clock-cells = <0>; 69 - clock-frequency = <24576000>; 70 - }; 71 - 72 - reg_1p8v: regulator0 { 73 - compatible = "regulator-fixed"; 74 - regulator-name = "fixed-1.8V"; 75 - regulator-min-microvolt = <1800000>; 76 - regulator-max-microvolt = <1800000>; 77 - regulator-boot-on; 78 - regulator-always-on; 79 - }; 80 - 81 - reg_3p3v: regulator1 { 82 - compatible = "regulator-fixed"; 83 - regulator-name = "fixed-3.3V"; 84 - regulator-min-microvolt = <3300000>; 85 - regulator-max-microvolt = <3300000>; 86 - regulator-boot-on; 87 - regulator-always-on; 88 - }; 89 - 90 - vcc_sdhi0: regulator-vcc-sdhi0 { 91 - compatible = "regulator-fixed"; 92 - 93 - regulator-name = "SDHI0 Vcc"; 94 - regulator-min-microvolt = <3300000>; 95 - regulator-max-microvolt = <3300000>; 96 - 97 - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 98 - enable-active-high; 99 - }; 100 - 101 - vccq_sdhi0: regulator-vccq-sdhi0 { 102 - compatible = "regulator-gpio"; 103 - 104 - regulator-name = "SDHI0 VccQ"; 105 - regulator-min-microvolt = <1800000>; 106 - regulator-max-microvolt = <3300000>; 107 - 108 - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 109 - gpios-states = <1>; 110 - states = <3300000 1 111 - 1800000 0>; 112 - }; 113 - 114 - audio_clkout: audio-clkout { 115 - /* 116 - * This is same as <&rcar_sound 0> 117 - * but needed to avoid cs2000/rcar_sound probe dead-lock 118 - */ 119 - compatible = "fixed-clock"; 120 - #clock-cells = <0>; 121 - clock-frequency = <11289600>; 122 - }; 123 - 124 - rsnd_ak4613: sound { 125 - compatible = "simple-audio-card"; 126 - 127 - simple-audio-card,format = "left_j"; 128 - simple-audio-card,bitclock-master = <&sndcpu>; 129 - simple-audio-card,frame-master = <&sndcpu>; 130 - 131 - sndcpu: simple-audio-card,cpu { 132 - sound-dai = <&rcar_sound>; 133 - }; 134 - 135 - sndcodec: simple-audio-card,codec { 136 - sound-dai = <&ak4613>; 137 - }; 138 - }; 139 - }; 140 - 141 - &extal_clk { 142 - clock-frequency = <16666666>; 143 - }; 144 - 145 - &extalr_clk { 146 - clock-frequency = <32768>; 147 - }; 148 - 149 - &pfc { 150 - pinctrl-0 = <&scif_clk_pins>; 151 - pinctrl-names = "default"; 152 - 153 - scif2_pins: scif2 { 154 - groups = "scif2_data_a"; 155 - function = "scif2"; 156 - }; 157 - 158 - scif_clk_pins: scif_clk { 159 - groups = "scif_clk_a"; 160 - function = "scif_clk"; 161 - }; 162 - 163 - i2c2_pins: i2c2 { 164 - groups = "i2c2_a"; 165 - function = "i2c2"; 166 - }; 167 - 168 - avb_pins: avb { 169 - groups = "avb_mdc"; 170 - function = "avb"; 171 - }; 172 - 173 - sdhi0_pins: sd0 { 174 - groups = "sdhi0_data4", "sdhi0_ctrl"; 175 - function = "sdhi0"; 176 - power-source = <3300>; 177 - }; 178 - 179 - sdhi0_pins_uhs: sd0_uhs { 180 - groups = "sdhi0_data4", "sdhi0_ctrl"; 181 - function = "sdhi0"; 182 - power-source = <1800>; 183 - }; 184 - 185 - sdhi2_pins: sd2 { 186 - groups = "sdhi2_data8", "sdhi2_ctrl"; 187 - function = "sdhi2"; 188 - power-source = <3300>; 189 - }; 190 - 191 - sdhi2_pins_uhs: sd2_uhs { 192 - groups = "sdhi2_data8", "sdhi2_ctrl"; 193 - function = "sdhi2"; 194 - power-source = <1800>; 195 - }; 196 - 197 - sound_pins: sound { 198 - groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 199 - function = "ssi"; 200 - }; 201 - 202 - sound_clk_pins: sound-clk { 203 - groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 204 - "audio_clkout_a", "audio_clkout3_a"; 205 - function = "audio_clk"; 206 - }; 207 - 208 - usb1_pins: usb1 { 209 - groups = "usb1"; 210 - function = "usb1"; 211 - }; 212 - }; 213 - 214 - &scif2 { 215 - pinctrl-0 = <&scif2_pins>; 216 - pinctrl-names = "default"; 217 - 218 - status = "okay"; 219 - }; 220 - 221 - &scif_clk { 222 - clock-frequency = <14745600>; 223 - }; 224 - 225 - &i2c2 { 226 - pinctrl-0 = <&i2c2_pins>; 227 - pinctrl-names = "default"; 228 - 229 - status = "okay"; 230 - 231 - clock-frequency = <100000>; 232 - 233 - ak4613: codec@10 { 234 - compatible = "asahi-kasei,ak4613"; 235 - #sound-dai-cells = <0>; 236 - reg = <0x10>; 237 - clocks = <&rcar_sound 3>; 238 - 239 - asahi-kasei,in1-single-end; 240 - asahi-kasei,in2-single-end; 241 - asahi-kasei,out1-single-end; 242 - asahi-kasei,out2-single-end; 243 - asahi-kasei,out3-single-end; 244 - asahi-kasei,out4-single-end; 245 - asahi-kasei,out5-single-end; 246 - asahi-kasei,out6-single-end; 247 - }; 248 - 249 - cs2000: clk-multiplier@4f { 250 - #clock-cells = <0>; 251 - compatible = "cirrus,cs2000-cp"; 252 - reg = <0x4f>; 253 - clocks = <&audio_clkout>, <&x12_clk>; 254 - clock-names = "clk_in", "ref_clk"; 255 - 256 - assigned-clocks = <&cs2000>; 257 - assigned-clock-rates = <24576000>; /* 1/1 divide */ 258 - }; 259 - }; 260 - 261 - &rcar_sound { 262 - pinctrl-0 = <&sound_pins &sound_clk_pins>; 263 - pinctrl-names = "default"; 264 - 265 - /* Single DAI */ 266 - #sound-dai-cells = <0>; 267 - 268 - /* audio_clkout0/1/2/3 */ 269 - #clock-cells = <1>; 270 - clock-frequency = <11289600>; 271 - 272 - status = "okay"; 273 - 274 - /* update <audio_clk_b> to <cs2000> */ 275 - clocks = <&cpg CPG_MOD 1005>, 276 - <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 277 - <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 278 - <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 279 - <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 280 - <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 281 - <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 282 - <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 283 - <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 284 - <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 285 - <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 286 - <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 287 - <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 288 - <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 289 - <&audio_clk_a>, <&cs2000>, 290 - <&audio_clk_c>, 291 - <&cpg CPG_CORE R8A7795_CLK_S0D4>; 292 - 293 - rcar_sound,dai { 294 - dai0 { 295 - playback = <&ssi0 &src0 &dvc0>; 296 - capture = <&ssi1 &src1 &dvc1>; 297 - }; 298 - }; 299 - }; 300 - 301 - &sdhi0 { 302 - pinctrl-0 = <&sdhi0_pins>; 303 - pinctrl-1 = <&sdhi0_pins_uhs>; 304 - pinctrl-names = "default", "state_uhs"; 305 - 306 - vmmc-supply = <&vcc_sdhi0>; 307 - vqmmc-supply = <&vccq_sdhi0>; 308 - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 309 - bus-width = <4>; 310 - sd-uhs-sdr50; 311 - status = "okay"; 312 - }; 313 - 314 - &sdhi2 { 315 - /* used for on-board 8bit eMMC */ 316 - pinctrl-0 = <&sdhi2_pins>; 317 - pinctrl-1 = <&sdhi2_pins_uhs>; 318 - pinctrl-names = "default", "state_uhs"; 319 - 320 - vmmc-supply = <&reg_3p3v>; 321 - vqmmc-supply = <&reg_1p8v>; 322 - bus-width = <8>; 323 - non-removable; 324 - status = "okay"; 325 - }; 326 - 327 - &ssi1 { 328 - shared-pin; 329 - }; 330 - 331 - &wdt0 { 332 - timeout-sec = <60>; 333 - status = "okay"; 334 - }; 335 - 336 - &audio_clk_a { 337 - clock-frequency = <22579200>; 338 - }; 339 - 340 - &avb { 341 - pinctrl-0 = <&avb_pins>; 342 - pinctrl-names = "default"; 343 - renesas,no-ether-link; 344 - phy-handle = <&phy0>; 345 - status = "okay"; 346 - 347 - phy0: ethernet-phy@0 { 348 - rxc-skew-ps = <1500>; 349 - reg = <0>; 350 - interrupt-parent = <&gpio2>; 351 - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 352 - }; 353 - }; 354 - 355 - &usb2_phy1 { 356 - pinctrl-0 = <&usb1_pins>; 357 - pinctrl-names = "default"; 358 - 359 - status = "okay"; 360 - }; 361 - 362 - &ehci1 { 363 - status = "okay"; 364 - }; 365 - 366 - &ohci1 { 367 - status = "okay"; 368 50 };
+55 -524
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
··· 8 8 * kind, whether express or implied. 9 9 */ 10 10 11 - /* 12 - * SSI-AK4613 13 - * 14 - * This command is required when Playback/Capture 15 - * 16 - * amixer set "DVC Out" 100% 17 - * amixer set "DVC In" 100% 18 - * 19 - * You can use Mute 20 - * 21 - * amixer set "DVC Out Mute" on 22 - * amixer set "DVC In Mute" on 23 - * 24 - * You can use Volume Ramp 25 - * 26 - * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 27 - * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 28 - * amixer set "DVC Out Ramp" on 29 - * aplay xxx.wav & 30 - * amixer set "DVC Out" 80% // Volume Down 31 - * amixer set "DVC Out" 100% // Volume Up 32 - */ 11 + #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 33 12 34 13 /dts-v1/; 35 14 #include "r8a7795.dtsi" 36 - #include <dt-bindings/gpio/gpio.h> 15 + #include "salvator-x.dtsi" 37 16 38 17 / { 39 - model = "Renesas Salvator-X board based on r8a7795"; 18 + model = "Renesas Salvator-X board based on r8a7795 ES2.0+"; 40 19 compatible = "renesas,salvator-x", "renesas,r8a7795"; 41 - 42 - aliases { 43 - serial0 = &scif2; 44 - serial1 = &scif1; 45 - ethernet0 = &avb; 46 - }; 47 - 48 - chosen { 49 - bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 50 - stdout-path = "serial0:115200n8"; 51 - }; 52 20 53 21 memory@48000000 { 54 22 device_type = "memory"; ··· 24 56 reg = <0x0 0x48000000 0x0 0x38000000>; 25 57 }; 26 58 27 - x12_clk: x12 { 28 - compatible = "fixed-clock"; 29 - #clock-cells = <0>; 30 - clock-frequency = <24576000>; 59 + memory@500000000 { 60 + device_type = "memory"; 61 + reg = <0x5 0x00000000 0x0 0x40000000>; 31 62 }; 32 63 33 - reg_1p8v: regulator0 { 34 - compatible = "regulator-fixed"; 35 - regulator-name = "fixed-1.8V"; 36 - regulator-min-microvolt = <1800000>; 37 - regulator-max-microvolt = <1800000>; 38 - regulator-boot-on; 39 - regulator-always-on; 64 + memory@600000000 { 65 + device_type = "memory"; 66 + reg = <0x6 0x00000000 0x0 0x40000000>; 40 67 }; 41 68 42 - reg_3p3v: regulator1 { 43 - compatible = "regulator-fixed"; 44 - regulator-name = "fixed-3.3V"; 45 - regulator-min-microvolt = <3300000>; 46 - regulator-max-microvolt = <3300000>; 47 - regulator-boot-on; 48 - regulator-always-on; 49 - }; 50 - 51 - vcc_sdhi0: regulator-vcc-sdhi0 { 52 - compatible = "regulator-fixed"; 53 - 54 - regulator-name = "SDHI0 Vcc"; 55 - regulator-min-microvolt = <3300000>; 56 - regulator-max-microvolt = <3300000>; 57 - 58 - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 59 - enable-active-high; 60 - }; 61 - 62 - vccq_sdhi0: regulator-vccq-sdhi0 { 63 - compatible = "regulator-gpio"; 64 - 65 - regulator-name = "SDHI0 VccQ"; 66 - regulator-min-microvolt = <1800000>; 67 - regulator-max-microvolt = <3300000>; 68 - 69 - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 70 - gpios-states = <1>; 71 - states = <3300000 1 72 - 1800000 0>; 73 - }; 74 - 75 - vcc_sdhi3: regulator-vcc-sdhi3 { 76 - compatible = "regulator-fixed"; 77 - 78 - regulator-name = "SDHI3 Vcc"; 79 - regulator-min-microvolt = <3300000>; 80 - regulator-max-microvolt = <3300000>; 81 - 82 - gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; 83 - enable-active-high; 84 - }; 85 - 86 - vccq_sdhi3: regulator-vccq-sdhi3 { 87 - compatible = "regulator-gpio"; 88 - 89 - regulator-name = "SDHI3 VccQ"; 90 - regulator-min-microvolt = <1800000>; 91 - regulator-max-microvolt = <3300000>; 92 - 93 - gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 94 - gpios-states = <1>; 95 - states = <3300000 1 96 - 1800000 0>; 97 - }; 98 - 99 - vbus0_usb2: regulator-vbus0-usb2 { 100 - compatible = "regulator-fixed"; 101 - 102 - regulator-name = "USB20_VBUS0"; 103 - regulator-min-microvolt = <5000000>; 104 - regulator-max-microvolt = <5000000>; 105 - 106 - gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; 107 - enable-active-high; 108 - }; 109 - 110 - audio_clkout: audio_clkout { 111 - /* 112 - * This is same as <&rcar_sound 0> 113 - * but needed to avoid cs2000/rcar_sound probe dead-lock 114 - */ 115 - compatible = "fixed-clock"; 116 - #clock-cells = <0>; 117 - clock-frequency = <11289600>; 118 - }; 119 - 120 - rsnd_ak4613: sound { 121 - compatible = "simple-audio-card"; 122 - 123 - simple-audio-card,format = "left_j"; 124 - simple-audio-card,bitclock-master = <&sndcpu>; 125 - simple-audio-card,frame-master = <&sndcpu>; 126 - 127 - sndcpu: simple-audio-card,cpu { 128 - sound-dai = <&rcar_sound>; 129 - }; 130 - 131 - sndcodec: simple-audio-card,codec { 132 - sound-dai = <&ak4613>; 133 - }; 134 - }; 135 - 136 - vga-encoder { 137 - compatible = "adi,adv7123"; 138 - 139 - ports { 140 - #address-cells = <1>; 141 - #size-cells = <0>; 142 - 143 - port@0 { 144 - reg = <0>; 145 - adv7123_in: endpoint { 146 - remote-endpoint = <&du_out_rgb>; 147 - }; 148 - }; 149 - port@1 { 150 - reg = <1>; 151 - adv7123_out: endpoint { 152 - remote-endpoint = <&vga_in>; 153 - }; 154 - }; 155 - }; 156 - }; 157 - 158 - vga { 159 - compatible = "vga-connector"; 160 - 161 - port { 162 - vga_in: endpoint { 163 - remote-endpoint = <&adv7123_out>; 164 - }; 165 - }; 69 + memory@700000000 { 70 + device_type = "memory"; 71 + reg = <0x7 0x00000000 0x0 0x40000000>; 166 72 }; 167 73 }; 168 74 169 75 &du { 170 - pinctrl-0 = <&du_pins>; 171 - pinctrl-names = "default"; 76 + clocks = <&cpg CPG_MOD 724>, 77 + <&cpg CPG_MOD 723>, 78 + <&cpg CPG_MOD 722>, 79 + <&cpg CPG_MOD 721>, 80 + <&cpg CPG_MOD 727>, 81 + <&versaclock5 1>, 82 + <&x21_clk>, 83 + <&x22_clk>, 84 + <&versaclock5 2>; 85 + clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 86 + "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; 87 + }; 88 + 89 + &ehci2 { 90 + status = "okay"; 91 + }; 92 + 93 + &hdmi0 { 172 94 status = "okay"; 173 95 174 96 ports { 175 - port@0 { 176 - endpoint { 177 - remote-endpoint = <&adv7123_in>; 178 - }; 179 - }; 180 - port@3 { 181 - lvds_connector: endpoint { 97 + port@1 { 98 + reg = <1>; 99 + rcar_dw_hdmi0_out: endpoint { 100 + remote-endpoint = <&hdmi0_con>; 182 101 }; 183 102 }; 184 103 }; 185 104 }; 186 105 187 - &extal_clk { 188 - clock-frequency = <16666666>; 106 + &hdmi0_con { 107 + remote-endpoint = <&rcar_dw_hdmi0_out>; 189 108 }; 190 109 191 - &extalr_clk { 192 - clock-frequency = <32768>; 110 + &hdmi1 { 111 + status = "okay"; 112 + 113 + ports { 114 + port@1 { 115 + reg = <1>; 116 + rcar_dw_hdmi1_out: endpoint { 117 + remote-endpoint = <&hdmi1_con>; 118 + }; 119 + }; 120 + }; 121 + }; 122 + 123 + &hdmi1_con { 124 + remote-endpoint = <&rcar_dw_hdmi1_out>; 125 + }; 126 + 127 + &ohci2 { 128 + status = "okay"; 193 129 }; 194 130 195 131 &pfc { 196 - pinctrl-0 = <&scif_clk_pins>; 197 - pinctrl-names = "default"; 198 - 199 - scif1_pins: scif1 { 200 - groups = "scif1_data_a", "scif1_ctrl"; 201 - function = "scif1"; 202 - }; 203 - scif2_pins: scif2 { 204 - groups = "scif2_data_a"; 205 - function = "scif2"; 206 - }; 207 - scif_clk_pins: scif_clk { 208 - groups = "scif_clk_a"; 209 - function = "scif_clk"; 210 - }; 211 - 212 - i2c2_pins: i2c2 { 213 - groups = "i2c2_a"; 214 - function = "i2c2"; 215 - }; 216 - 217 - avb_pins: avb { 218 - mux { 219 - groups = "avb_link", "avb_phy_int", "avb_mdc", 220 - "avb_mii"; 221 - function = "avb"; 222 - }; 223 - 224 - pins_mdc { 225 - groups = "avb_mdc"; 226 - drive-strength = <24>; 227 - }; 228 - 229 - pins_mii_tx { 230 - pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", 231 - "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; 232 - drive-strength = <12>; 233 - }; 234 - }; 235 - 236 - du_pins: du { 237 - groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; 238 - function = "du"; 239 - }; 240 - 241 - sdhi0_pins: sd0 { 242 - groups = "sdhi0_data4", "sdhi0_ctrl"; 243 - function = "sdhi0"; 244 - power-source = <3300>; 245 - }; 246 - 247 - sdhi0_pins_uhs: sd0_uhs { 248 - groups = "sdhi0_data4", "sdhi0_ctrl"; 249 - function = "sdhi0"; 250 - power-source = <1800>; 251 - }; 252 - 253 - sdhi2_pins: sd2 { 254 - groups = "sdhi2_data8", "sdhi2_ctrl"; 255 - function = "sdhi2"; 256 - power-source = <3300>; 257 - }; 258 - 259 - sdhi2_pins_uhs: sd2_uhs { 260 - groups = "sdhi2_data8", "sdhi2_ctrl"; 261 - function = "sdhi2"; 262 - power-source = <1800>; 263 - }; 264 - 265 - sdhi3_pins: sd3 { 266 - groups = "sdhi3_data4", "sdhi3_ctrl"; 267 - function = "sdhi3"; 268 - power-source = <3300>; 269 - }; 270 - 271 - sdhi3_pins_uhs: sd3_uhs { 272 - groups = "sdhi3_data4", "sdhi3_ctrl"; 273 - function = "sdhi3"; 274 - power-source = <1800>; 275 - }; 276 - 277 - sound_pins: sound { 278 - groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 279 - function = "ssi"; 280 - }; 281 - 282 - sound_clk_pins: sound_clk { 283 - groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 284 - "audio_clkout_a", "audio_clkout3_a"; 285 - function = "audio_clk"; 286 - }; 287 - 288 - usb0_pins: usb0 { 289 - groups = "usb0"; 290 - function = "usb0"; 291 - }; 292 - 293 - usb1_pins: usb1 { 294 - mux { 295 - groups = "usb1"; 296 - function = "usb1"; 297 - }; 298 - 299 - ovc { 300 - pins = "GP_6_27"; 301 - bias-pull-up; 302 - }; 303 - 304 - pwen { 305 - pins = "GP_6_26"; 306 - bias-pull-down; 307 - }; 308 - }; 309 - 310 132 usb2_pins: usb2 { 311 133 groups = "usb2"; 312 134 function = "usb2"; 313 - }; 314 - }; 315 - 316 - &scif1 { 317 - pinctrl-0 = <&scif1_pins>; 318 - pinctrl-names = "default"; 319 - 320 - uart-has-rtscts; 321 - status = "okay"; 322 - }; 323 - 324 - &scif2 { 325 - pinctrl-0 = <&scif2_pins>; 326 - pinctrl-names = "default"; 327 - 328 - status = "okay"; 329 - }; 330 - 331 - &scif_clk { 332 - clock-frequency = <14745600>; 333 - }; 334 - 335 - &i2c2 { 336 - pinctrl-0 = <&i2c2_pins>; 337 - pinctrl-names = "default"; 338 - 339 - status = "okay"; 340 - 341 - clock-frequency = <100000>; 342 - 343 - ak4613: codec@10 { 344 - compatible = "asahi-kasei,ak4613"; 345 - #sound-dai-cells = <0>; 346 - reg = <0x10>; 347 - clocks = <&rcar_sound 3>; 348 - 349 - asahi-kasei,in1-single-end; 350 - asahi-kasei,in2-single-end; 351 - asahi-kasei,out1-single-end; 352 - asahi-kasei,out2-single-end; 353 - asahi-kasei,out3-single-end; 354 - asahi-kasei,out4-single-end; 355 - asahi-kasei,out5-single-end; 356 - asahi-kasei,out6-single-end; 357 - }; 358 - 359 - cs2000: clk_multiplier@4f { 360 - #clock-cells = <0>; 361 - compatible = "cirrus,cs2000-cp"; 362 - reg = <0x4f>; 363 - clocks = <&audio_clkout>, <&x12_clk>; 364 - clock-names = "clk_in", "ref_clk"; 365 - 366 - assigned-clocks = <&cs2000>; 367 - assigned-clock-rates = <24576000>; /* 1/1 divide */ 368 - }; 369 - }; 370 - 371 - &rcar_sound { 372 - pinctrl-0 = <&sound_pins &sound_clk_pins>; 373 - pinctrl-names = "default"; 374 - 375 - /* Single DAI */ 376 - #sound-dai-cells = <0>; 377 - 378 - /* audio_clkout0/1/2/3 */ 379 - #clock-cells = <1>; 380 - clock-frequency = <11289600>; 381 - 382 - status = "okay"; 383 - 384 - /* update <audio_clk_b> to <cs2000> */ 385 - clocks = <&cpg CPG_MOD 1005>, 386 - <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 387 - <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 388 - <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 389 - <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 390 - <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 391 - <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 392 - <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 393 - <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 394 - <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 395 - <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 396 - <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 397 - <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 398 - <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 399 - <&audio_clk_a>, <&cs2000>, 400 - <&audio_clk_c>, 401 - <&cpg CPG_CORE R8A7795_CLK_S0D4>; 402 - 403 - rcar_sound,dai { 404 - dai0 { 405 - playback = <&ssi0 &src0 &dvc0>; 406 - capture = <&ssi1 &src1 &dvc1>; 407 - }; 408 135 }; 409 136 }; 410 137 ··· 107 444 status = "okay"; 108 445 }; 109 446 110 - &sdhi0 { 111 - pinctrl-0 = <&sdhi0_pins>; 112 - pinctrl-1 = <&sdhi0_pins_uhs>; 113 - pinctrl-names = "default", "state_uhs"; 114 - 115 - vmmc-supply = <&vcc_sdhi0>; 116 - vqmmc-supply = <&vccq_sdhi0>; 117 - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 118 - wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 119 - bus-width = <4>; 120 - sd-uhs-sdr50; 121 - status = "okay"; 122 - }; 123 - 124 - &sdhi2 { 125 - /* used for on-board 8bit eMMC */ 126 - pinctrl-0 = <&sdhi2_pins>; 127 - pinctrl-1 = <&sdhi2_pins_uhs>; 128 - pinctrl-names = "default", "state_uhs"; 129 - 130 - vmmc-supply = <&reg_3p3v>; 131 - vqmmc-supply = <&reg_1p8v>; 132 - bus-width = <8>; 133 - non-removable; 134 - status = "okay"; 135 - }; 136 - 137 - &sdhi3 { 138 - pinctrl-0 = <&sdhi3_pins>; 139 - pinctrl-1 = <&sdhi3_pins_uhs>; 140 - pinctrl-names = "default", "state_uhs"; 141 - 142 - vmmc-supply = <&vcc_sdhi3>; 143 - vqmmc-supply = <&vccq_sdhi3>; 144 - cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; 145 - wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 146 - bus-width = <4>; 147 - sd-uhs-sdr50; 148 - status = "okay"; 149 - }; 150 - 151 - &ssi1 { 152 - shared-pin; 153 - }; 154 - 155 - &wdt0 { 156 - timeout-sec = <60>; 157 - status = "okay"; 158 - }; 159 - 160 - &audio_clk_a { 161 - clock-frequency = <22579200>; 162 - }; 163 - 164 - &i2c_dvfs { 165 - status = "okay"; 166 - }; 167 - 168 - &avb { 169 - pinctrl-0 = <&avb_pins>; 170 - pinctrl-names = "default"; 171 - renesas,no-ether-link; 172 - phy-handle = <&phy0>; 173 - status = "okay"; 174 - 175 - phy0: ethernet-phy@0 { 176 - rxc-skew-ps = <1500>; 177 - reg = <0>; 178 - interrupt-parent = <&gpio2>; 179 - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 180 - }; 181 - }; 182 - 183 - &xhci0 { 184 - status = "okay"; 185 - }; 186 - 187 - &usb2_phy0 { 188 - pinctrl-0 = <&usb0_pins>; 189 - pinctrl-names = "default"; 190 - 191 - vbus-supply = <&vbus0_usb2>; 192 - status = "okay"; 193 - }; 194 - 195 - &usb2_phy1 { 196 - pinctrl-0 = <&usb1_pins>; 197 - pinctrl-names = "default"; 198 - 199 - status = "okay"; 200 - }; 201 - 202 447 &usb2_phy2 { 203 448 pinctrl-0 = <&usb2_pins>; 204 449 pinctrl-names = "default"; 205 450 206 - status = "okay"; 207 - }; 208 - 209 - &ehci0 { 210 - status = "okay"; 211 - }; 212 - 213 - &ehci1 { 214 - status = "okay"; 215 - }; 216 - 217 - &ehci2 { 218 - status = "okay"; 219 - }; 220 - 221 - &ohci0 { 222 - status = "okay"; 223 - }; 224 - 225 - &ohci1 { 226 - status = "okay"; 227 - }; 228 - 229 - &ohci2 { 230 - status = "okay"; 231 - }; 232 - 233 - &hsusb { 234 - status = "okay"; 235 - }; 236 - 237 - &pcie_bus_clk { 238 - clock-frequency = <100000000>; 239 - }; 240 - 241 - &pciec0 { 242 - status = "okay"; 243 - }; 244 - 245 - &pciec1 { 246 451 status = "okay"; 247 452 };
+109
arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts
··· 1 + /* 2 + * Device Tree Source for the Salvator-X 2nd version board 3 + * 4 + * Copyright (C) 2015-2017 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #define CPG_AUDIO_CLK_I R8A7795_CLK_S0D4 12 + 13 + /dts-v1/; 14 + #include "r8a7795.dtsi" 15 + #include "salvator-xs.dtsi" 16 + 17 + / { 18 + model = "Renesas Salvator-X 2nd version board based on r8a7795 ES2.0+"; 19 + compatible = "renesas,salvator-xs", "renesas,r8a7795"; 20 + 21 + memory@48000000 { 22 + device_type = "memory"; 23 + /* first 128MB is reserved for secure area. */ 24 + reg = <0x0 0x48000000 0x0 0x38000000>; 25 + }; 26 + 27 + memory@500000000 { 28 + device_type = "memory"; 29 + reg = <0x5 0x00000000 0x0 0x40000000>; 30 + }; 31 + 32 + memory@600000000 { 33 + device_type = "memory"; 34 + reg = <0x6 0x00000000 0x0 0x40000000>; 35 + }; 36 + 37 + memory@700000000 { 38 + device_type = "memory"; 39 + reg = <0x7 0x00000000 0x0 0x40000000>; 40 + }; 41 + }; 42 + 43 + &du { 44 + clocks = <&cpg CPG_MOD 724>, 45 + <&cpg CPG_MOD 723>, 46 + <&cpg CPG_MOD 722>, 47 + <&cpg CPG_MOD 721>, 48 + <&cpg CPG_MOD 727>, 49 + <&x21_clk>, 50 + <&x22_clk>; 51 + clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 52 + "dclkin.1", "dclkin.2"; 53 + }; 54 + 55 + &ehci2 { 56 + status = "okay"; 57 + }; 58 + 59 + &hdmi0 { 60 + status = "okay"; 61 + 62 + ports { 63 + port@1 { 64 + reg = <1>; 65 + rcar_dw_hdmi0_out: endpoint { 66 + remote-endpoint = <&hdmi0_con>; 67 + }; 68 + }; 69 + }; 70 + }; 71 + 72 + &hdmi0_con { 73 + remote-endpoint = <&rcar_dw_hdmi0_out>; 74 + }; 75 + 76 + &hdmi1 { 77 + status = "okay"; 78 + 79 + ports { 80 + port@1 { 81 + reg = <1>; 82 + rcar_dw_hdmi1_out: endpoint { 83 + remote-endpoint = <&hdmi1_con>; 84 + }; 85 + }; 86 + }; 87 + }; 88 + 89 + &hdmi1_con { 90 + remote-endpoint = <&rcar_dw_hdmi1_out>; 91 + }; 92 + 93 + &ohci2 { 94 + status = "okay"; 95 + }; 96 + 97 + &pfc { 98 + usb2_pins: usb2 { 99 + groups = "usb2"; 100 + function = "usb2"; 101 + }; 102 + }; 103 + 104 + &usb2_phy2 { 105 + pinctrl-0 = <&usb2_pins>; 106 + pinctrl-names = "default"; 107 + 108 + status = "okay"; 109 + };
+64 -69
arch/arm64/boot/dts/renesas/r8a7795.dtsi
··· 182 182 clock-frequency = <0>; 183 183 }; 184 184 185 - soc { 185 + soc: soc { 186 186 compatible = "simple-bus"; 187 187 interrupt-parent = <&gic>; 188 188 ··· 398 398 #power-domain-cells = <1>; 399 399 }; 400 400 401 - pfc: pfc@e6060000 { 401 + pfc: pin-controller@e6060000 { 402 402 compatible = "renesas,pfc-r8a7795"; 403 403 reg = <0 0xe6060000 0 0x50c>; 404 404 }; ··· 883 883 clocks = <&cpg CPG_MOD 926>; 884 884 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 885 885 resets = <&cpg 926>; 886 + dmas = <&dmac0 0x11>, <&dmac0 0x10>; 887 + dma-names = "tx", "rx"; 886 888 status = "disabled"; 887 889 }; 888 890 ··· 1120 1118 "dvc.0", "dvc.1", 1121 1119 "clk_a", "clk_b", "clk_c", "clk_i"; 1122 1120 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1121 + resets = <&cpg 1005>, 1122 + <&cpg 1006>, <&cpg 1007>, 1123 + <&cpg 1008>, <&cpg 1009>, 1124 + <&cpg 1010>, <&cpg 1011>, 1125 + <&cpg 1012>, <&cpg 1013>, 1126 + <&cpg 1014>, <&cpg 1015>; 1127 + reset-names = "ssi-all", 1128 + "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1129 + "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1130 + "ssi.1", "ssi.0"; 1123 1131 status = "disabled"; 1124 1132 1125 1133 rcar_sound,dvc { ··· 1283 1271 clocks = <&cpg CPG_MOD 328>; 1284 1272 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1285 1273 resets = <&cpg 328>; 1286 - status = "disabled"; 1287 - }; 1288 - 1289 - xhci1: usb@ee0400000 { 1290 - compatible = "renesas,xhci-r8a7795", "renesas,rcar-gen3-xhci"; 1291 - reg = <0 0xee040000 0 0xc00>; 1292 - interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1293 - clocks = <&cpg CPG_MOD 327>; 1294 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1295 - resets = <&cpg 327>; 1296 1274 status = "disabled"; 1297 1275 }; 1298 1276 ··· 1570 1568 resets = <&cpg 614>; 1571 1569 }; 1572 1570 1573 - fcpf2: fcp@fe952000 { 1574 - compatible = "renesas,fcpf"; 1575 - reg = <0 0xfe952000 0 0x200>; 1576 - clocks = <&cpg CPG_MOD 613>; 1577 - power-domains = <&sysc R8A7795_PD_A3VP>; 1578 - resets = <&cpg 613>; 1579 - }; 1580 - 1581 1571 vspbd: vsp@fe960000 { 1582 1572 compatible = "renesas,vsp2"; 1583 1573 reg = <0 0xfe960000 0 0x8000>; ··· 1625 1631 clocks = <&cpg CPG_MOD 610>; 1626 1632 power-domains = <&sysc R8A7795_PD_A3VP>; 1627 1633 resets = <&cpg 610>; 1628 - }; 1629 - 1630 - vspi2: vsp@fe9c0000 { 1631 - compatible = "renesas,vsp2"; 1632 - reg = <0 0xfe9c0000 0 0x8000>; 1633 - interrupts = <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>; 1634 - clocks = <&cpg CPG_MOD 629>; 1635 - power-domains = <&sysc R8A7795_PD_A3VP>; 1636 - resets = <&cpg 629>; 1637 - 1638 - renesas,fcp = <&fcpvi2>; 1639 - }; 1640 - 1641 - fcpvi2: fcp@fe9cf000 { 1642 - compatible = "renesas,fcpv"; 1643 - reg = <0 0xfe9cf000 0 0x200>; 1644 - clocks = <&cpg CPG_MOD 609>; 1645 - power-domains = <&sysc R8A7795_PD_A3VP>; 1646 - resets = <&cpg 609>; 1647 1634 }; 1648 1635 1649 1636 vspd0: vsp@fea20000 { ··· 1684 1709 resets = <&cpg 601>; 1685 1710 }; 1686 1711 1687 - vspd3: vsp@fea38000 { 1688 - compatible = "renesas,vsp2"; 1689 - reg = <0 0xfea38000 0 0x4000>; 1690 - interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>; 1691 - clocks = <&cpg CPG_MOD 620>; 1692 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1693 - resets = <&cpg 620>; 1694 - 1695 - renesas,fcp = <&fcpvd3>; 1696 - }; 1697 - 1698 - fcpvd3: fcp@fea3f000 { 1699 - compatible = "renesas,fcpv"; 1700 - reg = <0 0xfea3f000 0 0x200>; 1701 - clocks = <&cpg CPG_MOD 600>; 1702 - power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1703 - resets = <&cpg 600>; 1704 - }; 1705 - 1706 1712 fdp1@fe940000 { 1707 1713 compatible = "renesas,fdp1"; 1708 1714 reg = <0 0xfe940000 0 0x2400>; ··· 1704 1748 renesas,fcp = <&fcpf1>; 1705 1749 }; 1706 1750 1707 - fdp1@fe948000 { 1708 - compatible = "renesas,fdp1"; 1709 - reg = <0 0xfe948000 0 0x2400>; 1710 - interrupts = <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>; 1711 - clocks = <&cpg CPG_MOD 117>; 1712 - power-domains = <&sysc R8A7795_PD_A3VP>; 1713 - resets = <&cpg 117>; 1714 - renesas,fcp = <&fcpf2>; 1751 + hdmi0: hdmi0@fead0000 { 1752 + compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; 1753 + reg = <0 0xfead0000 0 0x10000>; 1754 + interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>; 1755 + clocks = <&cpg CPG_MOD 729>, <&cpg CPG_CORE R8A7795_CLK_HDMI>; 1756 + clock-names = "iahb", "isfr"; 1757 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1758 + resets = <&cpg 729>; 1759 + status = "disabled"; 1760 + 1761 + ports { 1762 + #address-cells = <1>; 1763 + #size-cells = <0>; 1764 + port@0 { 1765 + reg = <0>; 1766 + dw_hdmi0_in: endpoint { 1767 + remote-endpoint = <&du_out_hdmi0>; 1768 + }; 1769 + }; 1770 + port@1 { 1771 + reg = <1>; 1772 + }; 1773 + }; 1774 + }; 1775 + 1776 + hdmi1: hdmi1@feae0000 { 1777 + compatible = "renesas,r8a7795-hdmi", "renesas,rcar-gen3-hdmi"; 1778 + reg = <0 0xfeae0000 0 0x10000>; 1779 + interrupts = <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH>; 1780 + clocks = <&cpg CPG_MOD 728>, <&cpg CPG_CORE R8A7795_CLK_HDMI>; 1781 + clock-names = "iahb", "isfr"; 1782 + power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 1783 + resets = <&cpg 728>; 1784 + status = "disabled"; 1785 + 1786 + ports { 1787 + #address-cells = <1>; 1788 + #size-cells = <0>; 1789 + port@0 { 1790 + reg = <0>; 1791 + dw_hdmi1_in: endpoint { 1792 + remote-endpoint = <&du_out_hdmi1>; 1793 + }; 1794 + }; 1795 + port@1 { 1796 + reg = <1>; 1797 + }; 1798 + }; 1715 1799 }; 1716 1800 1717 1801 du: display@feb00000 { 1718 - compatible = "renesas,du-r8a7795"; 1719 1802 reg = <0 0xfeb00000 0 0x80000>, 1720 1803 <0 0xfeb90000 0 0x14>; 1721 1804 reg-names = "du", "lvds.0"; ··· 1770 1775 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0"; 1771 1776 status = "disabled"; 1772 1777 1773 - vsps = <&vspd0 &vspd1 &vspd2 &vspd3>; 1774 - 1775 1778 ports { 1776 1779 #address-cells = <1>; 1777 1780 #size-cells = <0>; ··· 1782 1789 port@1 { 1783 1790 reg = <1>; 1784 1791 du_out_hdmi0: endpoint { 1792 + remote-endpoint = <&dw_hdmi0_in>; 1785 1793 }; 1786 1794 }; 1787 1795 port@2 { 1788 1796 reg = <2>; 1789 1797 du_out_hdmi1: endpoint { 1798 + remote-endpoint = <&dw_hdmi1_in>; 1790 1799 }; 1791 1800 }; 1792 1801 port@3 {
+6 -162
arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
··· 9 9 * kind, whether express or implied. 10 10 */ 11 11 12 + #define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 13 + 12 14 /dts-v1/; 13 15 #include "r8a7796.dtsi" 14 - #include <dt-bindings/gpio/gpio.h> 15 - #include <dt-bindings/input/input.h> 16 + #include "ulcb.dtsi" 16 17 17 18 / { 18 19 model = "Renesas M3ULCB board based on r8a7796"; 19 20 compatible = "renesas,m3ulcb", "renesas,r8a7796"; 20 - 21 - aliases { 22 - serial0 = &scif2; 23 - }; 24 - 25 - chosen { 26 - stdout-path = "serial0:115200n8"; 27 - }; 28 21 29 22 memory@48000000 { 30 23 device_type = "memory"; ··· 25 32 reg = <0x0 0x48000000 0x0 0x38000000>; 26 33 }; 27 34 28 - leds { 29 - compatible = "gpio-leds"; 30 - 31 - led5 { 32 - gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; 33 - }; 34 - led6 { 35 - gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; 36 - }; 35 + memory@600000000 { 36 + device_type = "memory"; 37 + reg = <0x6 0x00000000 0x0 0x40000000>; 37 38 }; 38 - 39 - keyboard { 40 - compatible = "gpio-keys"; 41 - 42 - key-1 { 43 - linux,code = <KEY_1>; 44 - label = "SW3"; 45 - wakeup-source; 46 - debounce-interval = <20>; 47 - gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 48 - }; 49 - }; 50 - 51 - reg_1p8v: regulator0 { 52 - compatible = "regulator-fixed"; 53 - regulator-name = "fixed-1.8V"; 54 - regulator-min-microvolt = <1800000>; 55 - regulator-max-microvolt = <1800000>; 56 - regulator-boot-on; 57 - regulator-always-on; 58 - }; 59 - 60 - reg_3p3v: regulator1 { 61 - compatible = "regulator-fixed"; 62 - regulator-name = "fixed-3.3V"; 63 - regulator-min-microvolt = <3300000>; 64 - regulator-max-microvolt = <3300000>; 65 - regulator-boot-on; 66 - regulator-always-on; 67 - }; 68 - 69 - vcc_sdhi0: regulator-vcc-sdhi0 { 70 - compatible = "regulator-fixed"; 71 - 72 - regulator-name = "SDHI0 Vcc"; 73 - regulator-min-microvolt = <3300000>; 74 - regulator-max-microvolt = <3300000>; 75 - 76 - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 77 - enable-active-high; 78 - }; 79 - 80 - vccq_sdhi0: regulator-vccq-sdhi0 { 81 - compatible = "regulator-gpio"; 82 - 83 - regulator-name = "SDHI0 VccQ"; 84 - regulator-min-microvolt = <1800000>; 85 - regulator-max-microvolt = <3300000>; 86 - 87 - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 88 - gpios-states = <1>; 89 - states = <3300000 1 90 - 1800000 0>; 91 - }; 92 - }; 93 - 94 - &extal_clk { 95 - clock-frequency = <16666666>; 96 - }; 97 - 98 - &extalr_clk { 99 - clock-frequency = <32768>; 100 - }; 101 - 102 - &pfc { 103 - pinctrl-0 = <&scif_clk_pins>; 104 - pinctrl-names = "default"; 105 - 106 - scif2_pins: scif2 { 107 - groups = "scif2_data_a"; 108 - function = "scif2"; 109 - }; 110 - 111 - scif_clk_pins: scif_clk { 112 - groups = "scif_clk_a"; 113 - function = "scif_clk"; 114 - }; 115 - 116 - sdhi0_pins: sd0 { 117 - groups = "sdhi0_data4", "sdhi0_ctrl"; 118 - function = "sdhi0"; 119 - power-source = <3300>; 120 - }; 121 - 122 - sdhi0_pins_uhs: sd0_uhs { 123 - groups = "sdhi0_data4", "sdhi0_ctrl"; 124 - function = "sdhi0"; 125 - power-source = <1800>; 126 - }; 127 - 128 - sdhi2_pins: sd2 { 129 - groups = "sdhi2_data8", "sdhi2_ctrl"; 130 - function = "sdhi2"; 131 - power-source = <3300>; 132 - }; 133 - 134 - sdhi2_pins_uhs: sd2_uhs { 135 - groups = "sdhi2_data8", "sdhi2_ctrl"; 136 - function = "sdhi2"; 137 - power-source = <1800>; 138 - }; 139 - }; 140 - 141 - &sdhi0 { 142 - pinctrl-0 = <&sdhi0_pins>; 143 - pinctrl-1 = <&sdhi0_pins_uhs>; 144 - pinctrl-names = "default", "state_uhs"; 145 - 146 - vmmc-supply = <&vcc_sdhi0>; 147 - vqmmc-supply = <&vccq_sdhi0>; 148 - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 149 - bus-width = <4>; 150 - sd-uhs-sdr50; 151 - status = "okay"; 152 - }; 153 - 154 - &sdhi2 { 155 - /* used for on-board 8bit eMMC */ 156 - pinctrl-0 = <&sdhi2_pins>; 157 - pinctrl-1 = <&sdhi2_pins_uhs>; 158 - pinctrl-names = "default", "state_uhs"; 159 - 160 - vmmc-supply = <&reg_3p3v>; 161 - vqmmc-supply = <&reg_1p8v>; 162 - bus-width = <8>; 163 - non-removable; 164 - status = "okay"; 165 - }; 166 - 167 - &scif2 { 168 - pinctrl-0 = <&scif2_pins>; 169 - pinctrl-names = "default"; 170 - 171 - status = "okay"; 172 - }; 173 - 174 - &scif_clk { 175 - clock-frequency = <14745600>; 176 - }; 177 - 178 - &wdt0 { 179 - timeout-sec = <60>; 180 - status = "okay"; 181 39 };
+3 -241
arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
··· 8 8 * kind, whether express or implied. 9 9 */ 10 10 11 + #define CPG_AUDIO_CLK_I R8A7796_CLK_S0D4 12 + 11 13 /dts-v1/; 12 14 #include "r8a7796.dtsi" 13 - #include <dt-bindings/gpio/gpio.h> 15 + #include "salvator-x.dtsi" 14 16 15 17 / { 16 18 model = "Renesas Salvator-X board based on r8a7796"; 17 19 compatible = "renesas,salvator-x", "renesas,r8a7796"; 18 - 19 - aliases { 20 - serial0 = &scif2; 21 - serial1 = &scif1; 22 - ethernet0 = &avb; 23 - }; 24 - 25 - chosen { 26 - bootargs = "ignore_loglevel"; 27 - stdout-path = "serial0:115200n8"; 28 - }; 29 20 30 21 memory@48000000 { 31 22 device_type = "memory"; ··· 28 37 device_type = "memory"; 29 38 reg = <0x6 0x00000000 0x0 0x80000000>; 30 39 }; 31 - 32 - reg_1p8v: regulator0 { 33 - compatible = "regulator-fixed"; 34 - regulator-name = "fixed-1.8V"; 35 - regulator-min-microvolt = <1800000>; 36 - regulator-max-microvolt = <1800000>; 37 - regulator-boot-on; 38 - regulator-always-on; 39 - }; 40 - 41 - reg_3p3v: regulator1 { 42 - compatible = "regulator-fixed"; 43 - regulator-name = "fixed-3.3V"; 44 - regulator-min-microvolt = <3300000>; 45 - regulator-max-microvolt = <3300000>; 46 - regulator-boot-on; 47 - regulator-always-on; 48 - }; 49 - 50 - vcc_sdhi0: regulator-vcc-sdhi0 { 51 - compatible = "regulator-fixed"; 52 - 53 - regulator-name = "SDHI0 Vcc"; 54 - regulator-min-microvolt = <3300000>; 55 - regulator-max-microvolt = <3300000>; 56 - 57 - gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 58 - enable-active-high; 59 - }; 60 - 61 - vccq_sdhi0: regulator-vccq-sdhi0 { 62 - compatible = "regulator-gpio"; 63 - 64 - regulator-name = "SDHI0 VccQ"; 65 - regulator-min-microvolt = <1800000>; 66 - regulator-max-microvolt = <3300000>; 67 - 68 - gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 69 - gpios-states = <1>; 70 - states = <3300000 1 71 - 1800000 0>; 72 - }; 73 - 74 - vcc_sdhi3: regulator-vcc-sdhi3 { 75 - compatible = "regulator-fixed"; 76 - 77 - regulator-name = "SDHI3 Vcc"; 78 - regulator-min-microvolt = <3300000>; 79 - regulator-max-microvolt = <3300000>; 80 - 81 - gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; 82 - enable-active-high; 83 - }; 84 - 85 - vccq_sdhi3: regulator-vccq-sdhi3 { 86 - compatible = "regulator-gpio"; 87 - 88 - regulator-name = "SDHI3 VccQ"; 89 - regulator-min-microvolt = <1800000>; 90 - regulator-max-microvolt = <3300000>; 91 - 92 - gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 93 - gpios-states = <1>; 94 - states = <3300000 1 95 - 1800000 0>; 96 - }; 97 - }; 98 - 99 - &pfc { 100 - pinctrl-0 = <&scif_clk_pins>; 101 - pinctrl-names = "default"; 102 - 103 - avb_pins: avb { 104 - groups = "avb_mdc"; 105 - function = "avb"; 106 - }; 107 - 108 - scif1_pins: scif1 { 109 - groups = "scif1_data_a", "scif1_ctrl"; 110 - function = "scif1"; 111 - }; 112 - 113 - scif2_pins: scif2 { 114 - groups = "scif2_data_a"; 115 - function = "scif2"; 116 - }; 117 - scif_clk_pins: scif_clk { 118 - groups = "scif_clk_a"; 119 - function = "scif_clk"; 120 - }; 121 - 122 - i2c2_pins: i2c2 { 123 - groups = "i2c2_a"; 124 - function = "i2c2"; 125 - }; 126 - 127 - sdhi0_pins: sd0 { 128 - groups = "sdhi0_data4", "sdhi0_ctrl"; 129 - function = "sdhi0"; 130 - power-source = <3300>; 131 - }; 132 - 133 - sdhi0_pins_uhs: sd0_uhs { 134 - groups = "sdhi0_data4", "sdhi0_ctrl"; 135 - function = "sdhi0"; 136 - power-source = <1800>; 137 - }; 138 - 139 - sdhi2_pins: sd2 { 140 - groups = "sdhi2_data8", "sdhi2_ctrl"; 141 - function = "sdhi2"; 142 - power-source = <3300>; 143 - }; 144 - 145 - sdhi2_pins_uhs: sd2_uhs { 146 - groups = "sdhi2_data8", "sdhi2_ctrl"; 147 - function = "sdhi2"; 148 - power-source = <1800>; 149 - }; 150 - 151 - sdhi3_pins: sd3 { 152 - groups = "sdhi3_data4", "sdhi3_ctrl"; 153 - function = "sdhi3"; 154 - power-source = <3300>; 155 - }; 156 - 157 - sdhi3_pins_uhs: sd3_uhs { 158 - groups = "sdhi3_data4", "sdhi3_ctrl"; 159 - function = "sdhi3"; 160 - power-source = <1800>; 161 - }; 162 - }; 163 - 164 - &avb { 165 - pinctrl-0 = <&avb_pins>; 166 - pinctrl-names = "default"; 167 - renesas,no-ether-link; 168 - phy-handle = <&phy0>; 169 - status = "okay"; 170 - 171 - phy0: ethernet-phy@0 { 172 - rxc-skew-ps = <1500>; 173 - reg = <0>; 174 - interrupt-parent = <&gpio2>; 175 - interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 176 - }; 177 - }; 178 - 179 - &extal_clk { 180 - clock-frequency = <16666666>; 181 - }; 182 - 183 - &extalr_clk { 184 - clock-frequency = <32768>; 185 - }; 186 - 187 - &sdhi0 { 188 - pinctrl-0 = <&sdhi0_pins>; 189 - pinctrl-1 = <&sdhi0_pins_uhs>; 190 - pinctrl-names = "default", "state_uhs"; 191 - 192 - vmmc-supply = <&vcc_sdhi0>; 193 - vqmmc-supply = <&vccq_sdhi0>; 194 - cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 195 - wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 196 - bus-width = <4>; 197 - sd-uhs-sdr50; 198 - status = "okay"; 199 - }; 200 - 201 - &sdhi2 { 202 - /* used for on-board 8bit eMMC */ 203 - pinctrl-0 = <&sdhi2_pins>; 204 - pinctrl-1 = <&sdhi2_pins_uhs>; 205 - pinctrl-names = "default", "state_uhs"; 206 - 207 - vmmc-supply = <&reg_3p3v>; 208 - vqmmc-supply = <&reg_1p8v>; 209 - bus-width = <8>; 210 - non-removable; 211 - status = "okay"; 212 - }; 213 - 214 - &sdhi3 { 215 - pinctrl-0 = <&sdhi3_pins>; 216 - pinctrl-1 = <&sdhi3_pins_uhs>; 217 - pinctrl-names = "default", "state_uhs"; 218 - 219 - vmmc-supply = <&vcc_sdhi3>; 220 - vqmmc-supply = <&vccq_sdhi3>; 221 - cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; 222 - wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 223 - bus-width = <4>; 224 - sd-uhs-sdr50; 225 - status = "okay"; 226 - }; 227 - 228 - &scif1 { 229 - pinctrl-0 = <&scif1_pins>; 230 - pinctrl-names = "default"; 231 - 232 - uart-has-rtscts; 233 - status = "okay"; 234 - }; 235 - 236 - &scif2 { 237 - pinctrl-0 = <&scif2_pins>; 238 - pinctrl-names = "default"; 239 - status = "okay"; 240 - }; 241 - 242 - &scif_clk { 243 - clock-frequency = <14745600>; 244 - }; 245 - 246 - &i2c2 { 247 - pinctrl-0 = <&i2c2_pins>; 248 - pinctrl-names = "default"; 249 - 250 - status = "okay"; 251 - }; 252 - 253 - &wdt0 { 254 - timeout-sec = <60>; 255 - status = "okay"; 256 - }; 257 - 258 - &i2c_dvfs { 259 - status = "okay"; 260 40 };
+421
arch/arm64/boot/dts/renesas/r8a7796.dtsi
··· 120 120 clock-frequency = <0>; 121 121 }; 122 122 123 + /* 124 + * The external audio clocks are configured as 0 Hz fixed frequency 125 + * clocks by default. 126 + * Boards that provide audio clocks should override them. 127 + */ 128 + audio_clk_a: audio_clk_a { 129 + compatible = "fixed-clock"; 130 + #clock-cells = <0>; 131 + clock-frequency = <0>; 132 + }; 133 + 134 + audio_clk_b: audio_clk_b { 135 + compatible = "fixed-clock"; 136 + #clock-cells = <0>; 137 + clock-frequency = <0>; 138 + }; 139 + 140 + audio_clk_c: audio_clk_c { 141 + compatible = "fixed-clock"; 142 + #clock-cells = <0>; 143 + clock-frequency = <0>; 144 + }; 145 + 123 146 /* External CAN clock - to be overridden by boards that provide it */ 124 147 can_clk: can { 125 148 compatible = "fixed-clock"; ··· 152 129 153 130 /* External SCIF clock - to be overridden by boards that provide it */ 154 131 scif_clk: scif { 132 + compatible = "fixed-clock"; 133 + #clock-cells = <0>; 134 + clock-frequency = <0>; 135 + }; 136 + 137 + /* External PCIe clock - can be overridden by the board */ 138 + pcie_bus_clk: pcie_bus { 155 139 compatible = "fixed-clock"; 156 140 #clock-cells = <0>; 157 141 clock-frequency = <0>; ··· 392 362 clocks = <&cpg CPG_MOD 926>; 393 363 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 394 364 resets = <&cpg 926>; 365 + dmas = <&dmac0 0x11>, <&dmac0 0x10>; 366 + dma-names = "tx", "rx"; 367 + status = "disabled"; 368 + }; 369 + 370 + pwm0: pwm@e6e30000 { 371 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 372 + reg = <0 0xe6e30000 0 8>; 373 + #pwm-cells = <2>; 374 + clocks = <&cpg CPG_MOD 523>; 375 + resets = <&cpg 523>; 376 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 377 + status = "disabled"; 378 + }; 379 + 380 + pwm1: pwm@e6e31000 { 381 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 382 + reg = <0 0xe6e31000 0 8>; 383 + #pwm-cells = <2>; 384 + clocks = <&cpg CPG_MOD 523>; 385 + resets = <&cpg 523>; 386 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 387 + status = "disabled"; 388 + }; 389 + 390 + pwm2: pwm@e6e32000 { 391 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 392 + reg = <0 0xe6e32000 0 8>; 393 + #pwm-cells = <2>; 394 + clocks = <&cpg CPG_MOD 523>; 395 + resets = <&cpg 523>; 396 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 397 + status = "disabled"; 398 + }; 399 + 400 + pwm3: pwm@e6e33000 { 401 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 402 + reg = <0 0xe6e33000 0 8>; 403 + #pwm-cells = <2>; 404 + clocks = <&cpg CPG_MOD 523>; 405 + resets = <&cpg 523>; 406 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 407 + status = "disabled"; 408 + }; 409 + 410 + pwm4: pwm@e6e34000 { 411 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 412 + reg = <0 0xe6e34000 0 8>; 413 + #pwm-cells = <2>; 414 + clocks = <&cpg CPG_MOD 523>; 415 + resets = <&cpg 523>; 416 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 417 + status = "disabled"; 418 + }; 419 + 420 + pwm5: pwm@e6e35000 { 421 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 422 + reg = <0 0xe6e35000 0 8>; 423 + #pwm-cells = <2>; 424 + clocks = <&cpg CPG_MOD 523>; 425 + resets = <&cpg 523>; 426 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 427 + status = "disabled"; 428 + }; 429 + 430 + pwm6: pwm@e6e36000 { 431 + compatible = "renesas,pwm-r8a7796", "renesas,pwm-rcar"; 432 + reg = <0 0xe6e36000 0 8>; 433 + #pwm-cells = <2>; 434 + clocks = <&cpg CPG_MOD 523>; 435 + resets = <&cpg 523>; 436 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 395 437 status = "disabled"; 396 438 }; 397 439 ··· 1033 931 dma-channels = <16>; 1034 932 }; 1035 933 934 + audma0: dma-controller@ec700000 { 935 + compatible = "renesas,dmac-r8a7796", 936 + "renesas,rcar-dmac"; 937 + reg = <0 0xec700000 0 0x10000>; 938 + interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH 939 + GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 940 + GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 941 + GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 942 + GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 943 + GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 944 + GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 945 + GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 946 + GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 947 + GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 948 + GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 949 + GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 950 + GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 951 + GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 952 + GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 953 + GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 954 + GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>; 955 + interrupt-names = "error", 956 + "ch0", "ch1", "ch2", "ch3", 957 + "ch4", "ch5", "ch6", "ch7", 958 + "ch8", "ch9", "ch10", "ch11", 959 + "ch12", "ch13", "ch14", "ch15"; 960 + clocks = <&cpg CPG_MOD 502>; 961 + clock-names = "fck"; 962 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 963 + resets = <&cpg 502>; 964 + #dma-cells = <1>; 965 + dma-channels = <16>; 966 + }; 967 + 968 + audma1: dma-controller@ec720000 { 969 + compatible = "renesas,dmac-r8a7796", 970 + "renesas,rcar-dmac"; 971 + reg = <0 0xec720000 0 0x10000>; 972 + interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 973 + GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 974 + GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 975 + GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 976 + GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 977 + GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 978 + GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH 979 + GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH 980 + GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH 981 + GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH 982 + GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH 983 + GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH 984 + GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH 985 + GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH 986 + GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH 987 + GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH 988 + GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>; 989 + interrupt-names = "error", 990 + "ch0", "ch1", "ch2", "ch3", 991 + "ch4", "ch5", "ch6", "ch7", 992 + "ch8", "ch9", "ch10", "ch11", 993 + "ch12", "ch13", "ch14", "ch15"; 994 + clocks = <&cpg CPG_MOD 501>; 995 + clock-names = "fck"; 996 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 997 + resets = <&cpg 501>; 998 + #dma-cells = <1>; 999 + dma-channels = <16>; 1000 + }; 1001 + 1002 + hsusb: usb@e6590000 { 1003 + /* placeholder */ 1004 + }; 1005 + 1006 + xhci0: usb@ee000000 { 1007 + /* placeholder */ 1008 + }; 1009 + 1010 + ohci0: usb@ee080000 { 1011 + /* placeholder */ 1012 + }; 1013 + 1014 + ehci0: usb@ee080100 { 1015 + /* placeholder */ 1016 + }; 1017 + 1018 + usb2_phy0: usb-phy@ee080200 { 1019 + /* placeholder */ 1020 + }; 1021 + 1022 + ohci1: usb@ee0a0000 { 1023 + /* placeholder */ 1024 + }; 1025 + 1026 + ehci1: usb@ee0a0100 { 1027 + /* placeholder */ 1028 + }; 1029 + 1030 + usb2_phy1: usb-phy@ee0a0200 { 1031 + /* placeholder */ 1032 + }; 1033 + 1036 1034 sdhi0: sd@ee100000 { 1037 1035 compatible = "renesas,sdhi-r8a7796"; 1038 1036 reg = <0 0xee100000 0 0x2000>; ··· 1231 1029 temperature = <120000>; 1232 1030 hysteresis = <2000>; 1233 1031 type = "critical"; 1032 + }; 1033 + }; 1034 + }; 1035 + }; 1036 + 1037 + rcar_sound: sound@ec500000 { 1038 + /* 1039 + * #sound-dai-cells is required 1040 + * 1041 + * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>; 1042 + * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>; 1043 + */ 1044 + /* 1045 + * #clock-cells is required for audio_clkout0/1/2/3 1046 + * 1047 + * clkout : #clock-cells = <0>; <&rcar_sound>; 1048 + * clkout0/1/2/3: #clock-cells = <1>; <&rcar_sound N>; 1049 + */ 1050 + compatible = "renesas,rcar_sound-r8a7796", "renesas,rcar_sound-gen3"; 1051 + reg = <0 0xec500000 0 0x1000>, /* SCU */ 1052 + <0 0xec5a0000 0 0x100>, /* ADG */ 1053 + <0 0xec540000 0 0x1000>, /* SSIU */ 1054 + <0 0xec541000 0 0x280>, /* SSI */ 1055 + <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 1056 + reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 1057 + 1058 + clocks = <&cpg CPG_MOD 1005>, 1059 + <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 1060 + <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 1061 + <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 1062 + <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 1063 + <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 1064 + <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 1065 + <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 1066 + <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 1067 + <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 1068 + <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 1069 + <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 1070 + <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 1071 + <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 1072 + <&audio_clk_a>, <&audio_clk_b>, 1073 + <&audio_clk_c>, 1074 + <&cpg CPG_CORE R8A7796_CLK_S0D4>; 1075 + clock-names = "ssi-all", 1076 + "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1077 + "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1078 + "ssi.1", "ssi.0", 1079 + "src.9", "src.8", "src.7", "src.6", 1080 + "src.5", "src.4", "src.3", "src.2", 1081 + "src.1", "src.0", 1082 + "mix.1", "mix.0", 1083 + "ctu.1", "ctu.0", 1084 + "dvc.0", "dvc.1", 1085 + "clk_a", "clk_b", "clk_c", "clk_i"; 1086 + power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1087 + resets = <&cpg 1005>, 1088 + <&cpg 1006>, <&cpg 1007>, 1089 + <&cpg 1008>, <&cpg 1009>, 1090 + <&cpg 1010>, <&cpg 1011>, 1091 + <&cpg 1012>, <&cpg 1013>, 1092 + <&cpg 1014>, <&cpg 1015>; 1093 + reset-names = "ssi-all", 1094 + "ssi.9", "ssi.8", "ssi.7", "ssi.6", 1095 + "ssi.5", "ssi.4", "ssi.3", "ssi.2", 1096 + "ssi.1", "ssi.0"; 1097 + status = "disabled"; 1098 + 1099 + rcar_sound,dvc { 1100 + dvc0: dvc-0 { 1101 + dmas = <&audma1 0xbc>; 1102 + dma-names = "tx"; 1103 + }; 1104 + dvc1: dvc-1 { 1105 + dmas = <&audma1 0xbe>; 1106 + dma-names = "tx"; 1107 + }; 1108 + }; 1109 + 1110 + rcar_sound,mix { 1111 + mix0: mix-0 { }; 1112 + mix1: mix-1 { }; 1113 + }; 1114 + 1115 + rcar_sound,ctu { 1116 + ctu00: ctu-0 { }; 1117 + ctu01: ctu-1 { }; 1118 + ctu02: ctu-2 { }; 1119 + ctu03: ctu-3 { }; 1120 + ctu10: ctu-4 { }; 1121 + ctu11: ctu-5 { }; 1122 + ctu12: ctu-6 { }; 1123 + ctu13: ctu-7 { }; 1124 + }; 1125 + 1126 + rcar_sound,src { 1127 + src0: src-0 { 1128 + interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; 1129 + dmas = <&audma0 0x85>, <&audma1 0x9a>; 1130 + dma-names = "rx", "tx"; 1131 + }; 1132 + src1: src-1 { 1133 + interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; 1134 + dmas = <&audma0 0x87>, <&audma1 0x9c>; 1135 + dma-names = "rx", "tx"; 1136 + }; 1137 + src2: src-2 { 1138 + interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; 1139 + dmas = <&audma0 0x89>, <&audma1 0x9e>; 1140 + dma-names = "rx", "tx"; 1141 + }; 1142 + src3: src-3 { 1143 + interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 1144 + dmas = <&audma0 0x8b>, <&audma1 0xa0>; 1145 + dma-names = "rx", "tx"; 1146 + }; 1147 + src4: src-4 { 1148 + interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; 1149 + dmas = <&audma0 0x8d>, <&audma1 0xb0>; 1150 + dma-names = "rx", "tx"; 1151 + }; 1152 + src5: src-5 { 1153 + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; 1154 + dmas = <&audma0 0x8f>, <&audma1 0xb2>; 1155 + dma-names = "rx", "tx"; 1156 + }; 1157 + src6: src-6 { 1158 + interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 1159 + dmas = <&audma0 0x91>, <&audma1 0xb4>; 1160 + dma-names = "rx", "tx"; 1161 + }; 1162 + src7: src-7 { 1163 + interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; 1164 + dmas = <&audma0 0x93>, <&audma1 0xb6>; 1165 + dma-names = "rx", "tx"; 1166 + }; 1167 + src8: src-8 { 1168 + interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; 1169 + dmas = <&audma0 0x95>, <&audma1 0xb8>; 1170 + dma-names = "rx", "tx"; 1171 + }; 1172 + src9: src-9 { 1173 + interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; 1174 + dmas = <&audma0 0x97>, <&audma1 0xba>; 1175 + dma-names = "rx", "tx"; 1176 + }; 1177 + }; 1178 + 1179 + rcar_sound,ssi { 1180 + ssi0: ssi-0 { 1181 + interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; 1182 + dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 1183 + dma-names = "rx", "tx", "rxu", "txu"; 1184 + }; 1185 + ssi1: ssi-1 { 1186 + interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; 1187 + dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 1188 + dma-names = "rx", "tx", "rxu", "txu"; 1189 + }; 1190 + ssi2: ssi-2 { 1191 + interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; 1192 + dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 1193 + dma-names = "rx", "tx", "rxu", "txu"; 1194 + }; 1195 + ssi3: ssi-3 { 1196 + interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; 1197 + dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 1198 + dma-names = "rx", "tx", "rxu", "txu"; 1199 + }; 1200 + ssi4: ssi-4 { 1201 + interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; 1202 + dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 1203 + dma-names = "rx", "tx", "rxu", "txu"; 1204 + }; 1205 + ssi5: ssi-5 { 1206 + interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; 1207 + dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 1208 + dma-names = "rx", "tx", "rxu", "txu"; 1209 + }; 1210 + ssi6: ssi-6 { 1211 + interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; 1212 + dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 1213 + dma-names = "rx", "tx", "rxu", "txu"; 1214 + }; 1215 + ssi7: ssi-7 { 1216 + interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; 1217 + dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 1218 + dma-names = "rx", "tx", "rxu", "txu"; 1219 + }; 1220 + ssi8: ssi-8 { 1221 + interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; 1222 + dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 1223 + dma-names = "rx", "tx", "rxu", "txu"; 1224 + }; 1225 + ssi9: ssi-9 { 1226 + interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; 1227 + dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 1228 + dma-names = "rx", "tx", "rxu", "txu"; 1229 + }; 1230 + }; 1231 + }; 1232 + 1233 + pciec0: pcie@fe000000 { 1234 + /* placeholder */ 1235 + }; 1236 + 1237 + pciec1: pcie@ee800000 { 1238 + /* placeholder */ 1239 + }; 1240 + 1241 + du: display@feb00000 { 1242 + /* placeholder */ 1243 + 1244 + ports { 1245 + #address-cells = <1>; 1246 + #size-cells = <0>; 1247 + 1248 + port@0 { 1249 + reg = <0>; 1250 + du_out_rgb: endpoint { 1234 1251 }; 1235 1252 }; 1236 1253 };
+629
arch/arm64/boot/dts/renesas/salvator-common.dtsi
··· 1 + /* 2 + * Device Tree Source for common parts of Salvator-X board variants 3 + * 4 + * Copyright (C) 2015-2016 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + /* 12 + * SSI-AK4613 13 + * 14 + * This command is required when Playback/Capture 15 + * 16 + * amixer set "DVC Out" 100% 17 + * amixer set "DVC In" 100% 18 + * 19 + * You can use Mute 20 + * 21 + * amixer set "DVC Out Mute" on 22 + * amixer set "DVC In Mute" on 23 + * 24 + * You can use Volume Ramp 25 + * 26 + * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps" 27 + * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps" 28 + * amixer set "DVC Out Ramp" on 29 + * aplay xxx.wav & 30 + * amixer set "DVC Out" 80% // Volume Down 31 + * amixer set "DVC Out" 100% // Volume Up 32 + */ 33 + 34 + #include <dt-bindings/gpio/gpio.h> 35 + 36 + / { 37 + aliases { 38 + serial0 = &scif2; 39 + serial1 = &scif1; 40 + ethernet0 = &avb; 41 + }; 42 + 43 + chosen { 44 + bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 45 + stdout-path = "serial0:115200n8"; 46 + }; 47 + 48 + audio_clkout: audio_clkout { 49 + /* 50 + * This is same as <&rcar_sound 0> 51 + * but needed to avoid cs2000/rcar_sound probe dead-lock 52 + */ 53 + compatible = "fixed-clock"; 54 + #clock-cells = <0>; 55 + clock-frequency = <11289600>; 56 + }; 57 + 58 + backlight: backlight { 59 + compatible = "pwm-backlight"; 60 + pwms = <&pwm1 0 50000>; 61 + 62 + brightness-levels = <256 128 64 16 8 4 0>; 63 + default-brightness-level = <6>; 64 + 65 + enable-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>; 66 + }; 67 + 68 + reg_1p8v: regulator0 { 69 + compatible = "regulator-fixed"; 70 + regulator-name = "fixed-1.8V"; 71 + regulator-min-microvolt = <1800000>; 72 + regulator-max-microvolt = <1800000>; 73 + regulator-boot-on; 74 + regulator-always-on; 75 + }; 76 + 77 + reg_3p3v: regulator1 { 78 + compatible = "regulator-fixed"; 79 + regulator-name = "fixed-3.3V"; 80 + regulator-min-microvolt = <3300000>; 81 + regulator-max-microvolt = <3300000>; 82 + regulator-boot-on; 83 + regulator-always-on; 84 + }; 85 + 86 + rsnd_ak4613: sound { 87 + compatible = "simple-audio-card"; 88 + 89 + simple-audio-card,format = "left_j"; 90 + simple-audio-card,bitclock-master = <&sndcpu>; 91 + simple-audio-card,frame-master = <&sndcpu>; 92 + 93 + sndcpu: simple-audio-card,cpu { 94 + sound-dai = <&rcar_sound>; 95 + }; 96 + 97 + sndcodec: simple-audio-card,codec { 98 + sound-dai = <&ak4613>; 99 + }; 100 + }; 101 + 102 + vbus0_usb2: regulator-vbus0-usb2 { 103 + compatible = "regulator-fixed"; 104 + 105 + regulator-name = "USB20_VBUS0"; 106 + regulator-min-microvolt = <5000000>; 107 + regulator-max-microvolt = <5000000>; 108 + 109 + gpio = <&gpio6 16 GPIO_ACTIVE_HIGH>; 110 + enable-active-high; 111 + }; 112 + 113 + vcc_sdhi0: regulator-vcc-sdhi0 { 114 + compatible = "regulator-fixed"; 115 + 116 + regulator-name = "SDHI0 Vcc"; 117 + regulator-min-microvolt = <3300000>; 118 + regulator-max-microvolt = <3300000>; 119 + 120 + gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 121 + enable-active-high; 122 + }; 123 + 124 + vccq_sdhi0: regulator-vccq-sdhi0 { 125 + compatible = "regulator-gpio"; 126 + 127 + regulator-name = "SDHI0 VccQ"; 128 + regulator-min-microvolt = <1800000>; 129 + regulator-max-microvolt = <3300000>; 130 + 131 + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 132 + gpios-states = <1>; 133 + states = <3300000 1 134 + 1800000 0>; 135 + }; 136 + 137 + vcc_sdhi3: regulator-vcc-sdhi3 { 138 + compatible = "regulator-fixed"; 139 + 140 + regulator-name = "SDHI3 Vcc"; 141 + regulator-min-microvolt = <3300000>; 142 + regulator-max-microvolt = <3300000>; 143 + 144 + gpio = <&gpio3 15 GPIO_ACTIVE_HIGH>; 145 + enable-active-high; 146 + }; 147 + 148 + vccq_sdhi3: regulator-vccq-sdhi3 { 149 + compatible = "regulator-gpio"; 150 + 151 + regulator-name = "SDHI3 VccQ"; 152 + regulator-min-microvolt = <1800000>; 153 + regulator-max-microvolt = <3300000>; 154 + 155 + gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>; 156 + gpios-states = <1>; 157 + states = <3300000 1 158 + 1800000 0>; 159 + }; 160 + 161 + hdmi0-out { 162 + compatible = "hdmi-connector"; 163 + label = "HDMI0 OUT"; 164 + type = "a"; 165 + 166 + port { 167 + hdmi0_con: endpoint { 168 + }; 169 + }; 170 + }; 171 + 172 + hdmi1-out { 173 + compatible = "hdmi-connector"; 174 + label = "HDMI1 OUT"; 175 + type = "a"; 176 + 177 + port { 178 + hdmi1_con: endpoint { 179 + }; 180 + }; 181 + }; 182 + 183 + vga { 184 + compatible = "vga-connector"; 185 + 186 + port { 187 + vga_in: endpoint { 188 + remote-endpoint = <&adv7123_out>; 189 + }; 190 + }; 191 + }; 192 + 193 + vga-encoder { 194 + compatible = "adi,adv7123"; 195 + 196 + ports { 197 + #address-cells = <1>; 198 + #size-cells = <0>; 199 + 200 + port@0 { 201 + reg = <0>; 202 + adv7123_in: endpoint { 203 + remote-endpoint = <&du_out_rgb>; 204 + }; 205 + }; 206 + port@1 { 207 + reg = <1>; 208 + adv7123_out: endpoint { 209 + remote-endpoint = <&vga_in>; 210 + }; 211 + }; 212 + }; 213 + }; 214 + 215 + x12_clk: x12 { 216 + compatible = "fixed-clock"; 217 + #clock-cells = <0>; 218 + clock-frequency = <24576000>; 219 + }; 220 + 221 + /* External DU dot clocks */ 222 + x21_clk: x21-clock { 223 + compatible = "fixed-clock"; 224 + #clock-cells = <0>; 225 + clock-frequency = <33000000>; 226 + }; 227 + 228 + x22_clk: x22-clock { 229 + compatible = "fixed-clock"; 230 + #clock-cells = <0>; 231 + clock-frequency = <33000000>; 232 + }; 233 + 234 + x23_clk: x23-clock { 235 + compatible = "fixed-clock"; 236 + #clock-cells = <0>; 237 + clock-frequency = <25000000>; 238 + }; 239 + }; 240 + 241 + &audio_clk_a { 242 + clock-frequency = <22579200>; 243 + }; 244 + 245 + &avb { 246 + pinctrl-0 = <&avb_pins>; 247 + pinctrl-names = "default"; 248 + renesas,no-ether-link; 249 + phy-handle = <&phy0>; 250 + status = "okay"; 251 + 252 + phy0: ethernet-phy@0 { 253 + rxc-skew-ps = <1500>; 254 + reg = <0>; 255 + interrupt-parent = <&gpio2>; 256 + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 257 + }; 258 + }; 259 + 260 + &du { 261 + pinctrl-0 = <&du_pins>; 262 + pinctrl-names = "default"; 263 + status = "okay"; 264 + 265 + ports { 266 + port@0 { 267 + endpoint { 268 + remote-endpoint = <&adv7123_in>; 269 + }; 270 + }; 271 + port@3 { 272 + lvds_connector: endpoint { 273 + }; 274 + }; 275 + }; 276 + }; 277 + 278 + &ehci0 { 279 + status = "okay"; 280 + }; 281 + 282 + &ehci1 { 283 + status = "okay"; 284 + }; 285 + 286 + &extalr_clk { 287 + clock-frequency = <32768>; 288 + }; 289 + 290 + &hsusb { 291 + status = "okay"; 292 + }; 293 + 294 + &i2c2 { 295 + pinctrl-0 = <&i2c2_pins>; 296 + pinctrl-names = "default"; 297 + 298 + status = "okay"; 299 + 300 + clock-frequency = <100000>; 301 + 302 + ak4613: codec@10 { 303 + compatible = "asahi-kasei,ak4613"; 304 + #sound-dai-cells = <0>; 305 + reg = <0x10>; 306 + clocks = <&rcar_sound 3>; 307 + 308 + asahi-kasei,in1-single-end; 309 + asahi-kasei,in2-single-end; 310 + asahi-kasei,out1-single-end; 311 + asahi-kasei,out2-single-end; 312 + asahi-kasei,out3-single-end; 313 + asahi-kasei,out4-single-end; 314 + asahi-kasei,out5-single-end; 315 + asahi-kasei,out6-single-end; 316 + }; 317 + 318 + cs2000: clk_multiplier@4f { 319 + #clock-cells = <0>; 320 + compatible = "cirrus,cs2000-cp"; 321 + reg = <0x4f>; 322 + clocks = <&audio_clkout>, <&x12_clk>; 323 + clock-names = "clk_in", "ref_clk"; 324 + 325 + assigned-clocks = <&cs2000>; 326 + assigned-clock-rates = <24576000>; /* 1/1 divide */ 327 + }; 328 + }; 329 + 330 + &i2c4 { 331 + status = "okay"; 332 + 333 + csa_vdd: adc@7c { 334 + compatible = "maxim,max9611"; 335 + reg = <0x7c>; 336 + 337 + shunt-resistor-micro-ohms = <5000>; 338 + }; 339 + 340 + csa_dvfs: adc@7f { 341 + compatible = "maxim,max9611"; 342 + reg = <0x7f>; 343 + 344 + shunt-resistor-micro-ohms = <5000>; 345 + }; 346 + }; 347 + 348 + &i2c_dvfs { 349 + status = "okay"; 350 + }; 351 + 352 + &ohci0 { 353 + status = "okay"; 354 + }; 355 + 356 + &ohci1 { 357 + status = "okay"; 358 + }; 359 + 360 + &pcie_bus_clk { 361 + clock-frequency = <100000000>; 362 + }; 363 + 364 + &pciec0 { 365 + status = "okay"; 366 + }; 367 + 368 + &pciec1 { 369 + status = "okay"; 370 + }; 371 + 372 + &pfc { 373 + pinctrl-0 = <&scif_clk_pins>; 374 + pinctrl-names = "default"; 375 + 376 + avb_pins: avb { 377 + mux { 378 + groups = "avb_link", "avb_phy_int", "avb_mdc", 379 + "avb_mii"; 380 + function = "avb"; 381 + }; 382 + 383 + pins_mdc { 384 + groups = "avb_mdc"; 385 + drive-strength = <24>; 386 + }; 387 + 388 + pins_mii_tx { 389 + pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", 390 + "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; 391 + drive-strength = <12>; 392 + }; 393 + }; 394 + 395 + du_pins: du { 396 + groups = "du_rgb888", "du_sync", "du_oddf", "du_clk_out_0"; 397 + function = "du"; 398 + }; 399 + 400 + i2c2_pins: i2c2 { 401 + groups = "i2c2_a"; 402 + function = "i2c2"; 403 + }; 404 + 405 + pwm1_pins: pwm1 { 406 + groups = "pwm1_a"; 407 + function = "pwm1"; 408 + }; 409 + 410 + scif1_pins: scif1 { 411 + groups = "scif1_data_a", "scif1_ctrl"; 412 + function = "scif1"; 413 + }; 414 + 415 + scif2_pins: scif2 { 416 + groups = "scif2_data_a"; 417 + function = "scif2"; 418 + }; 419 + 420 + scif_clk_pins: scif_clk { 421 + groups = "scif_clk_a"; 422 + function = "scif_clk"; 423 + }; 424 + 425 + sdhi0_pins: sd0 { 426 + groups = "sdhi0_data4", "sdhi0_ctrl"; 427 + function = "sdhi0"; 428 + power-source = <3300>; 429 + }; 430 + 431 + sdhi0_pins_uhs: sd0_uhs { 432 + groups = "sdhi0_data4", "sdhi0_ctrl"; 433 + function = "sdhi0"; 434 + power-source = <1800>; 435 + }; 436 + 437 + sdhi2_pins: sd2 { 438 + groups = "sdhi2_data8", "sdhi2_ctrl"; 439 + function = "sdhi2"; 440 + power-source = <3300>; 441 + }; 442 + 443 + sdhi2_pins_uhs: sd2_uhs { 444 + groups = "sdhi2_data8", "sdhi2_ctrl"; 445 + function = "sdhi2"; 446 + power-source = <1800>; 447 + }; 448 + 449 + sdhi3_pins: sd3 { 450 + groups = "sdhi3_data4", "sdhi3_ctrl"; 451 + function = "sdhi3"; 452 + power-source = <3300>; 453 + }; 454 + 455 + sdhi3_pins_uhs: sd3_uhs { 456 + groups = "sdhi3_data4", "sdhi3_ctrl"; 457 + function = "sdhi3"; 458 + power-source = <1800>; 459 + }; 460 + 461 + sound_pins: sound { 462 + groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 463 + function = "ssi"; 464 + }; 465 + 466 + sound_clk_pins: sound_clk { 467 + groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 468 + "audio_clkout_a", "audio_clkout3_a"; 469 + function = "audio_clk"; 470 + }; 471 + 472 + usb0_pins: usb0 { 473 + groups = "usb0"; 474 + function = "usb0"; 475 + }; 476 + 477 + usb1_pins: usb1 { 478 + mux { 479 + groups = "usb1"; 480 + function = "usb1"; 481 + }; 482 + 483 + ovc { 484 + pins = "GP_6_27"; 485 + bias-pull-up; 486 + }; 487 + 488 + pwen { 489 + pins = "GP_6_26"; 490 + bias-pull-down; 491 + }; 492 + }; 493 + }; 494 + 495 + &pwm1 { 496 + pinctrl-0 = <&pwm1_pins>; 497 + pinctrl-names = "default"; 498 + 499 + status = "okay"; 500 + }; 501 + 502 + &rcar_sound { 503 + pinctrl-0 = <&sound_pins &sound_clk_pins>; 504 + pinctrl-names = "default"; 505 + 506 + /* Single DAI */ 507 + #sound-dai-cells = <0>; 508 + 509 + /* audio_clkout0/1/2/3 */ 510 + #clock-cells = <1>; 511 + clock-frequency = <11289600 12288000>; 512 + 513 + status = "okay"; 514 + 515 + /* update <audio_clk_b> to <cs2000> */ 516 + clocks = <&cpg CPG_MOD 1005>, 517 + <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 518 + <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 519 + <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 520 + <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 521 + <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 522 + <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 523 + <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 524 + <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 525 + <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 526 + <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 527 + <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 528 + <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 529 + <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 530 + <&audio_clk_a>, <&cs2000>, 531 + <&audio_clk_c>, 532 + <&cpg CPG_CORE CPG_AUDIO_CLK_I>; 533 + 534 + rcar_sound,dai { 535 + dai0 { 536 + playback = <&ssi0 &src0 &dvc0>; 537 + capture = <&ssi1 &src1 &dvc1>; 538 + }; 539 + }; 540 + }; 541 + 542 + &scif1 { 543 + pinctrl-0 = <&scif1_pins>; 544 + pinctrl-names = "default"; 545 + 546 + uart-has-rtscts; 547 + status = "okay"; 548 + }; 549 + 550 + &scif2 { 551 + pinctrl-0 = <&scif2_pins>; 552 + pinctrl-names = "default"; 553 + 554 + status = "okay"; 555 + }; 556 + 557 + &scif_clk { 558 + clock-frequency = <14745600>; 559 + }; 560 + 561 + &sdhi0 { 562 + pinctrl-0 = <&sdhi0_pins>; 563 + pinctrl-1 = <&sdhi0_pins_uhs>; 564 + pinctrl-names = "default", "state_uhs"; 565 + 566 + vmmc-supply = <&vcc_sdhi0>; 567 + vqmmc-supply = <&vccq_sdhi0>; 568 + cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 569 + wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 570 + bus-width = <4>; 571 + sd-uhs-sdr50; 572 + status = "okay"; 573 + }; 574 + 575 + &sdhi2 { 576 + /* used for on-board 8bit eMMC */ 577 + pinctrl-0 = <&sdhi2_pins>; 578 + pinctrl-1 = <&sdhi2_pins_uhs>; 579 + pinctrl-names = "default", "state_uhs"; 580 + 581 + vmmc-supply = <&reg_3p3v>; 582 + vqmmc-supply = <&reg_1p8v>; 583 + bus-width = <8>; 584 + mmc-hs200-1_8v; 585 + non-removable; 586 + status = "okay"; 587 + }; 588 + 589 + &sdhi3 { 590 + pinctrl-0 = <&sdhi3_pins>; 591 + pinctrl-1 = <&sdhi3_pins_uhs>; 592 + pinctrl-names = "default", "state_uhs"; 593 + 594 + vmmc-supply = <&vcc_sdhi3>; 595 + vqmmc-supply = <&vccq_sdhi3>; 596 + cd-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; 597 + wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 598 + bus-width = <4>; 599 + sd-uhs-sdr50; 600 + status = "okay"; 601 + }; 602 + 603 + &ssi1 { 604 + shared-pin; 605 + }; 606 + 607 + &usb2_phy0 { 608 + pinctrl-0 = <&usb0_pins>; 609 + pinctrl-names = "default"; 610 + 611 + vbus-supply = <&vbus0_usb2>; 612 + status = "okay"; 613 + }; 614 + 615 + &usb2_phy1 { 616 + pinctrl-0 = <&usb1_pins>; 617 + pinctrl-names = "default"; 618 + 619 + status = "okay"; 620 + }; 621 + 622 + &wdt0 { 623 + timeout-sec = <60>; 624 + status = "okay"; 625 + }; 626 + 627 + &xhci0 { 628 + status = "okay"; 629 + };
+30
arch/arm64/boot/dts/renesas/salvator-x.dtsi
··· 1 + /* 2 + * Device Tree Source for the Salvator-X board 3 + * 4 + * Copyright (C) 2015-2016 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #include "salvator-common.dtsi" 12 + 13 + / { 14 + model = "Renesas Salvator-X board"; 15 + compatible = "renesas,salvator-x"; 16 + }; 17 + 18 + &extal_clk { 19 + clock-frequency = <16666666>; 20 + }; 21 + 22 + &i2c4 { 23 + versaclock5: clock-generator@6a { 24 + compatible = "idt,5p49v5923"; 25 + reg = <0x6a>; 26 + #clock-cells = <1>; 27 + clocks = <&x23_clk>; 28 + clock-names = "xin"; 29 + }; 30 + };
+20
arch/arm64/boot/dts/renesas/salvator-xs.dtsi
··· 1 + /* 2 + * Device Tree Source for the Salvator-X 2nd version board 3 + * 4 + * Copyright (C) 2015-2017 Renesas Electronics Corp. 5 + * 6 + * This file is licensed under the terms of the GNU General Public License 7 + * version 2. This program is licensed "as is" without any warranty of any 8 + * kind, whether express or implied. 9 + */ 10 + 11 + #include "salvator-common.dtsi" 12 + 13 + / { 14 + model = "Renesas Salvator-X 2nd version board"; 15 + compatible = "renesas,salvator-xs"; 16 + }; 17 + 18 + &extal_clk { 19 + clock-frequency = <16640000>; 20 + };
+367
arch/arm64/boot/dts/renesas/ulcb.dtsi
··· 1 + /* 2 + * Device Tree Source for the R-Car Gen3 ULCB board 3 + * 4 + * Copyright (C) 2016 Renesas Electronics Corp. 5 + * Copyright (C) 2016 Cogent Embedded, Inc. 6 + * 7 + * This file is licensed under the terms of the GNU General Public License 8 + * version 2. This program is licensed "as is" without any warranty of any 9 + * kind, whether express or implied. 10 + */ 11 + 12 + #include <dt-bindings/gpio/gpio.h> 13 + #include <dt-bindings/input/input.h> 14 + 15 + / { 16 + model = "Renesas R-Car Gen3 ULCB board"; 17 + 18 + aliases { 19 + serial0 = &scif2; 20 + ethernet0 = &avb; 21 + }; 22 + 23 + chosen { 24 + stdout-path = "serial0:115200n8"; 25 + }; 26 + 27 + audio_clkout: audio-clkout { 28 + /* 29 + * This is same as <&rcar_sound 0> 30 + * but needed to avoid cs2000/rcar_sound probe dead-lock 31 + */ 32 + compatible = "fixed-clock"; 33 + #clock-cells = <0>; 34 + clock-frequency = <11289600>; 35 + }; 36 + 37 + keyboard { 38 + compatible = "gpio-keys"; 39 + 40 + key-1 { 41 + linux,code = <KEY_1>; 42 + label = "SW3"; 43 + wakeup-source; 44 + debounce-interval = <20>; 45 + gpios = <&gpio6 11 GPIO_ACTIVE_LOW>; 46 + }; 47 + }; 48 + 49 + leds { 50 + compatible = "gpio-leds"; 51 + 52 + led5 { 53 + gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>; 54 + }; 55 + led6 { 56 + gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; 57 + }; 58 + }; 59 + 60 + reg_1p8v: regulator0 { 61 + compatible = "regulator-fixed"; 62 + regulator-name = "fixed-1.8V"; 63 + regulator-min-microvolt = <1800000>; 64 + regulator-max-microvolt = <1800000>; 65 + regulator-boot-on; 66 + regulator-always-on; 67 + }; 68 + 69 + reg_3p3v: regulator1 { 70 + compatible = "regulator-fixed"; 71 + regulator-name = "fixed-3.3V"; 72 + regulator-min-microvolt = <3300000>; 73 + regulator-max-microvolt = <3300000>; 74 + regulator-boot-on; 75 + regulator-always-on; 76 + }; 77 + 78 + rsnd_ak4613: sound { 79 + compatible = "simple-audio-card"; 80 + 81 + simple-audio-card,format = "left_j"; 82 + simple-audio-card,bitclock-master = <&sndcpu>; 83 + simple-audio-card,frame-master = <&sndcpu>; 84 + 85 + sndcpu: simple-audio-card,cpu { 86 + sound-dai = <&rcar_sound>; 87 + }; 88 + 89 + sndcodec: simple-audio-card,codec { 90 + sound-dai = <&ak4613>; 91 + }; 92 + }; 93 + 94 + vcc_sdhi0: regulator-vcc-sdhi0 { 95 + compatible = "regulator-fixed"; 96 + 97 + regulator-name = "SDHI0 Vcc"; 98 + regulator-min-microvolt = <3300000>; 99 + regulator-max-microvolt = <3300000>; 100 + 101 + gpio = <&gpio5 2 GPIO_ACTIVE_HIGH>; 102 + enable-active-high; 103 + }; 104 + 105 + vccq_sdhi0: regulator-vccq-sdhi0 { 106 + compatible = "regulator-gpio"; 107 + 108 + regulator-name = "SDHI0 VccQ"; 109 + regulator-min-microvolt = <1800000>; 110 + regulator-max-microvolt = <3300000>; 111 + 112 + gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; 113 + gpios-states = <1>; 114 + states = <3300000 1 115 + 1800000 0>; 116 + }; 117 + 118 + x12_clk: x12 { 119 + compatible = "fixed-clock"; 120 + #clock-cells = <0>; 121 + clock-frequency = <24576000>; 122 + }; 123 + }; 124 + 125 + &audio_clk_a { 126 + clock-frequency = <22579200>; 127 + }; 128 + 129 + &avb { 130 + pinctrl-0 = <&avb_pins>; 131 + pinctrl-names = "default"; 132 + renesas,no-ether-link; 133 + phy-handle = <&phy0>; 134 + status = "okay"; 135 + 136 + phy0: ethernet-phy@0 { 137 + rxc-skew-ps = <1500>; 138 + reg = <0>; 139 + interrupt-parent = <&gpio2>; 140 + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 141 + }; 142 + }; 143 + 144 + &ehci1 { 145 + status = "okay"; 146 + }; 147 + 148 + &extal_clk { 149 + clock-frequency = <16666666>; 150 + }; 151 + 152 + &extalr_clk { 153 + clock-frequency = <32768>; 154 + }; 155 + 156 + &i2c2 { 157 + pinctrl-0 = <&i2c2_pins>; 158 + pinctrl-names = "default"; 159 + 160 + status = "okay"; 161 + 162 + clock-frequency = <100000>; 163 + 164 + ak4613: codec@10 { 165 + compatible = "asahi-kasei,ak4613"; 166 + #sound-dai-cells = <0>; 167 + reg = <0x10>; 168 + clocks = <&rcar_sound 3>; 169 + 170 + asahi-kasei,in1-single-end; 171 + asahi-kasei,in2-single-end; 172 + asahi-kasei,out1-single-end; 173 + asahi-kasei,out2-single-end; 174 + asahi-kasei,out3-single-end; 175 + asahi-kasei,out4-single-end; 176 + asahi-kasei,out5-single-end; 177 + asahi-kasei,out6-single-end; 178 + }; 179 + 180 + cs2000: clk-multiplier@4f { 181 + #clock-cells = <0>; 182 + compatible = "cirrus,cs2000-cp"; 183 + reg = <0x4f>; 184 + clocks = <&audio_clkout>, <&x12_clk>; 185 + clock-names = "clk_in", "ref_clk"; 186 + 187 + assigned-clocks = <&cs2000>; 188 + assigned-clock-rates = <24576000>; /* 1/1 divide */ 189 + }; 190 + }; 191 + 192 + &ohci1 { 193 + status = "okay"; 194 + }; 195 + 196 + &pfc { 197 + pinctrl-0 = <&scif_clk_pins>; 198 + pinctrl-names = "default"; 199 + 200 + avb_pins: avb { 201 + mux { 202 + groups = "avb_link", "avb_phy_int", "avb_mdc", 203 + "avb_mii"; 204 + function = "avb"; 205 + }; 206 + 207 + pins_mdc { 208 + groups = "avb_mdc"; 209 + drive-strength = <24>; 210 + }; 211 + 212 + pins_mii_tx { 213 + pins = "PIN_AVB_TX_CTL", "PIN_AVB_TXC", "PIN_AVB_TD0", 214 + "PIN_AVB_TD1", "PIN_AVB_TD2", "PIN_AVB_TD3"; 215 + drive-strength = <12>; 216 + }; 217 + }; 218 + 219 + i2c2_pins: i2c2 { 220 + groups = "i2c2_a"; 221 + function = "i2c2"; 222 + }; 223 + 224 + scif2_pins: scif2 { 225 + groups = "scif2_data_a"; 226 + function = "scif2"; 227 + }; 228 + 229 + scif_clk_pins: scif_clk { 230 + groups = "scif_clk_a"; 231 + function = "scif_clk"; 232 + }; 233 + 234 + sdhi0_pins: sd0 { 235 + groups = "sdhi0_data4", "sdhi0_ctrl"; 236 + function = "sdhi0"; 237 + power-source = <3300>; 238 + }; 239 + 240 + sdhi0_pins_uhs: sd0_uhs { 241 + groups = "sdhi0_data4", "sdhi0_ctrl"; 242 + function = "sdhi0"; 243 + power-source = <1800>; 244 + }; 245 + 246 + sdhi2_pins: sd2 { 247 + groups = "sdhi2_data8", "sdhi2_ctrl"; 248 + function = "sdhi2"; 249 + power-source = <3300>; 250 + }; 251 + 252 + sdhi2_pins_uhs: sd2_uhs { 253 + groups = "sdhi2_data8", "sdhi2_ctrl"; 254 + function = "sdhi2"; 255 + power-source = <1800>; 256 + }; 257 + 258 + sound_pins: sound { 259 + groups = "ssi01239_ctrl", "ssi0_data", "ssi1_data_a"; 260 + function = "ssi"; 261 + }; 262 + 263 + sound_clk_pins: sound-clk { 264 + groups = "audio_clk_a_a", "audio_clk_b_a", "audio_clk_c_a", 265 + "audio_clkout_a", "audio_clkout3_a"; 266 + function = "audio_clk"; 267 + }; 268 + 269 + usb1_pins: usb1 { 270 + groups = "usb1"; 271 + function = "usb1"; 272 + }; 273 + }; 274 + 275 + &rcar_sound { 276 + pinctrl-0 = <&sound_pins &sound_clk_pins>; 277 + pinctrl-names = "default"; 278 + 279 + /* Single DAI */ 280 + #sound-dai-cells = <0>; 281 + 282 + /* audio_clkout0/1/2/3 */ 283 + #clock-cells = <1>; 284 + clock-frequency = <11289600 12288000>; 285 + 286 + status = "okay"; 287 + 288 + /* update <audio_clk_b> to <cs2000> */ 289 + clocks = <&cpg CPG_MOD 1005>, 290 + <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, 291 + <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, 292 + <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, 293 + <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, 294 + <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, 295 + <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, 296 + <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, 297 + <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, 298 + <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, 299 + <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, 300 + <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 301 + <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, 302 + <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, 303 + <&audio_clk_a>, <&cs2000>, 304 + <&audio_clk_c>, 305 + <&cpg CPG_CORE CPG_AUDIO_CLK_I>; 306 + 307 + rcar_sound,dai { 308 + dai0 { 309 + playback = <&ssi0 &src0 &dvc0>; 310 + capture = <&ssi1 &src1 &dvc1>; 311 + }; 312 + }; 313 + }; 314 + 315 + &scif2 { 316 + pinctrl-0 = <&scif2_pins>; 317 + pinctrl-names = "default"; 318 + 319 + status = "okay"; 320 + }; 321 + 322 + &scif_clk { 323 + clock-frequency = <14745600>; 324 + }; 325 + 326 + &sdhi0 { 327 + pinctrl-0 = <&sdhi0_pins>; 328 + pinctrl-1 = <&sdhi0_pins_uhs>; 329 + pinctrl-names = "default", "state_uhs"; 330 + 331 + vmmc-supply = <&vcc_sdhi0>; 332 + vqmmc-supply = <&vccq_sdhi0>; 333 + cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 334 + bus-width = <4>; 335 + sd-uhs-sdr50; 336 + status = "okay"; 337 + }; 338 + 339 + &sdhi2 { 340 + /* used for on-board 8bit eMMC */ 341 + pinctrl-0 = <&sdhi2_pins>; 342 + pinctrl-1 = <&sdhi2_pins_uhs>; 343 + pinctrl-names = "default", "state_uhs"; 344 + 345 + vmmc-supply = <&reg_3p3v>; 346 + vqmmc-supply = <&reg_1p8v>; 347 + bus-width = <8>; 348 + mmc-hs200-1_8v; 349 + non-removable; 350 + status = "okay"; 351 + }; 352 + 353 + &ssi1 { 354 + shared-pin; 355 + }; 356 + 357 + &usb2_phy1 { 358 + pinctrl-0 = <&usb1_pins>; 359 + pinctrl-names = "default"; 360 + 361 + status = "okay"; 362 + }; 363 + 364 + &wdt0 { 365 + timeout-sec = <60>; 366 + status = "okay"; 367 + };
+1
arch/arm64/boot/dts/rockchip/Makefile
··· 5 5 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb 6 6 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb 7 7 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb 8 + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb 8 9 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb 9 10 10 11 always := $(dtb-y)
+33
arch/arm64/boot/dts/rockchip/rk3328.dtsi
··· 372 372 <32768>; 373 373 }; 374 374 375 + sdmmc: dwmmc@ff500000 { 376 + compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc"; 377 + reg = <0x0 0xff500000 0x0 0x4000>; 378 + interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 379 + clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>, 380 + <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>; 381 + clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 382 + fifo-depth = <0x100>; 383 + status = "disabled"; 384 + }; 385 + 386 + sdio: dwmmc@ff510000 { 387 + compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc"; 388 + reg = <0x0 0xff510000 0x0 0x4000>; 389 + interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 390 + clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>, 391 + <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>; 392 + clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 393 + fifo-depth = <0x100>; 394 + status = "disabled"; 395 + }; 396 + 397 + emmc: dwmmc@ff520000 { 398 + compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc"; 399 + reg = <0x0 0xff520000 0x0 0x4000>; 400 + interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 401 + clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>, 402 + <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>; 403 + clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 404 + fifo-depth = <0x100>; 405 + status = "disabled"; 406 + }; 407 + 375 408 gmac2io: ethernet@ff540000 { 376 409 compatible = "rockchip,rk3328-gmac"; 377 410 reg = <0x0 0xff540000 0x0 0x10000>;
+718
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
··· 1 + /* 2 + * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. 3 + * 4 + * This file is dual-licensed: you can use it either under the terms 5 + * of the GPL or the X11 license, at your option. Note that this dual 6 + * licensing only applies to this file, and not this project as a 7 + * whole. 8 + * 9 + * a) This file is free software; you can redistribute it and/or 10 + * modify it under the terms of the GNU General Public License as 11 + * published by the Free Software Foundation; either version 2 of the 12 + * License, or (at your option) any later version. 13 + * 14 + * This file is distributed in the hope that it will be useful, 15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 + * GNU General Public License for more details. 18 + * 19 + * Or, alternatively, 20 + * 21 + * b) Permission is hereby granted, free of charge, to any person 22 + * obtaining a copy of this software and associated documentation 23 + * files (the "Software"), to deal in the Software without 24 + * restriction, including without limitation the rights to use, 25 + * copy, modify, merge, publish, distribute, sublicense, and/or 26 + * sell copies of the Software, and to permit persons to whom the 27 + * Software is furnished to do so, subject to the following 28 + * conditions: 29 + * 30 + * The above copyright notice and this permission notice shall be 31 + * included in all copies or substantial portions of the Software. 32 + * 33 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34 + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35 + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36 + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37 + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38 + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39 + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40 + * OTHER DEALINGS IN THE SOFTWARE. 41 + */ 42 + 43 + /dts-v1/; 44 + #include <dt-bindings/pwm/pwm.h> 45 + #include "rk3399.dtsi" 46 + 47 + / { 48 + model = "Firefly-RK3399 Board"; 49 + compatible = "firefly,firefly-rk3399", "rockchip,rk3399"; 50 + 51 + backlight: backlight { 52 + compatible = "pwm-backlight"; 53 + enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; 54 + pwms = <&pwm0 0 25000 0>; 55 + brightness-levels = < 56 + 0 1 2 3 4 5 6 7 57 + 8 9 10 11 12 13 14 15 58 + 16 17 18 19 20 21 22 23 59 + 24 25 26 27 28 29 30 31 60 + 32 33 34 35 36 37 38 39 61 + 40 41 42 43 44 45 46 47 62 + 48 49 50 51 52 53 54 55 63 + 56 57 58 59 60 61 62 63 64 + 64 65 66 67 68 69 70 71 65 + 72 73 74 75 76 77 78 79 66 + 80 81 82 83 84 85 86 87 67 + 88 89 90 91 92 93 94 95 68 + 96 97 98 99 100 101 102 103 69 + 104 105 106 107 108 109 110 111 70 + 112 113 114 115 116 117 118 119 71 + 120 121 122 123 124 125 126 127 72 + 128 129 130 131 132 133 134 135 73 + 136 137 138 139 140 141 142 143 74 + 144 145 146 147 148 149 150 151 75 + 152 153 154 155 156 157 158 159 76 + 160 161 162 163 164 165 166 167 77 + 168 169 170 171 172 173 174 175 78 + 176 177 178 179 180 181 182 183 79 + 184 185 186 187 188 189 190 191 80 + 192 193 194 195 196 197 198 199 81 + 200 201 202 203 204 205 206 207 82 + 208 209 210 211 212 213 214 215 83 + 216 217 218 219 220 221 222 223 84 + 224 225 226 227 228 229 230 231 85 + 232 233 234 235 236 237 238 239 86 + 240 241 242 243 244 245 246 247 87 + 248 249 250 251 252 253 254 255>; 88 + default-brightness-level = <200>; 89 + }; 90 + 91 + clkin_gmac: external-gmac-clock { 92 + compatible = "fixed-clock"; 93 + clock-frequency = <125000000>; 94 + clock-output-names = "clkin_gmac"; 95 + #clock-cells = <0>; 96 + }; 97 + 98 + dc_12v: dc-12v { 99 + compatible = "regulator-fixed"; 100 + regulator-name = "dc_12v"; 101 + regulator-always-on; 102 + regulator-boot-on; 103 + regulator-min-microvolt = <12000000>; 104 + regulator-max-microvolt = <12000000>; 105 + }; 106 + 107 + rt5640-sound { 108 + compatible = "simple-audio-card"; 109 + simple-audio-card,name = "rockchip,rt5640-codec"; 110 + simple-audio-card,format = "i2s"; 111 + simple-audio-card,mclk-fs = <256>; 112 + simple-audio-card,widgets = 113 + "Microphone", "Mic Jack", 114 + "Headphone", "Headphone Jack"; 115 + simple-audio-card,routing = 116 + "Mic Jack", "MICBIAS1", 117 + "IN1P", "Mic Jack", 118 + "Headphone Jack", "HPOL", 119 + "Headphone Jack", "HPOR"; 120 + 121 + simple-audio-card,cpu { 122 + sound-dai = <&i2s1>; 123 + }; 124 + 125 + simple-audio-card,codec { 126 + sound-dai = <&rt5640>; 127 + }; 128 + }; 129 + 130 + sdio_pwrseq: sdio-pwrseq { 131 + compatible = "mmc-pwrseq-simple"; 132 + clocks = <&rk808 1>; 133 + clock-names = "ext_clock"; 134 + pinctrl-names = "default"; 135 + pinctrl-0 = <&wifi_enable_h>; 136 + 137 + /* 138 + * On the module itself this is one of these (depending 139 + * on the actual card populated): 140 + * - SDIO_RESET_L_WL_REG_ON 141 + * - PDN (power down when low) 142 + */ 143 + reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 144 + }; 145 + 146 + /* switched by pmic_sleep */ 147 + vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { 148 + compatible = "regulator-fixed"; 149 + regulator-name = "vcc1v8_s3"; 150 + regulator-always-on; 151 + regulator-boot-on; 152 + regulator-min-microvolt = <1800000>; 153 + regulator-max-microvolt = <1800000>; 154 + vin-supply = <&vcc_1v8>; 155 + }; 156 + 157 + vcc3v3_pcie: vcc3v3-pcie-regulator { 158 + compatible = "regulator-fixed"; 159 + enable-active-high; 160 + gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; 161 + pinctrl-names = "default"; 162 + pinctrl-0 = <&pcie_pwr_en>; 163 + regulator-name = "vcc3v3_pcie"; 164 + regulator-always-on; 165 + regulator-boot-on; 166 + vin-supply = <&dc_12v>; 167 + }; 168 + 169 + vcc3v3_sys: vcc3v3-sys { 170 + compatible = "regulator-fixed"; 171 + regulator-name = "vcc3v3_sys"; 172 + regulator-always-on; 173 + regulator-boot-on; 174 + regulator-min-microvolt = <3300000>; 175 + regulator-max-microvolt = <3300000>; 176 + vin-supply = <&vcc_sys>; 177 + }; 178 + 179 + /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */ 180 + vcc5v0_host: vcc5v0-host-regulator { 181 + compatible = "regulator-fixed"; 182 + enable-active-high; 183 + gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; 184 + pinctrl-names = "default"; 185 + pinctrl-0 = <&vcc5v0_host_en>; 186 + regulator-name = "vcc5v0_host"; 187 + regulator-always-on; 188 + vin-supply = <&vcc_sys>; 189 + }; 190 + 191 + vcc_sys: vcc-sys { 192 + compatible = "regulator-fixed"; 193 + regulator-name = "vcc_sys"; 194 + regulator-always-on; 195 + regulator-boot-on; 196 + regulator-min-microvolt = <5000000>; 197 + regulator-max-microvolt = <5000000>; 198 + vin-supply = <&dc_12v>; 199 + }; 200 + 201 + vdd_log: vdd-log { 202 + compatible = "pwm-regulator"; 203 + pwms = <&pwm2 0 25000 1>; 204 + regulator-name = "vdd_log"; 205 + regulator-always-on; 206 + regulator-boot-on; 207 + regulator-min-microvolt = <800000>; 208 + regulator-max-microvolt = <1400000>; 209 + vin-supply = <&vcc_sys>; 210 + }; 211 + }; 212 + 213 + &cpu_l0 { 214 + cpu-supply = <&vdd_cpu_l>; 215 + }; 216 + 217 + &cpu_l1 { 218 + cpu-supply = <&vdd_cpu_l>; 219 + }; 220 + 221 + &cpu_l2 { 222 + cpu-supply = <&vdd_cpu_l>; 223 + }; 224 + 225 + &cpu_l3 { 226 + cpu-supply = <&vdd_cpu_l>; 227 + }; 228 + 229 + &cpu_b0 { 230 + cpu-supply = <&vdd_cpu_b>; 231 + }; 232 + 233 + &cpu_b1 { 234 + cpu-supply = <&vdd_cpu_b>; 235 + }; 236 + 237 + &emmc_phy { 238 + status = "okay"; 239 + }; 240 + 241 + &gmac { 242 + assigned-clocks = <&cru SCLK_RMII_SRC>; 243 + assigned-clock-parents = <&clkin_gmac>; 244 + clock_in_out = "input"; 245 + phy-supply = <&vcc_lan>; 246 + phy-mode = "rgmii"; 247 + pinctrl-names = "default"; 248 + pinctrl-0 = <&rgmii_pins>; 249 + snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 250 + snps,reset-active-low; 251 + snps,reset-delays-us = <0 10000 50000>; 252 + tx_delay = <0x28>; 253 + rx_delay = <0x11>; 254 + status = "okay"; 255 + }; 256 + 257 + &i2c0 { 258 + clock-frequency = <400000>; 259 + i2c-scl-rising-time-ns = <168>; 260 + i2c-scl-falling-time-ns = <4>; 261 + status = "okay"; 262 + 263 + rk808: pmic@1b { 264 + compatible = "rockchip,rk808"; 265 + reg = <0x1b>; 266 + interrupt-parent = <&gpio1>; 267 + interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 268 + #clock-cells = <1>; 269 + clock-output-names = "xin32k", "rk808-clkout2"; 270 + pinctrl-names = "default"; 271 + pinctrl-0 = <&pmic_int_l>; 272 + rockchip,system-power-controller; 273 + wakeup-source; 274 + 275 + vcc1-supply = <&vcc_sys>; 276 + vcc2-supply = <&vcc_sys>; 277 + vcc3-supply = <&vcc_sys>; 278 + vcc4-supply = <&vcc_sys>; 279 + vcc6-supply = <&vcc_sys>; 280 + vcc7-supply = <&vcc_sys>; 281 + vcc8-supply = <&vcc3v3_sys>; 282 + vcc9-supply = <&vcc_sys>; 283 + vcc10-supply = <&vcc_sys>; 284 + vcc11-supply = <&vcc_sys>; 285 + vcc12-supply = <&vcc3v3_sys>; 286 + vddio-supply = <&vcc1v8_pmu>; 287 + 288 + regulators { 289 + vdd_center: DCDC_REG1 { 290 + regulator-name = "vdd_center"; 291 + regulator-always-on; 292 + regulator-boot-on; 293 + regulator-min-microvolt = <750000>; 294 + regulator-max-microvolt = <1350000>; 295 + regulator-ramp-delay = <6001>; 296 + regulator-state-mem { 297 + regulator-off-in-suspend; 298 + }; 299 + }; 300 + 301 + vdd_cpu_l: DCDC_REG2 { 302 + regulator-name = "vdd_cpu_l"; 303 + regulator-always-on; 304 + regulator-boot-on; 305 + regulator-min-microvolt = <750000>; 306 + regulator-max-microvolt = <1350000>; 307 + regulator-ramp-delay = <6001>; 308 + regulator-state-mem { 309 + regulator-off-in-suspend; 310 + }; 311 + }; 312 + 313 + vcc_ddr: DCDC_REG3 { 314 + regulator-name = "vcc_ddr"; 315 + regulator-always-on; 316 + regulator-boot-on; 317 + regulator-state-mem { 318 + regulator-on-in-suspend; 319 + }; 320 + }; 321 + 322 + vcc_1v8: DCDC_REG4 { 323 + regulator-name = "vcc_1v8"; 324 + regulator-always-on; 325 + regulator-boot-on; 326 + regulator-min-microvolt = <1800000>; 327 + regulator-max-microvolt = <1800000>; 328 + regulator-state-mem { 329 + regulator-on-in-suspend; 330 + regulator-suspend-microvolt = <1800000>; 331 + }; 332 + }; 333 + 334 + vcc1v8_dvp: LDO_REG1 { 335 + regulator-name = "vcc1v8_dvp"; 336 + regulator-always-on; 337 + regulator-boot-on; 338 + regulator-min-microvolt = <1800000>; 339 + regulator-max-microvolt = <1800000>; 340 + regulator-state-mem { 341 + regulator-off-in-suspend; 342 + }; 343 + }; 344 + 345 + vcc2v8_dvp: LDO_REG2 { 346 + regulator-name = "vcc2v8_dvp"; 347 + regulator-always-on; 348 + regulator-boot-on; 349 + regulator-min-microvolt = <2800000>; 350 + regulator-max-microvolt = <2800000>; 351 + regulator-state-mem { 352 + regulator-off-in-suspend; 353 + }; 354 + }; 355 + 356 + vcc1v8_pmu: LDO_REG3 { 357 + regulator-name = "vcc1v8_pmu"; 358 + regulator-always-on; 359 + regulator-boot-on; 360 + regulator-min-microvolt = <1800000>; 361 + regulator-max-microvolt = <1800000>; 362 + regulator-state-mem { 363 + regulator-on-in-suspend; 364 + regulator-suspend-microvolt = <1800000>; 365 + }; 366 + }; 367 + 368 + vcc_sdio: LDO_REG4 { 369 + regulator-name = "vcc_sdio"; 370 + regulator-always-on; 371 + regulator-boot-on; 372 + regulator-min-microvolt = <1800000>; 373 + regulator-max-microvolt = <3300000>; 374 + regulator-state-mem { 375 + regulator-on-in-suspend; 376 + regulator-suspend-microvolt = <3300000>; 377 + }; 378 + }; 379 + 380 + vcca3v0_codec: LDO_REG5 { 381 + regulator-name = "vcca3v0_codec"; 382 + regulator-always-on; 383 + regulator-boot-on; 384 + regulator-min-microvolt = <3000000>; 385 + regulator-max-microvolt = <3000000>; 386 + regulator-state-mem { 387 + regulator-off-in-suspend; 388 + }; 389 + }; 390 + 391 + vcc_1v5: LDO_REG6 { 392 + regulator-name = "vcc_1v5"; 393 + regulator-always-on; 394 + regulator-boot-on; 395 + regulator-min-microvolt = <1500000>; 396 + regulator-max-microvolt = <1500000>; 397 + regulator-state-mem { 398 + regulator-on-in-suspend; 399 + regulator-suspend-microvolt = <1500000>; 400 + }; 401 + }; 402 + 403 + vcca1v8_codec: LDO_REG7 { 404 + regulator-name = "vcca1v8_codec"; 405 + regulator-always-on; 406 + regulator-boot-on; 407 + regulator-min-microvolt = <1800000>; 408 + regulator-max-microvolt = <1800000>; 409 + regulator-state-mem { 410 + regulator-off-in-suspend; 411 + }; 412 + }; 413 + 414 + vcc_3v0: LDO_REG8 { 415 + regulator-name = "vcc_3v0"; 416 + regulator-always-on; 417 + regulator-boot-on; 418 + regulator-min-microvolt = <3000000>; 419 + regulator-max-microvolt = <3000000>; 420 + regulator-state-mem { 421 + regulator-on-in-suspend; 422 + regulator-suspend-microvolt = <3000000>; 423 + }; 424 + }; 425 + 426 + vcc3v3_s3: vcc_lan: SWITCH_REG1 { 427 + regulator-name = "vcc3v3_s3"; 428 + regulator-always-on; 429 + regulator-boot-on; 430 + regulator-state-mem { 431 + regulator-off-in-suspend; 432 + }; 433 + }; 434 + 435 + vcc3v3_s0: SWITCH_REG2 { 436 + regulator-name = "vcc3v3_s0"; 437 + regulator-always-on; 438 + regulator-boot-on; 439 + regulator-state-mem { 440 + regulator-off-in-suspend; 441 + }; 442 + }; 443 + }; 444 + }; 445 + 446 + vdd_cpu_b: regulator@40 { 447 + compatible = "silergy,syr827"; 448 + reg = <0x40>; 449 + fcs,suspend-voltage-selector = <0>; 450 + regulator-name = "vdd_cpu_b"; 451 + regulator-min-microvolt = <712500>; 452 + regulator-max-microvolt = <1500000>; 453 + regulator-ramp-delay = <1000>; 454 + regulator-always-on; 455 + regulator-boot-on; 456 + vin-supply = <&vcc_sys>; 457 + 458 + regulator-state-mem { 459 + regulator-off-in-suspend; 460 + }; 461 + }; 462 + 463 + vdd_gpu: regulator@41 { 464 + compatible = "silergy,syr828"; 465 + reg = <0x41>; 466 + fcs,suspend-voltage-selector = <1>; 467 + regulator-name = "vdd_gpu"; 468 + regulator-min-microvolt = <712500>; 469 + regulator-max-microvolt = <1500000>; 470 + regulator-ramp-delay = <1000>; 471 + regulator-always-on; 472 + regulator-boot-on; 473 + vin-supply = <&vcc_sys>; 474 + 475 + regulator-state-mem { 476 + regulator-off-in-suspend; 477 + }; 478 + }; 479 + }; 480 + 481 + &i2c1 { 482 + i2c-scl-rising-time-ns = <300>; 483 + i2c-scl-falling-time-ns = <15>; 484 + status = "okay"; 485 + 486 + rt5640: rt5640@1c { 487 + compatible = "realtek,rt5640"; 488 + reg = <0x1c>; 489 + clocks = <&cru SCLK_I2S_8CH_OUT>; 490 + clock-names = "mclk"; 491 + realtek,in1-differential; 492 + #sound-dai-cells = <0>; 493 + pinctrl-names = "default"; 494 + pinctrl-0 = <&rt5640_hpcon>; 495 + }; 496 + }; 497 + 498 + &i2c3 { 499 + i2c-scl-rising-time-ns = <450>; 500 + i2c-scl-falling-time-ns = <15>; 501 + status = "okay"; 502 + }; 503 + 504 + &i2c4 { 505 + i2c-scl-rising-time-ns = <600>; 506 + i2c-scl-falling-time-ns = <20>; 507 + status = "okay"; 508 + 509 + accelerometer@68 { 510 + compatible = "invensense,mpu6500"; 511 + reg = <0x68>; 512 + interrupt-parent = <&gpio1>; 513 + interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>; 514 + }; 515 + }; 516 + 517 + &i2s0 { 518 + rockchip,playback-channels = <8>; 519 + rockchip,capture-channels = <8>; 520 + #sound-dai-cells = <0>; 521 + status = "okay"; 522 + }; 523 + 524 + &i2s1 { 525 + rockchip,playback-channels = <2>; 526 + rockchip,capture-channels = <2>; 527 + #sound-dai-cells = <0>; 528 + status = "okay"; 529 + }; 530 + 531 + &i2s2 { 532 + #sound-dai-cells = <0>; 533 + status = "okay"; 534 + }; 535 + 536 + &io_domains { 537 + status = "okay"; 538 + 539 + bt656-supply = <&vcc1v8_dvp>; 540 + audio-supply = <&vcca1v8_codec>; 541 + sdmmc-supply = <&vcc_sdio>; 542 + gpio1830-supply = <&vcc_3v0>; 543 + }; 544 + 545 + &pcie_phy { 546 + status = "okay"; 547 + }; 548 + 549 + &pcie0 { 550 + ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>; 551 + num-lanes = <4>; 552 + pinctrl-names = "default"; 553 + pinctrl-0 = <&pcie_clkreqn>; 554 + status = "okay"; 555 + }; 556 + 557 + &pmu_io_domains { 558 + pmu1830-supply = <&vcc_3v0>; 559 + status = "okay"; 560 + }; 561 + 562 + &pinctrl { 563 + buttons { 564 + pwrbtn: pwrbtn { 565 + rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 566 + }; 567 + }; 568 + 569 + lcd-panel { 570 + lcd_panel_reset: lcd-panel-reset { 571 + rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>; 572 + }; 573 + }; 574 + 575 + pcie { 576 + pcie_pwr_en: pcie-pwr-en { 577 + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 578 + }; 579 + 580 + pcie_3g_drv: pcie-3g-drv { 581 + rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 582 + }; 583 + }; 584 + 585 + pmic { 586 + vsel1_gpio: vsel1-gpio { 587 + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; 588 + }; 589 + 590 + vsel2_gpio: vsel2-gpio { 591 + rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 592 + }; 593 + }; 594 + 595 + sdio-pwrseq { 596 + wifi_enable_h: wifi-enable-h { 597 + rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 598 + }; 599 + }; 600 + 601 + rt5640 { 602 + rt5640_hpcon: rt5640-hpcon { 603 + rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; 604 + }; 605 + }; 606 + 607 + pmic { 608 + pmic_int_l: pmic-int-l { 609 + rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; 610 + }; 611 + }; 612 + 613 + usb2 { 614 + vcc5v0_host_en: vcc5v0-host-en { 615 + rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 616 + }; 617 + }; 618 + }; 619 + 620 + &pwm0 { 621 + status = "okay"; 622 + }; 623 + 624 + &pwm2 { 625 + status = "okay"; 626 + }; 627 + 628 + &saradc { 629 + vref-supply = <&vcca1v8_s3>; 630 + status = "okay"; 631 + }; 632 + 633 + &sdhci { 634 + bus-width = <8>; 635 + keep-power-in-suspend; 636 + mmc-hs400-1_8v; 637 + mmc-hs400-enhanced-strobe; 638 + non-removable; 639 + status = "okay"; 640 + }; 641 + 642 + &tsadc { 643 + /* tshut mode 0:CRU 1:GPIO */ 644 + rockchip,hw-tshut-mode = <1>; 645 + /* tshut polarity 0:LOW 1:HIGH */ 646 + rockchip,hw-tshut-polarity = <1>; 647 + status = "okay"; 648 + }; 649 + 650 + &u2phy0 { 651 + status = "okay"; 652 + 653 + u2phy0_otg: otg-port { 654 + status = "okay"; 655 + }; 656 + 657 + u2phy0_host: host-port { 658 + phy-supply = <&vcc5v0_host>; 659 + status = "okay"; 660 + }; 661 + }; 662 + 663 + &u2phy1 { 664 + status = "okay"; 665 + 666 + u2phy1_otg: otg-port { 667 + status = "okay"; 668 + }; 669 + 670 + u2phy1_host: host-port { 671 + phy-supply = <&vcc5v0_host>; 672 + status = "okay"; 673 + }; 674 + }; 675 + 676 + &uart0 { 677 + pinctrl-names = "default"; 678 + pinctrl-0 = <&uart0_xfer &uart0_cts>; 679 + status = "okay"; 680 + }; 681 + 682 + &uart2 { 683 + status = "okay"; 684 + }; 685 + 686 + &usb_host0_ehci { 687 + status = "okay"; 688 + }; 689 + 690 + &usb_host0_ohci { 691 + status = "okay"; 692 + }; 693 + 694 + &usb_host1_ehci { 695 + status = "okay"; 696 + }; 697 + 698 + &usb_host1_ohci { 699 + status = "okay"; 700 + }; 701 + 702 + &usbdrd3_0 { 703 + status = "okay"; 704 + }; 705 + 706 + &usbdrd_dwc3_0 { 707 + status = "okay"; 708 + dr_mode = "otg"; 709 + }; 710 + 711 + &usbdrd3_1 { 712 + status = "okay"; 713 + }; 714 + 715 + &usbdrd_dwc3_1 { 716 + status = "okay"; 717 + dr_mode = "host"; 718 + };
+1 -1
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
··· 44 44 45 45 #include <dt-bindings/input/input.h> 46 46 #include "rk3399.dtsi" 47 - #include "rk3399-opp.dtsi" 47 + #include "rk3399-op1-opp.dtsi" 48 48 49 49 / { 50 50 chosen {
+145
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi
··· 1 + /* 2 + * Copyright (c) 2016-2017 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 + / { 44 + cluster0_opp: opp-table0 { 45 + compatible = "operating-points-v2"; 46 + opp-shared; 47 + 48 + opp00 { 49 + opp-hz = /bits/ 64 <408000000>; 50 + opp-microvolt = <800000>; 51 + clock-latency-ns = <40000>; 52 + }; 53 + opp01 { 54 + opp-hz = /bits/ 64 <600000000>; 55 + opp-microvolt = <825000>; 56 + }; 57 + opp02 { 58 + opp-hz = /bits/ 64 <816000000>; 59 + opp-microvolt = <850000>; 60 + }; 61 + opp03 { 62 + opp-hz = /bits/ 64 <1008000000>; 63 + opp-microvolt = <900000>; 64 + }; 65 + opp04 { 66 + opp-hz = /bits/ 64 <1200000000>; 67 + opp-microvolt = <975000>; 68 + }; 69 + opp05 { 70 + opp-hz = /bits/ 64 <1416000000>; 71 + opp-microvolt = <1100000>; 72 + }; 73 + opp06 { 74 + opp-hz = /bits/ 64 <1512000000>; 75 + opp-microvolt = <1150000>; 76 + }; 77 + }; 78 + 79 + cluster1_opp: opp-table1 { 80 + compatible = "operating-points-v2"; 81 + opp-shared; 82 + 83 + opp00 { 84 + opp-hz = /bits/ 64 <408000000>; 85 + opp-microvolt = <800000>; 86 + clock-latency-ns = <40000>; 87 + }; 88 + opp01 { 89 + opp-hz = /bits/ 64 <600000000>; 90 + opp-microvolt = <800000>; 91 + }; 92 + opp02 { 93 + opp-hz = /bits/ 64 <816000000>; 94 + opp-microvolt = <825000>; 95 + }; 96 + opp03 { 97 + opp-hz = /bits/ 64 <1008000000>; 98 + opp-microvolt = <850000>; 99 + }; 100 + opp04 { 101 + opp-hz = /bits/ 64 <1200000000>; 102 + opp-microvolt = <900000>; 103 + }; 104 + opp05 { 105 + opp-hz = /bits/ 64 <1416000000>; 106 + opp-microvolt = <975000>; 107 + }; 108 + opp06 { 109 + opp-hz = /bits/ 64 <1608000000>; 110 + opp-microvolt = <1050000>; 111 + }; 112 + opp07 { 113 + opp-hz = /bits/ 64 <1800000000>; 114 + opp-microvolt = <1150000>; 115 + }; 116 + opp08 { 117 + opp-hz = /bits/ 64 <2016000000>; 118 + opp-microvolt = <1250000>; 119 + }; 120 + }; 121 + }; 122 + 123 + &cpu_l0 { 124 + operating-points-v2 = <&cluster0_opp>; 125 + }; 126 + 127 + &cpu_l1 { 128 + operating-points-v2 = <&cluster0_opp>; 129 + }; 130 + 131 + &cpu_l2 { 132 + operating-points-v2 = <&cluster0_opp>; 133 + }; 134 + 135 + &cpu_l3 { 136 + operating-points-v2 = <&cluster0_opp>; 137 + }; 138 + 139 + &cpu_b0 { 140 + operating-points-v2 = <&cluster1_opp>; 141 + }; 142 + 143 + &cpu_b1 { 144 + operating-points-v2 = <&cluster1_opp>; 145 + };
+5 -13
arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi
··· 56 56 }; 57 57 opp02 { 58 58 opp-hz = /bits/ 64 <816000000>; 59 - opp-microvolt = <800000>; 59 + opp-microvolt = <850000>; 60 60 }; 61 61 opp03 { 62 62 opp-hz = /bits/ 64 <1008000000>; 63 - opp-microvolt = <875000>; 63 + opp-microvolt = <925000>; 64 64 }; 65 65 opp04 { 66 66 opp-hz = /bits/ 64 <1200000000>; 67 - opp-microvolt = <925000>; 67 + opp-microvolt = <1000000>; 68 68 }; 69 69 opp05 { 70 70 opp-hz = /bits/ 64 <1416000000>; 71 - opp-microvolt = <1050000>; 72 - }; 73 - opp06 { 74 - opp-hz = /bits/ 64 <1512000000>; 75 71 opp-microvolt = <1125000>; 76 72 }; 77 73 }; ··· 103 107 }; 104 108 opp06 { 105 109 opp-hz = /bits/ 64 <1608000000>; 106 - opp-microvolt = <1075000>; 110 + opp-microvolt = <1100000>; 107 111 }; 108 112 opp07 { 109 113 opp-hz = /bits/ 64 <1800000000>; 110 - opp-microvolt = <1150000>; 111 - }; 112 - opp08 { 113 - opp-hz = /bits/ 64 <2016000000>; 114 - opp-microvolt = <1250000>; 114 + opp-microvolt = <1200000>; 115 115 }; 116 116 }; 117 117 };
+157 -8
arch/arm64/boot/dts/rockchip/rk3399.dtsi
··· 56 56 #size-cells = <2>; 57 57 58 58 aliases { 59 + ethernet0 = &gmac; 59 60 i2c0 = &i2c0; 60 61 i2c1 = &i2c1; 61 62 i2c2 = &i2c2; ··· 221 220 #size-cells = <2>; 222 221 #interrupt-cells = <1>; 223 222 aspm-no-l0s; 224 - bus-range = <0x0 0x1>; 223 + bus-range = <0x0 0x1f>; 225 224 clocks = <&cru ACLK_PCIE>, <&cru ACLK_PERF_PCIE>, 226 225 <&cru PCLK_PCIE>, <&cru SCLK_PCIE_PM>; 227 226 clock-names = "aclk", "aclk-perf", ··· 240 239 msi-map = <0x0 &its 0x0 0x1000>; 241 240 phys = <&pcie_phy>; 242 241 phy-names = "pcie-phy"; 243 - ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x600000 244 - 0x81000000 0x0 0xfa600000 0x0 0xfa600000 0x0 0x100000>; 242 + ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000 243 + 0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>; 245 244 resets = <&cru SRST_PCIE_CORE>, <&cru SRST_PCIE_MGMT>, 246 245 <&cru SRST_PCIE_MGMT_STICKY>, <&cru SRST_PCIE_PIPE>, 247 246 <&cru SRST_PCIE_PM>, <&cru SRST_P_PCIE>, ··· 770 769 status = "disabled"; 771 770 }; 772 771 773 - qos_sd: qos@ffa74000 { 774 - compatible = "syscon"; 775 - reg = <0x0 0xffa74000 0x0 0x20>; 776 - }; 777 - 778 772 qos_emmc: qos@ffa58000 { 779 773 compatible = "syscon"; 780 774 reg = <0x0 0xffa58000 0x0 0x20>; ··· 778 782 qos_gmac: qos@ffa5c000 { 779 783 compatible = "syscon"; 780 784 reg = <0x0 0xffa5c000 0x0 0x20>; 785 + }; 786 + 787 + qos_pcie: qos@ffa60080 { 788 + compatible = "syscon"; 789 + reg = <0x0 0xffa60080 0x0 0x20>; 790 + }; 791 + 792 + qos_usb_host0: qos@ffa60100 { 793 + compatible = "syscon"; 794 + reg = <0x0 0xffa60100 0x0 0x20>; 795 + }; 796 + 797 + qos_usb_host1: qos@ffa60180 { 798 + compatible = "syscon"; 799 + reg = <0x0 0xffa60180 0x0 0x20>; 800 + }; 801 + 802 + qos_usb_otg0: qos@ffa70000 { 803 + compatible = "syscon"; 804 + reg = <0x0 0xffa70000 0x0 0x20>; 805 + }; 806 + 807 + qos_usb_otg1: qos@ffa70080 { 808 + compatible = "syscon"; 809 + reg = <0x0 0xffa70080 0x0 0x20>; 810 + }; 811 + 812 + qos_sd: qos@ffa74000 { 813 + compatible = "syscon"; 814 + reg = <0x0 0xffa74000 0x0 0x20>; 815 + }; 816 + 817 + qos_sdioaudio: qos@ffa76000 { 818 + compatible = "syscon"; 819 + reg = <0x0 0xffa76000 0x0 0x20>; 781 820 }; 782 821 783 822 qos_hdcp: qos@ffa90000 { ··· 883 852 qos_vop_little: qos@ffad0000 { 884 853 compatible = "syscon"; 885 854 reg = <0x0 0xffad0000 0x0 0x20>; 855 + }; 856 + 857 + qos_perihp: qos@ffad8080 { 858 + compatible = "syscon"; 859 + reg = <0x0 0xffad8080 0x0 0x20>; 886 860 }; 887 861 888 862 qos_gpu: qos@ffae0000 { ··· 1712 1676 }; 1713 1677 }; 1714 1678 1679 + sdio0 { 1680 + sdio0_bus1: sdio0-bus1 { 1681 + rockchip,pins = 1682 + <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>; 1683 + }; 1684 + 1685 + sdio0_bus4: sdio0-bus4 { 1686 + rockchip,pins = 1687 + <2 RK_PC4 RK_FUNC_1 &pcfg_pull_up>, 1688 + <2 RK_PC5 RK_FUNC_1 &pcfg_pull_up>, 1689 + <2 RK_PC6 RK_FUNC_1 &pcfg_pull_up>, 1690 + <2 RK_PC7 RK_FUNC_1 &pcfg_pull_up>; 1691 + }; 1692 + 1693 + sdio0_cmd: sdio0-cmd { 1694 + rockchip,pins = 1695 + <2 RK_PD0 RK_FUNC_1 &pcfg_pull_up>; 1696 + }; 1697 + 1698 + sdio0_clk: sdio0-clk { 1699 + rockchip,pins = 1700 + <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>; 1701 + }; 1702 + 1703 + sdio0_cd: sdio0-cd { 1704 + rockchip,pins = 1705 + <2 RK_PD2 RK_FUNC_1 &pcfg_pull_up>; 1706 + }; 1707 + 1708 + sdio0_pwr: sdio0-pwr { 1709 + rockchip,pins = 1710 + <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>; 1711 + }; 1712 + 1713 + sdio0_bkpwr: sdio0-bkpwr { 1714 + rockchip,pins = 1715 + <2 RK_PD4 RK_FUNC_1 &pcfg_pull_up>; 1716 + }; 1717 + 1718 + sdio0_wp: sdio0-wp { 1719 + rockchip,pins = 1720 + <0 RK_PA3 RK_FUNC_1 &pcfg_pull_up>; 1721 + }; 1722 + 1723 + sdio0_int: sdio0-int { 1724 + rockchip,pins = 1725 + <0 RK_PA4 RK_FUNC_1 &pcfg_pull_up>; 1726 + }; 1727 + }; 1728 + 1729 + sdmmc { 1730 + sdmmc_bus1: sdmmc-bus1 { 1731 + rockchip,pins = 1732 + <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>; 1733 + }; 1734 + 1735 + sdmmc_bus4: sdmmc-bus4 { 1736 + rockchip,pins = 1737 + <4 RK_PB0 RK_FUNC_1 &pcfg_pull_up>, 1738 + <4 RK_PB1 RK_FUNC_1 &pcfg_pull_up>, 1739 + <4 RK_PB2 RK_FUNC_1 &pcfg_pull_up>, 1740 + <4 RK_PB3 RK_FUNC_1 &pcfg_pull_up>; 1741 + }; 1742 + 1743 + sdmmc_clk: sdmmc-clk { 1744 + rockchip,pins = 1745 + <4 RK_PB4 RK_FUNC_1 &pcfg_pull_none>; 1746 + }; 1747 + 1748 + sdmmc_cmd: sdmmc-cmd { 1749 + rockchip,pins = 1750 + <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>; 1751 + }; 1752 + 1753 + sdmmc_cd: sdmcc-cd { 1754 + rockchip,pins = 1755 + <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>; 1756 + }; 1757 + 1758 + sdmmc_wp: sdmmc-wp { 1759 + rockchip,pins = 1760 + <0 RK_PB0 RK_FUNC_1 &pcfg_pull_up>; 1761 + }; 1762 + }; 1763 + 1715 1764 sleep { 1716 1765 ap_pwroff: ap-pwroff { 1717 1766 rockchip,pins = <1 5 RK_FUNC_1 &pcfg_pull_none>; ··· 1811 1690 spdif_bus: spdif-bus { 1812 1691 rockchip,pins = 1813 1692 <4 21 RK_FUNC_1 &pcfg_pull_none>; 1693 + }; 1694 + 1695 + spdif_bus_1: spdif-bus-1 { 1696 + rockchip,pins = 1697 + <3 RK_PC0 RK_FUNC_3 &pcfg_pull_none>; 1814 1698 }; 1815 1699 }; 1816 1700 ··· 2076 1950 }; 2077 1951 }; 2078 1952 1953 + hdmi { 1954 + hdmi_i2c_xfer: hdmi-i2c-xfer { 1955 + rockchip,pins = 1956 + <4 RK_PC1 RK_FUNC_3 &pcfg_pull_none>, 1957 + <4 RK_PC0 RK_FUNC_3 &pcfg_pull_none>; 1958 + }; 1959 + 1960 + hdmi_cec: hdmi-cec { 1961 + rockchip,pins = 1962 + <4 RK_PC7 RK_FUNC_1 &pcfg_pull_none>; 1963 + }; 1964 + }; 1965 + 2079 1966 pcie { 2080 1967 pcie_clkreqn: pci-clkreqn { 2081 1968 rockchip,pins = ··· 2098 1959 pcie_clkreqnb: pci-clkreqnb { 2099 1960 rockchip,pins = 2100 1961 <4 24 RK_FUNC_1 &pcfg_pull_none>; 1962 + }; 1963 + 1964 + pcie_clkreqn_cpm: pci-clkreqn-cpm { 1965 + rockchip,pins = 1966 + <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 1967 + }; 1968 + 1969 + pcie_clkreqnb_cpm: pci-clkreqnb-cpm { 1970 + rockchip,pins = 1971 + <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 2101 1972 }; 2102 1973 }; 2103 1974
+2
arch/arm64/boot/dts/socionext/Makefile
··· 1 1 dtb-$(CONFIG_ARCH_UNIPHIER) += \ 2 + uniphier-ld11-global.dtb \ 2 3 uniphier-ld11-ref.dtb \ 4 + uniphier-ld20-global.dtb \ 3 5 uniphier-ld20-ref.dtb 4 6 5 7 always := $(dtb-y)
+70
arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts
··· 1 + /* 2 + * Device Tree Source for UniPhier LD11 Global Board 3 + * 4 + * Copyright (C) 2016-2017 Socionext Inc. 5 + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 + * Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 7 + * 8 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 9 + */ 10 + 11 + /dts-v1/; 12 + /include/ "uniphier-ld11.dtsi" 13 + 14 + / { 15 + model = "UniPhier LD11 Global Board (REF_LD11_GP)"; 16 + compatible = "socionext,uniphier-ld11-global", 17 + "socionext,uniphier-ld11"; 18 + 19 + chosen { 20 + stdout-path = "serial0:115200n8"; 21 + }; 22 + 23 + aliases { 24 + serial0 = &serial0; 25 + serial1 = &serial1; 26 + serial2 = &serial2; 27 + serial3 = &serial3; 28 + i2c0 = &i2c0; 29 + i2c1 = &i2c1; 30 + i2c2 = &i2c2; 31 + i2c3 = &i2c3; 32 + i2c4 = &i2c4; 33 + i2c5 = &i2c5; 34 + }; 35 + 36 + memory@80000000 { 37 + device_type = "memory"; 38 + reg = <0 0x80000000 0 0x40000000>; 39 + }; 40 + }; 41 + 42 + &serial0 { 43 + status = "okay"; 44 + }; 45 + 46 + &serial1 { 47 + status = "okay"; 48 + }; 49 + 50 + &i2c0 { 51 + status = "okay"; 52 + 53 + eeprom@50 { 54 + compatible = "st,24c64", "atmel,24c64"; 55 + reg = <0x50>; 56 + pagesize = <32>; 57 + }; 58 + }; 59 + 60 + &usb0 { 61 + status = "okay"; 62 + }; 63 + 64 + &usb1 { 65 + status = "okay"; 66 + }; 67 + 68 + &usb2 { 69 + status = "okay"; 70 + };
+1 -37
arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts
··· 4 4 * Copyright (C) 2016 Socionext Inc. 5 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 6 * 7 - * This file is dual-licensed: you can use it either under the terms 8 - * of the GPL or the X11 license, at your option. Note that this dual 9 - * licensing only applies to this file, and not this project as a 10 - * whole. 11 - * 12 - * a) This file is free software; you can redistribute it and/or 13 - * modify it under the terms of the GNU General Public License as 14 - * published by the Free Software Foundation; either version 2 of the 15 - * License, or (at your option) any later version. 16 - * 17 - * This file is distributed in the hope that it will be useful, 18 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 - * GNU General Public License for more details. 21 - * 22 - * Or, alternatively, 23 - * 24 - * b) Permission is hereby granted, free of charge, to any person 25 - * obtaining a copy of this software and associated documentation 26 - * files (the "Software"), to deal in the Software without 27 - * restriction, including without limitation the rights to use, 28 - * copy, modify, merge, publish, distribute, sublicense, and/or 29 - * sell copies of the Software, and to permit persons to whom the 30 - * Software is furnished to do so, subject to the following 31 - * conditions: 32 - * 33 - * The above copyright notice and this permission notice shall be 34 - * included in all copies or substantial portions of the Software. 35 - * 36 - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 - * OTHER DEALINGS IN THE SOFTWARE. 7 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 44 8 */ 45 9 46 10 /dts-v1/;
+15 -46
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
··· 4 4 * Copyright (C) 2016 Socionext Inc. 5 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 6 * 7 - * This file is dual-licensed: you can use it either under the terms 8 - * of the GPL or the X11 license, at your option. Note that this dual 9 - * licensing only applies to this file, and not this project as a 10 - * whole. 11 - * 12 - * a) This file is free software; you can redistribute it and/or 13 - * modify it under the terms of the GNU General Public License as 14 - * published by the Free Software Foundation; either version 2 of the 15 - * License, or (at your option) any later version. 16 - * 17 - * This file is distributed in the hope that it will be useful, 18 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 - * GNU General Public License for more details. 21 - * 22 - * Or, alternatively, 23 - * 24 - * b) Permission is hereby granted, free of charge, to any person 25 - * obtaining a copy of this software and associated documentation 26 - * files (the "Software"), to deal in the Software without 27 - * restriction, including without limitation the rights to use, 28 - * copy, modify, merge, publish, distribute, sublicense, and/or 29 - * sell copies of the Software, and to permit persons to whom the 30 - * Software is furnished to do so, subject to the following 31 - * conditions: 32 - * 33 - * The above copyright notice and this permission notice shall be 34 - * included in all copies or substantial portions of the Software. 35 - * 36 - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 - * OTHER DEALINGS IN THE SOFTWARE. 7 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 44 8 */ 45 9 46 - /memreserve/ 0x80000000 0x00080000; 10 + /memreserve/ 0x80000000 0x02000000; 47 11 48 12 / { 49 13 compatible = "socionext,uniphier-ld11"; ··· 53 89 compatible = "operating-points-v2"; 54 90 opp-shared; 55 91 56 - opp@245000000 { 92 + opp-245000000 { 57 93 opp-hz = /bits/ 64 <245000000>; 58 94 clock-latency-ns = <300>; 59 95 }; 60 - opp@250000000 { 96 + opp-250000000 { 61 97 opp-hz = /bits/ 64 <250000000>; 62 98 clock-latency-ns = <300>; 63 99 }; 64 - opp@490000000 { 100 + opp-490000000 { 65 101 opp-hz = /bits/ 64 <490000000>; 66 102 clock-latency-ns = <300>; 67 103 }; 68 - opp@500000000 { 104 + opp-500000000 { 69 105 opp-hz = /bits/ 64 <500000000>; 70 106 clock-latency-ns = <300>; 71 107 }; 72 - opp@653334000 { 108 + opp-653334000 { 73 109 opp-hz = /bits/ 64 <653334000>; 74 110 clock-latency-ns = <300>; 75 111 }; 76 - opp@666667000 { 112 + opp-666667000 { 77 113 opp-hz = /bits/ 64 <666667000>; 78 114 clock-latency-ns = <300>; 79 115 }; 80 - opp@980000000 { 116 + opp-980000000 { 81 117 opp-hz = /bits/ 64 <980000000>; 82 118 clock-latency-ns = <300>; 83 119 }; ··· 232 268 pinctrl-0 = <&pinctrl_system_bus>; 233 269 }; 234 270 235 - smpctrl@59800000 { 271 + smpctrl@59801000 { 236 272 compatible = "socionext,uniphier-smpctrl"; 237 273 reg = <0x59801000 0x400>; 238 274 }; ··· 274 310 bus-width = <8>; 275 311 mmc-ddr-1_8v; 276 312 mmc-hs200-1_8v; 313 + cdns,phy-input-delay-legacy = <4>; 314 + cdns,phy-input-delay-mmc-highspeed = <2>; 315 + cdns,phy-input-delay-mmc-ddr = <3>; 316 + cdns,phy-dll-delay-sdclk = <21>; 317 + cdns,phy-dll-delay-sdclk-hsmmc = <21>; 277 318 }; 278 319 279 320 usb0: usb@5a800100 {
+52
arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
··· 1 + /* 2 + * Device Tree Source for UniPhier LD20 Global Board 3 + * 4 + * Copyright (C) 2015-2017 Socionext Inc. 5 + * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 + * Kunihiko Hayashi <hayashi.kunihiko@socionext.com> 7 + * 8 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 9 + */ 10 + 11 + /dts-v1/; 12 + /include/ "uniphier-ld20.dtsi" 13 + 14 + / { 15 + model = "UniPhier LD20 Global Board (REF_LD20_GP)"; 16 + compatible = "socionext,uniphier-ld20-global", 17 + "socionext,uniphier-ld20"; 18 + 19 + chosen { 20 + stdout-path = "serial0:115200n8"; 21 + }; 22 + 23 + aliases { 24 + serial0 = &serial0; 25 + serial1 = &serial1; 26 + serial2 = &serial2; 27 + serial3 = &serial3; 28 + i2c0 = &i2c0; 29 + i2c1 = &i2c1; 30 + i2c2 = &i2c2; 31 + i2c3 = &i2c3; 32 + i2c4 = &i2c4; 33 + i2c5 = &i2c5; 34 + }; 35 + 36 + memory@80000000 { 37 + device_type = "memory"; 38 + reg = <0 0x80000000 0 0xc0000000>; 39 + }; 40 + }; 41 + 42 + &serial0 { 43 + status = "okay"; 44 + }; 45 + 46 + &serial1 { 47 + status = "okay"; 48 + }; 49 + 50 + &i2c0 { 51 + status = "okay"; 52 + };
+1 -37
arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
··· 4 4 * Copyright (C) 2015-2016 Socionext Inc. 5 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 6 * 7 - * This file is dual-licensed: you can use it either under the terms 8 - * of the GPL or the X11 license, at your option. Note that this dual 9 - * licensing only applies to this file, and not this project as a 10 - * whole. 11 - * 12 - * a) This file is free software; you can redistribute it and/or 13 - * modify it under the terms of the GNU General Public License as 14 - * published by the Free Software Foundation; either version 2 of the 15 - * License, or (at your option) any later version. 16 - * 17 - * This file is distributed in the hope that it will be useful, 18 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 - * GNU General Public License for more details. 21 - * 22 - * Or, alternatively, 23 - * 24 - * b) Permission is hereby granted, free of charge, to any person 25 - * obtaining a copy of this software and associated documentation 26 - * files (the "Software"), to deal in the Software without 27 - * restriction, including without limitation the rights to use, 28 - * copy, modify, merge, publish, distribute, sublicense, and/or 29 - * sell copies of the Software, and to permit persons to whom the 30 - * Software is furnished to do so, subject to the following 31 - * conditions: 32 - * 33 - * The above copyright notice and this permission notice shall be 34 - * included in all copies or substantial portions of the Software. 35 - * 36 - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 - * OTHER DEALINGS IN THE SOFTWARE. 7 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 44 8 */ 45 9 46 10 /dts-v1/;
+24 -55
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
··· 4 4 * Copyright (C) 2015-2016 Socionext Inc. 5 5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com> 6 6 * 7 - * This file is dual-licensed: you can use it either under the terms 8 - * of the GPL or the X11 license, at your option. Note that this dual 9 - * licensing only applies to this file, and not this project as a 10 - * whole. 11 - * 12 - * a) This file is free software; you can redistribute it and/or 13 - * modify it under the terms of the GNU General Public License as 14 - * published by the Free Software Foundation; either version 2 of the 15 - * License, or (at your option) any later version. 16 - * 17 - * This file is distributed in the hope that it will be useful, 18 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 - * GNU General Public License for more details. 21 - * 22 - * Or, alternatively, 23 - * 24 - * b) Permission is hereby granted, free of charge, to any person 25 - * obtaining a copy of this software and associated documentation 26 - * files (the "Software"), to deal in the Software without 27 - * restriction, including without limitation the rights to use, 28 - * copy, modify, merge, publish, distribute, sublicense, and/or 29 - * sell copies of the Software, and to permit persons to whom the 30 - * Software is furnished to do so, subject to the following 31 - * conditions: 32 - * 33 - * The above copyright notice and this permission notice shall be 34 - * included in all copies or substantial portions of the Software. 35 - * 36 - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 38 - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 40 - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 41 - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 42 - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 43 - * OTHER DEALINGS IN THE SOFTWARE. 7 + * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 44 8 */ 45 9 46 - /memreserve/ 0x80000000 0x00080000; 10 + /memreserve/ 0x80000000 0x02000000; 47 11 48 12 / { 49 13 compatible = "socionext,uniphier-ld20"; ··· 80 116 compatible = "operating-points-v2"; 81 117 opp-shared; 82 118 83 - opp@250000000 { 119 + opp-250000000 { 84 120 opp-hz = /bits/ 64 <250000000>; 85 121 clock-latency-ns = <300>; 86 122 }; 87 - opp@275000000 { 123 + opp-275000000 { 88 124 opp-hz = /bits/ 64 <275000000>; 89 125 clock-latency-ns = <300>; 90 126 }; 91 - opp@500000000 { 127 + opp-500000000 { 92 128 opp-hz = /bits/ 64 <500000000>; 93 129 clock-latency-ns = <300>; 94 130 }; 95 - opp@550000000 { 131 + opp-550000000 { 96 132 opp-hz = /bits/ 64 <550000000>; 97 133 clock-latency-ns = <300>; 98 134 }; 99 - opp@666667000 { 135 + opp-666667000 { 100 136 opp-hz = /bits/ 64 <666667000>; 101 137 clock-latency-ns = <300>; 102 138 }; 103 - opp@733334000 { 139 + opp-733334000 { 104 140 opp-hz = /bits/ 64 <733334000>; 105 141 clock-latency-ns = <300>; 106 142 }; 107 - opp@1000000000 { 143 + opp-1000000000 { 108 144 opp-hz = /bits/ 64 <1000000000>; 109 145 clock-latency-ns = <300>; 110 146 }; 111 - opp@1100000000 { 147 + opp-1100000000 { 112 148 opp-hz = /bits/ 64 <1100000000>; 113 149 clock-latency-ns = <300>; 114 150 }; ··· 118 154 compatible = "operating-points-v2"; 119 155 opp-shared; 120 156 121 - opp@250000000 { 157 + opp-250000000 { 122 158 opp-hz = /bits/ 64 <250000000>; 123 159 clock-latency-ns = <300>; 124 160 }; 125 - opp@275000000 { 161 + opp-275000000 { 126 162 opp-hz = /bits/ 64 <275000000>; 127 163 clock-latency-ns = <300>; 128 164 }; 129 - opp@500000000 { 165 + opp-500000000 { 130 166 opp-hz = /bits/ 64 <500000000>; 131 167 clock-latency-ns = <300>; 132 168 }; 133 - opp@550000000 { 169 + opp-550000000 { 134 170 opp-hz = /bits/ 64 <550000000>; 135 171 clock-latency-ns = <300>; 136 172 }; 137 - opp@666667000 { 173 + opp-666667000 { 138 174 opp-hz = /bits/ 64 <666667000>; 139 175 clock-latency-ns = <300>; 140 176 }; 141 - opp@733334000 { 177 + opp-733334000 { 142 178 opp-hz = /bits/ 64 <733334000>; 143 179 clock-latency-ns = <300>; 144 180 }; 145 - opp@1000000000 { 181 + opp-1000000000 { 146 182 opp-hz = /bits/ 64 <1000000000>; 147 183 clock-latency-ns = <300>; 148 184 }; 149 - opp@1100000000 { 185 + opp-1100000000 { 150 186 opp-hz = /bits/ 64 <1100000000>; 151 187 clock-latency-ns = <300>; 152 188 }; ··· 301 337 pinctrl-0 = <&pinctrl_system_bus>; 302 338 }; 303 339 304 - smpctrl@59800000 { 340 + smpctrl@59801000 { 305 341 compatible = "socionext,uniphier-smpctrl"; 306 342 reg = <0x59801000 0x400>; 307 343 }; ··· 348 384 bus-width = <8>; 349 385 mmc-ddr-1_8v; 350 386 mmc-hs200-1_8v; 387 + cdns,phy-input-delay-legacy = <4>; 388 + cdns,phy-input-delay-mmc-highspeed = <2>; 389 + cdns,phy-input-delay-mmc-ddr = <3>; 390 + cdns,phy-dll-delay-sdclk = <21>; 391 + cdns,phy-dll-delay-sdclk-hsmmc = <21>; 351 392 }; 352 393 353 394 soc-glue@5f800000 {
+5 -5
arch/arm64/boot/dts/zte/zx296718.dtsi
··· 118 118 compatible = "operating-points-v2"; 119 119 opp-shared; 120 120 121 - opp@500000000 { 121 + opp-500000000 { 122 122 opp-hz = /bits/ 64 <500000000>; 123 123 clock-latency-ns = <500000>; 124 124 }; 125 125 126 - opp@648000000 { 126 + opp-648000000 { 127 127 opp-hz = /bits/ 64 <648000000>; 128 128 clock-latency-ns = <500000>; 129 129 }; 130 130 131 - opp@800000000 { 131 + opp-800000000 { 132 132 opp-hz = /bits/ 64 <800000000>; 133 133 clock-latency-ns = <500000>; 134 134 }; 135 135 136 - opp@1000000000 { 136 + opp-1000000000 { 137 137 opp-hz = /bits/ 64 <1000000000>; 138 138 clock-latency-ns = <500000>; 139 139 }; 140 140 141 - opp@1188000000 { 141 + opp-1188000000 { 142 142 opp-hz = /bits/ 64 <1188000000>; 143 143 clock-latency-ns = <500000>; 144 144 };
+101
include/dt-bindings/clock/bcm-sr.h
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2017 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 + #ifndef _CLOCK_BCM_SR_H 34 + #define _CLOCK_BCM_SR_H 35 + 36 + /* GENPLL 0 clock channel ID SCR HSLS FS PCIE */ 37 + #define BCM_SR_GENPLL0 0 38 + #define BCM_SR_GENPLL0_SATA_CLK 1 39 + #define BCM_SR_GENPLL0_SCR_CLK 2 40 + #define BCM_SR_GENPLL0_250M_CLK 3 41 + #define BCM_SR_GENPLL0_PCIE_AXI_CLK 4 42 + #define BCM_SR_GENPLL0_PAXC_AXI_X2_CLK 5 43 + #define BCM_SR_GENPLL0_PAXC_AXI_CLK 6 44 + 45 + /* GENPLL 1 clock channel ID MHB PCIE NITRO */ 46 + #define BCM_SR_GENPLL1 0 47 + #define BCM_SR_GENPLL1_PCIE_TL_CLK 1 48 + #define BCM_SR_GENPLL1_MHB_APB_CLK 2 49 + 50 + /* GENPLL 2 clock channel ID NITRO MHB*/ 51 + #define BCM_SR_GENPLL2 0 52 + #define BCM_SR_GENPLL2_NIC_CLK 1 53 + #define BCM_SR_GENPLL2_250_NITRO_CLK 2 54 + #define BCM_SR_GENPLL2_125_NITRO_CLK 3 55 + #define BCM_SR_GENPLL2_CHIMP_CLK 4 56 + 57 + /* GENPLL 3 HSLS clock channel ID */ 58 + #define BCM_SR_GENPLL3 0 59 + #define BCM_SR_GENPLL3_HSLS_CLK 1 60 + #define BCM_SR_GENPLL3_SDIO_CLK 2 61 + 62 + /* GENPLL 4 SCR clock channel ID */ 63 + #define BCM_SR_GENPLL4 0 64 + #define BCM_SR_GENPLL4_CCN_CLK 1 65 + 66 + /* GENPLL 5 FS4 clock channel ID */ 67 + #define BCM_SR_GENPLL5 0 68 + #define BCM_SR_GENPLL5_FS_CLK 1 69 + #define BCM_SR_GENPLL5_SPU_CLK 2 70 + 71 + /* GENPLL 6 NITRO clock channel ID */ 72 + #define BCM_SR_GENPLL6 0 73 + #define BCM_SR_GENPLL6_48_USB_CLK 1 74 + 75 + /* LCPLL0 clock channel ID */ 76 + #define BCM_SR_LCPLL0 0 77 + #define BCM_SR_LCPLL0_SATA_REF_CLK 1 78 + #define BCM_SR_LCPLL0_USB_REF_CLK 2 79 + #define BCM_SR_LCPLL0_SATA_REFPN_CLK 3 80 + 81 + /* LCPLL1 clock channel ID */ 82 + #define BCM_SR_LCPLL1 0 83 + #define BCM_SR_LCPLL1_WAN_CLK 1 84 + 85 + /* LCPLL PCIE clock channel ID */ 86 + #define BCM_SR_LCPLL_PCIE 0 87 + #define BCM_SR_LCPLL_PCIE_PHY_REF_CLK 1 88 + 89 + /* GENPLL EMEM0 clock channel ID */ 90 + #define BCM_SR_EMEMPLL0 0 91 + #define BCM_SR_EMEMPLL0_EMEM_CLK 1 92 + 93 + /* GENPLL EMEM0 clock channel ID */ 94 + #define BCM_SR_EMEMPLL1 0 95 + #define BCM_SR_EMEMPLL1_EMEM_CLK 1 96 + 97 + /* GENPLL EMEM0 clock channel ID */ 98 + #define BCM_SR_EMEMPLL2 0 99 + #define BCM_SR_EMEMPLL2_EMEM_CLK 1 100 + 101 + #endif /* _CLOCK_BCM_SR_H */
+68
include/dt-bindings/pinctrl/brcm,pinctrl-stingray.h
··· 1 + /* 2 + * BSD LICENSE 3 + * 4 + * Copyright(c) 2017 Broadcom Corporation. All rights reserved. 5 + * 6 + * Redistribution and use in source and binary forms, with or without 7 + * modification, are permitted provided that the following conditions 8 + * are met: 9 + * 10 + * * Redistributions of source code must retain the above copyright 11 + * notice, this list of conditions and the following disclaimer. 12 + * * Redistributions in binary form must reproduce the above copyright 13 + * notice, this list of conditions and the following disclaimer in 14 + * the documentation and/or other materials provided with the 15 + * distribution. 16 + * * Neither the name of Broadcom Corporation nor the names of its 17 + * contributors may be used to endorse or promote products derived 18 + * from this software without specific prior written permission. 19 + * 20 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 + */ 32 + 33 + #ifndef __DT_BINDINGS_PINCTRL_BRCM_STINGRAY_H__ 34 + #define __DT_BINDINGS_PINCTRL_BRCM_STINGRAY_H__ 35 + 36 + /* Alternate functions available in MUX controller */ 37 + #define MODE_NITRO 0 38 + #define MODE_NAND 1 39 + #define MODE_PNOR 2 40 + #define MODE_GPIO 3 41 + 42 + /* Pad configuration attribute */ 43 + #define PAD_SLEW_RATE_ENA (1 << 0) 44 + #define PAD_SLEW_RATE_ENA_MASK (1 << 0) 45 + 46 + #define PAD_DRIVE_STRENGTH_2_MA (0 << 1) 47 + #define PAD_DRIVE_STRENGTH_4_MA (1 << 1) 48 + #define PAD_DRIVE_STRENGTH_6_MA (2 << 1) 49 + #define PAD_DRIVE_STRENGTH_8_MA (3 << 1) 50 + #define PAD_DRIVE_STRENGTH_10_MA (4 << 1) 51 + #define PAD_DRIVE_STRENGTH_12_MA (5 << 1) 52 + #define PAD_DRIVE_STRENGTH_14_MA (6 << 1) 53 + #define PAD_DRIVE_STRENGTH_16_MA (7 << 1) 54 + #define PAD_DRIVE_STRENGTH_MASK (7 << 1) 55 + 56 + #define PAD_PULL_UP_ENA (1 << 4) 57 + #define PAD_PULL_UP_ENA_MASK (1 << 4) 58 + 59 + #define PAD_PULL_DOWN_ENA (1 << 5) 60 + #define PAD_PULL_DOWN_ENA_MASK (1 << 5) 61 + 62 + #define PAD_INPUT_PATH_DIS (1 << 6) 63 + #define PAD_INPUT_PATH_DIS_MASK (1 << 6) 64 + 65 + #define PAD_HYSTERESIS_ENA (1 << 7) 66 + #define PAD_HYSTERESIS_ENA_MASK (1 << 7) 67 + 68 + #endif