02 Sep, 2020
1 commit
-
emc2305 is a common driver. It should not use platform specific
i2c address for slave device.
Pass chip_addr as agrument to emc2305_init() and set_fan_speed()
so that emc2305 driver can be used with different platforms.Signed-off-by: Wasim Khan
27 Aug, 2020
27 commits
-
Erratum A-011334: Limited clock dividers for HS400 mode
Description: Due to this erratum, the division ratio options
are limited for HS400 mode. The divider value
(value of SYSCTL[DVS] * value of SYSCTL[SDCLKFS] ) can only be
4, 8, or 12.Workaround: Select the divider value to be 4, 8, or 12.
Signed-off-by: Yangbo Lu
-
Each of below functions called by mmc_set_initial_state() will
configure voltage, clock, bus width, and mode through mmc_set_ios(),
before initialize these parameters properly. The right method
should be initialize these parameters properly and set them by
mmc_set_ios() once.- mmc_set_signal_voltage
- mmc_set_clock
- mmc_set_bus_widthSigned-off-by: Yangbo Lu
-
The mmc_power_cycle() should be put after controller initialization
because the mmc_power_off() would call mmc_set_clock() which will
configure the controller through mmc_set_ios().Signed-off-by: Yangbo Lu
-
The initial clock setting should be through sysctl register only,
while the mmc_set_clock() will call mmc_set_ios() introduce other
configurations like bus width, mode, and so on.Signed-off-by: Yangbo Lu
-
If the controller is in HS400 mode, it should exit HS400 mode
properly before switching to any other mode.Signed-off-by: Yangbo Lu
-
There was a fix-up for eMMC HS400 stability issue in Linux.
Patch link:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
commit/?id=58d0bf843b49fa99588ac9f85178bd8dfd651b53Description:
Currently only LX2160A eSDHC supports eMMC HS400. According to
a large number of tests, eMMC HS400 failed to work at 150MHz,
and for a few boards failed to work at 175MHz. But eMMC HS400
worked fine on 200MHz. We hadn't found the root cause but
setting eSDHC_DLLCFG0[DLL_FREQ_SEL] = 0 using slow delay chain
seemed to resovle this issue. Let's use this as fixup for now.Introduce the fix-up in u-boot since the issue could be reproduced
in u-boot too.Signed-off-by: Yangbo Lu
-
Fix mmc->clock with actual clock which is divided by the
controller, and record it with priv->clock which was removed
accidentally.Signed-off-by: Yangbo Lu
-
The process for eMMC HS400 mode for eSDHC is,
1. Perform the Tuning Process at the HS400 target operating frequency.
Latched the clock division value.
2. if read transaction, then set the SDTIMNGCTL[FLW_CTL_BG].
3. Switch to High Speed mode and then set the card clock frequency to
a value not greater than 52Mhz
4. Clear TBCTL[TB_EN],tuning block enable bit.
5. Change to 8 bit DDR Mode
6. Switch the card to HS400 mode.
7. Set TBCTL[TB_EN], tuning block enable bit.
8. Clear SYSCTL[SDCLKEN]
9. Wait for PRSSTAT[SDSTB] to be set
10. Change the clock division to latched value.Set TBCTL[HS 400 mode]
and Set SDCLKCTL[CMD_CLK_CTRL]
11. Set SYSCTL[SDCLKEN]
12. Wait for PRSSTAT[SDSTB] to be set
13. Set DLLCFG0[DLL_ENABLE] and DLLCFG0[DLL_FREQ_SEL].
14. Wait for delay chain to lock.
15. Set TBCTL[HS400_WNDW_ADJUST]
16. Again clear SYSCTL[SDCLKEN]
17. Wait for PRSSTAT[SDSTB] to be set
18. Set ESDHCCTL[FAF]
19. Wait for ESDHCCTL[FAF] to be cleared
20. Set SYSCTL[SDCLKEN]
21. Wait for PRSSTAT[SDSTB] to be set.Signed-off-by: Yangbo Lu
-
Add a mmc_hs400_prepare_ddr() interface for controllers
which needs preparation before switching to DDR mode for
HS400 mode.Signed-off-by: Yangbo Lu
-
Add a hs400_tuning flag to identify the tuning for HS400 mode.
Signed-off-by: Yangbo Lu
-
Clean TBCTL[TB_EN] manually during init since it is not able to
be reset by reset all operation.Signed-off-by: Yangbo Lu
-
Support tuning process for eMMC HS200 for eSDHC.
Signed-off-by: Yangbo Lu
-
Add a reinit() callback for mmc rescan.
Signed-off-by: Yangbo Lu
-
For DM_MMC, the controller re-initialization is needed to
clear old configuration for mmc rescan.Signed-off-by: Yangbo Lu
-
Enable CONFIG_BOARD_EARLY_INIT_R for SDHC adapter card
identification and configuration.Signed-off-by: Yangbo Lu
Reviewed-by: Priyanka Jain -
Add support for SDHC adapter identification and configuration
during board init.Reviewed-by: Priyanka Jain
[rebase]
Signed-off-by: Yangbo Lu -
The eSDHC adapter card identification and multiplexing configuration
through FPGA had been implemented in both common mmc driver and
fsl_esdhc driver. However it is proper to move these code to board
files and do it during board initialization. The FPGA registers are
also board specific.This patch is to move eSDHC adapter card identification and
multiplexing configuration from mmc driver to specific board files.
And the option CONFIG_FSL_ESDHC_ADAPTER_IDENT is no longer needed.Signed-off-by: Yangbo Lu
[Rebased, Removed T1040QDS change as board does not exist]
Signed-off-by: Priyanka Jain -
The sdhc_adapter of global data has not been used, and we
do not have to use it as global data even we may need it
in the future.Signed-off-by: Yangbo Lu
Reviewed-by: Peng Fan
Reviewed-by: Priyanka Jain -
When eSDHC operates at 3.3v, damage can accumulate in an internal
level shifter at a higher than expected rate. The faster the interface
runs, the more damage accumulates. This issue now is found on LX2160A
eSDHC1 for only SD card.The hardware workaround is recommended to use an on-board level shifter
that is 1.8v on SoC side and 3.3v on SD card side.For boards without hardware workaround, this option could be enabled,
ensuring 1.8v IO voltage and disabling eSDHC if no card.
This option assumes no hotplug, and u-boot has to make all the way to
to linux to use 1.8v UHS-I speed mode if has card.
If you do not want the workaround for better user experience, of course
you can choose to not select it running eSDHC in unsafe mode.Signed-off-by: Yangbo Lu
Acked-by: Peng Fan -
No need to poll register for card inserted status.
Signed-off-by: Yangbo Lu
Acked-by: Peng Fan -
This patch is to define esdhc_status_fixup function for ls1028a to disable
SDHC1/SDHC2 status in device tree node if not selected.Signed-off-by: Yinbo Zhu
Signed-off-by: Xiaowei Bao
Signed-off-by: Yangbo Lu
Reviewed-by: Priyanka Jain -
In the current implementation, u-boot creates iommu mappings only
for PCI devices enumarated at boot time thus does not take into
account more dynamic scenarios such as SR-IOV or PCI hot-plug.
Add an u-boot env var and a device tree property (to be used for
example in more static scenarios such as hardwired PCI endpoints
that get initialized later in the system setup) that would allow
two things:
- for a SRIOV capable PCI EP identified by its B.D.F specify
the maximum number of VFs that will ever be created for it
- for hot-plug case, specify the B.D.F with which the device
will show up on the PCI bus
More details can be found in the included documentation:
arch/arm/cpu/armv8/fsl-layerscape/doc/README.pci_iommu_extraSigned-off-by: Laurentiu Tudor
-
Add a few defines related to ARI and SRIOV configuration.
Signed-off-by: Laurentiu Tudor
-
Fix duplication of this code by placing it in a common function.
Furthermore, the resulting function will be re-used in upcoming
patches.Signed-off-by: Laurentiu Tudor
-
Move the pci device related fdt fixup in a function in order to
re-use it in a following patch. While at it, improve the error
handling.Signed-off-by: Laurentiu Tudor
-
Enable dspi in lx2160aqds tfa defconfig
Enable CONFIG_SPI_FLASH_SST/EON in config file.Signed-off-by: Zhao Qiang
-
Add flash node under dspi into fsl-lx2160a-qds.dtsi
Signed-off-by: Zhao Qiang
04 Aug, 2020
12 commits
-
correct the indentation.
Signed-off-by: Wasim Khan
-
resource "config" is required to have minimum 4KB space
to access all config space of PCI Express EP.Signed-off-by: Wasim Khan
-
resource "config" is required to have minimum 8KB space
as per hardware documentation.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Add label to pcie nodes in dts so that these nodes
are easy to refer.Signed-off-by: Wasim Khan
-
Print pcie controller number starting from 1
Signed-off-by: Wasim Khan
-
Print pcie controller number starting from 1
Signed-off-by: Wasim Khan