]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
arm64: dts: Add apq8016-sbc hdmi audio support
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Wed, 6 May 2015 08:57:34 +0000 (09:57 +0100)
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Mon, 11 Jan 2016 09:54:20 +0000 (09:54 +0000)
This patch adds hdmi audio support to apq8016-sbc board.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Conflicts:
arch/arm64/boot/dts/qcom/msm8916.dtsi

arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
arch/arm64/boot/dts/qcom/msm8916.dtsi

index 37e563e10ce52a0e45fdc99029d0c81c89e2c60c..2790e28d2485b1c9024dccca6d06b71a5b57b021 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
 #include "msm8916.dtsi"
 #include "pm8916.dtsi"
 #include "apq8016-sbc-soc-pins.dtsi"
 &blsp_i2c4 {
        status = "ok";
 
-       bridge@39 {
+       adv_bridge: bridge@39 {
                status = "ok";
                compatible = "adi,adv7533";
                reg = <0x39>;
                pinctrl-names = "default","sleep";
                pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
                pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
+               #sound-dai-cells = <0>;
 
                port {
                        adv_in: endpoint {
                        remote-endpoint = <&adv_in>;
                };
        };
+};
+
+&lpass {
+       status = "okay";
+};
+       /*
+       Internal Codec
+               playback - Primary MI2S
+               capture - Ter MI2S
+
+       External Primary:
+               playback - secondary MI2S
+               capture - Quat MI2S
+
+       External Secondary:
+               playback - Quat MI2S
+               capture - Quat MI2S
+
+       */
+&sound {
+       status = "okay";
+       pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
+       pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
+       pinctrl-names = "default", "sleep";
+       qcom,model = "DB410c";
+
+
+       /* External Primary or External Secondary -ADV7533 HDMI */
+       external-dai-link@0 {
+               link-name = "ADV7533";
+
+               cpu { /* QUAT */
+                       sound-dai = <&lpass MI2S_QUATERNARY>;
+               };
+               codec {
+                       sound-dai = <&adv_bridge 0>;
+               };
+       };
 };
\ No newline at end of file
index 955c6f174d4cb16218625a6e590102a6e4a2bbf0..f4e577b7336e08270a180463fa479345654b762c 100644 (file)
                        };
                };
        };
+
+       ext-codec-lines {
+               ext_codec_lines_act: lines_on {
+                       pinmux {
+                               function = "gpio";
+                               pins = "gpio67";
+                       };
+                       pinconf {
+                               pins = "gpio67";
+                               drive-strength = <8>;
+                               bias-disable;
+                               output-high;
+                       };
+               };
+               ext_codec_lines_sus: lines_off {
+                       pinmux {
+                               function = "gpio";
+                               pins = "gpio67";
+                       };
+                       pinconf {
+                               pins = "gpio67";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       cdc-pdm-lines {
+               cdc_pdm_lines_act: pdm_lines_on {
+                       pinmux {
+                               function = "cdc_pdm0";
+                               pins = "gpio63", "gpio64", "gpio65", "gpio66",
+                                      "gpio67", "gpio68";
+                       };
+                       pinconf {
+                               pins = "gpio63", "gpio64", "gpio65", "gpio66",
+                                      "gpio67", "gpio68";
+                               drive-strength = <8>;
+                               bias-pull-none;
+                       };
+               };
+               cdc_pdm_lines_sus: pdm_lines_off {
+                       pinmux {
+                               function = "cdc_pdm0";
+                               pins = "gpio63", "gpio64", "gpio65", "gpio66",
+                                      "gpio67", "gpio68";
+                       };
+                       pinconf {
+                               pins = "gpio63", "gpio64", "gpio65", "gpio66",
+                                      "gpio67", "gpio68";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       ext-pri-tlmm-lines {
+               ext_pri_tlmm_lines_act: ext_pa_on {
+                       pinmux {
+                               function = "pri_mi2s";
+                               pins = "gpio113", "gpio114", "gpio115",
+                                      "gpio116";
+                       };
+                       pinconf {
+                               pins = "gpio113", "gpio114", "gpio115",
+                                      "gpio116";
+                               drive-strength = <8>;
+                               bias-pull-none;
+                       };
+               };
+
+               ext_pri_tlmm_lines_sus: ext_pa_off {
+                       pinmux {
+                               function = "pri_mi2s";
+                               pins = "gpio113", "gpio114", "gpio115",
+                                      "gpio116";
+                       };
+                       pinconf {
+                               pins = "gpio113", "gpio114", "gpio115",
+                                      "gpio116";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       ext-pri-ws-line {
+               ext_pri_ws_act: ext_pa_on {
+                       pinmux {
+                               function = "pri_mi2s_ws";
+                               pins = "gpio110";
+                       };
+                       pinconf {
+                               pins = "gpio110";
+                               drive-strength = <8>;
+                               bias-pull-none;
+                       };
+               };
+
+               ext_pri_ws_sus: ext_pa_off {
+                       pinmux {
+                               function = "pri_mi2s_ws";
+                               pins = "gpio110";
+                       };
+                       pinconf {
+                               pins = "gpio110";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       ext-mclk-tlmm-lines {
+               ext_mclk_tlmm_lines_act: mclk_lines_on {
+                       pinmux {
+                               function = "pri_mi2s";
+                               pins = "gpio116";
+                       };
+                       pinconf {
+                               pins = "gpio116";
+                               drive-strength = <8>;
+                               bias-pull-none;
+                       };
+               };
+               ext_mclk_tlmm_lines_sus: mclk_lines_off {
+                       pinmux {
+                               function = "pri_mi2s";
+                               pins = "gpio116";
+                       };
+                       pinconf {
+                               pins = "gpio116";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       /* secondary Mi2S */
+       ext-sec-tlmm-lines {
+               ext_sec_tlmm_lines_act: tlmm_lines_on {
+                       pinmux {
+                               function = "sec_mi2s";
+                               pins = "gpio112", "gpio117", "gpio118",
+                                      "gpio119";
+                       };
+                       pinconf {
+                               pins = "gpio112", "gpio117", "gpio118",
+                                       "gpio119";
+                               drive-strength = <8>;
+                               bias-pull-none;
+                       };
+               };
+               ext_sec_tlmm_lines_sus: tlmm_lines_off {
+                       pinmux {
+                               function = "sec_mi2s";
+                               pins = "gpio112", "gpio117", "gpio118",
+                                      "gpio119";
+                       };
+                       pinconf {
+                               pins = "gpio112", "gpio117", "gpio118",
+                                       "gpio119";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       cdc-dmic-lines {
+               cdc_dmic_lines_act: dmic_lines_on {
+                       pinmux_dmic0_clk {
+                               function = "dmic0_clk";
+                               pins = "gpio0";
+                       };
+                       pinmux_dmic0_data {
+                               function = "dmic0_data";
+                               pins = "gpio1";
+                       };
+                       pinconf {
+                               pins = "gpio0", "gpio1";
+                               drive-strength = <8>;
+                       };
+               };
+               cdc_dmic_lines_sus: dmic_lines_off {
+                       pinconf {
+                               pins = "gpio0", "gpio1";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
+
+       cross-conn-det {
+               cross_conn_det_act: lines_on {
+                       pinmux {
+                               function = "gpio";
+                               pins = "gpio120";
+                       };
+                       pinconf {
+                               pins = "gpio120";
+                               drive-strength = <8>;
+                               output-low;
+                               bias-pull-down;
+                       };
+               };
+               cross_conn_det_sus: lines_off {
+                       pinmux {
+                               function = "gpio";
+                               pins = "gpio120";
+                       };
+                       pinconf {
+                               pins = "gpio120";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+       };
 };
index 05982012f03d42953102f4dc3a88589c6f3dbc99..c6c5e389dd52243b2f89779b40f1dfa75e68df89 100644 (file)
                        reg = <0x0b0b8000 0x1000>,
                              <0x0b008000 0x1000>;
                };
+
+               /* Audio */
+
+               lpass: lpass-cpu@07700000 {
+                       status = "disabled";
+                       compatible = "qcom,lpass-cpu-apq8016";
+                       clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
+                                <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
+                                <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>,
+                                <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
+
+                       clock-names = "ahbix-clk",
+                                       "pcnoc-mport-clk",
+                                       "pcnoc-sway-clk",
+                                       "mi2s-bit-clk0",
+                                       "mi2s-bit-clk1",
+                                       "mi2s-bit-clk2",
+                                       "mi2s-bit-clk3";
+                       #sound-dai-cells = <1>;
+
+                       interrupts = <0 160 0>;
+                       interrupt-names = "lpass-irq-lpaif";
+                       reg = <0x07708000 0x10000>, <0x07702000 0x4>, <0x07702004 0x4>;
+                       reg-names = "lpass-lpaif", "mic-iomux", "spkr-iomux";
+               };
+
+               sound: sound {
+                       status = "disabled";
+                       compatible = "qcom,apq8016-sbc-sndcard";
+                       reg = <0x07702000 0x4>, <0x07702004 0x4>;
+                       reg-names = "mic-iomux", "spkr-iomux";
+               };
+
        };
 
        smd {