5ca33e20a8
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>
96 lines
2.4 KiB
YAML
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.
|