Hi Sir,
Could you provide GEN A-050752 for reference?
May I know if LX2080A can simultaneously use SPI3 and SDHC1?
SDHC1 used for SD card slot for RCW source
SPI3 used for other functions
Thanks.
You have faced with erratum A-050752.
I have sent LX2160A Chip Errata list to you, please refer to the workaround of A-050752.
@yipingwang
Could you send the file LX2160A Chip Errata?
Best Regards.
Please kindly provide us the download link for erratum A-050752. I cannot find the erratum from NXP site.
Hi Sir,
Thanks for your update, I have got the file,
I would like to double check with you, does the issue can be reslove by the software workaround ? because I think that SPI will not be used when LX2 in the bootloader phase, Thanks.
Workaround:
Do the following after the PBI has completed and in bootloader phase prior to using SPI3
or GPIO1_[14:12]:
1. Read DCFG_CCSR_PORSR1, dat = DCFG_CCSR_PORSR1
2. Clear RCW_SRC bits (i.e. bits 26:23 of PORSR1[26:23]), dat[26:23] = 0
3. Write the updated data value of dat to address 0x7_0010_0000
4. Write 0x0200_0000 to address 0x01e6_0000 to mask HRESET_B
Yes, the issue can be resolved by the software workaround.
DPSI and SD card(HS only) work when we configure
For below listed RCW settings
SDHC1_DIR_PMUX=3
SDHC1_DS_PMUX=2
SDHC1_BASE_PMUX=3
In order to get DSPI and SD card (both HS and UHS modes) work simultaneously, SDHC1_BASE_PMUX should be set to 0. The configuration should be fine after this change. Please also make sure that you do indeed to make change to an UHS mode in your code and switch the voltage to 1.8V as part of the routine.
I searched the code to control the EVDD voltage under Linux code. Please refer the subroutine esdhc_signal_voltage_switch in drivers/mmc/host/sdhci-of-esdhc.c. You need to switch the voltage to 1.8V when running at an UHS mode.
static int esdhc_signal_voltage_switch(struct mmc_host *mmc,
struct mmc_ios *ios)
{
struct sdhci_host *host = mmc_priv(mmc);
struct device_node *scfg_node;
void __iomem *scfg_base = NULL;
u32 sdhciovselcr;
u32 val;
/*
* Signal Voltage Switching is only applicable for Host Controllers
* v3.00 and above.
*/
if (host->version < SDHCI_SPEC_300)
return 0;
val = sdhci_readl(host, ESDHC_PROCTL);
switch (ios->signal_voltage) {
case MMC_SIGNAL_VOLTAGE_330:
val &= ~ESDHC_VOLT_SEL;
sdhci_writel(host, val, ESDHC_PROCTL);
return 0;
case MMC_SIGNAL_VOLTAGE_180:
scfg_node = of_find_matching_node(NULL, scfg_device_ids);
if (scfg_node)
scfg_base = of_iomap(scfg_node, 0);
if (scfg_base) {
sdhciovselcr = SDHCIOVSELCR_TGLEN |
SDHCIOVSELCR_VSELVAL;
iowrite32be(sdhciovselcr,
scfg_base + SCFG_SDHCIOVSELCR);
val |= ESDHC_VOLT_SEL;
sdhci_writel(host, val, ESDHC_PROCTL);
mdelay(5);
sdhciovselcr = SDHCIOVSELCR_TGLEN |
SDHCIOVSELCR_SDHC_VS;
iowrite32be(sdhciovselcr,
scfg_base + SCFG_SDHCIOVSELCR);
iounmap(scfg_base);
} else {
val |= ESDHC_VOLT_SEL;
sdhci_writel(host, val, ESDHC_PROCTL);
}
return 0;
default:
return 0;
}
}
Hi Sir,
Thanks your check,
but I have used NVT4857UKZ for the SDHC1 IO voltage translator from NXP suggestion, if so, Can SDHC1 only support UHS & HS mode when SPI3 works simultaneously even NVT4857UKZ used? may I remove the NVT4857UKZ if SDHC1 only supprt UHS & HS mode?
Thanks.
Can SDHC1 only support UHS & HS mode when SPI3 works simultaneously even NVT4857UKZ used?
NXP: Yes after the workaround is applied.
may I remove the NVT4857UKZ if SDHC1 only support UHS & HS mode?
NXP: No. SDHC1 interface is only 1.8V.