* [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family
@ 2023-10-14 7:15 Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 5/6] dt-bindings: display: Split common Solomon properties in their own schema Javier Martinez Canillas
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Javier Martinez Canillas @ 2023-10-14 7:15 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Peter Robinson, Thomas Zimmermann, Maxime Ripard,
Conor Dooley, Geert Uytterhoeven, Javier Martinez Canillas,
Conor Dooley, Daniel Vetter, David Airlie, Krzysztof Kozlowski,
Maarten Lankhorst, Rob Herring, devicetree, dri-devel
Hello,
This patch-set adds support for the family of SSD132x Solomon controllers,
such as the SSD1322, SSD1325 and SSD1327 chips. These are used for 16 Gray
Scale Dot Matrix OLED panels.
This is a v4 that just rebases on top of commit a48e2cc92835 ("drm/ssd130x:
Fix atomic_check for disabled planes"), that landed in drm-misc tree and
conflicts with this series.
It also fixes ssd132x_primary_plane_atomic_check(), using the same change
in the mentioned commit to fix the ssd132x_primary_plane_atomic_check()
callback function.
The patches were tested on a Waveshare SSD1327 display using glmark2-drm,
fbcon, fbtests and the retroarch emulator.
Patch #1 drops the .page_height field from the device info with a constant
because it's only needed by the SSD130x family and not the SSD132x family.
Patch #2 adds a per controller family id field to the device info data, to
allow the driver to support different Solomon display controller families.
Patch #3 renames some SSD130X_* commands that are shared by both families.
Patch #4 adds the support for the SSD132x controller family.
Patch #5 splits out some properties that are shared across both controller
families bindings and move them into a separate solomon,ssd-common schema.
Finally patch #6 adds a DT binding schema for the SSD132x controllers.
Best regards,
Javier
Changes in v4:
- Fix ssd132x_primary_plane_atomic_check() with the same change that commit
48e2cc92835 ("drm/ssd130x: Fix atomic_check for disabled planes") did for
the ssd130x_primary_plane_atomic_check() callback.
- Add Thomas Zimmermann's Acked-by tag to all the patches in the series.
Changes in v3:
- Drop the per controller family functions table (Thomas Zimmermann).
- Use different modesetting pipelines for chip families (Thomas Zimmermann).
- Change the i,j variables type to unsigned int (Geert Uytterhoeven).
- Fix "No newline at end of file" in solomon,ssd-common.yaml (Rob Herring).
- Add Rob Herring's Reviewed-by tag to patch #5.
- Add Rob Herring's Reviewed-by tag to patch #6.
Changes in v2:
- Add Geert Uytterhoeven's Reviewed-by tag to patch #1.
- Squash patch that uses drm_format_info_min_pitch() to calculate dest_pitch
with the following patch (Geert Uytterhoeven).
- Store ssd13xx_family_funcs[SSD130X_FAMILY] in struct ssd130x_deviceinfo
(Geert Uytterhoeven).
- Don't mix switch (family_id) and ssd13xx_funcs[family_id] (Geert Uytterhoeven).
- Replace switch (family_id) by an .set_buffer_sizes (Geert Uytterhoeven).
- Move the rect alignment to a per chip family function (Geert Uytterhoeven).
- Align the rectangle to the segment width (Geert Uytterhoeven).
- Drop patches that rename driver and prefixes (Maxime Ripard, Peter Robinson).
- Remove unnecessary 'oneOf' in the SSD132x DT binding schema (Conor Dooley).
- Remove unused DT nodes labels in the binding schema examples (Conor Dooley).
- Split out common Solomon properties into a separate schema (Rob Herring).
Javier Martinez Canillas (6):
drm/ssd130x: Replace .page_height field in device info with a constant
drm/ssd130x: Add a controller family id to the device info data
drm/ssd130x: Rename commands that are shared across chip families
drm/ssd130x: Add support for the SSD132x OLED controller family
dt-bindings: display: Split common Solomon properties in their own
schema
dt-bindings: display: Add SSD132x OLED controllers
.../bindings/display/solomon,ssd-common.yaml | 42 ++
.../bindings/display/solomon,ssd1307fb.yaml | 28 +-
.../bindings/display/solomon,ssd132x.yaml | 89 +++
MAINTAINERS | 3 +-
drivers/gpu/drm/solomon/Kconfig | 12 +-
drivers/gpu/drm/solomon/ssd130x-i2c.c | 18 +-
drivers/gpu/drm/solomon/ssd130x-spi.c | 27 +-
drivers/gpu/drm/solomon/ssd130x.c | 508 ++++++++++++++++--
drivers/gpu/drm/solomon/ssd130x.h | 17 +-
9 files changed, 645 insertions(+), 99 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd-common.yaml
create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
--
2.41.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 5/6] dt-bindings: display: Split common Solomon properties in their own schema
2023-10-14 7:15 [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
@ 2023-10-14 7:15 ` Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers Javier Martinez Canillas
2023-10-18 12:35 ` [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
2 siblings, 0 replies; 6+ messages in thread
From: Javier Martinez Canillas @ 2023-10-14 7:15 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Peter Robinson, Thomas Zimmermann, Maxime Ripard,
Conor Dooley, Geert Uytterhoeven, Javier Martinez Canillas,
Conor Dooley, Daniel Vetter, David Airlie, Krzysztof Kozlowski,
Maarten Lankhorst, Rob Herring, devicetree, dri-devel
There are DT properties that can be shared across different Solomon OLED
Display Controller families. Split them into a separate common schema to
avoid these properties to be duplicated in different DT bindings schemas.
Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
---
(no changes since v3)
Changes in v3:
- Fix "No newline at end of file" in solomon,ssd-common.yaml (Rob Herring).
- Add Rob Herring's Reviewed-by tag to patch #5.
.../bindings/display/solomon,ssd-common.yaml | 42 +++++++++++++++++++
.../bindings/display/solomon,ssd1307fb.yaml | 28 +------------
MAINTAINERS | 1 +
3 files changed, 44 insertions(+), 27 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd-common.yaml
diff --git a/Documentation/devicetree/bindings/display/solomon,ssd-common.yaml b/Documentation/devicetree/bindings/display/solomon,ssd-common.yaml
new file mode 100644
index 000000000000..3e6998481a75
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/solomon,ssd-common.yaml
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/solomon,ssd-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common properties for Solomon OLED Display Controllers
+
+maintainers:
+ - Javier Martinez Canillas <javierm@redhat.com>
+
+properties:
+ reg:
+ maxItems: 1
+
+ reset-gpios:
+ maxItems: 1
+
+ # Only required for SPI
+ dc-gpios:
+ description:
+ GPIO connected to the controller's D/C# (Data/Command) pin,
+ that is needed for 4-wire SPI to tell the controller if the
+ data sent is for a command register or the display data RAM
+ maxItems: 1
+
+ solomon,height:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Height in pixel of the screen driven by the controller.
+ The default value is controller-dependent.
+
+ solomon,width:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ Width in pixel of the screen driven by the controller.
+ The default value is controller-dependent.
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+additionalProperties: true
diff --git a/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
index 20e2bd15d4d2..3afbb52d1b7f 100644
--- a/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
+++ b/Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
@@ -27,38 +27,12 @@ properties:
- solomon,ssd1307
- solomon,ssd1309
- reg:
- maxItems: 1
-
pwms:
maxItems: 1
- reset-gpios:
- maxItems: 1
-
- # Only required for SPI
- dc-gpios:
- description:
- GPIO connected to the controller's D/C# (Data/Command) pin,
- that is needed for 4-wire SPI to tell the controller if the
- data sent is for a command register or the display data RAM
- maxItems: 1
-
vbat-supply:
description: The supply for VBAT
- solomon,height:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- Height in pixel of the screen driven by the controller.
- The default value is controller-dependent.
-
- solomon,width:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- Width in pixel of the screen driven by the controller.
- The default value is controller-dependent.
-
solomon,page-offset:
$ref: /schemas/types.yaml#/definitions/uint32
default: 1
@@ -148,7 +122,7 @@ required:
- reg
allOf:
- - $ref: /schemas/spi/spi-peripheral-props.yaml#
+ - $ref: solomon,ssd-common.yaml#
- if:
properties:
diff --git a/MAINTAINERS b/MAINTAINERS
index 987152e3be02..c63649e9ba58 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6765,6 +6765,7 @@ DRM DRIVER FOR SOLOMON SSD130X OLED DISPLAYS
M: Javier Martinez Canillas <javierm@redhat.com>
S: Maintained
T: git git://anongit.freedesktop.org/drm/drm-misc
+F: Documentation/devicetree/bindings/display/solomon,ssd-common.yaml
F: Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
F: drivers/gpu/drm/solomon/ssd130x*
--
2.41.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers
2023-10-14 7:15 [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 5/6] dt-bindings: display: Split common Solomon properties in their own schema Javier Martinez Canillas
@ 2023-10-14 7:15 ` Javier Martinez Canillas
2023-10-20 15:34 ` Rob Herring
2023-10-18 12:35 ` [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
2 siblings, 1 reply; 6+ messages in thread
From: Javier Martinez Canillas @ 2023-10-14 7:15 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Peter Robinson, Thomas Zimmermann, Maxime Ripard,
Conor Dooley, Geert Uytterhoeven, Javier Martinez Canillas,
Conor Dooley, Daniel Vetter, David Airlie, Krzysztof Kozlowski,
Maarten Lankhorst, Rob Herring, devicetree, dri-devel
Add a Device Tree binding schema for the OLED panels based on the Solomon
SSD132x family of controllers.
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
---
(no changes since v3)
Changes in v3:
- Add Rob Herring's Reviewed-by tag to patch #6.
Changes in v2:
- Remove unnecessary 'oneOf' in the SSD132x DT binding schema (Conor Dooley).
- Remove unused DT nodes labels in the binding schema examples (Conor Dooley).
- Split out common Solomon properties into a separate schema (Rob Herring).
.../bindings/display/solomon,ssd132x.yaml | 89 +++++++++++++++++++
MAINTAINERS | 2 +-
2 files changed, 90 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
diff --git a/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml b/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
new file mode 100644
index 000000000000..0aa41bd9ddca
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/solomon,ssd132x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Solomon SSD132x OLED Display Controllers
+
+maintainers:
+ - Javier Martinez Canillas <javierm@redhat.com>
+
+properties:
+ compatible:
+ - enum:
+ - solomon,ssd1322
+ - solomon,ssd1325
+ - solomon,ssd1327
+
+required:
+ - compatible
+ - reg
+
+allOf:
+ - $ref: solomon,ssd-common.yaml#
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: solomon,ssd1322
+ then:
+ properties:
+ width:
+ default: 480
+ height:
+ default: 128
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: solomon,ssd1325
+ then:
+ properties:
+ width:
+ default: 128
+ height:
+ default: 80
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: solomon,ssd1327
+ then:
+ properties:
+ width:
+ default: 128
+ height:
+ default: 128
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ oled@3c {
+ compatible = "solomon,ssd1327";
+ reg = <0x3c>;
+ reset-gpios = <&gpio2 7>;
+ };
+
+ };
+ - |
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ oled@0 {
+ compatible = "solomon,ssd1327";
+ reg = <0x0>;
+ reset-gpios = <&gpio2 7>;
+ dc-gpios = <&gpio2 8>;
+ spi-max-frequency = <10000000>;
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index c63649e9ba58..4b518429458b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6766,7 +6766,7 @@ M: Javier Martinez Canillas <javierm@redhat.com>
S: Maintained
T: git git://anongit.freedesktop.org/drm/drm-misc
F: Documentation/devicetree/bindings/display/solomon,ssd-common.yaml
-F: Documentation/devicetree/bindings/display/solomon,ssd1307fb.yaml
+F: Documentation/devicetree/bindings/display/solomon,ssd13*.yaml
F: drivers/gpu/drm/solomon/ssd130x*
DRM DRIVER FOR ST-ERICSSON MCDE
--
2.41.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family
2023-10-14 7:15 [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 5/6] dt-bindings: display: Split common Solomon properties in their own schema Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers Javier Martinez Canillas
@ 2023-10-18 12:35 ` Javier Martinez Canillas
2 siblings, 0 replies; 6+ messages in thread
From: Javier Martinez Canillas @ 2023-10-18 12:35 UTC (permalink / raw)
To: linux-kernel
Cc: Rob Herring, Peter Robinson, Thomas Zimmermann, Maxime Ripard,
Conor Dooley, Geert Uytterhoeven, Conor Dooley, Daniel Vetter,
David Airlie, Krzysztof Kozlowski, Maarten Lankhorst, Rob Herring,
devicetree, dri-devel
Javier Martinez Canillas <javierm@redhat.com> writes:
> Hello,
>
> This patch-set adds support for the family of SSD132x Solomon controllers,
> such as the SSD1322, SSD1325 and SSD1327 chips. These are used for 16 Gray
> Scale Dot Matrix OLED panels.
>
> This is a v4 that just rebases on top of commit a48e2cc92835 ("drm/ssd130x:
> Fix atomic_check for disabled planes"), that landed in drm-misc tree and
> conflicts with this series.
>
Pushed to drm-misc (drm-misc-next). Thanks!
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers
2023-10-14 7:15 ` [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers Javier Martinez Canillas
@ 2023-10-20 15:34 ` Rob Herring
2023-10-20 22:28 ` Javier Martinez Canillas
0 siblings, 1 reply; 6+ messages in thread
From: Rob Herring @ 2023-10-20 15:34 UTC (permalink / raw)
To: Javier Martinez Canillas
Cc: linux-kernel, Peter Robinson, Thomas Zimmermann, Maxime Ripard,
Conor Dooley, Geert Uytterhoeven, Conor Dooley, Daniel Vetter,
David Airlie, Krzysztof Kozlowski, Maarten Lankhorst, devicetree,
dri-devel
On Sat, Oct 14, 2023 at 2:15 AM Javier Martinez Canillas
<javierm@redhat.com> wrote:
>
> Add a Device Tree binding schema for the OLED panels based on the Solomon
> SSD132x family of controllers.
>
> Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
>
> (no changes since v3)
>
> Changes in v3:
> - Add Rob Herring's Reviewed-by tag to patch #6.
>
> Changes in v2:
> - Remove unnecessary 'oneOf' in the SSD132x DT binding schema (Conor Dooley).
> - Remove unused DT nodes labels in the binding schema examples (Conor Dooley).
> - Split out common Solomon properties into a separate schema (Rob Herring).
>
> .../bindings/display/solomon,ssd132x.yaml | 89 +++++++++++++++++++
> MAINTAINERS | 2 +-
> 2 files changed, 90 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml b/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
> new file mode 100644
> index 000000000000..0aa41bd9ddca
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
> @@ -0,0 +1,89 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/solomon,ssd132x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Solomon SSD132x OLED Display Controllers
> +
> +maintainers:
> + - Javier Martinez Canillas <javierm@redhat.com>
> +
> +properties:
> + compatible:
> + - enum:
Now this is a warning in linux-next. The '-' should not be there.
Please send a fix.
Not sure why there wasn't a report, but most likely it didn't apply to v6.6-rc1.
Rob
> + - solomon,ssd1322
> + - solomon,ssd1325
> + - solomon,ssd1327
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers
2023-10-20 15:34 ` Rob Herring
@ 2023-10-20 22:28 ` Javier Martinez Canillas
0 siblings, 0 replies; 6+ messages in thread
From: Javier Martinez Canillas @ 2023-10-20 22:28 UTC (permalink / raw)
To: Rob Herring
Cc: linux-kernel, Peter Robinson, Thomas Zimmermann, Maxime Ripard,
Conor Dooley, Geert Uytterhoeven, Conor Dooley, Daniel Vetter,
David Airlie, Krzysztof Kozlowski, Maarten Lankhorst, devicetree,
dri-devel
Rob Herring <robh@kernel.org> writes:
Hello Rob,
> On Sat, Oct 14, 2023 at 2:15 AM Javier Martinez Canillas
> <javierm@redhat.com> wrote:
[...]
>> +maintainers:
>> + - Javier Martinez Canillas <javierm@redhat.com>
>> +
>> +properties:
>> + compatible:
>> + - enum:
>
> Now this is a warning in linux-next. The '-' should not be there.
> Please send a fix.
>
Sure, I'll post a fix. Thanks for reporting the issue.
This is a leftover from when the compatible string enum was a 'oneOf'
child and the 'oneOf' got removed during the binding schema review.
> Not sure why there wasn't a report, but most likely it didn't apply to v6.6-rc1.
>
Yes, I'm not sure either. I didn't notice it when testing with:
make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
> Rob
>
--
Best regards,
Javier Martinez Canillas
Core Platforms
Red Hat
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-10-20 22:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-14 7:15 [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 5/6] dt-bindings: display: Split common Solomon properties in their own schema Javier Martinez Canillas
2023-10-14 7:15 ` [PATCH v4 6/6] dt-bindings: display: Add SSD132x OLED controllers Javier Martinez Canillas
2023-10-20 15:34 ` Rob Herring
2023-10-20 22:28 ` Javier Martinez Canillas
2023-10-18 12:35 ` [PATCH v4 0/6] drm/solomon: Add support for the SSD132x controller family Javier Martinez Canillas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).