Re: [PATCH 7/7] arm64: dts: qcom: msm8998-xperia: Add audio clock and its pin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Il 07/09/21 15:47, Bjorn Andersson ha scritto:
On Fri 03 Sep 11:09 PDT 2021, AngeloGioacchino Del Regno wrote:

All smartphones of this platform are equipped with a WCD9335 audio
codec, getting its MCLK from PM8998 gpio13: add this clock to DT.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxxx>
Reviewed-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>
---
  .../dts/qcom/msm8998-sony-xperia-yoshino.dtsi | 19 +++++++++++++++++++
  1 file changed, 19 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi b/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
index 5fbe5abf4133..7aeebd3b2e9e 100644
--- a/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
@@ -20,6 +20,19 @@ / {
  	qcom,msm-id = <0x124 0x20000>, <0x124 0x20001>; /* 8998v2, v2.1 */
  	qcom,board-id = <8 0>;
+ clocks {
+		compatible = "simple-bus";
+
+		div1_mclk: divclk1 {
+			compatible = "gpio-gate-clock";
+			pinctrl-0 = <&audio_mclk_pin>;
+			pinctrl-names = "default";
+			clocks = <&rpmcc RPM_SMD_DIV_CLK1>;

What controls the clock rate of divclk1?


That's going to be assigned to WCD9335 (oh btw, I have working audio locally!
it's not great, but I can hear sounds from the internal speakers), but I
haven't added the entire audio configuration in these submitted commits because:
1. It needs two GDSCs in GCC: adding them without enabling the lpass iommu will
   produce a crash, as the iommu would go off when the kernel starts turning off
   unused stuff... and we have secure contexts there, which means that the
   hypervisor will say hello;
2. The lpass iommu needs a commit in the qcom smmu implementation detail driver,
   as we need to select a different context (not the last ctx, but the one before)
   for bypass streams emulation, as the last one seems to be untouchable... small
   preview of the required commit:
   qsmmu->bypass_cbndx = [value from dt], or [default == smmu->num_context_banks-1]
3. We need the lpass iommu to get "the audio stuff" (surely, no need to list it).

So that's the entire picture... I am planning to get this base merged in before
going for a cleanup and submission of the rest of what I have here.


Long story short: WCD9335 will be responsible for controlling this clock.

Cheers,
- Angelo

Regards,
Bjorn

+			#clock-cells = <0>;
+			enable-gpios = <&pm8998_gpio 13 GPIO_ACTIVE_HIGH>;
+		};
+	};
+
  	board_vbat: vbat-regulator {
  		compatible = "regulator-fixed";
  		regulator-name = "VBAT";
@@ -313,6 +326,12 @@ cam_snapshot_pin_a: cam-snapshot-btn-active {
  		input-enable;
  		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
  	};
+
+	audio_mclk_pin: audio-mclk-pin-active {
+		pins = "gpio13";
+		function = "func2";
+		power-source = <0>;
+	};
  };
&pmi8998_gpio {
--
2.32.0





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux