openwrt/target/linux/bcm27xx/patches-4.19/950-0266-overlays-Add-ssd1306-overlay-for-OLED-display.patch
Adrian Schmutzler 7d7aa2fd92 brcm2708: rename target to bcm27xx
This change makes the names of Broadcom targets consistent by using
the common notation based on SoC/CPU ID (which is used internally
anyway), bcmXXXX instead of brcmXXXX.
This is even used for target TITLE in make menuconfig already,
only the short target name used brcm so far.

Despite, since subtargets range from bcm2708 to bcm2711, it seems
appropriate to use bcm27xx instead of bcm2708 (again, as already done
for BOARDNAME).

This also renames the packages brcm2708-userland and brcm2708-gpu-fw.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-02-14 14:10:51 +01:00

105 lines
3.5 KiB
Diff

From d8eac0d3e4f6c6f9e5f789c8e2288699b2afebcb Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Mon, 21 Jan 2019 21:17:27 +0000
Subject: [PATCH] overlays: Add ssd1306 overlay for OLED display
See: https://github.com/raspberrypi/firmware/issues/1098
Signed-off-by: mincepi <mincepi@gmail.com>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 31 ++++++++++++++++
.../arm/boot/dts/overlays/ssd1306-overlay.dts | 36 +++++++++++++++++++
3 files changed, 68 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/ssd1306-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -135,6 +135,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
spi2-1cs.dtbo \
spi2-2cs.dtbo \
spi2-3cs.dtbo \
+ ssd1306.dtbo \
superaudioboard.dtbo \
sx150x.dtbo \
tc358743.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1950,6 +1950,37 @@ Params: cs0_pin GPIO pin
is 'okay' or enabled).
+Name: ssd1306
+Info: Overlay for activation of SSD1306 over I2C OLED display framebuffer.
+Load: dtoverlay=ssd1306,<param>=<val>
+Params: address Location in display memory of first character.
+ (default=0)
+ width Width of display. (default=128)
+ height Height of display. (default=64)
+ offset virtual channel a. (default=0)
+ normal Has no effect on displays tested. (default=not
+ set)
+ sequential Set this if every other scan line is missing.
+ (default=not set)
+ remapped Set this if display is garbled. (default=not
+ set)
+ inverted Set this if display is inverted and mirrored.
+ (default=not set)
+
+ Examples:
+ Typical usage for 128x64 display: dtoverlay=ssd1306,inverted
+
+ Typical usage for 128x32 display: dtoverlay=ssd1306,inverted,sequential
+
+ i2c_baudrate=400000 will speed up the display.
+
+ i2c_baudrate=1000000 seems to work even though it's not officially
+ supported by the hardware, and is faster still.
+
+ For more information refer to the device datasheet at:
+ https://cdn-shop.adafruit.com/datasheets/SSD1306.pdf
+
+
Name: superaudioboard
Info: Configures the SuperAudioBoard sound card
Load: dtoverlay=superaudioboard,<param>=<val>
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/ssd1306-overlay.dts
@@ -0,0 +1,36 @@
+// Overlay for SSD1306 128x64 and 128x32 OLED displays
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2718";
+
+ fragment@0 {
+ target = <&i2c1>;
+ __overlay__ {
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ssd1306: oled@3c{
+ compatible = "solomon,ssd1306fb-i2c";
+ reg = <0x3c>;
+ solomon,width = <128>;
+ solomon,height = <64>;
+ solomon,page-offset = <0>;
+ };
+ };
+ };
+
+ __overrides__ {
+ address = <&ssd1306>,"reg:0";
+ width = <&ssd1306>,"solomon,width:0";
+ height = <&ssd1306>,"solomon,height:0";
+ offset = <&ssd1306>,"solomon,page-offset:0";
+ normal = <&ssd1306>,"solomon,segment-no-remap?";
+ sequential = <&ssd1306>,"solomon,com-seq?";
+ remapped = <&ssd1306>,"solomon,com-lrremap?";
+ inverted = <&ssd1306>,"solomon,com-invdir?";
+ };
+};