sel4platsupport: TK1: Support Mux and GPIO dependency changes on TK1
diff --git a/libsel4platsupport/src/io.c b/libsel4platsupport/src/io.c index 03115f4..2a0c9ae 100644 --- a/libsel4platsupport/src/io.c +++ b/libsel4platsupport/src/io.c
@@ -275,6 +275,24 @@ return 0; } +#ifdef CONFIG_PLAT_TK1 +#include <platsupport/gpio.h> + +gpio_sys_t gpio_sys; +#endif + +void * +get_mux_dependencies(void) +{ +#ifdef CONFIG_PLAT_TK1 + /* The TK1's mux depends on an instance of the GPIO driver. */ + return &gpio_sys; +#else + /* The other platforms don't have any such dependency issues. */ + return NULL; +#endif +} + int sel4platsupport_new_io_ops(vspace_t vspace, vka_t vka, ps_io_ops_t *io_ops) { @@ -285,6 +303,14 @@ return err; } +#ifdef ARCH_ARM + clock_sys_init(io_ops, &io_ops->clock_sys); +#ifdef CONFIG_PLAT_TK1 + gpio_sys_init(io_ops, &gpio_sys); +#endif + mux_sys_init(io_ops, get_mux_dependencies(), &io_ops->mux_sys); +#endif + sel4platsupport_new_malloc_ops(&io_ops->malloc_ops); return err; }