// SPDX-License-Identifier: GPL-2.0-only OR MIT /* * DT overlay for PCIe support (limits USB to 2.0/high-speed) * * Copyright (C) 2021 PHYTEC America, LLC - https://www.phytec.com * Author: Matt McKee * * Copyright (C) 2024 PHYTEC America, LLC - https://www.phytec.com * Author: Nathan Morrisson */ /dts-v1/; /plugin/; #include #include #include #include "k3-pinctrl.h" #include "k3-serdes.h" &{/} { pcie_refclk0: pcie-refclk0 { compatible = "gpio-gate-clock"; pinctrl-names = "default"; pinctrl-0 = <&pcie_usb_sel_pins_default>; clocks = <&serdes_refclk>; #clock-cells = <0>; enable-gpios = <&main_gpio1 7 GPIO_ACTIVE_HIGH>; }; }; &main_pmx0 { pcie_usb_sel_pins_default: pcie-usb-sel-default-pins { pinctrl-single,pins = < AM64X_IOPAD(0x017c, PIN_OUTPUT, 7) /* (T1) PRG0_PRU0_GPO7.GPIO1_7 */ >; }; pcie_pins_default: pcie-default-pins { pinctrl-single,pins = < AM64X_IOPAD(0x0098, PIN_OUTPUT, 7) /* (W19) GPMC0_WAIT0.GPIO0_37 */ >; }; }; &pcie0_rc { pinctrl-names = "default"; pinctrl-0 = <&pcie_pins_default>; reset-gpios = <&main_gpio0 37 GPIO_ACTIVE_HIGH>; phys = <&serdes0_pcie_usb_link>; phy-names = "pcie-phy"; num-lanes = <1>; status = "okay"; }; &serdes0_pcie_usb_link { cdns,phy-type = ; }; &serdes_ln_ctrl { idle-states = ; }; &serdes0 { assigned-clock-parents = <&pcie_refclk0>, <&pcie_refclk0>, <&pcie_refclk0>; }; &serdes_refclk { clock-frequency = <100000000>; }; /* * Assign pcie_refclk0 to serdes_wiz0 as ext_ref_clk. * This makes sure that the clock generator gets enabled at the right time. */ &serdes_wiz0 { clocks = <&k3_clks 162 0>, <&k3_clks 162 1>, <&pcie_refclk0>; }; &usbss0 { ti,usb2-only; }; &usb0 { maximum-speed = "high-speed"; };