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