From d48bdb841fb88046fb3e35de1c95e47f1a533f6f Mon Sep 17 00:00:00 2001 From: Rico Ganahl Date: Fri, 23 Dec 2022 13:21:11 +0100 Subject: [PATCH] boards: shield: introduce st_b_lcd40_dsi1_mb1166 Add support for STMicroelectronics B-LCD40-DSI1 board supporting MIPI DSI display. Signed-off-by: Rico Ganahl --- .../st_b_lcd40_dsi1_mb1166/Kconfig.defconfig | 12 ++ .../st_b_lcd40_dsi1_mb1166/Kconfig.shield | 5 + .../boards/stm32h747i_disco_m7.conf | 8 ++ .../boards/stm32h747i_disco_m7.overlay | 68 ++++++++++ .../st_b_lcd40_dsi1_mb1166/doc/connectors.jpg | Bin 0 -> 12345 bytes .../st_b_lcd40_dsi1_mb1166/doc/image.jpg | Bin 0 -> 7615 bytes .../st_b_lcd40_dsi1_mb1166/doc/index.rst | 118 ++++++++++++++++++ .../st_b_lcd40_dsi1_mb1166.overlay | 17 +++ 8 files changed, 228 insertions(+) create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.defconfig create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.shield create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.conf create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.overlay create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/doc/connectors.jpg create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/doc/image.jpg create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/doc/index.rst create mode 100644 boards/shields/st_b_lcd40_dsi1_mb1166/st_b_lcd40_dsi1_mb1166.overlay diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.defconfig b/boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.defconfig new file mode 100644 index 00000000000000..1989a2444a7770 --- /dev/null +++ b/boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.defconfig @@ -0,0 +1,12 @@ +# Copyright (c) 2023 bytes at work AG +# SPDX-License-Identifier: Apache-2.0 + +if SHIELD_ST_B_LCD40_DSI1_MB1166 + +config DISPLAY + default y + +config GPIO + default y + +endif # SHIELD_ST_B_LCD40_DSI1_MB1166 diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.shield b/boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.shield new file mode 100644 index 00000000000000..c46fa19b33cd4f --- /dev/null +++ b/boards/shields/st_b_lcd40_dsi1_mb1166/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2023 bytes at work AG +# SPDX-License-Identifier: Apache-2.0 + +config SHIELD_ST_B_LCD40_DSI1_MB1166 + def_bool $(shields_list_contains,st_b_lcd40_dsi1_mb1166) diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.conf b/boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.conf new file mode 100644 index 00000000000000..09ba121ded8ae1 --- /dev/null +++ b/boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.conf @@ -0,0 +1,8 @@ +# Copyright (c) 2023 bytes at work AG +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_MEMC=y +CONFIG_STM32_LTDC_RGB888=y +CONFIG_HEAP_MEM_POOL_SIZE=65536 +# Initialize after LTDC +CONFIG_DISPLAY_OTM8009A_INIT_PRIORITY=86 diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.overlay b/boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.overlay new file mode 100644 index 00000000000000..aba168ad33a61a --- /dev/null +++ b/boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_m7.overlay @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2023 bytes at work AG + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + chosen { + zephyr,display = <dc; + }; +}; + +<dc { + status = "okay"; + ext-sdram = <&sdram2>; + + /* orisetech, otm8009a */ + width = <800>; + height = <480>; + hsync-pol = ; + vsync-pol = ; + de-pol = ; + pclk-pol = ; + hsync-duration = <2>; + vsync-duration = <1>; + hbp-duration = <34>; + vbp-duration = <15>; + hfp-duration = <34>; + vfp-duration = <16>; + + def-back-color-red = <0>; + def-back-color-green = <0>; + def-back-color-blue = <0>; +}; + +/* ltdc uses pll3_r as pixel clock */ +&pll3 { + status = "okay"; + clocks = <&clk_hse>; + div-m = <5>; + mul-n = <132>; + div-p = <2>; + div-q = <2>; + div-r = <24>; /* 27.5 MHz */ +}; + +&mipi_dsi { + status = "okay"; + + /* DSI HOST dedicated PLL + * F_VCO = CLK_IN / pll-idf * 2 * pll-ndiv + * PHI = F_VCO / 2 / (1 << pll-odf) = lane_byte_clk + * = 25 MHz / 5 * 2 * 100 / 2 / (1<<0) / 8 = 62.5 MHz + */ + pll-ndiv = <100>; + pll-idf = <5>; + pll-odf = <0>; + + vs-active-high; + hs-active-high; + de-active-high; +}; + +&otm8009a { + data-lanes = <2>; + pixel-format = ; + rotation = <90>; +}; diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/doc/connectors.jpg b/boards/shields/st_b_lcd40_dsi1_mb1166/doc/connectors.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0cf217a19ae7741ba8cefbfee4f61d965e504b9c GIT binary patch literal 12345 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 iD}>%U_7y(3dFGkt+)m#vgJ7ykNF@*$3 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 literal 0 HcmV?d00001 diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/doc/index.rst b/boards/shields/st_b_lcd40_dsi1_mb1166/doc/index.rst new file mode 100644 index 00000000000000..407f8c6efdaa03 --- /dev/null +++ b/boards/shields/st_b_lcd40_dsi1_mb1166/doc/index.rst @@ -0,0 +1,118 @@ +.. _st_b_lcd40_dsi1_mb1166_shield: + +ST B-LCD40-DSI1 +############### + +Overview +******** + +The B-LCD40-DSI1 shield provides a 4-inch WVGA TFT LCD with MIPI DSI interface +and capacitive touch screen. + + +.. figure:: image.jpg + :alt: B-LCD40-DSI1 MB1166 Image + :align: center + + B-LCD40-DSI1 MB1166 Image + +.. figure:: connectors.jpg + :alt: B-LCD40-DSI1 MB1166 Connector + :align: center + + B-LCD40-DSI1 MB1166 Connector + ++------+--------------+------------+-------+--------------+-----------------+ +| CN1 | Description | Interface | CN1 | Description | Interface | +| odd | | | even | | | ++======+==============+============+=======+==============+=================+ +| 1 | GND | - | 2 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 3 | DSI_CK_P | DSI | 4 | TOUCH_INT | Interrupt out | ++------+--------------+------------+-------+--------------+-----------------+ +| 5 | DSI_CK_N | DSI | 6 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 7 | GND | - | 8 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 9 | DSI_D0_P | DSI | 10 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 11 | DSI_D0_N | DSI | 12 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 13 | GND | - | 14 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 15 | DSI_D1_P | DSI | 16 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 17 | DSI_D1_N | DSI | 18 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 19 | GND | - | 20 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 21 | BLVDD(+5V) | - | 22 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 23 | BLVDD(+5V) | - | 24 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 25 | - | - | 26 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 27 | BLGND | - | 28 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 29 | BLGND | - | 30 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 31 | - | - | 32 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 33 | - | - | 34 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 35 | - | - | 36 | VDD | - | +| | | | | (2.8V-3.3V) | | ++------+--------------+------------+-------+--------------+-----------------+ +| 37 | - | - | 38 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 39 | - | - | 40 | I2C_SDA | I2C | ++------+--------------+------------+-------+--------------+-----------------+ +| 41 | - | - | 42 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 43 | - | - | 44 | I2C_SCL | I2C | ++------+--------------+------------+-------+--------------+-----------------+ +| 45 | - | - | 46 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 47 | - | - | 48 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 49 | DSI_TE | DSI | 50 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 51 | - | - | 52 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 53 | BL_CTRL | GPIO | 54 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 55 | - | - | 56 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 57 | RESET | GPIO | 58 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ +| 59 | - | - | 60 | - | - | ++------+--------------+------------+-------+--------------+-----------------+ + + +Requirements +************ + +Your board needs to have a ``mipi_dsi`` device tree label to work with this shield. + +Usage +***** + +The shield can be used in any application by setting ``SHIELD`` to +``st_b_lcd40_dsi1_mb1166`` and adding the necessary device tree properties. + +Set ``-DSHIELD="st_b_lcd40_dsi1_mb1166"`` when you invoke ``west build``. For example: + +.. zephyr-app-commands:: + :zephyr-app: samples/drivers/display + :board: stm32h747i_disco_m7 + :shield: st_b_lcd40_dsi1_mb1166 + :goals: build + +References +********** + +- `Product page `_ + +- `Databrief `_ + +- `User manual `_ diff --git a/boards/shields/st_b_lcd40_dsi1_mb1166/st_b_lcd40_dsi1_mb1166.overlay b/boards/shields/st_b_lcd40_dsi1_mb1166/st_b_lcd40_dsi1_mb1166.overlay new file mode 100644 index 00000000000000..96469ab58de9f9 --- /dev/null +++ b/boards/shields/st_b_lcd40_dsi1_mb1166/st_b_lcd40_dsi1_mb1166.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023 bytes at work AG + * + * SPDX-License-Identifier: Apache-2.0 + */ + +&mipi_dsi { + otm8009a: otm8009a@0 { + status = "okay"; + compatible = "orisetech,otm8009a"; + reg = <0x0>; + height = <800>; + width = <480>; + reset-gpios = <&dsi_lcd_qsh_030 57 GPIO_ACTIVE_HIGH>; + bl-gpios = <&dsi_lcd_qsh_030 53 GPIO_ACTIVE_HIGH>; + }; +};