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

Merge tag 'xilinx-dt-for-4.17' of https://github.com/Xilinx/linux-xlnx into next/dt

Pull "arm: Xilinx(Zynq and ZynqMP) DT changes for v4.17" from Michal Simek:

- Use SPDX license identifier
- Add Xilinx ZynqMP boards
zcu100-revC, zcu102-revA/revB/rev1.0, zcu104-revA, zcu106-revA,
zcu111-revA, zc1751 dc1/dc2/dc3/dc4
- Add Xilinx Zynq boards
cc108, zc770 dc1/dc2/dc3/dc4
- Add Digilent Zybo Z7
- Minor fixes in current DTSes

* tag 'xilinx-dt-for-4.17' of https://github.com/Xilinx/linux-xlnx: (22 commits)
arm: dts: zynq: Add Digilent Zybo Z7 board
arm: zynq: Add support for Xilinx zc770 xm013 dc4 board
arm: zynq: Add support for Xilinx zc770 xm012 dc3 board
arm: zynq: Add support for Xilinx zc770 xm011 dc2 board
arm: zynq: Add support for Xilinx zc770 xm010 dc1 board
arm: zynq: Add Xilinx cc108 board
arm: zynq: Add missing address node name in microzed board
arm: dts: zynq: Use SPDX-License-Identifier
arm: zynq: Use i2c-mux instead of i2cswitch for pca9548
arm64: zynqmp: Add support for Xilinx zc1751
arm64: zynqmp: Add support for Xilinx zc12XX boards
arm64: zynqmp: Add support for Xilinx zcu111-revA
arm64: zynqmp: Add support for Xilinx zcu106-revA
arm64: zynqmp: Add support for Xilinx zcu104-revA
arm64: zynqmp: Add support for Xilinx zcu102
arm64: zynqmp: Add support for Xilinx zcu100-revC
dt-bindings: xilinx: Add description for ZynqMP
arm64: zynqmp: Add 8-bit bus width property for ep108
arm64: zynqmp: Added OOB timing settings in zynqmp-ep108.dts
arm64: zynqmp: Add SPDX license identifier
...

+3723 -77
+56
Documentation/devicetree/bindings/arm/xilinx.txt
··· 5 5 6 6 Required root node properties: 7 7 - compatible = "xlnx,zynq-7000"; 8 + 9 + Additional compatible strings: 10 + 11 + - Xilinx internal board cc108 12 + "xlnx,zynq-cc108" 13 + 14 + - Xilinx internal board zc770 with different FMC cards 15 + "xlnx,zynq-zc770-xm010" 16 + "xlnx,zynq-zc770-xm011" 17 + "xlnx,zynq-zc770-xm012" 18 + "xlnx,zynq-zc770-xm013" 19 + 20 + - Digilent Zybo Z7 board 21 + "digilent,zynq-zybo-z7" 22 + 23 + --------------------------------------------------------------- 24 + 25 + Xilinx Zynq UltraScale+ MPSoC Platforms Device Tree Bindings 26 + 27 + Boards with ZynqMP SOC based on an ARM Cortex A53 processor 28 + shall have the following properties. 29 + 30 + Required root node properties: 31 + - compatible = "xlnx,zynqmp"; 32 + 33 + 34 + Additional compatible strings: 35 + 36 + - Xilinx internal board zc1232 37 + "xlnx,zynqmp-zc1232-revA", "xlnx,zynqmp-zc1232" 38 + 39 + - Xilinx internal board zc1254 40 + "xlnx,zynqmp-zc1254-revA", "xlnx,zynqmp-zc1254" 41 + 42 + - Xilinx internal board zc1275 43 + "xlnx,zynqmp-zc1275-revA", "xlnx,zynqmp-zc1275" 44 + 45 + - Xilinx internal board zc1751 46 + "xlnx,zynqmp-zc1751" 47 + 48 + - Xilinx 96boards compatible board zcu100 49 + "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100" 50 + 51 + - Xilinx evaluation board zcu102 52 + "xlnx,zynqmp-zcu102-revA", "xlnx,zynqmp-zcu102" 53 + "xlnx,zynqmp-zcu102-revB", "xlnx,zynqmp-zcu102" 54 + "xlnx,zynqmp-zcu102-rev1.0", "xlnx,zynqmp-zcu102" 55 + 56 + - Xilinx evaluation board zcu104 57 + "xlnx,zynqmp-zcu104-revA", "xlnx,zynqmp-zcu104" 58 + 59 + - Xilinx evaluation board zcu106 60 + "xlnx,zynqmp-zcu106-revA", "xlnx,zynqmp-zcu106" 61 + 62 + - Xilinx evaluation board zcu111 63 + "xlnx,zynqmp-zcu111-revA", "xlnx,zynqmp-zcu111"
+7 -1
arch/arm/boot/dts/Makefile
··· 1070 1070 wm8750-apc8750.dtb \ 1071 1071 wm8850-w70v2.dtb 1072 1072 dtb-$(CONFIG_ARCH_ZYNQ) += \ 1073 + zynq-cc108.dtb \ 1073 1074 zynq-microzed.dtb \ 1074 1075 zynq-parallella.dtb \ 1075 1076 zynq-zc702.dtb \ 1076 1077 zynq-zc706.dtb \ 1078 + zynq-zc770-xm010.dtb \ 1079 + zynq-zc770-xm011.dtb \ 1080 + zynq-zc770-xm012.dtb \ 1081 + zynq-zc770-xm013.dtb \ 1077 1082 zynq-zed.dtb \ 1078 - zynq-zybo.dtb 1083 + zynq-zybo.dtb \ 1084 + zynq-zybo-z7.dtb 1079 1085 dtb-$(CONFIG_MACH_ARMADA_370) += \ 1080 1086 armada-370-db.dtb \ 1081 1087 armada-370-dlink-dns327l.dtb \
+2 -10
arch/arm/boot/dts/zynq-7000.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 - * Copyright (C) 2011 - 2014 Xilinx 3 - * 4 - * This software is licensed under the terms of the GNU General Public 5 - * License version 2, as published by the Free Software Foundation, and 6 - * may be copied, distributed, and modified under those terms. 7 - * 8 - * This program is distributed in the hope that it will be useful, 9 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 - * GNU General Public License for more details. 3 + * Copyright (C) 2011 - 2014 Xilinx 12 4 */ 13 5 14 6 / {
+75
arch/arm/boot/dts/zynq-cc108.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * Xilinx CC108 board DTS 4 + * 5 + * (C) Copyright 2007-2018 Xilinx, Inc. 6 + * (C) Copyright 2007-2013 Michal Simek 7 + * (C) Copyright 2007-2012 PetaLogix Qld Pty Ltd 8 + * 9 + * Michal SIMEK <monstr@monstr.eu> 10 + */ 11 + /dts-v1/; 12 + /include/ "zynq-7000.dtsi" 13 + 14 + / { 15 + compatible = "xlnx,zynq-cc108", "xlnx,zynq-7000"; 16 + model = "Xilinx Zynq"; 17 + 18 + aliases { 19 + ethernet0 = &gem0; 20 + serial0 = &uart0; 21 + }; 22 + 23 + chosen { 24 + bootargs = ""; 25 + stdout-path = "serial0:115200n8"; 26 + }; 27 + 28 + memory@0 { 29 + device_type = "memory"; 30 + reg = <0x0 0x20000000>; 31 + }; 32 + 33 + usb_phy0: phy0 { 34 + compatible = "usb-nop-xceiv"; 35 + #phy-cells = <0>; 36 + }; 37 + 38 + usb_phy1: phy1 { 39 + compatible = "usb-nop-xceiv"; 40 + #phy-cells = <0>; 41 + }; 42 + }; 43 + 44 + &gem0 { 45 + status = "okay"; 46 + phy-mode = "rgmii-id"; 47 + phy-handle = <&ethernet_phy>; 48 + 49 + ethernet_phy: ethernet-phy@1 { 50 + reg = <1>; 51 + device_type = "ethernet-phy"; 52 + }; 53 + }; 54 + 55 + &sdhci1 { 56 + status = "okay"; 57 + broken-cd ; 58 + wp-inverted ; 59 + }; 60 + 61 + &uart0 { 62 + status = "okay"; 63 + }; 64 + 65 + &usb0 { 66 + status = "okay"; 67 + dr_mode = "host"; 68 + usb-phy = <&usb_phy0>; 69 + }; 70 + 71 + &usb1 { 72 + status = "okay"; 73 + dr_mode = "host"; 74 + usb-phy = <&usb_phy1>; 75 + };
+2 -10
arch/arm/boot/dts/zynq-microzed.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 3 * Copyright (C) 2011 - 2014 Xilinx 3 4 * Copyright (C) 2016 Jagan Teki <jteki@openedev.com> 4 - * 5 - * This software is licensed under the terms of the GNU General Public 6 - * License version 2, as published by the Free Software Foundation, and 7 - * may be copied, distributed, and modified under those terms. 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 5 */ 14 6 /dts-v1/; 15 7 /include/ "zynq-7000.dtsi" ··· 15 23 serial0 = &uart1; 16 24 }; 17 25 18 - memory { 26 + memory@0 { 19 27 device_type = "memory"; 20 28 reg = <0x0 0x40000000>; 21 29 };
+1 -9
arch/arm/boot/dts/zynq-parallella.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 3 * Copyright (c) 2014 SUSE LINUX Products GmbH 3 4 * ··· 7 6 * Copyright (C) 2011 Xilinx 8 7 * Copyright (C) 2012 National Instruments Corp. 9 8 * Copyright (C) 2013 Xilinx 10 - * 11 - * This software is licensed under the terms of the GNU General Public 12 - * License version 2, as published by the Free Software Foundation, and 13 - * may be copied, distributed, and modified under those terms. 14 - * 15 - * This program is distributed in the hope that it will be useful, 16 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 - * GNU General Public License for more details. 19 9 */ 20 10 /dts-v1/; 21 11 /include/ "zynq-7000.dtsi"
+2 -10
arch/arm/boot/dts/zynq-zc702.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 3 * Copyright (C) 2011 - 2014 Xilinx 3 4 * Copyright (C) 2012 National Instruments Corp. 4 - * 5 - * This software is licensed under the terms of the GNU General Public 6 - * License version 2, as published by the Free Software Foundation, and 7 - * may be copied, distributed, and modified under those terms. 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 5 */ 14 6 /dts-v1/; 15 7 #include "zynq-7000.dtsi" ··· 104 112 pinctrl-names = "default"; 105 113 pinctrl-0 = <&pinctrl_i2c0_default>; 106 114 107 - i2cswitch@74 { 115 + i2c-mux@74 { 108 116 compatible = "nxp,pca9548"; 109 117 #address-cells = <1>; 110 118 #size-cells = <0>;
+2 -10
arch/arm/boot/dts/zynq-zc706.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 3 * Copyright (C) 2011 - 2014 Xilinx 3 4 * Copyright (C) 2012 National Instruments Corp. 4 - * 5 - * This software is licensed under the terms of the GNU General Public 6 - * License version 2, as published by the Free Software Foundation, and 7 - * may be copied, distributed, and modified under those terms. 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 5 */ 14 6 /dts-v1/; 15 7 #include "zynq-7000.dtsi" ··· 60 68 pinctrl-names = "default"; 61 69 pinctrl-0 = <&pinctrl_i2c0_default>; 62 70 63 - i2cswitch@74 { 71 + i2c-mux@74 { 64 72 compatible = "nxp,pca9548"; 65 73 #address-cells = <1>; 66 74 #size-cells = <0>;
+95
arch/arm/boot/dts/zynq-zc770-xm010.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * Xilinx ZC770 XM010 board DTS 4 + * 5 + * Copyright (C) 2013-2018 Xilinx, Inc. 6 + */ 7 + /dts-v1/; 8 + #include "zynq-7000.dtsi" 9 + 10 + / { 11 + compatible = "xlnx,zynq-zc770-xm010", "xlnx,zynq-7000"; 12 + model = "Xilinx Zynq"; 13 + 14 + aliases { 15 + ethernet0 = &gem0; 16 + i2c0 = &i2c0; 17 + serial0 = &uart1; 18 + spi1 = &spi1; 19 + }; 20 + 21 + chosen { 22 + bootargs = ""; 23 + stdout-path = "serial0:115200n8"; 24 + }; 25 + 26 + memory@0 { 27 + device_type = "memory"; 28 + reg = <0x0 0x40000000>; 29 + }; 30 + 31 + usb_phy0: phy0 { 32 + compatible = "usb-nop-xceiv"; 33 + #phy-cells = <0>; 34 + }; 35 + }; 36 + 37 + &can0 { 38 + status = "okay"; 39 + }; 40 + 41 + &gem0 { 42 + status = "okay"; 43 + phy-mode = "rgmii-id"; 44 + phy-handle = <&ethernet_phy>; 45 + 46 + ethernet_phy: ethernet-phy@7 { 47 + reg = <7>; 48 + device_type = "ethernet-phy"; 49 + }; 50 + }; 51 + 52 + &i2c0 { 53 + status = "okay"; 54 + clock-frequency = <400000>; 55 + 56 + eeprom: eeprom@52 { 57 + compatible = "atmel,24c02"; 58 + reg = <0x52>; 59 + }; 60 + 61 + }; 62 + 63 + &sdhci0 { 64 + status = "okay"; 65 + }; 66 + 67 + &spi1 { 68 + status = "okay"; 69 + num-cs = <4>; 70 + is-decoded-cs = <0>; 71 + flash@0 { 72 + compatible = "sst25wf080", "jedec,spi-nor"; 73 + reg = <1>; 74 + spi-max-frequency = <1000000>; 75 + partitions { 76 + compatible = "fixed-partitions"; 77 + #address-cells = <1>; 78 + #size-cells = <1>; 79 + partition@0 { 80 + label = "data"; 81 + reg = <0x0 0x100000>; 82 + }; 83 + }; 84 + }; 85 + }; 86 + 87 + &uart1 { 88 + status = "okay"; 89 + }; 90 + 91 + &usb0 { 92 + status = "okay"; 93 + dr_mode = "host"; 94 + usb-phy = <&usb_phy0>; 95 + };
+64
arch/arm/boot/dts/zynq-zc770-xm011.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * Xilinx ZC770 XM013 board DTS 4 + * 5 + * Copyright (C) 2013-2018 Xilinx, Inc. 6 + */ 7 + /dts-v1/; 8 + #include "zynq-7000.dtsi" 9 + 10 + / { 11 + compatible = "xlnx,zynq-zc770-xm011", "xlnx,zynq-7000"; 12 + model = "Xilinx Zynq"; 13 + 14 + aliases { 15 + i2c0 = &i2c1; 16 + serial0 = &uart1; 17 + spi0 = &spi0; 18 + }; 19 + 20 + chosen { 21 + bootargs = ""; 22 + stdout-path = "serial0:115200n8"; 23 + }; 24 + 25 + memory@0 { 26 + device_type = "memory"; 27 + reg = <0x0 0x40000000>; 28 + }; 29 + 30 + usb_phy1: phy1 { 31 + compatible = "usb-nop-xceiv"; 32 + #phy-cells = <0>; 33 + }; 34 + }; 35 + 36 + &can0 { 37 + status = "okay"; 38 + }; 39 + 40 + &i2c1 { 41 + status = "okay"; 42 + clock-frequency = <400000>; 43 + 44 + eeprom: eeprom@52 { 45 + compatible = "atmel,24c02"; 46 + reg = <0x52>; 47 + }; 48 + }; 49 + 50 + &spi0 { 51 + status = "okay"; 52 + num-cs = <4>; 53 + is-decoded-cs = <0>; 54 + }; 55 + 56 + &uart1 { 57 + status = "okay"; 58 + }; 59 + 60 + &usb1 { 61 + status = "okay"; 62 + dr_mode = "host"; 63 + usb-phy = <&usb_phy1>; 64 + };
+64
arch/arm/boot/dts/zynq-zc770-xm012.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * Xilinx ZC770 XM012 board DTS 4 + * 5 + * Copyright (C) 2013-2018 Xilinx, Inc. 6 + */ 7 + /dts-v1/; 8 + #include "zynq-7000.dtsi" 9 + 10 + / { 11 + compatible = "xlnx,zynq-zc770-xm012", "xlnx,zynq-7000"; 12 + model = "Xilinx Zynq"; 13 + 14 + aliases { 15 + i2c0 = &i2c0; 16 + i2c1 = &i2c1; 17 + serial0 = &uart1; 18 + spi0 = &spi1; 19 + }; 20 + 21 + chosen { 22 + bootargs = ""; 23 + stdout-path = "serial0:115200n8"; 24 + }; 25 + 26 + memory@0 { 27 + device_type = "memory"; 28 + reg = <0x0 0x40000000>; 29 + }; 30 + }; 31 + 32 + &can1 { 33 + status = "okay"; 34 + }; 35 + 36 + &i2c0 { 37 + status = "okay"; 38 + clock-frequency = <400000>; 39 + 40 + eeprom0: eeprom@52 { 41 + compatible = "atmel,24c02"; 42 + reg = <0x52>; 43 + }; 44 + }; 45 + 46 + &i2c1 { 47 + status = "okay"; 48 + clock-frequency = <400000>; 49 + 50 + eeprom1: eeprom@52 { 51 + compatible = "atmel,24c02"; 52 + reg = <0x52>; 53 + }; 54 + }; 55 + 56 + &spi1 { 57 + status = "okay"; 58 + num-cs = <4>; 59 + is-decoded-cs = <0>; 60 + }; 61 + 62 + &uart1 { 63 + status = "okay"; 64 + };
+78
arch/arm/boot/dts/zynq-zc770-xm013.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * Xilinx ZC770 XM013 board DTS 4 + * 5 + * Copyright (C) 2013 Xilinx, Inc. 6 + */ 7 + /dts-v1/; 8 + #include "zynq-7000.dtsi" 9 + 10 + / { 11 + compatible = "xlnx,zynq-zc770-xm013", "xlnx,zynq-7000"; 12 + model = "Xilinx Zynq"; 13 + 14 + aliases { 15 + ethernet0 = &gem1; 16 + i2c0 = &i2c1; 17 + serial0 = &uart0; 18 + spi1 = &spi0; 19 + }; 20 + 21 + chosen { 22 + bootargs = ""; 23 + stdout-path = "serial0:115200n8"; 24 + }; 25 + 26 + memory@0 { 27 + device_type = "memory"; 28 + reg = <0x0 0x40000000>; 29 + }; 30 + }; 31 + 32 + &can1 { 33 + status = "okay"; 34 + }; 35 + 36 + &gem1 { 37 + status = "okay"; 38 + phy-mode = "rgmii-id"; 39 + phy-handle = <&ethernet_phy>; 40 + 41 + ethernet_phy: ethernet-phy@7 { 42 + reg = <7>; 43 + device_type = "ethernet-phy"; 44 + }; 45 + }; 46 + 47 + &i2c1 { 48 + status = "okay"; 49 + clock-frequency = <400000>; 50 + 51 + si570: clock-generator@55 { 52 + #clock-cells = <0>; 53 + compatible = "silabs,si570"; 54 + temperature-stability = <50>; 55 + reg = <0x55>; 56 + factory-fout = <156250000>; 57 + clock-frequency = <148500000>; 58 + }; 59 + }; 60 + 61 + &spi0 { 62 + status = "okay"; 63 + num-cs = <4>; 64 + is-decoded-cs = <0>; 65 + eeprom: eeprom@0 { 66 + at25,byte-len = <8192>; 67 + at25,addr-mode = <2>; 68 + at25,page-size = <32>; 69 + 70 + compatible = "atmel,at25"; 71 + reg = <2>; 72 + spi-max-frequency = <1000000>; 73 + }; 74 + }; 75 + 76 + &uart0 { 77 + status = "okay"; 78 + };
+1 -9
arch/arm/boot/dts/zynq-zed.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 3 * Copyright (C) 2011 - 2014 Xilinx 3 4 * Copyright (C) 2012 National Instruments Corp. 4 - * 5 - * This software is licensed under the terms of the GNU General Public 6 - * License version 2, as published by the Free Software Foundation, and 7 - * may be copied, distributed, and modified under those terms. 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 5 */ 14 6 /dts-v1/; 15 7 #include "zynq-7000.dtsi"
+58
arch/arm/boot/dts/zynq-zybo-z7.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /dts-v1/; 3 + #include "zynq-7000.dtsi" 4 + 5 + / { 6 + model = "Zynq ZYBO Z7 Development Board"; 7 + compatible = "digilent,zynq-zybo-z7", "xlnx,zynq-7000"; 8 + 9 + aliases { 10 + ethernet0 = &gem0; 11 + serial0 = &uart1; 12 + }; 13 + 14 + memory@0 { 15 + device_type = "memory"; 16 + reg = <0x0 0x20000000>; 17 + }; 18 + 19 + chosen { 20 + bootargs = ""; 21 + stdout-path = "serial0:115200n8"; 22 + }; 23 + 24 + usb_phy0: phy0 { 25 + #phy-cells = <0>; 26 + compatible = "usb-nop-xceiv"; 27 + reset-gpios = <&gpio0 46 1>; 28 + }; 29 + }; 30 + 31 + &clkc { 32 + ps-clk-frequency = <33333333>; 33 + }; 34 + 35 + &gem0 { 36 + status = "okay"; 37 + phy-mode = "rgmii-id"; 38 + phy-handle = <&ethernet_phy>; 39 + 40 + ethernet_phy: ethernet-phy@0 { 41 + reg = <0>; 42 + device_type = "ethernet-phy"; 43 + }; 44 + }; 45 + 46 + &sdhci0 { 47 + status = "okay"; 48 + }; 49 + 50 + &uart1 { 51 + status = "okay"; 52 + }; 53 + 54 + &usb0 { 55 + status = "okay"; 56 + dr_mode = "host"; 57 + usb-phy = <&usb_phy0>; 58 + };
+1 -9
arch/arm/boot/dts/zynq-zybo.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0 1 2 /* 2 3 * Copyright (C) 2011 - 2014 Xilinx 3 4 * Copyright (C) 2012 National Instruments Corp. 4 - * 5 - * This software is licensed under the terms of the GNU General Public 6 - * License version 2, as published by the Free Software Foundation, and 7 - * may be copied, distributed, and modified under those terms. 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 5 */ 14 6 /dts-v1/; 15 7 #include "zynq-7000.dtsi"
+16
arch/arm64/boot/dts/xilinx/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0 1 2 dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-ep108.dtb 3 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1232-revA.dtb 4 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1254-revA.dtb 5 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1275-revA.dtb 6 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm015-dc1.dtb 7 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm016-dc2.dtb 8 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm017-dc3.dtb 9 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm018-dc4.dtb 10 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zc1751-xm019-dc5.dtb 11 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu100-revC.dtb 12 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu102-revA.dtb 13 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu102-revB.dtb 14 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu102-rev1.0.dtb 15 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu104-revA.dtb 16 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu106-revA.dtb 17 + dtb-$(CONFIG_ARCH_ZYNQMP) += zynqmp-zcu111-revA.dtb
+213
arch/arm64/boot/dts/xilinx/zynqmp-clk.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * Clock specification for Xilinx ZynqMP 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + / { 11 + clk100: clk100 { 12 + compatible = "fixed-clock"; 13 + #clock-cells = <0>; 14 + clock-frequency = <100000000>; 15 + }; 16 + 17 + clk125: clk125 { 18 + compatible = "fixed-clock"; 19 + #clock-cells = <0>; 20 + clock-frequency = <125000000>; 21 + }; 22 + 23 + clk200: clk200 { 24 + compatible = "fixed-clock"; 25 + #clock-cells = <0>; 26 + clock-frequency = <200000000>; 27 + }; 28 + 29 + clk250: clk250 { 30 + compatible = "fixed-clock"; 31 + #clock-cells = <0>; 32 + clock-frequency = <250000000>; 33 + }; 34 + 35 + clk300: clk300 { 36 + compatible = "fixed-clock"; 37 + #clock-cells = <0>; 38 + clock-frequency = <300000000>; 39 + }; 40 + 41 + clk600: clk600 { 42 + compatible = "fixed-clock"; 43 + #clock-cells = <0>; 44 + clock-frequency = <600000000>; 45 + }; 46 + 47 + dp_aclk: clock0 { 48 + compatible = "fixed-clock"; 49 + #clock-cells = <0>; 50 + clock-frequency = <100000000>; 51 + clock-accuracy = <100>; 52 + }; 53 + 54 + dp_aud_clk: clock1 { 55 + compatible = "fixed-clock"; 56 + #clock-cells = <0>; 57 + clock-frequency = <24576000>; 58 + clock-accuracy = <100>; 59 + }; 60 + 61 + dpdma_clk: dpdma_clk { 62 + compatible = "fixed-clock"; 63 + #clock-cells = <0x0>; 64 + clock-frequency = <533000000>; 65 + }; 66 + 67 + drm_clock: drm_clock { 68 + compatible = "fixed-clock"; 69 + #clock-cells = <0x0>; 70 + clock-frequency = <262750000>; 71 + clock-accuracy = <0x64>; 72 + }; 73 + }; 74 + 75 + &can0 { 76 + clocks = <&clk100 &clk100>; 77 + }; 78 + 79 + &can1 { 80 + clocks = <&clk100 &clk100>; 81 + }; 82 + 83 + &fpd_dma_chan1 { 84 + clocks = <&clk600>, <&clk100>; 85 + }; 86 + 87 + &fpd_dma_chan2 { 88 + clocks = <&clk600>, <&clk100>; 89 + }; 90 + 91 + &fpd_dma_chan3 { 92 + clocks = <&clk600>, <&clk100>; 93 + }; 94 + 95 + &fpd_dma_chan4 { 96 + clocks = <&clk600>, <&clk100>; 97 + }; 98 + 99 + &fpd_dma_chan5 { 100 + clocks = <&clk600>, <&clk100>; 101 + }; 102 + 103 + &fpd_dma_chan6 { 104 + clocks = <&clk600>, <&clk100>; 105 + }; 106 + 107 + &fpd_dma_chan7 { 108 + clocks = <&clk600>, <&clk100>; 109 + }; 110 + 111 + &fpd_dma_chan8 { 112 + clocks = <&clk600>, <&clk100>; 113 + }; 114 + 115 + &lpd_dma_chan1 { 116 + clocks = <&clk600>, <&clk100>; 117 + }; 118 + 119 + &lpd_dma_chan2 { 120 + clocks = <&clk600>, <&clk100>; 121 + }; 122 + 123 + &lpd_dma_chan3 { 124 + clocks = <&clk600>, <&clk100>; 125 + }; 126 + 127 + &lpd_dma_chan4 { 128 + clocks = <&clk600>, <&clk100>; 129 + }; 130 + 131 + &lpd_dma_chan5 { 132 + clocks = <&clk600>, <&clk100>; 133 + }; 134 + 135 + &lpd_dma_chan6 { 136 + clocks = <&clk600>, <&clk100>; 137 + }; 138 + 139 + &lpd_dma_chan7 { 140 + clocks = <&clk600>, <&clk100>; 141 + }; 142 + 143 + &lpd_dma_chan8 { 144 + clocks = <&clk600>, <&clk100>; 145 + }; 146 + 147 + &gem0 { 148 + clocks = <&clk125>, <&clk125>, <&clk125>; 149 + }; 150 + 151 + &gem1 { 152 + clocks = <&clk125>, <&clk125>, <&clk125>; 153 + }; 154 + 155 + &gem2 { 156 + clocks = <&clk125>, <&clk125>, <&clk125>; 157 + }; 158 + 159 + &gem3 { 160 + clocks = <&clk125>, <&clk125>, <&clk125>; 161 + }; 162 + 163 + &gpio { 164 + clocks = <&clk100>; 165 + }; 166 + 167 + &i2c0 { 168 + clocks = <&clk100>; 169 + }; 170 + 171 + &i2c1 { 172 + clocks = <&clk100>; 173 + }; 174 + 175 + &sata { 176 + clocks = <&clk250>; 177 + }; 178 + 179 + &sdhci0 { 180 + clocks = <&clk200 &clk200>; 181 + }; 182 + 183 + &sdhci1 { 184 + clocks = <&clk200 &clk200>; 185 + }; 186 + 187 + &spi0 { 188 + clocks = <&clk200 &clk200>; 189 + }; 190 + 191 + &spi1 { 192 + clocks = <&clk200 &clk200>; 193 + }; 194 + 195 + &uart0 { 196 + clocks = <&clk100 &clk100>; 197 + }; 198 + 199 + &uart1 { 200 + clocks = <&clk100 &clk100>; 201 + }; 202 + 203 + &usb0 { 204 + clocks = <&clk250>, <&clk250>; 205 + }; 206 + 207 + &usb1 { 208 + clocks = <&clk250>, <&clk250>; 209 + }; 210 + 211 + &watchdog0 { 212 + clocks = <&clk250>; 213 + };
+1
arch/arm64/boot/dts/xilinx/zynqmp-ep108-clk.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 1 2 /* 2 3 * clock specification for Xilinx ZynqMP ep108 development board 3 4 *
+12 -1
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 1 2 /* 2 3 * dts file for Xilinx ZynqMP ep108 development board 3 4 * ··· 48 47 status = "okay"; 49 48 phy-handle = <&phy0>; 50 49 phy-mode = "rgmii-id"; 51 - phy0: phy@0{ 50 + phy0: phy@0 { 52 51 reg = <0>; 53 52 max-speed = <100>; 54 53 }; ··· 79 78 &sata { 80 79 status = "okay"; 81 80 ceva,broken-gen2; 81 + /* SATA Phy OOB timing settings */ 82 + ceva,p0-cominit-params = /bits/ 8 <0x0F 0x25 0x18 0x29>; 83 + ceva,p0-comwake-params = /bits/ 8 <0x04 0x0B 0x08 0x0F>; 84 + ceva,p0-burst-params = /bits/ 8 <0x0A 0x08 0x4A 0x06>; 85 + ceva,p0-retry-params = /bits/ 16 <0x0216 0x7F06>; 86 + ceva,p1-cominit-params = /bits/ 8 <0x0F 0x25 0x18 0x29>; 87 + ceva,p1-comwake-params = /bits/ 8 <0x04 0x0B 0x08 0x0F>; 88 + ceva,p1-burst-params = /bits/ 8 <0x0A 0x08 0x4A 0x06>; 89 + ceva,p1-retry-params = /bits/ 16 <0x0216 0x7F06>; 82 90 }; 83 91 84 92 &sdhci0 { 85 93 status = "okay"; 94 + bus-width = <8>; 86 95 }; 87 96 88 97 &sdhci1 {
+54
arch/arm64/boot/dts/xilinx/zynqmp-zc1232-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZC1232 4 + * 5 + * (C) Copyright 2017 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + 15 + / { 16 + model = "ZynqMP ZC1232 RevA"; 17 + compatible = "xlnx,zynqmp-zc1232-revA", "xlnx,zynqmp-zc1232", "xlnx,zynqmp"; 18 + 19 + aliases { 20 + serial0 = &uart0; 21 + serial1 = &dcc; 22 + }; 23 + 24 + chosen { 25 + bootargs = "earlycon"; 26 + stdout-path = "serial0:115200n8"; 27 + }; 28 + 29 + memory@0 { 30 + device_type = "memory"; 31 + reg = <0x0 0x0 0x0 0x80000000>; 32 + }; 33 + }; 34 + 35 + &dcc { 36 + status = "okay"; 37 + }; 38 + 39 + &sata { 40 + status = "okay"; 41 + /* SATA OOB timing settings */ 42 + ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 43 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 44 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 45 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 46 + ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 47 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 48 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 49 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 50 + }; 51 + 52 + &uart0 { 53 + status = "okay"; 54 + };
+42
arch/arm64/boot/dts/xilinx/zynqmp-zc1254-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZC1254 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + * Siva Durga Prasad Paladugu <sivadur@xilinx.com> 9 + */ 10 + 11 + /dts-v1/; 12 + 13 + #include "zynqmp.dtsi" 14 + #include "zynqmp-clk.dtsi" 15 + 16 + / { 17 + model = "ZynqMP ZC1254 RevA"; 18 + compatible = "xlnx,zynqmp-zc1254-revA", "xlnx,zynqmp-zc1254", "xlnx,zynqmp"; 19 + 20 + aliases { 21 + serial0 = &uart0; 22 + serial1 = &dcc; 23 + }; 24 + 25 + chosen { 26 + bootargs = "earlycon"; 27 + stdout-path = "serial0:115200n8"; 28 + }; 29 + 30 + memory@0 { 31 + device_type = "memory"; 32 + reg = <0x0 0x0 0x0 0x80000000>; 33 + }; 34 + }; 35 + 36 + &dcc { 37 + status = "okay"; 38 + }; 39 + 40 + &uart0 { 41 + status = "okay"; 42 + };
+42
arch/arm64/boot/dts/xilinx/zynqmp-zc1275-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZC1275 4 + * 5 + * (C) Copyright 2017 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + * Siva Durga Prasad Paladugu <sivadur@xilinx.com> 9 + */ 10 + 11 + /dts-v1/; 12 + 13 + #include "zynqmp.dtsi" 14 + #include "zynqmp-clk.dtsi" 15 + 16 + / { 17 + model = "ZynqMP ZC1275 RevA"; 18 + compatible = "xlnx,zynqmp-zc1275-revA", "xlnx,zynqmp-zc1275", "xlnx,zynqmp"; 19 + 20 + aliases { 21 + serial0 = &uart0; 22 + serial1 = &dcc; 23 + }; 24 + 25 + chosen { 26 + bootargs = "earlycon"; 27 + stdout-path = "serial0:115200n8"; 28 + }; 29 + 30 + memory@0 { 31 + device_type = "memory"; 32 + reg = <0x0 0x0 0x0 0x80000000>; 33 + }; 34 + }; 35 + 36 + &dcc { 37 + status = "okay"; 38 + }; 39 + 40 + &uart0 { 41 + status = "okay"; 42 + };
+131
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm015-dc1.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP zc1751-xm015-dc1 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + #include <dt-bindings/gpio/gpio.h> 15 + 16 + / { 17 + model = "ZynqMP zc1751-xm015-dc1 RevA"; 18 + compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp"; 19 + 20 + aliases { 21 + ethernet0 = &gem3; 22 + i2c0 = &i2c1; 23 + mmc0 = &sdhci0; 24 + mmc1 = &sdhci1; 25 + rtc0 = &rtc; 26 + serial0 = &uart0; 27 + }; 28 + 29 + chosen { 30 + bootargs = "earlycon"; 31 + stdout-path = "serial0:115200n8"; 32 + }; 33 + 34 + memory@0 { 35 + device_type = "memory"; 36 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 37 + }; 38 + }; 39 + 40 + &fpd_dma_chan1 { 41 + status = "okay"; 42 + }; 43 + 44 + &fpd_dma_chan2 { 45 + status = "okay"; 46 + }; 47 + 48 + &fpd_dma_chan3 { 49 + status = "okay"; 50 + }; 51 + 52 + &fpd_dma_chan4 { 53 + status = "okay"; 54 + }; 55 + 56 + &fpd_dma_chan5 { 57 + status = "okay"; 58 + }; 59 + 60 + &fpd_dma_chan6 { 61 + status = "okay"; 62 + }; 63 + 64 + &fpd_dma_chan7 { 65 + status = "okay"; 66 + }; 67 + 68 + &fpd_dma_chan8 { 69 + status = "okay"; 70 + }; 71 + 72 + &gem3 { 73 + status = "okay"; 74 + phy-handle = <&phy0>; 75 + phy-mode = "rgmii-id"; 76 + phy0: phy@0 { 77 + reg = <0>; 78 + }; 79 + }; 80 + 81 + &gpio { 82 + status = "okay"; 83 + }; 84 + 85 + 86 + &i2c1 { 87 + status = "okay"; 88 + clock-frequency = <400000>; 89 + 90 + eeprom: eeprom@55 { 91 + compatible = "atmel,24c64"; /* 24AA64 */ 92 + reg = <0x55>; 93 + }; 94 + }; 95 + 96 + &rtc { 97 + status = "okay"; 98 + }; 99 + 100 + &sata { 101 + status = "okay"; 102 + /* SATA phy OOB timing settings */ 103 + ceva,p0-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>; 104 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>; 105 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 106 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 107 + ceva,p1-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>; 108 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>; 109 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 110 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 111 + }; 112 + 113 + /* eMMC */ 114 + &sdhci0 { 115 + status = "okay"; 116 + bus-width = <8>; 117 + }; 118 + 119 + /* SD1 with level shifter */ 120 + &sdhci1 { 121 + status = "okay"; 122 + }; 123 + 124 + &uart0 { 125 + status = "okay"; 126 + }; 127 + 128 + /* ULPI SMSC USB3320 */ 129 + &usb0 { 130 + status = "okay"; 131 + };
+168
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm016-dc2.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP zc1751-xm016-dc2 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + #include <dt-bindings/gpio/gpio.h> 15 + 16 + / { 17 + model = "ZynqMP zc1751-xm016-dc2 RevA"; 18 + compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp"; 19 + 20 + aliases { 21 + can0 = &can0; 22 + can1 = &can1; 23 + ethernet0 = &gem2; 24 + i2c0 = &i2c0; 25 + rtc0 = &rtc; 26 + serial0 = &uart0; 27 + serial1 = &uart1; 28 + spi0 = &spi0; 29 + spi1 = &spi1; 30 + }; 31 + 32 + chosen { 33 + bootargs = "earlycon"; 34 + stdout-path = "serial0:115200n8"; 35 + }; 36 + 37 + memory@0 { 38 + device_type = "memory"; 39 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 40 + }; 41 + }; 42 + 43 + &can0 { 44 + status = "okay"; 45 + }; 46 + 47 + &can1 { 48 + status = "okay"; 49 + }; 50 + 51 + &fpd_dma_chan1 { 52 + status = "okay"; 53 + }; 54 + 55 + &fpd_dma_chan2 { 56 + status = "okay"; 57 + }; 58 + 59 + &fpd_dma_chan3 { 60 + status = "okay"; 61 + }; 62 + 63 + &fpd_dma_chan4 { 64 + status = "okay"; 65 + }; 66 + 67 + &fpd_dma_chan5 { 68 + status = "okay"; 69 + }; 70 + 71 + &fpd_dma_chan6 { 72 + status = "okay"; 73 + }; 74 + 75 + &fpd_dma_chan7 { 76 + status = "okay"; 77 + }; 78 + 79 + &fpd_dma_chan8 { 80 + status = "okay"; 81 + }; 82 + 83 + &gem2 { 84 + status = "okay"; 85 + phy-handle = <&phy0>; 86 + phy-mode = "rgmii-id"; 87 + phy0: phy@5 { 88 + reg = <5>; 89 + ti,rx-internal-delay = <0x8>; 90 + ti,tx-internal-delay = <0xa>; 91 + ti,fifo-depth = <0x1>; 92 + }; 93 + }; 94 + 95 + &gpio { 96 + status = "okay"; 97 + }; 98 + 99 + &i2c0 { 100 + status = "okay"; 101 + clock-frequency = <400000>; 102 + 103 + tca6416_u26: gpio@20 { 104 + compatible = "ti,tca6416"; 105 + reg = <0x20>; 106 + gpio-controller; 107 + #gpio-cells = <2>; 108 + /* IRQ not connected */ 109 + }; 110 + 111 + rtc@68 { 112 + compatible = "dallas,ds1339"; 113 + reg = <0x68>; 114 + }; 115 + }; 116 + 117 + &rtc { 118 + status = "okay"; 119 + }; 120 + 121 + &spi0 { 122 + status = "okay"; 123 + num-cs = <1>; 124 + 125 + spi0_flash0: flash0@0 { 126 + #address-cells = <1>; 127 + #size-cells = <1>; 128 + compatible = "sst,sst25wf080", "jedec,spi-nor"; 129 + spi-max-frequency = <50000000>; 130 + reg = <0>; 131 + 132 + partition@0 { 133 + label = "data"; 134 + reg = <0x0 0x100000>; 135 + }; 136 + }; 137 + }; 138 + 139 + &spi1 { 140 + status = "okay"; 141 + num-cs = <1>; 142 + 143 + spi1_flash0: flash0@0 { 144 + #address-cells = <1>; 145 + #size-cells = <1>; 146 + compatible = "atmel,at45db041e", "atmel,at45", "atmel,dataflash"; 147 + spi-max-frequency = <20000000>; 148 + reg = <0>; 149 + 150 + partition@0 { 151 + label = "data"; 152 + reg = <0x0 0x84000>; 153 + }; 154 + }; 155 + }; 156 + 157 + /* ULPI SMSC USB3320 */ 158 + &usb1 { 159 + status = "okay"; 160 + }; 161 + 162 + &uart0 { 163 + status = "okay"; 164 + }; 165 + 166 + &uart1 { 167 + status = "okay"; 168 + };
+150
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm017-dc3.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP zc1751-xm017-dc3 4 + * 5 + * (C) Copyright 2016 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + 15 + / { 16 + model = "ZynqMP zc1751-xm017-dc3 RevA"; 17 + compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp"; 18 + 19 + aliases { 20 + ethernet0 = &gem0; 21 + i2c0 = &i2c0; 22 + i2c1 = &i2c1; 23 + mmc0 = &sdhci1; 24 + rtc0 = &rtc; 25 + serial0 = &uart0; 26 + serial1 = &uart1; 27 + }; 28 + 29 + chosen { 30 + bootargs = "earlycon"; 31 + stdout-path = "serial0:115200n8"; 32 + }; 33 + 34 + memory@0 { 35 + device_type = "memory"; 36 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 37 + }; 38 + }; 39 + 40 + &fpd_dma_chan1 { 41 + status = "okay"; 42 + }; 43 + 44 + &fpd_dma_chan2 { 45 + status = "okay"; 46 + }; 47 + 48 + &fpd_dma_chan3 { 49 + status = "okay"; 50 + }; 51 + 52 + &fpd_dma_chan4 { 53 + status = "okay"; 54 + }; 55 + 56 + &fpd_dma_chan5 { 57 + status = "okay"; 58 + }; 59 + 60 + &fpd_dma_chan6 { 61 + status = "okay"; 62 + }; 63 + 64 + &fpd_dma_chan7 { 65 + status = "okay"; 66 + }; 67 + 68 + &fpd_dma_chan8 { 69 + status = "okay"; 70 + }; 71 + 72 + &gem0 { 73 + status = "okay"; 74 + phy-handle = <&phy0>; 75 + phy-mode = "rgmii-id"; 76 + phy0: phy@0 { /* VSC8211 */ 77 + reg = <0>; 78 + }; 79 + }; 80 + 81 + &gpio { 82 + status = "okay"; 83 + }; 84 + 85 + /* just eeprom here */ 86 + &i2c0 { 87 + status = "okay"; 88 + clock-frequency = <400000>; 89 + 90 + tca6416_u26: gpio@20 { 91 + compatible = "ti,tca6416"; 92 + reg = <0x20>; 93 + gpio-controller; 94 + #gpio-cells = <2>; 95 + /* IRQ not connected */ 96 + }; 97 + 98 + rtc@68 { 99 + compatible = "dallas,ds1339"; 100 + reg = <0x68>; 101 + }; 102 + }; 103 + 104 + /* eeprom24c02 and SE98A temp chip pca9306 */ 105 + &i2c1 { 106 + status = "okay"; 107 + clock-frequency = <400000>; 108 + }; 109 + 110 + &rtc { 111 + status = "okay"; 112 + }; 113 + 114 + &sata { 115 + status = "okay"; 116 + /* SATA phy OOB timing settings */ 117 + ceva,p0-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>; 118 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>; 119 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 120 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 121 + ceva,p1-cominit-params = /bits/ 8 <0x1B 0x4D 0x18 0x28>; 122 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x19 0x08 0x0E>; 123 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 124 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 125 + }; 126 + 127 + &sdhci1 { /* emmc with some settings */ 128 + status = "okay"; 129 + }; 130 + 131 + /* main */ 132 + &uart0 { 133 + status = "okay"; 134 + }; 135 + 136 + /* DB9 */ 137 + &uart1 { 138 + status = "okay"; 139 + }; 140 + 141 + &usb0 { 142 + status = "okay"; 143 + dr_mode = "host"; 144 + }; 145 + 146 + /* ULPI SMSC USB3320 */ 147 + &usb1 { 148 + status = "okay"; 149 + dr_mode = "host"; 150 + };
+178
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm018-dc4.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP zc1751-xm018-dc4 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + 15 + / { 16 + model = "ZynqMP zc1751-xm018-dc4"; 17 + compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp"; 18 + 19 + aliases { 20 + ethernet0 = &gem0; 21 + ethernet1 = &gem1; 22 + ethernet2 = &gem2; 23 + ethernet3 = &gem3; 24 + i2c0 = &i2c0; 25 + i2c1 = &i2c1; 26 + rtc0 = &rtc; 27 + serial0 = &uart0; 28 + serial1 = &uart1; 29 + }; 30 + 31 + chosen { 32 + bootargs = "earlycon"; 33 + stdout-path = "serial0:115200n8"; 34 + }; 35 + 36 + memory@0 { 37 + device_type = "memory"; 38 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 39 + }; 40 + }; 41 + 42 + &can0 { 43 + status = "okay"; 44 + }; 45 + 46 + &can1 { 47 + status = "okay"; 48 + }; 49 + 50 + &fpd_dma_chan1 { 51 + status = "okay"; 52 + }; 53 + 54 + &fpd_dma_chan2 { 55 + status = "okay"; 56 + }; 57 + 58 + &fpd_dma_chan3 { 59 + status = "okay"; 60 + }; 61 + 62 + &fpd_dma_chan4 { 63 + status = "okay"; 64 + }; 65 + 66 + &fpd_dma_chan5 { 67 + status = "okay"; 68 + }; 69 + 70 + &fpd_dma_chan6 { 71 + status = "okay"; 72 + }; 73 + 74 + &fpd_dma_chan7 { 75 + status = "okay"; 76 + }; 77 + 78 + &fpd_dma_chan8 { 79 + status = "okay"; 80 + }; 81 + 82 + &lpd_dma_chan1 { 83 + status = "okay"; 84 + }; 85 + 86 + &lpd_dma_chan2 { 87 + status = "okay"; 88 + }; 89 + 90 + &lpd_dma_chan3 { 91 + status = "okay"; 92 + }; 93 + 94 + &lpd_dma_chan4 { 95 + status = "okay"; 96 + }; 97 + 98 + &lpd_dma_chan5 { 99 + status = "okay"; 100 + }; 101 + 102 + &lpd_dma_chan6 { 103 + status = "okay"; 104 + }; 105 + 106 + &lpd_dma_chan7 { 107 + status = "okay"; 108 + }; 109 + 110 + &lpd_dma_chan8 { 111 + status = "okay"; 112 + }; 113 + 114 + &gem0 { 115 + status = "okay"; 116 + phy-mode = "rgmii-id"; 117 + phy-handle = <&ethernet_phy0>; 118 + ethernet_phy0: ethernet-phy@0 { /* Marvell 88e1512 */ 119 + reg = <0>; 120 + }; 121 + ethernet_phy7: ethernet-phy@7 { /* Vitesse VSC8211 */ 122 + reg = <7>; 123 + }; 124 + ethernet_phy3: ethernet-phy@3 { /* Realtek RTL8211DN */ 125 + reg = <3>; 126 + }; 127 + ethernet_phy8: ethernet-phy@8 { /* Vitesse VSC8211 */ 128 + reg = <8>; 129 + }; 130 + }; 131 + 132 + &gem1 { 133 + status = "okay"; 134 + phy-mode = "rgmii-id"; 135 + phy-handle = <&ethernet_phy7>; 136 + }; 137 + 138 + &gem2 { 139 + status = "okay"; 140 + phy-mode = "rgmii-id"; 141 + phy-handle = <&ethernet_phy3>; 142 + }; 143 + 144 + &gem3 { 145 + status = "okay"; 146 + phy-mode = "rgmii-id"; 147 + phy-handle = <&ethernet_phy8>; 148 + }; 149 + 150 + &gpio { 151 + status = "okay"; 152 + }; 153 + 154 + &i2c0 { 155 + clock-frequency = <400000>; 156 + status = "okay"; 157 + }; 158 + 159 + &i2c1 { 160 + clock-frequency = <400000>; 161 + status = "okay"; 162 + }; 163 + 164 + &rtc { 165 + status = "okay"; 166 + }; 167 + 168 + &uart0 { 169 + status = "okay"; 170 + }; 171 + 172 + &uart1 { 173 + status = "okay"; 174 + }; 175 + 176 + &watchdog0 { 177 + status = "okay"; 178 + };
+125
arch/arm64/boot/dts/xilinx/zynqmp-zc1751-xm019-dc5.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP zc1751-xm019-dc5 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Siva Durga Prasad <siva.durga.paladugu@xilinx.com> 8 + * Michal Simek <michal.simek@xilinx.com> 9 + */ 10 + 11 + /dts-v1/; 12 + 13 + #include "zynqmp.dtsi" 14 + #include "zynqmp-clk.dtsi" 15 + #include <dt-bindings/gpio/gpio.h> 16 + 17 + / { 18 + model = "ZynqMP zc1751-xm019-dc5 RevA"; 19 + compatible = "xlnx,zynqmp-zc1751", "xlnx,zynqmp"; 20 + 21 + aliases { 22 + ethernet0 = &gem1; 23 + i2c0 = &i2c0; 24 + i2c1 = &i2c1; 25 + mmc0 = &sdhci0; 26 + serial0 = &uart0; 27 + serial1 = &uart1; 28 + }; 29 + 30 + chosen { 31 + bootargs = "earlycon"; 32 + stdout-path = "serial0:115200n8"; 33 + }; 34 + 35 + memory@0 { 36 + device_type = "memory"; 37 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 38 + }; 39 + }; 40 + 41 + &fpd_dma_chan1 { 42 + status = "okay"; 43 + }; 44 + 45 + &fpd_dma_chan2 { 46 + status = "okay"; 47 + }; 48 + 49 + &fpd_dma_chan3 { 50 + status = "okay"; 51 + }; 52 + 53 + &fpd_dma_chan4 { 54 + status = "okay"; 55 + }; 56 + 57 + &fpd_dma_chan5 { 58 + status = "okay"; 59 + }; 60 + 61 + &fpd_dma_chan6 { 62 + status = "okay"; 63 + }; 64 + 65 + &fpd_dma_chan7 { 66 + status = "okay"; 67 + }; 68 + 69 + &fpd_dma_chan8 { 70 + status = "okay"; 71 + }; 72 + 73 + &gem1 { 74 + status = "okay"; 75 + phy-handle = <&phy0>; 76 + phy-mode = "rgmii-id"; 77 + phy0: phy@0 { 78 + reg = <0>; 79 + }; 80 + }; 81 + 82 + &gpio { 83 + status = "okay"; 84 + }; 85 + 86 + &i2c0 { 87 + status = "okay"; 88 + }; 89 + 90 + &i2c1 { 91 + status = "okay"; 92 + }; 93 + 94 + &sdhci0 { 95 + status = "okay"; 96 + no-1-8-v; 97 + }; 98 + 99 + &ttc0 { 100 + status = "okay"; 101 + }; 102 + 103 + &ttc1 { 104 + status = "okay"; 105 + }; 106 + 107 + &ttc2 { 108 + status = "okay"; 109 + }; 110 + 111 + &ttc3 { 112 + status = "okay"; 113 + }; 114 + 115 + &uart0 { 116 + status = "okay"; 117 + }; 118 + 119 + &uart1 { 120 + status = "okay"; 121 + }; 122 + 123 + &watchdog0 { 124 + status = "okay"; 125 + };
+289
arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU100 revC 4 + * 5 + * (C) Copyright 2016 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + * Nathalie Chan King Choy 9 + */ 10 + 11 + /dts-v1/; 12 + 13 + #include "zynqmp.dtsi" 14 + #include "zynqmp-clk.dtsi" 15 + #include <dt-bindings/input/input.h> 16 + #include <dt-bindings/interrupt-controller/irq.h> 17 + #include <dt-bindings/gpio/gpio.h> 18 + 19 + / { 20 + model = "ZynqMP ZCU100 RevC"; 21 + compatible = "xlnx,zynqmp-zcu100-revC", "xlnx,zynqmp-zcu100", "xlnx,zynqmp"; 22 + 23 + aliases { 24 + i2c0 = &i2c1; 25 + rtc0 = &rtc; 26 + serial0 = &uart1; 27 + serial1 = &uart0; 28 + serial2 = &dcc; 29 + spi0 = &spi0; 30 + spi1 = &spi1; 31 + mmc0 = &sdhci0; 32 + mmc1 = &sdhci1; 33 + }; 34 + 35 + chosen { 36 + bootargs = "earlycon"; 37 + stdout-path = "serial0:115200n8"; 38 + }; 39 + 40 + memory@0 { 41 + device_type = "memory"; 42 + reg = <0x0 0x0 0x0 0x80000000>; 43 + }; 44 + 45 + gpio-keys { 46 + compatible = "gpio-keys"; 47 + #address-cells = <1>; 48 + #size-cells = <0>; 49 + autorepeat; 50 + sw4 { 51 + label = "sw4"; 52 + gpios = <&gpio 23 GPIO_ACTIVE_LOW>; 53 + linux,code = <KEY_POWER>; 54 + gpio-key,wakeup; 55 + autorepeat; 56 + }; 57 + }; 58 + 59 + leds { 60 + compatible = "gpio-leds"; 61 + ds2 { 62 + label = "ds2"; 63 + gpios = <&gpio 20 GPIO_ACTIVE_HIGH>; 64 + linux,default-trigger = "heartbeat"; 65 + }; 66 + 67 + ds3 { 68 + label = "ds3"; 69 + gpios = <&gpio 19 GPIO_ACTIVE_HIGH>; 70 + linux,default-trigger = "phy0tx"; /* WLAN tx */ 71 + default-state = "off"; 72 + }; 73 + 74 + ds4 { 75 + label = "ds4"; 76 + gpios = <&gpio 18 GPIO_ACTIVE_HIGH>; 77 + linux,default-trigger = "phy0rx"; /* WLAN rx */ 78 + default-state = "off"; 79 + }; 80 + 81 + ds5 { 82 + label = "ds5"; 83 + gpios = <&gpio 17 GPIO_ACTIVE_HIGH>; 84 + linux,default-trigger = "bluetooth-power"; 85 + }; 86 + 87 + vbus_det { /* U5 USB5744 VBUS detection via MIO25 */ 88 + label = "vbus_det"; 89 + gpios = <&gpio 25 GPIO_ACTIVE_HIGH>; 90 + default-state = "on"; 91 + }; 92 + 93 + bt_power { 94 + label = "bt_power"; 95 + gpios = <&gpio 8 GPIO_ACTIVE_HIGH>; 96 + default-state = "on"; 97 + }; 98 + }; 99 + 100 + wmmcsdio_fixed: fixedregulator-mmcsdio { 101 + compatible = "regulator-fixed"; 102 + regulator-name = "wmmcsdio_fixed"; 103 + regulator-min-microvolt = <3300000>; 104 + regulator-max-microvolt = <3300000>; 105 + regulator-always-on; 106 + regulator-boot-on; 107 + }; 108 + 109 + sdio_pwrseq: sdio_pwrseq { 110 + compatible = "mmc-pwrseq-simple"; 111 + reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */ 112 + }; 113 + }; 114 + 115 + &dcc { 116 + status = "okay"; 117 + }; 118 + 119 + &gpio { 120 + status = "okay"; 121 + gpio-line-names = "UART1_TX", "UART1_RX", "UART0_RX", "UART0_TX", "I2C1_SCL", 122 + "I2C1_SDA", "SPI1_SCLK", "WLAN_EN", "BT_EN", "SPI1_CS", 123 + "SPI1_MISO", "SPI1_MOSI", "I2C_MUX_RESET", "SD0_DAT0", "SD0_DAT1", 124 + "SD0_DAT2", "SD0_DAT3", "PS_LED3", "PS_LED2", "PS_LED1", 125 + "PS_LED0", "SD0_CMD", "SD0_CLK", "GPIO_PB", "SD0_DETECT", 126 + "VBUS_DET", "POWER_INT", "DP_AUX", "DP_HPD", "DP_OE", 127 + "DP_AUX_IN", "INA226_ALERT", "PS_FP_PWR_EN", "PL_PWR_EN", "POWER_KILL", 128 + "", "GPIO-A", "GPIO-B", "SPI0_SCLK", "GPIO-C", 129 + "GPIO-D", "SPI0_CS", "SPI0_MISO", "SPI_MOSI", "GPIO-E", 130 + "GPIO-F", "SD1_D0", "SD1_D1", "SD1_D2", "SD1_D3", 131 + "SD1_CMD", "SD1_CLK", "USB0_CLK", "USB0_DIR", "USB0_DATA2", 132 + "USB0_NXT", "USB0_DATA0", "USB0_DATA1", "USB0_STP", "USB0_DATA3", 133 + "USB0_DATA4", "USB0_DATA5", "USB0_DATA6", "USB0_DATA7", "USB1_CLK", 134 + "USB1_DIR", "USB1_DATA2", "USB1_NXT", "USB1_DATA0", "USB1_DATA1", 135 + "USB1_STP", "USB1_DATA3", "USB1_DATA4", "USB1_DATA5", "USB1_DATA6", 136 + "USB_DATA7", "WLAN_IRQ", "PMIC_IRQ", /* MIO end and EMIO start */ 137 + "", "", 138 + "", "", "", "", "", "", "", "", "", "", 139 + "", "", "", "", "", "", "", "", "", "", 140 + "", "", "", "", "", "", "", "", "", "", 141 + "", "", "", "", "", "", "", "", "", "", 142 + "", "", "", "", "", "", "", "", "", "", 143 + "", "", "", "", "", "", "", "", "", "", 144 + "", "", "", "", "", "", "", "", "", "", 145 + "", "", "", "", "", "", "", "", "", "", 146 + "", "", "", "", "", "", "", "", "", "", 147 + "", "", "", ""; 148 + }; 149 + 150 + &i2c1 { 151 + status = "okay"; 152 + clock-frequency = <100000>; 153 + i2c-mux@75 { /* u11 */ 154 + compatible = "nxp,pca9548"; 155 + #address-cells = <1>; 156 + #size-cells = <0>; 157 + reg = <0x75>; 158 + i2csw_0: i2c@0 { 159 + #address-cells = <1>; 160 + #size-cells = <0>; 161 + reg = <0>; 162 + label = "LS-I2C0"; 163 + }; 164 + i2csw_1: i2c@1 { 165 + #address-cells = <1>; 166 + #size-cells = <0>; 167 + reg = <1>; 168 + label = "LS-I2C1"; 169 + }; 170 + i2csw_2: i2c@2 { 171 + #address-cells = <1>; 172 + #size-cells = <0>; 173 + reg = <2>; 174 + label = "HS-I2C2"; 175 + }; 176 + i2csw_3: i2c@3 { 177 + #address-cells = <1>; 178 + #size-cells = <0>; 179 + reg = <3>; 180 + label = "HS-I2C3"; 181 + }; 182 + i2csw_4: i2c@4 { 183 + #address-cells = <1>; 184 + #size-cells = <0>; 185 + reg = <0x4>; 186 + 187 + pmic: pmic@5e { /* Custom TI PMIC u33 */ 188 + compatible = "ti,tps65086"; 189 + reg = <0x5e>; 190 + interrupt-parent = <&gpio>; 191 + interrupts = <77 GPIO_ACTIVE_LOW>; 192 + #gpio-cells = <2>; 193 + gpio-controller; 194 + }; 195 + }; 196 + i2csw_5: i2c@5 { 197 + #address-cells = <1>; 198 + #size-cells = <0>; 199 + reg = <5>; 200 + /* PS_PMBUS */ 201 + ina226@40 { /* u35 */ 202 + compatible = "ti,ina226"; 203 + reg = <0x40>; 204 + shunt-resistor = <10000>; 205 + /* MIO31 is alert which should be routed to PMUFW */ 206 + }; 207 + }; 208 + i2csw_6: i2c@6 { 209 + #address-cells = <1>; 210 + #size-cells = <0>; 211 + reg = <6>; 212 + /* 213 + * Not Connected 214 + */ 215 + }; 216 + i2csw_7: i2c@7 { 217 + #address-cells = <1>; 218 + #size-cells = <0>; 219 + reg = <7>; 220 + /* 221 + * usb5744 (DNP) - U5 222 + * 100kHz - this is default freq for us 223 + */ 224 + }; 225 + }; 226 + }; 227 + 228 + &rtc { 229 + status = "okay"; 230 + }; 231 + 232 + /* SD0 only supports 3.3V, no level shifter */ 233 + &sdhci0 { 234 + status = "okay"; 235 + no-1-8-v; 236 + broken-cd; /* CD has to be enabled by default */ 237 + disable-wp; 238 + }; 239 + 240 + &sdhci1 { 241 + status = "okay"; 242 + bus-width = <0x4>; 243 + non-removable; 244 + disable-wp; 245 + cap-power-off-card; 246 + mmc-pwrseq = <&sdio_pwrseq>; 247 + vqmmc-supply = <&wmmcsdio_fixed>; 248 + #address-cells = <1>; 249 + #size-cells = <0>; 250 + wlcore: wifi@2 { 251 + compatible = "ti,wl1831"; 252 + reg = <2>; 253 + interrupt-parent = <&gpio>; 254 + interrupts = <76 IRQ_TYPE_EDGE_RISING>; /* MIO76 WLAN_IRQ 1V8 */ 255 + }; 256 + }; 257 + 258 + &spi0 { /* Low Speed connector */ 259 + status = "okay"; 260 + label = "LS-SPI0"; 261 + }; 262 + 263 + &spi1 { /* High Speed connector */ 264 + status = "okay"; 265 + label = "HS-SPI1"; 266 + }; 267 + 268 + &uart0 { 269 + status = "okay"; 270 + }; 271 + 272 + &uart1 { 273 + status = "okay"; 274 + 275 + }; 276 + 277 + /* ULPI SMSC USB3320 */ 278 + &usb0 { 279 + status = "okay"; 280 + }; 281 + 282 + /* ULPI SMSC USB3320 */ 283 + &usb1 { 284 + status = "okay"; 285 + }; 286 + 287 + &watchdog0 { 288 + status = "okay"; 289 + };
+36
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev1.0.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU102 Rev1.0 4 + * 5 + * (C) Copyright 2016 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + #include "zynqmp-zcu102-revB.dts" 11 + 12 + / { 13 + model = "ZynqMP ZCU102 Rev1.0"; 14 + compatible = "xlnx,zynqmp-zcu102-rev1.0", "xlnx,zynqmp-zcu102", "xlnx,zynqmp"; 15 + }; 16 + 17 + &eeprom { 18 + #address-cells = <1>; 19 + #size-cells = <1>; 20 + 21 + board_sn: board-sn@0 { 22 + reg = <0x0 0x14>; 23 + }; 24 + 25 + eth_mac: eth-mac@20 { 26 + reg = <0x20 0x6>; 27 + }; 28 + 29 + board_name: board-name@d0 { 30 + reg = <0xd0 0x6>; 31 + }; 32 + 33 + board_revision: board-revision@e0 { 34 + reg = <0xe0 0x3>; 35 + }; 36 + };
+548
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU102 RevA 4 + * 5 + * (C) Copyright 2015 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + #include <dt-bindings/input/input.h> 15 + #include <dt-bindings/gpio/gpio.h> 16 + 17 + / { 18 + model = "ZynqMP ZCU102 RevA"; 19 + compatible = "xlnx,zynqmp-zcu102-revA", "xlnx,zynqmp-zcu102", "xlnx,zynqmp"; 20 + 21 + aliases { 22 + ethernet0 = &gem3; 23 + i2c0 = &i2c0; 24 + i2c1 = &i2c1; 25 + mmc0 = &sdhci1; 26 + rtc0 = &rtc; 27 + serial0 = &uart0; 28 + serial1 = &uart1; 29 + serial2 = &dcc; 30 + }; 31 + 32 + chosen { 33 + bootargs = "earlycon"; 34 + stdout-path = "serial0:115200n8"; 35 + }; 36 + 37 + memory@0 { 38 + device_type = "memory"; 39 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 40 + }; 41 + 42 + gpio-keys { 43 + compatible = "gpio-keys"; 44 + #address-cells = <1>; 45 + #size-cells = <0>; 46 + autorepeat; 47 + sw19 { 48 + label = "sw19"; 49 + gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; 50 + linux,code = <KEY_DOWN>; 51 + gpio-key,wakeup; 52 + autorepeat; 53 + }; 54 + }; 55 + 56 + leds { 57 + compatible = "gpio-leds"; 58 + heartbeat_led { 59 + label = "heartbeat"; 60 + gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; 61 + linux,default-trigger = "heartbeat"; 62 + }; 63 + }; 64 + }; 65 + 66 + &can1 { 67 + status = "okay"; 68 + }; 69 + 70 + &dcc { 71 + status = "okay"; 72 + }; 73 + 74 + &fpd_dma_chan1 { 75 + status = "okay"; 76 + }; 77 + 78 + &fpd_dma_chan2 { 79 + status = "okay"; 80 + }; 81 + 82 + &fpd_dma_chan3 { 83 + status = "okay"; 84 + }; 85 + 86 + &fpd_dma_chan4 { 87 + status = "okay"; 88 + }; 89 + 90 + &fpd_dma_chan5 { 91 + status = "okay"; 92 + }; 93 + 94 + &fpd_dma_chan6 { 95 + status = "okay"; 96 + }; 97 + 98 + &fpd_dma_chan7 { 99 + status = "okay"; 100 + }; 101 + 102 + &fpd_dma_chan8 { 103 + status = "okay"; 104 + }; 105 + 106 + &gem3 { 107 + status = "okay"; 108 + phy-handle = <&phy0>; 109 + phy-mode = "rgmii-id"; 110 + phy0: phy@21 { 111 + reg = <21>; 112 + ti,rx-internal-delay = <0x8>; 113 + ti,tx-internal-delay = <0xa>; 114 + ti,fifo-depth = <0x1>; 115 + }; 116 + }; 117 + 118 + &gpio { 119 + status = "okay"; 120 + }; 121 + 122 + &i2c0 { 123 + status = "okay"; 124 + clock-frequency = <400000>; 125 + 126 + tca6416_u97: gpio@20 { 127 + compatible = "ti,tca6416"; 128 + reg = <0x20>; 129 + gpio-controller; 130 + #gpio-cells = <2>; 131 + /* 132 + * IRQ not connected 133 + * Lines: 134 + * 0 - PS_GTR_LAN_SEL0 135 + * 1 - PS_GTR_LAN_SEL1 136 + * 2 - PS_GTR_LAN_SEL2 137 + * 3 - PS_GTR_LAN_SEL3 138 + * 4 - PCI_CLK_DIR_SEL 139 + * 5 - IIC_MUX_RESET_B 140 + * 6 - GEM3_EXP_RESET_B 141 + * 7, 10 - 17 - not connected 142 + */ 143 + 144 + gtr_sel0 { 145 + gpio-hog; 146 + gpios = <0 0>; 147 + output-low; /* PCIE = 0, DP = 1 */ 148 + line-name = "sel0"; 149 + }; 150 + gtr_sel1 { 151 + gpio-hog; 152 + gpios = <1 0>; 153 + output-high; /* PCIE = 0, DP = 1 */ 154 + line-name = "sel1"; 155 + }; 156 + gtr_sel2 { 157 + gpio-hog; 158 + gpios = <2 0>; 159 + output-high; /* PCIE = 0, USB0 = 1 */ 160 + line-name = "sel2"; 161 + }; 162 + gtr_sel3 { 163 + gpio-hog; 164 + gpios = <3 0>; 165 + output-high; /* PCIE = 0, SATA = 1 */ 166 + line-name = "sel3"; 167 + }; 168 + }; 169 + 170 + tca6416_u61: gpio@21 { 171 + compatible = "ti,tca6416"; 172 + reg = <0x21>; 173 + gpio-controller; 174 + #gpio-cells = <2>; 175 + /* 176 + * IRQ not connected 177 + * Lines: 178 + * 0 - VCCPSPLL_EN 179 + * 1 - MGTRAVCC_EN 180 + * 2 - MGTRAVTT_EN 181 + * 3 - VCCPSDDRPLL_EN 182 + * 4 - MIO26_PMU_INPUT_LS 183 + * 5 - PL_PMBUS_ALERT 184 + * 6 - PS_PMBUS_ALERT 185 + * 7 - MAXIM_PMBUS_ALERT 186 + * 10 - PL_DDR4_VTERM_EN 187 + * 11 - PL_DDR4_VPP_2V5_EN 188 + * 12 - PS_DIMM_VDDQ_TO_PSVCCO_ON 189 + * 13 - PS_DIMM_SUSPEND_EN 190 + * 14 - PS_DDR4_VTERM_EN 191 + * 15 - PS_DDR4_VPP_2V5_EN 192 + * 16 - 17 - not connected 193 + */ 194 + }; 195 + 196 + i2c-mux@75 { /* u60 */ 197 + compatible = "nxp,pca9544"; 198 + #address-cells = <1>; 199 + #size-cells = <0>; 200 + reg = <0x75>; 201 + i2c@0 { 202 + #address-cells = <1>; 203 + #size-cells = <0>; 204 + reg = <0>; 205 + /* PS_PMBUS */ 206 + ina226@40 { /* u76 */ 207 + compatible = "ti,ina226"; 208 + reg = <0x40>; 209 + shunt-resistor = <5000>; 210 + }; 211 + ina226@41 { /* u77 */ 212 + compatible = "ti,ina226"; 213 + reg = <0x41>; 214 + shunt-resistor = <5000>; 215 + }; 216 + ina226@42 { /* u78 */ 217 + compatible = "ti,ina226"; 218 + reg = <0x42>; 219 + shunt-resistor = <5000>; 220 + }; 221 + ina226@43 { /* u87 */ 222 + compatible = "ti,ina226"; 223 + reg = <0x43>; 224 + shunt-resistor = <5000>; 225 + }; 226 + ina226@44 { /* u85 */ 227 + compatible = "ti,ina226"; 228 + reg = <0x44>; 229 + shunt-resistor = <5000>; 230 + }; 231 + ina226@45 { /* u86 */ 232 + compatible = "ti,ina226"; 233 + reg = <0x45>; 234 + shunt-resistor = <5000>; 235 + }; 236 + ina226@46 { /* u93 */ 237 + compatible = "ti,ina226"; 238 + reg = <0x46>; 239 + shunt-resistor = <5000>; 240 + }; 241 + ina226@47 { /* u88 */ 242 + compatible = "ti,ina226"; 243 + reg = <0x47>; 244 + shunt-resistor = <5000>; 245 + }; 246 + ina226@4a { /* u15 */ 247 + compatible = "ti,ina226"; 248 + reg = <0x4a>; 249 + shunt-resistor = <5000>; 250 + }; 251 + ina226@4b { /* u92 */ 252 + compatible = "ti,ina226"; 253 + reg = <0x4b>; 254 + shunt-resistor = <5000>; 255 + }; 256 + }; 257 + i2c@1 { 258 + #address-cells = <1>; 259 + #size-cells = <0>; 260 + reg = <1>; 261 + /* PL_PMBUS */ 262 + ina226@40 { /* u79 */ 263 + compatible = "ti,ina226"; 264 + reg = <0x40>; 265 + shunt-resistor = <2000>; 266 + }; 267 + ina226@41 { /* u81 */ 268 + compatible = "ti,ina226"; 269 + reg = <0x41>; 270 + shunt-resistor = <5000>; 271 + }; 272 + ina226@42 { /* u80 */ 273 + compatible = "ti,ina226"; 274 + reg = <0x42>; 275 + shunt-resistor = <5000>; 276 + }; 277 + ina226@43 { /* u84 */ 278 + compatible = "ti,ina226"; 279 + reg = <0x43>; 280 + shunt-resistor = <5000>; 281 + }; 282 + ina226@44 { /* u16 */ 283 + compatible = "ti,ina226"; 284 + reg = <0x44>; 285 + shunt-resistor = <5000>; 286 + }; 287 + ina226@45 { /* u65 */ 288 + compatible = "ti,ina226"; 289 + reg = <0x45>; 290 + shunt-resistor = <5000>; 291 + }; 292 + ina226@46 { /* u74 */ 293 + compatible = "ti,ina226"; 294 + reg = <0x46>; 295 + shunt-resistor = <5000>; 296 + }; 297 + ina226@47 { /* u75 */ 298 + compatible = "ti,ina226"; 299 + reg = <0x47>; 300 + shunt-resistor = <5000>; 301 + }; 302 + }; 303 + i2c@2 { 304 + #address-cells = <1>; 305 + #size-cells = <0>; 306 + reg = <2>; 307 + /* MAXIM_PMBUS - 00 */ 308 + max15301@a { /* u46 */ 309 + compatible = "maxim,max15301"; 310 + reg = <0xa>; 311 + }; 312 + max15303@b { /* u4 */ 313 + compatible = "maxim,max15303"; 314 + reg = <0xb>; 315 + }; 316 + max15303@10 { /* u13 */ 317 + compatible = "maxim,max15303"; 318 + reg = <0x10>; 319 + }; 320 + max15301@13 { /* u47 */ 321 + compatible = "maxim,max15301"; 322 + reg = <0x13>; 323 + }; 324 + max15303@14 { /* u7 */ 325 + compatible = "maxim,max15303"; 326 + reg = <0x14>; 327 + }; 328 + max15303@15 { /* u6 */ 329 + compatible = "maxim,max15303"; 330 + reg = <0x15>; 331 + }; 332 + max15303@16 { /* u10 */ 333 + compatible = "maxim,max15303"; 334 + reg = <0x16>; 335 + }; 336 + max15303@17 { /* u9 */ 337 + compatible = "maxim,max15303"; 338 + reg = <0x17>; 339 + }; 340 + max15301@18 { /* u63 */ 341 + compatible = "maxim,max15301"; 342 + reg = <0x18>; 343 + }; 344 + max15303@1a { /* u49 */ 345 + compatible = "maxim,max15303"; 346 + reg = <0x1a>; 347 + }; 348 + max15303@1d { /* u18 */ 349 + compatible = "maxim,max15303"; 350 + reg = <0x1d>; 351 + }; 352 + max15303@20 { /* u8 */ 353 + compatible = "maxim,max15303"; 354 + status = "disabled"; /* unreachable */ 355 + reg = <0x20>; 356 + }; 357 + 358 + max20751@72 { /* u95 */ 359 + compatible = "maxim,max20751"; 360 + reg = <0x72>; 361 + }; 362 + max20751@73 { /* u96 */ 363 + compatible = "maxim,max20751"; 364 + reg = <0x73>; 365 + }; 366 + }; 367 + /* Bus 3 is not connected */ 368 + }; 369 + }; 370 + 371 + &i2c1 { 372 + status = "okay"; 373 + clock-frequency = <400000>; 374 + 375 + /* PL i2c via PCA9306 - u45 */ 376 + i2c-mux@74 { /* u34 */ 377 + compatible = "nxp,pca9548"; 378 + #address-cells = <1>; 379 + #size-cells = <0>; 380 + reg = <0x74>; 381 + i2c@0 { 382 + #address-cells = <1>; 383 + #size-cells = <0>; 384 + reg = <0>; 385 + /* 386 + * IIC_EEPROM 1kB memory which uses 256B blocks 387 + * where every block has different address. 388 + * 0 - 256B address 0x54 389 + * 256B - 512B address 0x55 390 + * 512B - 768B address 0x56 391 + * 768B - 1024B address 0x57 392 + */ 393 + eeprom: eeprom@54 { /* u23 */ 394 + compatible = "atmel,24c08"; 395 + reg = <0x54>; 396 + }; 397 + }; 398 + i2c@1 { 399 + #address-cells = <1>; 400 + #size-cells = <0>; 401 + reg = <1>; 402 + si5341: clock-generator@36 { /* SI5341 - u69 */ 403 + reg = <0x36>; 404 + }; 405 + 406 + }; 407 + i2c@2 { 408 + #address-cells = <1>; 409 + #size-cells = <0>; 410 + reg = <2>; 411 + si570_1: clock-generator@5d { /* USER SI570 - u42 */ 412 + #clock-cells = <0>; 413 + compatible = "silabs,si570"; 414 + reg = <0x5d>; 415 + temperature-stability = <50>; 416 + factory-fout = <300000000>; 417 + clock-frequency = <300000000>; 418 + }; 419 + }; 420 + i2c@3 { 421 + #address-cells = <1>; 422 + #size-cells = <0>; 423 + reg = <3>; 424 + si570_2: clock-generator@5d { /* USER MGT SI570 - u56 */ 425 + #clock-cells = <0>; 426 + compatible = "silabs,si570"; 427 + reg = <0x5d>; 428 + temperature-stability = <50>; /* copy from zc702 */ 429 + factory-fout = <156250000>; 430 + clock-frequency = <148500000>; 431 + }; 432 + }; 433 + i2c@4 { 434 + #address-cells = <1>; 435 + #size-cells = <0>; 436 + reg = <4>; 437 + si5328: clock-generator@69 {/* SI5328 - u20 */ 438 + reg = <0x69>; 439 + /* 440 + * Chip has interrupt present connected to PL 441 + * interrupt-parent = <&>; 442 + * interrupts = <>; 443 + */ 444 + }; 445 + }; 446 + /* 5 - 7 unconnected */ 447 + }; 448 + 449 + i2c-mux@75 { 450 + compatible = "nxp,pca9548"; /* u135 */ 451 + #address-cells = <1>; 452 + #size-cells = <0>; 453 + reg = <0x75>; 454 + 455 + i2c@0 { 456 + #address-cells = <1>; 457 + #size-cells = <0>; 458 + reg = <0>; 459 + /* HPC0_IIC */ 460 + }; 461 + i2c@1 { 462 + #address-cells = <1>; 463 + #size-cells = <0>; 464 + reg = <1>; 465 + /* HPC1_IIC */ 466 + }; 467 + i2c@2 { 468 + #address-cells = <1>; 469 + #size-cells = <0>; 470 + reg = <2>; 471 + /* SYSMON */ 472 + }; 473 + i2c@3 { 474 + #address-cells = <1>; 475 + #size-cells = <0>; 476 + reg = <3>; 477 + /* DDR4 SODIMM */ 478 + }; 479 + i2c@4 { 480 + #address-cells = <1>; 481 + #size-cells = <0>; 482 + reg = <4>; 483 + /* SEP 3 */ 484 + }; 485 + i2c@5 { 486 + #address-cells = <1>; 487 + #size-cells = <0>; 488 + reg = <5>; 489 + /* SEP 2 */ 490 + }; 491 + i2c@6 { 492 + #address-cells = <1>; 493 + #size-cells = <0>; 494 + reg = <6>; 495 + /* SEP 1 */ 496 + }; 497 + i2c@7 { 498 + #address-cells = <1>; 499 + #size-cells = <0>; 500 + reg = <7>; 501 + /* SEP 0 */ 502 + }; 503 + }; 504 + }; 505 + 506 + &pcie { 507 + status = "okay"; 508 + }; 509 + 510 + &rtc { 511 + status = "okay"; 512 + }; 513 + 514 + &sata { 515 + status = "okay"; 516 + /* SATA OOB timing settings */ 517 + ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 518 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 519 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 520 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 521 + ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 522 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 523 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 524 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 525 + }; 526 + 527 + /* SD1 with level shifter */ 528 + &sdhci1 { 529 + status = "okay"; 530 + no-1-8-v; 531 + }; 532 + 533 + &uart0 { 534 + status = "okay"; 535 + }; 536 + 537 + &uart1 { 538 + status = "okay"; 539 + }; 540 + 541 + /* ULPI SMSC USB3320 */ 542 + &usb0 { 543 + status = "okay"; 544 + }; 545 + 546 + &watchdog0 { 547 + status = "okay"; 548 + };
+40
arch/arm64/boot/dts/xilinx/zynqmp-zcu102-revB.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU102 RevB 4 + * 5 + * (C) Copyright 2016 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + #include "zynqmp-zcu102-revA.dts" 11 + 12 + / { 13 + model = "ZynqMP ZCU102 RevB"; 14 + compatible = "xlnx,zynqmp-zcu102-revB", "xlnx,zynqmp-zcu102", "xlnx,zynqmp"; 15 + }; 16 + 17 + &gem3 { 18 + phy-handle = <&phyc>; 19 + phyc: phy@c { 20 + reg = <0xc>; 21 + ti,rx-internal-delay = <0x8>; 22 + ti,tx-internal-delay = <0xa>; 23 + ti,fifo-depth = <0x1>; 24 + }; 25 + /* Cleanup from RevA */ 26 + /delete-node/ phy@21; 27 + }; 28 + 29 + /* Fix collision with u61 */ 30 + &i2c0 { 31 + i2c-mux@75 { 32 + i2c@2 { 33 + max15303@1b { /* u8 */ 34 + compatible = "maxim,max15303"; 35 + reg = <0x1b>; 36 + }; 37 + /delete-node/ max15303@20; 38 + }; 39 + }; 40 + };
+195
arch/arm64/boot/dts/xilinx/zynqmp-zcu104-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU104 4 + * 5 + * (C) Copyright 2017 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + #include <dt-bindings/gpio/gpio.h> 15 + 16 + / { 17 + model = "ZynqMP ZCU104 RevA"; 18 + compatible = "xlnx,zynqmp-zcu104-revA", "xlnx,zynqmp-zcu104", "xlnx,zynqmp"; 19 + 20 + aliases { 21 + ethernet0 = &gem3; 22 + i2c0 = &i2c1; 23 + mmc0 = &sdhci1; 24 + rtc0 = &rtc; 25 + serial0 = &uart0; 26 + serial1 = &uart1; 27 + serial2 = &dcc; 28 + }; 29 + 30 + chosen { 31 + bootargs = "earlycon"; 32 + stdout-path = "serial0:115200n8"; 33 + }; 34 + 35 + memory@0 { 36 + device_type = "memory"; 37 + reg = <0x0 0x0 0x0 0x80000000>; 38 + }; 39 + }; 40 + 41 + &can1 { 42 + status = "okay"; 43 + }; 44 + 45 + &dcc { 46 + status = "okay"; 47 + }; 48 + 49 + &gem3 { 50 + status = "okay"; 51 + phy-handle = <&phy0>; 52 + phy-mode = "rgmii-id"; 53 + phy0: phy@c { 54 + reg = <0xc>; 55 + ti,rx-internal-delay = <0x8>; 56 + ti,tx-internal-delay = <0xa>; 57 + ti,fifo-depth = <0x1>; 58 + }; 59 + }; 60 + 61 + &gpio { 62 + status = "okay"; 63 + }; 64 + 65 + &i2c1 { 66 + status = "okay"; 67 + clock-frequency = <400000>; 68 + 69 + /* Another connection to this bus via PL i2c via PCA9306 - u45 */ 70 + i2c-mux@74 { /* u34 */ 71 + compatible = "nxp,pca9548"; 72 + #address-cells = <1>; 73 + #size-cells = <0>; 74 + reg = <0x74>; 75 + i2c@0 { 76 + #address-cells = <1>; 77 + #size-cells = <0>; 78 + reg = <0>; 79 + /* 80 + * IIC_EEPROM 1kB memory which uses 256B blocks 81 + * where every block has different address. 82 + * 0 - 256B address 0x54 83 + * 256B - 512B address 0x55 84 + * 512B - 768B address 0x56 85 + * 768B - 1024B address 0x57 86 + */ 87 + eeprom@54 { /* u23 */ 88 + compatible = "atmel,24c08"; 89 + reg = <0x54>; 90 + #address-cells = <1>; 91 + #size-cells = <1>; 92 + }; 93 + }; 94 + 95 + i2c@1 { 96 + #address-cells = <1>; 97 + #size-cells = <0>; 98 + reg = <1>; 99 + clock_8t49n287: clock-generator@6c { /* 8T49N287 - u182 */ 100 + reg = <0x6c>; 101 + }; 102 + }; 103 + 104 + i2c@2 { 105 + #address-cells = <1>; 106 + #size-cells = <0>; 107 + reg = <2>; 108 + irps5401_43: irps54012@43 { /* IRPS5401 - u175 */ 109 + reg = <0x43>; 110 + }; 111 + irps5401_4d: irps54012@4d { /* IRPS5401 - u180 */ 112 + reg = <0x4d>; 113 + }; 114 + }; 115 + 116 + i2c@4 { 117 + #address-cells = <1>; 118 + #size-cells = <0>; 119 + reg = <4>; 120 + tca6416_u97: gpio@21 { 121 + compatible = "ti,tca6416"; 122 + reg = <0x21>; 123 + gpio-controller; 124 + #gpio-cells = <2>; 125 + /* 126 + * IRQ not connected 127 + * Lines: 128 + * 0 - IRPS5401_ALERT_B 129 + * 1 - HDMI_8T49N241_INT_ALM 130 + * 2 - MAX6643_OT_B 131 + * 3 - MAX6643_FANFAIL_B 132 + * 5 - IIC_MUX_RESET_B 133 + * 6 - GEM3_EXP_RESET_B 134 + * 7 - FMC_LPC_PRSNT_M2C_B 135 + * 4, 10 - 17 - not connected 136 + */ 137 + }; 138 + }; 139 + 140 + i2c@5 { 141 + #address-cells = <1>; 142 + #size-cells = <0>; 143 + reg = <5>; 144 + }; 145 + 146 + i2c@7 { 147 + #address-cells = <1>; 148 + #size-cells = <0>; 149 + reg = <7>; 150 + }; 151 + 152 + /* 3, 6 not connected */ 153 + }; 154 + }; 155 + 156 + &rtc { 157 + status = "okay"; 158 + }; 159 + 160 + &sata { 161 + status = "okay"; 162 + /* SATA OOB timing settings */ 163 + ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 164 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 165 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 166 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 167 + ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 168 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 169 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 170 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 171 + }; 172 + 173 + /* SD1 with level shifter */ 174 + &sdhci1 { 175 + status = "okay"; 176 + no-1-8-v; 177 + disable-wp; 178 + }; 179 + 180 + &uart0 { 181 + status = "okay"; 182 + }; 183 + 184 + &uart1 { 185 + status = "okay"; 186 + }; 187 + 188 + /* ULPI SMSC USB3320 */ 189 + &usb0 { 190 + status = "okay"; 191 + }; 192 + 193 + &watchdog0 { 194 + status = "okay"; 195 + };
+522
arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU106 4 + * 5 + * (C) Copyright 2016, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + #include <dt-bindings/input/input.h> 15 + #include <dt-bindings/gpio/gpio.h> 16 + 17 + / { 18 + model = "ZynqMP ZCU106 RevA"; 19 + compatible = "xlnx,zynqmp-zcu106-revA", "xlnx,zynqmp-zcu106", "xlnx,zynqmp"; 20 + 21 + aliases { 22 + ethernet0 = &gem3; 23 + i2c0 = &i2c0; 24 + i2c1 = &i2c1; 25 + mmc0 = &sdhci1; 26 + rtc0 = &rtc; 27 + serial0 = &uart0; 28 + serial1 = &uart1; 29 + serial2 = &dcc; 30 + }; 31 + 32 + chosen { 33 + bootargs = "earlycon"; 34 + stdout-path = "serial0:115200n8"; 35 + }; 36 + 37 + memory@0 { 38 + device_type = "memory"; 39 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 40 + }; 41 + 42 + gpio-keys { 43 + compatible = "gpio-keys"; 44 + #address-cells = <1>; 45 + #size-cells = <0>; 46 + autorepeat; 47 + sw19 { 48 + label = "sw19"; 49 + gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; 50 + linux,code = <KEY_DOWN>; 51 + gpio-key,wakeup; 52 + autorepeat; 53 + }; 54 + }; 55 + 56 + leds { 57 + compatible = "gpio-leds"; 58 + heartbeat_led { 59 + label = "heartbeat"; 60 + gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; 61 + linux,default-trigger = "heartbeat"; 62 + }; 63 + }; 64 + }; 65 + 66 + &can1 { 67 + status = "okay"; 68 + }; 69 + 70 + &dcc { 71 + status = "okay"; 72 + }; 73 + 74 + /* fpd_dma clk 667MHz, lpd_dma 500MHz */ 75 + &fpd_dma_chan1 { 76 + status = "okay"; 77 + }; 78 + 79 + &fpd_dma_chan2 { 80 + status = "okay"; 81 + }; 82 + 83 + &fpd_dma_chan3 { 84 + status = "okay"; 85 + }; 86 + 87 + &fpd_dma_chan4 { 88 + status = "okay"; 89 + }; 90 + 91 + &fpd_dma_chan5 { 92 + status = "okay"; 93 + }; 94 + 95 + &fpd_dma_chan6 { 96 + status = "okay"; 97 + }; 98 + 99 + &fpd_dma_chan7 { 100 + status = "okay"; 101 + }; 102 + 103 + &fpd_dma_chan8 { 104 + status = "okay"; 105 + }; 106 + 107 + &gem3 { 108 + status = "okay"; 109 + phy-handle = <&phy0>; 110 + phy-mode = "rgmii-id"; 111 + phy0: phy@c { 112 + reg = <0xc>; 113 + ti,rx-internal-delay = <0x8>; 114 + ti,tx-internal-delay = <0xa>; 115 + ti,fifo-depth = <0x1>; 116 + }; 117 + }; 118 + 119 + &gpio { 120 + status = "okay"; 121 + }; 122 + 123 + &i2c0 { 124 + status = "okay"; 125 + clock-frequency = <400000>; 126 + 127 + tca6416_u97: gpio@20 { 128 + compatible = "ti,tca6416"; 129 + reg = <0x20>; 130 + gpio-controller; /* interrupt not connected */ 131 + #gpio-cells = <2>; 132 + /* 133 + * IRQ not connected 134 + * Lines: 135 + * 0 - SFP_SI5328_INT_ALM 136 + * 1 - HDMI_SI5328_INT_ALM 137 + * 5 - IIC_MUX_RESET_B 138 + * 6 - GEM3_EXP_RESET_B 139 + * 10 - FMC_HPC0_PRSNT_M2C_B 140 + * 11 - FMC_HPC1_PRSNT_M2C_B 141 + * 2-4, 7, 12-17 - not connected 142 + */ 143 + }; 144 + 145 + tca6416_u61: gpio@21 { 146 + compatible = "ti,tca6416"; 147 + reg = <0x21>; 148 + gpio-controller; 149 + #gpio-cells = <2>; 150 + /* 151 + * IRQ not connected 152 + * Lines: 153 + * 0 - VCCPSPLL_EN 154 + * 1 - MGTRAVCC_EN 155 + * 2 - MGTRAVTT_EN 156 + * 3 - VCCPSDDRPLL_EN 157 + * 4 - MIO26_PMU_INPUT_LS 158 + * 5 - PL_PMBUS_ALERT 159 + * 6 - PS_PMBUS_ALERT 160 + * 7 - MAXIM_PMBUS_ALERT 161 + * 10 - PL_DDR4_VTERM_EN 162 + * 11 - PL_DDR4_VPP_2V5_EN 163 + * 12 - PS_DIMM_VDDQ_TO_PSVCCO_ON 164 + * 13 - PS_DIMM_SUSPEND_EN 165 + * 14 - PS_DDR4_VTERM_EN 166 + * 15 - PS_DDR4_VPP_2V5_EN 167 + * 16 - 17 - not connected 168 + */ 169 + }; 170 + 171 + i2c-mux@75 { /* u60 */ 172 + compatible = "nxp,pca9544"; 173 + #address-cells = <1>; 174 + #size-cells = <0>; 175 + reg = <0x75>; 176 + i2c@0 { 177 + #address-cells = <1>; 178 + #size-cells = <0>; 179 + reg = <0>; 180 + /* PS_PMBUS */ 181 + ina226@40 { /* u76 */ 182 + compatible = "ti,ina226"; 183 + reg = <0x40>; 184 + shunt-resistor = <5000>; 185 + }; 186 + ina226@41 { /* u77 */ 187 + compatible = "ti,ina226"; 188 + reg = <0x41>; 189 + shunt-resistor = <5000>; 190 + }; 191 + ina226@42 { /* u78 */ 192 + compatible = "ti,ina226"; 193 + reg = <0x42>; 194 + shunt-resistor = <5000>; 195 + }; 196 + ina226@43 { /* u87 */ 197 + compatible = "ti,ina226"; 198 + reg = <0x43>; 199 + shunt-resistor = <5000>; 200 + }; 201 + ina226@44 { /* u85 */ 202 + compatible = "ti,ina226"; 203 + reg = <0x44>; 204 + shunt-resistor = <5000>; 205 + }; 206 + ina226@45 { /* u86 */ 207 + compatible = "ti,ina226"; 208 + reg = <0x45>; 209 + shunt-resistor = <5000>; 210 + }; 211 + ina226@46 { /* u93 */ 212 + compatible = "ti,ina226"; 213 + reg = <0x46>; 214 + shunt-resistor = <5000>; 215 + }; 216 + ina226@47 { /* u88 */ 217 + compatible = "ti,ina226"; 218 + reg = <0x47>; 219 + shunt-resistor = <5000>; 220 + }; 221 + ina226@4a { /* u15 */ 222 + compatible = "ti,ina226"; 223 + reg = <0x4a>; 224 + shunt-resistor = <5000>; 225 + }; 226 + ina226@4b { /* u92 */ 227 + compatible = "ti,ina226"; 228 + reg = <0x4b>; 229 + shunt-resistor = <5000>; 230 + }; 231 + }; 232 + i2c@1 { 233 + #address-cells = <1>; 234 + #size-cells = <0>; 235 + reg = <1>; 236 + /* PL_PMBUS */ 237 + ina226@40 { /* u79 */ 238 + compatible = "ti,ina226"; 239 + reg = <0x40>; 240 + shunt-resistor = <2000>; 241 + }; 242 + ina226@41 { /* u81 */ 243 + compatible = "ti,ina226"; 244 + reg = <0x41>; 245 + shunt-resistor = <5000>; 246 + }; 247 + ina226@42 { /* u80 */ 248 + compatible = "ti,ina226"; 249 + reg = <0x42>; 250 + shunt-resistor = <5000>; 251 + }; 252 + ina226@43 { /* u84 */ 253 + compatible = "ti,ina226"; 254 + reg = <0x43>; 255 + shunt-resistor = <5000>; 256 + }; 257 + ina226@44 { /* u16 */ 258 + compatible = "ti,ina226"; 259 + reg = <0x44>; 260 + shunt-resistor = <5000>; 261 + }; 262 + ina226@45 { /* u65 */ 263 + compatible = "ti,ina226"; 264 + reg = <0x45>; 265 + shunt-resistor = <5000>; 266 + }; 267 + ina226@46 { /* u74 */ 268 + compatible = "ti,ina226"; 269 + reg = <0x46>; 270 + shunt-resistor = <5000>; 271 + }; 272 + ina226@47 { /* u75 */ 273 + compatible = "ti,ina226"; 274 + reg = <0x47>; 275 + shunt-resistor = <5000>; 276 + }; 277 + }; 278 + i2c@2 { 279 + #address-cells = <1>; 280 + #size-cells = <0>; 281 + reg = <2>; 282 + /* MAXIM_PMBUS - 00 */ 283 + max15301@a { /* u46 */ 284 + compatible = "maxim,max15301"; 285 + reg = <0xa>; 286 + }; 287 + max15303@b { /* u4 */ 288 + compatible = "maxim,max15303"; 289 + reg = <0xb>; 290 + }; 291 + max15303@10 { /* u13 */ 292 + compatible = "maxim,max15303"; 293 + reg = <0x10>; 294 + }; 295 + max15301@13 { /* u47 */ 296 + compatible = "maxim,max15301"; 297 + reg = <0x13>; 298 + }; 299 + max15303@14 { /* u7 */ 300 + compatible = "maxim,max15303"; 301 + reg = <0x14>; 302 + }; 303 + max15303@15 { /* u6 */ 304 + compatible = "maxim,max15303"; 305 + reg = <0x15>; 306 + }; 307 + max15303@16 { /* u10 */ 308 + compatible = "maxim,max15303"; 309 + reg = <0x16>; 310 + }; 311 + max15303@17 { /* u9 */ 312 + compatible = "maxim,max15303"; 313 + reg = <0x17>; 314 + }; 315 + max15301@18 { /* u63 */ 316 + compatible = "maxim,max15301"; 317 + reg = <0x18>; 318 + }; 319 + max15303@1a { /* u49 */ 320 + compatible = "maxim,max15303"; 321 + reg = <0x1a>; 322 + }; 323 + max15303@1b { /* u8 */ 324 + compatible = "maxim,max15303"; 325 + reg = <0x1b>; 326 + }; 327 + max15303@1d { /* u18 */ 328 + compatible = "maxim,max15303"; 329 + reg = <0x1d>; 330 + }; 331 + 332 + max20751@72 { /* u95 */ 333 + compatible = "maxim,max20751"; 334 + reg = <0x72>; 335 + }; 336 + max20751@73 { /* u96 */ 337 + compatible = "maxim,max20751"; 338 + reg = <0x73>; 339 + }; 340 + }; 341 + /* Bus 3 is not connected */ 342 + }; 343 + }; 344 + 345 + &i2c1 { 346 + status = "okay"; 347 + clock-frequency = <400000>; 348 + 349 + /* PL i2c via PCA9306 - u45 */ 350 + i2c-mux@74 { /* u34 */ 351 + compatible = "nxp,pca9548"; 352 + #address-cells = <1>; 353 + #size-cells = <0>; 354 + reg = <0x74>; 355 + i2c@0 { 356 + #address-cells = <1>; 357 + #size-cells = <0>; 358 + reg = <0>; 359 + /* 360 + * IIC_EEPROM 1kB memory which uses 256B blocks 361 + * where every block has different address. 362 + * 0 - 256B address 0x54 363 + * 256B - 512B address 0x55 364 + * 512B - 768B address 0x56 365 + * 768B - 1024B address 0x57 366 + */ 367 + eeprom: eeprom@54 { /* u23 */ 368 + compatible = "atmel,24c08"; 369 + reg = <0x54>; 370 + }; 371 + }; 372 + i2c@1 { 373 + #address-cells = <1>; 374 + #size-cells = <0>; 375 + reg = <1>; 376 + si5341: clock-generator@36 { /* SI5341 - u69 */ 377 + reg = <0x36>; 378 + }; 379 + 380 + }; 381 + i2c@2 { 382 + #address-cells = <1>; 383 + #size-cells = <0>; 384 + reg = <2>; 385 + si570_1: clock-generator@5d { /* USER SI570 - u42 */ 386 + #clock-cells = <0>; 387 + compatible = "silabs,si570"; 388 + reg = <0x5d>; 389 + temperature-stability = <50>; 390 + factory-fout = <300000000>; 391 + clock-frequency = <300000000>; 392 + }; 393 + }; 394 + i2c@3 { 395 + #address-cells = <1>; 396 + #size-cells = <0>; 397 + reg = <3>; 398 + si570_2: clock-generator@5d { /* USER MGT SI570 - u56 */ 399 + #clock-cells = <0>; 400 + compatible = "silabs,si570"; 401 + reg = <0x5d>; 402 + temperature-stability = <50>; /* copy from zc702 */ 403 + factory-fout = <156250000>; 404 + clock-frequency = <148500000>; 405 + }; 406 + }; 407 + i2c@4 { 408 + #address-cells = <1>; 409 + #size-cells = <0>; 410 + reg = <4>; 411 + si5328: clock-generator@69 {/* SI5328 - u20 */ 412 + reg = <0x69>; 413 + }; 414 + }; 415 + i2c@5 { 416 + #address-cells = <1>; 417 + #size-cells = <0>; 418 + reg = <5>; /* FAN controller */ 419 + temp@4c {/* lm96163 - u128 */ 420 + compatible = "national,lm96163"; 421 + reg = <0x4c>; 422 + }; 423 + }; 424 + /* 6 - 7 unconnected */ 425 + }; 426 + 427 + i2c-mux@75 { 428 + compatible = "nxp,pca9548"; /* u135 */ 429 + #address-cells = <1>; 430 + #size-cells = <0>; 431 + reg = <0x75>; 432 + 433 + i2c@0 { 434 + #address-cells = <1>; 435 + #size-cells = <0>; 436 + reg = <0>; 437 + /* HPC0_IIC */ 438 + }; 439 + i2c@1 { 440 + #address-cells = <1>; 441 + #size-cells = <0>; 442 + reg = <1>; 443 + /* HPC1_IIC */ 444 + }; 445 + i2c@2 { 446 + #address-cells = <1>; 447 + #size-cells = <0>; 448 + reg = <2>; 449 + /* SYSMON */ 450 + }; 451 + i2c@3 { 452 + #address-cells = <1>; 453 + #size-cells = <0>; 454 + reg = <3>; 455 + /* DDR4 SODIMM */ 456 + }; 457 + i2c@4 { 458 + #address-cells = <1>; 459 + #size-cells = <0>; 460 + reg = <4>; 461 + /* SEP 3 */ 462 + }; 463 + i2c@5 { 464 + #address-cells = <1>; 465 + #size-cells = <0>; 466 + reg = <5>; 467 + /* SEP 2 */ 468 + }; 469 + i2c@6 { 470 + #address-cells = <1>; 471 + #size-cells = <0>; 472 + reg = <6>; 473 + /* SEP 1 */ 474 + }; 475 + i2c@7 { 476 + #address-cells = <1>; 477 + #size-cells = <0>; 478 + reg = <7>; 479 + /* SEP 0 */ 480 + }; 481 + }; 482 + }; 483 + 484 + &rtc { 485 + status = "okay"; 486 + }; 487 + 488 + &sata { 489 + status = "okay"; 490 + /* SATA OOB timing settings */ 491 + ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 492 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 493 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 494 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 495 + ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 496 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 497 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 498 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 499 + }; 500 + 501 + /* SD1 with level shifter */ 502 + &sdhci1 { 503 + status = "okay"; 504 + no-1-8-v; 505 + }; 506 + 507 + &uart0 { 508 + status = "okay"; 509 + }; 510 + 511 + &uart1 { 512 + status = "okay"; 513 + }; 514 + 515 + /* ULPI SMSC USB3320 */ 516 + &usb0 { 517 + status = "okay"; 518 + }; 519 + 520 + &watchdog0 { 521 + status = "okay"; 522 + };
+444
arch/arm64/boot/dts/xilinx/zynqmp-zcu111-revA.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 2 + /* 3 + * dts file for Xilinx ZynqMP ZCU111 4 + * 5 + * (C) Copyright 2017 - 2018, Xilinx, Inc. 6 + * 7 + * Michal Simek <michal.simek@xilinx.com> 8 + */ 9 + 10 + /dts-v1/; 11 + 12 + #include "zynqmp.dtsi" 13 + #include "zynqmp-clk.dtsi" 14 + #include <dt-bindings/input/input.h> 15 + #include <dt-bindings/gpio/gpio.h> 16 + 17 + / { 18 + model = "ZynqMP ZCU111 RevA"; 19 + compatible = "xlnx,zynqmp-zcu111-revA", "xlnx,zynqmp-zcu111", "xlnx,zynqmp"; 20 + 21 + aliases { 22 + ethernet0 = &gem3; 23 + i2c0 = &i2c0; 24 + i2c1 = &i2c1; 25 + mmc0 = &sdhci1; 26 + rtc0 = &rtc; 27 + serial0 = &uart0; 28 + serial1 = &dcc; 29 + }; 30 + 31 + chosen { 32 + bootargs = "earlycon"; 33 + stdout-path = "serial0:115200n8"; 34 + }; 35 + 36 + memory@0 { 37 + device_type = "memory"; 38 + reg = <0x0 0x0 0x0 0x80000000>, <0x8 0x00000000 0x0 0x80000000>; 39 + /* Another 4GB connected to PL */ 40 + }; 41 + 42 + gpio-keys { 43 + compatible = "gpio-keys"; 44 + #address-cells = <1>; 45 + #size-cells = <0>; 46 + autorepeat; 47 + sw19 { 48 + label = "sw19"; 49 + gpios = <&gpio 22 GPIO_ACTIVE_HIGH>; 50 + linux,code = <KEY_DOWN>; 51 + gpio-key,wakeup; 52 + autorepeat; 53 + }; 54 + }; 55 + 56 + leds { 57 + compatible = "gpio-leds"; 58 + heartbeat_led { 59 + label = "heartbeat"; 60 + gpios = <&gpio 23 GPIO_ACTIVE_HIGH>; 61 + linux,default-trigger = "heartbeat"; 62 + }; 63 + }; 64 + }; 65 + 66 + &dcc { 67 + status = "okay"; 68 + }; 69 + 70 + &fpd_dma_chan1 { 71 + status = "okay"; 72 + }; 73 + 74 + &fpd_dma_chan2 { 75 + status = "okay"; 76 + }; 77 + 78 + &fpd_dma_chan3 { 79 + status = "okay"; 80 + }; 81 + 82 + &fpd_dma_chan4 { 83 + status = "okay"; 84 + }; 85 + 86 + &fpd_dma_chan5 { 87 + status = "okay"; 88 + }; 89 + 90 + &fpd_dma_chan6 { 91 + status = "okay"; 92 + }; 93 + 94 + &fpd_dma_chan7 { 95 + status = "okay"; 96 + }; 97 + 98 + &fpd_dma_chan8 { 99 + status = "okay"; 100 + }; 101 + 102 + &gem3 { 103 + status = "okay"; 104 + phy-handle = <&phy0>; 105 + phy-mode = "rgmii-id"; 106 + phy0: phy@c { 107 + reg = <0xc>; 108 + ti,rx-internal-delay = <0x8>; 109 + ti,tx-internal-delay = <0xa>; 110 + ti,fifo-depth = <0x1>; 111 + }; 112 + }; 113 + 114 + &gpio { 115 + status = "okay"; 116 + }; 117 + 118 + &i2c0 { 119 + status = "okay"; 120 + clock-frequency = <400000>; 121 + 122 + tca6416_u22: gpio@20 { 123 + compatible = "ti,tca6416"; 124 + reg = <0x20>; 125 + gpio-controller; /* interrupt not connected */ 126 + #gpio-cells = <2>; 127 + /* 128 + * IRQ not connected 129 + * Lines: 130 + * 0 - MAX6643_OT_B 131 + * 1 - MAX6643_FANFAIL_B 132 + * 2 - MIO26_PMU_INPUT_LS 133 + * 4 - SFP_SI5382_INT_ALM 134 + * 5 - IIC_MUX_RESET_B 135 + * 6 - GEM3_EXP_RESET_B 136 + * 10 - FMCP_HSPC_PRSNT_M2C_B 137 + * 11 - CLK_SPI_MUX_SEL0 138 + * 12 - CLK_SPI_MUX_SEL1 139 + * 16 - IRPS5401_ALERT_B 140 + * 17 - INA226_PMBUS_ALERT 141 + * 3, 7, 13-15 - not connected 142 + */ 143 + }; 144 + 145 + i2c-mux@75 { /* u23 */ 146 + compatible = "nxp,pca9544"; 147 + #address-cells = <1>; 148 + #size-cells = <0>; 149 + reg = <0x75>; 150 + i2c@0 { 151 + #address-cells = <1>; 152 + #size-cells = <0>; 153 + reg = <0>; 154 + /* PS_PMBUS */ 155 + /* PMBUS_ALERT done via pca9544 */ 156 + ina226@40 { /* u67 */ 157 + compatible = "ti,ina226"; 158 + reg = <0x40>; 159 + shunt-resistor = <2000>; 160 + }; 161 + ina226@41 { /* u59 */ 162 + compatible = "ti,ina226"; 163 + reg = <0x41>; 164 + shunt-resistor = <5000>; 165 + }; 166 + ina226@42 { /* u61 */ 167 + compatible = "ti,ina226"; 168 + reg = <0x42>; 169 + shunt-resistor = <5000>; 170 + }; 171 + ina226@43 { /* u60 */ 172 + compatible = "ti,ina226"; 173 + reg = <0x43>; 174 + shunt-resistor = <5000>; 175 + }; 176 + ina226@45 { /* u64 */ 177 + compatible = "ti,ina226"; 178 + reg = <0x45>; 179 + shunt-resistor = <5000>; 180 + }; 181 + ina226@46 { /* u69 */ 182 + compatible = "ti,ina226"; 183 + reg = <0x46>; 184 + shunt-resistor = <2000>; 185 + }; 186 + ina226@47 { /* u66 */ 187 + compatible = "ti,ina226"; 188 + reg = <0x47>; 189 + shunt-resistor = <5000>; 190 + }; 191 + ina226@48 { /* u65 */ 192 + compatible = "ti,ina226"; 193 + reg = <0x48>; 194 + shunt-resistor = <5000>; 195 + }; 196 + ina226@49 { /* u63 */ 197 + compatible = "ti,ina226"; 198 + reg = <0x49>; 199 + shunt-resistor = <5000>; 200 + }; 201 + ina226@4a { /* u3 */ 202 + compatible = "ti,ina226"; 203 + reg = <0x4a>; 204 + shunt-resistor = <5000>; 205 + }; 206 + ina226@4b { /* u71 */ 207 + compatible = "ti,ina226"; 208 + reg = <0x4b>; 209 + shunt-resistor = <5000>; 210 + }; 211 + ina226@4c { /* u77 */ 212 + compatible = "ti,ina226"; 213 + reg = <0x4c>; 214 + shunt-resistor = <5000>; 215 + }; 216 + ina226@4d { /* u73 */ 217 + compatible = "ti,ina226"; 218 + reg = <0x4d>; 219 + shunt-resistor = <5000>; 220 + }; 221 + ina226@4e { /* u79 */ 222 + compatible = "ti,ina226"; 223 + reg = <0x4e>; 224 + shunt-resistor = <5000>; 225 + }; 226 + }; 227 + i2c@1 { 228 + #address-cells = <1>; 229 + #size-cells = <0>; 230 + reg = <1>; 231 + /* NC */ 232 + }; 233 + i2c@2 { 234 + #address-cells = <1>; 235 + #size-cells = <0>; 236 + reg = <2>; 237 + irps5401_43: irps54012@43 { /* IRPS5401 - u53 check these */ 238 + reg = <0x43>; 239 + }; 240 + irps5401_44: irps54012@44 { /* IRPS5401 - u55 */ 241 + reg = <0x44>; 242 + }; 243 + irps5401_45: irps54012@45 { /* IRPS5401 - u57 */ 244 + reg = <0x45>; 245 + }; 246 + /* u68 IR38064 +0 */ 247 + /* u70 IR38060 +1 */ 248 + /* u74 IR38060 +2 */ 249 + /* u75 IR38060 +6 */ 250 + /* J19 header too */ 251 + 252 + }; 253 + i2c@3 { 254 + #address-cells = <1>; 255 + #size-cells = <0>; 256 + reg = <3>; 257 + /* SYSMON */ 258 + }; 259 + }; 260 + }; 261 + 262 + &i2c1 { 263 + status = "okay"; 264 + clock-frequency = <400000>; 265 + 266 + i2c-mux@74 { /* u26 */ 267 + compatible = "nxp,pca9548"; 268 + #address-cells = <1>; 269 + #size-cells = <0>; 270 + reg = <0x74>; 271 + i2c@0 { 272 + #address-cells = <1>; 273 + #size-cells = <0>; 274 + reg = <0>; 275 + /* 276 + * IIC_EEPROM 1kB memory which uses 256B blocks 277 + * where every block has different address. 278 + * 0 - 256B address 0x54 279 + * 256B - 512B address 0x55 280 + * 512B - 768B address 0x56 281 + * 768B - 1024B address 0x57 282 + */ 283 + eeprom: eeprom@54 { /* u88 */ 284 + compatible = "atmel,24c08"; 285 + reg = <0x54>; 286 + }; 287 + }; 288 + i2c@1 { 289 + #address-cells = <1>; 290 + #size-cells = <0>; 291 + reg = <1>; 292 + si5341: clock-generator@36 { /* SI5341 - u46 */ 293 + reg = <0x36>; 294 + }; 295 + 296 + }; 297 + i2c@2 { 298 + #address-cells = <1>; 299 + #size-cells = <0>; 300 + reg = <2>; 301 + si570_1: clock-generator@5d { /* USER SI570 - u47 */ 302 + #clock-cells = <0>; 303 + compatible = "silabs,si570"; 304 + reg = <0x5d>; 305 + temperature-stability = <50>; 306 + factory-fout = <300000000>; 307 + clock-frequency = <300000000>; 308 + }; 309 + }; 310 + i2c@3 { 311 + #address-cells = <1>; 312 + #size-cells = <0>; 313 + reg = <3>; 314 + si570_2: clock-generator@5d { /* USER MGT SI570 - u49 */ 315 + #clock-cells = <0>; 316 + compatible = "silabs,si570"; 317 + reg = <0x5d>; 318 + temperature-stability = <50>; 319 + factory-fout = <156250000>; 320 + clock-frequency = <148500000>; 321 + }; 322 + }; 323 + i2c@4 { 324 + #address-cells = <1>; 325 + #size-cells = <0>; 326 + reg = <4>; 327 + si5328: clock-generator@69 { /* SI5328 - u48 */ 328 + reg = <0x69>; 329 + }; 330 + }; 331 + i2c@5 { 332 + #address-cells = <1>; 333 + #size-cells = <0>; 334 + reg = <5>; 335 + sc18is603@2f { /* sc18is602 - u93 */ 336 + compatible = "nxp,sc18is603"; 337 + reg = <0x2f>; 338 + /* 4 gpios for CS not handled by driver */ 339 + /* 340 + * USB2ANY cable or 341 + * LMK04208 - u90 or 342 + * LMX2594 - u102 or 343 + * LMX2594 - u103 or 344 + * LMX2594 - u104 345 + */ 346 + }; 347 + }; 348 + i2c@6 { 349 + #address-cells = <1>; 350 + #size-cells = <0>; 351 + reg = <6>; 352 + /* FMC connector */ 353 + }; 354 + /* 7 NC */ 355 + }; 356 + 357 + i2c-mux@75 { 358 + compatible = "nxp,pca9548"; /* u27 */ 359 + #address-cells = <1>; 360 + #size-cells = <0>; 361 + reg = <0x75>; 362 + 363 + i2c@0 { 364 + #address-cells = <1>; 365 + #size-cells = <0>; 366 + reg = <0>; 367 + /* FMCP_HSPC_IIC */ 368 + }; 369 + i2c@1 { 370 + #address-cells = <1>; 371 + #size-cells = <0>; 372 + reg = <1>; 373 + /* NC */ 374 + }; 375 + i2c@2 { 376 + #address-cells = <1>; 377 + #size-cells = <0>; 378 + reg = <2>; 379 + /* SYSMON */ 380 + }; 381 + i2c@3 { 382 + #address-cells = <1>; 383 + #size-cells = <0>; 384 + reg = <3>; 385 + /* DDR4 SODIMM */ 386 + }; 387 + i2c@4 { 388 + #address-cells = <1>; 389 + #size-cells = <0>; 390 + reg = <4>; 391 + /* SFP3 */ 392 + }; 393 + i2c@5 { 394 + #address-cells = <1>; 395 + #size-cells = <0>; 396 + reg = <5>; 397 + /* SFP2 */ 398 + }; 399 + i2c@6 { 400 + #address-cells = <1>; 401 + #size-cells = <0>; 402 + reg = <6>; 403 + /* SFP1 */ 404 + }; 405 + i2c@7 { 406 + #address-cells = <1>; 407 + #size-cells = <0>; 408 + reg = <7>; 409 + /* SFP0 */ 410 + }; 411 + }; 412 + }; 413 + 414 + &rtc { 415 + status = "okay"; 416 + }; 417 + 418 + &sata { 419 + status = "okay"; 420 + /* SATA OOB timing settings */ 421 + ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 422 + ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 423 + ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 424 + ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 425 + ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 426 + ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 427 + ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 428 + ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 429 + }; 430 + 431 + /* SD1 with level shifter */ 432 + &sdhci1 { 433 + status = "okay"; 434 + no-1-8-v; 435 + }; 436 + 437 + &uart0 { 438 + status = "okay"; 439 + }; 440 + 441 + /* ULPI SMSC USB3320 */ 442 + &usb0 { 443 + status = "okay"; 444 + };
+9 -8
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ 1 2 /* 2 3 * dts file for Xilinx ZynqMP 3 4 * ··· 356 355 }; 357 356 358 357 gem0: ethernet@ff0b0000 { 359 - compatible = "cdns,gem"; 358 + compatible = "cdns,zynqmp-gem", "cdns,gem"; 360 359 status = "disabled"; 361 360 interrupt-parent = <&gic>; 362 361 interrupts = <0 57 4>, <0 57 4>; ··· 367 366 }; 368 367 369 368 gem1: ethernet@ff0c0000 { 370 - compatible = "cdns,gem"; 369 + compatible = "cdns,zynqmp-gem", "cdns,gem"; 371 370 status = "disabled"; 372 371 interrupt-parent = <&gic>; 373 372 interrupts = <0 59 4>, <0 59 4>; ··· 378 377 }; 379 378 380 379 gem2: ethernet@ff0d0000 { 381 - compatible = "cdns,gem"; 380 + compatible = "cdns,zynqmp-gem", "cdns,gem"; 382 381 status = "disabled"; 383 382 interrupt-parent = <&gic>; 384 383 interrupts = <0 61 4>, <0 61 4>; ··· 389 388 }; 390 389 391 390 gem3: ethernet@ff0e0000 { 392 - compatible = "cdns,gem"; 391 + compatible = "cdns,zynqmp-gem", "cdns,gem"; 393 392 status = "disabled"; 394 393 interrupt-parent = <&gic>; 395 394 interrupts = <0 63 4>, <0 63 4>; ··· 440 439 device_type = "pci"; 441 440 interrupt-parent = <&gic>; 442 441 interrupts = <0 118 4>, 443 - <0 117 4>, 444 - <0 116 4>, 445 - <0 115 4>, /* MSI_1 [63...32] */ 446 - <0 114 4>; /* MSI_0 [31...0] */ 442 + <0 117 4>, 443 + <0 116 4>, 444 + <0 115 4>, /* MSI_1 [63...32] */ 445 + <0 114 4>; /* MSI_0 [31...0] */ 447 446 interrupt-names = "misc", "dummy", "intx", 448 447 "msi1", "msi0"; 449 448 msi-parent = <&pcie>;