On 09/12/2023 11:38, Andy Yan wrote: > CoolPi 4B is a rk3588s based SBC. > Specification: > - Rockchip RK3588S > - LPDDR4 2/4/8/16 GB > - TF scard slot > + > +/dts-v1/; > + > +#include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/leds/common.h> > +#include <dt-bindings/pinctrl/rockchip.h> > +#include <dt-bindings/soc/rockchip,vop2.h> > +#include "rk3588s.dtsi" > + > +/ { > + model = "RK3588S CoolPi 4B"; > + compatible = "CoolPi 4 Model B", "rockchip,rk3588s"; That's not a real compatible. > + > + aliases { > + mmc0 = &sdhci; > + mmc1 = &sdio; > + mmc2 = &sdmmc; > + serial2 = &uart2; > + }; > + > + analog-sound { > + compatible = "audio-graph-card"; > + label = "rk3588-es8316"; > + > + widgets = "Microphone", "Mic Jack", > + "Headphone", "Headphones"; > + > + routing = "MIC2", "Mic Jack", > + "Headphones", "HPOL", > + "Headphones", "HPOR"; > + > + dais = <&i2s0_8ch_p0>; > + }; > + > + chosen { > + stdout-path = "serial2:1500000n8"; > + }; > + > + leds: leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl- = <&gpio_leds>; > + status = "okay"; Drop > + > + led0: led-green { > + color = <LED_COLOR_ID_GREEN>; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + > + led1: led-red { > + color = <LED_COLOR_ID_RED>; > + function = LED_FUNCTION_WLAN; > + gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "phy0tx"; > + default-state = "off"; > + }; > + }; ... > + > +&i2c2 { > + status = "okay"; > + > + vdd_npu_s0: regulator@42 { > + compatible = "rockchip,rk8602"; > + reg = <0x42>; > + fcs,suspend-voltage-selector = <1>; > + regulator-name = "vdd_npu_s0"; > + regulator-always-on; > + regulator-boot-on; > + regulator-min-microvolt = <550000>; > + regulator-max-microvolt = <950000>; > + regulator-ramp-delay = <2300>; > + vin-supply = <&vcc5v0_sys>; > + > + regulator-state-mem { > + regulator-off-in-suspend; > + }; > + }; > + Stray blank line > +}; > + > +&i2s0_8ch { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2s0_lrck > + &i2s0_mclk > + &i2s0_sclk > + &i2s0_sdi0 > + &i2s0_sdo0>; > + status = "okay"; > + > + i2s0_8ch_p0: port { > + i2s0_8ch_p0_0: endpoint { > + dai-format = "i2s"; > + mclk-fs = <256>; > + remote-endpoint = <&es8316_p0_0>; > + }; > + }; > +}; > + ... > + > +&hdmi0 { > + enable-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; > + pinctrl-0 = <&hdmim0_tx0_cec &hdmim0_tx0_hpd &hdmim0_tx0_scl &hdmim0_tx0_sda>; > + status = "okay"; > +}; > + > +&i2c6 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c6m3_xfer>; > + status = "okay"; > + > + hym8563: hym8563@51 { Node names should be generic. See also an explanation and list of examples (not exhaustive) in DT specification: https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > + compatible = "haoyu,hym8563"; > + reg = <0x51>; > + #clock-cells = <0>; > + clock-frequency = <32768>; > + clock-output-names = "hym8563"; > + pinctrl-names = "default"; > + pinctrl-0 = <&hym8563_int>; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; > + status = "okay"; > + }; > + Stray blank line > +}; Best regards, Krzysztof