zephyr/dts/bindings/display/solomon,ssd16xx-common.yaml
Andreas Sandberg 5ca33e20a8 drivers: ssd16xx: Add support for partial refresh profiles
Add support for partial refresh profiles. This makes it possible to
use partial refresh on generation 2 devices which are able to store
partial refresh LUTs in OTP.

Partial refresh is only enabled if a partial profile has been
provided. The display will use the full refresh profile if in this
case.

Devices that need custom LUTs and voltages can specify them separately
for the full and partial profiles. The controller will be reset when
changing profiles which means that profiles always override the
default reset values. This means that it is, for example, possible to
use default values and LUTs from OTP for a full refresh and a custom
profile for partial refreshes.

For example, to use a GoodDisplay GDEY027T91 with partial refresh
simply use the following device tree fragment:

display: ssd1680@0 {
	compatible = "solomon,ssd1680";

	spi-max-frequency = <4000000>;
	duplex = <SPI_HALF_DUPLEX>;
	reg = <0>;

	dc-gpios = <&arduino_header 15 GPIO_ACTIVE_LOW>;
	reset-gpios = <&arduino_header 14 GPIO_ACTIVE_LOW>;
	busy-gpios = <&arduino_header 13 GPIO_ACTIVE_HIGH>;

	/* Enable the built-in temperature sensor */
	tssv = <0x80>;

	width = <264>;
	height = <176>;

        /* Enable partial refresh using built-in LUT */
	partial {
	};
};

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2023-05-11 14:40:50 -07:00

96 lines
2.4 KiB
YAML

# Copyright (c) 2018, Phytec Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0
description: SSD16XX EPD display controller
include: [spi-device.yaml, display-controller.yaml]
properties:
softstart:
type: uint8-array
description: Booster soft start values
orientation-flipped:
type: boolean
description: Last column address is mapped to first segment
reset-gpios:
type: phandle-array
required: true
description: RESET pin.
The RESET pin of SSD16XX is active low.
If connected directly the MCU pin should be configured
as active low.
dc-gpios:
type: phandle-array
required: true
description: DC pin.
The DC pin of SSD16XX is active low (transmission command byte).
If connected directly the MCU pin should be configured
as active low.
busy-gpios:
type: phandle-array
required: true
description: BUSY pin.
The BUSY pin of SSD16XX is active high.
If connected directly the MCU pin should be configured
as active high.
tssv:
type: int
description: Temperature Sensor Selection Value
Display controller can have integrated temperature sensor or
an external temperature sensor is connected to the controller.
The value selects which sensor should be used.
child-binding:
description: |
Child nodes describe refresh profiles. Each refresh profile
specifies a set of voltages used to drive the refresh
cycle. Refresh profiles are optional and are used to override
defaults loaded from the controllers OTP memory.
Partial refresh will be disabled unless a partial refresh profile
has been specified. That profile may be empty to use the defaults
loaded from OTP if supported by the device.
The driver typically looks for the following child nodes:
- 'full' - Normal / full refresh.
- 'partial' - Partial refresh.
properties:
lut:
type: uint8-array
description: LUT associated with this profile.
gdv:
type: uint8-array
description: Gate driving voltage values
sdv:
type: uint8-array
description: Source driving voltage values
vcom:
type: int
description: VCOM voltage
border-waveform:
type: int
description: Border waveform
dummy-line:
type: int
description: Dummy line period override.
gate-line-width:
type: int
description: Gate line width override.