diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2019-07-02 14:15:51 +0100 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2019-10-02 21:21:01 -0700 |
commit | 796c9921a25198f28b81d8d46063861d220ff540 (patch) | |
tree | 049c2af416380759e2135e30e1346b8392185308 | |
parent | d9e1c07e27a25b14169bb3281ae6611a15543330 (diff) |
arm64: dts: db845c: add support to analog audio
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 85 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/sdm845.dtsi | 231 |
2 files changed, 310 insertions, 6 deletions
diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts index e4a815f2af5f..2041d89aa058 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -213,6 +213,22 @@ firmware-name = "qcom/db845c/adsp.mdt"; }; +&slim_msm { + ngd@1 { + wcd9340: codec@1{ + //clock-names = "mclk", "slimbus"; + clock-names = "extclk"; + clocks = <&rpmhcc RPMH_LN_BB_CLK2>; + vdd-buck-supply = <&vreg_s4a_1p8>; + vdd-buck-sido-supply = <&vreg_s4a_1p8>; + vdd-tx-supply = <&vreg_s4a_1p8>; + vdd-rx-supply = <&vreg_s4a_1p8>; + vdd-io-supply = <&vreg_s4a_1p8>; + + }; + }; +}; + &apps_rsc { pm8998-rpmh-regulators { compatible = "qcom,pm8998-rpmh-regulators"; @@ -417,6 +433,20 @@ pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active &quat_mi2s_sd1_active &quat_mi2s_sd2_active &quat_mi2s_sd3_active>; pinctrl-names = "default"; model = "DB845c"; + audio-routing = + "RX_BIAS", "MCLK", + "AMIC1", "MIC BIAS1", + "MIC BIAS1", "Analog Mic1", + "DMIC0", "MIC BIAS1", + "MIC BIAS1", "Digital Mic0", + "DMIC1", "MIC BIAS1", + "MIC BIAS1", "Digital Mic1", + "DMIC2", "MIC BIAS3", + "MIC BIAS1", "Digital Mic2", + "DMIC3", "MIC BIAS3", + "MIC BIAS3", "Digital Mic3", + "SpkrLeft IN", "SPK1 OUT", + "SpkrRight IN", "SPK2 OUT"; mm1-dai-link { link-name = "MultiMedia1"; @@ -425,6 +455,20 @@ }; }; + mm2-dai-link { + link-name = "MultiMedia2"; + cpu { + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; + }; + }; + + mm3-dai-link { + link-name = "MultiMedia3"; + cpu { + sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; + }; + }; + hdmi-dai-link { link-name = "HDMI"; cpu { @@ -439,6 +483,35 @@ sound-dai = <<9611_codec 0>; }; }; + slim-dai-link { + link-name = "SLIM Playback"; + cpu { + sound-dai = <&q6afedai SLIMBUS_0_RX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&wcd9340 0>, <&swm 0>; + }; + }; + + slimcap-dai-link { + link-name = "SLIM Capture"; + cpu { + sound-dai = <&q6afedai SLIMBUS_0_TX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&wcd9340 1>; + }; + }; }; &i2c10 { @@ -617,7 +690,7 @@ }; &usb_1 { - status = "okay"; +// status = "okay"; }; &usb_1_dwc3 { @@ -625,7 +698,7 @@ }; &usb_1_hsphy { - status = "okay"; +// status = "okay"; vdd-supply = <&vreg_l1a_0p875>; vdda-pll-supply = <&vreg_l12a_1p8>; @@ -638,14 +711,14 @@ }; &usb_1_qmpphy { - status = "okay"; +// status = "okay"; vdda-phy-supply = <&vreg_l26a_1p2>; vdda-pll-supply = <&vreg_l1a_0p875>; }; &usb_2 { - status = "okay"; +// status = "okay"; }; &usb_2_dwc3 { @@ -653,7 +726,7 @@ }; &usb_2_hsphy { - status = "okay"; +// status = "okay"; vdd-supply = <&vreg_l1a_0p875>; vdda-pll-supply = <&vreg_l12a_1p8>; @@ -664,7 +737,7 @@ }; &usb_2_qmpphy { - status = "okay"; +// status = "okay"; vdda-phy-supply = <&vreg_l26a_1p2>; vdda-pll-supply = <&vreg_l1a_0p875>; diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index 1e00b958c26a..f0b2db34ec4a 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -514,6 +514,11 @@ #address-cells = <1>; #size-cells = <0>; #sound-dai-cells = <1>; + + qi2s@22 { + reg = <22>; + qcom,sd-lines = <0 1 2 3>; + }; }; }; @@ -2020,6 +2025,59 @@ function = "qup15"; }; }; + + wcd_intr_default: wcd_intr_default{ + pinmux { + pins = "gpio54"; + function = "gpio"; + }; + + pinconf { + pins = "gpio54"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + input-enable; + }; + }; + + cdc_reset_sleep: cdc_reset_sleep { + pinmux { + pins = "gpio64"; + function = "gpio"; + }; + pinconf { + pins = "gpio64"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + + cdc_reset_active:cdc_reset_active { + pinmux { + pins = "gpio64"; + function = "gpio"; + }; + pinconf { + pins = "gpio64"; + drive-strength = <8>; + bias-pull-down; + output-high; + }; + }; + + audio_slimclk:slim_clk { + pinmux { + pins = "gpio70"; + function = "gpio"; + }; + pinconf { + pins = "gpio70"; + drive-strength = <16>; + bias-pull-down; + output-high; + }; + }; }; mss_pil: remoteproc@4080000 { @@ -2569,6 +2627,166 @@ status = "disabled"; }; + slim_msm: slim@171c0000 { + compatible = "qcom,slim-ngd-v2.1.0"; + reg = <0 0x171c0000 0 0x2C000>; + reg-names = "ctrl"; + interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>; + + qcom,apps-ch-pipes = <0x780000>; + qcom,ea-pc = <0x270>; + + dmas = <&slimbam 3>, <&slimbam 4>, + <&slimbam 5>, <&slimbam 6>; + dma-names = "rx", "tx", "tx2", "rx2"; + + iommus = <&apps_smmu 0x1806 0x0>; +#if 0 + iommus = + <&apps_smmu 0x1806 0x0>, /* Audio SB NGD1 RX, TX */ + <&apps_smmu 0x180d 0x0>, /* data Pipe 11 reserved apps*/ + <&apps_smmu 0x180e 0x1>, /* audio SB data piple 12, 13 SVA*/ + <&apps_smmu 0x1810 0x1>; /* audio SB data pipe 14 2 ch rx */ +#endif + #address-cells = <1>; + #size-cells = <0>; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + + wcd9340_ifd: tas-ifd { + compatible = "slim217,250"; + reg = <0 0>; + }; + + wcd9340: codec@1{ + pinctrl-0 = <&wcd_intr_default>; + pinctrl-names = "default";//, "reset_active", "reset_sleep"; + compatible = "slim217,250"; + reg = <1 0>; + reset-gpios = <&tlmm 64 0>; + slim-ifc-dev = <&wcd9340_ifd>; + + #sound-dai-cells = <1>; + + interrupt-parent = <&tlmm>; + interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "intr1"; + interrupt-controller; + #interrupt-cells = <1>; + + #clock-cells = <0>; + clock-frequency = <9600000>; + clock-output-names = "mclk"; + qcom,micbias1-lvl = <1800>; + qcom,micbias2-lvl = <1800>; + qcom,micbias3-lvl = <1800>; + qcom,micbias4-lvl = <1800>; + + wcdpinctrl: wcd-pinctrl@42 { + compatible = "qcom,wcd9340-pinctrl"; + gpio-controller; + #gpio-cells = <2>; + gpio-ranges = <&wcdpinctrl 0 0 5>; + reg = <0x42 0x2>; + + spkr_1_wcd_en_active: spkr_1_wcd_en_active { + mux { + pins = "gpio1"; + }; + + config { + pins = "gpio1"; + output-high; + }; + }; + + spkr_1_wcd_en_sleep: spkr_1_wcd_en_sleep { + mux { + pins = "gpio1"; + }; + + config { + pins = "gpio1"; + input-enable; + }; + }; + + spkr_2_wcd_en_active: spkr_2_sd_n_active { + mux { + pins = "gpio2"; + }; + + config { + pins = "gpio2"; + output-high; + }; + }; + + spkr_2_wcd_en_sleep: spkr_2_sd_n_sleep { + mux { + pins = "gpio2"; + }; + + config { + pins = "gpio2"; + input-enable; + }; + }; + + hph_en0_wcd_active: hph_en0_wcd_active { + mux { + pins = "gpio4"; + }; + + config { + pins = "gpio4"; + output-high; + }; + }; + + }; + + swm: swm@c85 { + compatible = "qcom,soundwire-v1.3.0"; + reg = <0xc85 0x40>; + interrupt-parent = <&wcd9340>; + interrupts = <20 IRQ_TYPE_EDGE_RISING>; + interrupt-names = "soundwire"; + pinctrl-0 = <&spkr_1_wcd_en_active &spkr_2_wcd_en_active>; + pinctrl-names = "default"; + + qcom,dout-ports = <6>; + qcom,din-ports = <2>; + qcom,ports-sinterval-low =/bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>; + qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >; + qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>; + + #sound-dai-cells = <1>; + clocks = <&wcd9340>; + clock-names = "iface"; + + left_spkr:wsa8810-left{ + compatible = "sdw10,0217,2010,0"; + sdw-instance-id = <1>; + pd-gpios = <&wcdpinctrl 2 0>; + #thermal-sensor-cells = <0>; + + }; + + right_spkr:wsa8810-right{ + compatible = "sdw10,0217,2010,0"; + sdw-instance-id = <2>; + pd-gpios = <&wcdpinctrl 2 0>; + #thermal-sensor-cells = <0>; + }; + + }; + }; + }; + }; + usb_1_hsphy: phy@88e2000 { compatible = "qcom,sdm845-qusb2-phy"; reg = <0 0x088e2000 0 0x400>; @@ -3376,6 +3594,19 @@ }; }; + slimbam:bamdma@17184000 { + compatible = "qcom,bam-v1.7.0"; + qcom,controlled-remotely; + reg = <0 0x17184000 0 0x2a000>; + num-channels = <31>; + interrupts = <0 164 IRQ_TYPE_LEVEL_HIGH>; + #dma-cells = <1>; + qcom,ee = <1>; + qcom,num-ees = <2>; + //iommus = <&apps_smmu 0x1818 0x0>; + iommus = <&apps_smmu 0x1806 0x0>; + }; + timer@17c90000 { #address-cells = <2>; #size-cells = <2>; |