1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-24 14:03:55 +01:00
Marian Buschsieweke 2a00ec13e5
drivers/periph/gpio_ll: shrink gpio_conf_t
This commit optimizes the `gpio_conf_t` type in the following
regards:

- The "base" `gpio_conf_t` is stripped from members that only some
  platforms support, e.g. drive strength, slew rate, and disabling of
  the Schmitt Trigger are no longer universally available but
  platform-specific extensions
- The `gpio_conf_t` is now crammed into a bit-field that is 8 bit or
  16 bit wide. This allows for storing lots of them e.g. in
  `driver_foo_params_t` or `uart_conf_t` etc.
- A `union` of the `struct` with bit-field members and a `bits` is used
  to allow accessing all bits in a simple C statement and to ensure
  alignment for efficient handling of the type

Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
2024-01-21 08:38:40 +01:00
..
2021-08-13 19:50:38 +02:00
2019-11-23 22:39:07 +01:00
2020-04-17 16:43:16 +05:30
2020-09-29 14:42:15 +02:00
2020-02-27 08:46:40 +01:00
2022-09-16 14:00:35 +02:00
2022-09-14 15:05:25 +02:00
2021-11-05 12:49:37 +01:00
2020-02-12 07:34:22 +01:00
2019-11-23 22:39:07 +01:00
2020-05-04 18:18:00 +05:30
2022-04-20 09:23:50 +02:00
2021-04-27 17:37:52 +02:00
2021-08-13 19:50:38 +02:00
2023-06-20 12:07:48 +02:00
2021-08-13 19:50:38 +02:00
2019-11-23 22:39:07 +01:00
2019-03-14 14:32:28 +01:00
2017-09-01 15:12:20 +02:00
2017-09-01 15:12:20 +02:00
2020-04-29 14:32:00 +05:30
2020-11-18 09:13:56 +01:00
2020-04-16 17:17:27 +05:30
2023-06-08 14:33:38 +02:00
2021-12-16 15:19:44 +01:00
2020-04-01 13:37:22 +02:00
2021-08-13 19:50:38 +02:00
2021-07-07 08:40:02 +02:00
2019-11-23 22:39:07 +01:00
2021-08-13 19:50:38 +02:00
2017-09-01 15:12:20 +02:00
2021-08-13 19:50:38 +02:00
2022-09-14 15:05:25 +02:00
2017-06-21 17:05:45 +02:00
2022-03-09 15:23:51 +01:00
2022-01-18 16:27:44 +01:00
2020-04-23 15:49:55 +05:30
2023-01-31 21:05:07 +01:00
2020-06-17 08:41:41 +02:00
2020-04-22 21:57:05 +05:30
2021-08-13 19:50:38 +02:00
2023-06-01 16:52:26 +02:00
2017-08-30 09:06:03 +02:00
2019-11-27 13:35:57 +01:00
2017-09-01 15:12:20 +02:00
2017-09-01 15:12:20 +02:00
2021-08-13 19:50:38 +02:00
2020-07-17 15:05:32 +02:00
2021-08-13 19:50:38 +02:00
2021-08-13 19:50:38 +02:00
2021-08-13 19:50:38 +02:00
2021-11-04 10:39:36 +01:00
2023-02-27 12:31:04 +01:00
2019-11-23 22:39:40 +01:00
2021-04-08 10:14:30 +02:00
2022-09-16 11:12:27 +02:00
2021-08-13 19:50:38 +02:00
2021-08-13 19:50:38 +02:00
2021-11-30 10:31:22 +01:00
2020-08-25 16:20:18 +02:00
2018-07-25 12:01:38 +02:00
2020-11-22 23:12:40 +01:00
2023-09-20 15:55:34 +00:00
2021-11-08 18:42:05 +01:00
2022-05-18 17:06:12 +02:00
2018-06-11 19:10:40 +02:00
2022-09-14 15:05:25 +02:00
2019-11-23 22:39:40 +01:00
2022-09-14 15:05:25 +02:00
2022-09-14 15:05:25 +02:00
2020-04-09 13:34:51 +02:00
2022-09-16 14:00:35 +02:00