1d6e25926SAndrew Davis// SPDX-License-Identifier: GPL-2.0 2d6e25926SAndrew Davis/* 3d6e25926SAndrew Davis * dts file for KV260 revA Carrier Card 4d6e25926SAndrew Davis * 5f8673fd5SAshok Reddy Soma * (C) Copyright 2020 - 2022, Xilinx, Inc. 6f8673fd5SAshok Reddy Soma * (C) Copyright 2022 - 2023, Advanced Micro Devices, Inc. 7d6e25926SAndrew Davis * 8d6e25926SAndrew Davis * SD level shifter: 9f5c8855dSMichal Simek * "A" - A01 board un-modified (NXP) 10f5c8855dSMichal Simek * "Y" - A01 board modified with legacy interposer (Nexperia) 11f5c8855dSMichal Simek * "Z" - A01 board modified with Diode interposer 12d6e25926SAndrew Davis * 134e4ddd3dSMichal Simek * Michal Simek <michal.simek@amd.com> 14d6e25926SAndrew Davis */ 15d6e25926SAndrew Davis 16d6e25926SAndrew Davis#include <dt-bindings/gpio/gpio.h> 17d6e25926SAndrew Davis#include <dt-bindings/net/ti-dp83867.h> 18d6e25926SAndrew Davis#include <dt-bindings/phy/phy.h> 19d6e25926SAndrew Davis#include <dt-bindings/pinctrl/pinctrl-zynqmp.h> 20d6e25926SAndrew Davis 21d6e25926SAndrew Davis/dts-v1/; 22d6e25926SAndrew Davis/plugin/; 23d6e25926SAndrew Davis 246a10a19aSMichal Simek&{/} { 25894221b5SMichal Simek compatible = "xlnx,zynqmp-sk-kv260-revA", 26894221b5SMichal Simek "xlnx,zynqmp-sk-kv260-revY", 27894221b5SMichal Simek "xlnx,zynqmp-sk-kv260-revZ", 28894221b5SMichal Simek "xlnx,zynqmp-sk-kv260", "xlnx,zynqmp"; 29894221b5SMichal Simek model = "ZynqMP KV260 revA"; 30894221b5SMichal Simek 31*385cc4f7SMichal Simek ina260-u14 { 32*385cc4f7SMichal Simek compatible = "iio-hwmon"; 33*385cc4f7SMichal Simek io-channels = <&u14 0>, <&u14 1>, <&u14 2>; 34*385cc4f7SMichal Simek }; 35*385cc4f7SMichal Simek 360bfb7950SMichal Simek si5332_0: si5332-0 { /* u17 */ 37d6e25926SAndrew Davis compatible = "fixed-clock"; 38d6e25926SAndrew Davis #clock-cells = <0>; 39d6e25926SAndrew Davis clock-frequency = <125000000>; 40d6e25926SAndrew Davis }; 41d6e25926SAndrew Davis 420bfb7950SMichal Simek si5332_1: si5332-1 { /* u17 */ 43d6e25926SAndrew Davis compatible = "fixed-clock"; 44d6e25926SAndrew Davis #clock-cells = <0>; 45d6e25926SAndrew Davis clock-frequency = <25000000>; 46d6e25926SAndrew Davis }; 47d6e25926SAndrew Davis 480bfb7950SMichal Simek si5332_2: si5332-2 { /* u17 */ 49d6e25926SAndrew Davis compatible = "fixed-clock"; 50d6e25926SAndrew Davis #clock-cells = <0>; 51d6e25926SAndrew Davis clock-frequency = <48000000>; 52d6e25926SAndrew Davis }; 53d6e25926SAndrew Davis 540bfb7950SMichal Simek si5332_3: si5332-3 { /* u17 */ 55d6e25926SAndrew Davis compatible = "fixed-clock"; 56d6e25926SAndrew Davis #clock-cells = <0>; 57d6e25926SAndrew Davis clock-frequency = <24000000>; 58d6e25926SAndrew Davis }; 59d6e25926SAndrew Davis 600bfb7950SMichal Simek si5332_4: si5332-4 { /* u17 */ 61d6e25926SAndrew Davis compatible = "fixed-clock"; 62d6e25926SAndrew Davis #clock-cells = <0>; 63d6e25926SAndrew Davis clock-frequency = <26000000>; 64d6e25926SAndrew Davis }; 65d6e25926SAndrew Davis 660bfb7950SMichal Simek si5332_5: si5332-5 { /* u17 */ 67d6e25926SAndrew Davis compatible = "fixed-clock"; 68d6e25926SAndrew Davis #clock-cells = <0>; 69d6e25926SAndrew Davis clock-frequency = <27000000>; 70d6e25926SAndrew Davis }; 71d6e25926SAndrew Davis}; 72d6e25926SAndrew Davis 736a10a19aSMichal Simek&i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */ 746a10a19aSMichal Simek #address-cells = <1>; 756a10a19aSMichal Simek #size-cells = <0>; 766a10a19aSMichal Simek pinctrl-names = "default", "gpio"; 776a10a19aSMichal Simek pinctrl-0 = <&pinctrl_i2c1_default>; 786a10a19aSMichal Simek pinctrl-1 = <&pinctrl_i2c1_gpio>; 796a10a19aSMichal Simek scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 806a10a19aSMichal Simek sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 816a10a19aSMichal Simek 82*385cc4f7SMichal Simek u14: ina260@40 { /* u14 */ 83*385cc4f7SMichal Simek compatible = "ti,ina260"; 84*385cc4f7SMichal Simek #io-channel-cells = <1>; 85*385cc4f7SMichal Simek label = "ina260-u14"; 86*385cc4f7SMichal Simek reg = <0x40>; 87*385cc4f7SMichal Simek }; 886a10a19aSMichal Simek /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */ 896a10a19aSMichal Simek}; 906a10a19aSMichal Simek 91d6e25926SAndrew Davis/* DP/USB 3.0 and SATA */ 92d6e25926SAndrew Davis&psgtr { 93d6e25926SAndrew Davis status = "okay"; 94d6e25926SAndrew Davis /* pcie, usb3, sata */ 95d6e25926SAndrew Davis clocks = <&si5332_5>, <&si5332_4>, <&si5332_0>; 96d6e25926SAndrew Davis clock-names = "ref0", "ref1", "ref2"; 97d6e25926SAndrew Davis}; 98d6e25926SAndrew Davis 99d6e25926SAndrew Davis&sata { 100d6e25926SAndrew Davis status = "okay"; 101d6e25926SAndrew Davis /* SATA OOB timing settings */ 102d6e25926SAndrew Davis ceva,p0-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 103d6e25926SAndrew Davis ceva,p0-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 104d6e25926SAndrew Davis ceva,p0-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 105d6e25926SAndrew Davis ceva,p0-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 106d6e25926SAndrew Davis ceva,p1-cominit-params = /bits/ 8 <0x18 0x40 0x18 0x28>; 107d6e25926SAndrew Davis ceva,p1-comwake-params = /bits/ 8 <0x06 0x14 0x08 0x0E>; 108d6e25926SAndrew Davis ceva,p1-burst-params = /bits/ 8 <0x13 0x08 0x4A 0x06>; 109d6e25926SAndrew Davis ceva,p1-retry-params = /bits/ 16 <0x96A4 0x3FFC>; 110d6e25926SAndrew Davis phy-names = "sata-phy"; 111d6e25926SAndrew Davis phys = <&psgtr 3 PHY_TYPE_SATA 1 2>; 112d6e25926SAndrew Davis}; 113d6e25926SAndrew Davis 114d6e25926SAndrew Davis&zynqmp_dpsub { 1156d1a2beaSMichal Simek status = "okay"; 116d6e25926SAndrew Davis phy-names = "dp-phy0", "dp-phy1"; 117d6e25926SAndrew Davis phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>; 118116de80aSMichal Simek assigned-clock-rates = <27000000>, <25000000>, <300000000>; 119d6e25926SAndrew Davis}; 120d6e25926SAndrew Davis 121d6e25926SAndrew Davis&zynqmp_dpdma { 122d6e25926SAndrew Davis status = "okay"; 123116de80aSMichal Simek assigned-clock-rates = <600000000>; 124d6e25926SAndrew Davis}; 125d6e25926SAndrew Davis 126d6e25926SAndrew Davis&usb0 { 127d6e25926SAndrew Davis status = "okay"; 128d6e25926SAndrew Davis pinctrl-names = "default"; 129d6e25926SAndrew Davis pinctrl-0 = <&pinctrl_usb0_default>; 130d6e25926SAndrew Davis phy-names = "usb3-phy"; 131d6e25926SAndrew Davis phys = <&psgtr 2 PHY_TYPE_USB3 0 1>; 132d6e25926SAndrew Davis /* missing usb5744 - u43 */ 133d6e25926SAndrew Davis}; 134d6e25926SAndrew Davis 135d6e25926SAndrew Davis&dwc3_0 { 136d6e25926SAndrew Davis status = "okay"; 137d6e25926SAndrew Davis dr_mode = "host"; 138d6e25926SAndrew Davis snps,usb3_lpm_capable; 139d6e25926SAndrew Davis maximum-speed = "super-speed"; 140d6e25926SAndrew Davis}; 141d6e25926SAndrew Davis 142d6e25926SAndrew Davis&sdhci1 { /* on CC with tuned parameters */ 143d6e25926SAndrew Davis status = "okay"; 144d6e25926SAndrew Davis pinctrl-names = "default"; 145d6e25926SAndrew Davis pinctrl-0 = <&pinctrl_sdhci1_default>; 146d6e25926SAndrew Davis /* 147d6e25926SAndrew Davis * SD 3.0 requires level shifter and this property 148d6e25926SAndrew Davis * should be removed if the board has level shifter and 149d6e25926SAndrew Davis * need to work in UHS mode 150d6e25926SAndrew Davis */ 151d6e25926SAndrew Davis no-1-8-v; 152d6e25926SAndrew Davis disable-wp; 153d6e25926SAndrew Davis xlnx,mio-bank = <1>; 154637902f7SMichal Simek assigned-clock-rates = <187498123>; 1557b91ccd5SMichal Simek bus-width = <4>; 156d6e25926SAndrew Davis}; 157d6e25926SAndrew Davis 15824e85ff0SMichal Simek&gem3 { 159d6e25926SAndrew Davis status = "okay"; 160d6e25926SAndrew Davis pinctrl-names = "default"; 161d6e25926SAndrew Davis pinctrl-0 = <&pinctrl_gem3_default>; 162d6e25926SAndrew Davis phy-handle = <&phy0>; 163d6e25926SAndrew Davis phy-mode = "rgmii-id"; 164233e6e9dSHarini Katakam assigned-clock-rates = <250000000>; 165d6e25926SAndrew Davis 166d6e25926SAndrew Davis mdio: mdio { 167d6e25926SAndrew Davis #address-cells = <1>; 168d6e25926SAndrew Davis #size-cells = <0>; 169d6e25926SAndrew Davis 170d6e25926SAndrew Davis phy0: ethernet-phy@1 { 171d6e25926SAndrew Davis #phy-cells = <1>; 172d6e25926SAndrew Davis reg = <1>; 173fc57b6c9SMichal Simek compatible = "ethernet-phy-id2000.a231"; 174d6e25926SAndrew Davis ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 175d6e25926SAndrew Davis ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_75_NS>; 176d6e25926SAndrew Davis ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 177d6e25926SAndrew Davis ti,dp83867-rxctrl-strap-quirk; 178fc57b6c9SMichal Simek reset-assert-us = <100>; 179fc57b6c9SMichal Simek reset-deassert-us = <280>; 180fc57b6c9SMichal Simek reset-gpios = <&gpio 38 GPIO_ACTIVE_LOW>; 181d6e25926SAndrew Davis }; 182d6e25926SAndrew Davis }; 183d6e25926SAndrew Davis}; 184d6e25926SAndrew Davis 18524e85ff0SMichal Simek&pinctrl0 { 186d6e25926SAndrew Davis status = "okay"; 187d6e25926SAndrew Davis 188ea470fe3STejas Bhumkar pinctrl_gpio0_default: gpio0-default { 189ea470fe3STejas Bhumkar conf { 190ea470fe3STejas Bhumkar groups = "gpio0_38_grp"; 191ea470fe3STejas Bhumkar bias-pull-up; 192ea470fe3STejas Bhumkar power-source = <IO_STANDARD_LVCMOS18>; 193ea470fe3STejas Bhumkar }; 194ea470fe3STejas Bhumkar 195ea470fe3STejas Bhumkar mux { 196ea470fe3STejas Bhumkar groups = "gpio0_38_grp"; 197ea470fe3STejas Bhumkar function = "gpio0"; 198ea470fe3STejas Bhumkar }; 199ea470fe3STejas Bhumkar 200ea470fe3STejas Bhumkar conf-tx { 201ea470fe3STejas Bhumkar pins = "MIO38"; 202ea470fe3STejas Bhumkar bias-disable; 203ea470fe3STejas Bhumkar output-enable; 204ea470fe3STejas Bhumkar }; 205ea470fe3STejas Bhumkar }; 206ea470fe3STejas Bhumkar 207d6e25926SAndrew Davis pinctrl_uart1_default: uart1-default { 208d6e25926SAndrew Davis conf { 209d6e25926SAndrew Davis groups = "uart1_9_grp"; 210d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 211d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 212d6e25926SAndrew Davis drive-strength = <12>; 213d6e25926SAndrew Davis }; 214d6e25926SAndrew Davis 215d6e25926SAndrew Davis conf-rx { 216d6e25926SAndrew Davis pins = "MIO37"; 217d6e25926SAndrew Davis bias-high-impedance; 218d6e25926SAndrew Davis }; 219d6e25926SAndrew Davis 220d6e25926SAndrew Davis conf-tx { 221d6e25926SAndrew Davis pins = "MIO36"; 222d6e25926SAndrew Davis bias-disable; 22334e48901SNeal Frager output-enable; 224d6e25926SAndrew Davis }; 225d6e25926SAndrew Davis 226d6e25926SAndrew Davis mux { 227d6e25926SAndrew Davis groups = "uart1_9_grp"; 228d6e25926SAndrew Davis function = "uart1"; 229d6e25926SAndrew Davis }; 230d6e25926SAndrew Davis }; 231d6e25926SAndrew Davis 232d6e25926SAndrew Davis pinctrl_i2c1_default: i2c1-default { 233d6e25926SAndrew Davis conf { 234d6e25926SAndrew Davis groups = "i2c1_6_grp"; 235d6e25926SAndrew Davis bias-pull-up; 236d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 237d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 238d6e25926SAndrew Davis }; 239d6e25926SAndrew Davis 240d6e25926SAndrew Davis mux { 241d6e25926SAndrew Davis groups = "i2c1_6_grp"; 242d6e25926SAndrew Davis function = "i2c1"; 243d6e25926SAndrew Davis }; 244d6e25926SAndrew Davis }; 245d6e25926SAndrew Davis 2468258cf0dSMichal Simek pinctrl_i2c1_gpio: i2c1-gpio-grp { 247d6e25926SAndrew Davis conf { 248d6e25926SAndrew Davis groups = "gpio0_24_grp", "gpio0_25_grp"; 249d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 250d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 251d6e25926SAndrew Davis }; 252d6e25926SAndrew Davis 253d6e25926SAndrew Davis mux { 254d6e25926SAndrew Davis groups = "gpio0_24_grp", "gpio0_25_grp"; 255d6e25926SAndrew Davis function = "gpio0"; 256d6e25926SAndrew Davis }; 257d6e25926SAndrew Davis }; 258d6e25926SAndrew Davis 259d6e25926SAndrew Davis pinctrl_gem3_default: gem3-default { 260d6e25926SAndrew Davis conf { 261d6e25926SAndrew Davis groups = "ethernet3_0_grp"; 262d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 263d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 264d6e25926SAndrew Davis }; 265d6e25926SAndrew Davis 266d6e25926SAndrew Davis conf-rx { 267d6e25926SAndrew Davis pins = "MIO70", "MIO72", "MIO74"; 268d6e25926SAndrew Davis bias-high-impedance; 269d6e25926SAndrew Davis low-power-disable; 270d6e25926SAndrew Davis }; 271d6e25926SAndrew Davis 272d6e25926SAndrew Davis conf-bootstrap { 273d6e25926SAndrew Davis pins = "MIO71", "MIO73", "MIO75"; 274d6e25926SAndrew Davis bias-disable; 27534e48901SNeal Frager output-enable; 276d6e25926SAndrew Davis low-power-disable; 277d6e25926SAndrew Davis }; 278d6e25926SAndrew Davis 279d6e25926SAndrew Davis conf-tx { 280d6e25926SAndrew Davis pins = "MIO64", "MIO65", "MIO66", 281d6e25926SAndrew Davis "MIO67", "MIO68", "MIO69"; 282d6e25926SAndrew Davis bias-disable; 28334e48901SNeal Frager output-enable; 284d6e25926SAndrew Davis low-power-enable; 285d6e25926SAndrew Davis }; 286d6e25926SAndrew Davis 287d6e25926SAndrew Davis conf-mdio { 288d6e25926SAndrew Davis groups = "mdio3_0_grp"; 289d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 290d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 291d6e25926SAndrew Davis bias-disable; 29234e48901SNeal Frager output-enable; 293d6e25926SAndrew Davis }; 294d6e25926SAndrew Davis 295d6e25926SAndrew Davis mux-mdio { 296d6e25926SAndrew Davis function = "mdio3"; 297d6e25926SAndrew Davis groups = "mdio3_0_grp"; 298d6e25926SAndrew Davis }; 299d6e25926SAndrew Davis 300d6e25926SAndrew Davis mux { 301d6e25926SAndrew Davis function = "ethernet3"; 302d6e25926SAndrew Davis groups = "ethernet3_0_grp"; 303d6e25926SAndrew Davis }; 304d6e25926SAndrew Davis }; 305d6e25926SAndrew Davis 306d6e25926SAndrew Davis pinctrl_usb0_default: usb0-default { 307d6e25926SAndrew Davis conf { 308d6e25926SAndrew Davis groups = "usb0_0_grp"; 309d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 310d6e25926SAndrew Davis }; 311d6e25926SAndrew Davis 312d6e25926SAndrew Davis conf-rx { 313d6e25926SAndrew Davis pins = "MIO52", "MIO53", "MIO55"; 314d6e25926SAndrew Davis bias-high-impedance; 315f8673fd5SAshok Reddy Soma drive-strength = <12>; 316f8673fd5SAshok Reddy Soma slew-rate = <SLEW_RATE_FAST>; 317d6e25926SAndrew Davis }; 318d6e25926SAndrew Davis 319d6e25926SAndrew Davis conf-tx { 320d6e25926SAndrew Davis pins = "MIO54", "MIO56", "MIO57", "MIO58", "MIO59", 321d6e25926SAndrew Davis "MIO60", "MIO61", "MIO62", "MIO63"; 322d6e25926SAndrew Davis bias-disable; 32334e48901SNeal Frager output-enable; 324f8673fd5SAshok Reddy Soma drive-strength = <4>; 325f8673fd5SAshok Reddy Soma slew-rate = <SLEW_RATE_SLOW>; 326d6e25926SAndrew Davis }; 327d6e25926SAndrew Davis 328d6e25926SAndrew Davis mux { 329d6e25926SAndrew Davis groups = "usb0_0_grp"; 330d6e25926SAndrew Davis function = "usb0"; 331d6e25926SAndrew Davis }; 332d6e25926SAndrew Davis }; 333d6e25926SAndrew Davis 334d6e25926SAndrew Davis pinctrl_sdhci1_default: sdhci1-default { 335d6e25926SAndrew Davis conf { 336d6e25926SAndrew Davis groups = "sdio1_0_grp"; 337d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 338d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 339d6e25926SAndrew Davis bias-disable; 340a082e297STejas Bhumkar output-enable; 341d6e25926SAndrew Davis }; 342d6e25926SAndrew Davis 343d6e25926SAndrew Davis conf-cd { 344d6e25926SAndrew Davis groups = "sdio1_cd_0_grp"; 345d6e25926SAndrew Davis bias-high-impedance; 346d6e25926SAndrew Davis bias-pull-up; 347d6e25926SAndrew Davis slew-rate = <SLEW_RATE_SLOW>; 348d6e25926SAndrew Davis power-source = <IO_STANDARD_LVCMOS18>; 349d6e25926SAndrew Davis }; 350d6e25926SAndrew Davis 351d6e25926SAndrew Davis mux-cd { 352d6e25926SAndrew Davis groups = "sdio1_cd_0_grp"; 353d6e25926SAndrew Davis function = "sdio1_cd"; 354d6e25926SAndrew Davis }; 355d6e25926SAndrew Davis 356d6e25926SAndrew Davis mux { 357d6e25926SAndrew Davis groups = "sdio1_0_grp"; 358d6e25926SAndrew Davis function = "sdio1"; 359d6e25926SAndrew Davis }; 360d6e25926SAndrew Davis }; 361d6e25926SAndrew Davis}; 362d6e25926SAndrew Davis 363ea470fe3STejas Bhumkar&gpio { 364ea470fe3STejas Bhumkar status = "okay"; 365ea470fe3STejas Bhumkar pinctrl-names = "default"; 366ea470fe3STejas Bhumkar pinctrl-0 = <&pinctrl_gpio0_default>; 367ea470fe3STejas Bhumkar}; 368ea470fe3STejas Bhumkar 369d6e25926SAndrew Davis&uart1 { 370d6e25926SAndrew Davis status = "okay"; 371d6e25926SAndrew Davis pinctrl-names = "default"; 372d6e25926SAndrew Davis pinctrl-0 = <&pinctrl_uart1_default>; 373d6e25926SAndrew Davis}; 374