13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 23d0407baSopenharmony_ci#ifndef __PLAT_BOARD_H 33d0407baSopenharmony_ci#define __PLAT_BOARD_H 43d0407baSopenharmony_ci 53d0407baSopenharmony_ci#include <linux/types.h> 63d0407baSopenharmony_ci#include <linux/init.h> 73d0407baSopenharmony_ci#include <linux/device.h> 83d0407baSopenharmony_ci#include <linux/clk.h> 93d0407baSopenharmony_ci 103d0407baSopenharmony_cistruct rksdmmc_iomux { 113d0407baSopenharmony_ci char *name; //set the MACRO of gpio 123d0407baSopenharmony_ci int fgpio; 133d0407baSopenharmony_ci int fmux; 143d0407baSopenharmony_ci}; 153d0407baSopenharmony_ci 163d0407baSopenharmony_cistruct rksdmmc_gpio { 173d0407baSopenharmony_ci int io; //set the address of gpio 183d0407baSopenharmony_ci char name[64]; // 193d0407baSopenharmony_ci int enable; // disable = !enable //set the default value,i.e,GPIO_HIGH or GPIO_LOW 203d0407baSopenharmony_ci struct rksdmmc_iomux iomux; 213d0407baSopenharmony_ci}; 223d0407baSopenharmony_ci 233d0407baSopenharmony_cistruct rksdmmc_pmu { 243d0407baSopenharmony_ci bool power_ctrl_by_pmu; 253d0407baSopenharmony_ci char pmu_regulator[20]; 263d0407baSopenharmony_ci int enable; 273d0407baSopenharmony_ci}; 283d0407baSopenharmony_ci 293d0407baSopenharmony_cistruct rksdmmc_gpio_wifi_moudle { 303d0407baSopenharmony_ci int sdio_vol; //sdio reference voltage 313d0407baSopenharmony_ci bool vref_ctrl_enble; 323d0407baSopenharmony_ci bool wifi_power_remain; 333d0407baSopenharmony_ci struct rksdmmc_pmu mregulator; 343d0407baSopenharmony_ci struct rksdmmc_pmu ioregulator; 353d0407baSopenharmony_ci struct rksdmmc_gpio vbat_n; 363d0407baSopenharmony_ci struct rksdmmc_gpio power_n; //PMU_EN 373d0407baSopenharmony_ci struct rksdmmc_gpio reset_n; //SYSRET_B, DAIRST 383d0407baSopenharmony_ci struct rksdmmc_gpio vddio; 393d0407baSopenharmony_ci struct rksdmmc_gpio bgf_int_b; 403d0407baSopenharmony_ci struct rksdmmc_gpio wifi_int_b; 413d0407baSopenharmony_ci struct rksdmmc_gpio gps_sync; 423d0407baSopenharmony_ci struct rksdmmc_gpio ANTSEL2; //pin5--ANTSEL2 433d0407baSopenharmony_ci struct rksdmmc_gpio ANTSEL3; //pin6--ANTSEL3 443d0407baSopenharmony_ci struct rksdmmc_gpio GPS_LAN; //pin33--GPS_LAN 453d0407baSopenharmony_ci struct regmap *grf; 463d0407baSopenharmony_ci struct clk *ext_clk; 473d0407baSopenharmony_ci}; 483d0407baSopenharmony_ci 493d0407baSopenharmony_ciint rfkill_get_wifi_power_state(int *power); 503d0407baSopenharmony_civoid *rockchip_mem_prealloc(int section, unsigned long size); 513d0407baSopenharmony_ciint rfkill_set_wifi_bt_power(int on); 523d0407baSopenharmony_ciint rockchip_wifi_power(int on); 533d0407baSopenharmony_ciint rockchip_wifi_set_carddetect(int val); 543d0407baSopenharmony_ciint rockchip_wifi_get_oob_irq(void); 553d0407baSopenharmony_ciint rockchip_wifi_get_oob_irq_flag(void); 563d0407baSopenharmony_ciint rockchip_wifi_reset(int on); 573d0407baSopenharmony_ciint rockchip_wifi_mac_addr(unsigned char *buf); 583d0407baSopenharmony_civoid *rockchip_wifi_country_code(char *ccode); 593d0407baSopenharmony_ciint rfkill_wlan_init(void); 603d0407baSopenharmony_civoid rfkill_wlan_exit(void); 613d0407baSopenharmony_ci 623d0407baSopenharmony_ci#endif 63