use crate::common_cmd::{cmd, Cmd, R1, R3};
pub fn send_op_cond(ocr: u32) -> Cmd<R3> {
cmd(1, ocr)
}
pub fn assign_relative_address(address: u16) -> Cmd<R1> {
cmd(3, (address as u32) << 16)
}
pub enum AccessMode {
SetBits = 0b01,
ClearBits = 0b10,
WriteByte = 0b11,
}
pub fn modify_ext_csd(access_mode: AccessMode, index: u8, value: u8) -> Cmd<R1> {
let arg = 0u32 | ((access_mode as u32) << 24) | ((index as u32) << 16) | ((value as u32) << 8);
cmd(6, arg)
}
pub fn send_ext_csd() -> Cmd<R1> {
cmd(8, 0)
}
pub fn bustest_read() -> Cmd<R1> {
cmd(14, 0)
}
pub fn bustest_write() -> Cmd<R1> {
cmd(19, 0)
}
pub fn set_block_count(blockcount: u16) -> Cmd<R1> {
cmd(23, blockcount as u32)
}
pub fn erase_group_start(address: u32) -> Cmd<R1> {
cmd(35, address)
}
pub fn erase_group_end(address: u32) -> Cmd<R1> {
cmd(36, address)
}