drivers: ssd1673: add DT properties for configuration registers

The values for the registers like GDV, SDV and Boarder Waveform
depend on the panel and display controller. Add DT properties
and obtain such values from DT.

Signed-off-by: Johann Fischer <j.fischer@phytec.de>
This commit is contained in:
Johann Fischer 2019-02-04 17:09:53 +01:00 committed by Anas Nashif
commit f7495ef8eb
4 changed files with 67 additions and 8 deletions

View file

@ -129,6 +129,11 @@
reset-gpios = <&gpio0 15 0>; reset-gpios = <&gpio0 15 0>;
dc-gpios = <&gpio0 16 0>; dc-gpios = <&gpio0 16 0>;
busy-gpios = <&gpio0 14 0>; busy-gpios = <&gpio0 14 0>;
gdv-a = <0x10>;
gdv-b = <0x0a>;
sdv = <0x19>;
vcom = <0xa8>;
border-waveform = <0x71>;
}; };
}; };

View file

@ -467,20 +467,24 @@ static int ssd1673_controller_init(struct device *dev)
return err; return err;
} }
tmp[0] = SSD1673_VAL_GDV_CTRL_A; tmp[0] = DT_SOLOMON_SSD1673FB_0_GDV_A;
tmp[1] = SSD1673_VAL_GDV_CTRL_B; #if defined(DT_SOLOMON_SSD1673FB_0_GDV_B)
tmp[1] = DT_SOLOMON_SSD1673FB_0_GDV_B;
err = ssd1673_write_cmd(driver, SSD1673_CMD_GDV_CTRL, tmp, 2); err = ssd1673_write_cmd(driver, SSD1673_CMD_GDV_CTRL, tmp, 2);
#else
err = ssd1673_write_cmd(driver, SSD1673_CMD_GDV_CTRL, tmp, 1);
#endif
if (err < 0) { if (err < 0) {
return err; return err;
} }
tmp[0] = SSD1673_VAL_SDV_CTRL; tmp[0] = DT_SOLOMON_SSD1673FB_0_SDV;
err = ssd1673_write_cmd(driver, SSD1673_CMD_SDV_CTRL, tmp, 1); err = ssd1673_write_cmd(driver, SSD1673_CMD_SDV_CTRL, tmp, 1);
if (err < 0) { if (err < 0) {
return err; return err;
} }
tmp[0] = SSD1673_VAL_VCOM_VOLTAGE; tmp[0] = DT_SOLOMON_SSD1673FB_0_VCOM;
err = ssd1673_write_cmd(driver, SSD1673_CMD_VCOM_VOLTAGE, tmp, 1); err = ssd1673_write_cmd(driver, SSD1673_CMD_VCOM_VOLTAGE, tmp, 1);
if (err < 0) { if (err < 0) {
return err; return err;
@ -498,6 +502,12 @@ static int ssd1673_controller_init(struct device *dev)
return err; return err;
} }
tmp[0] = DT_SOLOMON_SSD1673FB_0_BORDER_WAVEFORM;
err = ssd1673_write_cmd(driver, SSD1673_CMD_BWF_CTRL, tmp, 1);
if (err < 0) {
return err;
}
ssd1673_set_orientation_internall(driver); ssd1673_set_orientation_internall(driver);
err = ssd1673_write_cmd(driver, SSD1673_CMD_UPDATE_LUT, err = ssd1673_write_cmd(driver, SSD1673_CMD_UPDATE_LUT,

View file

@ -66,10 +66,6 @@
#define SSD1673_SLEEP_MODE_PON 0x00 #define SSD1673_SLEEP_MODE_PON 0x00
/* Default values */ /* Default values */
#define SSD1673_VAL_GDV_CTRL_A 16
#define SSD1673_VAL_GDV_CTRL_B 10
#define SSD1673_VAL_SDV_CTRL 0x19
#define SSD1673_VAL_VCOM_VOLTAGE 0xa8
#define SSD1673_VAL_DUMMY_LINE 0x1a #define SSD1673_VAL_DUMMY_LINE 0x1a
#define SSD1673_VAL_GATE_LWIDTH 0x08 #define SSD1673_VAL_GATE_LWIDTH 0x08

View file

@ -41,6 +41,54 @@ properties:
description: Number of bits used for the width parameters description: Number of bits used for the width parameters
generation: define generation: define
gdv-a:
type: hex
category: required
description: Gate driving voltage (A value)
generation: define
gdv-b:
type: hex
category: optional
description: Gate driving voltage (B value)
generation: define
sdv:
type: hex
category: required
description: Source driving voltage
generation: define
vcom:
type: hex
category: required
description: VCOM voltage
generation: define
border-waveform:
type: hex
category: required
description: Border waveform
generation: define
softstart-1:
type: hex
category: optional
description: Booster soft start phase 1
generation: define
softstart-2:
type: hex
category: optional
description: Booster soft start phase 2
generation: define
softstart-3:
type: hex
category: optional
description: Booster soft start phase 3
generation: define
orientation-flipped: orientation-flipped:
type: boolean type: boolean
category: optional category: optional