linux/drivers/gpu/drm/rockchip/rockchip_vop_reg.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
 * Author:Mark Yao <[email protected]>
 */

#include <linux/component.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>

#include <drm/drm_fourcc.h>
#include <drm/drm_plane.h>
#include <drm/drm_print.h>

#include "rockchip_drm_vop.h"
#include "rockchip_vop_reg.h"
#include "rockchip_drm_drv.h"

#define _VOP_REG(off, _mask, _shift, _write_mask, _relaxed)

#define VOP_REG(off, _mask, _shift)

#define VOP_REG_SYNC(off, _mask, _shift)

#define VOP_REG_MASK_SYNC(off, _mask, _shift)

static const uint32_t formats_win_full[] =;

static const uint32_t formats_win_full_10[] =;

static const uint64_t format_modifiers_win_full[] =;

static const uint64_t format_modifiers_win_full_afbc[] =;

static const uint32_t formats_win_lite[] =;

static const uint64_t format_modifiers_win_lite[] =;

static const struct vop_scl_regs rk3036_win0_scl =;

static const struct vop_scl_regs rk3036_win1_scl =;

static const struct vop_win_phy rk3036_win0_data =;

static const struct vop_win_phy rk3036_win1_data =;

static const struct vop_win_data rk3036_vop_win_data[] =;

static const int rk3036_vop_intrs[] =;

static const struct vop_intr rk3036_intr =;

static const struct vop_modeset rk3036_modeset =;

static const struct vop_output rk3036_output =;

static const struct vop_common rk3036_common =;

static const struct vop_data rk3036_vop =;

static const struct vop_win_phy rk3126_win1_data =;

static const struct vop_win_data rk3126_vop_win_data[] =;

static const struct vop_output rk3126_output =;

static const struct vop_data rk3126_vop =;

static const int px30_vop_intrs[] =;

static const struct vop_intr px30_intr =;

static const struct vop_common px30_common =;

static const struct vop_modeset px30_modeset =;

static const struct vop_output px30_output =;

static const struct vop_scl_regs px30_win_scl =;

static const struct vop_win_phy px30_win0_data =;

static const struct vop_win_phy px30_win1_data =;

static const struct vop_win_phy px30_win2_data =;

static const struct vop_win_data px30_vop_big_win_data[] =;

static const struct vop_data px30_vop_big =;

static const struct vop_win_data px30_vop_lit_win_data[] =;

static const struct vop_data px30_vop_lit =;

static const struct vop_scl_regs rk3066_win_scl =;

static const struct vop_win_phy rk3066_win0_data =;

static const struct vop_win_phy rk3066_win1_data =;

static const struct vop_win_phy rk3066_win2_data =;

static const struct vop_modeset rk3066_modeset =;

static const struct vop_output rk3066_output =;

static const struct vop_common rk3066_common =;

static const struct vop_win_data rk3066_vop_win_data[] =;

static const int rk3066_vop_intrs[] =;

static const struct vop_intr rk3066_intr =;

static const struct vop_data rk3066_vop =;

static const struct vop_scl_regs rk3188_win_scl =;

static const struct vop_win_phy rk3188_win0_data =;

static const struct vop_win_phy rk3188_win1_data =;

static const struct vop_modeset rk3188_modeset =;

static const struct vop_output rk3188_output =;

static const struct vop_common rk3188_common =;

static const struct vop_win_data rk3188_vop_win_data[] =;

static const int rk3188_vop_intrs[] =;

static const struct vop_intr rk3188_vop_intr =;

static const struct vop_data rk3188_vop =;

static const struct vop_scl_extension rk3288_win_full_scl_ext =;

static const struct vop_scl_regs rk3288_win_full_scl =;

static const struct vop_win_phy rk3288_win01_data =;

static const struct vop_win_phy rk3288_win23_data =;

static const struct vop_modeset rk3288_modeset =;

static const struct vop_output rk3288_output =;

static const struct vop_common rk3288_common =;

/*
 * Note: rk3288 has a dedicated 'cursor' window, however, that window requires
 * special support to get alpha blending working.  For now, just use overlay
 * window 3 for the drm cursor.
 *
 */
static const struct vop_win_data rk3288_vop_win_data[] =;

static const int rk3288_vop_intrs[] =;

static const struct vop_intr rk3288_vop_intr =;

static const struct vop_data rk3288_vop =;

static const int rk3368_vop_intrs[] =;

static const struct vop_intr rk3368_vop_intr =;

static const struct vop_win_phy rk3368_win01_data =;

static const struct vop_win_phy rk3368_win23_data =;

static const struct vop_win_data rk3368_vop_win_data[] =;

static const struct vop_output rk3368_output =;

static const struct vop_misc rk3368_misc =;

static const struct vop_data rk3368_vop =;

static const struct vop_intr rk3366_vop_intr =;

static const struct vop_data rk3366_vop =;

static const struct vop_output rk3399_output =;

static const struct vop_common rk3399_common =;

static const struct vop_yuv2yuv_phy rk3399_yuv2yuv_win01_data =;

static const struct vop_yuv2yuv_phy rk3399_yuv2yuv_win23_data =;

static const struct vop_win_yuv2yuv_data rk3399_vop_big_win_yuv2yuv_data[] =;

static const struct vop_win_phy rk3399_win0_data =;

static const struct vop_win_phy rk3399_win1_data =;

/*
 * rk3399 vop big windows register layout is same as rk3288, but we
 * have a separate rk3399 win data array here so that we can advertise
 * AFBC on the primary plane.
 */
static const struct vop_win_data rk3399_vop_win_data[] =;

static const struct vop_afbc rk3399_vop_afbc =;

static const struct vop_data rk3399_vop_big =;

static const struct vop_win_data rk3399_vop_lit_win_data[] =;

static const struct vop_win_yuv2yuv_data rk3399_vop_lit_win_yuv2yuv_data[] =;

static const struct vop_data rk3399_vop_lit =;

static const struct vop_win_data rk3228_vop_win_data[] =;

static const struct vop_data rk3228_vop =;

static const struct vop_modeset rk3328_modeset =;

static const struct vop_output rk3328_output =;

static const struct vop_misc rk3328_misc =;

static const struct vop_common rk3328_common =;

static const struct vop_intr rk3328_vop_intr =;

static const struct vop_win_data rk3328_vop_win_data[] =;

static const struct vop_data rk3328_vop =;

static const struct vop_common rv1126_common =;

static const struct vop_modeset rv1126_modeset =;

static const struct vop_output rv1126_output =;

static const struct vop_misc rv1126_misc =;

static const struct vop_win_data rv1126_vop_win_data[] =;

static const struct vop_data rv1126_vop =;

static const struct of_device_id vop_driver_dt_match[] =;
MODULE_DEVICE_TABLE(of, vop_driver_dt_match);

static int vop_probe(struct platform_device *pdev)
{}

static void vop_remove(struct platform_device *pdev)
{}

struct platform_driver vop_platform_driver =;