162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2016 BayLibre, SAS 462306a36Sopenharmony_ci * Author: Neil Armstrong <narmstrong@baylibre.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/* Video Input Unit */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#ifndef __MESON_VIU_H 1062306a36Sopenharmony_ci#define __MESON_VIU_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* OSDx_BLKx_CFG */ 1362306a36Sopenharmony_ci#define OSD_MALI_SRC_EN BIT(30) 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#define OSD_CANVAS_SEL 16 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define OSD_ENDIANNESS_LE BIT(15) 1862306a36Sopenharmony_ci#define OSD_ENDIANNESS_BE (0) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define OSD_BLK_MODE_422 (0x03 << 8) 2162306a36Sopenharmony_ci#define OSD_BLK_MODE_16 (0x04 << 8) 2262306a36Sopenharmony_ci#define OSD_BLK_MODE_32 (0x05 << 8) 2362306a36Sopenharmony_ci#define OSD_BLK_MODE_24 (0x07 << 8) 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#define OSD_OUTPUT_COLOR_RGB BIT(7) 2662306a36Sopenharmony_ci#define OSD_OUTPUT_COLOR_YUV (0) 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_32_RGBA (0x00 << 2) 2962306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_32_ARGB (0x01 << 2) 3062306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_32_ABGR (0x02 << 2) 3162306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_32_BGRA (0x03 << 2) 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_24_RGB (0x00 << 2) 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_16_RGB655 (0x00 << 2) 3662306a36Sopenharmony_ci#define OSD_COLOR_MATRIX_16_RGB565 (0x04 << 2) 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_R8 (0 << 8) 3962306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_YUV422 (1 << 8) 4062306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_RGB565 (2 << 8) 4162306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_RGBA5551 (3 << 8) 4262306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_RGBA4444 (4 << 8) 4362306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_RGBA8888 (5 << 8) 4462306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_RGB888 (7 << 8) 4562306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_YUV422_10B (8 << 8) 4662306a36Sopenharmony_ci#define OSD_MALI_COLOR_MODE_RGBA1010102 (9 << 8) 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci#define OSD_INTERLACE_ENABLED BIT(1) 4962306a36Sopenharmony_ci#define OSD_INTERLACE_ODD BIT(0) 5062306a36Sopenharmony_ci#define OSD_INTERLACE_EVEN (0) 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci/* OSDx_CTRL_STAT */ 5362306a36Sopenharmony_ci#define OSD_ENABLE BIT(21) 5462306a36Sopenharmony_ci#define OSD_MEM_LINEAR_ADDR BIT(2) 5562306a36Sopenharmony_ci#define OSD_BLK0_ENABLE BIT(0) 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#define OSD_GLOBAL_ALPHA_SHIFT 12 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci/* OSDx_CTRL_STAT2 */ 6062306a36Sopenharmony_ci#define OSD_DPATH_MALI_AFBCD BIT(15) 6162306a36Sopenharmony_ci#define OSD_REPLACE_EN BIT(14) 6262306a36Sopenharmony_ci#define OSD_REPLACE_SHIFT 6 6362306a36Sopenharmony_ci#define OSD_PENDING_STAT_CLEAN BIT(1) 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_civoid meson_viu_osd1_reset(struct meson_drm *priv); 6662306a36Sopenharmony_civoid meson_viu_g12a_enable_osd1_afbc(struct meson_drm *priv); 6762306a36Sopenharmony_civoid meson_viu_g12a_disable_osd1_afbc(struct meson_drm *priv); 6862306a36Sopenharmony_civoid meson_viu_gxm_enable_osd1_afbc(struct meson_drm *priv); 6962306a36Sopenharmony_civoid meson_viu_gxm_disable_osd1_afbc(struct meson_drm *priv); 7062306a36Sopenharmony_civoid meson_viu_init(struct meson_drm *priv); 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci#endif /* __MESON_VIU_H */ 73