[PATCH] pinctrl: qcom: kaanapali: add the I2C strong pull-up bit

From: Joonhoe Kim

Date: Wed Oct 07 2026 - 08:48:54 EST


The Kaanapali TLMM has the I2C pull-up control in bit 13 of the pin
config register, like SM8550, SM8650 and X1E80100, but the driver does
not describe it, so "bias-pull-up = <2200>" cannot select the strong
pull-up.

The downstream kernel sets it on the camera CCI pins (config 0x2007).
On a Lenovo TB323FU tablet, with only the weak pull-up every CCI
transfer on the two sensor buses times out; with bit 13 set the sensors
answer and their chip IDs read correctly.

Fixes: 35ff9c6b318a ("pinctrl: qcom: add the tlmm driver for Kaanapali platforms")
Assisted-by: LLM
Signed-off-by: Joonhoe Kim <26rote@xxxxxxxxx>
---
The board uses it as "bias-pull-up = <2200>" on the CCI pin states; the
Kaanapali CCI nodes in the CAMSS series (v18) use plain bias-pull-up,
which keeps the weak pull-up.

Tested on v7.3-rc4 with a test switch that clears bit 13 when the pin
state is applied, rebinding both CCI controllers each time: with bit 13
cleared the two sensors and the VCM on those buses failed with CCI
timeouts 3 times out of 3, with it set they probed 3 times out of 3.

drivers/pinctrl/qcom/pinctrl-kaanapali.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pinctrl/qcom/pinctrl-kaanapali.c b/drivers/pinctrl/qcom/pinctrl-kaanapali.c
index e95ac064b84c..e9351e29d38e 100644
--- a/drivers/pinctrl/qcom/pinctrl-kaanapali.c
+++ b/drivers/pinctrl/qcom/pinctrl-kaanapali.c
@@ -37,6 +37,7 @@
.mux_bit = 2, \
.pull_bit = 0, \
.drv_bit = 6, \
+ .i2c_pull_bit = 13, \
.egpio_enable = 12, \
.egpio_present = 11, \
.oe_bit = 9, \
--
2.43.0