Message ID | 1483111474-29907-2-git-send-email-stefan.wahren@i2se.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Stefan Wahren <stefan.wahren@i2se.com> writes: > Since the mmc module on bcm2835 neither provide a capabilities register nor > free documentation we must rely on the downstream implementation [1]. Yeah, caps reg is wired to 0, but it can do high speed. Since we're VDD_330 only, I'm not sure the driver type flags do anything, but I'm still good with having consistency. Reviewed-by: Eric Anholt <eric@anholt.net> Interested in porting over the DMA support? :) I also noticed that the emmc wrapper module claims it can run with a clock from 50-100mhz, and the arasan says it can run at up to 50, 52, or 208mhz depending on SD/MMC mode. Could we get a boost from running the module at a higher clock rate?
Hi Eric, > Eric Anholt <eric@anholt.net> hat am 3. Januar 2017 um 19:27 geschrieben: > > > Stefan Wahren <stefan.wahren@i2se.com> writes: > > > Since the mmc module on bcm2835 neither provide a capabilities register nor > > free documentation we must rely on the downstream implementation [1]. > > Yeah, caps reg is wired to 0, but it can do high speed. > > Since we're VDD_330 only, I'm not sure the driver type flags do > anything, but I'm still good with having consistency. yes, the driver type flags currently have no benefit. > > Reviewed-by: Eric Anholt <eric@anholt.net> > > Interested in porting over the DMA support? :) AFAIK the sdhci doesn't support external DMA (required for bcm2835). So DMA support would result in a new driver, which i'm currently not interested. But i've prepared a fixup patch series for the sdhost driver i want to send to Gerd. > > I also noticed that the emmc wrapper module claims it can run with a > clock from 50-100mhz, and the arasan says it can run at up to 50, 52, or > 208mhz depending on SD/MMC mode. Could we get a boost from running the > module at a higher clock rate? Sorry, i can't follow. Do you mean DDR mode?
Stefan Wahren <stefan.wahren@i2se.com> writes: > Hi Eric, > >> Eric Anholt <eric@anholt.net> hat am 3. Januar 2017 um 19:27 geschrieben: >> >> >> Stefan Wahren <stefan.wahren@i2se.com> writes: >> >> > Since the mmc module on bcm2835 neither provide a capabilities register nor >> > free documentation we must rely on the downstream implementation [1]. >> >> Yeah, caps reg is wired to 0, but it can do high speed. >> >> Since we're VDD_330 only, I'm not sure the driver type flags do >> anything, but I'm still good with having consistency. > > yes, the driver type flags currently have no benefit. > >> >> Reviewed-by: Eric Anholt <eric@anholt.net> >> >> Interested in porting over the DMA support? :) > > AFAIK the sdhci doesn't support external DMA (required for bcm2835). > So DMA support would result in a new driver, which i'm currently not interested. > > But i've prepared a fixup patch series for the sdhost driver i want to send to Gerd. > >> >> I also noticed that the emmc wrapper module claims it can run with a >> clock from 50-100mhz, and the arasan says it can run at up to 50, 52, or >> 208mhz depending on SD/MMC mode. Could we get a boost from running the >> module at a higher clock rate? > > Sorry, i can't follow. Do you mean DDR mode? Apparently I what I was reading about was SDR104 mode, which also requires 1.8V.
On 30/12/16 17:24, Stefan Wahren wrote: > Since the mmc module on bcm2835 neither provide a capabilities register nor > free documentation we must rely on the downstream implementation [1]. > > So enable the following capabilities for bcm2835: > > MMC_CAP_MMC_HIGHSPEED > MMC_CAP_SD_HIGHSPEED > MMC_CAP_DRIVER_TYPE_A > MMC_CAP_DRIVER_TYPE_C > > [1] - https://github.com/raspberrypi/linux/blob/rpi-4.4.y/drivers/mmc/host/bcm2835-mmc.c > > Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > drivers/mmc/host/sdhci-iproc.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c > index d7046d6..30b3fdf 100644 > --- a/drivers/mmc/host/sdhci-iproc.c > +++ b/drivers/mmc/host/sdhci-iproc.c > @@ -211,14 +211,17 @@ static void sdhci_iproc_writeb(struct sdhci_host *host, u8 val, int reg) > static const struct sdhci_pltfm_data sdhci_bcm2835_pltfm_data = { > .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION | > SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > - SDHCI_QUIRK_MISSING_CAPS, > + SDHCI_QUIRK_MISSING_CAPS | > + SDHCI_QUIRK_NO_HISPD_BIT, > .ops = &sdhci_iproc_32only_ops, > }; > > static const struct sdhci_iproc_data bcm2835_data = { > .pdata = &sdhci_bcm2835_pltfm_data, > - .caps = SDHCI_CAN_VDD_330, > - .caps1 = 0x00000000, > + .caps = SDHCI_CAN_VDD_330 | > + SDHCI_CAN_DO_HISPD, > + .caps1 = SDHCI_DRIVER_TYPE_A | > + SDHCI_DRIVER_TYPE_C, > .mmc_caps = 0x00000000, > }; > >
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c index d7046d6..30b3fdf 100644 --- a/drivers/mmc/host/sdhci-iproc.c +++ b/drivers/mmc/host/sdhci-iproc.c @@ -211,14 +211,17 @@ static void sdhci_iproc_writeb(struct sdhci_host *host, u8 val, int reg) static const struct sdhci_pltfm_data sdhci_bcm2835_pltfm_data = { .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION | SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | - SDHCI_QUIRK_MISSING_CAPS, + SDHCI_QUIRK_MISSING_CAPS | + SDHCI_QUIRK_NO_HISPD_BIT, .ops = &sdhci_iproc_32only_ops, }; static const struct sdhci_iproc_data bcm2835_data = { .pdata = &sdhci_bcm2835_pltfm_data, - .caps = SDHCI_CAN_VDD_330, - .caps1 = 0x00000000, + .caps = SDHCI_CAN_VDD_330 | + SDHCI_CAN_DO_HISPD, + .caps1 = SDHCI_DRIVER_TYPE_A | + SDHCI_DRIVER_TYPE_C, .mmc_caps = 0x00000000, };
Since the mmc module on bcm2835 neither provide a capabilities register nor free documentation we must rely on the downstream implementation [1]. So enable the following capabilities for bcm2835: MMC_CAP_MMC_HIGHSPEED MMC_CAP_SD_HIGHSPEED MMC_CAP_DRIVER_TYPE_A MMC_CAP_DRIVER_TYPE_C [1] - https://github.com/raspberrypi/linux/blob/rpi-4.4.y/drivers/mmc/host/bcm2835-mmc.c Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> --- drivers/mmc/host/sdhci-iproc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)