// SPDX-License-Identifier: (GPL-2.0+ OR MIT)

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/gpio-keys.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>

#include "rk3566.dtsi"

/ {
	aliases {
		mmc0 = &sdhci;
	};

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

	adc-keys {
		compatible = "adc-keys";
		io-channels = <&saradc 0>;
		io-channel-names = "buttons";
		keyup-threshold-microvolt = <1750000>;

		button-recovery {
			label = "recovery";
			linux,code = <KEY_VENDOR>;
			press-threshold-microvolt = <0>;
		};
	};

	spk_amp: audio-amplifier {
		compatible = "simple-audio-amplifier";
		enable-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&spk_amp_enable_h>;
		pinctrl-names = "default";
		sound-name-prefix = "Speaker Amp";
	};

	dmic_codec: dmic-codec {
		compatible = "dmic-codec";
		num-channels = <6>;
		#sound-dai-cells = <0>;
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&hall_int_l>;
		pinctrl-names = "default";

		switch-cover {
			label = "cover";
			gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_SW>;
			linux,code = <SW_MACHINE_COVER>;
			linux,can-disable;
			wakeup-event-action = <EV_ACT_DEASSERTED>;
			wakeup-source;
		};
	};

	gpio-leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&led_pin>;
		pinctrl-names = "default";

		led-0 {
			color = <LED_COLOR_ID_WHITE>;
			function = LED_FUNCTION_CHARGING;
			gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
		};
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		clocks = <&rk817 1>;
		clock-names = "ext_clock";
		pinctrl-0 = <&wifi_enable_h>;
		pinctrl-names = "default";
		reset-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>;
	};

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "PineNote";
		simple-audio-card,aux-devs = <&spk_amp>;
		simple-audio-card,widgets = "Headphone", "Headphones",
					    "Speaker", "Internal Speakers";
		simple-audio-card,routing = "Headphones", "HPOL",
					    "Headphones", "HPOR",
					    "Internal Speakers", "Speaker Amp OUTL",
					    "Internal Speakers", "Speaker Amp OUTR",
					    "Speaker Amp INL", "HPOL",
					    "Speaker Amp INR", "HPOR";
		simple-audio-card,pin-switches = "Internal Speakers";
		#address-cells = <1>;
		#size-cells = <0>;

		simple-audio-card,dai-link@0 {
			reg = <0>;
			bitclock-master = <&link0_cpu>;
			format = "i2s";
			frame-master = <&link0_cpu>;
			mclk-fs = <256>;

			link0_cpu: cpu {
				sound-dai = <&i2s1_8ch>;
			};

			link0_codec: codec {
				sound-dai = <&rk817>;
			};
		};

		simple-audio-card,dai-link@1 {
			reg = <1>;
			bitclock-master = <&link1_cpu>;
			format = "pdm";
			frame-master = <&link1_cpu>;

			link1_cpu: cpu {
				sound-dai = <&pdm>;
			};

			link1_codec: codec {
				sound-dai = <&dmic_codec>;
			};
		};
	};

	vbat_4g: vbat-4g {
		compatible = "regulator-fixed";
		regulator-name = "vbat_4g";
		regulator-min-microvolt = <3800000>;
		regulator-max-microvolt = <3800000>;
		/* powered by vcc_bat, enabled by vbat_4g_en */
		vin-supply = <&vbat_4g_en>;
	};

	vcc_1v8: vcc-1v8 {
		compatible = "regulator-fixed";
		regulator-name = "vcc_1v8";
		regulator-always-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		/* powered by vcc_sys, enabled by vcc_1v8_en */
		vin-supply = <&vcc_1v8_en>;
	};

	vcc_bat: vcc-bat {
		compatible = "regulator-fixed";
		regulator-name = "vcc_bat";
		regulator-always-on;
		regulator-min-microvolt = <3800000>;
		regulator-max-microvolt = <3800000>;
	};

	vcc_hall_3v3: vcc-hall-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "vcc_hall_3v3";
		regulator-always-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vcc_sys>;
	};

	vcc_sys: vcc-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc_sys";
		regulator-always-on;
		regulator-min-microvolt = <3800000>;
		regulator-max-microvolt = <3800000>;
		vin-supply = <&vcc_bat>;
	};

	vcc_wl: vcc-wl {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&vcc_wl_pin>;
		pinctrl-names = "default";
		regulator-name = "vcc_wl";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		vin-supply = <&vcc_bat>;
	};

	vdda_0v9: vdda-0v9 {
		compatible = "regulator-fixed";
		regulator-name = "vdda_0v9";
		regulator-always-on;
		regulator-min-microvolt = <900000>;
		regulator-max-microvolt = <900000>;
		/* powered by vcc_sys, enabled by vcc_1v8_en */
		vin-supply = <&vcc_1v8_en>;
	};
};

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

&cpu1 {
	cpu-supply = <&vdd_cpu>;
};

&cpu2 {
	cpu-supply = <&vdd_cpu>;
};

&cpu3 {
	cpu-supply = <&vdd_cpu>;
};

&i2c0 {
	status = "okay";

	vdd_cpu: regulator@1c {
		compatible = "tcs,tcs4525";
		reg = <0x1c>;
		fcs,suspend-voltage-selector = <0>;
		regulator-name = "vdd_cpu";
		regulator-min-microvolt = <712500>;
		regulator-max-microvolt = <1390000>;
		regulator-ramp-delay = <2300>;
		regulator-always-on;
		vin-supply = <&vcc_sys>;

		regulator-state-mem {
			regulator-on-in-suspend;
		};
	};

	rk817: pmic@20 {
		compatible = "rockchip,rk817";
		reg = <0x20>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
		clocks = <&cru I2S1_MCLKOUT_TX>;
		clock-names = "mclk";
		#clock-cells = <1>;
		pinctrl-0 = <&i2s1m0_mclk>, <&pmic_int_l>, <&pmic_sleep>;
		pinctrl-names = "default";
		rockchip,system-power-controller;
		#sound-dai-cells = <0>;
		wakeup-source;

		vcc1-supply = <&vcc_sys>;
		vcc2-supply = <&vcc_sys>;
		vcc3-supply = <&vcc_sys>;
		vcc4-supply = <&vcc_sys>;
		vcc5-supply = <&vcc_sys>;
		vcc6-supply = <&vcc_sys>;
		vcc7-supply = <&vcc_sys>;
		vcc8-supply = <&vcc_sys>;
		vcc9-supply = <&dcdc_boost>;

		regulators {
			vdd_logic: DCDC_REG1 {
				regulator-name = "vdd_logic";
				regulator-always-on;
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1350000>;
				regulator-init-microvolt = <900000>;
				regulator-ramp-delay = <6001>;
				regulator-initial-mode = <0x2>;

				regulator-state-mem {
					regulator-off-in-suspend;
					regulator-suspend-microvolt = <900000>;
				};
			};

			vdd_gpu_npu: DCDC_REG2 {
				regulator-name = "vdd_gpu_npu";
				regulator-min-microvolt = <500000>;
				regulator-max-microvolt = <1350000>;
				regulator-init-microvolt = <900000>;
				regulator-ramp-delay = <6001>;
				regulator-initial-mode = <0x2>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ddr: DCDC_REG3 {
				regulator-name = "vcc_ddr";
				regulator-always-on;
				regulator-initial-mode = <0x2>;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc_3v3: DCDC_REG4 {
				regulator-name = "vcc_3v3";
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-initial-mode = <0x2>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcca_1v8_pmu: LDO_REG1 {
				regulator-name = "vcca_1v8_pmu";
				regulator-always-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			/* unused */
			vdda_0v9_ldo: LDO_REG2 {
				regulator-name = "vdda_0v9_ldo";
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <900000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdda_0v9_pmu: LDO_REG3 {
				regulator-name = "vdda_0v9_pmu";
				regulator-always-on;
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <900000>;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vccio_acodec: LDO_REG4 {
				regulator-name = "vccio_acodec";
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			/* unused */
			vccio_sd: LDO_REG5 {
				regulator-name = "vccio_sd";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_3v3_pmu: LDO_REG6 {
				regulator-name = "vcc_3v3_pmu";
				regulator-always-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc_1v8_en: LDO_REG7 {
				regulator-name = "vcc_1v8_en";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vbat_4g_en: LDO_REG8 {
				regulator-name = "vbat_4g_en";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			sleep_sta_ctl: LDO_REG9 {
				regulator-name = "sleep_sta_ctl";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			dcdc_boost: BOOST {
				regulator-name = "boost";
				regulator-min-microvolt = <5000000>;
				regulator-max-microvolt = <5000000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			otg_switch: OTG_SWITCH {
				regulator-name = "otg_switch";

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};
		};
	};
};

&i2c1 {
	status = "okay";

	digitizer@9 {
		compatible = "wacom,w9013", "hid-over-i2c";
		reg = <0x09>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PB6 IRQ_TYPE_LEVEL_LOW>;
		hid-descr-addr = <0x1>;
		pinctrl-0 = <&pen_fwe>, <&pen_irq_l>, <&pen_rst_l>;
		pinctrl-names = "default";
		vdd-supply = <&vcc_3v3_pmu>;
	};
};

&i2c3 {
	pinctrl-0 = <&i2c3m1_xfer>;
	status = "okay";

	led-controller@36 {
		compatible = "ti,lm3630a";
		reg = <0x36>;
		enable-gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&backlight_hwen_h>;
		pinctrl-names = "default";
		#address-cells = <1>;
		#size-cells = <0>;

		led@0 {
			reg = <0>;
			label = "backlight_cool";
			default-brightness = <0>;
		};

		led@1 {
			reg = <1>;
			label = "backlight_warm";
			default-brightness = <0>;
		};
	};

	wusb3801: tcpc@60 {
		compatible = "willsemi,wusb3801";
		reg = <0x60>;
		interrupt-parent = <&gpio0>;
		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-0 = <&tcpc_int_l>;
		pinctrl-names = "default";

		connector {
			compatible = "usb-c-connector";
			label = "USB-C";
			vbus-supply = <&otg_switch>;
			power-role = "dual";
			try-power-role = "sink";
			data-role = "dual";
			typec-power-opmode = "default";
			pd-disable;

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

				port@0 {
					reg = <0x0>;

					typec_hs_usb2phy0: endpoint {
						remote-endpoint = <&usb2phy0_typec_hs>;
					};
				};
			};
		};
	};
};

&i2c5 {
	status = "okay";

	accelerometer@18 {
		compatible = "silan,sc7a20";
		reg = <0x18>;
		interrupt-parent = <&gpio3>;
		interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-0 = <&accelerometer_int_l>;
		pinctrl-names = "default";
		st,drdy-int-pin = <1>;
		vdd-supply = <&vcc_3v3>;
		vddio-supply = <&vcc_3v3>;
	};
};

&i2s1_8ch {
	pinctrl-0 = <&i2s1m0_lrcktx>, <&i2s1m0_sclktx>, <&i2s1m0_sdi0>, <&i2s1m0_sdo0>;
	rockchip,trcm-sync-tx-only;
	status = "okay";
};

&pdm {
	pinctrl-0 = <&pdmm0_clk1>, <&pdmm0_sdi1>, <&pdmm0_sdi2>;
	/* microphones are on channels 1 and 2 */
	rockchip,path-map = <1>, <2>, <0>, <3>;
	status = "okay";
};

&pinctrl {
	accelerometer {
		accelerometer_int_l: accelerometer-int-l {
			rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	audio-amplifier {
		spk_amp_enable_h: spk-amp-enable-h {
			rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	backlight {
		backlight_hwen_h: backlight-hwen-h {
			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	bt {
		bt_enable_h: bt-enable-h {
			rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		bt_host_wake_l: bt-host-wake-l {
			rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		bt_wake_h: bt-wake-h {
			rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	led {
		led_pin: led-pin {
			rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	hall {
		hall_int_l: hall-int-l {
			rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pen {
		pen_fwe: pen-fwe {
			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_down>;
		};

		pen_irq_l: pen-irq-l {
			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		pen_rst_l: pen-rst-l {
			rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		pmic_sleep: pmic-sleep {
			rockchip,pins = <0 RK_PA2 1 &pcfg_pull_none>;
		};
	};

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

	tcpc {
		tcpc_int_l: tcpc-int-l {
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	vcc-wl {
		vcc_wl_pin: vcc-wl-pin {
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	wifi {
		wifi_host_wake_l: wifi-host-wake-l {
			rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&pmu_io_domains {
	pmuio1-supply = <&vcc_3v3_pmu>;
	pmuio2-supply = <&vcc_3v3_pmu>;
	vccio1-supply = <&vccio_acodec>;
	vccio2-supply = <&vcc_1v8>;
	vccio3-supply = <&vcc_3v3>;
	vccio4-supply = <&vcca_1v8_pmu>;
	vccio5-supply = <&vcc_3v3>;
	vccio6-supply = <&vcc_3v3>;
	status = "okay";
};

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

&sdhci {
	bus-width = <8>;
	mmc-hs200-1_8v;
	non-removable;
	pinctrl-0 = <&emmc_bus8>, <&emmc_clk>, <&emmc_cmd>, <&emmc_datastrobe>, <&emmc_rstnout>;
	pinctrl-names = "default";
	vmmc-supply = <&vcc_3v3>;
	vqmmc-supply = <&vcc_1v8>;
	status = "okay";
};

&sdmmc1 {
	bus-width = <4>;
	cap-sd-highspeed;
	cap-sdio-irq;
	keep-power-in-suspend;
	mmc-pwrseq = <&sdio_pwrseq>;
	non-removable;
	pinctrl-0 = <&sdmmc1_bus4>, <&sdmmc1_clk>, <&sdmmc1_cmd>;
	pinctrl-names = "default";
	sd-uhs-sdr104;
	vmmc-supply = <&vcc_wl>;
	vqmmc-supply = <&vcca_1v8_pmu>;
	status = "okay";
};

&tsadc {
	/* tshut mode 0:CRU 1:GPIO */
	rockchip,hw-tshut-mode = <1>;
	/* tshut polarity 0:LOW 1:HIGH */
	rockchip,hw-tshut-polarity = <0>;
	status = "okay";
};

&uart1 {
	pinctrl-0 = <&uart1m0_ctsn>, <&uart1m0_rtsn>, <&uart1m0_xfer>;
	pinctrl-names = "default";
	uart-has-rtscts;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		clocks = <&rk817 1>;
		clock-names = "lpo";
		device-wake-gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
		host-wake-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
		reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
		pinctrl-0 = <&bt_enable_h>, <&bt_host_wake_l>, <&bt_wake_h>;
		pinctrl-names = "default";
		vbat-supply = <&vcc_wl>;
		vddio-supply = <&vcca_1v8_pmu>;
	};
};

&uart2 {
	status = "okay";
};

&usb_host0_xhci {
	dr_mode = "otg";
	status = "okay";
};

&usb2phy0 {
	status = "okay";
};

&usb2phy0_otg {
	status = "okay";

	port {
		usb2phy0_typec_hs: endpoint {
			remote-endpoint = <&typec_hs_usb2phy0>;
		};
	};
};
