mmc: zynq_sdhci: Add xilinx_pm_request() method to set tapdelays
authorAshok Reddy Soma <ashok.reddy.soma@xilinx.com>
Tue, 3 Aug 2021 05:20:43 +0000 (23:20 -0600)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 26 Aug 2021 06:07:46 +0000 (08:07 +0200)
commitd04498255559dfc002ad71816dfb37437d29f635
tree4db77a7e0b0649c6e4575e0ebb601fc69a8bd0f7
parent42e01bf20ab4f812a1048c8fb354e75f9e50c2f5
mmc: zynq_sdhci: Add xilinx_pm_request() method to set tapdelays

Currently xilinx sdhci driver is using zynqmp_mmio_write() to set
tapdelay values and DLL resets. Continue to use this for SPL and mini
U-Boot where U-Boot will be executed at EL3 level.

Use firmware call xilinx_pm_request() using appropriate arguments to
set input/output tapdelays and also for DLL resets in regular flow(EL2).

Host driver should explicitly request DLL reset before ITAP (assert DLL)
and after OTAP (release DLL) to avoid issues in some cases. Also handle
error return where possible.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Ashok Reddy Soma <ashok.reddy.soma@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
board/xilinx/zynqmp/tap_delays.c
drivers/mmc/zynq_sdhci.c
include/zynqmp_tap_delay.h