Merge tag 'hid-for-linus-2024020101' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / auxdisplay / hit,hd44780.yaml
1 # 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
7 title: Hitachi HD44780 Character LCD Controller
8
9 maintainers:
10   - Geert Uytterhoeven <geert@linux-m68k.org>
11
12 description:
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
20 properties:
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
74 required:
75   - compatible
76   - data-gpios
77   - enable-gpios
78   - rs-gpios
79   - display-height-chars
80   - display-width-chars
81
82 additionalProperties: false
83
84 examples:
85   - |
86     #include <dt-bindings/gpio/gpio.h>
87     auxdisplay {
88             compatible = "hit,hd44780";
89
90             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>;
96
97             display-height-chars = <2>;
98             display-width-chars = <16>;
99     };
100   - |
101     #include <dt-bindings/gpio/gpio.h>
102     i2c {
103             #address-cells = <1>;
104             #size-cells = <0>;
105
106             pcf8574: pcf8574@27 {
107                     compatible = "nxp,pcf8574";
108                     reg = <0x27>;
109                     gpio-controller;
110                     #gpio-cells = <2>;
111             };
112     };
113     hd44780 {
114             compatible = "hit,hd44780";
115             display-height-chars = <2>;
116             display-width-chars = <16>;
117             data-gpios = <&pcf8574 4 0>,
118                          <&pcf8574 5 0>,
119                          <&pcf8574 6 0>,
120                          <&pcf8574 7 0>;
121             enable-gpios = <&pcf8574 2 0>;
122             rs-gpios = <&pcf8574 0 0>;
123             rw-gpios = <&pcf8574 1 0>;
124             backlight-gpios = <&pcf8574 3 0>;
125     };