1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * R-Car Display Unit Color Management Module
4 *
5 * Copyright (C) 2019 Jacopo Mondi <jacopo+renesas@jmondi.org>
6 */
7
8#ifndef __RCAR_CMM_H__
9#define __RCAR_CMM_H__
10
11#define CM2_LUT_SIZE		256
12
13struct drm_color_lut;
14struct platform_device;
15
16/**
17 * struct rcar_cmm_config - CMM configuration
18 *
19 * @lut:	1D-LUT configuration
20 * @lut.table:	1D-LUT table entries. Disable LUT operations when NULL
21 */
22struct rcar_cmm_config {
23	struct {
24		struct drm_color_lut *table;
25	} lut;
26};
27
28#if IS_ENABLED(CONFIG_DRM_RCAR_CMM)
29int rcar_cmm_init(struct platform_device *pdev);
30
31int rcar_cmm_enable(struct platform_device *pdev);
32void rcar_cmm_disable(struct platform_device *pdev);
33
34int rcar_cmm_setup(struct platform_device *pdev,
35		   const struct rcar_cmm_config *config);
36#else
37static inline int rcar_cmm_init(struct platform_device *pdev)
38{
39	return -ENODEV;
40}
41
42static inline int rcar_cmm_enable(struct platform_device *pdev)
43{
44	return 0;
45}
46
47static inline void rcar_cmm_disable(struct platform_device *pdev)
48{
49}
50
51static inline int rcar_cmm_setup(struct platform_device *pdev,
52				 const struct rcar_cmm_config *config)
53{
54	return 0;
55}
56#endif /* IS_ENABLED(CONFIG_DRM_RCAR_CMM) */
57
58#endif /* __RCAR_CMM_H__ */
59