aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2019-07-02 14:15:51 +0100
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2019-08-06 12:26:15 +0100
commitf2491958e8029d89efdcb3d9975fd65aa97fe811 (patch)
tree546756f610db1e72c092fb56edb2eb3e9f1b60ee
parent778ec499f70614b086a54723b400fb1cf7edda1c (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.dts79
-rw-r--r--arch/arm64/boot/dts/qcom/sdm845.dtsi237
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 beac03816e6f5..8e159fe49df19 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts
@@ -213,6 +213,16 @@
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>;
+ };
+ };
+};
+
&apps_rsc {
pm8998-rpmh-regulators {
compatible = "qcom,pm8998-rpmh-regulators";
@@ -417,6 +427,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 +449,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 +477,35 @@
sound-dai = <&lt9611_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 {
@@ -660,7 +727,7 @@
};
&usb_1 {
- status = "okay";
+// status = "okay";
};
&usb_1_dwc3 {
@@ -668,7 +735,7 @@
};
&usb_1_hsphy {
- status = "okay";
+// status = "okay";
vdd-supply = <&vreg_l1a_0p875>;
vdda-pll-supply = <&vreg_l12a_1p8>;
@@ -681,14 +748,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 {
@@ -696,7 +763,7 @@
};
&usb_2_hsphy {
- status = "okay";
+// status = "okay";
vdd-supply = <&vreg_l1a_0p875>;
vdda-pll-supply = <&vreg_l12a_1p8>;
@@ -707,7 +774,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 cda89f1f93a9b..c3b16d8520dfa 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -506,6 +506,11 @@
#address-cells = <1>;
#size-cells = <0>;
#sound-dai-cells = <1>;
+
+ qi2s@22 {
+ reg = <22>;
+ qcom,sd-lines = <0 1 2 3>;
+ };
};
};
@@ -2033,6 +2038,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 {
@@ -2131,6 +2189,172 @@
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>;
+ 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>;
+
+
+ #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>;
@@ -2905,6 +3129,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>;