diff options
-rw-r--r-- | arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi | 9 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 101 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8996-pins.dtsi | 46 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8996.dtsi | 95 |
4 files changed, 233 insertions, 18 deletions
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi index 7c65950658c61..1343dc6238d73 100644 --- a/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi @@ -36,6 +36,15 @@ }; }; + + audio_mclk: clk_div1 { + pinconf { + pins = "gpio15"; + function = "func1"; + power-source = <PM8994_GPIO_S4>; // 1.8V + }; + }; + volume_up_gpio: pm8996_gpio2 { pinconf { pins = "gpio2"; diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi index a5a7bd8a35753..b1585d012b2ce 100644 --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi @@ -37,6 +37,7 @@ }; clocks { + compatible = "simple-bus"; divclk4: divclk4 { compatible = "fixed-clock"; #clock-cells = <0>; @@ -46,6 +47,16 @@ pinctrl-names = "default"; pinctrl-0 = <&divclk4_pin_a>; }; + + div1_mclk: divclk1 { + compatible = "gpio-gate-clock"; + pinctrl-0 = <&audio_mclk>; + pinctrl-names = "default"; + clocks = <&rpmcc RPM_SMD_DIV_CLK1>; + #clock-cells = <0>; + enable-gpios = <&pm8994_gpios 15 0>; + }; + }; soc { @@ -217,6 +228,17 @@ }; }; + slim_msm: slim@91c0000 { + ngd@1 { + wcd9335: codec@1{ + clock-names = "mclk", "slimbus"; + clocks = <&div1_mclk>, + <&rpmcc RPM_SMD_BB_CLK1>; + qcom,mbhc-vthreshold = <75 150 237 500 500 500 500 500>; + }; + }; + }; + mdss@900000 { status = "okay"; @@ -229,6 +251,7 @@ vddio-supply = <&pm8994_l12>; vcca-supply = <&pm8994_l28>; + #phy-cells = <0>; }; hdmi-tx@9a0000 { @@ -633,16 +656,54 @@ }; &sound { compatible = "qcom,apq8096-sndcard"; - qcom,model = "DB820c"; - qcom,audio-routing = - "RX_BIAS", "MCLK"; + model = "DB820c"; + audio-routing = + "RX_BIAS", "MCLK", + "MIC BIAS1", "MCLK", + "MIC BIAS2", "MCLK", + "MIC BIAS3", "MCLK", + "MIC BIAS4", "MCLK", + "AMIC1", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC2", "MIC BIAS2", + "MIC BIAS2", "Headset Mic", + "AMIC3", "MIC BIAS2", + "MIC BIAS2", "ANCLeft Headset Mic", + "AMIC4", "MIC BIAS2", + "MIC BIAS2", "ANCRight Headset Mic", + "AMIC5", "MIC BIAS2", + "MIC BIAS2", "Analog Mic6", + "AMIC6", "MIC BIAS2", + "MIC BIAS2", "Analog Mic7", + "DMIC2", "MIC BIAS1", + "MIC BIAS1", "Digital Mic2", + "DMIC3", "MIC BIAS1", + "MIC BIAS1", "Digital Mic3", + "DMIC4", "MIC BIAS3", + "MIC BIAS3", "Digital Mic4", + "DMIC5", "MIC BIAS3", + "MIC BIAS3", "Digital Mic5", + "SpkrLeft IN", "SPK1 OUT", + "SpkrRight IN", "SPK2 OUT"; + mm1-dai-link { link-name = "MultiMedia1"; cpu { sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; }; - platform { - sound-dai = <&q6asmdai>; + }; + + 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>; }; }; @@ -660,4 +721,34 @@ sound-dai = <&hdmi 0>; }; }; + + slim-dai-link { + link-name = "SLIM Playback"; + cpu { + sound-dai = <&q6afedai SLIMBUS_6_RX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&wcd9335 6>; + }; + }; + + slimcap-dai-link { + link-name = "SLIM Capture"; + cpu { + sound-dai = <&q6afedai SLIMBUS_0_TX>; + }; + + platform { + sound-dai = <&q6routing>; + }; + + codec { + sound-dai = <&wcd9335 1>; + }; + }; }; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi index ddbec6eca5e87..29ad359e667a2 100644 --- a/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi @@ -13,6 +13,52 @@ &msmgpio { + wcd9xxx_intr { + wcd_intr_default: wcd_intr_default{ + mux { + pins = "gpio54"; + function = "gpio"; + }; + + config { + pins = "gpio54"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* pull down */ + input-enable; + }; + }; + }; + + + cdc_reset_ctrl { + cdc_reset_sleep: cdc_reset_sleep { + mux { + pins = "gpio64"; + function = "gpio"; + }; + config { + pins = "gpio64"; + drive-strength = <16>; + bias-disable; + output-low; + }; + }; + cdc_reset_active:cdc_reset_active { + mux { + pins = "gpio64"; + function = "gpio"; + }; + config { + pins = "gpio64"; + drive-strength = <16>; + bias-pull-down; + output-high; + }; + }; + }; + + + blsp1_spi0_default: blsp1_spi0_default { pinmux { function = "blsp_spi1"; diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi index c50e8f10c1124..553de0208d5d2 100644 --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -1554,6 +1554,68 @@ }; }; + slimbam:dma@9184000 + { + compatible = "qcom,bam-v1.7.0"; + qcom,controlled-remotely; + reg = <0x9184000 0x32000>; + num-channels = <31>; + interrupts = <0 164 IRQ_TYPE_LEVEL_HIGH>; + #dma-cells = <1>; + qcom,ee = <1>; + qcom,num-ees = <2>; + }; + + slim_msm: slim@91c0000 { + compatible = "qcom,slim-ngd-v1.5.0"; + pinctrl-0 = <&cdc_reset_active>; + pinctrl-1 = <&cdc_reset_sleep>; + pinctrl-names = "default", "sleep"; + + reg = <0x91c0000 0x2C000>; + reg-names = "ctrl"; + interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>; + qcom,apps-ch-pipes = <0x60000000>; + qcom,ea-pc = <0x160>; + dmas = <&slimbam 3>, <&slimbam 4>, + <&slimbam 5>, <&slimbam 6>; + dma-names = "rx", "tx", "tx2", "rx2"; + #address-cells = <1>; + #size-cells = <0>; + ngd@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <1>; + tasha_ifd: tas-ifd { + compatible = "slim217,1a0"; + reg = <0 0>; + }; + + wcd9335: codec@1{ + pinctrl-0 = <&wcd_intr_default>; + pinctrl-names = "default"; + compatible = "slim217,1a0"; + reg = <1 0>; + + interrupt-parent = <&msmgpio>; + interrupts = <54 IRQ_TYPE_LEVEL_HIGH>, + <53 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "intr1", "intr2"; + interrupt-controller; + #interrupt-cells = <1>; + reset-gpios = <&msmgpio 64 0>; + slim-ifc-dev = <&tasha_ifd>; + vdd-buck-supply = <&pm8994_s4>; + vdd-buck-sido-supply = <&pm8994_s4>; + vdd-tx-supply = <&pm8994_s4>; + vdd-rx-supply = <&pm8994_s4>; + vdd-io-supply = <&pm8994_s4>; + #sound-dai-cells = <1>; + }; + + }; + }; + adreno_smmu: arm,smmu@b40000 { compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2"; reg = <0xb40000 0x10000>; @@ -1721,6 +1783,7 @@ phys = <&hdmi_phy>; phy-names = "hdmi_phy"; + #sound-dai-cells = <1>; ports { #address-cells = <1>; @@ -1944,46 +2007,52 @@ qcom,ipc = <&apcs 16 8>; qcom,smd-edge = <1>; qcom,remote-pid = <2>; + #address-cells = <1>; + #size-cells = <0>; apr { + power-domains = <&gcc HLOS1_VOTE_LPASS_ADSP_GDSC>; compatible = "qcom,apr-v2"; qcom,smd-channels = "apr_audio_svc"; - qcom,apr-dest-domain-id = <APR_DOMAIN_ADSP>; + reg = <APR_DOMAIN_ADSP>; + #address-cells = <1>; + #size-cells = <0>; q6core { - qcom,apr-svc-name = "CORE"; - qcom,apr-svc-id = <APR_SVC_ADSP_CORE>; + reg = <APR_SVC_ADSP_CORE>; compatible = "qcom,q6core"; }; q6afe: q6afe { compatible = "qcom,q6afe"; - qcom,apr-svc-name = "AFE"; - qcom,apr-svc-id = <APR_SVC_AFE>; + reg = <APR_SVC_AFE>; q6afedai: dais { - compatible = "qcom,q6afe-dai"; + compatible = "qcom,q6afe-dais"; + #address-cells = <1>; + #size-cells = <0>; #sound-dai-cells = <1>; + hdmi@1 { + reg = <1>; + }; }; }; q6asm: q6asm { compatible = "qcom,q6asm"; - qcom,apr-svc-name = "ASM"; - qcom,apr-svc-id = <APR_SVC_ASM>; + reg = <APR_SVC_ASM>; q6asmdai: dais { - compatible = "qcom,q6asm-dai"; + compatible = "qcom,q6asm-dais"; #sound-dai-cells = <1>; - power-domains = <&gcc HLOS1_VOTE_LPASS_ADSP_GDSC>; iommus = <&lpass_q6_smmu 1>; + }; }; q6adm: q6adm { compatible = "qcom,q6adm"; - qcom,apr-svc-name = "ADM"; - qcom,apr-svc-id = <APR_SVC_ADM>; + reg = <APR_SVC_ADM>; q6routing: routing { - compatible = "q6routing"; + compatible = "qcom,q6adm-routing"; #sound-dai-cells = <0>; }; }; |