On 4/20/21 6:07 PM, Chris Morgan wrote: > From: Chris Morgan <macromorgan@xxxxxxxxxxx> > > Add the new rk817 codec driver to the Odroid Go Advance. > > Signed-off-by: Chris Morgan <macromorgan@xxxxxxxxxxx> > --- > Changes in v7: > - Removed ifdef around register definitions for MFD. > - Replaced codec documentation with updates to MFD documentation. > - Reordered elements in example to comply with upstream rules. > - Added binding update back for Odroid Go Advance as requested. > - Submitting patches from gmail now. > Changes in v6: > - Included additional project maintainers for correct subsystems. > - Removed unneeded compatible from DT documentation. > - Removed binding update for Odroid Go Advance (will do in seperate series). > Changes in v5: > - Move register definitions from rk817_codec.h to main rk808.h register > definitions. > - Add volatile register for codec bits. > - Add default values for codec bits. > - Removed of_compatible from mtd driver (not necessary). > - Switched to using parent regmap instead of private regmap for codec. > Changes in v4: > - Created set_pll() call. > - Created user visible gain control in mic. > - Check for return value of clk_prepare_enable(). > - Removed duplicate clk_prepare_enable(). > - Split DT documentation to separate commit. > Changes in v3: > - Use DAPM macros to set audio path. > - Updated devicetree binding (as every rk817 has this codec chip). > - Changed documentation to yaml format. > - Split MFD changes to separate commit. > Changes in v2: > - Fixed audio path registers to solve some bugs. > > .../boot/dts/rockchip/rk3326-odroid-go2.dts | 36 +++++++++++++++++-- > 1 file changed, 34 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts b/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts > index 97fb93e1cc00..5356bcf6d99c 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts > +++ b/arch/arm64/boot/dts/rockchip/rk3326-odroid-go2.dts > @@ -161,6 +161,29 @@ blue_led: led-0 { > }; > }; > > + rk817-sound { > + compatible = "simple-audio-card"; > + simple-audio-card,format = "i2s"; > + simple-audio-card,name = "rockchip,rk817-codec"; "simple-audio-card,name" is an exception to the Heiko's sort rules. Move above all other "simple-audio-card" properties. === "rockchip,rk817-codec" is too long for the "aplay -l" command. Maybe keep it in line with other boards ?? "Analog" ?? > + simple-audio-card,mclk-fs = <256>; > + simple-audio-card,widgets = > + "Microphone", "Mic Jack", > + "Headphone", "Headphones", > + "Speaker", "Speaker"; > + simple-audio-card,routing = > + "MICL", "Mic Jack", > + "Headphones", "HPOL", > + "Headphones", "HPOR", > + "Speaker", "SPKO"; > + simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>; Add empty line between nodes. > + simple-audio-card,cpu { > + sound-dai = <&i2s1_2ch>; > + }; Add empty line between nodes. > + simple-audio-card,codec { > + sound-dai = <&rk817>; > + }; > + }; > + > vccsys: vccsys { > compatible = "regulator-fixed"; > regulator-name = "vcc3v8_sys"; > @@ -265,11 +288,14 @@ rk817: pmic@20 { > reg = <0x20>; > interrupt-parent = <&gpio0>; > interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; > + clock-output-names = "rk808-clkout1", "xin32k"; > + clock-names = "mclk"; > + clocks = <&cru SCLK_I2S1_OUT>; > pinctrl-names = "default"; > - pinctrl-0 = <&pmic_int>; > + pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; > wakeup-source; > #clock-cells = <1>; > - clock-output-names = "rk808-clkout1", "xin32k"; > + #sound-dai-cells = <0>; > > vcc1-supply = <&vccsys>; > vcc2-supply = <&vccsys>; > @@ -428,6 +454,10 @@ regulator-state-mem { > }; > }; > }; > + > + rk817_codec: codec { > + mic-in-differential; This property name might have to change. > + }; > }; > }; > > @@ -439,6 +469,8 @@ &i2c1 { > > /* I2S 1 Channel Used */ > &i2s1_2ch { > + resets = <&cru SRST_I2S1>, <&cru SRST_I2S1_H>; > + reset-names = "reset-m", "reset-h"; Remove. "resets" and "reset-names" have no support in mainline. See rockchip-i2s.yaml > status = "okay"; > }; > >