Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
 */

/dts-v1/;

#include <dt-bindings/input/input.h>
#include "rk3308.dtsi"

/ {
	model = "Rockchip RK3308 voice assistant v10 board";
	compatible = "rockchip,rk3308-ai-va-v10", "rockchip,rk3308";

	chosen {
		bootargs = "earlycon=uart8250,mmio32,0xff0c0000 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=squashfs rootwait snd_aloop.index=7 snd_aloop.use_raw_jiffies=1";
	};

	adc-keys0 {
		compatible = "adc-keys";
		io-channels = <&saradc 0>;
		io-channel-names = "buttons";
		poll-interval = <100>;
		keyup-threshold-microvolt = <1800000>;

		func-key {
			linux,code = <KEY_FN>;
			label = "function";
			press-threshold-microvolt = <17000>;
		};
	};

	adc-keys1 {
		compatible = "adc-keys";
		io-channels = <&saradc 1>;
		io-channel-names = "buttons";
		poll-interval = <100>;
		keyup-threshold-microvolt = <1800000>;

		play-key {
			linux,code = <KEY_PLAY>;
			label = "play";
			press-threshold-microvolt = <625000>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&mic_mute>;

		mute {
			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_MICMUTE>;
			label = "GPIO Mic Mute";
			debounce-interval = <100>;
		};
	};

	rotary {
		compatible = "rotary-encoder";
		pinctrl-names = "default";
		pinctrl-0 = <&rotary_gpio>;
		gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>,
			<&gpio2 RK_PB4 GPIO_ACTIVE_LOW>;
		linux,axis = <0>; /* REL_X */
		rotary-encoder,relative-axis;
	};

	sdio_pwrseq: sdio-pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_enable_h>;

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

	sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,mclk-fs = <256>;
		simple-audio-card,name = "i2s_8ch_0";

		simple-audio-card,dai-link@0 {
			format = "i2s";
			cpu {
				sound-dai = <&i2s_8ch_0>;
			};

			codec {
				sound-dai = <&dummy_codec>;
			};
		};

		simple-audio-card,dai-link@1 {
			format = "i2s";
			cpu {
				sound-dai = <&i2s_8ch_0>;
			};

			codec {
				sound-dai = <&tas5711>;
			};
		};
	};

	dummy_codec: dummy-codec {
		compatible = "rockchip,dummy-codec";
		#sound-dai-cells = <0>;
	};

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

	vdd_1v0: vdd-1v0 {
		compatible = "regulator-fixed";
		regulator-name = "vdd_1v0";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1000000>;
		regulator-max-microvolt = <1000000>;
	};

	vccio_sdio: vcc_1v8: 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_1v8_codec: vcc-1v8-codec {
		compatible = "regulator-fixed";
		regulator-name = "vcc_1v8_codec";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		vin-supply = <&vcc_io>;
	};

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

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

	vccio_flash: vccio-flash {
		compatible = "regulator-fixed";
		regulator-name = "vccio_flash";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
	};

	wireless-bluetooth {
		compatible = "bluetooth-platdata";
		uart_rts_gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default", "rts_gpio";
		pinctrl-0 = <&uart4_rts>;
		pinctrl-1 = <&uart4_rts_pin>;
		BT,power_gpio    = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
		BT,wake_host_irq = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};

	wireless-wlan {
		compatible = "wlan-platdata";
		rockchip,grf = <&grf>;
		pinctrl-names = "default";
		pinctrl-0 = <&wifi_wake_host>, <&rtc_32k>;
		wifi_chip_type = "ap6255";
		WIFI,host_wake_irq = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};
};

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

&dmc {
	center-supply = <&vdd_core>;
	status = "okay";
};

&emmc {
	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
	no-sdio;
	no-sd;
	disable-wp;
	non-removable;
	num-slots = <1>;
	status = "okay";
};

&fiq_debugger {
	status = "okay";
};

&io_domains {
	status = "okay";

	vccio0-supply = <&vcc_io>;
	vccio1-supply = <&vcc_io>;
	vccio2-supply = <&vcc_1v8>;
	vccio3-supply = <&vccio_flash>;
	vccio4-supply = <&vccio_sdio>;
	vccio5-supply = <&vcc_io>;
};

&i2c1 {
	clock-frequency = <400000>;
	status = "okay";

	is31fl3236: led-controller@3c {
		compatible = "issi,is31fl3236";
		reg = <0x3c>;
		#address-cells = <1>;
		#size-cells = <0>;
		reset-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
		status = "okay";

		led1: led@1 {
			label = "led1";
			reg = <1>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <0>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led2: led@2 {
			label = "led2";
			reg = <2>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <0>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led3: led@3 {
			label = "led3";
			reg = <3>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led4: led@4 {
			label = "led4";
			reg = <4>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <100>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led5: led@5 {
			label = "led5";
			reg = <5>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <100>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led6: led@6 {
			label = "led6";
			reg = <6>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led7: led@7 {
			label = "led7";
			reg = <7>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <200>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led8: led@8 {
			label = "led8";
			reg = <8>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <200>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led9: led@9 {
			label = "led9";
			reg = <9>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led10: led@10 {
			label = "led10";
			reg = <10>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <300>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led11: led@11 {
			label = "led11";
			reg = <11>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <300>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led12: led@12 {
			label = "led12";
			reg = <12>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led13: led@13 {
			label = "led13";
			reg = <13>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <400>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led14: led@14 {
			label = "led14";
			reg = <14>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <400>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led15: led@15 {
			label = "led15";
			reg = <15>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led16: led@16 {
			label = "led16";
			reg = <16>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <500>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led17: led@17 {
			label = "led17";
			reg = <17>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <500>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led18: led@18 {
			label = "led18";
			reg = <18>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led19: led@19 {
			label = "led19";
			reg = <19>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <600>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led20: led@20 {
			label = "led20";
			reg = <20>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <600>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led21: led@21 {
			label = "led21";
			reg = <21>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led22: led@22 {
			label = "led22";
			reg = <22>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <700>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led23: led@23 {
			label = "led23";
			reg = <23>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <700>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led124: led@24 {
			label = "led24";
			reg = <24>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led25: led@25 {
			label = "led25";
			reg = <25>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <800>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led26: led@26 {
			label = "led26";
			reg = <26>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <800>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led27: led@27 {
			label = "led27";
			reg = <27>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led28: led@28 {
			label = "led28";
			reg = <28>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <900>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led29: led@29 {
			label = "led29";
			reg = <29>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <900>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led30: led@30 {
			label = "led30";
			reg = <30>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led31: led@31 {
			label = "led31";
			reg = <31>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <1000>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led32: led@32 {
			label = "led32";
			reg = <32>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <1000>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led33: led@33 {
			label = "led33";
			reg = <33>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};

		led34: led@34 {
			label = "led34";
			reg = <34>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <1100>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led35: led@35 {
			label = "led35";
			reg = <35>;
			led-max-microamp = <10000>;
			linux,default-trigger = "timer";
			linux,default-trigger-delay-ms = <1100>;
			linux,blink-delay-on-ms = <100>;
			linux,blink-delay-off-ms = <1200>;
		};

		led36: led@36 {
			label = "led36";
			reg = <36>;
			led-max-microamp = <10000>;
			linux,default-trigger = "default-on";
		};
	};

	tas5711: tas5711@1b {
		#sound-dai-cells = <0>;
		compatible = "ti,tas5711";
		reg = <0x1b>;
		clocks = <&cru SCLK_I2S0_8CH_TX_OUT>;
		clock-names = "mclk";
		pinctrl-names = "default";
		pinctrl-0 = <&i2s_8ch_0_mclk>;
		pdn-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
		reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
	};
};

&i2s_8ch_0 {
	status = "okay";
	assigned-clocks = <&cru SCLK_I2S0_8CH_RX>;
	assigned-clock-parents = <&cru SCLK_I2S0_8CH_TX_MUX>;
	rockchip,clk-trcm = <1>;
	#sound-dai-cells = <0>;
};

&pinctrl {
	buttons {
		mic_mute: mic-mute {
			rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
	rotary {
		rotary_gpio: rotary-gpio {
			rockchip,pins =
				<2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>,
				<2 RK_PB4 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>;
		};
	};

	wireless-wlan {
		wifi_wake_host: wifi-wake-host {
			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

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

&rockchip_suspend {
	rockchip,pwm-regulator-config = <
		(0
		| RKPM_PWM_REGULATOR
		)
	>;

	status = "okay";
};

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

&sdio {
	bus-width = <4>;
	cap-sd-highspeed;
	no-sd;
	no-mmc;
	ignore-pm-notify;
	keep-power-in-suspend;
	non-removable;
	mmc-pwrseq = <&sdio_pwrseq>;
	sd-uhs-sdr104;
	status = "okay";
};

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

&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart4_xfer &uart4_cts>;
	status = "okay";
};

&u2phy {
	status = "okay";

	u2phy_otg: otg-port {
		status = "okay";
	};
};

&usb20_otg {
	status = "okay";
};