From b5ec75dab38af2429278df48121642cb5605e318 Mon Sep 17 00:00:00 2001 From: Jasper Boomer Date: Sun, 24 Jun 2018 12:20:27 -0400 Subject: [PATCH] Add device tree overlay for HD44780 --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 25 ++++++++++ .../boot/dts/overlays/hd44780-lcd-overlay.dts | 46 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/hd44780-lcd-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -38,6 +38,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ gpio-no-irq.dtbo \ gpio-poweroff.dtbo \ gpio-shutdown.dtbo \ + hd44780-lcd.dtbo \ hifiberry-amp.dtbo \ hifiberry-dac.dtbo \ hifiberry-dacplus.dtbo \ --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -639,6 +639,31 @@ Params: gpio_pin GPIO pin external pullup. +Name: hd44780-lcd +Info: Configures an HD44780 compatible LCD display. Uses 4 gpio pins for + data, 2 gpio pins for enable and register select and 1 optional pin + for enabling/disabling the backlight display. +Load: dtoverlay=hd44780-lcd,= +Params: pin_d4 GPIO pin for data pin D4 (default 6) + + pin_d5 GPIO pin for data pin D5 (default 13) + + pin_d6 GPIO pin for data pin D6 (default 19) + + pin_d7 GPIO pin for data pin D7 (default 26) + + pin_en GPIO pin for "Enable" (default 21) + + pin_rs GPIO pin for "Register Select" (default 20) + + pin_bl Optional pin for enabling/disabling the + display backlight. (default disabled) + + display_height Height of the display in characters + + display_width Width of the display in characters + + Name: hifiberry-amp Info: Configures the HifiBerry Amp and Amp+ audio cards Load: dtoverlay=hifiberry-amp --- /dev/null +++ b/arch/arm/boot/dts/overlays/hd44780-lcd-overlay.dts @@ -0,0 +1,46 @@ +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835"; + + fragment@0 { + target-path = "/"; + __overlay__ { + lcd_screen: auxdisplay { + compatible = "hit,hd44780"; + + data-gpios = <&gpio 6 0>, + <&gpio 13 0>, + <&gpio 19 0>, + <&gpio 26 0>; + enable-gpios = <&gpio 21 0>; + rs-gpios = <&gpio 20 0>; + + display-height-chars = <2>; + display-width-chars = <16>; + }; + + }; + }; + + fragment@1 { + target = <&lcd_screen>; + __dormant__ { + backlight-gpios = <&gpio 12 0>; + }; + }; + + __overrides__ { + pin_d4 = <&lcd_screen>,"data-gpios:4"; + pin_d5 = <&lcd_screen>,"data-gpios:16"; + pin_d6 = <&lcd_screen>,"data-gpios:28"; + pin_d7 = <&lcd_screen>,"data-gpios:40"; + pin_en = <&lcd_screen>,"enable-gpios:4"; + pin_rs = <&lcd_screen>,"rs-gpios:4"; + pin_bl = <0>,"+1", <&lcd_screen>,"backlight-gpios:4"; + display_height = <&lcd_screen>,"display-height-chars:0"; + display_width = <&lcd_screen>,"display-width-chars:0"; + }; + +};