[PATCH 09/12] arm64: dts: st: add lvds support on stm32mp255

Raphael Gallais-Pou posted 12 patches 2 months, 1 week ago
There is a newer version of this series
[PATCH 09/12] arm64: dts: st: add lvds support on stm32mp255
Posted by Raphael Gallais-Pou 2 months, 1 week ago
The LVDS is used on STM32MP2 as a display interface.

Add the LVDS node.

Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
---
 arch/arm64/boot/dts/st/stm32mp255.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/st/stm32mp255.dtsi b/arch/arm64/boot/dts/st/stm32mp255.dtsi
index f689b47c5010033120146cf1954d6624c0270045..a4d965f785fa42c4597494010855aec7e1b9fdd1 100644
--- a/arch/arm64/boot/dts/st/stm32mp255.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp255.dtsi
@@ -6,6 +6,18 @@
 #include "stm32mp253.dtsi"
 
 &rifsc {
+	lvds: lvds@48060000 {
+		compatible = "st,stm32mp25-lvds";
+		#clock-cells = <0>;
+		reg = <0x48060000 0x2000>;
+		clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
+		clock-names = "pclk", "ref";
+		resets = <&rcc LVDS_R>;
+		access-controllers = <&rifsc 84>;
+		power-domains = <&CLUSTER_PD>;
+		status = "disabled";
+	};
+
 	vdec: vdec@480d0000 {
 		compatible = "st,stm32mp25-vdec";
 		reg = <0x480d0000 0x3c8>;

-- 
2.25.1
Re: [Linux-stm32] [PATCH 09/12] arm64: dts: st: add lvds support on stm32mp255
Posted by Clement LE GOFFIC 2 months, 1 week ago
Hi Raphael,

On 7/25/25 12:04, Raphael Gallais-Pou wrote:
> The LVDS is used on STM32MP2 as a display interface.
> 
> Add the LVDS node.
> 
> Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
> ---
>   arch/arm64/boot/dts/st/stm32mp255.dtsi | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/st/stm32mp255.dtsi b/arch/arm64/boot/dts/st/stm32mp255.dtsi
> index f689b47c5010033120146cf1954d6624c0270045..a4d965f785fa42c4597494010855aec7e1b9fdd1 100644
> --- a/arch/arm64/boot/dts/st/stm32mp255.dtsi
> +++ b/arch/arm64/boot/dts/st/stm32mp255.dtsi
> @@ -6,6 +6,18 @@
>   #include "stm32mp253.dtsi"
>   
>   &rifsc {
> +	lvds: lvds@48060000 {
> +		compatible = "st,stm32mp25-lvds";

For the compatible you now need one comaptible per SoC.
It means your compatible should look like : "st,stm32mp251-lvds".
This way, if on the 253 or 255 there is an issue you are able to easily 
add match data in the driver with compatible "st,stm32mp253-lvds" or 
"st,stm32mp255-lvds".
A prior discussion on this subject has been raised on my V1 of HDP 
involving Krzysztof and Alexandre :
https://lore.kernel.org/all/418a80a9-8c08-4dd1-bf49-1bd7378321aa@kernel.org/

> +		#clock-cells = <0>;
> +		reg = <0x48060000 0x2000>;
> +		clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
> +		clock-names = "pclk", "ref";
> +		resets = <&rcc LVDS_R>;
> +		access-controllers = <&rifsc 84>;
> +		power-domains = <&CLUSTER_PD>;
> +		status = "disabled";
> +	};
> +
>   	vdec: vdec@480d0000 {
>   		compatible = "st,stm32mp25-vdec";
>   		reg = <0x480d0000 0x3c8>;
> 

Best regards,
Clément
Re: [Linux-stm32] [PATCH 09/12] arm64: dts: st: add lvds support on stm32mp255
Posted by Clement LE GOFFIC 2 months, 1 week ago
On 7/25/25 13:08, Clement LE GOFFIC wrote:
> Hi Raphael,
> 
> On 7/25/25 12:04, Raphael Gallais-Pou wrote:
>> The LVDS is used on STM32MP2 as a display interface.
>>
>> Add the LVDS node.
>>
>> Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
>> ---
>>   arch/arm64/boot/dts/st/stm32mp255.dtsi | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/st/stm32mp255.dtsi b/arch/arm64/boot/ 
>> dts/st/stm32mp255.dtsi
>> index 
>> f689b47c5010033120146cf1954d6624c0270045..a4d965f785fa42c4597494010855aec7e1b9fdd1 100644
>> --- a/arch/arm64/boot/dts/st/stm32mp255.dtsi
>> +++ b/arch/arm64/boot/dts/st/stm32mp255.dtsi
>> @@ -6,6 +6,18 @@
>>   #include "stm32mp253.dtsi"
>>   &rifsc {
>> +    lvds: lvds@48060000 {
>> +        compatible = "st,stm32mp25-lvds";
> 
> For the compatible you now need one comaptible per SoC.
> It means your compatible should look like : "st,stm32mp251-lvds".
> This way, if on the 253 or 255 there is an issue you are able to easily 
> add match data in the driver with compatible "st,stm32mp253-lvds" or 
> "st,stm32mp255-lvds".
> A prior discussion on this subject has been raised on my V1 of HDP 
> involving Krzysztof and Alexandre :
> https://lore.kernel.org/all/418a80a9-8c08-4dd1- 
> bf49-1bd7378321aa@kernel.org/
Woops, this comment should target the add of the ltdc compatible as I 
see that lvds one already exists and can't be changed.
Though the main idea is here.

> 
>> +        #clock-cells = <0>;
>> +        reg = <0x48060000 0x2000>;
>> +        clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
>> +        clock-names = "pclk", "ref";
>> +        resets = <&rcc LVDS_R>;
>> +        access-controllers = <&rifsc 84>;
>> +        power-domains = <&CLUSTER_PD>;
>> +        status = "disabled";
>> +    };
>> +
>>       vdec: vdec@480d0000 {
>>           compatible = "st,stm32mp25-vdec";
>>           reg = <0x480d0000 0x3c8>;
>>
> 
> Best regards,
> Clément

Re: [Linux-stm32] [PATCH 09/12] arm64: dts: st: add lvds support on stm32mp255
Posted by Raphael Gallais-Pou 2 months, 1 week ago

On 7/25/25 13:13, Clement LE GOFFIC wrote:
> On 7/25/25 13:08, Clement LE GOFFIC wrote:
>> Hi Raphael,
>>
>> On 7/25/25 12:04, Raphael Gallais-Pou wrote:
>>> The LVDS is used on STM32MP2 as a display interface.
>>>
>>> Add the LVDS node.
>>>
>>> Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
>>> ---
>>>   arch/arm64/boot/dts/st/stm32mp255.dtsi | 12 ++++++++++++
>>>   1 file changed, 12 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/st/stm32mp255.dtsi b/arch/arm64/boot/
>>> dts/st/stm32mp255.dtsi
>>> index
>>> f689b47c5010033120146cf1954d6624c0270045..a4d965f785fa42c4597494010855aec7e1b9fdd1
>>> 100644
>>> --- a/arch/arm64/boot/dts/st/stm32mp255.dtsi
>>> +++ b/arch/arm64/boot/dts/st/stm32mp255.dtsi
>>> @@ -6,6 +6,18 @@
>>>   #include "stm32mp253.dtsi"
>>>   &rifsc {
>>> +    lvds: lvds@48060000 {
>>> +        compatible = "st,stm32mp25-lvds";
>>
>> For the compatible you now need one comaptible per SoC.
>> It means your compatible should look like : "st,stm32mp251-lvds".
>> This way, if on the 253 or 255 there is an issue you are able to easily add
>> match data in the driver with compatible "st,stm32mp253-lvds" or
>> "st,stm32mp255-lvds".
>> A prior discussion on this subject has been raised on my V1 of HDP involving
>> Krzysztof and Alexandre :
>> https://lore.kernel.org/all/418a80a9-8c08-4dd1- bf49-1bd7378321aa@kernel.org/
> Woops, this comment should target the add of the ltdc compatible as I see that
> lvds one already exists and can't be changed.
> Though the main idea is here.

Indeed, the compatible is wrong.

After carefully reading the thread you point to, I suggest the following:

* Rename the new LTDC compatible to "st,stm32mp251-ltdc"
* Add another compatible for the LVDS. So it would have "st,stm32mp255-lvds",
and falls back to "st,stm32mp25-lvds".

Like so the LVDS driver would not have to be modified.

Alex, Krzysztof, does that seem good to you ?

Best regards,
Raphaël
>
>>
>>> +        #clock-cells = <0>;
>>> +        reg = <0x48060000 0x2000>;
>>> +        clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
>>> +        clock-names = "pclk", "ref";
>>> +        resets = <&rcc LVDS_R>;
>>> +        access-controllers = <&rifsc 84>;
>>> +        power-domains = <&CLUSTER_PD>;
>>> +        status = "disabled";
>>> +    };
>>> +
>>>       vdec: vdec@480d0000 {
>>>           compatible = "st,stm32mp25-vdec";
>>>           reg = <0x480d0000 0x3c8>;
>>>
>>
>> Best regards,
>> Clément
>