mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	usb: chipidea: imx: Disable internal 60Mhz clock with ULPI PHY
The internal 60Mhz clock for host2 and host3 are useless in ULPI phy mode, so we disable it when configuring ULPI PHY node for those host. Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk> Signed-off-by: Peter Chen <peter.chen@nxp.com>
This commit is contained in:
		
							parent
							
								
									d13631bb15
								
							
						
					
					
						commit
						3be3251db0
					
				
					 1 changed files with 11 additions and 0 deletions
				
			
		| 
						 | 
					@ -53,6 +53,9 @@
 | 
				
			||||||
#define MX53_USB_CTRL_1_H3_XCVR_CLK_SEL_ULPI BIT(6)
 | 
					#define MX53_USB_CTRL_1_H3_XCVR_CLK_SEL_ULPI BIT(6)
 | 
				
			||||||
#define MX53_USB_UH2_CTRL_OFFSET	0x14
 | 
					#define MX53_USB_UH2_CTRL_OFFSET	0x14
 | 
				
			||||||
#define MX53_USB_UH3_CTRL_OFFSET	0x18
 | 
					#define MX53_USB_UH3_CTRL_OFFSET	0x18
 | 
				
			||||||
 | 
					#define MX53_USB_CLKONOFF_CTRL_OFFSET	0x24
 | 
				
			||||||
 | 
					#define MX53_USB_CLKONOFF_CTRL_H2_INT60CKOFF BIT(21)
 | 
				
			||||||
 | 
					#define MX53_USB_CLKONOFF_CTRL_H3_INT60CKOFF BIT(22)
 | 
				
			||||||
#define MX53_BM_OVER_CUR_DIS_H1		BIT(5)
 | 
					#define MX53_BM_OVER_CUR_DIS_H1		BIT(5)
 | 
				
			||||||
#define MX53_BM_OVER_CUR_DIS_OTG	BIT(8)
 | 
					#define MX53_BM_OVER_CUR_DIS_OTG	BIT(8)
 | 
				
			||||||
#define MX53_BM_OVER_CUR_DIS_UHx	BIT(30)
 | 
					#define MX53_BM_OVER_CUR_DIS_UHx	BIT(30)
 | 
				
			||||||
| 
						 | 
					@ -239,6 +242,10 @@ static int usbmisc_imx53_init(struct imx_usbmisc_data *data)
 | 
				
			||||||
			val = readl(reg) | MX53_USB_UHx_CTRL_WAKE_UP_EN
 | 
								val = readl(reg) | MX53_USB_UHx_CTRL_WAKE_UP_EN
 | 
				
			||||||
				| MX53_USB_UHx_CTRL_ULPI_INT_EN;
 | 
									| MX53_USB_UHx_CTRL_ULPI_INT_EN;
 | 
				
			||||||
			writel(val, reg);
 | 
								writel(val, reg);
 | 
				
			||||||
 | 
								/* Disable internal 60Mhz clock */
 | 
				
			||||||
 | 
								reg = usbmisc->base + MX53_USB_CLKONOFF_CTRL_OFFSET;
 | 
				
			||||||
 | 
								val = readl(reg) | MX53_USB_CLKONOFF_CTRL_H2_INT60CKOFF;
 | 
				
			||||||
 | 
								writel(val, reg);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (data->disable_oc) {
 | 
							if (data->disable_oc) {
 | 
				
			||||||
			reg = usbmisc->base + MX53_USB_UH2_CTRL_OFFSET;
 | 
								reg = usbmisc->base + MX53_USB_UH2_CTRL_OFFSET;
 | 
				
			||||||
| 
						 | 
					@ -260,6 +267,10 @@ static int usbmisc_imx53_init(struct imx_usbmisc_data *data)
 | 
				
			||||||
			val = readl(reg) | MX53_USB_UHx_CTRL_WAKE_UP_EN
 | 
								val = readl(reg) | MX53_USB_UHx_CTRL_WAKE_UP_EN
 | 
				
			||||||
				| MX53_USB_UHx_CTRL_ULPI_INT_EN;
 | 
									| MX53_USB_UHx_CTRL_ULPI_INT_EN;
 | 
				
			||||||
			writel(val, reg);
 | 
								writel(val, reg);
 | 
				
			||||||
 | 
								/* Disable internal 60Mhz clock */
 | 
				
			||||||
 | 
								reg = usbmisc->base + MX53_USB_CLKONOFF_CTRL_OFFSET;
 | 
				
			||||||
 | 
								val = readl(reg) | MX53_USB_CLKONOFF_CTRL_H3_INT60CKOFF;
 | 
				
			||||||
 | 
								writel(val, reg);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (data->disable_oc) {
 | 
							if (data->disable_oc) {
 | 
				
			||||||
			reg = usbmisc->base + MX53_USB_UH3_CTRL_OFFSET;
 | 
								reg = usbmisc->base + MX53_USB_UH3_CTRL_OFFSET;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue