/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2021-2023 Digiteq Automotive
 *     author: Martin Tuma <martin.tuma@digiteqautomotive.com>
 */

#ifndef __MGB4_CORE_H__
#define __MGB4_CORE_H__

#include <linux/spi/flash.h>
#include <linux/mtd/partitions.h>
#include <linux/mutex.h>
#include <linux/dmaengine.h>
#include "mgb4_regs.h"

#define MGB4_VIN_DEVICES  2
#define MGB4_VOUT_DEVICES 2

#define MGB4_MGB4_BAR_ID  0
#define MGB4_XDMA_BAR_ID  1

#define MGB4_IS_GMSL(mgbdev) \
	((mgbdev)->module_version >> 4 == 2)
#define MGB4_IS_FPDL3(mgbdev) \
	((mgbdev)->module_version >> 4 == 1)

struct mgb4_dma_channel {
	struct dma_chan *chan;
	struct completion req_compl;
};

struct mgb4_dev {
	struct pci_dev *pdev;
	struct platform_device *xdev;
	struct mgb4_vin_dev *vin[MGB4_VIN_DEVICES];
	struct mgb4_vout_dev *vout[MGB4_VOUT_DEVICES];

	struct mgb4_dma_channel c2h_chan[MGB4_VIN_DEVICES];
	struct mgb4_dma_channel h2c_chan[MGB4_VOUT_DEVICES];
	struct dma_slave_map slave_map[MGB4_VIN_DEVICES + MGB4_VOUT_DEVICES];

	struct mgb4_regs video;
	struct mgb4_regs cmt;

	struct clk_hw *i2c_clk;
	struct clk_lookup *i2c_cl;
	struct platform_device *i2c_pdev;
	struct i2c_adapter *i2c_adap;
	struct mutex i2c_lock; /* I2C bus access lock */

	struct platform_device *spi_pdev;
	struct flash_platform_data flash_data;
	struct mtd_partition partitions[2];
	char flash_name[16];
	char fw_part_name[16];
	char data_part_name[16];
	char channel_names[MGB4_VIN_DEVICES + MGB4_VOUT_DEVICES][16];

	struct iio_dev *indio_dev;
#if IS_REACHABLE(CONFIG_HWMON)
	struct device *hwmon_dev;
#endif

	unsigned long io_reconfig;

	u8 module_version;
	u32 serial_number;

#ifdef CONFIG_DEBUG_FS
	struct dentry *debugfs;
#endif
};

#endif
