/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * ROCKCDSI (Rockchip Commercial Display System Interface) * * -- SysModule * * Copyright (C) 2024 Rockchip Electronics Co., Ltd. * */ #ifndef ANDROID_INCLUDE_HARDWARE_SYS_HAL_H #define ANDROID_INCLUDE_HARDWARE_SYS_HAL_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include __BEGIN_DECLS #define SYS_HAL_MODULE_API_VERSION HARDWARE_MODULE_API_VERSION(0, 1) /* * The id of this module */ #define SYS_HAL_HARDWARE_MODULE_ID "rockcdsi_sys_hal" typedef enum EnumPanelDivision { PANEL_DIVISION_1, PANEL_DIVISION_2, PANEL_DIVISION_4, } ui_panel_division_t; typedef enum EnumEdidMode { EDID_MODE_2K60HZ_YUV444, EDID_MODE_4K30HZ_YUV444, EDID_MODE_4K60HZ_YUV444, EDID_MODE_4K60HZ_YUV420, EDID_MODE_ERR, } ui_edid_mode_t; typedef struct DataOverScan { int left; int top; int right; int bottom; } ui_overscan_data_t; typedef struct StreamConfig { int width; int height; int interlace; int initFps; int Hfreq; int Vfreq; } ui_stream_config_t; typedef enum HdmiInType { HDMIIN_TYPE_HDMIRX = 0x0, HDMIIN_TYPE_MIPICSI = 0x1, } ui_device_type; typedef struct sys_hal_module { struct hw_module_t common; int dpy; int (*sysmodule_init)(ui_device_type eType); int (*get_input_stream_config)(struct sys_hal_module *module, ui_stream_config_t* data); int (*get_cur_signal_status)(struct sys_hal_module *module); int (*get_cur_Source_Interlaced)(struct sys_hal_module *module); int (*get_cur_source_dvi_mode)(struct sys_hal_module *module); int (*get_cur_source_hdcp_encrypted)(struct sys_hal_module *module); int (*get_overscan)(struct sys_hal_module *module, ui_overscan_data_t *data); int (*set_overscan)(struct sys_hal_module *module, ui_overscan_data_t data); int (*get_cec_enable)(struct sys_hal_module *module); int (*set_cec_enable)(struct sys_hal_module *module, int value); int (*get_arc_enable)(struct sys_hal_module *module); int (*set_arc_enable)(struct sys_hal_module *module, int value); int (*set_screen_pattern)(struct sys_hal_module *module, int red, int green, int blue); int (*set_half_screen_mode)(struct sys_hal_module *module, int value); int (*get_half_screen_mode)(struct sys_hal_module *module); int (*get_dcr_enable)(struct sys_hal_module *module); int (*set_dcr_enable)(struct sys_hal_module *module, int value); int (*get_dbc_max_backlight)(struct sys_hal_module *module); int (*set_dbc_max_backlight)(struct sys_hal_module *module, int value); int (*get_dbc_min_backlight)(struct sys_hal_module *module); int (*set_dbc_min_backlight)(struct sys_hal_module *module, int value); int (*get_dbc_step_time)(struct sys_hal_module *module); int (*set_dbc_step_time)(struct sys_hal_module *module, int value); int (*get_dbc_step_value)(struct sys_hal_module *module); int (*set_dbc_step_value)(struct sys_hal_module *module, int value); int (*get_dbc_enable)(struct sys_hal_module *module); int (*set_dbc_enable)(struct sys_hal_module *module, int value); ui_panel_division_t (*get_panel_division)(struct sys_hal_module *module); int (*set_panel_division)(struct sys_hal_module *module, ui_panel_division_t value); int (*get_panel_swing)(struct sys_hal_module *module); int (*set_panel_swing)(struct sys_hal_module *module, int value); int (*get_panel_preemphasis)(struct sys_hal_module *module); int (*set_panel_preemphasis)(struct sys_hal_module *module, int value); int (*get_panel_freerun)(struct sys_hal_module *module); int (*set_panel_freerun)(struct sys_hal_module *module, int value); int (*get_shake_screen_mode)(struct sys_hal_module *module); int (*set_shake_screen_mode)(struct sys_hal_module *module, int value); int (*get_average_brightness)(struct sys_hal_module *module); int (*get_hdmi_edid_mode)(struct sys_hal_module *module); int (*set_hdmi_edid_mode)(struct sys_hal_module *module, ui_edid_mode_t value); ui_edid_mode_t (*get_pc_edid_mode)(struct sys_hal_module *module); int (*set_pc_edid_mode)(struct sys_hal_module *module, ui_edid_mode_t value); int (*set_screen_pixel_shift)(struct sys_hal_module *module, int x, int y); int (*get_screen_pixel_shift)(struct sys_hal_module *module, int *x, int *y); } sys_hal_module_t; __END_DECLS #endif /* ANDROID_INCLUDE_HARDWARE_SYS_HAL_H */