#
d678a59d |
|
18-May-2024 |
Tom Rini <trini@konsulko.com> |
Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"" When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
7938ac65 |
|
01-May-2024 |
Tom Rini <trini@konsulko.com> |
mmc: Remove <common.h> and add needed includes Remove <common.h> from this driver directory and when needed add missing include files directly. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
c69cda25 |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename dev_get_platdata() to dev_get_plat() Rename this to be consistent with the change from 'platdata'. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
caa4daa2 |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename 'platdata' variables to just 'plat' We use 'priv' for private data but often use 'platdata' for platform data. We can't really use 'pdata' since that is ambiguous (it could mean private or platform data). Rename some of the latter variables to end with 'plat' for consistency. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
41575d8e |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename auto_alloc_size members to be shorter This construct is quite long-winded. In earlier days it made some sense since auto-allocation was a strange concept. But with driver model now used pretty universally, we can shorten this to 'auto'. This reduces verbosity and makes it easier to read. Coincidentally it also ensures that every declaration is on one line, thus making dtoc's job easier. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2548493a |
|
16-Jul-2020 |
Masahiro Yamada <masahiroy@kernel.org> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
7208396b |
|
24-Jul-2020 |
Tom Rini <trini@konsulko.com> |
Revert "Merge tag 'dm-pull-20jul20' of git://git.denx.de/u-boot-dm" This reverts commit 5d3a21df6694ebd66d5c34c9d62a26edc7456fc7, reversing changes made to 56d37f1c564107e27d873181d838571b7d7860e7. Unfortunately this is causing CI failures: https://travis-ci.org/github/trini/u-boot/jobs/711313649 Signed-off-by: Tom Rini <trini@konsulko.com> |
#
60e7fa8b |
|
16-Jul-2020 |
Masahiro Yamada <masahiroy@kernel.org> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
221c5e42 |
|
03-Jun-2020 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
mmc: bcm283x: fix int to pointer cast On build with 32 bit, there is a warning for int-to-pointer-cast. Fix the int to pointer cast by using uintptr_t. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <masahiroy@kernel.org> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
7938ac65 |
|
01-May-2024 |
Tom Rini <trini@konsulko.com> |
mmc: Remove <common.h> and add needed includes Remove <common.h> from this driver directory and when needed add missing include files directly. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> |
#
c69cda25 |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename dev_get_platdata() to dev_get_plat() Rename this to be consistent with the change from 'platdata'. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
caa4daa2 |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename 'platdata' variables to just 'plat' We use 'priv' for private data but often use 'platdata' for platform data. We can't really use 'pdata' since that is ambiguous (it could mean private or platform data). Rename some of the latter variables to end with 'plat' for consistency. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
41575d8e |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename auto_alloc_size members to be shorter This construct is quite long-winded. In earlier days it made some sense since auto-allocation was a strange concept. But with driver model now used pretty universally, we can shorten this to 'auto'. This reduces verbosity and makes it easier to read. Coincidentally it also ensures that every declaration is on one line, thus making dtoc's job easier. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2548493a |
|
16-Jul-2020 |
Masahiro Yamada <masahiroy@kernel.org> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
7208396b |
|
24-Jul-2020 |
Tom Rini <trini@konsulko.com> |
Revert "Merge tag 'dm-pull-20jul20' of git://git.denx.de/u-boot-dm" This reverts commit 5d3a21df6694ebd66d5c34c9d62a26edc7456fc7, reversing changes made to 56d37f1c564107e27d873181d838571b7d7860e7. Unfortunately this is causing CI failures: https://travis-ci.org/github/trini/u-boot/jobs/711313649 Signed-off-by: Tom Rini <trini@konsulko.com> |
#
60e7fa8b |
|
16-Jul-2020 |
Masahiro Yamada <masahiroy@kernel.org> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
221c5e42 |
|
03-Jun-2020 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
mmc: bcm283x: fix int to pointer cast On build with 32 bit, there is a warning for int-to-pointer-cast. Fix the int to pointer cast by using uintptr_t. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <masahiroy@kernel.org> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
c69cda25 |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename dev_get_platdata() to dev_get_plat() Rename this to be consistent with the change from 'platdata'. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
caa4daa2 |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename 'platdata' variables to just 'plat' We use 'priv' for private data but often use 'platdata' for platform data. We can't really use 'pdata' since that is ambiguous (it could mean private or platform data). Rename some of the latter variables to end with 'plat' for consistency. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
41575d8e |
|
03-Dec-2020 |
Simon Glass <sjg@chromium.org> |
dm: treewide: Rename auto_alloc_size members to be shorter This construct is quite long-winded. In earlier days it made some sense since auto-allocation was a strange concept. But with driver model now used pretty universally, we can shorten this to 'auto'. This reduces verbosity and makes it easier to read. Coincidentally it also ensures that every declaration is on one line, thus making dtoc's job easier. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
2548493a |
|
16-Jul-2020 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
7208396b |
|
24-Jul-2020 |
Tom Rini <trini@konsulko.com> |
Revert "Merge tag 'dm-pull-20jul20' of git://git.denx.de/u-boot-dm" This reverts commit 5d3a21df6694ebd66d5c34c9d62a26edc7456fc7, reversing changes made to 56d37f1c564107e27d873181d838571b7d7860e7. Unfortunately this is causing CI failures: https://travis-ci.org/github/trini/u-boot/jobs/711313649 Signed-off-by: Tom Rini <trini@konsulko.com> |
#
60e7fa8b |
|
16-Jul-2020 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
221c5e42 |
|
03-Jun-2020 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
mmc: bcm283x: fix int to pointer cast On build with 32 bit, there is a warning for int-to-pointer-cast. Fix the int to pointer cast by using uintptr_t. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
2548493a |
|
16-Jul-2020 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
7208396b |
|
24-Jul-2020 |
Tom Rini <trini@konsulko.com> |
Revert "Merge tag 'dm-pull-20jul20' of git://git.denx.de/u-boot-dm" This reverts commit 5d3a21df6694ebd66d5c34c9d62a26edc7456fc7, reversing changes made to 56d37f1c564107e27d873181d838571b7d7860e7. Unfortunately this is causing CI failures: https://travis-ci.org/github/trini/u-boot/jobs/711313649 Signed-off-by: Tom Rini <trini@konsulko.com> |
#
60e7fa8b |
|
16-Jul-2020 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
221c5e42 |
|
03-Jun-2020 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
mmc: bcm283x: fix int to pointer cast On build with 32 bit, there is a warning for int-to-pointer-cast. Fix the int to pointer cast by using uintptr_t. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
7208396b |
|
24-Jul-2020 |
Tom Rini <trini@konsulko.com> |
Revert "Merge tag 'dm-pull-20jul20' of git://git.denx.de/u-boot-dm" This reverts commit 5d3a21df6694ebd66d5c34c9d62a26edc7456fc7, reversing changes made to 56d37f1c564107e27d873181d838571b7d7860e7. Unfortunately this is causing CI failures: https://travis-ci.org/github/trini/u-boot/jobs/711313649 Signed-off-by: Tom Rini <trini@konsulko.com> |
#
60e7fa8b |
|
16-Jul-2020 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
treewide: convert devfdt_get_addr() to dev_read_addr() When you enable CONFIG_OF_LIVE, you will end up with a lot of conversions. To generate this commit, I used coccinelle excluding drivers/core/, include/dm/, and test/ The semantic patch that makes this change is as follows: <smpl> @@ expression dev; @@ -devfdt_get_addr(dev) +dev_read_addr(dev) </smpl> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
#
221c5e42 |
|
03-Jun-2020 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
mmc: bcm283x: fix int to pointer cast On build with 32 bit, there is a warning for int-to-pointer-cast. Fix the int to pointer cast by using uintptr_t. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
221c5e42 |
|
03-Jun-2020 |
Seung-Woo Kim <sw0312.kim@samsung.com> |
mmc: bcm283x: fix int to pointer cast On build with 32 bit, there is a warning for int-to-pointer-cast. Fix the int to pointer cast by using uintptr_t. Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
f7ae49fc |
|
10-May-2020 |
Simon Glass <sjg@chromium.org> |
common: Drop log.h from common header Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
1045315d |
|
14-Nov-2019 |
Simon Glass <sjg@chromium.org> |
common: Move get_ticks() function out of common.h This function belongs in time.h so move it over and add a comment. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
e0e3c7da |
|
24-Jul-2019 |
Matthias Brugger <mbrugger@suse.com> |
mmc: bcm283x: Add support for bcm2711 device in bcm2835_sdhci The bcm2711 has two emmc controllers. The difference is the clocks they use. Add support for the second emmc controller. Signed-off-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Gherzan <andrei@balena.io> |
#
425d8334 |
|
05-Aug-2019 |
Peng Fan <peng.fan@nxp.com> |
mmc: bcm: fix uninitialized pointer deref on probe Commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") sdhci_setup_cfg() expects a valid sdhci_host mmc field. Fixes: 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") Cc: Faiz Abbas <faiz_abbas@ti.com> Cc: Matthias Brugger <mbrugger@suse.com> Cc: Thomas Fitzsimmons <fitzsim@fitzsim.org> Signed-off-by: Peng Fan <peng.fan@nxp.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de> |
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org> |
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org> |
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org> |
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com> |
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl> |
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org> |
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de> |
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> |
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> |
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org> |
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> |
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com> |
#
8ae1f829 |
|
16-Mar-2018 |
Jonathan Gray <jsg@jsg.id.au> |
mmc: use core clock frequency in bcm2835 sdhost In raspberrypi-firmware 7fdcd00e00a42a1c91e8bd6f5eb8352fe9358557 and later start.elf now sets the EMMC clock to 200 MHz. According to Phil Elwell in https://github.com/raspberrypi/firmware/issues/953 the SDHost controller shares the core/VPU clock and doesn't use the EMMC clock. Use the core clock id when determining the frequency to allow U-Boot to work with recent versions of raspberrypi-firmware. Otherwise U-Boot hangs at: U-Boot 2018.03 (Mar 14 2018 - 20:36:00 +1100) DRAM: 948 MiB RPI 3 Model B (0xa02082) MMC: mmc@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Signed-off-by: Alexander Graf <agraf@suse.de>
|
#
a821c4af |
|
17-May-2017 |
Simon Glass <sjg@chromium.org> |
dm: Rename dev_addr..() functions These support the flat device tree. We want to use the dev_read_..() prefix for functions that support both flat tree and live tree. So rename the existing functions to avoid confusion. In the end we will have: 1. dev_read_addr...() - works on devices, supports flat/live tree 2. devfdt_get_addr...() - current functions, flat tree only 3. of_get_address() etc. - new functions, live tree only All drivers will be written to use 1. That function will in turn call either 2 or 3 depending on whether the flat or live tree is in use. Note this involves changing some dead code - the imx_lpi2c.c file. Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
e6c6d07e |
|
05-Apr-2017 |
Simon Glass <sjg@chromium.org> |
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC Convert the bcm2835 SDHCI driver over to support CONFIG_DM_MMC and move all boards over. There is no need to keep the old code since there are no other users. Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Simon Glass <sjg@chromium.org>
|
#
4db2b61f |
|
02-Apr-2017 |
Jocelyn Bohr <bohr@google.com> |
mmc: bcm2835_sdhci: Speed up mmc writes. The linux kernel driver for this module does not use a delay when writing to the SDHCI_BUFFER register. This patch mimics that behavior in order to speed up the mmc writes on the Raspberry Pi. Signed-off-by: Alex Deymo <deymo@google.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
6d0e34bf |
|
17-Jan-2017 |
Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> |
mmc: sdhci: Distinguish between base clock and maximum peripheral frequency The sdhci controller assumes that the base clock frequency is fully supported by the peripheral and doesn't support hardware limitations. The Linux kernel distinguishes between base clock (max_clk) of the host controller and maximum frequency (f_max) of the card interface. Use the same differentiation and allow the platform to constrain the peripheral interface. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
|
#
2cb5d67c |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the generic error number Use the generic error number instead of meaningless value. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org>
|
#
895549a2 |
|
25-Sep-2016 |
Jaehoon Chung <jh80.chung@samsung.com> |
mmc: sdhci: use the host version value in sdhci_setup_cfg "host->version" isn't a SoC specific value. It doesn't need to get in each SoC drivers. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>
|
#
a481a156 |
|
16-Mar-2016 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: bcm2835: fix 64-bit build warning Fixes: drivers/mmc/bcm2835_sdhci.c: In function ‘bcm2835_sdhci_init’: drivers/mmc/bcm2835_sdhci.c:181:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
9f1b4456 |
|
19-Jun-2015 |
Marek Vasut <marex@denx.de> |
mmc: bcm2835_sdhci: Restore original delay behavior Patch 33fe2fb8df01647f97a7bce96a1c7781a7f6d253 titled "mmc: bcm283x: Remove get_timer_us() from mmc driver" incorrectly replaced ad-hoc get_timer_us() function with a plain get_timer(). The get_timer() operates in mSec units instead of uSec though, which caused very slow operation of the driver. Restore the original behavior of the driver, but avoid get_timer_us() and use timer_get_us() instead. The later is part of the standard API. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Jakub Kiciński <moorray3@wp.pl> Cc: Stephen Warren <swarren@wwwdotorg.org> Tested-by: Jakub Kicinski <kubakici@wp.pl>
|
#
33fe2fb8 |
|
04-May-2015 |
Marek Vasut <marex@denx.de> |
ARM: mmc: bcm283x: Remove get_timer_us() from mmc driver The get_timer_us() function is something which is no longer existing in case we use generic timer framework, so replace it with get_timer(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Tyler Baker <tyler.baker@linaro.org>
|
#
ebe78bb9 |
|
17-Apr-2015 |
Alexander Stein <alexanders83@web.de> |
mmc: bcm2835_sdhci: Use calloc to allocate bcm2835_sdhci_host We need to clear the allocated memory explicitly as the included struct sdhci_host has function pointers. Those are compared to NULL to test if this (optional) feature is supported. Leaving them undefined let u-boot jump to arbitrary memory. Signed-off-by: Alexander Stein <alexanders83@web.de>
|
#
d6c418e4 |
|
19-Mar-2015 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
ARM: bcm283x: move SoC headers to mach-bcm283x/include/mach Move arch/arm/include/asm/arch-bcm283x/* -> arch/arm/mach-bcm283x/include/mach/* Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
74321944 |
|
08-Oct-2014 |
Jeroen Hofstee <jeroen@myspectrum.nl> |
mmc: bcm2835_sdhci: add missing include Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
|
#
64973023 |
|
10-Jun-2014 |
Lubomir Rintel <lkundrak@v3.sk> |
bcm2835_sdhci: Add SDHCI_QUIRK_NO_HISPD_BIT flag Seems like the controller doesn't support the flag. None of the hi-speed cards I've tried could be read, while they successfully worked with the quirk enabled. Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Tested-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
5eaa2156 |
|
27-Mar-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
ARM: bcm2835: fix get_timer() to return ms Apparently, CONFIG_SYS_HZ must be 1000. Change this, and fix the timer driver to conform to this. Have the timer implementation export a custom API get_timer_us() for use by the BCM2835 MMC API, which needs us resolution for a HW workaround. Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
|
#
9a4fbe4f |
|
29-Jan-2013 |
Stephen Warren <swarren@wwwdotorg.org> |
mmc: add bcm2835 driver This adds a simple driver for the BCM2835's SD controller. Workarounds are implemented for: * Register writes can't be too close to each-other in time, or they will be lost. * Register accesses must all be 32-bit, so implement custom accessors. This code was extracted from: git://github.com/gonzoua/u-boot-pi.git master which was created by Oleksandr Tymoshenko. Portions of the code there were obviously based on the Linux kernel at: git://github.com/raspberrypi/linux.git rpi-3.6.y commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley. swarren changed the following for upstream: * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues. * Remove register logging from read*/write* functions. * Sort out confusion with min/max_freq values passed to add_sdhci(). * Use more descriptive variable names and calculations in IO accessors. * Simplified and commented twoticks_delay calculation. * checkpatch fixes. Cc: Andy Fleming <afleming@gmail.com> Signed-off-by: Oleksandr Tymoshenko <gonzo@bluezbox.com> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Andy Fleming <afleming@gmail.com>
|