blob: 3ca0e9863d836d17b3ef52f601a1b0d2f8203755 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/auxdisplay/hit,hd44780.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Hitachi HD44780 Character LCD Controller
8
9maintainers:
10 - Geert Uytterhoeven <geert@linux-m68k.org>
11
12description:
13 The Hitachi HD44780 Character LCD Controller is commonly used on character
14 LCDs that can display one or more lines of text. It exposes an M6800 bus
15 interface, which can be used in either 4-bit or 8-bit mode. By using a
16 GPIO expander it is possible to use the driver with one of the popular I2C
17 expander boards based on the PCF8574 available for these displays. For
18 an example see below.
19
20properties:
21 compatible:
22 const: hit,hd44780
23
24 data-gpios:
25 description:
26 GPIO pins connected to the data signal lines DB0-DB7 (8-bit mode) or
27 DB4-DB7 (4-bit mode) of the LCD Controller's bus interface.
28 oneOf:
29 - maxItems: 4
30 - maxItems: 8
31
32 enable-gpios:
33 description:
34 GPIO pin connected to the "E" (Enable) signal line of the LCD
35 Controller's bus interface.
36 maxItems: 1
37
38 rs-gpios:
39 description:
40 GPIO pin connected to the "RS" (Register Select) signal line of the LCD
41 Controller's bus interface.
42 maxItems: 1
43
44 rw-gpios:
45 description:
46 GPIO pin connected to the "RW" (Read/Write) signal line of the LCD
47 Controller's bus interface.
48 maxItems: 1
49
50 backlight-gpios:
51 description: GPIO pin used for enabling the LCD's backlight.
52 maxItems: 1
53
54 display-height-chars:
55 description: Height of the display, in character cells,
56 $ref: /schemas/types.yaml#/definitions/uint32
57 minimum: 1
58 maximum: 4
59
60 display-width-chars:
61 description: Width of the display, in character cells.
62 $ref: /schemas/types.yaml#/definitions/uint32
63 minimum: 1
64 maximum: 64
65
66 internal-buffer-width:
67 description:
68 Internal buffer width (default is 40 for displays with 1 or 2 lines, and
69 display-width-chars for displays with more than 2 lines).
70 $ref: /schemas/types.yaml#/definitions/uint32
71 minimum: 1
72 maximum: 64
73
74required:
75 - compatible
76 - data-gpios
77 - enable-gpios
78 - rs-gpios
79 - display-height-chars
80 - display-width-chars
81
82additionalProperties: false
83
84examples:
85 - |
86 #include <dt-bindings/gpio/gpio.h>
Tom Rini6bb92fc2024-05-20 09:54:58 -060087 display-controller {
88 compatible = "hit,hd44780";
Tom Rini53633a82024-02-29 12:33:36 -050089
Tom Rini6bb92fc2024-05-20 09:54:58 -060090 data-gpios = <&hc595 0 GPIO_ACTIVE_HIGH>,
91 <&hc595 1 GPIO_ACTIVE_HIGH>,
92 <&hc595 2 GPIO_ACTIVE_HIGH>,
93 <&hc595 3 GPIO_ACTIVE_HIGH>;
94 enable-gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
95 rs-gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
Tom Rini53633a82024-02-29 12:33:36 -050096
Tom Rini6bb92fc2024-05-20 09:54:58 -060097 display-height-chars = <2>;
98 display-width-chars = <16>;
Tom Rini53633a82024-02-29 12:33:36 -050099 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600100
Tom Rini53633a82024-02-29 12:33:36 -0500101 - |
102 #include <dt-bindings/gpio/gpio.h>
103 i2c {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600104 #address-cells = <1>;
105 #size-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500106
Tom Rini6bb92fc2024-05-20 09:54:58 -0600107 pcf8574: gpio-expander@27 {
108 compatible = "nxp,pcf8574";
109 reg = <0x27>;
110 gpio-controller;
111 #gpio-cells = <2>;
112 };
Tom Rini53633a82024-02-29 12:33:36 -0500113 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600114
115 display-controller {
116 compatible = "hit,hd44780";
117 display-height-chars = <2>;
118 display-width-chars = <16>;
119 data-gpios = <&pcf8574 4 GPIO_ACTIVE_HIGH>,
120 <&pcf8574 5 GPIO_ACTIVE_HIGH>,
121 <&pcf8574 6 GPIO_ACTIVE_HIGH>,
122 <&pcf8574 7 GPIO_ACTIVE_HIGH>;
123 enable-gpios = <&pcf8574 2 GPIO_ACTIVE_HIGH>;
124 rs-gpios = <&pcf8574 0 GPIO_ACTIVE_HIGH>;
125 rw-gpios = <&pcf8574 1 GPIO_ACTIVE_HIGH>;
126 backlight-gpios = <&pcf8574 3 GPIO_ACTIVE_HIGH>;
Tom Rini53633a82024-02-29 12:33:36 -0500127 };