#include <linux/bitfield.h>
#include <linux/device.h>
#include <linux/dfl.h>
#include <linux/mfd/core.h>
#include <linux/mfd/intel-m10-bmc.h>
#include <linux/minmax.h>
#include <linux/module.h>
#include <linux/regmap.h>
struct m10bmc_pmci_device { … };
#define INDIRECT_CMD_OFF …
#define INDIRECT_CMD_CLR …
#define INDIRECT_CMD_RD …
#define INDIRECT_CMD_WR …
#define INDIRECT_CMD_ACK …
#define INDIRECT_ADDR_OFF …
#define INDIRECT_RD_OFF …
#define INDIRECT_WR_OFF …
#define INDIRECT_INT_US …
#define INDIRECT_TIMEOUT_US …
struct indirect_ctx { … };
static int indirect_clear_cmd(struct indirect_ctx *ctx)
{ … }
static int indirect_reg_read(void *context, unsigned int reg, unsigned int *val)
{ … }
static int indirect_reg_write(void *context, unsigned int reg, unsigned int val)
{ … }
static void pmci_write_fifo(void __iomem *base, const u32 *buf, size_t count)
{ … }
static void pmci_read_fifo(void __iomem *base, u32 *buf, size_t count)
{ … }
static u32 pmci_get_write_space(struct m10bmc_pmci_device *pmci)
{ … }
static int pmci_flash_bulk_write(struct intel_m10bmc *m10bmc, const u8 *buf, u32 size)
{ … }
static int pmci_flash_bulk_read(struct intel_m10bmc *m10bmc, u8 *buf, u32 addr, u32 size)
{ … }
static int m10bmc_pmci_set_flash_host_mux(struct intel_m10bmc *m10bmc, bool request)
{ … }
static int m10bmc_pmci_flash_read(struct intel_m10bmc *m10bmc, u8 *buf, u32 addr, u32 size)
{ … }
static int m10bmc_pmci_flash_write(struct intel_m10bmc *m10bmc, const u8 *buf, u32 offset, u32 size)
{ … }
static int m10bmc_pmci_flash_lock(struct intel_m10bmc *m10bmc)
{ … }
static void m10bmc_pmci_flash_unlock(struct intel_m10bmc *m10bmc)
{ … }
static const struct intel_m10bmc_flash_bulk_ops m10bmc_pmci_flash_bulk_ops = …;
static const struct regmap_range m10bmc_pmci_regmap_range[] = …;
static const struct regmap_access_table m10bmc_pmci_access_table = …;
static struct regmap_config m10bmc_pmci_regmap_config = …;
static struct mfd_cell m10bmc_pmci_n6000_bmc_subdevs[] = …;
static const struct m10bmc_csr_map m10bmc_n6000_csr_map = …;
static const struct intel_m10bmc_platform_info m10bmc_pmci_n6000 = …;
static int m10bmc_pmci_probe(struct dfl_device *ddev)
{ … }
static void m10bmc_pmci_remove(struct dfl_device *ddev)
{ … }
#define FME_FEATURE_ID_M10BMC_PMCI …
static const struct dfl_device_id m10bmc_pmci_ids[] = …;
MODULE_DEVICE_TABLE(dfl, m10bmc_pmci_ids);
static struct dfl_driver m10bmc_pmci_driver = …;
module_dfl_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);