RTEMS: bsps/include/libchip/spi-sd-card.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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
29extern "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
76extern sd_card_driver_entry sd_card_driver_table [];
77
78extern 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 */
rtems_status_code
rtems_status_code
Classic API Status.
Definition: status.h:43
libi2c.h
Legacy I2C Library.
SD_CARD_COMMAND_SIZE
#define SD_CARD_COMMAND_SIZE
Definition: spi-sd-card.h:41
rtems_libi2c_tfr_mode_t
Definition: libi2c.h:462
sd_card_driver_entry
Definition: spi-sd-card.h:59