18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __PPC_FSL_SOC_H 38c2ecf20Sopenharmony_ci#define __PPC_FSL_SOC_H 48c2ecf20Sopenharmony_ci#ifdef __KERNEL__ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <asm/mmu.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cistruct spi_device; 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciextern phys_addr_t get_immrbase(void); 118c2ecf20Sopenharmony_ci#if defined(CONFIG_CPM) || defined(CONFIG_QUICC_ENGINE) 128c2ecf20Sopenharmony_ciextern u32 get_brgfreq(void); 138c2ecf20Sopenharmony_ciextern u32 get_baudrate(void); 148c2ecf20Sopenharmony_ci#else 158c2ecf20Sopenharmony_cistatic inline u32 get_brgfreq(void) { return -1; } 168c2ecf20Sopenharmony_cistatic inline u32 get_baudrate(void) { return -1; } 178c2ecf20Sopenharmony_ci#endif 188c2ecf20Sopenharmony_ciextern u32 fsl_get_sys_freq(void); 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cistruct spi_board_info; 218c2ecf20Sopenharmony_cistruct device_node; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci/* The different ports that the DIU can be connected to */ 248c2ecf20Sopenharmony_cienum fsl_diu_monitor_port { 258c2ecf20Sopenharmony_ci FSL_DIU_PORT_DVI, /* DVI */ 268c2ecf20Sopenharmony_ci FSL_DIU_PORT_LVDS, /* Single-link LVDS */ 278c2ecf20Sopenharmony_ci FSL_DIU_PORT_DLVDS /* Dual-link LVDS */ 288c2ecf20Sopenharmony_ci}; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_cistruct platform_diu_data_ops { 318c2ecf20Sopenharmony_ci u32 (*get_pixel_format)(enum fsl_diu_monitor_port port, 328c2ecf20Sopenharmony_ci unsigned int bpp); 338c2ecf20Sopenharmony_ci void (*set_gamma_table)(enum fsl_diu_monitor_port port, 348c2ecf20Sopenharmony_ci char *gamma_table_base); 358c2ecf20Sopenharmony_ci void (*set_monitor_port)(enum fsl_diu_monitor_port port); 368c2ecf20Sopenharmony_ci void (*set_pixel_clock)(unsigned int pixclock); 378c2ecf20Sopenharmony_ci enum fsl_diu_monitor_port (*valid_monitor_port) 388c2ecf20Sopenharmony_ci (enum fsl_diu_monitor_port port); 398c2ecf20Sopenharmony_ci void (*release_bootmem)(void); 408c2ecf20Sopenharmony_ci}; 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciextern struct platform_diu_data_ops diu_ops; 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_civoid __noreturn fsl_hv_restart(char *cmd); 458c2ecf20Sopenharmony_civoid __noreturn fsl_hv_halt(void); 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci#endif 488c2ecf20Sopenharmony_ci#endif 49