162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2013 Texas Instruments Inc. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * David Griego, <dagriego@biglakesoftware.com> 662306a36Sopenharmony_ci * Dale Farnsworth, <dale@farnsworth.org> 762306a36Sopenharmony_ci * Archit Taneja, <archit@ti.com> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci#ifndef TI_CSC_H 1062306a36Sopenharmony_ci#define TI_CSC_H 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* VPE color space converter regs */ 1362306a36Sopenharmony_ci#define CSC_CSC00 0x00 1462306a36Sopenharmony_ci#define CSC_A0_MASK 0x1fff 1562306a36Sopenharmony_ci#define CSC_A0_SHIFT 0 1662306a36Sopenharmony_ci#define CSC_B0_MASK 0x1fff 1762306a36Sopenharmony_ci#define CSC_B0_SHIFT 16 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define CSC_CSC01 0x04 2062306a36Sopenharmony_ci#define CSC_C0_MASK 0x1fff 2162306a36Sopenharmony_ci#define CSC_C0_SHIFT 0 2262306a36Sopenharmony_ci#define CSC_A1_MASK 0x1fff 2362306a36Sopenharmony_ci#define CSC_A1_SHIFT 16 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci#define CSC_CSC02 0x08 2662306a36Sopenharmony_ci#define CSC_B1_MASK 0x1fff 2762306a36Sopenharmony_ci#define CSC_B1_SHIFT 0 2862306a36Sopenharmony_ci#define CSC_C1_MASK 0x1fff 2962306a36Sopenharmony_ci#define CSC_C1_SHIFT 16 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#define CSC_CSC03 0x0c 3262306a36Sopenharmony_ci#define CSC_A2_MASK 0x1fff 3362306a36Sopenharmony_ci#define CSC_A2_SHIFT 0 3462306a36Sopenharmony_ci#define CSC_B2_MASK 0x1fff 3562306a36Sopenharmony_ci#define CSC_B2_SHIFT 16 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#define CSC_CSC04 0x10 3862306a36Sopenharmony_ci#define CSC_C2_MASK 0x1fff 3962306a36Sopenharmony_ci#define CSC_C2_SHIFT 0 4062306a36Sopenharmony_ci#define CSC_D0_MASK 0x0fff 4162306a36Sopenharmony_ci#define CSC_D0_SHIFT 16 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci#define CSC_CSC05 0x14 4462306a36Sopenharmony_ci#define CSC_D1_MASK 0x0fff 4562306a36Sopenharmony_ci#define CSC_D1_SHIFT 0 4662306a36Sopenharmony_ci#define CSC_D2_MASK 0x0fff 4762306a36Sopenharmony_ci#define CSC_D2_SHIFT 16 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci#define CSC_BYPASS (1 << 28) 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_cistruct csc_data { 5262306a36Sopenharmony_ci void __iomem *base; 5362306a36Sopenharmony_ci struct resource *res; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci struct platform_device *pdev; 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_civoid csc_dump_regs(struct csc_data *csc); 5962306a36Sopenharmony_civoid csc_set_coeff_bypass(struct csc_data *csc, u32 *csc_reg5); 6062306a36Sopenharmony_civoid csc_set_coeff(struct csc_data *csc, u32 *csc_reg0, 6162306a36Sopenharmony_ci struct v4l2_format *src_fmt, struct v4l2_format *dst_fmt); 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_cistruct csc_data *csc_create(struct platform_device *pdev, const char *res_name); 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci#endif 66