]> rtime.felk.cvut.cz Git - zynq/linux.git/blobdiff - arch/arm64/boot/dts/xilinx/zynqmp-zcu106-revA.dts
arm64: zynqmp: Add/Update/Sync DTs for xilinx platforms
[zynq/linux.git] / arch / arm64 / boot / dts / xilinx / zynqmp-zcu106-revA.dts
index 94cf5094df648a8652f855db3a70a91fdba23b44..32c35869a1a9eae4e2412b08a37e1474b956fa4c 100644 (file)
 /dts-v1/;
 
 #include "zynqmp.dtsi"
-#include "zynqmp-clk.dtsi"
+#include "zynqmp-clk-ccf.dtsi"
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        model = "ZynqMP ZCU106 RevA";
@@ -20,6 +22,7 @@
 
        aliases {
                ethernet0 = &gem3;
+               gpio0 = &gpio;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                mmc0 = &sdhci1;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &dcc;
+               spi0 = &qspi;
+               usb0 = &usb0;
        };
 
        chosen {
                bootargs = "earlycon";
                stdout-path = "serial0:115200n8";
+               xlnx,eeprom = &eeprom;
        };
 
        memory@0 {
                        label = "sw19";
                        gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
                        linux,code = <KEY_DOWN>;
-                       wakeup-source;
+                       gpio-key,wakeup;
                        autorepeat;
                };
        };
 
        leds {
                compatible = "gpio-leds";
-               heartbeat-led {
+               heartbeat_led {
                        label = "heartbeat";
                        gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
 
 &can1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_can1_default>;
 };
 
 &dcc {
        status = "okay";
 };
 
-/* fpd_dma clk 667MHz, lpd_dma 500MHz */
 &fpd_dma_chan1 {
        status = "okay";
 };
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gem3_default>;
        phy0: phy@c {
                reg = <0xc>;
                ti,rx-internal-delay = <0x8>;
                ti,tx-internal-delay = <0xa>;
                ti,fifo-depth = <0x1>;
+               ti,dp83867-rxctrl-strap-quirk;
        };
 };
 
 &gpio {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_default>;
+};
+
+&gpu {
+       status = "okay";
 };
 
 &i2c0 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c0_default>;
+       pinctrl-1 = <&pinctrl_i2c0_gpio>;
+       scl-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
 
        tca6416_u97: gpio@20 {
                compatible = "ti,tca6416";
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1_default>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
 
        /* PL i2c via PCA9306 - u45 */
        i2c-mux@74 { /* u34 */
                        #size-cells = <0>;
                        reg = <1>;
                        si5341: clock-generator@36 { /* SI5341 - u69 */
+                               compatible = "si5341";
                                reg = <0x36>;
                        };
 
                                temperature-stability = <50>;
                                factory-fout = <300000000>;
                                clock-frequency = <300000000>;
+                               clock-output-names = "si570_user";
                        };
                };
                i2c@3 {
                                temperature-stability = <50>; /* copy from zc702 */
                                factory-fout = <156250000>;
                                clock-frequency = <148500000>;
+                               clock-output-names = "si570_mgt";
                        };
                };
                i2c@4 {
                        #size-cells = <0>;
                        reg = <4>;
                        si5328: clock-generator@69 {/* SI5328 - u20 */
+                               compatible = "silabs,si5328";
                                reg = <0x69>;
                        };
                };
        };
 };
 
+&pinctrl0 {
+       status = "okay";
+       pinctrl_i2c0_default: i2c0-default {
+               mux {
+                       groups = "i2c0_3_grp";
+                       function = "i2c0";
+               };
+
+               conf {
+                       groups = "i2c0_3_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c0_gpio: i2c0-gpio {
+               mux {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_14_grp", "gpio0_15_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_default: i2c1-default {
+               mux {
+                       groups = "i2c1_4_grp";
+                       function = "i2c1";
+               };
+
+               conf {
+                       groups = "i2c1_4_grp";
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio {
+               mux {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       function = "gpio0";
+               };
+
+               conf {
+                       groups = "gpio0_16_grp", "gpio0_17_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_uart0_default: uart0-default {
+               mux {
+                       groups = "uart0_4_grp";
+                       function = "uart0";
+               };
+
+               conf {
+                       groups = "uart0_4_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO18";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO19";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_uart1_default: uart1-default {
+               mux {
+                       groups = "uart1_5_grp";
+                       function = "uart1";
+               };
+
+               conf {
+                       groups = "uart1_5_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO21";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO20";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_usb0_default: usb0-default {
+               mux {
+                       groups = "usb0_0_grp";
+                       function = "usb0";
+               };
+
+               conf {
+                       groups = "usb0_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO52", "MIO53", "MIO55";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59",
+                              "MIO60", "MIO61", "MIO62", "MIO63";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_gem3_default: gem3-default {
+               mux {
+                       function = "ethernet3";
+                       groups = "ethernet3_0_grp";
+               };
+
+               conf {
+                       groups = "ethernet3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
+                                                                       "MIO75";
+                       bias-high-impedance;
+                       low-power-disable;
+               };
+
+               conf-tx {
+                       pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
+                                                                       "MIO69";
+                       bias-disable;
+                       low-power-enable;
+               };
+
+               mux-mdio {
+                       function = "mdio3";
+                       groups = "mdio3_0_grp";
+               };
+
+               conf-mdio {
+                       groups = "mdio3_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+       };
+
+       pinctrl_can1_default: can1-default {
+               mux {
+                       function = "can1";
+                       groups = "can1_6_grp";
+               };
+
+               conf {
+                       groups = "can1_6_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-rx {
+                       pins = "MIO25";
+                       bias-high-impedance;
+               };
+
+               conf-tx {
+                       pins = "MIO24";
+                       bias-disable;
+               };
+       };
+
+       pinctrl_sdhci1_default: sdhci1-default {
+               mux {
+                       groups = "sdio1_0_grp";
+                       function = "sdio1";
+               };
+
+               conf {
+                       groups = "sdio1_0_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+                       bias-disable;
+               };
+
+               mux-cd {
+                       groups = "sdio1_cd_0_grp";
+                       function = "sdio1_cd";
+               };
+
+               conf-cd {
+                       groups = "sdio1_cd_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-wp {
+                       groups = "sdio1_wp_0_grp";
+                       function = "sdio1_wp";
+               };
+
+               conf-wp {
+                       groups = "sdio1_wp_0_grp";
+                       bias-high-impedance;
+                       bias-pull-up;
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+       };
+
+       pinctrl_gpio_default: gpio-default {
+               mux {
+                       function = "gpio0";
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+               };
+
+               conf {
+                       groups = "gpio0_22_grp", "gpio0_23_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               mux-msp {
+                       function = "gpio0";
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+               };
+
+               conf-msp {
+                       groups = "gpio0_13_grp", "gpio0_38_grp";
+                       slew-rate = <SLEW_RATE_SLOW>;
+                       io-standard = <IO_STANDARD_LVCMOS18>;
+               };
+
+               conf-pull-up {
+                       pins = "MIO22";
+                       bias-pull-up;
+               };
+
+               conf-pull-none {
+                       pins = "MIO13", "MIO23", "MIO38";
+                       bias-disable;
+               };
+       };
+};
+
+&qspi {
+       status = "okay";
+       is-dual = <1>;
+       flash@0 {
+               compatible = "m25p80", "spi-flash"; /* 32MB */
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0x0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>; /* FIXME also DUAL configuration possible */
+               spi-max-frequency = <108000000>; /* Based on DC1 spec */
+               partition@qspi-fsbl-uboot { /* for testing purpose */
+                       label = "qspi-fsbl-uboot";
+                       reg = <0x0 0x100000>;
+               };
+               partition@qspi-linux { /* for testing purpose */
+                       label = "qspi-linux";
+                       reg = <0x100000 0x500000>;
+               };
+               partition@qspi-device-tree { /* for testing purpose */
+                       label = "qspi-device-tree";
+                       reg = <0x600000 0x20000>;
+               };
+               partition@qspi-rootfs { /* for testing purpose */
+                       label = "qspi-rootfs";
+                       reg = <0x620000 0x5E0000>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
        ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>;
        ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>;
        ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>;
+       phy-names = "sata-phy";
+       phys = <&lane3 PHY_TYPE_SATA 1 1 125000000>;
 };
 
 /* SD1 with level shifter */
 &sdhci1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sdhci1_default>;
        no-1-8-v;
+       xlnx,mio_bank = <1>;
+};
+
+&serdes {
+       status = "okay";
 };
 
 &uart0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart0_default>;
 };
 
 &uart1 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_default>;
 };
 
 /* ULPI SMSC USB3320 */
 &usb0 {
        status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb0_default>;
+};
+
+&dwc3_0 {
+       status = "okay";
+       dr_mode = "host";
+       snps,usb3_lpm_capable;
+       phy-names = "usb3-phy";
+       phys = <&lane2 PHY_TYPE_USB3 0 2 26000000>;
 };
 
 &watchdog0 {
        status = "okay";
 };
+
+&zynqmp_dpsub {
+       status = "okay";
+       phy-names = "dp-phy0", "dp-phy1";
+       phys = <&lane1 PHY_TYPE_DP 0 3 27000000>, <&lane0 PHY_TYPE_DP 1 3 27000000>;
+};
+
+&zynqmp_dp_snd_pcm0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_pcm1 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_card0 {
+       status = "okay";
+};
+
+&zynqmp_dp_snd_codec0 {
+       status = "okay";
+};
+
+&xlnx_dpdma {
+       status = "okay";
+};