162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __PPC_FSL_SOC_H 362306a36Sopenharmony_ci#define __PPC_FSL_SOC_H 462306a36Sopenharmony_ci#ifdef __KERNEL__ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include <asm/mmu.h> 762306a36Sopenharmony_ci 862306a36Sopenharmony_cistruct spi_device; 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciextern phys_addr_t get_immrbase(void); 1162306a36Sopenharmony_ci#if defined(CONFIG_CPM) || defined(CONFIG_QUICC_ENGINE) 1262306a36Sopenharmony_ciextern u32 get_brgfreq(void); 1362306a36Sopenharmony_ciextern u32 get_baudrate(void); 1462306a36Sopenharmony_ci#else 1562306a36Sopenharmony_cistatic inline u32 get_brgfreq(void) { return -1; } 1662306a36Sopenharmony_cistatic inline u32 get_baudrate(void) { return -1; } 1762306a36Sopenharmony_ci#endif 1862306a36Sopenharmony_ciextern u32 fsl_get_sys_freq(void); 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistruct spi_board_info; 2162306a36Sopenharmony_cistruct device_node; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci/* The different ports that the DIU can be connected to */ 2462306a36Sopenharmony_cienum fsl_diu_monitor_port { 2562306a36Sopenharmony_ci FSL_DIU_PORT_DVI, /* DVI */ 2662306a36Sopenharmony_ci FSL_DIU_PORT_LVDS, /* Single-link LVDS */ 2762306a36Sopenharmony_ci FSL_DIU_PORT_DLVDS /* Dual-link LVDS */ 2862306a36Sopenharmony_ci}; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_cistruct platform_diu_data_ops { 3162306a36Sopenharmony_ci u32 (*get_pixel_format)(enum fsl_diu_monitor_port port, 3262306a36Sopenharmony_ci unsigned int bpp); 3362306a36Sopenharmony_ci void (*set_gamma_table)(enum fsl_diu_monitor_port port, 3462306a36Sopenharmony_ci char *gamma_table_base); 3562306a36Sopenharmony_ci void (*set_monitor_port)(enum fsl_diu_monitor_port port); 3662306a36Sopenharmony_ci void (*set_pixel_clock)(unsigned int pixclock); 3762306a36Sopenharmony_ci enum fsl_diu_monitor_port (*valid_monitor_port) 3862306a36Sopenharmony_ci (enum fsl_diu_monitor_port port); 3962306a36Sopenharmony_ci void (*release_bootmem)(void); 4062306a36Sopenharmony_ci}; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciextern struct platform_diu_data_ops diu_ops; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_civoid __noreturn fsl_hv_restart(char *cmd); 4562306a36Sopenharmony_civoid __noreturn fsl_hv_halt(void); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#endif 4862306a36Sopenharmony_ci#endif 49