Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
 *
 */

/dts-v1/;

#include <dt-bindings/leds/common.h>
#include "rk3588-coolpi-cm5.dtsi"

/ {
	model = "RK3588 CoolPi CM5 EVB";
	compatible = "coolpi,pi-cm5-evb", "coolpi,pi-cm5", "rockchip,rk3588";

	backlight: backlight {
		compatible = "pwm-backlight";
		enable-gpios = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&bl_en>;
		power-supply = <&vcc12v_dcin>;
		pwms = <&pwm2 0 25000 0>;
	};

	leds: leds {
		compatible = "gpio-leds";

		green_led: led-0 {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	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>;
	};

	vcc5v0_sys: vcc5v0-sys-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		vin-supply = <&vcc12v_dcin>;
	};

	vcc3v3_sys: vcc3v3-sys-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vcc12v_dcin>;
	};

	vcc3v3_lcd: vcc3v3-lcd-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_lcd";
		enable-active-high;
		gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&lcdpwr_en>;
		vin-supply = <&vcc3v3_sys>;
	};

	vcc5v0_usb_host1: vcc5v0_usb_host2: vcc5v0-usb-host-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_host";
		regulator-boot-on;
		regulator-always-on;
		enable-active-high;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_host_pwren>;
		vin-supply = <&vcc5v0_sys>;
	};

	vcc5v0_usb30_otg: vcc5v0-usb30-otg-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc5v0_otg";
		regulator-boot-on;
		regulator-always-on;
		enable-active-high;
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_otg_pwren>;
		vin-supply = <&vcc5v0_sys>;
	};
};

/* M.2 E-Key */
&pcie2x1l1 {
	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
	vpcie3v3-supply = <&vcc3v3_sys>;
	pinctrl-names = "default";
	pinctrl-0 = <&pcie_clkreq &pcie_wake &pcie_rst &wifi_pwron &bt_pwron>;
	status = "okay";
};

&pcie30phy {
	status = "okay";
};

/* Standard pcie */
&pcie3x2 {
	reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
	vpcie3v3-supply = <&vcc3v3_sys>;
	status = "okay";
};

/* M.2 M-Key ssd */
&pcie3x4 {
	num-lanes = <2>;
	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
	vpcie3v3-supply = <&vcc3v3_sys>;
	status = "okay";
};

&pinctrl {
	lcd {
		lcdpwr_en: lcdpwr-en {
			rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_down>;
		};

		bl_en: bl-en {
			rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	usb {
		usb_host_pwren: usb-host-pwren {
			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		usb_otg_pwren: usb-otg-pwren {
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	wifi {
		bt_pwron: bt-pwron {
			rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		pcie_clkreq: pcie-clkreq {
			rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		pcie_rst: pcie-rst {
			rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		wifi_pwron: wifi-pwron {
			rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		pcie_wake: pcie-wake {
			rockchip,pins = <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&pwm2 {
	status = "okay";
};

&sata1 {
	status = "okay";
};

&u2phy2 {
	status = "okay";
};

&u2phy3 {
	status = "okay";
};

&u2phy2_host {
	phy-supply = <&vcc5v0_usb_host1>;
	status = "okay";
};

&u2phy3_host {
	phy-supply = <&vcc5v0_usb_host2>;
	status = "okay";
};

&usb_host0_ehci {
	status = "okay";
};

&usb_host0_ohci {
	status = "okay";
};

&usb_host1_ehci {
	status = "okay";
};

&usb_host1_ohci {
	status = "okay";
};