RTEMS
5.1
bsps
include
libchip
spi-sd-card.h
Go to the documentation of this file.
1
7
/*
8
* Copyright (c) 2008
9
* Embedded Brains GmbH
10
* Obere Lagerstr. 30
11
* D-82178 Puchheim
12
* Germany
13
* rtems@embedded-brains.de
14
*
15
* The license and distribution terms for this file may be
16
* found in the file LICENSE in this distribution or at
17
* http://www.rtems.org/license/LICENSE.
18
*/
19
20
#ifndef LIBI2C_SD_CARD_H
21
#define LIBI2C_SD_CARD_H
22
23
#include <stdint.h>
24
#include <stdbool.h>
25
26
#include <
rtems/libi2c.h
>
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
/* __cplusplus */
31
32
#define SD_CARD_IDLE_TOKEN 0xff
33
41
#define SD_CARD_COMMAND_SIZE 18
42
43
#define SD_CARD_TRANSFER_MODE_DEFAULT { .baudrate = 400000, .bits_per_char = 8, .lsb_first = FALSE, .clock_inv = FALSE, .clock_phs = FALSE, .idle_char = SD_CARD_IDLE_TOKEN }
44
45
#define SD_CARD_COMMAND_DEFAULT { \
46
SD_CARD_IDLE_TOKEN, \
47
0x40, 0, 0, 0, 0, 0x95, \
48
SD_CARD_IDLE_TOKEN, SD_CARD_IDLE_TOKEN, \
49
SD_CARD_IDLE_TOKEN, SD_CARD_IDLE_TOKEN, \
50
SD_CARD_IDLE_TOKEN, SD_CARD_IDLE_TOKEN, \
51
SD_CARD_IDLE_TOKEN, SD_CARD_IDLE_TOKEN, \
52
SD_CARD_IDLE_TOKEN, SD_CARD_IDLE_TOKEN, \
53
SD_CARD_IDLE_TOKEN \
54
}
55
56
/* Default speed = 400kbps, default timeout = 100ms, n_ac_max is in bytes */
57
#define SD_CARD_N_AC_MAX_DEFAULT 5000
58
59
typedef
struct
{
60
const
char
*device_name;
61
rtems_device_minor_number bus;
62
rtems_libi2c_tfr_mode_t
transfer_mode;
63
uint8_t command [
SD_CARD_COMMAND_SIZE
];
64
uint8_t response [
SD_CARD_COMMAND_SIZE
];
65
int
response_index;
66
uint32_t n_ac_max;
67
uint32_t block_number;
68
uint32_t block_size;
69
uint32_t block_size_shift;
70
bool
busy;
71
bool
verbose;
72
bool
schedule_if_busy;
73
uint32_t retries;
74
}
sd_card_driver_entry
;
75
76
extern
sd_card_driver_entry
sd_card_driver_table [];
77
78
extern
size_t
sd_card_driver_table_size;
79
80
rtems_status_code
sd_card_register(
void
);
81
82
#ifdef __cplusplus
83
}
84
#endif
/* __cplusplus */
85
86
#endif
/* LIBI2C_SD_CARD_H */
sd_card_driver_entry
Definition:
spi-sd-card.h:59
rtems_status_code
rtems_status_code
Classic API Status.
Definition:
status.h:43
SD_CARD_COMMAND_SIZE
#define SD_CARD_COMMAND_SIZE
Definition:
spi-sd-card.h:41
rtems_libi2c_tfr_mode_t
Definition:
libi2c.h:462
libi2c.h
Legacy I2C Library.
Generated by
1.8.15