The arasan SDHCI driver doesn't use MMC tuning but SDHCI tuning. Both
are not supported yet in barebox.
Add SDHCI tuning support from linux v6.7.
Signed-off-by: Steffen Trumtrar
Signed-off-by: Ahmad Fatoum
---
drivers/mci/sdhci.c | 275 +++-
The ZynpMP 8.9a has an Arasan IP core that supports HS200 tuning.
Register the callback with the mci-core.
Arasan uses the SDHCI tuning method.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
drivers/mci/arasan-sdhci.c | 62 +++---
1 file
Use the newly introduced define for High Speed timing mode instead of
just '1'.
Signed-off-by: Steffen Trumtrar
---
drivers/mci/mci-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index e825c91c80..ebfd3e9fb8 100644
---
Linux uses a different sdhci_wait_idle function than what barebox
currently does. For HS200 support, the linux version needs to be used.
As currently only arasan-sdhci is tested with HS200, keep the old
sdhci_wait_idle as sdhci_wait_idle_data and convert all users of it.
Signed-off-by: Ahmad
Add a function to set the tap delay for the clk phase of the sd host
controller.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
arch/arm/mach-zynqmp/firmware-zynqmp.c | 42 ++
include/mach/zynqmp/firmware-zynqmp.h | 23 +++
2
Port the linux v6.7 mmc host caps2 parsing.
While at it, remove the ->no_sd and ->no_sdio. These are bits in the
caps2 field.
Signed-off-by: Steffen Trumtrar
---
drivers/mci/mci-core.c | 36 ++--
include/mci.h | 32 ++--
2
The timings are used to check if mci_host->timing is equal to one of
this values. Linux uses a different numbering. Adapt that for compatability.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
include/mci.h | 18 ++
1 file changed, 10 insertions(+), 8
Add a function to reset DLL logic for SD devices.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
arch/arm/mach-zynqmp/firmware-zynqmp.c | 17 +
1 file changed, 17 insertions(+)
diff --git a/arch/arm/mach-zynqmp/firmware-zynqmp.c
HS200 is a timing mode for eMMCs to work 8bit with 200MHz clocks.
To be used, drivers need to set the correct drive strength, clock phases
and then SDHCI can start tuning for HS200.
Signed-off-by: Steffen Trumtrar
---
drivers/mci/Kconfig| 7 ++
drivers/mci/mci-core.c | 257
Read and register the sampleclk and sdcardclk. They are needed later for
HS200 tuning support.
Signed-off-by: Steffen Trumtrar
---
drivers/mci/arasan-sdhci.c | 316 +
1 file changed, 316 insertions(+)
diff --git a/drivers/mci/arasan-sdhci.c
Depending on the used SDHCI mode the clock phases are different.
Import the helper function to get these values from the DT from linux v6.7.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
drivers/mci/arasan-sdhci.c | 121 +
1 file
This series adds support for HS200 mode to mci-core and sdhci.
As the host driver also needs to handle clock setup, pin control and
host specific tuning, this series only adds HS200 support to the Arasan
SDHCI driver.
Tested on: ZynqMP
Compile tested: for ZynqMP with/without CONFIG_MCI_TUNING
The Arasan on the zynqmp in version 8.9a doesn't meet the timing
requirements at 25MHz. It works at 19MHz instead.
Add the quirk from linux kernel v6.8-rc4.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
drivers/mci/arasan-sdhci.c | 28 +++-
1 file
Import missing EXT_CSD_CARD_TYPE_ defines from linux v6.7.
EXT_CSD_CARD_TYPE_SDR_1_8V/1_2V is unused in barebox. Replace with the
defines from linux.
Signed-off-by: Steffen Trumtrar
Reviewed-by: Ahmad Fatoum
---
include/mci.h | 15 +--
1 file changed, 13 insertions(+), 2
Linux mmc_host saves the actual_clock set on the HC. Do the same to use
it later.
Signed-off-by: Steffen Trumtrar
---
drivers/mci/mci-core.c | 2 ++
include/mci.h | 1 +
2 files changed, 3 insertions(+)
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index
Hello Marco,
Cc += Leonard
On 13.03.24 20:45, Marco Felsch wrote:
> + if (!barebox_hostname_is_valid(hostname)) {
> + pr_err("Provided hostname is not compatible to systemd
> hostname requirements\n");
> + ret = -EINVAL;
> +
16 matches
Mail list logo