[PATCH 0/6] Deduplicate driver initialization code

Xiang W wxjstz at 126.com
Sun Nov 10 18:50:02 PST 2024


在 2024-11-04一的 20:20 -0800,Samuel Holland写道:
> Upstreaming support for some of SiFive's security and power management
> features will require adding some new driver subsystems (e.g. caches,
> WorldGuard gadgets, power management domains, etc.). To avoid copy-and-
> pasting the FDT-based driver matching code to each new subsystem, this
> series refactors it into some efficient and easily-reusable helper
> functions.
> 
> This series only converts three existing subsystems to use the new
> helpers, but the remaining subsystems are trivial to convert once the
> corresponding patch series I have already sent is applied:
>  - gpio: http://lists.infradead.org/pipermail/opensbi/2024-September/007340.html
>  - ipi: http://lists.infradead.org/pipermail/opensbi/2024-October/007546.html
>  - irqchip: http://lists.infradead.org/pipermail/opensbi/2024-November/007555.html
>  - regmap: http://lists.infradead.org/pipermail/opensbi/2024-September/007340.html
>  - timer: http://lists.infradead.org/pipermail/opensbi/2024-September/007332.html
> 

This series of patches requires rebase to master

Regards,
Xiang W

> 
> Samuel Holland (6):
>   lib: utils/gpio: Remove fdt_gpio_driver() function
>   treewide: Make carray arrays const and NULL-terminated
>   lib: utils/fdt: Add helpers for generic driver initialization
>   lib: utils/i2c: Use fdt_driver for initialization
>   lib: utils/reset: Use fdt_driver for initialization
>   lib: utils/serial: Use fdt_driver for initialization
> 
>  include/sbi_utils/fdt/fdt_driver.h           | 59 +++++++++++++++
>  include/sbi_utils/i2c/fdt_i2c.h              |  8 +-
>  include/sbi_utils/reset/fdt_reset.h          | 15 +---
>  include/sbi_utils/serial/fdt_serial.h        |  6 +-
>  lib/sbi/sbi_ecall.c                          |  5 +-
>  lib/sbi/tests/sbi_unit_test.c                |  5 +-
>  lib/utils/fdt/fdt_driver.c                   | 80 ++++++++++++++++++++
>  lib/utils/fdt/objects.mk                     |  1 +
>  lib/utils/gpio/fdt_gpio.c                    | 22 +-----
>  lib/utils/i2c/fdt_i2c.c                      | 31 +-------
>  lib/utils/i2c/fdt_i2c_adapter_drivers.carray |  2 +-
>  lib/utils/i2c/fdt_i2c_dw.c                   |  2 +-
>  lib/utils/i2c/fdt_i2c_sifive.c               |  2 +-
>  lib/utils/ipi/fdt_ipi.c                      |  5 +-
>  lib/utils/irqchip/fdt_irqchip.c              |  5 +-
>  lib/utils/regmap/fdt_regmap.c                |  5 +-
>  lib/utils/reset/fdt_reset.c                  | 37 +--------
>  lib/utils/reset/fdt_reset_atcwdt200.c        |  2 +-
>  lib/utils/reset/fdt_reset_drivers.carray     |  2 +-
>  lib/utils/reset/fdt_reset_gpio.c             |  4 +-
>  lib/utils/reset/fdt_reset_htif.c             |  2 +-
>  lib/utils/reset/fdt_reset_sg2042_hwmon_mcu.c |  2 +-
>  lib/utils/reset/fdt_reset_sunxi_wdt.c        |  2 +-
>  lib/utils/reset/fdt_reset_syscon.c           |  4 +-
>  lib/utils/serial/fdt_serial.c                | 53 ++-----------
>  lib/utils/serial/fdt_serial_cadence.c        |  2 +-
>  lib/utils/serial/fdt_serial_drivers.carray   |  2 +-
>  lib/utils/serial/fdt_serial_gaisler.c        |  2 +-
>  lib/utils/serial/fdt_serial_htif.c           |  2 +-
>  lib/utils/serial/fdt_serial_litex.c          |  2 +-
>  lib/utils/serial/fdt_serial_renesas_scif.c   |  2 +-
>  lib/utils/serial/fdt_serial_shakti.c         |  2 +-
>  lib/utils/serial/fdt_serial_sifive.c         |  2 +-
>  lib/utils/serial/fdt_serial_uart8250.c       |  2 +-
>  lib/utils/serial/fdt_serial_xlnx_uartlite.c  |  2 +-
>  lib/utils/timer/fdt_timer.c                  |  5 +-
>  platform/generic/platform.c                  |  5 +-
>  platform/generic/sifive/fu740.c              |  9 ++-
>  platform/generic/starfive/jh7110.c           |  9 ++-
>  scripts/carray.sh                            |  7 +-
>  40 files changed, 211 insertions(+), 205 deletions(-)
>  create mode 100644 include/sbi_utils/fdt/fdt_driver.h
>  create mode 100644 lib/utils/fdt/fdt_driver.c
> 
> -- 
> 2.45.1
> 
> 



More information about the opensbi mailing list