[v7 4/4] arm64: dts: rockchip: add rk817 codec to Odroid Go

Chris Morgan macromorgan at hotmail.com
Wed Apr 21 18:19:32 BST 2021


On Tue, Apr 20, 2021 at 10:13:38PM +0200, Johan Jonker wrote:
> On 4/20/21 6:07 PM, Chris Morgan wrote:
> > From: Chris Morgan <macromorgan at hotmail.com>
> > 
> > Add the new rk817 codec driver to the Odroid Go Advance.
> > 
> > Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
> > ---
> > 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.

Will do.

> 
> ===
> 
> "rockchip,rk817-codec" is too long for the "aplay -l" command.
> Maybe keep it in line with other boards
> 
> ?? "Analog" ??
> 

I can do analog if you want, or maybe just rk817-codec? I notice that several
boards (such as the pinebook pro) do have longish names (21 characters versus
20 for this board). Happy to change it though, your call.

> 
> > +		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 at 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.
> 

Yep, will do.

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

Did not know that, will remove!

> >  	status = "okay";
> >  };
> >  
> > 
> 



More information about the Linux-rockchip mailing list