// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2023 Collabora Ltd.
 */

#include "rk3588-u-boot.dtsi"
#include <dt-bindings/usb/pd.h>

/ {
	vcc12v_dcin: vcc12v-dcin-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc12v_dcin";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
	};
};

&fspim2_pins {
	bootph-pre-ram;
	bootph-some-ram;
};

&pinctrl {
	usb {
		usbc0_int: usbc0-int {
			rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};

&sdhci {
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
};

&sfc {
	pinctrl-names = "default";
	pinctrl-0 = <&fspim2_pins>;
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		bootph-pre-ram;
		bootph-some-ram;
		spi-max-frequency = <24000000>;
		spi-rx-bus-width = <4>;
		spi-tx-bus-width = <1>;
	};
};

&u2phy0 {
	status = "okay";
};

&u2phy0_otg {
	status = "okay";
};

&u2phy1 {
	status = "okay";
};

&u2phy1_otg {
	status = "okay";
};

&usbdp_phy1 {
	status = "okay";
};

&usbdp_phy1_u3 {
	status = "okay";
};

&usbdp_phy0 {
	orientation-switch;
	mode-switch;
	sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
	sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
	status = "okay";

	port {
		#address-cells = <1>;
		#size-cells = <0>;

		usbdp_phy0_typec_ss: endpoint@0 {
			reg = <0>;
			remote-endpoint = <&usbc0_ss>;
		};

		usbdp_phy0_typec_sbu: endpoint@1 {
			reg = <1>;
			remote-endpoint = <&usbc0_sbu>;
		};
	};
};

&usbdp_phy0_u3 {
	status = "okay";
};

&usb_host0_xhci {
	usb-role-switch;
	status = "okay";

	port {
		#address-cells = <1>;
		#size-cells = <0>;

		usb_host0_xhci_drd_sw: endpoint {
			remote-endpoint = <&usbc0_hs>;
		};
	};
};

&usb_host1_xhci {
	status = "okay";
};

&i2c4 {
	pinctrl-names = "default";
	pinctrl-0 = <&i2c4m1_xfer>;
	status = "okay";

	usbc0: usb-typec@22 {
		compatible = "fcs,fusb302";
		reg = <0x22>;
		interrupt-parent = <&gpio3>;
		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&usbc0_int>;
		vbus-supply = <&vcc12v_dcin>;
		status = "okay";

		usb_con: connector {
			compatible = "usb-c-connector";
			label = "USB-C";
			data-role = "dual";
			power-role = "sink";
			try-power-role = "sink";
			op-sink-microwatt = <1000000>;
			sink-pdos =
				<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>,
				<PDO_VAR(5000, 20000, 5000)>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port@0 {
					reg = <0>;
					usbc0_hs: endpoint {
						remote-endpoint = <&usb_host0_xhci_drd_sw>;
					};
				};

				port@1 {
					reg = <1>;
					usbc0_ss: endpoint {
						remote-endpoint = <&usbdp_phy0_typec_ss>;
					};
				};

				port@2 {
					reg = <2>;
					usbc0_sbu: endpoint {
						remote-endpoint = <&usbdp_phy0_typec_sbu>;
					};
				};
			};
		};
	};
};
