162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * dts file for KV260 revA Carrier Card 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * (C) Copyright 2020 - 2022, Xilinx, Inc. 662306a36Sopenharmony_ci * (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * SD level shifter: 962306a36Sopenharmony_ci * "A" - A01 board un-modified (NXP) 1062306a36Sopenharmony_ci * "Y" - A01 board modified with legacy interposer (Nexperia) 1162306a36Sopenharmony_ci * "Z" - A01 board modified with Diode interposer 1262306a36Sopenharmony_ci * 1362306a36Sopenharmony_ci * Michal Simek <michal.simek@amd.com> 1462306a36Sopenharmony_ci */ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1762306a36Sopenharmony_ci#include <dt-bindings/net/ti-dp83867.h> 1862306a36Sopenharmony_ci#include <dt-bindings/phy/phy.h> 1962306a36Sopenharmony_ci#include <dt-bindings/pinctrl/pinctrl-zynqmp.h> 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci/dts-v1/; 2262306a36Sopenharmony_ci/plugin/; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci&{/} { 2562306a36Sopenharmony_ci si5332_0: si5332-0 { /* u17 */ 2662306a36Sopenharmony_ci compatible = "fixed-clock"; 2762306a36Sopenharmony_ci #clock-cells = <0>; 2862306a36Sopenharmony_ci clock-frequency = <125000000>; 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci si5332_1: si5332-1 { /* u17 */ 3262306a36Sopenharmony_ci compatible = "fixed-clock"; 3362306a36Sopenharmony_ci #clock-cells = <0>; 3462306a36Sopenharmony_ci clock-frequency = <25000000>; 3562306a36Sopenharmony_ci }; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci si5332_2: si5332-2 { /* u17 */ 3862306a36Sopenharmony_ci compatible = "fixed-clock"; 3962306a36Sopenharmony_ci #clock-cells = <0>; 4062306a36Sopenharmony_ci clock-frequency = <48000000>; 4162306a36Sopenharmony_ci }; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci si5332_3: si5332-3 { /* u17 */ 4462306a36Sopenharmony_ci compatible = "fixed-clock"; 4562306a36Sopenharmony_ci #clock-cells = <0>; 4662306a36Sopenharmony_ci clock-frequency = <24000000>; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci si5332_4: si5332-4 { /* u17 */ 5062306a36Sopenharmony_ci compatible = "fixed-clock"; 5162306a36Sopenharmony_ci #clock-cells = <0>; 5262306a36Sopenharmony_ci clock-frequency = <26000000>; 5362306a36Sopenharmony_ci }; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci si5332_5: si5332-5 { /* u17 */ 5662306a36Sopenharmony_ci compatible = "fixed-clock"; 5762306a36Sopenharmony_ci #clock-cells = <0>; 5862306a36Sopenharmony_ci clock-frequency = <27000000>; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci}; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */ 6362306a36Sopenharmony_ci #address-cells = <1>; 6462306a36Sopenharmony_ci #size-cells = <0>; 6562306a36Sopenharmony_ci pinctrl-names = "default", "gpio"; 6662306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_i2c1_default>; 6762306a36Sopenharmony_ci pinctrl-1 = <&pinctrl_i2c1_gpio>; 6862306a36Sopenharmony_ci scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 6962306a36Sopenharmony_ci sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci /* u14 - 0x40 - ina260 */ 7262306a36Sopenharmony_ci /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */ 7362306a36Sopenharmony_ci}; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci/* DP/USB 3.0 and SATA */ 7662306a36Sopenharmony_ci&psgtr { 7762306a36Sopenharmony_ci status = "okay"; 7862306a36Sopenharmony_ci /* pcie, usb3, sata */ 7962306a36Sopenharmony_ci clocks = <&si5332_5>, <&si5332_4>, <&si5332_0>; 8062306a36Sopenharmony_ci clock-names = "ref0", "ref1", "ref2"; 8162306a36Sopenharmony_ci}; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci&sata { 8462306a36Sopenharmony_ci status = "okay"; 8562306a36Sopenharmony_ci /* SATA OOB timing settings */ 8662306a36Sopenharmony_ci ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 8762306a36Sopenharmony_ci ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 8862306a36Sopenharmony_ci ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 8962306a36Sopenharmony_ci ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 9062306a36Sopenharmony_ci ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 9162306a36Sopenharmony_ci ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 9262306a36Sopenharmony_ci ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 9362306a36Sopenharmony_ci ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 9462306a36Sopenharmony_ci phy-names = "sata-phy"; 9562306a36Sopenharmony_ci phys = <&psgtr 3 PHY_TYPE_SATA 1 2>; 9662306a36Sopenharmony_ci}; 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci&zynqmp_dpsub { 9962306a36Sopenharmony_ci status = "okay"; 10062306a36Sopenharmony_ci phy-names = "dp-phy0", "dp-phy1"; 10162306a36Sopenharmony_ci phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>; 10262306a36Sopenharmony_ci assigned-clock-rates = <27000000>, <25000000>, <300000000>; 10362306a36Sopenharmony_ci}; 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci&zynqmp_dpdma { 10662306a36Sopenharmony_ci status = "okay"; 10762306a36Sopenharmony_ci assigned-clock-rates = <600000000>; 10862306a36Sopenharmony_ci}; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci&usb0 { 11162306a36Sopenharmony_ci status = "okay"; 11262306a36Sopenharmony_ci pinctrl-names = "default"; 11362306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_usb0_default>; 11462306a36Sopenharmony_ci phy-names = "usb3-phy"; 11562306a36Sopenharmony_ci phys = <&psgtr 2 PHY_TYPE_USB3 0 1>; 11662306a36Sopenharmony_ci /* missing usb5744 - u43 */ 11762306a36Sopenharmony_ci}; 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci&dwc3_0 { 12062306a36Sopenharmony_ci status = "okay"; 12162306a36Sopenharmony_ci dr_mode = "host"; 12262306a36Sopenharmony_ci snps,usb3_lpm_capable; 12362306a36Sopenharmony_ci maximum-speed = "super-speed"; 12462306a36Sopenharmony_ci}; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci&sdhci1 { /* on CC with tuned parameters */ 12762306a36Sopenharmony_ci status = "okay"; 12862306a36Sopenharmony_ci pinctrl-names = "default"; 12962306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_sdhci1_default>; 13062306a36Sopenharmony_ci /* 13162306a36Sopenharmony_ci * SD 3.0 requires level shifter and this property 13262306a36Sopenharmony_ci * should be removed if the board has level shifter and 13362306a36Sopenharmony_ci * need to work in UHS mode 13462306a36Sopenharmony_ci */ 13562306a36Sopenharmony_ci no-1-8-v; 13662306a36Sopenharmony_ci disable-wp; 13762306a36Sopenharmony_ci xlnx,mio-bank = <1>; 13862306a36Sopenharmony_ci assigned-clock-rates = <187498123>; 13962306a36Sopenharmony_ci bus-width = <4>; 14062306a36Sopenharmony_ci}; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci&gem3 { /* required by spec */ 14362306a36Sopenharmony_ci status = "okay"; 14462306a36Sopenharmony_ci pinctrl-names = "default"; 14562306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_gem3_default>; 14662306a36Sopenharmony_ci phy-handle = <&phy0>; 14762306a36Sopenharmony_ci phy-mode = "rgmii-id"; 14862306a36Sopenharmony_ci assigned-clock-rates = <250000000>; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci mdio: mdio { 15162306a36Sopenharmony_ci #address-cells = <1>; 15262306a36Sopenharmony_ci #size-cells = <0>; 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci phy0: ethernet-phy@1 { 15562306a36Sopenharmony_ci #phy-cells = <1>; 15662306a36Sopenharmony_ci reg = <1>; 15762306a36Sopenharmony_ci compatible = "ethernet-phy-id2000.a231"; 15862306a36Sopenharmony_ci ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 15962306a36Sopenharmony_ci ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>; 16062306a36Sopenharmony_ci ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 16162306a36Sopenharmony_ci ti,dp83867-rxctrl-strap-quirk; 16262306a36Sopenharmony_ci reset-assert-us = <100>; 16362306a36Sopenharmony_ci reset-deassert-us = <280>; 16462306a36Sopenharmony_ci reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>; 16562306a36Sopenharmony_ci }; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci}; 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci&pinctrl0 { /* required by spec */ 17062306a36Sopenharmony_ci status = "okay"; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci pinctrl_uart1_default: uart1-default { 17362306a36Sopenharmony_ci conf { 17462306a36Sopenharmony_ci groups = "uart1_9_grp"; 17562306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 17662306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 17762306a36Sopenharmony_ci drive-strength = <12>; 17862306a36Sopenharmony_ci }; 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci conf-rx { 18162306a36Sopenharmony_ci pins = "MIO37"; 18262306a36Sopenharmony_ci bias-high-impedance; 18362306a36Sopenharmony_ci }; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci conf-tx { 18662306a36Sopenharmony_ci pins = "MIO36"; 18762306a36Sopenharmony_ci bias-disable; 18862306a36Sopenharmony_ci }; 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci mux { 19162306a36Sopenharmony_ci groups = "uart1_9_grp"; 19262306a36Sopenharmony_ci function = "uart1"; 19362306a36Sopenharmony_ci }; 19462306a36Sopenharmony_ci }; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci pinctrl_i2c1_default: i2c1-default { 19762306a36Sopenharmony_ci conf { 19862306a36Sopenharmony_ci groups = "i2c1_6_grp"; 19962306a36Sopenharmony_ci bias-pull-up; 20062306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 20162306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 20262306a36Sopenharmony_ci }; 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci mux { 20562306a36Sopenharmony_ci groups = "i2c1_6_grp"; 20662306a36Sopenharmony_ci function = "i2c1"; 20762306a36Sopenharmony_ci }; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci pinctrl_i2c1_gpio: i2c1-gpio { 21162306a36Sopenharmony_ci conf { 21262306a36Sopenharmony_ci groups = "gpio0_24_grp", "gpio0_25_grp"; 21362306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 21462306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 21562306a36Sopenharmony_ci }; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci mux { 21862306a36Sopenharmony_ci groups = "gpio0_24_grp", "gpio0_25_grp"; 21962306a36Sopenharmony_ci function = "gpio0"; 22062306a36Sopenharmony_ci }; 22162306a36Sopenharmony_ci }; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci pinctrl_gem3_default: gem3-default { 22462306a36Sopenharmony_ci conf { 22562306a36Sopenharmony_ci groups = "ethernet3_0_grp"; 22662306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 22762306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 22862306a36Sopenharmony_ci }; 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci conf-rx { 23162306a36Sopenharmony_ci pins = "MIO70", "MIO72", "MIO74"; 23262306a36Sopenharmony_ci bias-high-impedance; 23362306a36Sopenharmony_ci low-power-disable; 23462306a36Sopenharmony_ci }; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci conf-bootstrap { 23762306a36Sopenharmony_ci pins = "MIO71", "MIO73", "MIO75"; 23862306a36Sopenharmony_ci bias-disable; 23962306a36Sopenharmony_ci low-power-disable; 24062306a36Sopenharmony_ci }; 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci conf-tx { 24362306a36Sopenharmony_ci pins = "MIO64", "MIO65", "MIO66", 24462306a36Sopenharmony_ci "MIO67", "MIO68", "MIO69"; 24562306a36Sopenharmony_ci bias-disable; 24662306a36Sopenharmony_ci low-power-enable; 24762306a36Sopenharmony_ci }; 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci conf-mdio { 25062306a36Sopenharmony_ci groups = "mdio3_0_grp"; 25162306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 25262306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 25362306a36Sopenharmony_ci bias-disable; 25462306a36Sopenharmony_ci }; 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci mux-mdio { 25762306a36Sopenharmony_ci function = "mdio3"; 25862306a36Sopenharmony_ci groups = "mdio3_0_grp"; 25962306a36Sopenharmony_ci }; 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci mux { 26262306a36Sopenharmony_ci function = "ethernet3"; 26362306a36Sopenharmony_ci groups = "ethernet3_0_grp"; 26462306a36Sopenharmony_ci }; 26562306a36Sopenharmony_ci }; 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci pinctrl_usb0_default: usb0-default { 26862306a36Sopenharmony_ci conf { 26962306a36Sopenharmony_ci groups = "usb0_0_grp"; 27062306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 27162306a36Sopenharmony_ci }; 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci conf-rx { 27462306a36Sopenharmony_ci pins = "MIO52", "MIO53", "MIO55"; 27562306a36Sopenharmony_ci bias-high-impedance; 27662306a36Sopenharmony_ci drive-strength = <12>; 27762306a36Sopenharmony_ci slew-rate = <SLEW_RATE_FAST>; 27862306a36Sopenharmony_ci }; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci conf-tx { 28162306a36Sopenharmony_ci pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59", 28262306a36Sopenharmony_ci "MIO60", "MIO61", "MIO62", "MIO63"; 28362306a36Sopenharmony_ci bias-disable; 28462306a36Sopenharmony_ci drive-strength = <4>; 28562306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 28662306a36Sopenharmony_ci }; 28762306a36Sopenharmony_ci 28862306a36Sopenharmony_ci mux { 28962306a36Sopenharmony_ci groups = "usb0_0_grp"; 29062306a36Sopenharmony_ci function = "usb0"; 29162306a36Sopenharmony_ci }; 29262306a36Sopenharmony_ci }; 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ci pinctrl_sdhci1_default: sdhci1-default { 29562306a36Sopenharmony_ci conf { 29662306a36Sopenharmony_ci groups = "sdio1_0_grp"; 29762306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 29862306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 29962306a36Sopenharmony_ci bias-disable; 30062306a36Sopenharmony_ci }; 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci conf-cd { 30362306a36Sopenharmony_ci groups = "sdio1_cd_0_grp"; 30462306a36Sopenharmony_ci bias-high-impedance; 30562306a36Sopenharmony_ci bias-pull-up; 30662306a36Sopenharmony_ci slew-rate = <SLEW_RATE_SLOW>; 30762306a36Sopenharmony_ci power-source = <IO_STANDARD_LVCMOS18>; 30862306a36Sopenharmony_ci }; 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ci mux-cd { 31162306a36Sopenharmony_ci groups = "sdio1_cd_0_grp"; 31262306a36Sopenharmony_ci function = "sdio1_cd"; 31362306a36Sopenharmony_ci }; 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ci mux { 31662306a36Sopenharmony_ci groups = "sdio1_0_grp"; 31762306a36Sopenharmony_ci function = "sdio1"; 31862306a36Sopenharmony_ci }; 31962306a36Sopenharmony_ci }; 32062306a36Sopenharmony_ci}; 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci&uart1 { 32362306a36Sopenharmony_ci status = "okay"; 32462306a36Sopenharmony_ci pinctrl-names = "default"; 32562306a36Sopenharmony_ci pinctrl-0 = <&pinctrl_uart1_default>; 32662306a36Sopenharmony_ci}; 327