[PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC

Marijn Suijten posted 11 patches 1 month, 2 weeks ago
[PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Marijn Suijten 1 month, 2 weeks ago
Document the Samsung SOFEF01-M Display-Driver-IC and 1080x2520@60Hz
command-mode DSI panels found in many Sony phones:
- Sony Xperia 5 (kumano bahamut): amb609tc01
- Sony Xperia 10 II (seine pdx201): ams597ut01
- Sony Xperia 10 III (lena pdx213): ams597ut04
- Sony Xperia 10 IV (murray pdx225): ams597ut05
- Sony Xperia 10 V (zambezi pdx235): ams605dk01
- Sony Xperia 10 VI (columbia pdx246): ams605dk01

Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
---
 .../bindings/display/panel/samsung,sofef01-m.yaml  | 120 +++++++++++++++++++++
 MAINTAINERS                                        |   5 +
 2 files changed, 125 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml
new file mode 100644
index 000000000000..a8ff5223677c
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/samsung,sofef01-m.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung SOFEF01-M DDI for 1080x2520@60Hz 6.0"/6.1" OLED DSI panels
+
+maintainers:
+  - Marijn Suijten <marijn.suijten@somainline.org>
+
+description: |
+  Samsung SOFEF01-M Display-Driver-IC found in multiple Sony smartphones, paired with
+  the following panel:
+   - Sony Xperia 5 (kumano bahamut): amb609tc01
+   - Sony Xperia 10 II (seine pdx201): ams597ut01
+   - Sony Xperia 10 III (lena pdx213): ams597ut04
+   - Sony Xperia 10 IV (murray pdx225): ams597ut05
+   - Sony Xperia 10 V (zambezi pdx235): ams605dk01
+   - Sony Xperia 10 VI (columbia pdx246): ams605dk01
+
+  The assembly features a Samsung touchscreen compatible with
+  samsung,s6sy761.
+
+allOf:
+  - $ref: panel-common.yaml#
+
+  - if:
+      properties:
+        compatible:
+          const: samsung,sofef01-m-amb609tc01
+    then:
+      properties:
+        vci-supply:
+          description: DisplayIC Operation supply (3.0V)
+
+      required:
+        - vci-supply
+
+    else:
+      properties:
+        vci-supply: false
+
+properties:
+  compatible:
+    enum:
+      - samsung,sofef01-m-amb609tc01 # 6.1"
+      - samsung,sofef01-m-ams597ut01 # 6.0"
+      - samsung,sofef01-m-ams597ut04 # 6.0"
+      - samsung,sofef01-m-ams597ut05 # 6.0"
+      - samsung,sofef01-m-ams605dk01 # 6.1"
+
+  port: true
+
+  reg:
+    maxItems: 1
+    description: DSI virtual channel
+
+  reset-gpios: true
+
+  vddio-supply:
+    description: I/O voltage supply (1.8V)
+
+required:
+  - compatible
+  - port
+  - reg
+  - reset-gpios
+  - vddio-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        panel@0 {
+            compatible = "samsung,sofef01-m-amb609tc01";
+            reg = <0>;
+
+            reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+            vci-supply = <&vreg_l17a_3p0>;
+            vddio-supply = <&vreg_l14a_1p8>;
+
+            port {
+                endpoint {
+                    remote-endpoint = <&dsi0_out>;
+                };
+            };
+        };
+    };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        panel@0 {
+            compatible = "samsung,sofef01-m-ams597ut01";
+            reg = <0>;
+
+            reset-gpios = <&tlmm 90 GPIO_ACTIVE_LOW>;
+
+            vddio-supply = <&pm6125_l12>;
+
+            port {
+                endpoint {
+                    remote-endpoint = <&dsi0_out>;
+                };
+            };
+        };
+    };
+
+...
+
diff --git a/MAINTAINERS b/MAINTAINERS
index fcd99a8f9c71..93468dde9df2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8194,6 +8194,11 @@ S:	Maintained
 F:	Documentation/devicetree/bindings/display/panel/samsung,sofef00.yaml
 F:	drivers/gpu/drm/panel/panel-samsung-sofef00.c
 
+DRM DRIVER FOR SAMSUNG SOFEF01 DDIC
+M:	Marijn Suijten <marijn.suijten@somainline.org>
+S:	Maintained
+F:	Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml
+
 DRM DRIVER FOR SHARP MEMORY LCD
 M:	Alex Lanzano <lanzano.alex@gmail.com>
 S:	Maintained

-- 
2.52.0
Re: [PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Rob Herring 1 month, 1 week ago
On Mon, Dec 22, 2025 at 12:32:10AM +0100, Marijn Suijten wrote:
> Document the Samsung SOFEF01-M Display-Driver-IC and 1080x2520@60Hz
> command-mode DSI panels found in many Sony phones:
> - Sony Xperia 5 (kumano bahamut): amb609tc01
> - Sony Xperia 10 II (seine pdx201): ams597ut01
> - Sony Xperia 10 III (lena pdx213): ams597ut04
> - Sony Xperia 10 IV (murray pdx225): ams597ut05
> - Sony Xperia 10 V (zambezi pdx235): ams605dk01
> - Sony Xperia 10 VI (columbia pdx246): ams605dk01
> 
> Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
> ---
>  .../bindings/display/panel/samsung,sofef01-m.yaml  | 120 +++++++++++++++++++++
>  MAINTAINERS                                        |   5 +
>  2 files changed, 125 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml b/Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml
> new file mode 100644
> index 000000000000..a8ff5223677c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/samsung,sofef01-m.yaml
> @@ -0,0 +1,120 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/samsung,sofef01-m.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung SOFEF01-M DDI for 1080x2520@60Hz 6.0"/6.1" OLED DSI panels
> +
> +maintainers:
> +  - Marijn Suijten <marijn.suijten@somainline.org>
> +
> +description: |
> +  Samsung SOFEF01-M Display-Driver-IC found in multiple Sony smartphones, paired with
> +  the following panel:
> +   - Sony Xperia 5 (kumano bahamut): amb609tc01
> +   - Sony Xperia 10 II (seine pdx201): ams597ut01
> +   - Sony Xperia 10 III (lena pdx213): ams597ut04
> +   - Sony Xperia 10 IV (murray pdx225): ams597ut05
> +   - Sony Xperia 10 V (zambezi pdx235): ams605dk01
> +   - Sony Xperia 10 VI (columbia pdx246): ams605dk01
> +
> +  The assembly features a Samsung touchscreen compatible with
> +  samsung,s6sy761.
> +
> +allOf:
> +  - $ref: panel-common.yaml#
> +
> +  - if:
> +      properties:
> +        compatible:
> +          const: samsung,sofef01-m-amb609tc01
> +    then:
> +      properties:
> +        vci-supply:
> +          description: DisplayIC Operation supply (3.0V)

The error reported is on the wrong patch. Not sure why, but the problem 
is here. With 'additionalProperties: false', this property is not 
factored in and is considered unknown. That can be fixed using 
'unevaluatedProperties', but instead, move this to the top level 
'properties'.

> +
> +      required:
> +        - vci-supply
> +
> +    else:
> +      properties:
> +        vci-supply: false
> +
> +properties:
> +  compatible:
> +    enum:
> +      - samsung,sofef01-m-amb609tc01 # 6.1"
> +      - samsung,sofef01-m-ams597ut01 # 6.0"
> +      - samsung,sofef01-m-ams597ut04 # 6.0"
> +      - samsung,sofef01-m-ams597ut05 # 6.0"
> +      - samsung,sofef01-m-ams605dk01 # 6.1"
> +
> +  port: true
> +
> +  reg:
> +    maxItems: 1
> +    description: DSI virtual channel
> +
> +  reset-gpios: true
> +
> +  vddio-supply:
> +    description: I/O voltage supply (1.8V)
> +
> +required:
> +  - compatible
> +  - port
> +  - reg
> +  - reset-gpios
> +  - vddio-supply
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    dsi {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        panel@0 {
> +            compatible = "samsung,sofef01-m-amb609tc01";
> +            reg = <0>;
> +
> +            reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> +
> +            vci-supply = <&vreg_l17a_3p0>;
> +            vddio-supply = <&vreg_l14a_1p8>;
> +
> +            port {
> +                endpoint {
> +                    remote-endpoint = <&dsi0_out>;
> +                };
> +            };
> +        };
> +    };
> +
> +  - |
> +    #include <dt-bindings/gpio/gpio.h>
> +
> +    dsi {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        panel@0 {
> +            compatible = "samsung,sofef01-m-ams597ut01";
> +            reg = <0>;
> +
> +            reset-gpios = <&tlmm 90 GPIO_ACTIVE_LOW>;
> +
> +            vddio-supply = <&pm6125_l12>;
> +
> +            port {
> +                endpoint {
> +                    remote-endpoint = <&dsi0_out>;
> +                };
> +            };
> +        };
> +    };

The first example is enough.
Re: [PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Linus Walleij 1 month, 2 weeks ago
Hi Marijn,

thanks for your patch!

On Mon, Dec 22, 2025 at 12:32 AM Marijn Suijten
<marijn.suijten@somainline.org> wrote:

> Document the Samsung SOFEF01-M Display-Driver-IC and 1080x2520@60Hz
> command-mode DSI panels found in many Sony phones:
> - Sony Xperia 5 (kumano bahamut): amb609tc01
> - Sony Xperia 10 II (seine pdx201): ams597ut01
> - Sony Xperia 10 III (lena pdx213): ams597ut04
> - Sony Xperia 10 IV (murray pdx225): ams597ut05
> - Sony Xperia 10 V (zambezi pdx235): ams605dk01
> - Sony Xperia 10 VI (columbia pdx246): ams605dk01
>
> Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
(...)
> +      - samsung,sofef01-m-amb609tc01 # 6.1"
> +      - samsung,sofef01-m-ams597ut01 # 6.0"
> +      - samsung,sofef01-m-ams597ut04 # 6.0"
> +      - samsung,sofef01-m-ams597ut05 # 6.0"
> +      - samsung,sofef01-m-ams605dk01 # 6.1"

So is the assembled product really named like that?

Samsung S0FEF01-M AMS605DK01?

I would more expect the compatible strings to be excluding the DDIC
name, like:

samsung,ams605dk01

...but it's not like the vendor is helping us here, so I'm practically
fine either way. They are clearly using the S0FEF01-M display
controller.

Yours,
Linus Walleij
Re: [PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Marijn Suijten 1 month, 2 weeks ago
On 2025-12-26 14:25:04, Linus Walleij wrote:
> Hi Marijn,
> 
> thanks for your patch!
> 
> On Mon, Dec 22, 2025 at 12:32 AM Marijn Suijten
> <marijn.suijten@somainline.org> wrote:
> 
> > Document the Samsung SOFEF01-M Display-Driver-IC and 1080x2520@60Hz
> > command-mode DSI panels found in many Sony phones:
> > - Sony Xperia 5 (kumano bahamut): amb609tc01
> > - Sony Xperia 10 II (seine pdx201): ams597ut01
> > - Sony Xperia 10 III (lena pdx213): ams597ut04
> > - Sony Xperia 10 IV (murray pdx225): ams597ut05
> > - Sony Xperia 10 V (zambezi pdx235): ams605dk01
> > - Sony Xperia 10 VI (columbia pdx246): ams605dk01
> >
> > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
> (...)
> > +      - samsung,sofef01-m-amb609tc01 # 6.1"
> > +      - samsung,sofef01-m-ams597ut01 # 6.0"
> > +      - samsung,sofef01-m-ams597ut04 # 6.0"
> > +      - samsung,sofef01-m-ams597ut05 # 6.0"
> > +      - samsung,sofef01-m-ams605dk01 # 6.1"
> 
> So is the assembled product really named like that?
> 
> Samsung S0FEF01-M AMS605DK01?
> 
> I would more expect the compatible strings to be excluding the DDIC
> name, like:
> 
> samsung,ams605dk01
> 
> ...but it's not like the vendor is helping us here, so I'm practically
> fine either way.

Unfortunately I'm not that familiar with display manufacturers and panel
assemblies.  Most of the what I presume to be panel names were gleaned from
online screen replacement photos; those don't ever include the DDIC name.  Those
mostly come from the DTS though isn't mentioned exactly for every phone (only
the first two in the DTS name).

> They are clearly using the S0FEF01-M display controller.

So you're implying or certain that these panel names here are always bundled
with exactly the same controller (making the SOFEF01 part "redundant" in the
compatible)?

Also, divergence of the driver commands got significant with the last two panels
/ three phones, though that might be down to vendor configuration/calibration.

- Marijn

> Yours,
> Linus Walleij
Re: [PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Linus Walleij 1 month, 2 weeks ago
On Fri, Dec 26, 2025 at 2:48 PM Marijn Suijten
<marijn.suijten@somainline.org> wrote:
> On 2025-12-26 14:25:04, Linus Walleij wrote:

> > They are clearly using the S0FEF01-M display controller.
>
> So you're implying or certain that these panel names here are always bundled
> with exactly the same controller (making the SOFEF01 part "redundant" in the
> compatible)?

Yes that's what I suspect.

See my comment in the driver that all s6e* panels are suspected to be
some s0fef00/1 variant.

> Also, divergence of the driver commands got significant with the last two panels
> / three phones, though that might be down to vendor configuration/calibration.

That's kind of normal. The defaults suffice for a while, then engineers
want to start poking at different voltages to the display to improve
and tweak things.

Yours,
Linus Walleij
Re: [PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Marijn Suijten 1 month, 1 week ago
On 2025-12-26 18:38:56, Linus Walleij wrote:
> On Fri, Dec 26, 2025 at 2:48 PM Marijn Suijten
> <marijn.suijten@somainline.org> wrote:
> > On 2025-12-26 14:25:04, Linus Walleij wrote:
> 
> > > They are clearly using the S0FEF01-M display controller.
> >
> > So you're implying or certain that these panel names here are always bundled
> > with exactly the same controller (making the SOFEF01 part "redundant" in the
> > compatible)?
> 
> Yes that's what I suspect.

Do you still want me to drop it from the compatible, but definitely keep it in
the driver filename unless we unify all of the drivers (hopefully in a later
patch)?

> > Also, divergence of the driver commands got significant with the last two panels
> > / three phones, though that might be down to vendor configuration/calibration.
> 
> That's kind of normal. The defaults suffice for a while, then engineers
> want to start poking at different voltages to the display to improve
> and tweak things.

Makes one wonder if the changes are down to the panel used, or vendor tuning
when they started using these panels in their phones.  To note, I think I booted
all these phones on the "original" SOFEF01 driver without problems, before
ultimately implementing all diverging commands because I don't know if they're
defaults, related to color tuning, timings, thermals, manufacturer tolerances or
anything else.

- Marijn
Re: [PATCH v2 04/11] dt-bindings: display: panel: Describe Samsung SOFEF01-M DDIC
Posted by Linus Walleij 1 month, 1 week ago
On Mon, Dec 29, 2025 at 12:53 PM Marijn Suijten
<marijn.suijten@somainline.org> wrote:

> > Yes that's what I suspect.
>
> Do you still want me to drop it from the compatible, but definitely keep it in
> the driver filename unless we unify all of the drivers (hopefully in a later
> patch)?

The compatible should be as precise as possible, so indicate the
assembled display with display controller, typically
samsung,ams605dk01 etc, then the Linux driver is basically
a Linux intrinsic matter, but we would name that after the display
controller so as to make the basis of code sharing obvious between
the compatibles.

> > > Also, divergence of the driver commands got significant with the last two panels
> > > / three phones, though that might be down to vendor configuration/calibration.
> >
> > That's kind of normal. The defaults suffice for a while, then engineers
> > want to start poking at different voltages to the display to improve
> > and tweak things.
>
> Makes one wonder if the changes are down to the panel used, or vendor tuning
> when they started using these panels in their phones.  To note, I think I booted
> all these phones on the "original" SOFEF01 driver without problems, before
> ultimately implementing all diverging commands because I don't know if they're
> defaults, related to color tuning, timings, thermals, manufacturer tolerances or
> anything else.

Yeah a datasheet would really help :/

Samsung, if you're reading this, you know what to do: give us the
datasheets, pretty please with sugar on top.

Yours,
Linus Walleij