summaryrefslogtreecommitdiffstats
path: root/bsps/arm/atsam/spi/sc16is752.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/atsam/spi/sc16is752.c')
-rw-r--r--bsps/arm/atsam/spi/sc16is752.c27
1 files changed, 11 insertions, 16 deletions
diff --git a/bsps/arm/atsam/spi/sc16is752.c b/bsps/arm/atsam/spi/sc16is752.c
index 8d38fe92d6..59380d5057 100644
--- a/bsps/arm/atsam/spi/sc16is752.c
+++ b/bsps/arm/atsam/spi/sc16is752.c
@@ -41,7 +41,7 @@ static bool atsam_sc16is752_install_interrupt(sc16is752_context *base)
rtems_status_code sc;
uint8_t rv;
- sc = rtems_interrupt_server_entry_initialize(RTEMS_INTERRUPT_SERVER_DEFAULT,
+ sc = rtems_interrupt_server_entry_initialize(ctx->irqs_index,
&ctx->irqs_entry);
rtems_interrupt_server_action_prepend(&ctx->irqs_entry,
&ctx->irqs_action, atsam_sc16i752_irqs_handler, ctx);
@@ -64,24 +64,19 @@ static void atsam_sc16is752_remove_interrupt(sc16is752_context *base)
}
int atsam_sc16is752_spi_create(
- atsam_sc16is752_spi_context *ctx,
- const char *device_path,
- sc16is752_mode mode,
- uint32_t input_frequency,
- const char *spi_path,
- uint8_t spi_chip_select,
- uint32_t spi_speed_hz,
- const Pin *irq_pin
+ atsam_sc16is752_spi_context *ctx,
+ const atsam_sc16is752_spi_config *config
)
{
- ctx->base.base.mode = mode;
- ctx->base.base.input_frequency = input_frequency;
+ ctx->base.base.mode = config->mode;
+ ctx->base.base.input_frequency = config->input_frequency;
ctx->base.base.install_irq = atsam_sc16is752_install_interrupt;
ctx->base.base.remove_irq = atsam_sc16is752_remove_interrupt;
- ctx->base.spi_path = spi_path;
- ctx->base.cs = spi_chip_select;
- ctx->base.speed_hz = spi_speed_hz;
- ctx->irq_pin = *irq_pin;
+ ctx->base.spi_path = config->spi_path;
+ ctx->base.cs = config->spi_chip_select;
+ ctx->base.speed_hz = config->spi_speed_hz;
+ ctx->irq_pin = config->irq_pin;
+ ctx->irqs_index = config->server_index;
- return sc16is752_spi_create(&ctx->base, device_path);
+ return sc16is752_spi_create(&ctx->base, config->device_path);
}