1.1 --- a/pkg/landfall-examples/hw_info/jz4780.c Sun Feb 11 00:36:08 2024 +0100
1.2 +++ b/pkg/landfall-examples/hw_info/jz4780.c Sun Feb 11 00:39:56 2024 +0100
1.3 @@ -1,7 +1,7 @@
1.4 /*
1.5 * Access various peripherals on a board using the JZ4780.
1.6 *
1.7 - * Copyright (C) 2023 Paul Boddie <paul@boddie.org.uk>
1.8 + * Copyright (C) 2023, 2024 Paul Boddie <paul@boddie.org.uk>
1.9 *
1.10 * This program is free software; you can redistribute it and/or
1.11 * modify it under the terms of the GNU General Public License as
1.12 @@ -28,6 +28,7 @@
1.13 #include <l4/devices/dma-jz4780.h>
1.14 #include <l4/devices/gpio-jz4780.h>
1.15 #include <l4/devices/i2c-jz4780.h>
1.16 +#include <l4/devices/msc-jz4780.h>
1.17
1.18 /* The X1600 RTC functionality is a subset of that in the JZ4780. */
1.19
1.20 @@ -336,6 +337,35 @@
1.21
1.22
1.23
1.24 +/* MSC adapter functions. */
1.25 +
1.26 +void *msc_init(l4_addr_t msc_start, l4_addr_t start, l4_addr_t end)
1.27 +{
1.28 + return jz4780_msc_init(msc_start, start, end);
1.29 +}
1.30 +
1.31 +void *msc_get_channel(void *msc, uint8_t channel, l4_cap_idx_t irq, void *dma)
1.32 +{
1.33 + return jz4780_msc_get_channel(msc, channel, irq, dma);
1.34 +}
1.35 +
1.36 +uint32_t msc_get_status(void *msc_channel)
1.37 +{
1.38 + return jz4780_msc_get_status(msc_channel);
1.39 +}
1.40 +
1.41 +void msc_enable(void *msc_channel)
1.42 +{
1.43 + jz4780_msc_enable(msc_channel);
1.44 +}
1.45 +
1.46 +uint32_t msc_read_block(void *msc_channel, uint8_t card, l4re_dma_space_dma_addr_t paddr)
1.47 +{
1.48 + return jz4780_msc_read_block(msc_channel, card, paddr);
1.49 +}
1.50 +
1.51 +
1.52 +
1.53 /* RTC adapter functions. */
1.54
1.55 void *rtc_init(l4_addr_t start, void *cpm)
1.56 @@ -590,6 +620,7 @@
1.57 [DMA] = "jz4780-dma",
1.58 [GPIO] = "jz4780-gpio",
1.59 [I2C] = "jz4780-i2c",
1.60 + [MSC] = "jz4780-msc",
1.61 [RTC] = "jz4780-rtc",
1.62 [SSI] = "jz4780-ssi",
1.63 [TCU] = "jz4780-tcu",
1.64 @@ -699,6 +730,16 @@
1.65
1.66
1.67
1.68 +/* MSC definitions. */
1.69 +
1.70 +void *msc_channels[] = {NULL, NULL, NULL};
1.71 +
1.72 +const unsigned int num_msc_channels = 3;
1.73 +
1.74 +l4_cap_idx_t msc_irqs[] = {L4_INVALID_CAP, L4_INVALID_CAP, L4_INVALID_CAP};
1.75 +
1.76 +
1.77 +
1.78 /* SPI definitions. */
1.79
1.80 void *spi_channels[] = {NULL, NULL};