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>;
};
In the "ds_d6_defconfig" file we define the driver
CONFIG_LVGL_DISPLAY_DEV_NAME="SSD1306NEW"
CONFIG_SSD1306NEW=y