162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * linux/arch/arm/mach-sa1100/generic.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Author: Nicolas Pitre 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci#include <linux/cpufreq.h> 862306a36Sopenharmony_ci#include <linux/reboot.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciextern void sa1100_timer_init(void); 1162306a36Sopenharmony_ciextern void __init sa1100_map_io(void); 1262306a36Sopenharmony_ciextern void __init sa1100_init_irq(void); 1362306a36Sopenharmony_ciextern void __init sa1100_init_gpio(void); 1462306a36Sopenharmony_ciextern void sa11x0_restart(enum reboot_mode, const char *); 1562306a36Sopenharmony_ciextern void sa11x0_init_late(void); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define SET_BANK(__nr,__start,__size) \ 1862306a36Sopenharmony_ci mi->bank[__nr].start = (__start), \ 1962306a36Sopenharmony_ci mi->bank[__nr].size = (__size) 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciextern void sa1110_mb_enable(void); 2262306a36Sopenharmony_ciextern void sa1110_mb_disable(void); 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciextern struct cpufreq_frequency_table sa11x0_freq_table[]; 2562306a36Sopenharmony_ciextern unsigned int sa11x0_getspeed(unsigned int cpu); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_cistruct flash_platform_data; 2862306a36Sopenharmony_cistruct resource; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_civoid sa11x0_register_mtd(struct flash_platform_data *flash, 3162306a36Sopenharmony_ci struct resource *res, int nr); 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistruct mcp_plat_data; 3462306a36Sopenharmony_civoid sa11x0_ppc_configure_mcp(void); 3562306a36Sopenharmony_civoid sa11x0_register_mcp(struct mcp_plat_data *data); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_cistruct sa1100fb_mach_info; 3862306a36Sopenharmony_civoid sa11x0_register_lcd(struct sa1100fb_mach_info *inf); 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#ifdef CONFIG_PM 4162306a36Sopenharmony_ciint sa11x0_pm_init(void); 4262306a36Sopenharmony_ci#else 4362306a36Sopenharmony_cistatic inline int sa11x0_pm_init(void) { return 0; } 4462306a36Sopenharmony_ci#endif 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciint sa11xx_clk_init(void); 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_cistruct gpiod_lookup_table; 4962306a36Sopenharmony_civoid sa11x0_register_pcmcia(int socket, struct gpiod_lookup_table *); 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_cistruct fixed_voltage_config; 5262306a36Sopenharmony_cistruct regulator_consumer_supply; 5362306a36Sopenharmony_ciint sa11x0_register_fixed_regulator(int n, struct fixed_voltage_config *cfg, 5462306a36Sopenharmony_ci struct regulator_consumer_supply *supplies, unsigned num_supplies, 5562306a36Sopenharmony_ci bool uses_gpio); 56