Skip to content

drivers: display: ssd16xx: Add support for the ssd1677 EPD driver chip #94309

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

nisargjhaveri
Copy link

Add support for the SSD1677 EPD driver chip with support for up to 960x680 pixel displays.

Tested with the Waveshare 4.26" 800x480 display with XIAO BLE board. I believe it is the same as Good Display GDEQ0426T82. Tested with the samples/drivers/display sample.

The SSD1677 requires x address to be full address, instead of the byte address used by SSD16XX. Added a new quirk to handle this.

The display requires a different GDO control flag as the panel layout might be different, add an option to set this.

The display also requires the scan direction for y axis to be reversed, add an option to set this as well.

Example devicetree overlay for the display:

&spi2 {
    cs-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
};

/ {
    chosen {
        zephyr,display = &ssd1677;
    };

    mipi_dbi {
        compatible = "zephyr,mipi-dbi-spi";
        spi-dev = <&spi2>;
        dc-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
        reset-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
        #address-cells = <1>;
        #size-cells = <0>;

        ssd1677: ssd1677@0 {
            compatible = "solomon,ssd1677";
            mipi-max-frequency = <4000000>;
            reg = <0>;
            busy-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;

            width = <480>;
            height = <800>;

            tssv = <0x80>;
            softstart = [AE C7 C3 C0 80];
            gdo-flags = <0x02>;
            scan-y-reverse;

            full {
                border-waveform = <0x01>;
            };

            partial {
                border-waveform = <0x80>;
            };
        };
    };
};

Supersedes #75403

Add support for the SSD1677 EPD driver chip with support for up to
960x680 pixel displays.

Tested with the Waveshare 4.26" 800x480 display with XIAO BLE board.
I believe it is the same as Good Display GDEQ0426T82.
Tested with the samples/drivers/display sample.

The SSD1677 requires x address to be full address, instead of the byte
address used by SSD16XX. Added a new quirk to handle this.

The display requires a different GDO control flag as the panel layout
might be different, add an option to set this.

The display also requires the scan direction for y axis to be reversed,
add an option to set this as well.

Signed-off-by: Nisarg Jhaveri <[email protected]>
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants