1.1 --- a/pkg/devices/lib/msc/include/msc-x1600.h Fri Feb 16 23:11:25 2024 +0100
1.2 +++ b/pkg/devices/lib/msc/include/msc-x1600.h Sat Feb 17 23:04:12 2024 +0100
1.3 @@ -22,7 +22,6 @@
1.4 #pragma once
1.5
1.6 #include <l4/devices/msc-common.h>
1.7 -#include <l4/re/c/dma_space.h>
1.8 #include <l4/sys/types.h>
1.9 #include <stdint.h>
1.10
1.11 @@ -40,9 +39,15 @@
1.12 Dma_x1600_channel *_dma;
1.13 enum Dma_x1600_request_type _request_type_in, _request_type_out;
1.14
1.15 + // Special overridden method.
1.16 +
1.17 + void reset();
1.18 +
1.19 public:
1.20 explicit Msc_x1600_channel(l4_addr_t msc_start, l4_addr_t addr,
1.21 - l4_cap_idx_t irq, Dma_x1600_channel *dma,
1.22 + l4_cap_idx_t irq, Cpm_chip *cpm,
1.23 + enum Clock_identifiers clock,
1.24 + Dma_x1600_channel *dma,
1.25 enum Dma_x1600_request_type request_type_in,
1.26 enum Dma_x1600_request_type request_type_out);
1.27
1.28 @@ -55,12 +60,22 @@
1.29
1.30 class Msc_x1600_chip : public Msc_chip
1.31 {
1.32 -protected:
1.33 +protected:
1.34 + const enum Dma_x1600_request_type _in_types[2] =
1.35 + {Dma_request_msc0_in, Dma_request_msc1_in};
1.36 +
1.37 + const enum Dma_x1600_request_type _out_types[2] =
1.38 + {Dma_request_msc0_out, Dma_request_msc1_out};
1.39 +
1.40 + const enum Clock_identifiers _clocks[2] =
1.41 + {Clock_msc0, Clock_msc1};
1.42 +
1.43 unsigned int num_channels()
1.44 { return 2; }
1.45
1.46 public:
1.47 - explicit Msc_x1600_chip(l4_addr_t msc_start, l4_addr_t start, l4_addr_t end);
1.48 + explicit Msc_x1600_chip(l4_addr_t msc_start, l4_addr_t start, l4_addr_t end,
1.49 + Cpm_chip *cpm);
1.50
1.51 Msc_channel *get_channel(uint8_t channel, l4_cap_idx_t irq,
1.52 Dma_x1600_channel *dma);
1.53 @@ -72,7 +87,8 @@
1.54
1.55 EXTERN_C_BEGIN
1.56
1.57 -void *x1600_msc_init(l4_addr_t msc_start, l4_addr_t start, l4_addr_t end);
1.58 +void *x1600_msc_init(l4_addr_t msc_start, l4_addr_t start, l4_addr_t end,
1.59 + void *cpm);
1.60
1.61 void *x1600_msc_get_channel(void *msc, uint8_t channel, l4_cap_idx_t irq,
1.62 void *dma);
1.63 @@ -84,7 +100,7 @@
1.64 void x1600_msc_enable(void *msc_channel);
1.65
1.66 uint32_t x1600_msc_read_blocks(void *msc_channel, uint8_t card,
1.67 - l4re_dma_space_dma_addr_t paddr,
1.68 + struct dma_region *region,
1.69 uint32_t block_address, uint32_t block_count);
1.70
1.71 EXTERN_C_END