struct device *dev; /* Device we do I/O on */ void *work_buf; /* Scratch buffer used to format I/O */ struct regmap_format format; /* Buffer format */ conststruct regmap_bus *bus; void *bus_context; constchar *name;
/* number of bits to (left) shift the reg value when formatting*/ int reg_shift; int reg_stride; int reg_stride_order;
bool defer_caching;
/* If set, will always write field to HW. */ bool force_write_field;
/* regcache specific members */ conststruct regcache_ops *cache_ops; enum regcache_type cache_type;
/* number of bytes in reg_defaults_raw */ unsignedint cache_size_raw; /* number of bytes per word in reg_defaults_raw */ unsignedint cache_word_size; /* number of entries in reg_defaults */ unsignedint num_reg_defaults; /* number of entries in reg_defaults_raw */ unsignedint num_reg_defaults_raw;
/* if set, only the cache is modified not the HW */ bool cache_only; /* if set, only the HW is modified not the cache */ bool cache_bypass; /* if set, remember to free reg_defaults_raw */ bool cache_free;
struct reg_default *reg_defaults; constvoid *reg_defaults_raw; void *cache; /* if set, the cache contains newer data than the HW */ bool cache_dirty; /* if set, the HW registers are known to match map->reg_defaults */ bool no_sync_defaults;
struct reg_sequence *patch; int patch_regs;
/* if set, the regmap core can sleep */ bool can_sleep;
/* if set, converts bulk read to single read */ bool use_single_read; /* if set, converts bulk write to single write */ bool use_single_write; /* if set, the device supports multi write mode */ bool can_multi_write;
/* if set, raw reads/writes are limited to this size */
size_t max_raw_read;
size_t max_raw_write;
struct rb_root range_tree; void *selector_work_buf; /* Scratch buffer used for selector */
struct hwspinlock *hwlock;
};
struct regcache_ops { constchar *name; enum regcache_type type; int (*init)(struct regmap *map); int (*exit)(struct regmap *map); #ifdef CONFIG_DEBUG_FS void (*debugfs_init)(struct regmap *map); #endif int (*read)(struct regmap *map, unsignedint reg, unsignedint *value); int (*write)(struct regmap *map, unsignedint reg, unsignedint value); int (*sync)(struct regmap *map, unsignedint min, unsignedint max); int (*drop)(struct regmap *map, unsignedint min, unsignedint max);
};
/* * Create a test register map with data stored in RAM, not intended * for practical use.
*/ struct regmap *__regmap_init_ram(struct device *dev, conststruct regmap_config *config, struct regmap_ram_data *data, struct lock_class_key *lock_key, constchar *lock_name);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.