The padding block is one of the components of the video pipeline on some MediaTek SoCs, such as the MT8188. It is configured in bypass mode.
Signed-off-by: Julien Stephan <[email protected]> --- drivers/video/mediatek/mtk_disp_padding.c | 40 +++++++++++++++++++++++++++++++ drivers/video/mediatek/mtk_disp_padding.h | 16 +++++++++++++ 2 files changed, 56 insertions(+) diff --git a/drivers/video/mediatek/mtk_disp_padding.c b/drivers/video/mediatek/mtk_disp_padding.c new file mode 100644 index 00000000000..4a69670bff2 --- /dev/null +++ b/drivers/video/mediatek/mtk_disp_padding.c @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Mediatek Video Disp Padding Support + * + * Copyright (c) 2026 BayLibre, SAS. + * Author: Julien Stephan <[email protected]> + */ + +#include <dm.h> + +#include "mtk_disp_comp.h" +#include "mtk_disp_padding.h" + +#define PADDING_CONTROL_REG 0x00 +#define PADDING_BYPASS BIT(0) +#define PADDING_ENABLE BIT(1) +#define PADDING_PIC_SIZE_REG 0x04 +#define PADDING_H_REG 0x08 /* horizontal */ +#define PADDING_V_REG 0x0c /* vertical */ +#define PADDING_COLOR_REG 0x10 + +void mtk_disp_padding_config(struct udevice *dev) +{ + mtk_disp_comp_write(dev, PADDING_CONTROL_REG, + PADDING_ENABLE | PADDING_BYPASS); + mtk_disp_comp_write(dev, PADDING_PIC_SIZE_REG, 0x0); +} + +static const struct udevice_id mtk_disp_padding_ids[] = { + { .compatible = "mediatek,mt8188-disp-padding" }, + {} +}; + +U_BOOT_DRIVER(mtk_disp_padding) = { + .name = "mtk_disp_padding", + .id = UCLASS_MISC, + .of_match = mtk_disp_padding_ids, + .probe = mtk_disp_comp_probe, + .priv_auto = sizeof(struct mtk_disp_comp_priv), +}; diff --git a/drivers/video/mediatek/mtk_disp_padding.h b/drivers/video/mediatek/mtk_disp_padding.h new file mode 100644 index 00000000000..f3cdd363b12 --- /dev/null +++ b/drivers/video/mediatek/mtk_disp_padding.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Mediatek Video Disp Padding Support + * + * Copyright (c) 2026 BayLibre, SAS. + * Author: Julien Stephan <[email protected]> + */ + +#ifndef _MTK_DISP_PADDING_H +#define _MTK_DISP_PADDING_H + +struct udevice; + +void mtk_disp_padding_config(struct udevice *dev); + +#endif -- 2.55.0
