SSDFB(4)

πŸ“¦
version 11.0 Β· 2 versions
, in nixpkgs unstable

πŸ’– SSDFB(4) β€” the OLED/PLED framebuffer device driver bestie πŸ’–

Okay so like, this is the manual page for ssdfb, a kernel driver for OLED/PLED framebuffer stuff. It's giving "I make tiny screens work" and honestly? We're obsessed. Let's get into it, bestie.


✨ SYNOPSIS ✨

So the way you wire this bad boy up is literally one of these:

options FONT_SPLEEN5x8
ssdfb* at iic? addr ?
ssdfb* at iic? addr 0x3c
ssdfb* at iic? addr 0x3d flags 0x102
ssdfb* at spi? slave ? flags 0x105
wsdisplay* at ssdfb?

No cap, that's the whole vibe. Pick your lane. 🫢


🌸 DESCRIPTION 🌸

So ssdfb is the driver that gives you wsdisplay(4) support for OLED/PLED framebuffer modules. And not just any modules β€” specifically the ones based on these controller chips, periodt:

  • πŸ’… Solomon Systech Ltd SSD1306
  • πŸ’… Sino Wealth Electronic Ltd SH1106
  • πŸ’… Solomon Systech Ltd SSD1322
  • πŸ’… Solomon Systech Ltd SSD1353

And the products it supports? A whole lineup β€” controller + panel assemblies, every single one, listed here with their exact IDs because we do not skip details in this house:

  • 0x01: Generic SSD1306 modules using default settings
  • 0x02: Generic SH1106 modules using default settings
  • 0x03: Adafruit Industries, LLC product 931 (128x32)
  • 0x04: Adafruit Industries, LLC product 938 (128x64)
  • 0x05: Generic SSD1322 modules using default settings
  • 0x06: Generic SSD1353 modules using default settings
  • 0x07: Display Elektronik GmbH DEP 160128A(1)-RGB

Now, the flags value β€” this is where you can stack options. Bitwise OR'ed, meaning you combine them. Each one of these, okay?

  • 0x0??: Exactly one product id from the list above. Literally pick one, don't be greedy. πŸ’€
  • 0x100: Says the display is mounted upside down and flips the screen. So if your screen is doing the whole "hello from the upside down" thing, this is your girl.
  • 0x200: Turns on inverse video. High contrast, different vibe.
  • 0x400: Forcibly attaches as console. Like, "you WILL be my console" energy. πŸ”₯

And on most displays, you can adjust the contrast setting with the wsconsctl(8) program. Cute, right?


πŸŽ€ EXAMPLES πŸŽ€

Okay bestie, real-world setups. Two of them. Let's go.

Example number one: attaching an SSD1322 display using the 4-wire spi(4) interface on an Allwinner A20 ARM single board computer. The Device Tree overlay you'd use is literally this:

&spi0 {
        ssdfb@0 {
                compatible = "solomon,ssd1322";
                reg = <0x00>;
                dc-gpio = <0x10 0x07 0x02 0x00>;
                status = "okay";
        };
};

That's it. That's the whole thing. No notes. ✨

Example number two: attaching an SSD1306 display using the iic(4) interface on the same board. You'd use:

&i2c2 {
        ssdfb@3c {
                compatible = "solomon,ssd1306fb-i2c";
                reg = <0x3c>;
                status = "okay";
        };
};

See? Iconic. πŸ¦‹


πŸ‘‘ SEE ALSO πŸ‘‘

  • iic(4) β€” I mean, you need the i2c bus, right?
  • wsdisplay(4) β€” the display framework this all hooks into.

That's the whole list. Two. We don't need more. Lowkey perfect.


🌈 HISTORY 🌈

So an ssdfb driver first appeared in OpenBSD 6.4 and later in NetBSD 9.0. Glow-up timeline, honestly. ✨


πŸ’œ AUTHORS πŸ’œ

The ssdfb driver was written by Tobias Nygren <tnn@NetBSD.org>. Shoutout, legend. 🫢

It was inspired by (and shares its name with) the OpenBSD driver written by Patrick Wildt <patrick@blueri.se> β€” but it does not share any code. Different code, same name, mutual respect. We love to see it. πŸ’…


Okay so that's the whole page, bestie. No cap, you're now fully informed. This driver was documented in the Debian world, dated August 5, 2021, and honestly? That date is giving "summer glow-up" and we stan. Periodt. πŸ’–πŸŒΈπŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from