Skip to contentSkip to conversation

dt-bindings: display: add bindings for pcd8544 displays

PATCH Superseded Viktar Simanenka 2 participants 5 messages Jul 20, 2023 – Jul 23, 2023

Subsystems (3)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/2 dt-bindings: display: add bindings for pcd8544 displays

Add device tree binding documentation for PCD8544 LCD display controller.

---
v3:add a little more description to the exposed vendor properties
add commit message finally
v2 link: https://lore.kernel.org/linux-devicetree/[email protected]/

 .../bindings/display/nxp,pcd8544.yaml         | 95 +++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/nxp,pcd8544.yaml
Documentation/devicetree/bindings/display/nxp,pcd8544.yaml new file +95 -0
new file mode 100644
index 000000000000..bacdeff9776e
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/nxp,pcd8544.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Philips Semiconductors PCD8544 LCD Display Controller
+
+maintainers:
+  - Viktar Simanenka <[email protected]>
+
+description: |
+  Philips Semiconductors PCD8544 LCD Display Controller with SPI control bus.
+  Designed to drive a graphic display of 48 rows and 84 columns,
+  such as Nokia 5110/3310 LCDs.
+
+allOf:
+  - $ref: panel/panel-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - nxp,pcd8544
+
+  dc-gpios:
+    maxItems: 1
+    description: Data/Command selection pin (D/CX)
+
+  reset-gpios:
+    maxItems: 1
+    description: Display Reset pin (RST)
+
+  nxp,inverted:
+    type: boolean
+    description: Display color inversion
+
+  nxp,voltage-op:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 127
+    description: |
+      Liquid crystall voltage operation coefficient. Determines the LCD
+      controlling voltage on display segments. Should be adjusted according
+      to the ambient temperature. Adjusts the contrast of the display.
+
+  nxp,temperature-coeff:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 3
+    description: |
+      Display temperature compensation coefficient. Increases LCD controlling
+      voltage at lower temperatures to maintain optimum contrast.
+
+  nxp,bias:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 7
+    description: |
+      Display bias system coefficient. Should only be changed if an external
+      oscillator is used for the display.
+
+required:
+  - compatible
+  - reg
+  - dc-gpios
+  - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        display@0 {
+            compatible = "nxp,pcd8544";
+            reg = <0>;
+            spi-max-frequency = <8000000>;
+
+            dc-gpios = <&pio 0 3 GPIO_ACTIVE_HIGH>; /* DC=PA3 */
+            reset-gpios = <&pio 0 1 GPIO_ACTIVE_HIGH>; /* RESET=PA1 */
+            backlight = <&backlight>;
+
+            nxp,inverted;
+            nxp,voltage-op = <0>;
+            nxp,bias = <4>;
+            nxp,temperature-coeff = <0>;
+        };
+    };
+
+...
Signature · 1 line
2.34.1
#1 lore raw

PATCH v3 2/2 drm/tiny: add display driver for philips pcd8544 display controller

Add support for monochrome LCD SPI displays (such as Nokia 5110/3310 LCD) based on PCD8544 LCD display controller.

---
v3:nothing changed from v2
v2:checked and fixed with sparse and smatch
changed param prefixes
v2 link: https://lore.kernel.org/linux-devicetree/[email protected]/

 drivers/gpu/drm/tiny/Kconfig   |  11 +
 drivers/gpu/drm/tiny/Makefile  |   1 +
 drivers/gpu/drm/tiny/pcd8544.c | 506 +++++++++++++++++++++++++++++++++
 3 files changed, 518 insertions(+)
 create mode 100644 drivers/gpu/drm/tiny/pcd8544.c
drivers/gpu/drm/tiny/Kconfig +11 -0
index f6889f649bc1..10caa0818253 100644
@@ -172,6 +172,17 @@ config TINYDRM_MI0283QT
 	  DRM driver for the Multi-Inno MI0283QT display panel
 	  If M is selected the module will be called mi0283qt.
 
+config TINYDRM_PCD8544
+	tristate "DRM support for PCD8544 displays"
+	depends on DRM && SPI
+	select DRM_KMS_HELPER
+	select DRM_GEM_DMA_HELPER
+	select BACKLIGHT_CLASS_DEVICE
+	help
+	  DRM driver for PCD8544 (Nokia 5110/3310) 84x48 LCD displays.
+
+	  If M is selected the module will be called pcd8544.
+
 config TINYDRM_REPAPER
 	tristate "DRM support for Pervasive Displays RePaper panels (V231)"
 	depends on DRM && SPI
drivers/gpu/drm/tiny/Makefile +1 -0
index 76dde89a044b..75bc112a02f9 100644
@@ -13,6 +13,7 @@ obj-$(CONFIG_TINYDRM_ILI9225)		+= ili9225.o
 obj-$(CONFIG_TINYDRM_ILI9341)		+= ili9341.o
 obj-$(CONFIG_TINYDRM_ILI9486)		+= ili9486.o
 obj-$(CONFIG_TINYDRM_MI0283QT)		+= mi0283qt.o
+obj-$(CONFIG_TINYDRM_PCD8544)		+= pcd8544.o
 obj-$(CONFIG_TINYDRM_REPAPER)		+= repaper.o
 obj-$(CONFIG_TINYDRM_ST7586)		+= st7586.o
 obj-$(CONFIG_TINYDRM_ST7735R)		+= st7735r.o
drivers/gpu/drm/tiny/pcd8544.c new file +506 -0

506 lines not on this page · raw message

Signature · 1 line
2.34.1
#2 lore raw
In reply to Viktar Simanenka
Quoted 26 lines · Viktar Simanenka

Add device tree binding documentation for PCD8544 LCD display controller.

---
v3:add a little more description to the exposed vendor properties
add commit message finally
v2 link: https://lore.kernel.org/linux-devicetree/[email protected]/

 .../bindings/display/nxp,pcd8544.yaml         | 95 +++++++++++++++++++
 1 file changed, 95 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/nxp,pcd8544.yaml
Documentation/devicetree/bindings/display/nxp,pcd8544.yaml new file +8 -0
new file mode 100644
index 000000000000..bacdeff9776e
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/nxp,pcd8544.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Philips Semiconductors PCD8544 LCD Display Controller
+

Documentation/devicetree/bindings/display/nxp,pcd8544.yaml line 18

Quoted 10 lines
Documentation/devicetree/bindings/display/nxp,pcd8544.yaml new file +10 -0
+maintainers:
+  - Viktar Simanenka <[email protected]>
+
+description: |
+  Philips Semiconductors PCD8544 LCD Display Controller with SPI control bus.
+  Designed to drive a graphic display of 48 rows and 84 columns,
+  such as Nokia 5110/3310 LCDs.
+
+allOf:
+  - $ref: panel/panel-common.yaml#

This is not a panel, is it?

Documentation/devicetree/bindings/display/nxp,pcd8544.yaml line 20

Quoted 2 lines
Documentation/devicetree/bindings/display/nxp,pcd8544.yaml new file +2 -0
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+

Best regards,
Krzysztof

#3 lore raw
Quoted 6 lines · Krzysztof Kozlowski

Documentation/devicetree/bindings/display/nxp,pcd8544.yaml line 18

Quoted 2 lines · Viktar Simanenka
Documentation/devicetree/bindings/display/nxp,pcd8544.yaml new file +2 -0
+allOf:
+  - $ref: panel/panel-common.yaml#

This is not a panel, is it?

I can't clearly tell the difference between LCD display and panel. I've added panel-common because of 'backlight' and 'reset-gpios' properties. I've looked at 'sitronix,st7735r.yaml', 'ilitek,ili9486.yaml' as examples. SPI controlled LCD displays, but in color.
In fact 'reset-gpios' is already in my yaml. I might just add the 'backlight' property explicitly and remove this dependency. Should I?

#4 lore raw
Quoted 7 lines · Viktar Simanenka
Quoted 5 lines · Krzysztof Kozlowski
Quoted 2 lines · Viktar Simanenka
Documentation/devicetree/bindings/display/nxp,pcd8544.yaml new file +2 -0
+allOf:
+  - $ref: panel/panel-common.yaml#
Quoted 6 lines
Quoted 1 line

This is not a panel, is it?

I can't clearly tell the difference between LCD display and panel. I've added panel-common because of 'backlight' and 'reset-gpios' properties. I've looked at 'sitronix,st7735r.yaml', 'ilitek,ili9486.yaml' as examples. SPI controlled LCD displays, but in

Probably your device is not a panel (datasheet says: LCD controller), thus it should not reference panel-common.

Quoted 3 lines

color.
In fact 'reset-gpios' is already in my yaml. I might just add the 'backlight' property explicitly and remove this dependency. Should I?

Best regards,
Krzysztof