+int sd_setBusWidth(Sd *sd, size_t len)
+{
+ ASSERT(sd);
+
+ if (hsmci_sendCmd(55, 0, HSMCI_CMDR_RSPTYP_48_BIT))
+ {
+ LOG_ERR("APP_CMD %lx\n", HSMCI_SR);
+ return -1;
+ }
+ else
+ {
+ LOG_INFO("APP_CMD %lx\n", HSMCI_RSPR);
+ }
+
+
+ if (hsmci_sendCmd(6, len, HSMCI_CMDR_RSPTYP_48_BIT))
+ {
+ LOG_ERR("SET_BUS_WIDTH: %lx\n", HSMCI_SR);
+ return -1;
+ }
+ else
+ {
+ hsmci_readResp(&(sd->status), 1);
+ LOG_INFOB(dump("SET_BUS_WIDTH", &(sd->status), 1););
+
+ HSMCI_CHECK_BUSY();
+ }
+
+ return 0;
+}
+
+
+int sd_set_BlockLen(Sd *sd, size_t len)
+{
+ ASSERT(sd);
+
+ if (hsmci_sendCmd(16, len, HSMCI_CMDR_RSPTYP_48_BIT))
+ {
+ LOG_ERR("SET_BUS_WIDTH: %lx\n", HSMCI_SR);
+ return -1;
+ }
+ else
+ {
+ hsmci_readResp(&(sd->status), 1);
+ LOG_INFOB(dump("SET_BUS_WIDTH", &(sd->status), 1););
+
+ HSMCI_CHECK_BUSY();
+ }
+
+ return 0;
+}
+
+