[PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel

David Heidelberg via B4 Relay posted 12 patches 1 month, 2 weeks ago
There is a newer version of this series
[PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
Posted by David Heidelberg via B4 Relay 1 month, 2 weeks ago
From: David Heidelberg <david@ixit.cz>

Basic description for S6E3FC2X01 DDIC with attached panels

 - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
 - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio

This panel has three supplies, while panel-simple-dsi is limited to one.
There is no user of this compatible, nor the compatible make sense.
Remove it from simple DSI panel definitions.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 .../bindings/display/panel/panel-simple-dsi.yaml   | 25 ++-----
 .../bindings/display/panel/samsung,sofef00.yaml    | 83 ++++++++++++++++++++++
 2 files changed, 87 insertions(+), 21 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
index ac2db8cf5eb76..464d7c8a7665e 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-simple-dsi.yaml
@@ -19,6 +19,9 @@ description: |
 
   If the panel is more advanced a dedicated binding file is required.
 
+allOf:
+  - $ref: panel-common.yaml#
+
 properties:
 
   compatible:
@@ -56,8 +59,6 @@ properties:
       - panasonic,vvx10f034n00
         # Samsung s6e3fa7 1080x2220 based AMS559NK06 AMOLED panel
       - samsung,s6e3fa7-ams559nk06
-        # Samsung sofef00 1080x2280 AMOLED panel
-      - samsung,sofef00
         # Shangai Top Display Optoelectronics 7" TL070WSH30 1024x600 TFT LCD panel
       - tdo,tl070wsh30
 
@@ -70,30 +71,12 @@ properties:
   reset-gpios: true
   port: true
   power-supply: true
-  vddio-supply: true
-
-allOf:
-  - $ref: panel-common.yaml#
-  - if:
-      properties:
-        compatible:
-          enum:
-            - samsung,sofef00
-    then:
-      properties:
-        power-supply: false
-      required:
-        - vddio-supply
-    else:
-      properties:
-        vddio-supply: false
-      required:
-        - power-supply
 
 additionalProperties: false
 
 required:
   - compatible
+  - power-supply
   - reg
 
 examples:
diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
new file mode 100644
index 0000000000000..527a10e3b798e
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung SOFEF00 AMOLED DDIC
+
+description: The SOFEF00 is display driver IC with connected panel.
+
+maintainers:
+  - David Heidelberg <david@ixit.cz>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+            # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
+          - samsung,sofef00-ams601nt22
+            # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
+          - samsung,sofef00-ams628nw01
+      - const: samsung,sofef00
+
+  reg:
+    maxItems: 1
+
+  reset-gpios: true
+
+  port: true
+
+  vddio-supply:
+    description: VDD regulator
+
+  vci-supply:
+    description: VCI regulator
+
+  poc-supply:
+    description: POC regulator
+
+required:
+  - compatible
+  - reset-gpios
+  - vddio-supply
+  - vci-supply
+  - poc-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "samsung,sofef00-ams628nw01", "samsung,sofef00";
+            reg = <0>;
+
+            vddio-supply = <&vreg_l14a_1p88>;
+            vci-supply = <&s2dos05_buck1>;
+            poc-supply = <&s2dos05_ldo1>;
+
+            te-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+            reset-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+
+            pinctrl-0 = <&panel_active>;
+            pinctrl-1 = <&panel_suspend>;
+            pinctrl-names = "default", "sleep";
+
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&mdss_dsi0_out>;
+                };
+            };
+        };
+    };
+
+...

-- 
2.51.0
Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
> Basic description for S6E3FC2X01 DDIC with attached panels
> 
>  - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>  - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
> 
> This panel has three supplies, while panel-simple-dsi is limited to one.
> There is no user of this compatible, nor the compatible make sense.

There are. git grep samsung,sofef00, gives me two users.

> Remove it from simple DSI panel definitions.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>

..

>  additionalProperties: false
>  
>  required:
>    - compatible
> +  - power-supply
>    - reg
>  
>  examples:
> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
> new file mode 100644
> index 0000000000000..527a10e3b798e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
> @@ -0,0 +1,83 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung SOFEF00 AMOLED DDIC
> +
> +description: The SOFEF00 is display driver IC with connected panel.

Description goes below maintainers, see example-schema.

> +
> +maintainers:
> +  - David Heidelberg <david@ixit.cz>
> +
> +allOf:
> +  - $ref: panel-common.yaml#
> +
> +properties:
> +  compatible:
> +    items:
> +      - enum:
> +            # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
> +          - samsung,sofef00-ams601nt22
> +            # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
> +          - samsung,sofef00-ams628nw01

These were not in the old binding, so please explain in the commit msg
reasons for adding new front compatibles.

> +      - const: samsung,sofef00
> +
> +  reg:
> +    maxItems: 1
> +
> +  reset-gpios: true

Drop, not needed. It can stay required, though.

> +
> +  port: true

Drop

> +
> +  vddio-supply:
> +    description: VDD regulator
> +
> +  vci-supply:
> +    description: VCI regulator
> +
> +  poc-supply:
> +    description: POC regulator

1st poc, then vci then vddio to keep it more-or-less sorted. Same in
required list.

> +
> +required:
> +  - compatible
> +  - reset-gpios
> +  - vddio-supply
> +  - vci-supply
> +  - poc-supply
> +
> +unevaluatedProperties: false

Best regards,
Krzysztof
Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
Posted by Neil Armstrong 1 month, 1 week ago
On 11/6/25 09:48, Krzysztof Kozlowski wrote:
> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>> Basic description for S6E3FC2X01 DDIC with attached panels
>>
>>   - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>   - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>
>> This panel has three supplies, while panel-simple-dsi is limited to one.
>> There is no user of this compatible, nor the compatible make sense.
> 
> There are. git grep samsung,sofef00, gives me two users.

Hmm, on -next I only see a single one:

$ grep samsung,sofef00 arch/*/boot/dts/ -R
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";

> 
>> Remove it from simple DSI panel definitions.

Can't you mark is deprecated at first ?

>>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
> 
> ..
> 
>>   additionalProperties: false
>>   
>>   required:
>>     - compatible
>> +  - power-supply
>>     - reg
>>   
>>   examples:
>> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
>> new file mode 100644
>> index 0000000000000..527a10e3b798e
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
>> @@ -0,0 +1,83 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/display/panel/samsung,sofef00.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Samsung SOFEF00 AMOLED DDIC
>> +
>> +description: The SOFEF00 is display driver IC with connected panel.
> 
> Description goes below maintainers, see example-schema.
> 
>> +
>> +maintainers:
>> +  - David Heidelberg <david@ixit.cz>
>> +
>> +allOf:
>> +  - $ref: panel-common.yaml#
>> +
>> +properties:
>> +  compatible:
>> +    items:
>> +      - enum:
>> +            # Samsung 6.01 inch, 1080x2160 pixels, 18:9 ratio
>> +          - samsung,sofef00-ams601nt22
>> +            # Samsung 6.28 inch, 1080x2280 pixels, 19:9 ratio
>> +          - samsung,sofef00-ams628nw01
> 
> These were not in the old binding, so please explain in the commit msg
> reasons for adding new front compatibles.
> 
>> +      - const: samsung,sofef00
>> +
>> +  reg:
>> +    maxItems: 1
>> +
>> +  reset-gpios: true
> 
> Drop, not needed. It can stay required, though.
> 
>> +
>> +  port: true
> 
> Drop
> 
>> +
>> +  vddio-supply:
>> +    description: VDD regulator
>> +
>> +  vci-supply:
>> +    description: VCI regulator
>> +
>> +  poc-supply:
>> +    description: POC regulator
> 
> 1st poc, then vci then vddio to keep it more-or-less sorted. Same in
> required list.
> 
>> +
>> +required:
>> +  - compatible
>> +  - reset-gpios
>> +  - vddio-supply
>> +  - vci-supply
>> +  - poc-supply
>> +
>> +unevaluatedProperties: false
> 
> Best regards,
> Krzysztof
>
Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On 07/11/2025 12:23, Neil Armstrong wrote:
> On 11/6/25 09:48, Krzysztof Kozlowski wrote:
>> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>>> Basic description for S6E3FC2X01 DDIC with attached panels
>>>
>>>   - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>>   - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>>
>>> This panel has three supplies, while panel-simple-dsi is limited to one.
>>> There is no user of this compatible, nor the compatible make sense.
>>
>> There are. git grep samsung,sofef00, gives me two users.
> 
> Hmm, on -next I only see a single one:
> 
> $ grep samsung,sofef00 arch/*/boot/dts/ -R
> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";
> 

These are the users:

arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
drivers/gpu/drm/panel/panel-samsung-sofef00.c

>>
>>> Remove it from simple DSI panel definitions.
> 
> Can't you mark is deprecated at first ?

Not sure what would be the benefit here. There is no negative ABI impact
here.

Best regards,
Krzysztof
Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
Posted by Casey Connolly 1 month, 1 week ago

On 11/7/25 12:27, Krzysztof Kozlowski wrote:
> On 07/11/2025 12:23, Neil Armstrong wrote:
>> On 11/6/25 09:48, Krzysztof Kozlowski wrote:
>>> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>>>> Basic description for S6E3FC2X01 DDIC with attached panels
>>>>
>>>>    - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>>>    - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>>>
>>>> This panel has three supplies, while panel-simple-dsi is limited to one.
>>>> There is no user of this compatible, nor the compatible make sense.
>>>
>>> There are. git grep samsung,sofef00, gives me two users.
>>
>> Hmm, on -next I only see a single one:
>>
>> $ grep samsung,sofef00 arch/*/boot/dts/ -R
>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";
>>
> 
> These are the users:
> 
> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
> drivers/gpu/drm/panel/panel-samsung-sofef00.c
> 
>>>
>>>> Remove it from simple DSI panel definitions.
>>
>> Can't you mark is deprecated at first ?
> 
> Not sure what would be the benefit here. There is no negative ABI impact
> here.

If we want to acknowledge the potential scenario where someone is 
booting a newer kernel with an older DT then we should keep the old 
compatible in the driver right? And marking it deprecated in bindings 
would make sense.

It could be removed from the driver in the future if there is another 
variant of the panel added or we decide to cleanup.

It's still not entirely clear to what extent we care about DT/kernel 
backwards compatibility though.
> 
> Best regards,
> Krzysztof
Re: [PATCH 01/12] dt-bindings: panel: Add Samsung SOFEF00 DDIC with panel
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On 07/11/2025 14:10, Casey Connolly wrote:
> 
> 
> On 11/7/25 12:27, Krzysztof Kozlowski wrote:
>> On 07/11/2025 12:23, Neil Armstrong wrote:
>>> On 11/6/25 09:48, Krzysztof Kozlowski wrote:
>>>> On Tue, Nov 04, 2025 at 11:16:09PM +0100, David Heidelberg wrote:
>>>>> Basic description for S6E3FC2X01 DDIC with attached panels
>>>>>
>>>>>    - Samsung AMS601NT22 6.01 inch, 1080x2160 pixels, 18:9 ratio
>>>>>    - Samsung AMS628NW01 6.28 inch, 1080x2280 pixels, 19:9 ratio
>>>>>
>>>>> This panel has three supplies, while panel-simple-dsi is limited to one.
>>>>> There is no user of this compatible, nor the compatible make sense.
>>>>
>>>> There are. git grep samsung,sofef00, gives me two users.
>>>
>>> Hmm, on -next I only see a single one:
>>>
>>> $ grep samsung,sofef00 arch/*/boot/dts/ -R
>>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts:  compatible = "samsung,sofef00";
>>>
>>
>> These are the users:
>>
>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dts
>> drivers/gpu/drm/panel/panel-samsung-sofef00.c
>>
>>>>
>>>>> Remove it from simple DSI panel definitions.
>>>
>>> Can't you mark is deprecated at first ?
>>
>> Not sure what would be the benefit here. There is no negative ABI impact
>> here.
> 
> If we want to acknowledge the potential scenario where someone is 
> booting a newer kernel with an older DT then we should keep the old 
> compatible in the driver right? And marking it deprecated in bindings 
> would make sense.


We are not talking about removing compatible from the driver. If by any
chance we do, it is not explained here in this commit msg and would be
obviously a no-go.

Best regards,
Krzysztof