* [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F
2026-01-16 13:38 [PATCH 0/4] Add CCI support for Milos, enable on Fairphone (Gen. 6) Luca Weiss
@ 2026-01-16 13:38 ` Luca Weiss
2026-01-16 13:58 ` Konrad Dybcio
2026-01-19 10:15 ` (subset) " Bartosz Golaszewski
2026-01-16 13:38 ` [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible Luca Weiss
` (2 subsequent siblings)
3 siblings, 2 replies; 22+ messages in thread
From: Luca Weiss @ 2026-01-16 13:38 UTC (permalink / raw)
To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm, Luca Weiss
Add the compatible for an 128Kb EEPROM from Puya.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Documentation/devicetree/bindings/eeprom/at24.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/eeprom/at24.yaml b/Documentation/devicetree/bindings/eeprom/at24.yaml
index 95ac2f15f601..ef88f46928a4 100644
--- a/Documentation/devicetree/bindings/eeprom/at24.yaml
+++ b/Documentation/devicetree/bindings/eeprom/at24.yaml
@@ -142,6 +142,7 @@ properties:
- enum:
- giantec,gt24p128e
- giantec,gt24p128f
+ - puya,p24c128f
- renesas,r1ex24128
- samsung,s524ad0xd1
- const: atmel,24c128
--
2.52.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F
2026-01-16 13:38 ` [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F Luca Weiss
@ 2026-01-16 13:58 ` Konrad Dybcio
2026-01-19 10:15 ` (subset) " Bartosz Golaszewski
1 sibling, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-01-16 13:58 UTC (permalink / raw)
To: Luca Weiss, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 1/16/26 2:38 PM, Luca Weiss wrote:
> Add the compatible for an 128Kb EEPROM from Puya.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: (subset) [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F
2026-01-16 13:38 ` [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F Luca Weiss
2026-01-16 13:58 ` Konrad Dybcio
@ 2026-01-19 10:15 ` Bartosz Golaszewski
1 sibling, 0 replies; 22+ messages in thread
From: Bartosz Golaszewski @ 2026-01-19 10:15 UTC (permalink / raw)
To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio, Luca Weiss
Cc: Bartosz Golaszewski, ~postmarketos/upstreaming, phone-devel,
linux-i2c, devicetree, linux-kernel, linux-arm-msm
On Fri, 16 Jan 2026 14:38:55 +0100, Luca Weiss wrote:
> Add the compatible for an 128Kb EEPROM from Puya.
>
>
Applied, thanks!
[1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F
commit: c6e79d34bf80c008e5f5fba2c8cce3df81a84335
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-01-16 13:38 [PATCH 0/4] Add CCI support for Milos, enable on Fairphone (Gen. 6) Luca Weiss
2026-01-16 13:38 ` [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F Luca Weiss
@ 2026-01-16 13:38 ` Luca Weiss
2026-01-17 11:54 ` Krzysztof Kozlowski
2026-03-19 16:57 ` Krzysztof Kozlowski
2026-01-16 13:38 ` [PATCH 3/4] arm64: dts: qcom: milos: Add CCI busses Luca Weiss
2026-01-16 13:38 ` [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on " Luca Weiss
3 siblings, 2 replies; 22+ messages in thread
From: Luca Weiss @ 2026-01-16 13:38 UTC (permalink / raw)
To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm, Luca Weiss
Add Milos compatible for the CAMSS CCI interfaces.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
.../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
index a3fe1eea6aec..c57d81258fba 100644
--- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
+++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
@@ -27,6 +27,7 @@ properties:
- items:
- enum:
- qcom,kaanapali-cci
+ - qcom,milos-cci
- qcom,qcm2290-cci
- qcom,sa8775p-cci
- qcom,sc7280-cci
@@ -263,6 +264,23 @@ allOf:
- const: cpas_ahb
- const: cci
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,milos-cci
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ items:
+ - const: soc_ahb
+ - const: cpas_ahb
+ - const: cci
+
additionalProperties: false
examples:
--
2.52.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-01-16 13:38 ` [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible Luca Weiss
@ 2026-01-17 11:54 ` Krzysztof Kozlowski
2026-01-20 13:18 ` Konrad Dybcio
2026-03-19 16:57 ` Krzysztof Kozlowski
1 sibling, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2026-01-17 11:54 UTC (permalink / raw)
To: Luca Weiss
Cc: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming,
phone-devel, linux-i2c, devicetree, linux-kernel, linux-arm-msm
On Fri, Jan 16, 2026 at 02:38:56PM +0100, Luca Weiss wrote:
> Add Milos compatible for the CAMSS CCI interfaces.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> index a3fe1eea6aec..c57d81258fba 100644
> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> @@ -27,6 +27,7 @@ properties:
> - items:
> - enum:
> - qcom,kaanapali-cci
> + - qcom,milos-cci
> - qcom,qcm2290-cci
> - qcom,sa8775p-cci
> - qcom,sc7280-cci
> @@ -263,6 +264,23 @@ allOf:
> - const: cpas_ahb
> - const: cci
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,milos-cci
> + then:
> + properties:
> + clocks:
> + minItems: 3
> + maxItems: 3
> + clock-names:
> + items:
> + - const: soc_ahb
> + - const: cpas_ahb
> + - const: cci
Same comments as other discussion these days - I guess that soc_ahb
serves the same purpose as camnoc_axi, so this is just last entri in the
if:then: blocks.
I really find this binding terrible - around six names for AHB - so I do
not want another combination...
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-01-17 11:54 ` Krzysztof Kozlowski
@ 2026-01-20 13:18 ` Konrad Dybcio
2026-02-13 13:16 ` Luca Weiss
0 siblings, 1 reply; 22+ messages in thread
From: Konrad Dybcio @ 2026-01-20 13:18 UTC (permalink / raw)
To: Krzysztof Kozlowski, Luca Weiss, Dmitry Baryshkov
Cc: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming,
phone-devel, linux-i2c, devicetree, linux-kernel, linux-arm-msm
On 1/17/26 12:54 PM, Krzysztof Kozlowski wrote:
> On Fri, Jan 16, 2026 at 02:38:56PM +0100, Luca Weiss wrote:
>> Add Milos compatible for the CAMSS CCI interfaces.
>>
>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>> ---
>> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>> index a3fe1eea6aec..c57d81258fba 100644
>> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>> @@ -27,6 +27,7 @@ properties:
>> - items:
>> - enum:
>> - qcom,kaanapali-cci
>> + - qcom,milos-cci
>> - qcom,qcm2290-cci
>> - qcom,sa8775p-cci
>> - qcom,sc7280-cci
>> @@ -263,6 +264,23 @@ allOf:
>> - const: cpas_ahb
>> - const: cci
>>
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - qcom,milos-cci
>> + then:
>> + properties:
>> + clocks:
>> + minItems: 3
>> + maxItems: 3
>> + clock-names:
>> + items:
>> + - const: soc_ahb
>> + - const: cpas_ahb
>> + - const: cci
>
> Same comments as other discussion these days - I guess that soc_ahb
> serves the same purpose as camnoc_axi, so this is just last entri in the
> if:then: blocks.
>
> I really find this binding terrible - around six names for AHB - so I do
> not want another combination...
I dug up the CCI doc, it talks about the CCI having a CC_CCI_CLK clock ("cci"
here) and a CC_PBUS_CLK (AHB interface to the rest of the SoC).
The CAMSS TOP doc (for Milos specifically, but I would assume there's a
pattern) says that for access to CCI_0, I need to enable CAM_CC_CPAS_AHB_CLK
and CAM_CC_CCI_0_CLK. CPAS is a wrapper inside CAMSS that contains most of
the programmable IPs on there (notably not the CSIPHYs, at least not on this
platform)
It further mentions that GCC_SOC_AHB_CLK is required for *any* register
access within CAMSS. Perhaps it sits right in front of the xNoC-to-CAMNoC
interface.
This only enforces my imagination of CAMSS being a fully contained "bus"
(perhaps somewhat like AxNOC on 8996 represented with a simple-pm-bus)..
+Dmitry, myself and a number of our colleagues were deliberating how to
best represent the hardware going forward and I think we at some point waved
the idea of putting every camera subdevice under a "camss: bus@ {}"-type node,
which would hold the reference to the TITAN_TOP_GDSC. This seems fitting for
housing the SOC_AHB clock as well and therefore concluding this discussion.
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-01-20 13:18 ` Konrad Dybcio
@ 2026-02-13 13:16 ` Luca Weiss
2026-03-13 10:43 ` Luca Weiss
0 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-02-13 13:16 UTC (permalink / raw)
To: Konrad Dybcio, Krzysztof Kozlowski, Luca Weiss, Dmitry Baryshkov
Cc: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming,
phone-devel, linux-i2c, devicetree, linux-kernel, linux-arm-msm
Hi all,
On Tue Jan 20, 2026 at 2:18 PM CET, Konrad Dybcio wrote:
> On 1/17/26 12:54 PM, Krzysztof Kozlowski wrote:
>> On Fri, Jan 16, 2026 at 02:38:56PM +0100, Luca Weiss wrote:
>>> Add Milos compatible for the CAMSS CCI interfaces.
>>>
>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>> ---
>>> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
>>> 1 file changed, 18 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>>> index a3fe1eea6aec..c57d81258fba 100644
>>> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>>> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>>> @@ -27,6 +27,7 @@ properties:
>>> - items:
>>> - enum:
>>> - qcom,kaanapali-cci
>>> + - qcom,milos-cci
>>> - qcom,qcm2290-cci
>>> - qcom,sa8775p-cci
>>> - qcom,sc7280-cci
>>> @@ -263,6 +264,23 @@ allOf:
>>> - const: cpas_ahb
>>> - const: cci
>>>
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + enum:
>>> + - qcom,milos-cci
>>> + then:
>>> + properties:
>>> + clocks:
>>> + minItems: 3
>>> + maxItems: 3
>>> + clock-names:
>>> + items:
>>> + - const: soc_ahb
>>> + - const: cpas_ahb
>>> + - const: cci
>>
>> Same comments as other discussion these days - I guess that soc_ahb
>> serves the same purpose as camnoc_axi, so this is just last entri in the
>> if:then: blocks.
>>
>> I really find this binding terrible - around six names for AHB - so I do
>> not want another combination...
>
> I dug up the CCI doc, it talks about the CCI having a CC_CCI_CLK clock ("cci"
> here) and a CC_PBUS_CLK (AHB interface to the rest of the SoC).
>
> The CAMSS TOP doc (for Milos specifically, but I would assume there's a
> pattern) says that for access to CCI_0, I need to enable CAM_CC_CPAS_AHB_CLK
> and CAM_CC_CCI_0_CLK. CPAS is a wrapper inside CAMSS that contains most of
> the programmable IPs on there (notably not the CSIPHYs, at least not on this
> platform)
>
> It further mentions that GCC_SOC_AHB_CLK is required for *any* register
> access within CAMSS. Perhaps it sits right in front of the xNoC-to-CAMNoC
> interface.
>
> This only enforces my imagination of CAMSS being a fully contained "bus"
> (perhaps somewhat like AxNOC on 8996 represented with a simple-pm-bus)..
>
> +Dmitry, myself and a number of our colleagues were deliberating how to
> best represent the hardware going forward and I think we at some point waved
> the idea of putting every camera subdevice under a "camss: bus@ {}"-type node,
> which would hold the reference to the TITAN_TOP_GDSC. This seems fitting for
> housing the SOC_AHB clock as well and therefore concluding this discussion.
How can we continue here? What change can I do to unblock this? I can't
tell whether soc_ahb == camnoc_axi for this platform so I need some help
here.
Regards
Luca
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-02-13 13:16 ` Luca Weiss
@ 2026-03-13 10:43 ` Luca Weiss
2026-03-13 16:18 ` Dmitry Baryshkov
0 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-03-13 10:43 UTC (permalink / raw)
To: Luca Weiss, Konrad Dybcio, Krzysztof Kozlowski, Dmitry Baryshkov
Cc: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio, ~postmarketos/upstreaming,
phone-devel, linux-i2c, devicetree, linux-kernel, linux-arm-msm
On Fri Feb 13, 2026 at 2:16 PM CET, Luca Weiss wrote:
> Hi all,
>
> On Tue Jan 20, 2026 at 2:18 PM CET, Konrad Dybcio wrote:
>> On 1/17/26 12:54 PM, Krzysztof Kozlowski wrote:
>>> On Fri, Jan 16, 2026 at 02:38:56PM +0100, Luca Weiss wrote:
>>>> Add Milos compatible for the CAMSS CCI interfaces.
>>>>
>>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>>> ---
>>>> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
>>>> 1 file changed, 18 insertions(+)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>>>> index a3fe1eea6aec..c57d81258fba 100644
>>>> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>>>> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>>>> @@ -27,6 +27,7 @@ properties:
>>>> - items:
>>>> - enum:
>>>> - qcom,kaanapali-cci
>>>> + - qcom,milos-cci
>>>> - qcom,qcm2290-cci
>>>> - qcom,sa8775p-cci
>>>> - qcom,sc7280-cci
>>>> @@ -263,6 +264,23 @@ allOf:
>>>> - const: cpas_ahb
>>>> - const: cci
>>>>
>>>> + - if:
>>>> + properties:
>>>> + compatible:
>>>> + contains:
>>>> + enum:
>>>> + - qcom,milos-cci
>>>> + then:
>>>> + properties:
>>>> + clocks:
>>>> + minItems: 3
>>>> + maxItems: 3
>>>> + clock-names:
>>>> + items:
>>>> + - const: soc_ahb
>>>> + - const: cpas_ahb
>>>> + - const: cci
>>>
>>> Same comments as other discussion these days - I guess that soc_ahb
>>> serves the same purpose as camnoc_axi, so this is just last entri in the
>>> if:then: blocks.
>>>
>>> I really find this binding terrible - around six names for AHB - so I do
>>> not want another combination...
>>
>> I dug up the CCI doc, it talks about the CCI having a CC_CCI_CLK clock ("cci"
>> here) and a CC_PBUS_CLK (AHB interface to the rest of the SoC).
>>
>> The CAMSS TOP doc (for Milos specifically, but I would assume there's a
>> pattern) says that for access to CCI_0, I need to enable CAM_CC_CPAS_AHB_CLK
>> and CAM_CC_CCI_0_CLK. CPAS is a wrapper inside CAMSS that contains most of
>> the programmable IPs on there (notably not the CSIPHYs, at least not on this
>> platform)
>>
>> It further mentions that GCC_SOC_AHB_CLK is required for *any* register
>> access within CAMSS. Perhaps it sits right in front of the xNoC-to-CAMNoC
>> interface.
>>
>> This only enforces my imagination of CAMSS being a fully contained "bus"
>> (perhaps somewhat like AxNOC on 8996 represented with a simple-pm-bus)..
>>
>> +Dmitry, myself and a number of our colleagues were deliberating how to
>> best represent the hardware going forward and I think we at some point waved
>> the idea of putting every camera subdevice under a "camss: bus@ {}"-type node,
>> which would hold the reference to the TITAN_TOP_GDSC. This seems fitting for
>> housing the SOC_AHB clock as well and therefore concluding this discussion.
>
> How can we continue here? What change can I do to unblock this? I can't
> tell whether soc_ahb == camnoc_axi for this platform so I need some help
> here.
Any feedback on this?
Regards
Luca
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-03-13 10:43 ` Luca Weiss
@ 2026-03-13 16:18 ` Dmitry Baryshkov
2026-03-16 8:03 ` Luca Weiss
0 siblings, 1 reply; 22+ messages in thread
From: Dmitry Baryshkov @ 2026-03-13 16:18 UTC (permalink / raw)
To: Luca Weiss
Cc: Konrad Dybcio, Krzysztof Kozlowski, Bartosz Golaszewski,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Loic Poulain,
Robert Foss, Andi Shyti, Bjorn Andersson, Konrad Dybcio,
~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On Fri, Mar 13, 2026 at 11:43:07AM +0100, Luca Weiss wrote:
> On Fri Feb 13, 2026 at 2:16 PM CET, Luca Weiss wrote:
> > Hi all,
> >
> > On Tue Jan 20, 2026 at 2:18 PM CET, Konrad Dybcio wrote:
> >> On 1/17/26 12:54 PM, Krzysztof Kozlowski wrote:
> >>> On Fri, Jan 16, 2026 at 02:38:56PM +0100, Luca Weiss wrote:
> >>>> Add Milos compatible for the CAMSS CCI interfaces.
> >>>>
> >>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> >>>> ---
> >>>> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
> >>>> 1 file changed, 18 insertions(+)
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> >>>> index a3fe1eea6aec..c57d81258fba 100644
> >>>> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> >>>> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
> >>>> @@ -27,6 +27,7 @@ properties:
> >>>> - items:
> >>>> - enum:
> >>>> - qcom,kaanapali-cci
> >>>> + - qcom,milos-cci
> >>>> - qcom,qcm2290-cci
> >>>> - qcom,sa8775p-cci
> >>>> - qcom,sc7280-cci
> >>>> @@ -263,6 +264,23 @@ allOf:
> >>>> - const: cpas_ahb
> >>>> - const: cci
> >>>>
> >>>> + - if:
> >>>> + properties:
> >>>> + compatible:
> >>>> + contains:
> >>>> + enum:
> >>>> + - qcom,milos-cci
> >>>> + then:
> >>>> + properties:
> >>>> + clocks:
> >>>> + minItems: 3
> >>>> + maxItems: 3
> >>>> + clock-names:
> >>>> + items:
> >>>> + - const: soc_ahb
> >>>> + - const: cpas_ahb
> >>>> + - const: cci
> >>>
> >>> Same comments as other discussion these days - I guess that soc_ahb
> >>> serves the same purpose as camnoc_axi, so this is just last entri in the
> >>> if:then: blocks.
> >>>
> >>> I really find this binding terrible - around six names for AHB - so I do
> >>> not want another combination...
> >>
> >> I dug up the CCI doc, it talks about the CCI having a CC_CCI_CLK clock ("cci"
> >> here) and a CC_PBUS_CLK (AHB interface to the rest of the SoC).
> >>
> >> The CAMSS TOP doc (for Milos specifically, but I would assume there's a
> >> pattern) says that for access to CCI_0, I need to enable CAM_CC_CPAS_AHB_CLK
> >> and CAM_CC_CCI_0_CLK. CPAS is a wrapper inside CAMSS that contains most of
> >> the programmable IPs on there (notably not the CSIPHYs, at least not on this
> >> platform)
> >>
> >> It further mentions that GCC_SOC_AHB_CLK is required for *any* register
> >> access within CAMSS. Perhaps it sits right in front of the xNoC-to-CAMNoC
> >> interface.
> >>
> >> This only enforces my imagination of CAMSS being a fully contained "bus"
> >> (perhaps somewhat like AxNOC on 8996 represented with a simple-pm-bus)..
> >>
> >> +Dmitry, myself and a number of our colleagues were deliberating how to
> >> best represent the hardware going forward and I think we at some point waved
> >> the idea of putting every camera subdevice under a "camss: bus@ {}"-type node,
> >> which would hold the reference to the TITAN_TOP_GDSC. This seems fitting for
> >> housing the SOC_AHB clock as well and therefore concluding this discussion.
> >
> > How can we continue here? What change can I do to unblock this? I can't
> > tell whether soc_ahb == camnoc_axi for this platform so I need some help
> > here.
>
> Any feedback on this?
I went on and checked. No Milos's soc_ahb != camnoc_axi. They serve
different purposes.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-03-13 16:18 ` Dmitry Baryshkov
@ 2026-03-16 8:03 ` Luca Weiss
2026-03-19 16:58 ` Krzysztof Kozlowski
0 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-03-16 8:03 UTC (permalink / raw)
To: Dmitry Baryshkov, Luca Weiss
Cc: Konrad Dybcio, Krzysztof Kozlowski, Bartosz Golaszewski,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Loic Poulain,
Robert Foss, Andi Shyti, Bjorn Andersson, Konrad Dybcio,
~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On Fri Mar 13, 2026 at 5:18 PM CET, Dmitry Baryshkov wrote:
> On Fri, Mar 13, 2026 at 11:43:07AM +0100, Luca Weiss wrote:
>> On Fri Feb 13, 2026 at 2:16 PM CET, Luca Weiss wrote:
>> > Hi all,
>> >
>> > On Tue Jan 20, 2026 at 2:18 PM CET, Konrad Dybcio wrote:
>> >> On 1/17/26 12:54 PM, Krzysztof Kozlowski wrote:
>> >>> On Fri, Jan 16, 2026 at 02:38:56PM +0100, Luca Weiss wrote:
>> >>>> Add Milos compatible for the CAMSS CCI interfaces.
>> >>>>
>> >>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>> >>>> ---
>> >>>> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
>> >>>> 1 file changed, 18 insertions(+)
>> >>>>
>> >>>> diff --git a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>> >>>> index a3fe1eea6aec..c57d81258fba 100644
>> >>>> --- a/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>> >>>> +++ b/Documentation/devicetree/bindings/i2c/qcom,i2c-cci.yaml
>> >>>> @@ -27,6 +27,7 @@ properties:
>> >>>> - items:
>> >>>> - enum:
>> >>>> - qcom,kaanapali-cci
>> >>>> + - qcom,milos-cci
>> >>>> - qcom,qcm2290-cci
>> >>>> - qcom,sa8775p-cci
>> >>>> - qcom,sc7280-cci
>> >>>> @@ -263,6 +264,23 @@ allOf:
>> >>>> - const: cpas_ahb
>> >>>> - const: cci
>> >>>>
>> >>>> + - if:
>> >>>> + properties:
>> >>>> + compatible:
>> >>>> + contains:
>> >>>> + enum:
>> >>>> + - qcom,milos-cci
>> >>>> + then:
>> >>>> + properties:
>> >>>> + clocks:
>> >>>> + minItems: 3
>> >>>> + maxItems: 3
>> >>>> + clock-names:
>> >>>> + items:
>> >>>> + - const: soc_ahb
>> >>>> + - const: cpas_ahb
>> >>>> + - const: cci
>> >>>
>> >>> Same comments as other discussion these days - I guess that soc_ahb
>> >>> serves the same purpose as camnoc_axi, so this is just last entri in the
>> >>> if:then: blocks.
>> >>>
>> >>> I really find this binding terrible - around six names for AHB - so I do
>> >>> not want another combination...
>> >>
>> >> I dug up the CCI doc, it talks about the CCI having a CC_CCI_CLK clock ("cci"
>> >> here) and a CC_PBUS_CLK (AHB interface to the rest of the SoC).
>> >>
>> >> The CAMSS TOP doc (for Milos specifically, but I would assume there's a
>> >> pattern) says that for access to CCI_0, I need to enable CAM_CC_CPAS_AHB_CLK
>> >> and CAM_CC_CCI_0_CLK. CPAS is a wrapper inside CAMSS that contains most of
>> >> the programmable IPs on there (notably not the CSIPHYs, at least not on this
>> >> platform)
>> >>
>> >> It further mentions that GCC_SOC_AHB_CLK is required for *any* register
>> >> access within CAMSS. Perhaps it sits right in front of the xNoC-to-CAMNoC
>> >> interface.
>> >>
>> >> This only enforces my imagination of CAMSS being a fully contained "bus"
>> >> (perhaps somewhat like AxNOC on 8996 represented with a simple-pm-bus)..
>> >>
>> >> +Dmitry, myself and a number of our colleagues were deliberating how to
>> >> best represent the hardware going forward and I think we at some point waved
>> >> the idea of putting every camera subdevice under a "camss: bus@ {}"-type node,
>> >> which would hold the reference to the TITAN_TOP_GDSC. This seems fitting for
>> >> housing the SOC_AHB clock as well and therefore concluding this discussion.
>> >
>> > How can we continue here? What change can I do to unblock this? I can't
>> > tell whether soc_ahb == camnoc_axi for this platform so I need some help
>> > here.
>>
>> Any feedback on this?
>
> I went on and checked. No Milos's soc_ahb != camnoc_axi. They serve
> different purposes.
Thanks Dmitry, appreciate it!
@Krzysztof: Could you take another look at the binding then please?
Regards
Luca
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-03-16 8:03 ` Luca Weiss
@ 2026-03-19 16:58 ` Krzysztof Kozlowski
2026-03-20 7:58 ` Luca Weiss
0 siblings, 1 reply; 22+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-19 16:58 UTC (permalink / raw)
To: Luca Weiss, Dmitry Baryshkov
Cc: Konrad Dybcio, Bartosz Golaszewski, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Loic Poulain, Robert Foss,
Andi Shyti, Bjorn Andersson, Konrad Dybcio,
~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 16/03/2026 09:03, Luca Weiss wrote:
>>
>> I went on and checked. No Milos's soc_ahb != camnoc_axi. They serve
>> different purposes.
>
> Thanks Dmitry, appreciate it!
>
> @Krzysztof: Could you take another look at the binding then please?
It is two months old patch, so for sure you need to resend it, but I
gave my tag now.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-03-19 16:58 ` Krzysztof Kozlowski
@ 2026-03-20 7:58 ` Luca Weiss
0 siblings, 0 replies; 22+ messages in thread
From: Luca Weiss @ 2026-03-20 7:58 UTC (permalink / raw)
To: Krzysztof Kozlowski, Luca Weiss, Dmitry Baryshkov
Cc: Konrad Dybcio, Bartosz Golaszewski, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Loic Poulain, Robert Foss,
Andi Shyti, Bjorn Andersson, Konrad Dybcio,
~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On Thu Mar 19, 2026 at 5:58 PM CET, Krzysztof Kozlowski wrote:
> On 16/03/2026 09:03, Luca Weiss wrote:
>>>
>>> I went on and checked. No Milos's soc_ahb != camnoc_axi. They serve
>>> different purposes.
>>
>> Thanks Dmitry, appreciate it!
>>
>> @Krzysztof: Could you take another look at the binding then please?
>
> It is two months old patch, so for sure you need to resend it, but I
> gave my tag now.
Your concern was addressed in a reply in this thread, so I thought I'd
ask for your R-b here, instead of sending another revision where you may
not feel like your concerns have been addressed.
Neither option feels perfect.
Regards
Luca
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible
2026-01-16 13:38 ` [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible Luca Weiss
2026-01-17 11:54 ` Krzysztof Kozlowski
@ 2026-03-19 16:57 ` Krzysztof Kozlowski
1 sibling, 0 replies; 22+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-19 16:57 UTC (permalink / raw)
To: Luca Weiss, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 16/01/2026 14:38, Luca Weiss wrote:
> Add Milos compatible for the CAMSS CCI interfaces.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> .../devicetree/bindings/i2c/qcom,i2c-cci.yaml | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: milos: Add CCI busses
2026-01-16 13:38 [PATCH 0/4] Add CCI support for Milos, enable on Fairphone (Gen. 6) Luca Weiss
2026-01-16 13:38 ` [PATCH 1/4] dt-bindings: eeprom: at24: Add compatible for Puya P24C128F Luca Weiss
2026-01-16 13:38 ` [PATCH 2/4] dt-bindings: i2c: qcom-cci: Document Milos compatible Luca Weiss
@ 2026-01-16 13:38 ` Luca Weiss
2026-01-20 10:59 ` Konrad Dybcio
2026-01-16 13:38 ` [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on " Luca Weiss
3 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-01-16 13:38 UTC (permalink / raw)
To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm, Luca Weiss
Add the nodes and the pinctrl for the CCI I2C busses on the Milos SoC.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/milos.dtsi | 194 ++++++++++++++++++++++++++++++++++++
1 file changed, 194 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom/milos.dtsi
index 58b4c2966df1..c8771beffa9b 100644
--- a/arch/arm64/boot/dts/qcom/milos.dtsi
+++ b/arch/arm64/boot/dts/qcom/milos.dtsi
@@ -1652,6 +1652,72 @@ videocc: clock-controller@aaf0000 {
#power-domain-cells = <1>;
};
+ cci0: cci@ac15000 {
+ compatible = "qcom,milos-cci", "qcom,msm8996-cci";
+ reg = <0x0 0x0ac15000 0x0 0x1000>;
+ interrupts = <GIC_SPI 426 IRQ_TYPE_EDGE_RISING 0>;
+ power-domains = <&camcc CAM_CC_CAMSS_TOP_GDSC>;
+ clocks = <&camcc CAM_CC_SOC_AHB_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_0_CLK>;
+ clock-names = "soc_ahb",
+ "cpas_ahb",
+ "cci";
+ pinctrl-0 = <&cci0_0_default &cci0_1_default>;
+ pinctrl-1 = <&cci0_0_sleep &cci0_1_sleep>;
+ pinctrl-names = "default", "sleep";
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cci0_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci0_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ cci1: cci@ac16000 {
+ compatible = "qcom,milos-cci", "qcom,msm8996-cci";
+ reg = <0x0 0x0ac16000 0x0 0x1000>;
+ interrupts = <GIC_SPI 427 IRQ_TYPE_EDGE_RISING 0>;
+ power-domains = <&camcc CAM_CC_CAMSS_TOP_GDSC>;
+ clocks = <&camcc CAM_CC_SOC_AHB_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_CCI_1_CLK>;
+ clock-names = "soc_ahb",
+ "cpas_ahb",
+ "cci";
+ pinctrl-0 = <&cci1_0_default &cci1_1_default>;
+ pinctrl-1 = <&cci1_0_sleep &cci1_1_sleep>;
+ pinctrl-names = "default", "sleep";
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cci1_i2c0: i2c-bus@0 {
+ reg = <0>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+
+ cci1_i2c1: i2c-bus@1 {
+ reg = <1>;
+ clock-frequency = <1000000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
camcc: clock-controller@adb0000 {
compatible = "qcom,milos-camcc";
reg = <0x0 0x0adb0000 0x0 0x40000>;
@@ -1791,6 +1857,134 @@ tlmm: pinctrl@f100000 {
wakeup-parent = <&pdc>;
+ cci0_0_default: cci0-0-default-state {
+ sda-pins {
+ pins = "gpio88";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio89";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci0_0_sleep: cci0-0-sleep-state {
+ sda-pins {
+ pins = "gpio88";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio89";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci0_1_default: cci0-1-default-state {
+ sda-pins {
+ pins = "gpio90";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio91";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci0_1_sleep: cci0-1-sleep-state {
+ sda-pins {
+ pins = "gpio90";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio91";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci1_0_default: cci1-0-default-state {
+ sda-pins {
+ pins = "gpio92";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio93";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci1_0_sleep: cci1-0-sleep-state {
+ sda-pins {
+ pins = "gpio92";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio93";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
+ cci1_1_default: cci1-1-default-state {
+ sda-pins {
+ pins = "gpio94";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+
+ scl-pins {
+ pins = "gpio95";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-up = <2200>;
+ };
+ };
+
+ cci1_1_sleep: cci1-1-sleep-state {
+ sda-pins {
+ pins = "gpio94";
+ function = "cci_i2c_sda";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ scl-pins {
+ pins = "gpio95";
+ function = "cci_i2c_scl";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
qup_i2c1_data_clk: qup-i2c1-data-clk-state {
/* SDA, SCL */
pins = "gpio4", "gpio5";
--
2.52.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 3/4] arm64: dts: qcom: milos: Add CCI busses
2026-01-16 13:38 ` [PATCH 3/4] arm64: dts: qcom: milos: Add CCI busses Luca Weiss
@ 2026-01-20 10:59 ` Konrad Dybcio
0 siblings, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-01-20 10:59 UTC (permalink / raw)
To: Luca Weiss, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 1/16/26 2:38 PM, Luca Weiss wrote:
> Add the nodes and the pinctrl for the CCI I2C busses on the Milos SoC.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> arch/arm64/boot/dts/qcom/milos.dtsi | 194 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 194 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom/milos.dtsi
> index 58b4c2966df1..c8771beffa9b 100644
> --- a/arch/arm64/boot/dts/qcom/milos.dtsi
> +++ b/arch/arm64/boot/dts/qcom/milos.dtsi
> @@ -1652,6 +1652,72 @@ videocc: clock-controller@aaf0000 {
> #power-domain-cells = <1>;
> };
>
> + cci0: cci@ac15000 {
> + compatible = "qcom,milos-cci", "qcom,msm8996-cci";
> + reg = <0x0 0x0ac15000 0x0 0x1000>;
> + interrupts = <GIC_SPI 426 IRQ_TYPE_EDGE_RISING 0>;
> + power-domains = <&camcc CAM_CC_CAMSS_TOP_GDSC>;
> + clocks = <&camcc CAM_CC_SOC_AHB_CLK>,
> + <&camcc CAM_CC_CPAS_AHB_CLK>,
> + <&camcc CAM_CC_CCI_0_CLK>;
> + clock-names = "soc_ahb",
> + "cpas_ahb",
> + "cci";
> + pinctrl-0 = <&cci0_0_default &cci0_1_default>;
> + pinctrl-1 = <&cci0_0_sleep &cci0_1_sleep>;
> + pinctrl-names = "default", "sleep";
> + status = "disabled";
With the pins moving to the child nodes, we may as well move the
disablement there, peeking at the code, I think it should handle it
well
[...]
> camcc: clock-controller@adb0000 {
> compatible = "qcom,milos-camcc";
> reg = <0x0 0x0adb0000 0x0 0x40000>;
> @@ -1791,6 +1857,134 @@ tlmm: pinctrl@f100000 {
>
> wakeup-parent = <&pdc>;
>
> + cci0_0_default: cci0-0-default-state {
> + sda-pins {
> + pins = "gpio88";
> + function = "cci_i2c_sda";
> + drive-strength = <2>;
> + bias-pull-up = <2200>;
> + };
It would be fantastic if the GPIOs remained sorted by the GPIO num
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on CCI busses
2026-01-16 13:38 [PATCH 0/4] Add CCI support for Milos, enable on Fairphone (Gen. 6) Luca Weiss
` (2 preceding siblings ...)
2026-01-16 13:38 ` [PATCH 3/4] arm64: dts: qcom: milos: Add CCI busses Luca Weiss
@ 2026-01-16 13:38 ` Luca Weiss
2026-01-16 13:59 ` Konrad Dybcio
3 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-01-16 13:38 UTC (permalink / raw)
To: Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm, Luca Weiss
Enable the CCI I2C busses and add nodes for the EEPROMs found on the
camera that are connected there.
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 50 ++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
index 7629ceddde2a..c4a706e945ba 100644
--- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
+++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
@@ -529,6 +529,56 @@ vreg_l11f: ldo11 {
};
};
+&cci0 {
+ status = "okay";
+};
+
+&cci0_i2c0 {
+ /* Main cam: Sony IMX896 @ 0x1a */
+
+ eeprom@50 {
+ compatible = "puya,p24c128f", "atmel,24c128";
+ reg = <0x50>;
+ vcc-supply = <&vreg_l6p>;
+ read-only;
+ };
+
+ /* Dongwoon DW9784 VCM/OIS @ 0x72 */
+};
+
+
+&cci0_i2c1 {
+ /* Awinic AW86017 VCM @ 0x0c */
+ /* UW cam: OmniVision OV13B10 @ 0x36 */
+
+ eeprom@52 {
+ compatible = "puya,p24c128f", "atmel,24c128";
+ reg = <0x52>;
+ vcc-supply = <&vreg_l6p>;
+ read-only;
+ };
+};
+
+&cci1 {
+ /* cci1_i2c0 is not used for CCI */
+ pinctrl-0 = <&cci1_1_default>;
+ pinctrl-1 = <&cci1_1_sleep>;
+
+ status = "okay";
+};
+
+&cci1_i2c1 {
+ /* Awinic AW86016 VCM @ 0x0c */
+ /* Front cam: Samsung S5KKD1 @ 0x3d */
+
+ eeprom@51 {
+ compatible = "puya,p24c128f", "atmel,24c128";
+ reg = <0x51>;
+ vcc-supply = <&vreg_l6p>;
+ read-only;
+ };
+};
+
&gcc {
protected-clocks = <GCC_PCIE_1_AUX_CLK>, <GCC_PCIE_1_AUX_CLK_SRC>,
<GCC_PCIE_1_CFG_AHB_CLK>, <GCC_PCIE_1_MSTR_AXI_CLK>,
--
2.52.0
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on CCI busses
2026-01-16 13:38 ` [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on " Luca Weiss
@ 2026-01-16 13:59 ` Konrad Dybcio
2026-01-16 14:54 ` Luca Weiss
0 siblings, 1 reply; 22+ messages in thread
From: Konrad Dybcio @ 2026-01-16 13:59 UTC (permalink / raw)
To: Luca Weiss, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 1/16/26 2:38 PM, Luca Weiss wrote:
> Enable the CCI I2C busses and add nodes for the EEPROMs found on the
> camera that are connected there.
>
> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
> ---
> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 50 ++++++++++++++++++++++++
> 1 file changed, 50 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> index 7629ceddde2a..c4a706e945ba 100644
> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
> @@ -529,6 +529,56 @@ vreg_l11f: ldo11 {
> };
> };
>
> +&cci0 {
> + status = "okay";
> +};
> +
> +&cci0_i2c0 {
> + /* Main cam: Sony IMX896 @ 0x1a */
> +
> + eeprom@50 {
> + compatible = "puya,p24c128f", "atmel,24c128";
> + reg = <0x50>;
> + vcc-supply = <&vreg_l6p>;
> + read-only;
> + };
> +
> + /* Dongwoon DW9784 VCM/OIS @ 0x72 */
> +};
> +
> +
> +&cci0_i2c1 {
> + /* Awinic AW86017 VCM @ 0x0c */
> + /* UW cam: OmniVision OV13B10 @ 0x36 */
There's a driver for this one!
> +
> + eeprom@52 {
> + compatible = "puya,p24c128f", "atmel,24c128";
> + reg = <0x52>;
> + vcc-supply = <&vreg_l6p>;
> + read-only;
> + };
> +};
> +
> +&cci1 {
> + /* cci1_i2c0 is not used for CCI */
> + pinctrl-0 = <&cci1_1_default>;
> + pinctrl-1 = <&cci1_1_sleep>;
Let's keep them per-bus-subnode so we don't have to override it
otherwise
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on CCI busses
2026-01-16 13:59 ` Konrad Dybcio
@ 2026-01-16 14:54 ` Luca Weiss
2026-01-19 10:42 ` Konrad Dybcio
0 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-01-16 14:54 UTC (permalink / raw)
To: Konrad Dybcio, Luca Weiss, Bartosz Golaszewski, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Loic Poulain, Robert Foss,
Andi Shyti, Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On Fri Jan 16, 2026 at 2:59 PM CET, Konrad Dybcio wrote:
> On 1/16/26 2:38 PM, Luca Weiss wrote:
>> Enable the CCI I2C busses and add nodes for the EEPROMs found on the
>> camera that are connected there.
>>
>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>> ---
>> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 50 ++++++++++++++++++++++++
>> 1 file changed, 50 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> index 7629ceddde2a..c4a706e945ba 100644
>> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>> @@ -529,6 +529,56 @@ vreg_l11f: ldo11 {
>> };
>> };
>>
>> +&cci0 {
>> + status = "okay";
>> +};
>> +
>> +&cci0_i2c0 {
>> + /* Main cam: Sony IMX896 @ 0x1a */
>> +
>> + eeprom@50 {
>> + compatible = "puya,p24c128f", "atmel,24c128";
>> + reg = <0x50>;
>> + vcc-supply = <&vreg_l6p>;
>> + read-only;
>> + };
>> +
>> + /* Dongwoon DW9784 VCM/OIS @ 0x72 */
>> +};
>> +
>> +
>> +&cci0_i2c1 {
>> + /* Awinic AW86017 VCM @ 0x0c */
>> + /* UW cam: OmniVision OV13B10 @ 0x36 */
>
> There's a driver for this one!
Yep! Already got patches to add the required regulators & devicetree
support to the driver, but since I've got zero on CAMSS so far, I
couldn't test it more than reading chip ID.
>
>> +
>> + eeprom@52 {
>> + compatible = "puya,p24c128f", "atmel,24c128";
>> + reg = <0x52>;
>> + vcc-supply = <&vreg_l6p>;
>> + read-only;
>> + };
>> +};
>> +
>> +&cci1 {
>> + /* cci1_i2c0 is not used for CCI */
>> + pinctrl-0 = <&cci1_1_default>;
>> + pinctrl-1 = <&cci1_1_sleep>;
>
> Let's keep them per-bus-subnode so we don't have to override it
I don't see any upstream example of that, would the pinctrl work
correctly with that?
While this isn't necessarily pretty like that, it does work :)
>
> otherwise
>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Thanks!
Regards
Luca
>
> Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on CCI busses
2026-01-16 14:54 ` Luca Weiss
@ 2026-01-19 10:42 ` Konrad Dybcio
2026-02-13 13:39 ` Luca Weiss
0 siblings, 1 reply; 22+ messages in thread
From: Konrad Dybcio @ 2026-01-19 10:42 UTC (permalink / raw)
To: Luca Weiss, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 1/16/26 3:54 PM, Luca Weiss wrote:
> On Fri Jan 16, 2026 at 2:59 PM CET, Konrad Dybcio wrote:
>> On 1/16/26 2:38 PM, Luca Weiss wrote:
>>> Enable the CCI I2C busses and add nodes for the EEPROMs found on the
>>> camera that are connected there.
>>>
>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>> ---
>>> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 50 ++++++++++++++++++++++++
>>> 1 file changed, 50 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>> index 7629ceddde2a..c4a706e945ba 100644
>>> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>> @@ -529,6 +529,56 @@ vreg_l11f: ldo11 {
>>> };
>>> };
>>>
>>> +&cci0 {
>>> + status = "okay";
>>> +};
>>> +
>>> +&cci0_i2c0 {
>>> + /* Main cam: Sony IMX896 @ 0x1a */
>>> +
>>> + eeprom@50 {
>>> + compatible = "puya,p24c128f", "atmel,24c128";
>>> + reg = <0x50>;
>>> + vcc-supply = <&vreg_l6p>;
>>> + read-only;
>>> + };
>>> +
>>> + /* Dongwoon DW9784 VCM/OIS @ 0x72 */
>>> +};
>>> +
>>> +
>>> +&cci0_i2c1 {
>>> + /* Awinic AW86017 VCM @ 0x0c */
>>> + /* UW cam: OmniVision OV13B10 @ 0x36 */
>>
>> There's a driver for this one!
>
> Yep! Already got patches to add the required regulators & devicetree
> support to the driver, but since I've got zero on CAMSS so far, I
> couldn't test it more than reading chip ID.
That means the digital part works.. I'd say it's a good enough
indicator
>>> +
>>> + eeprom@52 {
>>> + compatible = "puya,p24c128f", "atmel,24c128";
>>> + reg = <0x52>;
>>> + vcc-supply = <&vreg_l6p>;
>>> + read-only;
>>> + };
>>> +};
>>> +
>>> +&cci1 {
>>> + /* cci1_i2c0 is not used for CCI */
>>> + pinctrl-0 = <&cci1_1_default>;
>>> + pinctrl-1 = <&cci1_1_sleep>;
>>
>> Let's keep them per-bus-subnode so we don't have to override it
>
> I don't see any upstream example of that, would the pinctrl work
> correctly with that?
Hmm.. I assumed it would.. and I assumed we do have examples but
ma-a-aybe they got stuck somewhere in the review purgatory?
If you'd be inclined to test that, you can add a pr_err() to e.g.
msm_pinmux_set_mux() and observe whether that changes as you
interact with the sensor over i2c
> While this isn't necessarily pretty like that, it does work :)
It's the right thing from the hw description standpoint.. we have
a huuuge amount of peripherals that fight for the same sets of pins
(which is part of the reason why you can't turn on all 30-some QUPs
by default, and depending on the function+QUPindex combo the pin
requirements differ)
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on CCI busses
2026-01-19 10:42 ` Konrad Dybcio
@ 2026-02-13 13:39 ` Luca Weiss
2026-02-17 12:42 ` Konrad Dybcio
0 siblings, 1 reply; 22+ messages in thread
From: Luca Weiss @ 2026-02-13 13:39 UTC (permalink / raw)
To: Konrad Dybcio, Luca Weiss, Bartosz Golaszewski, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Loic Poulain, Robert Foss,
Andi Shyti, Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On Mon Jan 19, 2026 at 11:42 AM CET, Konrad Dybcio wrote:
> On 1/16/26 3:54 PM, Luca Weiss wrote:
>> On Fri Jan 16, 2026 at 2:59 PM CET, Konrad Dybcio wrote:
>>> On 1/16/26 2:38 PM, Luca Weiss wrote:
>>>> Enable the CCI I2C busses and add nodes for the EEPROMs found on the
>>>> camera that are connected there.
>>>>
>>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 50 ++++++++++++++++++++++++
>>>> 1 file changed, 50 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>>> index 7629ceddde2a..c4a706e945ba 100644
>>>> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>>> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>>> @@ -529,6 +529,56 @@ vreg_l11f: ldo11 {
>>>> };
>>>> };
>>>>
>>>> +&cci0 {
>>>> + status = "okay";
>>>> +};
>>>> +
>>>> +&cci0_i2c0 {
>>>> + /* Main cam: Sony IMX896 @ 0x1a */
>>>> +
>>>> + eeprom@50 {
>>>> + compatible = "puya,p24c128f", "atmel,24c128";
>>>> + reg = <0x50>;
>>>> + vcc-supply = <&vreg_l6p>;
>>>> + read-only;
>>>> + };
>>>> +
>>>> + /* Dongwoon DW9784 VCM/OIS @ 0x72 */
>>>> +};
>>>> +
>>>> +
>>>> +&cci0_i2c1 {
>>>> + /* Awinic AW86017 VCM @ 0x0c */
>>>> + /* UW cam: OmniVision OV13B10 @ 0x36 */
>>>
>>> There's a driver for this one!
>>
>> Yep! Already got patches to add the required regulators & devicetree
>> support to the driver, but since I've got zero on CAMSS so far, I
>> couldn't test it more than reading chip ID.
>
> That means the digital part works.. I'd say it's a good enough
> indicator
>
>>>> +
>>>> + eeprom@52 {
>>>> + compatible = "puya,p24c128f", "atmel,24c128";
>>>> + reg = <0x52>;
>>>> + vcc-supply = <&vreg_l6p>;
>>>> + read-only;
>>>> + };
>>>> +};
>>>> +
>>>> +&cci1 {
>>>> + /* cci1_i2c0 is not used for CCI */
>>>> + pinctrl-0 = <&cci1_1_default>;
>>>> + pinctrl-1 = <&cci1_1_sleep>;
>>>
>>> Let's keep them per-bus-subnode so we don't have to override it
>>
>> I don't see any upstream example of that, would the pinctrl work
>> correctly with that?
>
> Hmm.. I assumed it would.. and I assumed we do have examples but
> ma-a-aybe they got stuck somewhere in the review purgatory?
>
> If you'd be inclined to test that, you can add a pr_err() to e.g.
> msm_pinmux_set_mux() and observe whether that changes as you
> interact with the sensor over i2c
Yeah that doesn't work. With the following diff I just get some CCI
timeouts and at24 driver doesn't probe correctly. I'd prefer not to do
some yak shaving to get this patch upstream.
Regards
Luca
diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
index b6cd95fc294e..9f9410615aea 100644
--- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
+++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
@@ -671,10 +671,6 @@ eeprom@52 {
};
&cci1 {
- /* cci1_i2c0 is not used for CCI */
- pinctrl-0 = <&cci1_1_default>;
- pinctrl-1 = <&cci1_1_sleep>;
-
status = "okay";
};
diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom/milos.dtsi
index adf050600a4e..a2438cf60271 100644
--- a/arch/arm64/boot/dts/qcom/milos.dtsi
+++ b/arch/arm64/boot/dts/qcom/milos.dtsi
@@ -1755,9 +1755,6 @@ cci0: cci@ac15000 {
clock-names = "soc_ahb",
"cpas_ahb",
"cci";
- pinctrl-0 = <&cci0_0_default &cci0_1_default>;
- pinctrl-1 = <&cci0_0_sleep &cci0_1_sleep>;
- pinctrl-names = "default", "sleep";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
@@ -1765,6 +1762,9 @@ cci0: cci@ac15000 {
cci0_i2c0: i2c-bus@0 {
reg = <0>;
clock-frequency = <1000000>;
+ pinctrl-0 = <&cci0_0_default>;
+ pinctrl-1 = <&cci0_0_sleep>;
+ pinctrl-names = "default", "sleep";
#address-cells = <1>;
#size-cells = <0>;
};
@@ -1772,6 +1772,9 @@ cci0_i2c0: i2c-bus@0 {
cci0_i2c1: i2c-bus@1 {
reg = <1>;
clock-frequency = <1000000>;
+ pinctrl-0 = <&cci0_1_default>;
+ pinctrl-1 = <&cci0_1_sleep>;
+ pinctrl-names = "default", "sleep";
#address-cells = <1>;
#size-cells = <0>;
};
@@ -1788,9 +1791,6 @@ cci1: cci@ac16000 {
clock-names = "soc_ahb",
"cpas_ahb",
"cci";
- pinctrl-0 = <&cci1_0_default &cci1_1_default>;
- pinctrl-1 = <&cci1_0_sleep &cci1_1_sleep>;
- pinctrl-names = "default", "sleep";
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
@@ -1798,6 +1798,9 @@ cci1: cci@ac16000 {
cci1_i2c0: i2c-bus@0 {
reg = <0>;
clock-frequency = <1000000>;
+ pinctrl-0 = <&cci1_0_default>;
+ pinctrl-1 = <&cci1_0_sleep>;
+ pinctrl-names = "default", "sleep";
#address-cells = <1>;
#size-cells = <0>;
};
@@ -1805,6 +1808,9 @@ cci1_i2c0: i2c-bus@0 {
cci1_i2c1: i2c-bus@1 {
reg = <1>;
clock-frequency = <1000000>;
+ pinctrl-0 = <&cci1_1_default>;
+ pinctrl-1 = <&cci1_1_sleep>;
+ pinctrl-names = "default", "sleep";
#address-cells = <1>;
#size-cells = <0>;
};
^ permalink raw reply related [flat|nested] 22+ messages in thread* Re: [PATCH 4/4] arm64: dts: qcom: milos-fairphone-fp6: Add camera EEPROMs on CCI busses
2026-02-13 13:39 ` Luca Weiss
@ 2026-02-17 12:42 ` Konrad Dybcio
0 siblings, 0 replies; 22+ messages in thread
From: Konrad Dybcio @ 2026-02-17 12:42 UTC (permalink / raw)
To: Luca Weiss, Bartosz Golaszewski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Loic Poulain, Robert Foss, Andi Shyti,
Bjorn Andersson, Konrad Dybcio
Cc: ~postmarketos/upstreaming, phone-devel, linux-i2c, devicetree,
linux-kernel, linux-arm-msm
On 2/13/26 2:39 PM, Luca Weiss wrote:
> On Mon Jan 19, 2026 at 11:42 AM CET, Konrad Dybcio wrote:
>> On 1/16/26 3:54 PM, Luca Weiss wrote:
>>> On Fri Jan 16, 2026 at 2:59 PM CET, Konrad Dybcio wrote:
>>>> On 1/16/26 2:38 PM, Luca Weiss wrote:
>>>>> Enable the CCI I2C busses and add nodes for the EEPROMs found on the
>>>>> camera that are connected there.
>>>>>
>>>>> Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
>>>>> ---
>>>>> arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts | 50 ++++++++++++++++++++++++
>>>>> 1 file changed, 50 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>>>> index 7629ceddde2a..c4a706e945ba 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>>>> +++ b/arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts
>>>>> @@ -529,6 +529,56 @@ vreg_l11f: ldo11 {
>>>>> };
>>>>> };
>>>>>
>>>>> +&cci0 {
>>>>> + status = "okay";
>>>>> +};
>>>>> +
>>>>> +&cci0_i2c0 {
>>>>> + /* Main cam: Sony IMX896 @ 0x1a */
>>>>> +
>>>>> + eeprom@50 {
>>>>> + compatible = "puya,p24c128f", "atmel,24c128";
>>>>> + reg = <0x50>;
>>>>> + vcc-supply = <&vreg_l6p>;
>>>>> + read-only;
>>>>> + };
>>>>> +
>>>>> + /* Dongwoon DW9784 VCM/OIS @ 0x72 */
>>>>> +};
>>>>> +
>>>>> +
>>>>> +&cci0_i2c1 {
>>>>> + /* Awinic AW86017 VCM @ 0x0c */
>>>>> + /* UW cam: OmniVision OV13B10 @ 0x36 */
>>>>
>>>> There's a driver for this one!
>>>
>>> Yep! Already got patches to add the required regulators & devicetree
>>> support to the driver, but since I've got zero on CAMSS so far, I
>>> couldn't test it more than reading chip ID.
>>
>> That means the digital part works.. I'd say it's a good enough
>> indicator
>>
>>>>> +
>>>>> + eeprom@52 {
>>>>> + compatible = "puya,p24c128f", "atmel,24c128";
>>>>> + reg = <0x52>;
>>>>> + vcc-supply = <&vreg_l6p>;
>>>>> + read-only;
>>>>> + };
>>>>> +};
>>>>> +
>>>>> +&cci1 {
>>>>> + /* cci1_i2c0 is not used for CCI */
>>>>> + pinctrl-0 = <&cci1_1_default>;
>>>>> + pinctrl-1 = <&cci1_1_sleep>;
>>>>
>>>> Let's keep them per-bus-subnode so we don't have to override it
>>>
>>> I don't see any upstream example of that, would the pinctrl work
>>> correctly with that?
>>
>> Hmm.. I assumed it would.. and I assumed we do have examples but
>> ma-a-aybe they got stuck somewhere in the review purgatory?
>>
>> If you'd be inclined to test that, you can add a pr_err() to e.g.
>> msm_pinmux_set_mux() and observe whether that changes as you
>> interact with the sensor over i2c
>
> Yeah that doesn't work. With the following diff I just get some CCI
> timeouts and at24 driver doesn't probe correctly. I'd prefer not to do
> some yak shaving to get this patch upstream.
I think the setting happens somewhere near
drivers/base/dd.c : really_probe() : pinctrl_bind_pins()
which implies there would be a driver in play, which there isn't for the
CCI subnodes.. But let's kick that can down the road
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 22+ messages in thread