sdhci: define all registers from spec v4.20
Change-Id: Icf71fc2864bb084292f70c2433029ad2742727c8 Reviewed-on: https://review.haiku-os.org/c/1028 Reviewed-by: Stephan Aßmus <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
899da7db5a
commit
f37553039b
@@ -65,9 +65,10 @@ sdhci_register_dump(uint8_t slot, struct registers* regs)
|
||||
TRACE("argument: %d\n", regs->argument);
|
||||
TRACE("transfer_mode: %d\n", regs->transfer_mode);
|
||||
TRACE("command: %d\n", regs->command);
|
||||
TRACE("response: %d %d %d %d\n", regs->response0, regs->response2,
|
||||
regs->response4, regs->response6);
|
||||
TRACE("buffer_data_port: %d\n", regs->buffer_data_port);
|
||||
TRACE("response:");
|
||||
for (int i = 0; i < 8; i++)
|
||||
TRACE(" %d", regs->response[i]);
|
||||
TRACE("\nbuffer_data_port: %d\n", regs->buffer_data_port);
|
||||
TRACE("present_state: %d\n", regs->present_state);
|
||||
TRACE("power_control: %d\n", regs->power_control);
|
||||
TRACE("host_control: %d\n", regs->host_control);
|
||||
@@ -80,14 +81,11 @@ sdhci_register_dump(uint8_t slot, struct registers* regs)
|
||||
regs->interrupt_status, regs->interrupt_status_enable,
|
||||
regs->interrupt_signal_enable);
|
||||
TRACE("auto_cmd12_error_status: %d\n", regs->auto_cmd12_error_status);
|
||||
TRACE("capabilities: %d\n", regs->capabilities);
|
||||
TRACE("capabilities_rsvd: %d\n", regs->capabilities_rsvd);
|
||||
TRACE("max_current_capabilities: %d\n",
|
||||
TRACE("capabilities: %lld\n", regs->capabilities);
|
||||
TRACE("max_current_capabilities: %lld\n",
|
||||
regs->max_current_capabilities);
|
||||
TRACE("max_current_capabilities_rsvd: %d\n",
|
||||
regs->max_current_capabilities_rsvd);
|
||||
TRACE("slot_interrupt_status: %d\n", regs->slot_interrupt_status);
|
||||
TRACE("host_control_version %x\n", regs->host_control_version);
|
||||
TRACE("host_controller_version %x\n", regs->host_controller_version);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -75,10 +75,7 @@ struct registers {
|
||||
volatile uint32_t argument;
|
||||
volatile uint16_t transfer_mode;
|
||||
volatile uint16_t command;
|
||||
volatile uint32_t response0;
|
||||
volatile uint32_t response2;
|
||||
volatile uint32_t response4;
|
||||
volatile uint32_t response6;
|
||||
volatile uint16_t response[8];
|
||||
volatile uint32_t buffer_data_port;
|
||||
volatile uint32_t present_state;
|
||||
volatile uint8_t host_control;
|
||||
@@ -92,15 +89,47 @@ struct registers {
|
||||
volatile uint32_t interrupt_status_enable;
|
||||
volatile uint32_t interrupt_signal_enable;
|
||||
volatile uint16_t auto_cmd12_error_status;
|
||||
volatile uint16_t : 16;
|
||||
volatile uint32_t capabilities;
|
||||
volatile uint32_t capabilities_rsvd;
|
||||
volatile uint32_t max_current_capabilities;
|
||||
volatile uint32_t max_current_capabilities_rsvd;
|
||||
volatile uint64_t padding[21];
|
||||
volatile uint32_t : 32;
|
||||
volatile uint16_t host_control_2;
|
||||
volatile uint64_t capabilities;
|
||||
volatile uint64_t max_current_capabilities;
|
||||
volatile uint16_t force_event_acmd_status;
|
||||
volatile uint16_t force_event_error_status;
|
||||
volatile uint8_t adma_error_status;
|
||||
volatile uint8_t padding[3];
|
||||
volatile uint64_t adma_system_address;
|
||||
volatile uint64_t preset_value[2];
|
||||
volatile uint32_t :32;
|
||||
volatile uint16_t uhs2_preset_value;
|
||||
volatile uint16_t :16;
|
||||
volatile uint64_t adma3_id_address;
|
||||
volatile uint16_t uhs2_block_size;
|
||||
volatile uint16_t :16;
|
||||
volatile uint32_t uhs2_block_count;
|
||||
volatile uint8_t uhs2_command_packet[20];
|
||||
volatile uint16_t uhs2_transfer_mode;
|
||||
volatile uint16_t uhs2_command;
|
||||
volatile uint8_t uhs2_response[20];
|
||||
volatile uint8_t uhs2_msg_select;
|
||||
volatile uint8_t padding2[3];
|
||||
volatile uint32_t uhs2_msg;
|
||||
volatile uint16_t uhs2_device_interrupt_status;
|
||||
volatile uint8_t uhs2_device_select;
|
||||
volatile uint8_t uhs2_device_int_code;
|
||||
volatile uint16_t uhs2_software_reset;
|
||||
volatile uint16_t uhs2_timer_control;
|
||||
volatile uint32_t uhs2_error_interrupt_status;
|
||||
volatile uint32_t uhs2_error_interrupt_status_enable;
|
||||
volatile uint32_t uhs2_error_interrupt_signal_enable;
|
||||
volatile uint8_t padding3[16];
|
||||
volatile uint16_t uhs2_settings_pointer;
|
||||
volatile uint16_t uhs2_host_capabilities_pointer;
|
||||
volatile uint16_t uhs2_test_pointer;
|
||||
volatile uint16_t embedded_control_pointer;
|
||||
volatile uint16_t vendor_specific_pointer;
|
||||
volatile uint16_t reserved_specific_pointer;
|
||||
volatile uint8_t padding4[16];
|
||||
volatile uint16_t slot_interrupt_status;
|
||||
volatile uint16_t host_control_version;
|
||||
volatile uint16_t host_controller_version;
|
||||
} __attribute__((packed));
|
||||
|
||||
typedef void* sdhci_mmc_bus;
|
||||
|
||||
Reference in New Issue
Block a user