core.c (0034ebe6ee3151e5c54fd13c6f441429bd2cdadf) core.c (da34692234a03b6ffabd0b5b7864b423ac8eca56)
1/*
2 * SD card bus interface code.
3 *
4 * Copyright (c) 2015 Linaro Limited
5 *
6 * Author:
7 * Peter Maydell <peter.maydell@linaro.org>
8 *

--- 27 unchanged lines hidden (view full) ---

36 BusChild *kid = QTAILQ_FIRST(&sdbus->qbus.children);
37
38 if (!kid) {
39 return NULL;
40 }
41 return SD_CARD(kid->child);
42}
43
1/*
2 * SD card bus interface code.
3 *
4 * Copyright (c) 2015 Linaro Limited
5 *
6 * Author:
7 * Peter Maydell <peter.maydell@linaro.org>
8 *

--- 27 unchanged lines hidden (view full) ---

36 BusChild *kid = QTAILQ_FIRST(&sdbus->qbus.children);
37
38 if (!kid) {
39 return NULL;
40 }
41 return SD_CARD(kid->child);
42}
43
44uint8_t sdbus_get_dat_lines(SDBus *sdbus)
45{
46 SDState *slave = get_card(sdbus);
47 uint8_t dat_lines = 0b1111; /* 4 bit bus width */
48
49 if (slave) {
50 SDCardClass *sc = SD_CARD_GET_CLASS(slave);
51
52 if (sc->get_dat_lines) {
53 dat_lines = sc->get_dat_lines(slave);
54 }
55 }
56 trace_sdbus_get_dat_lines(sdbus_name(sdbus), dat_lines);
57
58 return dat_lines;
59}
60
61bool sdbus_get_cmd_line(SDBus *sdbus)
62{
63 SDState *slave = get_card(sdbus);
64 bool cmd_line = true;
65
66 if (slave) {
67 SDCardClass *sc = SD_CARD_GET_CLASS(slave);
68
69 if (sc->get_cmd_line) {
70 cmd_line = sc->get_cmd_line(slave);
71 }
72 }
73 trace_sdbus_get_cmd_line(sdbus_name(sdbus), cmd_line);
74
75 return cmd_line;
76}
77
44void sdbus_set_voltage(SDBus *sdbus, uint16_t millivolts)
45{
46 SDState *card = get_card(sdbus);
47
48 trace_sdbus_set_voltage(sdbus_name(sdbus), millivolts);
49 if (card) {
50 SDCardClass *sc = SD_CARD_GET_CLASS(card);
51

--- 145 unchanged lines hidden ---
78void sdbus_set_voltage(SDBus *sdbus, uint16_t millivolts)
79{
80 SDState *card = get_card(sdbus);
81
82 trace_sdbus_set_voltage(sdbus_name(sdbus), millivolts);
83 if (card) {
84 SDCardClass *sc = SD_CARD_GET_CLASS(card);
85

--- 145 unchanged lines hidden ---