arm64: zynqmp: Writing correct value to ANALOG_BUS
The default register configuration after powerup for PSSYSMON_ANALOG_BUS
register is incorrect. Hence, fix this in SPL by writing correct fixed
value. It follows UG1085 chapter 'PS SYSMON Analog_Bus' and reflects commit
sw_apps:zynq ("056ca65d44549ce27f716d423e8dfdefeee7440c")
in Xilinx:embeddedsw[1].
[1] https://github.com/Xilinx/embeddedsw
Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
			
			
This commit is contained in:
		
							parent
							
								
									e3b64beda5
								
							
						
					
					
						commit
						3414712ba8
					
				|  | @ -19,6 +19,11 @@ | ||||||
| #define ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_EN_SHIFT	0 | #define ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_EN_SHIFT	0 | ||||||
| #define ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_VAL_SHIFT	8 | #define ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_VAL_SHIFT	8 | ||||||
| 
 | 
 | ||||||
|  | #define ZYNQMP_AMS_PS_SYSMON_BASEADDR      0XFFA50800 | ||||||
|  | #define ZYNQMP_AMS_PS_SYSMON_ANALOG_BUS ((ZYNQMP_AMS_PS_SYSMON_BASEADDR) \ | ||||||
|  | 							    + 0x00000114) | ||||||
|  | #define ZYNQMP_PS_SYSMON_ANALOG_BUS_VAL 0x00003210 | ||||||
|  | 
 | ||||||
| #define PS_MODE0	BIT(0) | #define PS_MODE0	BIT(0) | ||||||
| #define PS_MODE1	BIT(1) | #define PS_MODE1	BIT(1) | ||||||
| #define PS_MODE2	BIT(2) | #define PS_MODE2	BIT(2) | ||||||
|  |  | ||||||
|  | @ -287,6 +287,17 @@ int board_early_init_f(void) | ||||||
| 	if (ret) | 	if (ret) | ||||||
| 		return ret; | 		return ret; | ||||||
| 
 | 
 | ||||||
|  | 	/*
 | ||||||
|  | 	 * PS_SYSMON_ANALOG_BUS register determines mapping between SysMon | ||||||
|  | 	 * supply sense channel to SysMon supply registers inside the IP. | ||||||
|  | 	 * This register must be programmed to complete SysMon IP | ||||||
|  | 	 * configuration. The default register configuration after | ||||||
|  | 	 * power-up is incorrect. Hence, fix this by writing the | ||||||
|  | 	 * correct value - 0x3210. | ||||||
|  | 	 */ | ||||||
|  | 	writel(ZYNQMP_PS_SYSMON_ANALOG_BUS_VAL, | ||||||
|  | 	       ZYNQMP_AMS_PS_SYSMON_ANALOG_BUS); | ||||||
|  | 
 | ||||||
| 	/* Delay is required for clocks to be propagated */ | 	/* Delay is required for clocks to be propagated */ | ||||||
| 	udelay(1000000); | 	udelay(1000000); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue