diff mbox series

[2/5] arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: fix ov7251 lane properties

Message ID 20241204-topic-misc-dt-fixes-v1-2-6d320b6454e6@linaro.org (mailing list archive)
State Superseded
Headers show
Series arm64: dts: qcom: misc DT bindings check fixes | expand

Commit Message

Neil Armstrong Dec. 4, 2024, 10:56 a.m. UTC
Bindings documents data-lanes as a single entry with a separate
clock-lanes property, but DT uses 2 entries in data-lanes.

This would suggest clock-lanes is missing, fix the DT using the
bindings example.

This fixes:
sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
	from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
 arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Dmitry Baryshkov Dec. 4, 2024, 11:05 a.m. UTC | #1
On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
> Bindings documents data-lanes as a single entry with a separate
> clock-lanes property, but DT uses 2 entries in data-lanes.
> 
> This would suggest clock-lanes is missing, fix the DT using the
> bindings example.
> 
> This fixes:
> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
> 	from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
> 
> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
> @@ -115,7 +115,8 @@ camera@60 {
>  
>  		port {
>  			ov7251_ep: endpoint {
> -				data-lanes = <0 1>;
> +				clock-lanes = <1>;
> +				data-lanes = <0>;

Is it really this way or the other way around, clock = <0>, data = <1>?

>  /*				remote-endpoint = <&csiphy3_ep>; */
>  			};
>  		};
> 
> -- 
> 2.34.1
>
Neil Armstrong Dec. 4, 2024, 12:16 p.m. UTC | #2
On 04/12/2024 12:05, Dmitry Baryshkov wrote:
> On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
>> Bindings documents data-lanes as a single entry with a separate
>> clock-lanes property, but DT uses 2 entries in data-lanes.
>>
>> This would suggest clock-lanes is missing, fix the DT using the
>> bindings example.
>>
>> This fixes:
>> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
>> 	from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
>>
>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>> ---
>>   arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>> @@ -115,7 +115,8 @@ camera@60 {
>>   
>>   		port {
>>   			ov7251_ep: endpoint {
>> -				data-lanes = <0 1>;
>> +				clock-lanes = <1>;
>> +				data-lanes = <0>;
> 
> Is it really this way or the other way around, clock = <0>, data = <1>?

No idea actually, on the schematics the lanes from the DB845 are :

CSI0_P/N -> OV7251_CSI3_LANE0_P/N -> MIPI_CSI3_LANE0_P -> SoC
and
CLKP/N -> OV7251_CSI3_CLK_P/N -> MIPI_CSI3_CLK_P/N -> SoC

So I assume the data-lane is 0, for clock-lane I just used
the example, but I found nothing in the code using those assignments

Neil

> 
>>   /*				remote-endpoint = <&csiphy3_ep>; */
>>   			};
>>   		};
>>
>> -- 
>> 2.34.1
>>
>
Vladimir Zapolskiy Dec. 4, 2024, 1:10 p.m. UTC | #3
On 12/4/24 14:16, Neil Armstrong wrote:
> On 04/12/2024 12:05, Dmitry Baryshkov wrote:
>> On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
>>> Bindings documents data-lanes as a single entry with a separate
>>> clock-lanes property, but DT uses 2 entries in data-lanes.
>>>
>>> This would suggest clock-lanes is missing, fix the DT using the
>>> bindings example.
>>>
>>> This fixes:
>>> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
>>> 	from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
>>>
>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>> ---
>>>    arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
>>> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>> @@ -115,7 +115,8 @@ camera@60 {
>>>    
>>>    		port {
>>>    			ov7251_ep: endpoint {
>>> -				data-lanes = <0 1>;
>>> +				clock-lanes = <1>;
>>> +				data-lanes = <0>;
>>
>> Is it really this way or the other way around, clock = <0>, data = <1>?
> 
> No idea actually, on the schematics the lanes from the DB845 are :
> 
> CSI0_P/N -> OV7251_CSI3_LANE0_P/N -> MIPI_CSI3_LANE0_P -> SoC
> and
> CLKP/N -> OV7251_CSI3_CLK_P/N -> MIPI_CSI3_CLK_P/N -> SoC
> 
> So I assume the data-lane is 0, for clock-lane I just used
> the example, but I found nothing in the code using those assignments
> 

It's a sensor property, and OV7251 sensor has the non-selectable clock lane.

If it's technically acceptable, I would rather suggest to deprecate and
remove "clock-lanes" property and hard-code "data-lanes" value to <1>.

By the way, this particular device tree bindings miss bus-type property,
it could be either MIPI or LVDS serial output.

--
Best wishes,
Vladimir
Neil Armstrong Dec. 4, 2024, 1:16 p.m. UTC | #4
On 04/12/2024 14:10, Vladimir Zapolskiy wrote:
> On 12/4/24 14:16, Neil Armstrong wrote:
>> On 04/12/2024 12:05, Dmitry Baryshkov wrote:
>>> On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
>>>> Bindings documents data-lanes as a single entry with a separate
>>>> clock-lanes property, but DT uses 2 entries in data-lanes.
>>>>
>>>> This would suggest clock-lanes is missing, fix the DT using the
>>>> bindings example.
>>>>
>>>> This fixes:
>>>> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
>>>>     from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
>>>>
>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>> ---
>>>>    arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>>>>    1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>> @@ -115,7 +115,8 @@ camera@60 {
>>>>            port {
>>>>                ov7251_ep: endpoint {
>>>> -                data-lanes = <0 1>;
>>>> +                clock-lanes = <1>;
>>>> +                data-lanes = <0>;
>>>
>>> Is it really this way or the other way around, clock = <0>, data = <1>?
>>
>> No idea actually, on the schematics the lanes from the DB845 are :
>>
>> CSI0_P/N -> OV7251_CSI3_LANE0_P/N -> MIPI_CSI3_LANE0_P -> SoC
>> and
>> CLKP/N -> OV7251_CSI3_CLK_P/N -> MIPI_CSI3_CLK_P/N -> SoC
>>
>> So I assume the data-lane is 0, for clock-lane I just used
>> the example, but I found nothing in the code using those assignments
>>
> 
> It's a sensor property, and OV7251 sensor has the non-selectable clock lane.
> 
> If it's technically acceptable, I would rather suggest to deprecate and
> remove "clock-lanes" property and hard-code "data-lanes" value to <1>.


Ok indeed while looking at the OV7251 sensor datasheet, there's a single
fixed data lane and a single fixed clock lane, so on the sensor side we
can't select anything but how would we define lane0 is used on the SoC side ?

> 
> By the way, this particular device tree bindings miss bus-type property,
> it could be either MIPI or LVDS serial output.
> 
> -- 
> Best wishes,
> Vladimir
Vladimir Zapolskiy Dec. 4, 2024, 1:30 p.m. UTC | #5
On 12/4/24 15:16, neil.armstrong@linaro.org wrote:
> On 04/12/2024 14:10, Vladimir Zapolskiy wrote:
>> On 12/4/24 14:16, Neil Armstrong wrote:
>>> On 04/12/2024 12:05, Dmitry Baryshkov wrote:
>>>> On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
>>>>> Bindings documents data-lanes as a single entry with a separate
>>>>> clock-lanes property, but DT uses 2 entries in data-lanes.
>>>>>
>>>>> This would suggest clock-lanes is missing, fix the DT using the
>>>>> bindings example.
>>>>>
>>>>> This fixes:
>>>>> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
>>>>>      from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
>>>>>
>>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>>> ---
>>>>>     arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>>>>>     1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>> @@ -115,7 +115,8 @@ camera@60 {
>>>>>             port {
>>>>>                 ov7251_ep: endpoint {
>>>>> -                data-lanes = <0 1>;
>>>>> +                clock-lanes = <1>;
>>>>> +                data-lanes = <0>;
>>>>
>>>> Is it really this way or the other way around, clock = <0>, data = <1>?
>>>
>>> No idea actually, on the schematics the lanes from the DB845 are :
>>>
>>> CSI0_P/N -> OV7251_CSI3_LANE0_P/N -> MIPI_CSI3_LANE0_P -> SoC
>>> and
>>> CLKP/N -> OV7251_CSI3_CLK_P/N -> MIPI_CSI3_CLK_P/N -> SoC
>>>
>>> So I assume the data-lane is 0, for clock-lane I just used
>>> the example, but I found nothing in the code using those assignments
>>>
>>
>> It's a sensor property, and OV7251 sensor has the non-selectable clock lane.
>>
>> If it's technically acceptable, I would rather suggest to deprecate and
>> remove "clock-lanes" property and hard-code "data-lanes" value to <1>.
> 
> 
> Ok indeed while looking at the OV7251 sensor datasheet, there's a single
> fixed data lane and a single fixed clock lane, so on the sensor side we
> can't select anything but how would we define lane0 is used on the SoC side ?

It's done right in the common way, there are clock-lanes and data-lanes
properties on the ISP endpoint side.

>>
>> By the way, this particular device tree bindings miss bus-type property,
>> it could be either MIPI or LVDS serial output.
>>
Neil Armstrong Dec. 5, 2024, 9:27 a.m. UTC | #6
On 04/12/2024 14:30, Vladimir Zapolskiy wrote:
> On 12/4/24 15:16, neil.armstrong@linaro.org wrote:
>> On 04/12/2024 14:10, Vladimir Zapolskiy wrote:
>>> On 12/4/24 14:16, Neil Armstrong wrote:
>>>> On 04/12/2024 12:05, Dmitry Baryshkov wrote:
>>>>> On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
>>>>>> Bindings documents data-lanes as a single entry with a separate
>>>>>> clock-lanes property, but DT uses 2 entries in data-lanes.
>>>>>>
>>>>>> This would suggest clock-lanes is missing, fix the DT using the
>>>>>> bindings example.
>>>>>>
>>>>>> This fixes:
>>>>>> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
>>>>>>      from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
>>>>>>
>>>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>>>> ---
>>>>>>     arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>>>>>>     1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>>> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
>>>>>> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>>> @@ -115,7 +115,8 @@ camera@60 {
>>>>>>             port {
>>>>>>                 ov7251_ep: endpoint {
>>>>>> -                data-lanes = <0 1>;
>>>>>> +                clock-lanes = <1>;
>>>>>> +                data-lanes = <0>;
>>>>>
>>>>> Is it really this way or the other way around, clock = <0>, data = <1>?
>>>>
>>>> No idea actually, on the schematics the lanes from the DB845 are :
>>>>
>>>> CSI0_P/N -> OV7251_CSI3_LANE0_P/N -> MIPI_CSI3_LANE0_P -> SoC
>>>> and
>>>> CLKP/N -> OV7251_CSI3_CLK_P/N -> MIPI_CSI3_CLK_P/N -> SoC
>>>>
>>>> So I assume the data-lane is 0, for clock-lane I just used
>>>> the example, but I found nothing in the code using those assignments
>>>>
>>>
>>> It's a sensor property, and OV7251 sensor has the non-selectable clock lane.
>>>
>>> If it's technically acceptable, I would rather suggest to deprecate and
>>> remove "clock-lanes" property and hard-code "data-lanes" value to <1>.
>>
>>
>> Ok indeed while looking at the OV7251 sensor datasheet, there's a single
>> fixed data lane and a single fixed clock lane, so on the sensor side we
>> can't select anything but how would we define lane0 is used on the SoC side ?
> 
> It's done right in the common way, there are clock-lanes and data-lanes
> properties on the ISP endpoint side.

For the ov8856 yes, but in the current state the ov7251 endpoint is not
connected to the csiphy3, so it's currently not usable and disabled,
so I'd rather remove this node completely instead of fixing an
untestable dtso.

Neil

> 
>>>
>>> By the way, this particular device tree bindings miss bus-type property,
>>> it could be either MIPI or LVDS serial output.
>>>
>
Vladimir Zapolskiy Dec. 5, 2024, 9:31 a.m. UTC | #7
On 12/5/24 11:27, neil.armstrong@linaro.org wrote:
> On 04/12/2024 14:30, Vladimir Zapolskiy wrote:
>> On 12/4/24 15:16, neil.armstrong@linaro.org wrote:
>>> On 04/12/2024 14:10, Vladimir Zapolskiy wrote:
>>>> On 12/4/24 14:16, Neil Armstrong wrote:
>>>>> On 04/12/2024 12:05, Dmitry Baryshkov wrote:
>>>>>> On Wed, Dec 04, 2024 at 11:56:54AM +0100, Neil Armstrong wrote:
>>>>>>> Bindings documents data-lanes as a single entry with a separate
>>>>>>> clock-lanes property, but DT uses 2 entries in data-lanes.
>>>>>>>
>>>>>>> This would suggest clock-lanes is missing, fix the DT using the
>>>>>>> bindings example.
>>>>>>>
>>>>>>> This fixes:
>>>>>>> sdm845-db845c-navigation-mezzanine.dtso: camera@60: port:endpoint:data-lanes: [0, 1] is too long
>>>>>>>       from schema $id: http://devicetree.org/schemas/media/i2c/ovti,ov7251.yaml#
>>>>>>>
>>>>>>> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
>>>>>>> ---
>>>>>>>      arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso | 3 ++-
>>>>>>>      1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>>
>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>>>> index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
>>>>>>> --- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
>>>>>>> @@ -115,7 +115,8 @@ camera@60 {
>>>>>>>              port {
>>>>>>>                  ov7251_ep: endpoint {
>>>>>>> -                data-lanes = <0 1>;
>>>>>>> +                clock-lanes = <1>;
>>>>>>> +                data-lanes = <0>;
>>>>>>
>>>>>> Is it really this way or the other way around, clock = <0>, data = <1>?
>>>>>
>>>>> No idea actually, on the schematics the lanes from the DB845 are :
>>>>>
>>>>> CSI0_P/N -> OV7251_CSI3_LANE0_P/N -> MIPI_CSI3_LANE0_P -> SoC
>>>>> and
>>>>> CLKP/N -> OV7251_CSI3_CLK_P/N -> MIPI_CSI3_CLK_P/N -> SoC
>>>>>
>>>>> So I assume the data-lane is 0, for clock-lane I just used
>>>>> the example, but I found nothing in the code using those assignments
>>>>>
>>>>
>>>> It's a sensor property, and OV7251 sensor has the non-selectable clock lane.
>>>>
>>>> If it's technically acceptable, I would rather suggest to deprecate and
>>>> remove "clock-lanes" property and hard-code "data-lanes" value to <1>.
>>>
>>>
>>> Ok indeed while looking at the OV7251 sensor datasheet, there's a single
>>> fixed data lane and a single fixed clock lane, so on the sensor side we
>>> can't select anything but how would we define lane0 is used on the SoC side ?
>>
>> It's done right in the common way, there are clock-lanes and data-lanes
>> properties on the ISP endpoint side.
> 
> For the ov8856 yes, but in the current state the ov7251 endpoint is not

Above I gave a generic description of describing the lanes.

> connected to the csiphy3, so it's currently not usable and disabled,
> so I'd rather remove this node completely instead of fixing an
> untestable dtso.

Sure, if the device is unused, it shall be removed.

--
Best wishes,
Vladimir
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
index 0a87df806cafc8e726aacc07a772ca478d0ee3df..5a16f4c2b346b314af3d614266e1ca034057e643 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-navigation-mezzanine.dtso
@@ -115,7 +115,8 @@  camera@60 {
 
 		port {
 			ov7251_ep: endpoint {
-				data-lanes = <0 1>;
+				clock-lanes = <1>;
+				data-lanes = <0>;
 /*				remote-endpoint = <&csiphy3_ep>; */
 			};
 		};