pinetime-zephyr

SSD1306 modification

board level definitions

The desay D6 OLED display gets it power trough a GPIO pin.

In the board definition file one can set it high.

Some minor adjustment in board.c was needed.

under boards/arm/ds_d6 are the board definitions
- ds_d6.dts
- ds_d6_defconfig



vdd_pwr: vdd-pwr-ctrl {
        compatible = "regulator-fixed";
        label = "vdd-pwr-ctrl";
        regulator-name = "vdd-pwr-ctrl";
        enable-gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
        regulator-boot-on;
};

The driver has been placed “out of tree”. It is a modified ssd1306 driver. The ssd1306 behaved somewhat differently. It was renamed to ssd1306new to avoid confusion. In the board definition file the label was adapted.

ssd1306new@0 {
        compatible = "solomon,ssd1306fb";
        spi-max-frequency = <80000000>;
        label = "SSD1306NEW";
        reg = <0>;
        segment-offset = <0>;
        page-offset = <0>;
        display-offset = <0>;
        multiplex-ratio = <31>;
        height = <32>;
        width = <128>;
        segment-remap;
        prechargep = <0xF1>;
        reset-gpios = <&gpio0 4 0>;
        data_cmd-gpios = <&gpio0 28 0>;
};

definition config

In the "ds_d6_defconfig" file we define the driver


 CONFIG_LVGL_DISPLAY_DEV_NAME="SSD1306NEW"
 CONFIG_SSD1306NEW=y