/** @file */ /****************************************************************************** * * Copyright(c) 2019 Realtek Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * ******************************************************************************/ #ifndef _MAC_AX_GPIO_H_ #define _MAC_AX_GPIO_H_ #include "../type.h" #include "gpio_cmd.h" #define DFLT_GPIO_STATE \ {RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, \ RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, \ RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, \ RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, \ RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, \ RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, RTW_MAC_GPIO_DFLT, \ RTW_MAC_GPIO_DFLT} #define DFLT_SW_IO_MODE \ {0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0} /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_sel_uart_tx_pin * * @param *adapter * @param uart_pin * @return Please Place Description here. * @retval u32 */ u32 mac_sel_uart_tx_pin(struct mac_ax_adapter *adapter, enum mac_ax_uart_tx_pin uart_pin); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_pinmux_status * * @param *adapter * @param func * @return Please Place Description here. * @retval u32 */ u32 mac_pinmux_status(struct mac_ax_adapter *adapter, enum mac_ax_gpio_func func); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_pinmux_free_func * * @param *adapter * @param func * @return Please Place Description here. * @retval u32 */ u32 mac_pinmux_free_func(struct mac_ax_adapter *adapter, enum mac_ax_gpio_func func); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_pinmux_record * * @param *adapter * @param func * @param val * @return Please Place Description here. * @retval u32 */ u32 mac_pinmux_record(struct mac_ax_adapter *adapter, enum mac_ax_gpio_func func, u8 val); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_pinmux_switch * * @param *adapter * @param gpio_func * @param *list * @param list_size * @param gpio_id * @return Please Place Description here. * @retval u32 */ u32 mac_pinmux_switch(struct mac_ax_adapter *adapter, enum mac_ax_gpio_func gpio_func, const struct mac_ax_pinmux_list *list, u32 list_size, u32 gpio_id); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_sel_uart_rx_pin * * @param *adapter * @param uart_pin * @return Please Place Description here. * @retval u32 */ u32 mac_sel_uart_rx_pin(struct mac_ax_adapter *adapter, enum mac_ax_uart_rx_pin uart_pin); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_set_led_mode * * @param *adapter * @param mode * @param led_id * @return Please Place Description here. * @retval u32 */ u32 mac_set_led_mode(struct mac_ax_adapter *adapter, enum mac_ax_led_mode mode, u8 led_id); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_led_ctrl * * @param *adapter * @param high * @param led_id * @return Please Place Description here. * @retval u32 */ u32 mac_led_ctrl(struct mac_ax_adapter *adapter, u8 high, u8 led_id); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_sw_gpio_ctrl * * @param *adapter * @param high * @param gpio * @return Please Place Description here. * @retval u32 */ u32 mac_sw_gpio_ctrl(struct mac_ax_adapter *adapter, u8 high, u8 gpio); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_set_sw_gpio_mode * * @param *adapter * @param mode * @param gpio * @return Please Place Description here. * @retval u32 */ u32 mac_set_sw_gpio_mode(struct mac_ax_adapter *adapter, enum rtw_gpio_mode mode, u8 gpio); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_get_gpio_status * * @param *adapter * @param *list * @return Please Place Description here. * @retval rtw_mac_gfunc */ enum rtw_mac_gfunc mac_get_gpio_status(struct mac_ax_adapter *adapter, const struct mac_ax_pin_list *list); /** * @} * @} */ /** * @addtogroup Common * @{ * @addtogroup GPIO * @{ */ /** * @brief mac_cfg_wps * * WPS is a driver feature to detect button pressed or released. * In HW view, the feature is to check the GPIO input value is 0->1 or 1->0 * We use FW to detect GPIO val. * In a specified interval, if FW detects value changed, it will send a C2H * * @param *adapter * @param *wps * @return 0 for succcess, others for fail * @retval u32 */ u32 mac_cfg_wps(struct mac_ax_adapter *adapter, struct mac_ax_cfg_wps *wps); /** * @} * @} */ u32 mac_get_gpio_val(struct mac_ax_adapter *adapter, u8 gpio, u8 *val); u32 mac_get_wl_dis_val(struct mac_ax_adapter *adapter, u8 *val); #endif