mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	Add a DM clock driver for StarFive JH7110 SoC. Signed-off-by: Yanhong Wang <yanhong.wang@starfivetech.com> Tested-by: Conor Dooley <conor.dooley@microchip.com>
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 * Copyright (C) 2022 Starfive, Inc.
 | 
						|
 * Author:	Yanhong Wang <yanhong.wang@starfivetech.com>
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __CLK_STARFIVE_H
 | 
						|
#define __CLK_STARFIVE_H
 | 
						|
 | 
						|
enum starfive_pll_type {
 | 
						|
	PLL0 = 0,
 | 
						|
	PLL1,
 | 
						|
	PLL2,
 | 
						|
	PLL_MAX = PLL2
 | 
						|
};
 | 
						|
 | 
						|
struct starfive_pllx_rate {
 | 
						|
	u64 rate;
 | 
						|
	u32 prediv;
 | 
						|
	u32 fbdiv;
 | 
						|
	u32 frac;
 | 
						|
};
 | 
						|
 | 
						|
struct starfive_pllx_offset {
 | 
						|
	u32 pd;
 | 
						|
	u32 prediv;
 | 
						|
	u32 fbdiv;
 | 
						|
	u32 frac;
 | 
						|
	u32 postdiv1;
 | 
						|
	u32 dacpd;
 | 
						|
	u32 dsmpd;
 | 
						|
	u32 pd_mask;
 | 
						|
	u32 prediv_mask;
 | 
						|
	u32 fbdiv_mask;
 | 
						|
	u32 frac_mask;
 | 
						|
	u32 postdiv1_mask;
 | 
						|
	u32 dacpd_mask;
 | 
						|
	u32 dsmpd_mask;
 | 
						|
};
 | 
						|
 | 
						|
struct starfive_pllx_clk {
 | 
						|
	enum starfive_pll_type type;
 | 
						|
	const struct starfive_pllx_offset *offset;
 | 
						|
	const struct starfive_pllx_rate *rate_table;
 | 
						|
	int rate_count;
 | 
						|
	int flags;
 | 
						|
};
 | 
						|
 | 
						|
extern struct starfive_pllx_clk starfive_jh7110_pll0;
 | 
						|
extern struct starfive_pllx_clk starfive_jh7110_pll1;
 | 
						|
extern struct starfive_pllx_clk starfive_jh7110_pll2;
 | 
						|
 | 
						|
struct clk *starfive_jh7110_pll(const char *name, const char *parent_name,
 | 
						|
				void __iomem *base, void __iomem *sysreg,
 | 
						|
				const struct starfive_pllx_clk *pll_clk);
 | 
						|
#endif
 |