#include <linux/debugfs.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/soc/sunxi/sunxi_sram.h>
struct sunxi_sram_func { … };
struct sunxi_sram_data { … };
struct sunxi_sram_desc { … };
#define SUNXI_SRAM_MAP(_reg_val, _val, _func) …
#define SUNXI_SRAM_DATA(_name, _reg, _off, _width, ...) …
static struct sunxi_sram_desc sun4i_a10_sram_a3_a4 = …;
static struct sunxi_sram_desc sun4i_a10_sram_c1 = …;
static struct sunxi_sram_desc sun4i_a10_sram_d = …;
static struct sunxi_sram_desc sun50i_a64_sram_c = …;
static const struct of_device_id sunxi_sram_dt_ids[] = …;
static struct device *sram_dev;
static DEFINE_SPINLOCK(sram_lock);
static void __iomem *base;
static int sunxi_sram_show(struct seq_file *s, void *data)
{ … }
DEFINE_SHOW_ATTRIBUTE(…);
static inline struct sunxi_sram_desc *to_sram_desc(const struct sunxi_sram_data *data)
{ … }
static const struct sunxi_sram_data *sunxi_sram_of_parse(struct device_node *node,
unsigned int *reg_value)
{ … }
int sunxi_sram_claim(struct device *dev)
{ … }
EXPORT_SYMBOL(…);
void sunxi_sram_release(struct device *dev)
{ … }
EXPORT_SYMBOL(…);
struct sunxi_sramc_variant { … };
static const struct sunxi_sramc_variant sun4i_a10_sramc_variant = …;
static const struct sunxi_sramc_variant sun8i_h3_sramc_variant = …;
static const struct sunxi_sramc_variant sun20i_d1_sramc_variant = …;
static const struct sunxi_sramc_variant sun50i_a64_sramc_variant = …;
static const struct sunxi_sramc_variant sun50i_h616_sramc_variant = …;
#define SUNXI_SRAM_THS_OFFSET_REG …
#define SUNXI_SRAM_EMAC_CLOCK_REG …
#define SUNXI_SYS_LDO_CTRL_REG …
static bool sunxi_sram_regmap_accessible_reg(struct device *dev,
unsigned int reg)
{ … }
static void sunxi_sram_lock(void *_lock)
{ … }
static void sunxi_sram_unlock(void *_lock)
{ … }
static const struct regmap_config sunxi_sram_regmap_config = …;
static int __init sunxi_sram_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id sunxi_sram_dt_match[] = …;
MODULE_DEVICE_TABLE(of, sunxi_sram_dt_match);
static struct platform_driver sunxi_sram_driver = …;
builtin_platform_driver_probe(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;