Skip to content
  • Ulf Hansson's avatar
    ead49373
    mmc: core: Initial support for SD express card/host · ead49373
    Ulf Hansson authored
    
    
    In the SD specification v7.10 the SD express card has been added. This new
    type of removable SD card, can be managed via a PCIe/NVMe based interface,
    while also allowing backwards compatibility towards the legacy SD
    interface.
    
    To keep the backwards compatibility, it's required to start the
    initialization through the legacy SD interface. If it turns out that the
    mmc host and the SD card, both supports the PCIe/NVMe interface, then a
    switch should be allowed.
    
    Therefore, let's introduce some basic support for this type of SD cards to
    the mmc core. The mmc host, should set MMC_CAP2_SD_EXP if it supports this
    interface and MMC_CAP2_SD_EXP_1_2V, if also 1.2V is supported, as to inform
    the core about it.
    
    To deal with the switch to the PCIe/NVMe interface, the mmc host is
    required to implement a new host ops, ->init_sd_express(). Based on the
    initial communication between the host and the card, host->ios.timing is
    set to either MMC_TIMING_SD_EXP or MMC_TIMING_SD_EXP_1_2V, depending on if
    1.2V is supported or not. In this way, the mmc host can check these values
    in its ->init_sd_express() ops, to know how to proceed with the handover.
    
    Note that, to manage card insert/removal, the mmc core sticks with using
    the ->get_cd() callback, which means it's the host's responsibility to make
    sure it provides valid data, even if the card may be managed by PCIe/NVMe
    at the moment. As long as the card seems to be present, the mmc core keeps
    the card powered on.
    
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Rui Feng <rui_feng@realsil.com.cn>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Link: https://lore.kernel.org/r/1603936636-3126-1-git-send-email-rui_feng@realsil.com.cn
    ead49373
    mmc: core: Initial support for SD express card/host
    Ulf Hansson authored
    
    
    In the SD specification v7.10 the SD express card has been added. This new
    type of removable SD card, can be managed via a PCIe/NVMe based interface,
    while also allowing backwards compatibility towards the legacy SD
    interface.
    
    To keep the backwards compatibility, it's required to start the
    initialization through the legacy SD interface. If it turns out that the
    mmc host and the SD card, both supports the PCIe/NVMe interface, then a
    switch should be allowed.
    
    Therefore, let's introduce some basic support for this type of SD cards to
    the mmc core. The mmc host, should set MMC_CAP2_SD_EXP if it supports this
    interface and MMC_CAP2_SD_EXP_1_2V, if also 1.2V is supported, as to inform
    the core about it.
    
    To deal with the switch to the PCIe/NVMe interface, the mmc host is
    required to implement a new host ops, ->init_sd_express(). Based on the
    initial communication between the host and the card, host->ios.timing is
    set to either MMC_TIMING_SD_EXP or MMC_TIMING_SD_EXP_1_2V, depending on if
    1.2V is supported or not. In this way, the mmc host can check these values
    in its ->init_sd_express() ops, to know how to proceed with the handover.
    
    Note that, to manage card insert/removal, the mmc core sticks with using
    the ->get_cd() callback, which means it's the host's responsibility to make
    sure it provides valid data, even if the card may be managed by PCIe/NVMe
    at the moment. As long as the card seems to be present, the mmc core keeps
    the card powered on.
    
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Rui Feng <rui_feng@realsil.com.cn>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Link: https://lore.kernel.org/r/1603936636-3126-1-git-send-email-rui_feng@realsil.com.cn
Loading