@ -1577,24 +1577,24 @@ static const TypeInfo sdhci_bus_info = {
/* --- qdev i.MX eSDHC --- */
# define E SDHC_MIX_CTRL 0x48
# define U SDHC_MIX_CTRL 0x48
# define E SDHC_VENDOR_SPEC 0xc0
# define E SDHC_IMX_FRC_SDCLK_ON (1 << 8)
# define U SDHC_VENDOR_SPEC 0xc0
# define U SDHC_IMX_FRC_SDCLK_ON (1 << 8)
# define E SDHC_DLL_CTRL 0x60
# define U SDHC_DLL_CTRL 0x60
# define E SDHC_TUNING_CTRL 0xcc
# define E SDHC_TUNE_CTRL_STATUS 0x68
# define E SDHC_WTMK_LVL 0x44
# define U SDHC_TUNING_CTRL 0xcc
# define U SDHC_TUNE_CTRL_STATUS 0x68
# define U SDHC_WTMK_LVL 0x44
/* Undocumented register used by guests working around erratum ERR004536 */
# define E SDHC_UNDOCUMENTED_REG27 0x6c
# define U SDHC_UNDOCUMENTED_REG27 0x6c
# define E SDHC_CTRL_4BITBUS (0x1 << 1)
# define E SDHC_CTRL_8BITBUS (0x2 << 1)
# define U SDHC_CTRL_4BITBUS (0x1 << 1)
# define U SDHC_CTRL_8BITBUS (0x2 << 1)
# define E SDHC_PRNSTS_SDSTB (1 << 3)
# define U SDHC_PRNSTS_SDSTB (1 << 3)
static uint64_t usdhc_read ( void * opaque , hwaddr offset , unsigned size )
{
@ -1615,11 +1615,11 @@ static uint64_t usdhc_read(void *opaque, hwaddr offset, unsigned size)
hostctl1 = SDHC_DMA_TYPE ( s - > hostctl1 ) < < ( 8 - 3 ) ;
if ( s - > hostctl1 & SDHC_CTRL_8BITBUS ) {
hostctl1 | = E SDHC_CTRL_8BITBUS;
hostctl1 | = U SDHC_CTRL_8BITBUS;
}
if ( s - > hostctl1 & SDHC_CTRL_4BITBUS ) {
hostctl1 | = E SDHC_CTRL_4BITBUS;
hostctl1 | = U SDHC_CTRL_4BITBUS;
}
ret = hostctl1 ;
@ -1630,21 +1630,21 @@ static uint64_t usdhc_read(void *opaque, hwaddr offset, unsigned size)
case SDHC_PRNSTS :
/* Add SDSTB (SD Clock Stable) bit to PRNSTS */
ret = sdhci_read ( opaque , offset , size ) & ~ E SDHC_PRNSTS_SDSTB;
ret = sdhci_read ( opaque , offset , size ) & ~ U SDHC_PRNSTS_SDSTB;
if ( s - > clkcon & SDHC_CLOCK_INT_STABLE ) {
ret | = E SDHC_PRNSTS_SDSTB;
ret | = U SDHC_PRNSTS_SDSTB;
}
break ;
case E SDHC_VENDOR_SPEC:
case U SDHC_VENDOR_SPEC:
ret = s - > vendor_spec ;
break ;
case E SDHC_DLL_CTRL:
case E SDHC_TUNE_CTRL_STATUS:
case E SDHC_UNDOCUMENTED_REG27:
case E SDHC_TUNING_CTRL:
case E SDHC_MIX_CTRL:
case E SDHC_WTMK_LVL:
case U SDHC_DLL_CTRL:
case U SDHC_TUNE_CTRL_STATUS:
case U SDHC_UNDOCUMENTED_REG27:
case U SDHC_TUNING_CTRL:
case U SDHC_MIX_CTRL:
case U SDHC_WTMK_LVL:
ret = 0 ;
break ;
}
@ -1660,18 +1660,18 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
uint32_t value = ( uint32_t ) val ;
switch ( offset ) {
case E SDHC_DLL_CTRL:
case E SDHC_TUNE_CTRL_STATUS:
case E SDHC_UNDOCUMENTED_REG27:
case E SDHC_TUNING_CTRL:
case E SDHC_WTMK_LVL:
case U SDHC_DLL_CTRL:
case U SDHC_TUNE_CTRL_STATUS:
case U SDHC_UNDOCUMENTED_REG27:
case U SDHC_TUNING_CTRL:
case U SDHC_WTMK_LVL:
break ;
case E SDHC_VENDOR_SPEC:
case U SDHC_VENDOR_SPEC:
s - > vendor_spec = value ;
switch ( s - > vendor ) {
case SDHCI_VENDOR_IMX :
if ( value & E SDHC_IMX_FRC_SDCLK_ON) {
if ( value & U SDHC_IMX_FRC_SDCLK_ON) {
s - > prnsts & = ~ SDHC_IMX_CLOCK_GATE_OFF ;
} else {
s - > prnsts | = SDHC_IMX_CLOCK_GATE_OFF ;
@ -1740,12 +1740,12 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
* Second , split " Data Transfer Width " from bits 2 and 1 in to
* bits 5 and 1
*/
if ( value & E SDHC_CTRL_8BITBUS) {
if ( value & U SDHC_CTRL_8BITBUS) {
hostctl1 | = SDHC_CTRL_8BITBUS ;
}
if ( value & E SDHC_CTRL_4BITBUS) {
hostctl1 | = E SDHC_CTRL_4BITBUS;
if ( value & U SDHC_CTRL_4BITBUS) {
hostctl1 | = U SDHC_CTRL_4BITBUS;
}
/*
@ -1768,7 +1768,7 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
sdhci_write ( opaque , offset , value , size ) ;
break ;
case E SDHC_MIX_CTRL:
case U SDHC_MIX_CTRL:
/*
* So , when SD / MMC stack in Linux tries to write to " Transfer
* Mode Register " , ESDHC i.MX quirk code will translate it