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

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

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

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

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