diff --git a/src/commonlib/Makefile.mk b/src/commonlib/Makefile.mk index b4bc1b8fae..f71fff4892 100644 --- a/src/commonlib/Makefile.mk +++ b/src/commonlib/Makefile.mk @@ -1,5 +1,6 @@ ## SPDX-License-Identifier: GPL-2.0-only +subdirs-y += mipi subdirs-y += storage subdirs-y += bsd/zstd diff --git a/src/commonlib/include/commonlib/mipi/cmd.h b/src/commonlib/include/commonlib/mipi/cmd.h new file mode 100644 index 0000000000..ebbc36ba47 --- /dev/null +++ b/src/commonlib/include/commonlib/mipi/cmd.h @@ -0,0 +1,55 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef __COMMONLIB_MIPI_CMD_H__ +#define __COMMONLIB_MIPI_CMD_H__ + +#include +#include +#include + +/* Definitions for cmd in panel_init_command */ +enum panel_init_cmd { + PANEL_CMD_END = 0, + PANEL_CMD_DELAY = 1, + PANEL_CMD_GENERIC = 2, + PANEL_CMD_DCS = 3, +}; + +struct panel_init_command { + u8 cmd; + u8 len; + u8 data[]; +}; + +#define PANEL_DELAY(delay) \ + PANEL_CMD_DELAY, \ + delay + +#define PANEL_GENERIC(...) \ + PANEL_CMD_GENERIC, \ + sizeof((u8[]){__VA_ARGS__}), \ + __VA_ARGS__ + +#define PANEL_DCS(...) \ + PANEL_CMD_DCS, \ + sizeof((u8[]){__VA_ARGS__}), \ + __VA_ARGS__ + +#define PANEL_END \ + PANEL_CMD_END + +/* + * Callback function type for mipi_panel_parse_init_commands(). + * @param type MIPI DSI transaction type. + * @param data panel_init_command data. + * @param len panel_init_command len. + * @param user_data Arbitrary user data passed from mipi_panel_parse_init_commands(). + */ +typedef enum cb_err (*mipi_cmd_func_t)(enum mipi_dsi_transaction type, const u8 *data, u8 len, + void *user_data); + +/* Parse a command array and call cmd_func() for each entry. Delays get handled internally. */ +enum cb_err mipi_panel_parse_init_commands(const void *buf, mipi_cmd_func_t cmd_func, + void *user_data); + +#endif /* __COMMONLIB_MIPI_CMD_H__ */ diff --git a/src/include/mipi/dsi.h b/src/commonlib/include/commonlib/mipi/dsi.h similarity index 97% rename from src/include/mipi/dsi.h rename to src/commonlib/include/commonlib/mipi/dsi.h index 9f11490f69..b55fd9dc70 100644 --- a/src/include/mipi/dsi.h +++ b/src/commonlib/include/commonlib/mipi/dsi.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#ifndef __MIPI_DSI_H__ -#define __MIPI_DSI_H__ +#ifndef __COMMONLIB_MIPI_DSI_H__ +#define __COMMONLIB_MIPI_DSI_H__ /* MIPI DSI Processor-to-Peripheral transaction types */ enum mipi_dsi_transaction { @@ -109,4 +109,4 @@ enum { MIPI_DCS_READ_DDB_CONTINUE = 0xA8, }; -#endif /* __MIPI_DSI_H__ */ +#endif /* __COMMONLIB_MIPI_DSI_H__ */ diff --git a/src/commonlib/mipi/Makefile.mk b/src/commonlib/mipi/Makefile.mk new file mode 100644 index 0000000000..e5df26b2c5 --- /dev/null +++ b/src/commonlib/mipi/Makefile.mk @@ -0,0 +1,3 @@ +## SPDX-License-Identifier: GPL-2.0-only + +ramstage-y += cmd.c diff --git a/src/drivers/mipi/panel.c b/src/commonlib/mipi/cmd.c similarity index 94% rename from src/drivers/mipi/panel.c rename to src/commonlib/mipi/cmd.c index 0182a8594a..be8c5e6412 100644 --- a/src/drivers/mipi/panel.c +++ b/src/commonlib/mipi/cmd.c @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include +#include +#include +#include #include -#include -#include enum cb_err mipi_panel_parse_init_commands(const void *buf, mipi_cmd_func_t cmd_func, void *user_data) diff --git a/src/drivers/mipi/Makefile.mk b/src/drivers/mipi/Makefile.mk index 92d5ebe987..e814414d82 100644 --- a/src/drivers/mipi/Makefile.mk +++ b/src/drivers/mipi/Makefile.mk @@ -1,7 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-only -ramstage-y += panel.c - panel-params-y := panel-params-$(CONFIG_MIPI_PANEL_AUO_B101UAN08_3) += panel-AUO_B101UAN08_3 diff --git a/src/include/mipi/panel.h b/src/include/mipi/panel.h index e2123a6e22..ae45684ecb 100644 --- a/src/include/mipi/panel.h +++ b/src/include/mipi/panel.h @@ -3,29 +3,15 @@ #ifndef __MIPI_PANEL_H__ #define __MIPI_PANEL_H__ +#include #include -#include #include -/* Definitions for cmd in panel_init_command */ -enum panel_init_cmd { - PANEL_CMD_END = 0, - PANEL_CMD_DELAY = 1, - PANEL_CMD_GENERIC = 2, - PANEL_CMD_DCS = 3, -}; - /* Definitions for flags in panel_serializable_data */ enum panel_flag { PANEL_FLAG_CPHY = BIT(0), }; -struct panel_init_command { - u8 cmd; - u8 len; - u8 data[]; -}; - /* VESA Display Stream Compression DSC 1.2 constants */ #define DSC_NUM_BUF_RANGES 15 @@ -215,35 +201,4 @@ struct panel_serializable_data { u8 init[]; /* A packed array of panel_init_command */ }; -/* - * Callback function type for mipi_panel_parse_init_commands(). - * @param type MIPI DSI transaction type. - * @param data panel_init_command data. - * @param len panel_init_command len. - * @param user_data Arbitrary user data passed from mipi_panel_parse_init_commands(). - */ -typedef enum cb_err (*mipi_cmd_func_t)(enum mipi_dsi_transaction type, const u8 *data, u8 len, - void *user_data); - -/* Parse a command array and call cmd_func() for each entry. Delays get handled internally. */ -enum cb_err mipi_panel_parse_init_commands(const void *buf, mipi_cmd_func_t cmd_func, - void *user_data); - -#define PANEL_DCS(...) \ - PANEL_CMD_DCS, \ - sizeof((u8[]){__VA_ARGS__}), \ - __VA_ARGS__ - -#define PANEL_GENERIC(...) \ - PANEL_CMD_GENERIC, \ - sizeof((u8[]){__VA_ARGS__}), \ - __VA_ARGS__ - -#define PANEL_DELAY(delay) \ - PANEL_CMD_DELAY, \ - delay - -#define PANEL_END \ - PANEL_CMD_END - #endif /* __MIPI_PANEL_H__ */ diff --git a/src/soc/mediatek/common/include/soc/dsi_common.h b/src/soc/mediatek/common/include/soc/dsi_common.h index 626e8414b6..62bff790a9 100644 --- a/src/soc/mediatek/common/include/soc/dsi_common.h +++ b/src/soc/mediatek/common/include/soc/dsi_common.h @@ -4,8 +4,8 @@ #define SOC_MEDIATEK_DSI_COMMON_H #include +#include #include -#include #include #include #include diff --git a/src/soc/nvidia/tegra210/include/soc/mipi_display.h b/src/soc/nvidia/tegra210/include/soc/mipi_display.h index e5c7596b97..87591878c8 100644 --- a/src/soc/nvidia/tegra210/include/soc/mipi_display.h +++ b/src/soc/nvidia/tegra210/include/soc/mipi_display.h @@ -8,7 +8,7 @@ #ifndef __SOC_MIPI_DISPLAY_H__ #define __SOC_MIPI_DISPLAY_H__ -#include +#include /* MIPI DCS pixel formats */ #define MIPI_DCS_PIXEL_FMT_24BIT 7 diff --git a/src/soc/qualcomm/sc7180/display/dsi.c b/src/soc/qualcomm/sc7180/display/dsi.c index c1e75e1090..e5b09805c3 100644 --- a/src/soc/qualcomm/sc7180/display/dsi.c +++ b/src/soc/qualcomm/sc7180/display/dsi.c @@ -1,6 +1,5 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#include #include #include #include diff --git a/src/soc/rockchip/rk3399/include/soc/mipi.h b/src/soc/rockchip/rk3399/include/soc/mipi.h index f5bd797850..839eb5185c 100644 --- a/src/soc/rockchip/rk3399/include/soc/mipi.h +++ b/src/soc/rockchip/rk3399/include/soc/mipi.h @@ -3,7 +3,7 @@ #ifndef __RK_MIPI_H #define __RK_MIPI_H -#include +#include #include struct rk_mipi_regs {