zynq: slcr: Disable all level shifters
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Mon, 2 Mar 2015 10:33:46 +0000 (16:03 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Wed, 29 Apr 2015 09:19:02 +0000 (11:19 +0200)
Disable all level shifters before enabling
the PS-to-PL level shifters as it would
be good to disable all level shifters before
enabling the PS-to-PL in order to ensure that
it is in proper state

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/arm/cpu/armv7/zynq/slcr.c

index 2521589c07e9cf0c07a2f59990a521aafcfea7c8..05f4099aaee81712eb21d130aa0044f6fa2e37d2 100644 (file)
@@ -129,11 +129,18 @@ out:
 
 void zynq_slcr_devcfg_disable(void)
 {
+       u32 reg_val;
+
        zynq_slcr_unlock();
 
        /* Disable AXI interface by asserting FPGA resets */
        writel(0xF, &slcr_base->fpga_rst_ctrl);
 
+       /* Disable Level shifters before setting PS-PL */
+       reg_val = readl(&slcr_base->lvl_shftr_en);
+       reg_val &= ~0xF;
+       writel(reg_val, &slcr_base->lvl_shftr_en);
+
        /* Set Level Shifters DT618760 */
        writel(0xA, &slcr_base->lvl_shftr_en);