18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * linux/arch/arm/mach-sa1100/generic.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Author: Nicolas Pitre 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci#include <linux/cpufreq.h> 88c2ecf20Sopenharmony_ci#include <linux/reboot.h> 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciextern void sa1100_timer_init(void); 118c2ecf20Sopenharmony_ciextern void __init sa1100_map_io(void); 128c2ecf20Sopenharmony_ciextern void __init sa1100_init_irq(void); 138c2ecf20Sopenharmony_ciextern void __init sa1100_init_gpio(void); 148c2ecf20Sopenharmony_ciextern void sa11x0_restart(enum reboot_mode, const char *); 158c2ecf20Sopenharmony_ciextern void sa11x0_init_late(void); 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define SET_BANK(__nr,__start,__size) \ 188c2ecf20Sopenharmony_ci mi->bank[__nr].start = (__start), \ 198c2ecf20Sopenharmony_ci mi->bank[__nr].size = (__size) 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciextern void sa1110_mb_enable(void); 228c2ecf20Sopenharmony_ciextern void sa1110_mb_disable(void); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciextern struct cpufreq_frequency_table sa11x0_freq_table[]; 258c2ecf20Sopenharmony_ciextern unsigned int sa11x0_getspeed(unsigned int cpu); 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_cistruct flash_platform_data; 288c2ecf20Sopenharmony_cistruct resource; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_civoid sa11x0_register_mtd(struct flash_platform_data *flash, 318c2ecf20Sopenharmony_ci struct resource *res, int nr); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_cistruct irda_platform_data; 348c2ecf20Sopenharmony_civoid sa11x0_register_irda(struct irda_platform_data *irda); 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_cistruct mcp_plat_data; 378c2ecf20Sopenharmony_civoid sa11x0_ppc_configure_mcp(void); 388c2ecf20Sopenharmony_civoid sa11x0_register_mcp(struct mcp_plat_data *data); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cistruct sa1100fb_mach_info; 418c2ecf20Sopenharmony_civoid sa11x0_register_lcd(struct sa1100fb_mach_info *inf); 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci#ifdef CONFIG_PM 448c2ecf20Sopenharmony_ciint sa11x0_pm_init(void); 458c2ecf20Sopenharmony_ci#else 468c2ecf20Sopenharmony_cistatic inline int sa11x0_pm_init(void) { return 0; } 478c2ecf20Sopenharmony_ci#endif 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ciint sa11xx_clk_init(void); 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cistruct gpiod_lookup_table; 528c2ecf20Sopenharmony_civoid sa11x0_register_pcmcia(int socket, struct gpiod_lookup_table *); 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_cistruct fixed_voltage_config; 558c2ecf20Sopenharmony_cistruct regulator_consumer_supply; 568c2ecf20Sopenharmony_ciint sa11x0_register_fixed_regulator(int n, struct fixed_voltage_config *cfg, 578c2ecf20Sopenharmony_ci struct regulator_consumer_supply *supplies, unsigned num_supplies, 588c2ecf20Sopenharmony_ci bool uses_gpio); 59