brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · b52cd67 Raw
77 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (C) 2021-2023 Digiteq Automotive4 *     author: Martin Tuma <martin.tuma@digiteqautomotive.com>5 */6 7#ifndef __MGB4_CORE_H__8#define __MGB4_CORE_H__9 10#include <linux/spi/flash.h>11#include <linux/mtd/partitions.h>12#include <linux/mutex.h>13#include <linux/dmaengine.h>14#include "mgb4_regs.h"15 16#define MGB4_HW_FREQ 12500000017 18#define MGB4_VIN_DEVICES  219#define MGB4_VOUT_DEVICES 220 21#define MGB4_MGB4_BAR_ID  022#define MGB4_XDMA_BAR_ID  123 24#define MGB4_IS_GMSL(mgbdev) \25	((mgbdev)->module_version >> 4 == 2)26#define MGB4_IS_FPDL3(mgbdev) \27	((mgbdev)->module_version >> 4 == 1)28 29struct mgb4_dma_channel {30	struct dma_chan *chan;31	struct completion req_compl;32};33 34struct mgb4_dev {35	struct pci_dev *pdev;36	struct platform_device *xdev;37	struct mgb4_vin_dev *vin[MGB4_VIN_DEVICES];38	struct mgb4_vout_dev *vout[MGB4_VOUT_DEVICES];39 40	struct mgb4_dma_channel c2h_chan[MGB4_VIN_DEVICES];41	struct mgb4_dma_channel h2c_chan[MGB4_VOUT_DEVICES];42	struct dma_slave_map slave_map[MGB4_VIN_DEVICES + MGB4_VOUT_DEVICES];43 44	struct mgb4_regs video;45	struct mgb4_regs cmt;46 47	struct clk_hw *i2c_clk;48	struct clk_lookup *i2c_cl;49	struct platform_device *i2c_pdev;50	struct i2c_adapter *i2c_adap;51	struct mutex i2c_lock; /* I2C bus access lock */52 53	struct platform_device *spi_pdev;54	struct flash_platform_data flash_data;55	struct mtd_partition partitions[2];56	char flash_name[16];57	char fw_part_name[16];58	char data_part_name[16];59	char channel_names[MGB4_VIN_DEVICES + MGB4_VOUT_DEVICES][16];60 61	struct iio_dev *indio_dev;62#if IS_REACHABLE(CONFIG_HWMON)63	struct device *hwmon_dev;64#endif65 66	unsigned long io_reconfig;67 68	u8 module_version;69	u32 serial_number;70 71#ifdef CONFIG_DEBUG_FS72	struct dentry *debugfs;73#endif74};75 76#endif77