Lines Matching +full:ext +full:- +full:irq +full:- +full:range
1 /* SPDX-License-Identifier: GPL-2.0-only */
54 #define REGMAP_UPSHIFT(s) (-(s))
73 * struct reg_default - Default value for a register.
87 * struct reg_sequence - An individual write from a sequence of writes.
110 * regmap_read_poll_timeout - Poll until a condition is met or a timeout occurs
116 * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
123 * Returns: 0 on success and -ETIMEDOUT upon a timeout or the regmap_read
137 * regmap_read_poll_timeout_atomic - Poll until a condition is met or a timeout occurs
143 * @delay_us: Time to udelay between reads in us (0 tight-loops). Please
154 * Returns: 0 on success and -ETIMEDOUT upon a timeout or the regmap_read
178 __ret ?: ((cond) ? 0 : -ETIMEDOUT); \
182 * regmap_field_read_poll_timeout - Poll until a condition is met or timeout
187 * @sleep_us: Maximum time to sleep between reads in us (0 tight-loops). Please
194 * Returns: 0 on success and -ETIMEDOUT upon a timeout or the regmap_field_read
210 /* Unspecified -> 0 -> Backwards compatible default */
218 * struct regmap_range - A register range, used for access related checks
232 * struct regmap_access_table - A table of register ranges for access checks
241 * will return false. If a register belongs to a yes range, the corresponding
255 * struct regmap_config - Configuration for the register map of a device.
330 * Use it only for "no-bus" cases.
397 * @num_ranges: Number of range configuration entries.
473 * struct regmap_range_cfg - Configuration for indirectly accessed or paged
478 * @range_min: Address of the lowest register address in virtual range.
479 * @range_max: Address of the highest register in virtual range.
488 * Registers, mapped to this virtual range, are accessed in two steps:
495 /* Registers of virtual address range */
510 * struct regmap_sdw_mbq_cfg - Configuration for Multi-Byte Quantities
563 * struct regmap_bus - Description of a hardware bus for the register map
572 * @gather_write: Write operation with split register/value, return -ENOTSUPP
575 * must serialise with respect to non-async I/O.
765 * for each call. No-op if CONFIG_LOCKDEP is not set.
778 "(" name ")->lock"); \
786 * regmap_init() - Initialise register map
789 * @bus: Bus-specific callbacks to use with device
790 * @bus_context: Data passed to bus-specific callbacks
795 * directly, it should be called by bus-specific init functions.
804 * regmap_init_i2c() - Initialise register map
817 * regmap_init_mdio() - Initialise register map
830 * regmap_init_sccb() - Initialise register map
843 * regmap_init_slimbus() - Initialise register map
856 * regmap_init_spi() - Initialise register map
869 * regmap_init_spmi_base() - Create regmap for the Base register space
882 * regmap_init_spmi_ext() - Create regmap for Ext register space
895 * regmap_init_w1() - Initialise register map
908 * regmap_init_mmio_clk() - Initialise register map with register clock
912 * @regs: Pointer to memory-mapped IO region
923 * regmap_init_mmio() - Initialise register map
926 * @regs: Pointer to memory-mapped IO region
936 * regmap_init_ac97() - Initialise AC'97 register map
950 * regmap_init_sdw() - Initialise register map
963 * regmap_init_sdw_mbq() - Initialise register map
976 * regmap_init_sdw_mbq_cfg() - Initialise MBQ SDW register map with config
991 * regmap_init_spi_avmm() - Initialize register map for Intel SPI Slave
1005 * regmap_init_fsi() - Initialise register map
1018 * devm_regmap_init() - Initialise managed register map
1021 * @bus: Bus-specific callbacks to use with device
1022 * @bus_context: Data passed to bus-specific callbacks
1027 * directly, it should be called by bus-specific init functions. The
1035 * devm_regmap_init_i2c() - Initialise managed register map
1049 * devm_regmap_init_mdio() - Initialise managed register map
1063 * devm_regmap_init_sccb() - Initialise managed register map
1077 * devm_regmap_init_spi() - Initialise register map
1091 * devm_regmap_init_spmi_base() - Create managed regmap for Base register space
1105 * devm_regmap_init_spmi_ext() - Create managed regmap for Ext register space
1119 * devm_regmap_init_w1() - Initialise managed register map
1132 * devm_regmap_init_mmio_clk() - Initialise managed register map with clock
1136 * @regs: Pointer to memory-mapped IO region
1148 * devm_regmap_init_mmio() - Initialise managed register map
1151 * @regs: Pointer to memory-mapped IO region
1162 * devm_regmap_init_ac97() - Initialise AC'97 register map
1176 * devm_regmap_init_sdw() - Initialise managed register map
1190 * devm_regmap_init_sdw_mbq() - Initialise managed register map
1204 * devm_regmap_init_sdw_mbq_cfg() - Initialise managed MBQ SDW register map with config
1219 * devm_regmap_init_slimbus() - Initialise managed register map
1233 * devm_regmap_init_i3c() - Initialise managed register map
1247 * devm_regmap_init_spi_avmm() - Initialize register map for Intel SPI Slave
1262 * devm_regmap_init_fsi() - Initialise managed register map
1375 const struct regmap_range *range) in regmap_reg_in_range() argument
1377 return reg >= range->range_min && reg <= range->range_max; in regmap_reg_in_range()
1409 * struct reg_field - Description of an register field
1544 * struct regmap_irq_type - IRQ type definitions.
1546 * @type_reg_offset: Offset register for the irq type setting.
1547 * @type_rising_val: Register value to configure RISING type irq.
1548 * @type_falling_val: Register value to configure FALLING type irq.
1549 * @type_level_low_val: Register value to configure LEVEL_LOW type irq.
1550 * @type_level_high_val: Register value to configure LEVEL_HIGH type irq.
1564 * struct regmap_irq - Description of an IRQ for the generic regmap irq_chip.
1568 * @type: IRQ trigger type setting details if supported.
1596 * struct regmap_irq_chip - Description of a generic regmap irq_chip.
1598 * @name: Descriptive name for IRQ controller.
1599 * @domain_suffix: Name suffix to be appended to end of IRQ domain name. Needed
1600 * when multiple regmap-IRQ controllers are created from same
1604 * interrupts arranged in separate sub-irq blocks with own IRQ
1605 * registers and which have a main IRQ registers indicating
1606 * sub-irq blocks with unhandled interrupts. For such chips fill
1607 * sub-irq register information in status_base, mask_base and
1611 * @sub_reg_offsets: arrays of mappings from main register bits to sub irq
1617 * 1.st bit to 1.st sub-reg, 2.nd bit to 2.nd sub-reg, ...
1618 * @num_main_regs: Number of 'main status' irq registers for chips which have
1629 * @config_base: Base address for IRQ type config regs. If null unsupported.
1642 * @clear_ack: Use this to set 1 and 0 or vice-versa to clear interrupts.
1645 * @type_in_mask: Use the mask registers for controlling irq type. Use this if
1649 * to define the mask bit for each irq type.
1668 * @handle_mask_sync: Callback used to handle IRQ mask syncs. The index will be
1669 * in the range [0, num_regs)
1670 * @set_type_config: Callback used for configuring irq types.
1674 * The index will be in the range [0, num_main_regs[ for the
1678 * @irq_drv_data: Driver specific IRQ data which is passed as parameter when
1739 int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags,
1743 struct regmap *map, int irq,
1747 void regmap_del_irq_chip(int irq, struct regmap_irq_chip_data *data);
1749 int devm_regmap_add_irq_chip(struct device *dev, struct regmap *map, int irq,
1755 struct regmap *map, int irq,
1759 void devm_regmap_del_irq_chip(struct device *dev, int irq,
1763 int regmap_irq_get_virq(struct regmap_irq_chip_data *data, int irq);
1779 return -EINVAL; in regmap_write()
1786 return -EINVAL; in regmap_write_async()
1793 return -EINVAL; in regmap_raw_write()
1800 return -EINVAL; in regmap_raw_write_async()
1807 return -EINVAL; in regmap_noinc_write()
1814 return -EINVAL; in regmap_bulk_write()
1821 return -EINVAL; in regmap_read()
1828 return -EINVAL; in regmap_read_bypassed()
1835 return -EINVAL; in regmap_raw_read()
1842 return -EINVAL; in regmap_noinc_read()
1849 return -EINVAL; in regmap_bulk_read()
1857 return -EINVAL; in regmap_update_bits_base()
1864 return -EINVAL; in regmap_set_bits()
1871 return -EINVAL; in regmap_clear_bits()
1878 return -EINVAL; in regmap_assign_bits()
1885 return -EINVAL; in regmap_test_bits()
1893 return -EINVAL; in regmap_field_update_bits_base()
1902 return -EINVAL; in regmap_fields_update_bits_base()
1909 return -EINVAL; in regmap_update_bits()
1916 return -EINVAL; in regmap_update_bits_async()
1924 return -EINVAL; in regmap_update_bits_check()
1933 return -EINVAL; in regmap_update_bits_check_async()
1940 return -EINVAL; in regmap_write_bits()
1947 return -EINVAL; in regmap_field_write()
1954 return -EINVAL; in regmap_field_force_write()
1961 return -EINVAL; in regmap_field_update_bits()
1969 return -EINVAL; in regmap_field_force_update_bits()
1976 return -EINVAL; in regmap_field_set_bits()
1983 return -EINVAL; in regmap_field_clear_bits()
1990 return -EINVAL; in regmap_field_test_bits()
1997 return -EINVAL; in regmap_fields_write()
2004 return -EINVAL; in regmap_fields_force_write()
2012 return -EINVAL; in regmap_fields_update_bits()
2020 return -EINVAL; in regmap_fields_force_update_bits()
2026 return -EINVAL; in regmap_get_val_bytes()
2032 return -EINVAL; in regmap_get_max_register()
2038 return -EINVAL; in regmap_get_reg_stride()
2056 return -EINVAL; in regcache_sync()
2063 return -EINVAL; in regcache_sync_region()
2070 return -EINVAL; in regcache_drop_region()
2098 return -EINVAL; in regmap_register_patch()
2105 return -EINVAL; in regmap_parse_val()