Skip to content

Commit dacede6

Browse files
iabdalkaderfacchinm
authored andcommitted
boards: shields: Add Arduino Giga display shield.
Add board support for the Arduino Giga display shield. Signed-off-by: Ibrahim Abdalkader <[email protected]>
1 parent e5ef9e4 commit dacede6

File tree

5 files changed

+194
-0
lines changed

5 files changed

+194
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright (c) 2025 Arduino SA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
if SHIELD_ARDUINO_GIGA_DISPLAY_SHIELD
5+
6+
# Double frame buffer maintained by lvgl.
7+
if LVGL
8+
9+
config STM32_LTDC_FB_NUM
10+
default 0
11+
12+
config INPUT
13+
default y
14+
15+
config LV_Z_DOUBLE_VDB
16+
default y
17+
18+
config LV_Z_FULL_REFRESH
19+
default y
20+
21+
config LV_Z_BITS_PER_PIXEL
22+
default 16
23+
24+
config LV_DPI_DEF
25+
default 128
26+
27+
config LV_Z_FLUSH_THREAD
28+
default y
29+
30+
choice LV_COLOR_DEPTH
31+
default LV_COLOR_DEPTH_16
32+
33+
endchoice
34+
35+
endif # LVGL
36+
37+
endif # SHIELD_ARDUINO_GIGA_DISPLAY_SHIELD
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Arduino SA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config SHIELD_ARDUINO_GIGA_DISPLAY_SHIELD
5+
def_bool $(shields_list_contains,arduino_giga_display_shield)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright (c) 2025 Arduino SA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
CONFIG_MEMC=y
5+
CONFIG_STM32_LTDC_RGB565=y
6+
CONFIG_HEAP_MEM_POOL_SIZE=65536
7+
CONFIG_DISPLAY_ST7701_INIT_PRIORITY=87
8+
CONFIG_STM32_LTDC_DISABLE_FMC_BANK1=y
9+
CONFIG_INPUT_GT911_INTERRUPT=y
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
/*
2+
* Copyright (c) 2025 Arduino SA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <zephyr/dt-bindings/display/panel.h>
8+
9+
/ {
10+
lvgl_pointer {
11+
compatible = "zephyr,lvgl-pointer-input";
12+
input = <&gt911>;
13+
};
14+
15+
aliases {
16+
accel0 = &gt911;
17+
};
18+
19+
chosen {
20+
zephyr,display = &zephyr_lcd_controller;
21+
zephyr,touch = &gt911;
22+
};
23+
};
24+
25+
&sdram1 {
26+
/* Frame buffer memory cache will cause screen flickering. */
27+
zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE) )>;
28+
};
29+
30+
&zephyr_lcd_controller {
31+
status = "okay";
32+
ext-sdram = <&sdram1>;
33+
width = <480>;
34+
height = <800>;
35+
def-back-color-red = <0>;
36+
def-back-color-green = <0>;
37+
def-back-color-blue = <0>;
38+
pixel-format = <PANEL_PIXEL_FORMAT_RGB_565>;
39+
40+
disp-on-gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>;
41+
bl-ctrl-gpios = <&gpiob 12 GPIO_ACTIVE_HIGH>;
42+
43+
/* sitronix, st7701 */
44+
display-timings {
45+
compatible = "zephyr,panel-timing";
46+
hsync-active = <1>;
47+
vsync-active = <0>;
48+
de-active = <0>;
49+
pixelclk-active = <0>;
50+
hback-porch = <40>;
51+
hsync-len = <32>;
52+
hfront-porch = <8>;
53+
vback-porch = <6>;
54+
vsync-len = <8>;
55+
vfront-porch = <9>;
56+
};
57+
};
58+
59+
/* ltdc uses pll3_r as pixel clock */
60+
&pll3 {
61+
status = "okay";
62+
clocks = <&clk_hse>;
63+
div-m = <16>;
64+
mul-n = <110>;
65+
div-p = <2>;
66+
div-q = <2>;
67+
div-r = <4>; /* 27.5 MHz */
68+
};
69+
70+
&zephyr_mipi_dsi {
71+
status = "okay";
72+
73+
pll-ndiv = <125>;
74+
pll-idf = <4>;
75+
pll-odf = <0>;
76+
77+
de-active-high;
78+
largest-packet-size = <0>;
79+
80+
phy-timings = <35 35 35 35 0 10>;
81+
};
82+
83+
&i2c4 {
84+
pinctrl-0 = <&i2c4_scl_pb6 &i2c4_sda_ph12>;
85+
pinctrl-names = "default";
86+
clock-frequency = <I2C_BITRATE_FAST>;
87+
status = "okay";
88+
89+
gt911: gt911@5d {
90+
compatible = "goodix,gt911";
91+
reg = <0x5d>;
92+
alt-addr = <0x14>;
93+
reset-gpios = <&gpioi 2 GPIO_ACTIVE_LOW>;
94+
irq-gpios = <&gpioi 1 GPIO_ACTIVE_HIGH>;
95+
};
96+
};
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (c) 2025 Arduino SA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
&zephyr_mipi_dsi {
8+
st7701: st7701@0 {
9+
status = "okay";
10+
compatible = "sitronix,st7701";
11+
reg = <0x0>;
12+
height = <800>;
13+
width = <480>;
14+
data-lanes = <2>;
15+
pixel-format = <MIPI_DSI_PIXFMT_RGB565>;
16+
rotation = <0>;
17+
gip-e0 = [E0 00 00 02];
18+
gip-e1 = [E1 08 00 0A 00 07 00 09 00 00 33 33];
19+
gip-e2 = [E2 00 00 00 00 00 00 00 00 00 00 00 00 00];
20+
gip-e3 = [E3 00 00 33 33];
21+
gip-e4 = [E4 44 44];
22+
gip-e5 = [E5 0E 60 A0 A0 10 60 A0 A0 0A 60 A0 A0 0C 60 A0 A0];
23+
gip-e6 = [E6 00 00 33 33];
24+
gip-e7 = [E7 44 44];
25+
gip-e8 = [E8 0D 60 A0 A0 0F 60 A0 A0 09 60 A0 A0 0B 60 A0 A0];
26+
gip-eb = [EB 02 01 E4 E4 44 00 40];
27+
gip-ec = [EC 02 01];
28+
gip-ed = [ED AB 89 76 54 01 FF FF FF FF FF FF 10 45 67 98 BA];
29+
gip-ed = [ED AB 89 76 54 01 FF FF FF FF FF FF 10 45 67 98 BA];
30+
pvgamctrl = [B0 40 C9 91 0D 12 07 02 09 09 1F 04 50 0F E4 29 DF];
31+
nvgamctrl = [B1 40 CB D0 11 92 07 00 08 07 1C 06 53 12 63 EB DF];
32+
33+
display-timings {
34+
compatible = "zephyr,panel-timing";
35+
hsync-active = <1>;
36+
vsync-active = <0>;
37+
de-active = <0>;
38+
pixelclk-active = <0>;
39+
hback-porch = <40>;
40+
hsync-len = <32>;
41+
hfront-porch = <8>;
42+
vback-porch = <6>;
43+
vsync-len = <8>;
44+
vfront-porch = <9>;
45+
};
46+
};
47+
};

0 commit comments

Comments
 (0)