mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v3 0/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix the ADV7535 interrupt
@ 2026-10-20  8:44 Dmitry Baryshkov
  2026-10-20  8:44 ` [PATCH v3 1/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent Dmitry Baryshkov
  2026-10-20  8:44 ` [PATCH v3 2/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin Dmitry Baryshkov
  0 siblings, 2 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2026-10-20  8:44 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
	Marijn Suijten
  Cc: linux-arm-msm, devicetree, linux-kernel

The ADV7535 HDMI bridge on the IFC6560 fails to probe because its
interrupt points at the wrong PMIC: the ADV7535 is wired to PM660
GPIO11, while the DT uses PM660L GPIO11, a power control output driven
by the bootloader. Point the interrupt at the PM660 and configure the
pad as an input instead of relying on its bootloader state.

---
Changes in v3:
- Moved the interrupt to PM660 PMIC.
- Moved the pinctrl state to the PM660 and added the output-disable
  property, dropping the review.
- Link to v2: https://patch.msgid.link/20261019-ifc6560-adv-v2-1-ade625df3fe3@oss.qualcomm.com

Changes in v2:
- Dropped extra empty line (Konrad)
- Added a note about pull-up for the IRQ line present on the PCB.
- Link to v1: https://patch.msgid.link/20260920-ifc6560-adv-v1-1-89b1435d00c2@oss.qualcomm.com

To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Abel Vesa <abelvesa@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Dmitry Baryshkov <lumag@kernel.org>
To: Marijn Suijten <marijn.suijten@somainline.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

---
Dmitry Baryshkov (2):
      arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent
      arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin

 arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
---
base-commit: 2efb7a11f1aa4d2dc285fe2680cca22cb9f72f64
change-id: 20260920-ifc6560-adv-b8ed1242008b

Best regards,
--  
With best wishes
Dmitry


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 1/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent
  2026-10-20  8:44 [PATCH v3 0/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix the ADV7535 interrupt Dmitry Baryshkov
@ 2026-10-20  8:44 ` Dmitry Baryshkov
  2026-10-20  8:56   ` Konrad Dybcio
  2026-10-20  8:44 ` [PATCH v3 2/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin Dmitry Baryshkov
  1 sibling, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2026-10-20  8:44 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
	Marijn Suijten
  Cc: linux-arm-msm, devicetree, linux-kernel

Probing the ADV7535 HDMI bridge fails on the IFC6560:

  gpio gpiochip3: (800f000.spmi:pmic@2:gpio@c000): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
  gpio gpiochip3: (800f000.spmi:pmic@2:gpio@c000): unable to lock HW IRQ 10 for IRQ

The bridge's interrupt line, HDMI_INT_N, is wired to GPIO11 of the PM660,
not of the PM660L. PM660L GPIO11 is LPKs_CTRL, an output which the
bootloader drives high, so gpiochip_lock_as_irq() refuses to turn it
into an interrupt and requesting the interrupt fails.

Point the interrupt at the PM660 GPIO.

Fixes: 34279d6e3f32 ("arm64: dts: qcom: sdm660: Add initial Inforce IFC6560 board support")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
index 9e14f53b552e..eef4cab8c200 100644
--- a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
+++ b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
@@ -167,7 +167,7 @@ adv7533: hdmi@39 {
 		reg = <0x39>, <0x66>;
 		reg-names = "main", "edid";
 
-		interrupt-parent = <&pm660l_gpios>;
+		interrupt-parent = <&pm660_gpios>;
 		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
 
 		clocks = <&rpmcc RPM_SMD_BB_CLK2>;

-- 
2.47.3


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 2/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin
  2026-10-20  8:44 [PATCH v3 0/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix the ADV7535 interrupt Dmitry Baryshkov
  2026-10-20  8:44 ` [PATCH v3 1/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent Dmitry Baryshkov
@ 2026-10-20  8:44 ` Dmitry Baryshkov
  2026-10-20  8:56   ` Konrad Dybcio
  1 sibling, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2026-10-20  8:44 UTC (permalink / raw)
  To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
	Marijn Suijten
  Cc: linux-arm-msm, devicetree, linux-kernel

The board never configures the PM660 GPIO11 pad carrying the ADV7535
interrupt and relies on the state left by the bootloader: an input with
the internal 10 uA pull-down enabled, working against the pull-up which
the board has on that open-drain line.

Add a default pinctrl state switching the pad to a digital input with the
output buffer and the internal bias disabled, applied by
pinctrl_bind_pins() before the driver requests the interrupt.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
index eef4cab8c200..b3e4a7c378b4 100644
--- a/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
+++ b/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dts
@@ -170,6 +170,9 @@ adv7533: hdmi@39 {
 		interrupt-parent = <&pm660_gpios>;
 		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
 
+		pinctrl-0 = <&adv7533_int_default>;
+		pinctrl-names = "default";
+
 		clocks = <&rpmcc RPM_SMD_BB_CLK2>;
 		clock-names = "cec";
 		/*
@@ -283,6 +286,15 @@ sw_ctrl_default: sw-ctrl-default-state {
 		input-enable;
 		bias-pull-down;
 	};
+
+	adv7533_int_default: adv7533-int-default-state {
+		pins = "gpio11";
+		function = "normal";
+		input-enable;
+		output-disable;
+		/* pull-up on board */
+		bias-disable;
+	};
 };
 
 &qusb2phy0 {

-- 
2.47.3


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 1/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent
  2026-10-20  8:44 ` [PATCH v3 1/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent Dmitry Baryshkov
@ 2026-10-20  8:56   ` Konrad Dybcio
  0 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2026-10-20  8:56 UTC (permalink / raw)
  To: Dmitry Baryshkov, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
	Marijn Suijten
  Cc: linux-arm-msm, devicetree, linux-kernel

On 10/20/26 10:44 AM, Dmitry Baryshkov wrote:
> Probing the ADV7535 HDMI bridge fails on the IFC6560:
> 
>   gpio gpiochip3: (800f000.spmi:pmic@2:gpio@c000): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
>   gpio gpiochip3: (800f000.spmi:pmic@2:gpio@c000): unable to lock HW IRQ 10 for IRQ
> 
> The bridge's interrupt line, HDMI_INT_N, is wired to GPIO11 of the PM660,
> not of the PM660L. PM660L GPIO11 is LPKs_CTRL, an output which the
> bootloader drives high, so gpiochip_lock_as_irq() refuses to turn it
> into an interrupt and requesting the interrupt fails.
> 
> Point the interrupt at the PM660 GPIO.
> 
> Fixes: 34279d6e3f32 ("arm64: dts: qcom: sdm660: Add initial Inforce IFC6560 board support")
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 2/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin
  2026-10-20  8:44 ` [PATCH v3 2/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin Dmitry Baryshkov
@ 2026-10-20  8:56   ` Konrad Dybcio
  0 siblings, 0 replies; 5+ messages in thread
From: Konrad Dybcio @ 2026-10-20  8:56 UTC (permalink / raw)
  To: Dmitry Baryshkov, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Dmitry Baryshkov,
	Marijn Suijten
  Cc: linux-arm-msm, devicetree, linux-kernel

On 10/20/26 10:44 AM, Dmitry Baryshkov wrote:
> The board never configures the PM660 GPIO11 pad carrying the ADV7535
> interrupt and relies on the state left by the bootloader: an input with
> the internal 10 uA pull-down enabled, working against the pull-up which
> the board has on that open-drain line.
> 
> Add a default pinctrl state switching the pad to a digital input with the
> output buffer and the internal bias disabled, applied by
> pinctrl_bind_pins() before the driver requests the interrupt.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-20  8:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-20  8:44 [PATCH v3 0/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix the ADV7535 interrupt Dmitry Baryshkov
2026-10-20  8:44 ` [PATCH v3 1/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt parent Dmitry Baryshkov
2026-10-20  8:56   ` Konrad Dybcio
2026-10-20  8:44 ` [PATCH v3 2/2] arm64: dts: qcom: sda660-inforce-ifc6560: fix ADV7535 interrupt pin Dmitry Baryshkov
2026-10-20  8:56   ` Konrad Dybcio

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®