xref: /linux/drivers/soc/renesas/rz-sysc.h (revision 297d9111e9fcf47dd1dcc6f79bba915f35378d01)
1c1aca558SClaudiu Beznea /* SPDX-License-Identifier: GPL-2.0 */
2c1aca558SClaudiu Beznea /*
3c1aca558SClaudiu Beznea  * Renesas RZ System Controller
4c1aca558SClaudiu Beznea  *
5c1aca558SClaudiu Beznea  * Copyright (C) 2024 Renesas Electronics Corp.
6c1aca558SClaudiu Beznea  */
7c1aca558SClaudiu Beznea 
8c1aca558SClaudiu Beznea #ifndef __SOC_RENESAS_RZ_SYSC_H__
9c1aca558SClaudiu Beznea #define __SOC_RENESAS_RZ_SYSC_H__
10c1aca558SClaudiu Beznea 
11d07470cfSJohn Madieu #include <linux/device.h>
12d07470cfSJohn Madieu #include <linux/sys_soc.h>
13c1aca558SClaudiu Beznea #include <linux/types.h>
14c1aca558SClaudiu Beznea 
15c1aca558SClaudiu Beznea /**
16c1aca558SClaudiu Beznea  * struct rz_syc_soc_id_init_data - RZ SYSC SoC identification initialization data
17c1aca558SClaudiu Beznea  * @family: RZ SoC family
18c1aca558SClaudiu Beznea  * @id: RZ SoC expected ID
19c1aca558SClaudiu Beznea  * @devid_offset: SYSC SoC ID register offset
20c1aca558SClaudiu Beznea  * @revision_mask: SYSC SoC ID revision mask
21c1aca558SClaudiu Beznea  * @specific_id_mask: SYSC SoC ID specific ID mask
22d07470cfSJohn Madieu  * @print_id: print SoC-specific extended device identification
23c1aca558SClaudiu Beznea  */
24c1aca558SClaudiu Beznea struct rz_sysc_soc_id_init_data {
25c1aca558SClaudiu Beznea 	const char * const family;
26c1aca558SClaudiu Beznea 	u32 id;
27c1aca558SClaudiu Beznea 	u32 devid_offset;
28c1aca558SClaudiu Beznea 	u32 revision_mask;
29c1aca558SClaudiu Beznea 	u32 specific_id_mask;
30d07470cfSJohn Madieu 	void (*print_id)(struct device *dev, void __iomem *sysc_base,
31d07470cfSJohn Madieu 			 struct soc_device_attribute *soc_dev_attr);
32c1aca558SClaudiu Beznea };
33c1aca558SClaudiu Beznea 
34c1aca558SClaudiu Beznea /**
35c1aca558SClaudiu Beznea  * struct rz_sysc_init_data - RZ SYSC initialization data
36c1aca558SClaudiu Beznea  * @soc_id_init_data: RZ SYSC SoC ID initialization data
37c1aca558SClaudiu Beznea  */
38c1aca558SClaudiu Beznea struct rz_sysc_init_data {
39c1aca558SClaudiu Beznea 	const struct rz_sysc_soc_id_init_data *soc_id_init_data;
40c1aca558SClaudiu Beznea };
41c1aca558SClaudiu Beznea 
42d07470cfSJohn Madieu extern const struct rz_sysc_init_data rzg3e_sys_init_data;
430704de89SClaudiu Beznea extern const struct rz_sysc_init_data rzg3s_sysc_init_data;
444300f384SJohn Madieu extern const struct rz_sysc_init_data rzv2h_sys_init_data;
45*3903b470SLad Prabhakar extern const struct rz_sysc_init_data rzv2n_sys_init_data;
460704de89SClaudiu Beznea 
47c1aca558SClaudiu Beznea #endif /* __SOC_RENESAS_RZ_SYSC_H__ */
48