PROTOCOLS
Device
Defined in fuchsia.hardware.sdhci/sdhci.fidl
GetBaseClock
Request
<EMPTY>
Response
Name | Type |
---|---|
clock |
uint32
|
GetBti
Gets a handle to the bus transaction initiator for the device. The caller receives ownership of the handle.
Request
Name | Type |
---|---|
index |
uint32
|
Response
Name | Type |
---|---|
payload |
Device_GetBti_Result
|
GetInterrupt
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
Device_GetInterrupt_Result
|
GetMmio
Mmio size minus offset must be at least 512 bytes as per the SDHCI specification.
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
Device_GetMmio_Result
|
GetQuirks
Returns device quirks.
Request
<EMPTY>
Response
Name | Type |
---|---|
quirks |
Quirk
|
dma_boundary_alignment |
uint64
|
HwReset
Platform specific HW reset.
Request
<EMPTY>
Response
<EMPTY>
VendorSetBusClock
SDHCI defines two clocks: the clock delivered to the external card ("SD clock") and the internal clock (upstream of the SD clock).
VendorSetBusClock()
always enables the internal clock, and if frequency_hz
is nonzero,
enables the SD clock with the given frequency (the SD clock is disabled if frequency_hz
is
zero). The driver must wait for all clocks to be stable before returning.
This method is optional. If no vendor-specific clock configuration is needed, ZX_ERR_STOP
should be returned, after which the SDHCI driver will configure the Clock Control register
as recommended by the SDHCI specification.
Request
Name | Type |
---|---|
frequency_hz |
uint32
|
Response
Name | Type |
---|---|
payload |
Device_VendorSetBusClock_Result
|
STRUCTS
Device_GetBti_Response resource
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Field | Type | Description | Default |
---|---|---|---|
bti |
handle<bti>
|
No default |
Device_GetInterrupt_Response resource
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Field | Type | Description | Default |
---|---|---|---|
irq |
handle<interrupt>
|
No default |
Device_GetMmio_Response resource
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Field | Type | Description | Default |
---|---|---|---|
mmio |
handle<vmo>
|
No default | |
offset |
zx/Off
|
No default |
Device_VendorSetBusClock_Response
Defined in fuchsia.hardware.sdhci/sdhci.fidl
<EMPTY>
UNIONS
Device_GetBti_Result strict resource
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_GetBti_Response
|
|
2 |
err |
zx/Status
|
Device_GetInterrupt_Result strict resource
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_GetInterrupt_Response
|
|
2 |
err |
zx/Status
|
Device_GetMmio_Result strict resource
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_GetMmio_Response
|
|
2 |
err |
zx/Status
|
Device_VendorSetBusClock_Result strict
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Device_VendorSetBusClock_Response
|
|
2 |
err |
zx/Status
|
BITS
Quirk strict
Type: uint64
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Name | Value | Description |
---|---|---|
STRIP_RESPONSE_CRC |
1 | This is a BCM28xx specific quirk. The bottom 8 bits of the 136 bit response are normally filled by 7 CRC bits and 1 reserved bit. The BCM controller checks the CRC for us and strips it off in the process. The higher level stack expects 136B responses to be packed in a certain way so we shift all the fields back to their proper offsets. |
NO_DMA |
2 | BCM28xx quirk: The BCM28xx appears to use its internal DMA engine to perform transfers against the SD card. Normally we would use SDMA or ADMA (if the part supported it). Since this part doesn't appear to support either, we just use PIO. |
STRIP_RESPONSE_CRC_PRESERVE_ORDER |
4 | The bottom 8 bits of the 136 bit response are normally filled by 7 CRC bits and 1 reserved bit. Some controllers strip off the CRC. The higher level stack expects 136B responses to be packed in a certain way so we shift all the fields back to their proper offsets. |
NON_STANDARD_TUNING |
8 | The controller uses a tuning process that does not follow the SDHCI specification. |
NO_DDR |
16 | Don't use DDR modes even if the SDHCI capabilities register indicates it is supported. |
USE_DMA_BOUNDARY_ALIGNMENT |
32 | Prevent DMA buffers from crossing boundaries specified by dma_boundary_alignment. For example, a boundary alignment of 0x10000 will cause buffers crossing 64K boundaries to be split across multiple descriptors. |
SERVICES
Service
Defined in fuchsia.hardware.sdhci/sdhci.fidl
Name | Type | Transport |
---|---|---|
device |
fuchsia.hardware.sdhci/Device
|
Driver |