1 /*
2  * Copyright (c) 2024 Renesas Electronics Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_DRIVERS_DISPLAY_ILITEK_ILI9806E_H_
8 #define ZEPHYR_DRIVERS_DISPLAY_ILITEK_ILI9806E_H_
9 
10 #define LCD_TIMINGS_NODE DT_CHILD(DT_NODELABEL(zephyr_lcdif), display_timings)
11 
12 #define LCD_HTIMMING_SYNC        DT_PROP(LCD_TIMINGS_NODE, hsync_len)
13 #define LCD_HTIMMING_BACK_PORCH  DT_PROP(LCD_TIMINGS_NODE, hback_porch)
14 #define LCD_HTIMMING_FRONT_PORCH DT_PROP(LCD_TIMINGS_NODE, hfront_porch)
15 #define LCD_HACTIVE_LINE         DT_PROP(DT_NODELABEL(zephyr_lcdif), width)
16 #define LCD_HTIMMING_TOTAL_CYC                                                                     \
17 	LCD_HACTIVE_LINE + LCD_HTIMMING_BACK_PORCH + LCD_HTIMMING_FRONT_PORCH + LCD_HTIMMING_SYNC
18 
19 #define LCD_VTIMMING_SYNC        DT_PROP(LCD_TIMINGS_NODE, vsync_len)
20 #define LCD_VTIMMING_BACK_PORCH  DT_PROP(LCD_TIMINGS_NODE, vback_porch)
21 #define LCD_VTIMMING_FRONT_PORCH DT_PROP(LCD_TIMINGS_NODE, vfront_porch)
22 #define LCD_VACTIVE_LINE         DT_PROP(DT_NODELABEL(zephyr_lcdif), height)
23 #define LCD_VTIMMING_TOTAL_CYC                                                                     \
24 	LCD_VACTIVE_LINE + LCD_VTIMMING_BACK_PORCH + LCD_VTIMMING_FRONT_PORCH + LCD_VTIMMING_SYNC
25 
26 #define ILITEK_ILI9806E_HSYNC LCD_HTIMMING_SYNC
27 #define ILITEK_ILI9806E_HBP   LCD_HTIMMING_BACK_PORCH - LCD_HTIMMING_SYNC
28 #define ILITEK_ILI9806E_HFP                                                                        \
29 	LCD_HTIMMING_TOTAL_CYC - LCD_HACTIVE_LINE - LCD_HTIMMING_BACK_PORCH - LCD_HTIMMING_SYNC
30 
31 #define ILITEK_ILI9806E_VSYNC LCD_VTIMMING_SYNC
32 #define ILITEK_ILI9806E_VBP   LCD_VTIMMING_BACK_PORCH - LCD_VTIMMING_SYNC
33 #define ILITEK_ILI9806E_VFP                                                                        \
34 	LCD_VTIMMING_TOTAL_CYC - LCD_VACTIVE_LINE - LCD_VTIMMING_BACK_PORCH - LCD_VTIMMING_SYNC
35 
36 #endif /* ZEPHYR_DRIVERS_DISPLAY_ILITEK_ILI9806E_H_ */
37