drivers: mipi-dbi: use string for mipi-mode property

Use a string for the mipi-mode property over an integer value, as this
significantly improves the readability of the MIPI DBI device binding.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit is contained in:
Daniel DeGrasse 2024-11-12 11:20:25 -06:00 committed by Benjamin Cabé
commit c565c2c6f6
23 changed files with 36 additions and 43 deletions

View file

@ -61,7 +61,7 @@
st7735: st7735@0 { st7735: st7735@0 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <DT_FREQ_M(6)>; mipi-max-frequency = <DT_FREQ_M(6)>;
mipi-mode = <MIPI_DBI_MODE_SPI_3WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_3WIRE";
reg = <0>; reg = <0>;
width = <130>; width = <130>;

View file

@ -66,7 +66,7 @@
st7735: st7735@0 { st7735: st7735@0 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <DT_FREQ_M(6)>; mipi-max-frequency = <DT_FREQ_M(6)>;
mipi-mode = <MIPI_DBI_MODE_SPI_3WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_3WIRE";
reg = <0>; reg = <0>;
width = <130>; width = <130>;

View file

@ -72,7 +72,7 @@
st7735: st7735@0 { st7735: st7735@0 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <DT_FREQ_M(6)>; mipi-max-frequency = <DT_FREQ_M(6)>;
mipi-mode = <MIPI_DBI_MODE_SPI_3WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_3WIRE";
reg = <0>; reg = <0>;
width = <130>; width = <130>;

View file

@ -63,7 +63,7 @@
st7735: st7735@0 { st7735: st7735@0 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <DT_FREQ_M(6)>; mipi-max-frequency = <DT_FREQ_M(6)>;
mipi-mode = <MIPI_DBI_MODE_SPI_3WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_3WIRE";
reg = <0>; reg = <0>;
width = <130>; width = <130>;

View file

@ -109,7 +109,7 @@
nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23]; nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];
ram-param = [00 F0]; ram-param = [00 F0];
rgb-param = [CD 08 14]; rgb-param = [CD 08 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
}; };
}; };

View file

@ -85,7 +85,7 @@
nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e]; nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e];
ram-param = [00 E0]; ram-param = [00 E0];
rgb-param = [40 02 14]; rgb-param = [40 02 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
}; };

View file

@ -96,7 +96,7 @@
nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e]; nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e];
ram-param = [00 F0]; ram-param = [00 F0];
rgb-param = [40 02 14]; rgb-param = [40 02 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
}; };
}; };

View file

@ -112,7 +112,7 @@
nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23]; nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];
ram-param = [00 F0]; ram-param = [00 F0];
rgb-param = [CD 08 14]; rgb-param = [CD 08 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
}; };
}; };

View file

@ -64,7 +64,7 @@
}; };
&st7796s { &st7796s {
mipi-mode = <MIPI_DBI_MODE_8080_BUS_8_BIT>; mipi-mode = "MIPI_DBI_MODE_8080_BUS_8_BIT";
/* /*
* Display supports minimum write cycle time of 66ns. This * Display supports minimum write cycle time of 66ns. This
* means we can clock the LCDIC module at 30MHz, as * means we can clock the LCDIC module at 30MHz, as

View file

@ -39,7 +39,7 @@
reg = <0>; reg = <0>;
/* Baud rate on each pin is 1MHz */ /* Baud rate on each pin is 1MHz */
mipi-max-frequency = <10000000>; mipi-max-frequency = <10000000>;
mipi-mode = <MIPI_DBI_MODE_8080_BUS_16_BIT>; mipi-mode = "MIPI_DBI_MODE_8080_BUS_16_BIT";
height = <320>; height = <320>;
width = <480>; width = <480>;
invert-mode = "1-dot"; invert-mode = "1-dot";

View file

@ -22,7 +22,7 @@
st7735r_st7735r_ada_160x128: st7735r@0 { st7735r_st7735r_ada_160x128: st7735r@0 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <20000000>; mipi-max-frequency = <20000000>;
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
reg = <0>; reg = <0>;
width = <160>; width = <160>;
height = <128>; height = <128>;

View file

@ -42,7 +42,7 @@
nvgam-param = [D0 00 02 07 05 15 2D 44 44 1C 18 16 1C 1D]; nvgam-param = [D0 00 02 07 05 15 2D 44 44 1C 18 16 1C 1D];
ram-param = [00 F8]; ram-param = [00 F8];
rgb-param = [CD 08 14]; rgb-param = [CD 08 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
}; };
}; };

View file

@ -44,7 +44,7 @@
nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23]; nvgam-param = [D0 04 0C 11 13 2C 3F 44 51 2F 1F 1F 20 23];
ram-param = [00 F0]; ram-param = [00 F0];
rgb-param = [CD 08 14]; rgb-param = [CD 08 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
}; };
}; };

View file

@ -106,7 +106,7 @@
caset = [00 01 00 a0]; caset = [00 01 00 a0];
raset = [00 1a 00 69]; raset = [00 1a 00 69];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
mipi-max-frequency = <4000000>; mipi-max-frequency = <4000000>;
}; };
}; };

View file

@ -87,7 +87,7 @@
st7789v: lcd-panel@0 { st7789v: lcd-panel@0 {
compatible = "sitronix,st7789v"; compatible = "sitronix,st7789v";
reg = <0>; reg = <0>;
mipi-mode = <MIPI_DBI_MODE_8080_BUS_16_BIT>; mipi-mode = "MIPI_DBI_MODE_8080_BUS_16_BIT";
/* A write cycle should be 68ns */ /* A write cycle should be 68ns */
mipi-max-frequency = <14705882>; mipi-max-frequency = <14705882>;
width = <240>; width = <240>;

View file

@ -49,7 +49,7 @@
st7735r_160x80: st7735r@0 { st7735r_160x80: st7735r@0 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <20000000>; mipi-max-frequency = <20000000>;
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
reg = <0>; reg = <0>;
width = <160>; width = <160>;
height = <80>; height = <80>;

View file

@ -521,7 +521,8 @@ static const struct ili9xxx_quirks ili9488_quirks = {
.quirks = &ili##t##_quirks, \ .quirks = &ili##t##_quirks, \
.mipi_dev = DEVICE_DT_GET(DT_PARENT(INST_DT_ILI9XXX(n, t))), \ .mipi_dev = DEVICE_DT_GET(DT_PARENT(INST_DT_ILI9XXX(n, t))), \
.dbi_config = { \ .dbi_config = { \
.mode = DT_PROP_OR(INST_DT_ILI9XXX(n, t), \ .mode = DT_STRING_UPPER_TOKEN_OR( \
INST_DT_ILI9XXX(n, t), \
mipi_mode, MIPI_DBI_MODE_SPI_4WIRE), \ mipi_mode, MIPI_DBI_MODE_SPI_4WIRE), \
.config = MIPI_DBI_SPI_CONFIG_DT( \ .config = MIPI_DBI_SPI_CONFIG_DT( \
INST_DT_ILI9XXX(n, t), \ INST_DT_ILI9XXX(n, t), \

View file

@ -494,7 +494,7 @@ static const struct display_driver_api st7735r_api = {
.mipi_dev = DEVICE_DT_GET(DT_INST_PARENT(inst)), \ .mipi_dev = DEVICE_DT_GET(DT_INST_PARENT(inst)), \
.dbi_config = MIPI_DBI_CONFIG_DT_INST(inst, \ .dbi_config = MIPI_DBI_CONFIG_DT_INST(inst, \
SPI_OP_MODE_MASTER | \ SPI_OP_MODE_MASTER | \
((DT_INST_PROP(inst, mipi_mode) == \ ((DT_INST_STRING_UPPER_TOKEN(inst, mipi_mode) == \
MIPI_DBI_MODE_SPI_4WIRE) ? SPI_WORD_SET(8) : \ MIPI_DBI_MODE_SPI_4WIRE) ? SPI_WORD_SET(8) : \
SPI_WORD_SET(9)) | \ SPI_WORD_SET(9)) | \
SPI_HOLD_ON_CS | SPI_LOCK_ON, 0), \ SPI_HOLD_ON_CS | SPI_LOCK_ON, 0), \

View file

@ -370,7 +370,7 @@ static const struct display_driver_api st7789v_api = {
}; };
#define ST7789V_WORD_SIZE(inst) \ #define ST7789V_WORD_SIZE(inst) \
((DT_INST_PROP(inst, mipi_mode) == MIPI_DBI_MODE_SPI_4WIRE) ? \ ((DT_INST_STRING_UPPER_TOKEN(inst, mipi_mode) == MIPI_DBI_MODE_SPI_4WIRE) ? \
SPI_WORD_SET(8) : SPI_WORD_SET(9)) SPI_WORD_SET(8) : SPI_WORD_SET(9))
#define ST7789V_INIT(inst) \ #define ST7789V_INIT(inst) \
static const struct st7789v_config st7789v_config_ ## inst = { \ static const struct st7789v_config st7789v_config_ ## inst = { \

View file

@ -364,7 +364,7 @@ static const struct display_driver_api st7796s_api = {
SPI_OP_MODE_MASTER | \ SPI_OP_MODE_MASTER | \
SPI_WORD_SET(8), \ SPI_WORD_SET(8), \
0), \ 0), \
.mode = DT_INST_PROP_OR(n, mipi_mode, \ .mode = DT_INST_STRING_UPPER_TOKEN_OR(n, mipi_mode, \
MIPI_DBI_MODE_SPI_4WIRE), \ MIPI_DBI_MODE_SPI_4WIRE), \
}, \ }, \
.width = DT_INST_PROP(n, width), \ .width = DT_INST_PROP(n, width), \

View file

@ -1,4 +1,4 @@
# Copyright 2023 NXP # Copyright 2023-2024 NXP
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
# Common fields for MIPI-DBI devices # Common fields for MIPI-DBI devices
@ -13,24 +13,16 @@ properties:
description: Maximum clock frequency of device's MIPI interface in Hz description: Maximum clock frequency of device's MIPI interface in Hz
mipi-mode: mipi-mode:
type: int type: string
description: | description: |
MIPI DBI mode in use. Use the macros, not the actual enum value. Here is MIPI DBI mode in use. These definitions should match those in
the concordance list (see dt-bindings/mipi_dbi/mipi_dbi.h) dt-bindings/mipi_dbi/mipi_dbi.h
1 MIPI_DBI_MODE_SPI_3WIRE
2 MIPI_DBI_MODE_SPI_4WIRE
3 MIPI_DBI_MODE_6800_BUS_16_BIT
4 MIPI_DBI_MODE_6800_BUS_9_BIT
5 MIPI_DBI_MODE_6800_BUS_8_BIT
6 MIPI_DBI_MODE_8080_BUS_16_BIT
7 MIPI_DBI_MODE_8080_BUS_9_BIT
8 MIPI_DBI_MODE_8080_BUS_8_BIT
enum: enum:
- 1 - "MIPI_DBI_MODE_SPI_3WIRE"
- 2 - "MIPI_DBI_MODE_SPI_4WIRE"
- 3 - "MIPI_DBI_MODE_6800_BUS_16_BIT"
- 4 - "MIPI_DBI_MODE_6800_BUS_9_BIT"
- 5 - "MIPI_DBI_MODE_6800_BUS_8_BIT"
- 6 - "MIPI_DBI_MODE_8080_BUS_16_BIT"
- 7 - "MIPI_DBI_MODE_8080_BUS_9_BIT"
- 8 - "MIPI_DBI_MODE_8080_BUS_8_BIT"

View file

@ -96,7 +96,7 @@ extern "C" {
*/ */
#define MIPI_DBI_CONFIG_DT(node_id, operation_, delay_) \ #define MIPI_DBI_CONFIG_DT(node_id, operation_, delay_) \
{ \ { \
.mode = DT_PROP(node_id, mipi_mode), \ .mode = DT_STRING_UPPER_TOKEN(node_id, mipi_mode), \
.config = MIPI_DBI_SPI_CONFIG_DT(node_id, operation_, delay_), \ .config = MIPI_DBI_SPI_CONFIG_DT(node_id, operation_, delay_), \
} }

View file

@ -60,7 +60,7 @@
test_mipi_dbi_st7735r: st7735t@2 { test_mipi_dbi_st7735r: st7735t@2 {
compatible = "sitronix,st7735r"; compatible = "sitronix,st7735r";
mipi-max-frequency = <250000000>; mipi-max-frequency = <250000000>;
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
reg = <2>; reg = <2>;
/* Arbitrary values */ /* Arbitrary values */
x-offset = <0>; x-offset = <0>;
@ -96,7 +96,7 @@
nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e]; nvgam-param = [d0 00 02 07 0a 28 31 54 47 0e 1c 17 1b 1e];
ram-param = [00 E0]; ram-param = [00 E0];
rgb-param = [40 02 14]; rgb-param = [40 02 14];
mipi-mode = <MIPI_DBI_MODE_SPI_4WIRE>; mipi-mode = "MIPI_DBI_MODE_SPI_4WIRE";
}; };
test_mipi_dbi_ssd1680: ssd1680@4 { test_mipi_dbi_ssd1680: ssd1680@4 {