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