// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 Akash Gajjar <akash@openedev.com>
 * Copyright (c) 2019 Jagan Teki <jagan@openedev.com>
 * Copyright (C) 2024 TheSnowfield <thesnowfield@sakurapi.org>
 * Copyright (C) 2025 Hsun Lai <i@chainsx.cn>
 */

/dts-v1/;
#include "rk3308.dtsi"
#include <dt-bindings/leds/common.h>

/ {
	model = "Sakura Pi RK3308B";
	compatible = "sakurapi,rk3308-sakurapi-rk3308b", "rockchip,rk3308";

	aliases {
		mmc0 = &emmc;
		mmc1 = &sdmmc;
		mmc2 = &sdio;
	};

	chosen {
		stdout-path = "serial2:1500000n8";
	};

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

	vdd_core: regulator-vdd-core {
		compatible = "pwm-regulator";
		pwms = <&pwm0 0 5000 1>;
		regulator-name = "vdd_core";
		regulator-min-microvolt = <827000>;
		regulator-max-microvolt = <1340000>;
		regulator-settling-time-up-us = <250>;
		regulator-always-on;
		regulator-boot-on;
		pwm-supply = <&vcc5v0_sys>;
	};

	vdd_log: regulator-vdd-log {
		compatible = "regulator-fixed";
		regulator-name = "vdd_log";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1050000>;
		regulator-max-microvolt = <1050000>;
		vin-supply = <&vcc5v0_sys>;
	};

	vcc_ddr: regulator-vcc-ddr {
		compatible = "regulator-fixed";
		regulator-name = "vcc_ddr";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1500000>;
		regulator-max-microvolt = <1500000>;
		vin-supply = <&vcc5v0_sys>;
	};

	vcc_1v8: regulator-vcc-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "vcc_1v8";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc_io>;
	};

	vcc_io: regulator-vcc-io {
		compatible = "regulator-fixed";
		regulator-name = "vcc_io";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vcc5v0_sys>;
	};

	vcc_phy: regulator-vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
	};

	vcc5v0_otg: regulator-vcc5v0-otg {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&otg_vbus_drv>;
		regulator-name = "vcc5v0_otg";
		regulator-always-on;
		vin-supply = <&vcc5v0_sys>;
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-0 = <&wifi_enable_h>;
		pinctrl-names = "default";
		/*
		 * On the module itself this is one of these (depending
		 * on the actual card populated):
		 * - SDIO_RESET_L_WL_REG_ON
		 * - PDN (power down when low)
		 */
		reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
	};
};

&cpu0 {
	cpu-supply = <&vdd_core>;
};

&emmc {
	bus-width = <8>;
	cap-mmc-highspeed;
	non-removable;
	status = "okay";
};

&i2c1 {
	status = "okay";
};

&pinctrl {
	pinctrl-names = "default";
	pinctrl-0 = <&rtc_32k>;

	bluetooth {
		bt_reg_on: bt-reg-on {
			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		bt_wake_host: bt-wake-host {
			rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		host_wake_bt: host-wake-bt {
			rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	sdio-pwrseq {
		wifi_enable_h: wifi-enable-h {
			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	usb {
		otg_vbus_drv: otg-vbus-drv {
			rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	wifi {
		wifi_host_wake: wifi-host-wake {
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
		};
	};
};

&pwm0 {
	status = "okay";
	pinctrl-0 = <&pwm0_pin_pull_down>;
};

&pwm3 {
	status = "okay";
};

&saradc {
	vref-supply = <&vcc_1v8>;
	status = "okay";
};

&sdio {
	#address-cells = <1>;
	#size-cells = <0>;
	cap-sd-highspeed;
	cap-sdio-irq;
	keep-power-in-suspend;
	mmc-pwrseq = <&sdio_pwrseq>;
	non-removable;
	no-mmc;
	no-sd;
	status = "okay";

	brcmf: wifi@1 {
		compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
		reg = <1>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
		interrupt-names = "host-wake";
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_host_wake>;
	};
};

&sdmmc {
	cap-mmc-highspeed;
	cap-sd-highspeed;
	disable-wp;
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
	card-detect-delay = <800>;
	status = "okay";
};

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart2m0_xfer>;
	status = "okay";
};

&uart4 {
	pinctrl-names = "default";
	uart-has-rtscts;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm4345c5";
		clocks = <&cru SCLK_RTC32K>;
		clock-names = "lpo";
		pinctrl-names = "default";
		pinctrl-0 = <&host_wake_bt &bt_wake_host &bt_reg_on>;
		device-wakeup-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
		host-wakeup-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
		shutdown-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
		max-speed = <1500000>;
	};
};

&u2phy {
	status = "okay";
};

&u2phy_otg {
	status = "okay";
};

&u2phy_host {
	status = "okay";
};

&usb20_otg {
	dr_mode = "peripheral";
	status = "okay";
};

&usb_host_ehci {
	status = "okay";
};

&usb_host_ohci{
	status = "okay";
};
