Aidan MacDonald
faa87ce919
regmap-irq: Introduce config registers for irq types
...
Config registers provide a more uniform approach to handling irq type
registers. They are essentially an extension of the virtual registers
used by the qcom-pm8008 driver.
Config registers can be represented as a 2D array:
config_base[0] reg0,0 reg0,1 reg0,2 reg0,3
config_base[1] reg1,0 reg1,1 reg1,2 reg1,3
config_base[2] reg2,0 reg2,1 reg2,2 reg2,3
There are 'num_config_bases' base registers, each of which is used to
address 'num_config_regs' registers. The addresses are calculated in
the same way as for other bases. It is assumed that an irq's type is
controlled by one column of registers; that column is identified by
the irq's 'type_reg_offset'.
The set_type_config() callback is responsible for updating the config
register contents. It receives an array of buffers (each represents a
row of registers) and the index of the column to update, along with
the 'struct regmap_irq' description and requested irq type.
Buffered values are written to registers in regmap_irq_sync_unlock().
Note that the entire register contents are overwritten, which is a
minor change in behavior from type registers via 'type_base'.
Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com >
Link: https://lore.kernel.org/r/20220623211420.918875-9-aidanmacdonald.0x0@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org >
2022-06-29 18:13:13 +01:00
..
2022-06-03 11:48:47 -07:00
2022-05-18 00:08:27 +02:00
2022-05-19 22:15:51 +02:00
2022-06-03 11:48:47 -07:00
2022-06-03 11:36:34 -07:00
2022-06-03 11:48:47 -07:00
2022-06-05 09:12:28 -07:00
2022-06-03 11:36:34 -07:00
2022-03-14 21:11:09 -07:00
2022-05-26 14:51:38 -07:00
2022-06-02 15:23:54 -07:00
2022-06-03 10:02:52 -07:00
2022-05-24 14:31:29 -07:00
2022-06-05 10:47:06 -07:00
2022-05-22 20:44:29 +01:00
2022-06-03 16:13:25 -07:00
2022-06-02 15:23:54 -07:00
2022-06-03 11:48:47 -07:00
2022-05-19 12:25:40 -04:00
2022-06-03 11:17:49 -07:00
2022-05-30 11:30:16 -07:00
2019-05-24 17:27:11 +02:00
2022-05-02 14:06:20 -06:00
2022-05-23 13:56:39 -07:00
2022-06-03 06:52:58 -07:00
2022-06-03 10:14:48 -07:00
2022-05-28 06:15:27 -06:00
2022-06-03 10:25:56 -07:00
2022-05-23 14:31:28 -07:00
2022-05-25 12:22:58 -07:00
2022-05-20 15:29:00 -07:00
2022-05-09 23:12:34 -04:00
2020-10-25 14:51:49 -07:00
2022-03-23 10:11:03 -07:00
2022-05-23 17:51:12 -07:00
2017-11-02 11:10:55 +01:00
2022-05-31 14:10:54 -07:00
2021-05-13 11:00:18 -07:00
2020-08-18 13:45:20 +02:00
2022-05-27 12:34:44 +02:00
2022-06-03 20:09:29 +08:00
2021-09-17 15:08:45 +02:00
2021-05-21 20:59:55 +02:00
2021-07-08 11:48:20 -07:00
2022-06-01 15:55:25 -07:00
2022-06-03 11:48:47 -07:00
2018-03-16 19:58:27 +01:00
2021-05-13 20:50:23 +02:00
2020-08-06 16:13:13 +02:00
2022-05-25 16:18:27 -07:00
2017-11-02 11:10:55 +01:00
2018-01-01 12:40:27 -07:00
2022-02-13 15:59:38 +00:00
2022-05-24 16:33:20 +09:00
2022-06-03 11:48:47 -07:00
2022-05-19 14:08:55 -07:00
2022-06-03 06:52:57 -07:00
2017-11-02 11:10:55 +01:00
2022-06-04 19:00:05 -07:00
2022-05-29 10:31:36 -07:00
2022-05-26 12:32:41 -07:00
2022-06-01 11:50:42 +02:00
2022-02-23 10:58:28 +01:00
2022-05-19 14:08:49 -07:00
2022-05-28 11:27:17 -07:00
2022-05-22 11:32:31 -07:00
2022-06-03 11:48:47 -07:00
2021-05-06 19:24:11 -07:00
2021-11-09 10:02:49 -08:00
2022-05-24 11:11:13 -07:00
2022-05-24 19:55:07 -07:00
2022-05-20 12:27:17 +02:00
2022-05-31 11:36:57 +02:00
2022-05-27 12:34:44 +02:00
2017-11-02 11:10:55 +01:00
2021-10-05 15:51:35 +02:00
2022-04-27 10:57:33 -07:00
2019-12-11 09:12:38 +01:00
2022-05-31 14:10:54 -07:00
2022-05-19 14:08:50 -07:00
2022-05-26 21:12:59 -04:00
2022-05-19 14:08:54 -07:00
2022-05-26 14:20:14 -07:00
2022-05-27 11:22:03 -07:00
2022-05-24 08:46:37 +02:00
2022-05-27 21:24:19 -07:00
2022-05-23 13:27:58 +02:00
2022-05-24 13:09:13 -07:00
2022-05-23 14:45:24 -05:00
2017-11-02 11:10:55 +01:00
2022-04-21 07:36:56 -04:00
2022-05-19 14:08:53 -07:00
2022-05-13 16:48:56 -07:00
2022-05-27 11:40:49 -07:00
2021-09-27 09:27:29 -04:00
2022-05-12 10:29:41 -07:00
2020-12-22 12:55:08 -08:00
2021-08-16 14:42:22 +02:00
2022-05-19 23:25:48 -04:00
2018-03-24 11:25:35 -05:00
2022-05-05 18:25:57 -07:00
2022-05-22 21:51:54 +01:00
2022-05-24 19:55:07 -07:00
2022-05-31 17:09:30 -04:00
2022-05-26 12:32:41 -07:00
2022-05-31 17:09:24 -04:00
2022-03-22 15:57:10 -07:00
2022-06-04 14:04:27 -07:00
2022-05-19 19:30:30 +02:00
2022-05-19 20:24:56 -04:00
2022-05-24 10:36:38 -07:00
2022-05-22 15:59:54 +10:00
2019-06-05 17:30:29 +02:00
2022-05-26 12:32:41 -07:00
2022-05-24 19:55:07 -07:00
2022-04-06 13:43:44 -07:00
2021-02-03 19:05:50 +01:00
2017-11-02 11:10:55 +01:00
2022-06-03 11:48:47 -07:00
2022-02-23 10:58:28 +01:00
2022-06-03 11:48:47 -07:00
2022-05-19 20:16:05 +02:00
2022-05-30 11:37:26 -07:00
2022-05-22 11:32:30 -07:00
2019-05-24 17:36:45 +02:00
2022-05-26 12:32:41 -07:00
2019-06-15 12:25:49 +02:00
2022-06-03 11:17:49 -07:00
2022-05-19 16:58:16 -07:00
2022-05-10 10:40:26 -07:00
2022-05-30 11:37:26 -07:00
2022-06-29 18:13:13 +01:00
2021-06-09 13:37:16 +02:00
2021-04-01 14:18:32 -04:00
2022-05-19 14:08:54 -07:00
2019-09-16 11:43:38 -05:00
2022-06-03 16:13:25 -07:00
2017-11-02 11:10:55 +01:00
2022-05-24 11:29:34 -07:00
2022-05-22 21:03:01 +01:00
2022-02-23 10:58:28 +01:00
2021-08-13 09:12:53 +02:00
2022-05-19 18:24:47 +02:00
2022-06-03 10:34:34 -07:00
2019-05-30 11:26:32 -07:00
2022-06-02 10:15:05 -07:00
2022-05-26 12:32:41 -07:00
2022-04-29 21:11:15 -06:00
2020-03-18 09:50:20 +00:00
2021-12-10 14:06:03 +00:00
2018-10-09 11:20:55 +02:00
2022-05-12 10:49:23 +02:00
2022-05-19 14:08:50 -07:00
2022-05-27 09:33:45 -07:00
2022-05-27 09:33:45 -07:00
2022-04-30 08:39:32 -06:00
2022-06-03 11:17:49 -07:00
2022-04-10 12:38:45 +02:00
2017-11-02 11:10:55 +01:00
2019-08-28 11:50:43 +02:00
2022-05-19 23:46:13 +02:00
2021-07-27 12:12:07 +02:00
2022-06-03 11:48:47 -07:00
2022-05-24 08:41:18 -06:00
2022-05-31 12:44:28 -04:00
2022-05-31 12:45:10 -04:00
2022-05-31 12:45:10 -04:00
2022-05-19 14:08:53 -07:00
2022-04-19 12:08:57 -07:00
2022-02-23 10:58:28 +01:00
2021-10-20 06:19:03 -10:00
2022-05-26 16:57:20 -07:00
2022-04-01 13:40:44 -07:00
2021-11-08 16:55:32 -08:00