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 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> 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 }; 126