162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) Jernej Skrabec <jernej.skrabec@siol.net> 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef _SUN8I_CSC_H_ 762306a36Sopenharmony_ci#define _SUN8I_CSC_H_ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <drm/drm_color_mgmt.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_cistruct sun8i_mixer; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* VI channel CSC units offsets */ 1462306a36Sopenharmony_ci#define CCSC00_OFFSET 0xAA050 1562306a36Sopenharmony_ci#define CCSC01_OFFSET 0xFA050 1662306a36Sopenharmony_ci#define CCSC01_D1_OFFSET 0xFA000 1762306a36Sopenharmony_ci#define CCSC10_OFFSET 0xA0000 1862306a36Sopenharmony_ci#define CCSC11_OFFSET 0xF0000 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define SUN8I_CSC_CTRL(base) ((base) + 0x0) 2162306a36Sopenharmony_ci#define SUN8I_CSC_COEFF(base, i) ((base) + 0x10 + 4 * (i)) 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#define SUN8I_CSC_CTRL_EN BIT(0) 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cienum sun8i_csc_mode { 2662306a36Sopenharmony_ci SUN8I_CSC_MODE_OFF, 2762306a36Sopenharmony_ci SUN8I_CSC_MODE_YUV2RGB, 2862306a36Sopenharmony_ci SUN8I_CSC_MODE_YVU2RGB, 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_civoid sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, 3262306a36Sopenharmony_ci enum sun8i_csc_mode mode, 3362306a36Sopenharmony_ci enum drm_color_encoding encoding, 3462306a36Sopenharmony_ci enum drm_color_range range); 3562306a36Sopenharmony_civoid sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#endif 38