Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
/*
 * Copyright (c) 2015 South Silicon Valley Microelectronics Inc.
 * Copyright (c) 2015 iComm Corporation
 *
 * This program is free software: you can redistribute it and/or modify 
 * it under the terms of the GNU General Public License as published by 
 * the Free Software Foundation, either version 3 of the License, or 
 * (at your option) any later version.
 * 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.
 * You should have received a copy of the GNU General Public License 
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef _DEV_TBL_H_
#define _DEV_TBL_H_ 
#include "ssv6200_configuration.h"
#include "drv_comm.h"
struct ssv6xxx_dev_table {
    u32 address;
    u32 data;
};
#define ssv6200_phy_tbl phy_setting
#ifdef CONFIG_SSV_CABRIO_E
#define ssv6200_rf_tbl asic_rf_setting
#else
#undef ssv6200_rf_tbl
#define ssv6200_rf_tbl fpga_rf_setting
#endif
#define ACTION_DO_NOTHING 0
#define ACTION_UPDATE_NAV 1
#define ACTION_RESET_NAV 2
#define ACTION_SIGNAL_ACK 3
#define FRAME_ACCEPT 0
#define FRAME_DROP 1
#define SET_DEC_TBL(_type,_mask,_action,_drop) \
    (_type<<9| \
    _mask <<3| \
    _action<<1| \
    _drop)
#ifndef USE_GENERIC_DECI_TBL
 u16 sta_deci_tbl[] =
 {
  SET_DEC_TBL(0x1e, 0x3e, ACTION_RESET_NAV, FRAME_DROP),
  SET_DEC_TBL(0x18, 0x3e, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x1a, 0x3f, ACTION_SIGNAL_ACK, FRAME_DROP),
  SET_DEC_TBL(0x10, 0x38, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x25, 0x3f, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x26, 0x36, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x08, 0x3f, ACTION_DO_NOTHING, FRAME_ACCEPT),
  SET_DEC_TBL(0x05, 0x3f, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x0b, 0x3f, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x01, 0x3d, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x20, 0x30, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x00, 0x00, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x00, 0x00, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_UPDATE_NAV, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_RESET_NAV, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_SIGNAL_ACK, FRAME_DROP),
  0x2008,
  0x1001,
#if 0
  0x8408,
  0x1000,
#else
  0x0808,
  0x1040,
#endif
  0x2008,
  0x800E,
  0x0BB8,
  0x2B88,
  0x0800,
 };
 u16 ap_deci_tbl[] =
 {
  SET_DEC_TBL(0x1e, 0x3e, ACTION_RESET_NAV, FRAME_DROP),
  SET_DEC_TBL(0x18, 0x3e, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x1a, 0x3f, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x10, 0x38, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x25, 0x3f, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x26, 0x36, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x08, 0x3f, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x20, 0x30, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_DO_NOTHING, FRAME_ACCEPT),
  SET_DEC_TBL(0x00, 0x00, ACTION_DO_NOTHING, FRAME_ACCEPT),
  SET_DEC_TBL(0x20, 0x30, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x00, 0x00, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
  SET_DEC_TBL(0x00, 0x00, ACTION_DO_NOTHING, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_UPDATE_NAV, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_RESET_NAV, FRAME_DROP),
  SET_DEC_TBL(0x00, 0x00, ACTION_SIGNAL_ACK, FRAME_DROP),
  0x2008,
  0x1001,
  0x0888,
  0x1040,
  0x2008,
  0x800E,
  0x0800,
  0x2008,
  0x0800,
 };
#else
u16 generic_deci_tbl[] =
    {
            SET_DEC_TBL(0x1e, 0x3e, ACTION_RESET_NAV, FRAME_DROP),
            SET_DEC_TBL(0x18, 0x3e, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
            SET_DEC_TBL(0x1a, 0x3f, ACTION_DO_NOTHING, FRAME_ACCEPT),
            SET_DEC_TBL(0x10, 0x38, ACTION_DO_NOTHING, FRAME_DROP),
            0,
            0,
            0,
            SET_DEC_TBL(0x05, 0x3f, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
            SET_DEC_TBL(0x0b, 0x3f, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
            SET_DEC_TBL(0x01, 0x3d, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
            SET_DEC_TBL(0x00, 0x00, ACTION_DO_NOTHING, FRAME_ACCEPT),
            SET_DEC_TBL(0x00, 0x00, ACTION_SIGNAL_ACK, FRAME_ACCEPT),
            SET_DEC_TBL(0x00, 0x00, ACTION_DO_NOTHING, FRAME_DROP),
            SET_DEC_TBL(0x00, 0x00, ACTION_UPDATE_NAV, FRAME_DROP),
            SET_DEC_TBL(0x00, 0x00, ACTION_RESET_NAV, FRAME_DROP),
            SET_DEC_TBL(0x00, 0x00, ACTION_SIGNAL_ACK, FRAME_DROP),
            0x2008,
            0x1001,
            0x0400,
            0x0400,
            0x2000,
            0x800E,
            0x0800,
            0x0B88,
            0x0800,
    };
#endif
#define SET_PHY_INFO(_ctsdur,_ba_rate_idx,_ack_rate_idx,_llength_idx,_llength_enable) \
         (_ctsdur<<16| \
         _ba_rate_idx <<10| \
         _ack_rate_idx<<4| \
         _llength_idx<<1| \
         _llength_enable)
#define SET_PHY_L_LENGTH(_l_ba,_l_rts,_l_cts_ack) (_l_ba<<12|_l_rts<<6 |_l_cts_ack)
#ifdef CONFIG_SSV_CABRIO_E
static u32 phy_info_6051z[] =
{
        0x18000000, 0x18000100, 0x18000200, 0x18000300, 0x18000140,
        0x18000240, 0x18000340, 0x0C000001, 0x0C000101, 0x0C000201,
        0x0C000301, 0x18000401, 0x18000501, 0x18000601, 0x18000701,
        0x0C030002, 0x0C030102, 0x0C030202, 0x18030302, 0x18030402,
        0x18030502, 0x18030602, 0x1C030702, 0x0C030082, 0x0C030182,
        0x0C030282, 0x18030382, 0x18030482, 0x18030582, 0x18030682,
        0x1C030782, 0x0C030042, 0x0C030142, 0x0C030242, 0x18030342,
        0x18030442, 0x18030542, 0x18030642, 0x1C030742
};
#endif
static u32 phy_info_tbl[] =
 {
  0x0C000000, 0x0C000100, 0x0C000200, 0x0C000300, 0x0C000140,
  0x0C000240, 0x0C000340, 0x00000001, 0x00000101, 0x00000201,
  0x00000301, 0x0C000401, 0x0C000501, 0x0C000601, 0x0C000701,
  0x00030002, 0x00030102, 0x00030202, 0x0C030302, 0x0C030402,
  0x0C030502, 0x0C030602, 0x10030702, 0x00030082, 0x00030182,
  0x00030282, 0x0C030382, 0x0C030482, 0x0C030582, 0x0C030682,
  0x10030782, 0x00030042, 0x00030142, 0x00030242, 0x0C030342,
  0x0C030442, 0x0C030542, 0x0C030642, 0x10030742,
  SET_PHY_INFO(314, 0, 0, 0, 0),
  SET_PHY_INFO(258, 0, 1, 0, 0),
  SET_PHY_INFO(223, 0, 1, 0, 0),
  SET_PHY_INFO(213, 0, 1, 0, 0),
  SET_PHY_INFO(162, 0, 4, 0, 0),
  SET_PHY_INFO(127, 0, 4, 0, 0),
  SET_PHY_INFO(117, 0, 4, 0, 0),
  SET_PHY_INFO(60, 7, 7, 0, 0),
  SET_PHY_INFO(52, 7, 7, 0, 0),
  SET_PHY_INFO(48, 9, 9, 0, 0),
  SET_PHY_INFO(44, 9, 9, 0, 0),
  SET_PHY_INFO(44, 11, 11, 0, 0),
  SET_PHY_INFO(40, 11, 11, 0, 0),
  SET_PHY_INFO(40, 11, 11, 0, 0),
  SET_PHY_INFO(40, 11, 11, 0, 0),
  SET_PHY_INFO(76, 7, 7, 0, 1),
  SET_PHY_INFO(64, 9, 9, 1, 1),
  SET_PHY_INFO(60, 9, 9, 2, 1),
  SET_PHY_INFO(60, 11, 11, 3, 1),
  SET_PHY_INFO(56, 11, 11, 4, 1),
  SET_PHY_INFO(56, 11, 11, 5, 1),
  SET_PHY_INFO(56, 11, 11, 5, 1),
  SET_PHY_INFO(56, 11, 11, 5, 1),
  SET_PHY_INFO(76, 7, 7, 6, 1),
  SET_PHY_INFO(64, 9, 9, 1, 1),
  SET_PHY_INFO(60, 9, 9, 2, 1),
  SET_PHY_INFO(60, 11, 11, 3, 1),
  SET_PHY_INFO(56, 11, 11, 4, 1),
  SET_PHY_INFO(56, 11, 11, 5, 1),
  SET_PHY_INFO(56, 11, 11, 5, 1),
  SET_PHY_INFO(56, 11, 11, 5, 1),
  SET_PHY_INFO(64, 7, 7, 0, 0),
  SET_PHY_INFO(52, 9, 9, 0, 0),
  SET_PHY_INFO(48, 9, 9, 0, 0),
  SET_PHY_INFO(48, 11, 11, 0, 0),
  SET_PHY_INFO(44, 11, 11, 0, 0),
  SET_PHY_INFO(44, 11, 11, 0, 0),
  SET_PHY_INFO(44, 11, 11, 0, 0),
  SET_PHY_INFO(44, 11, 11, 0, 0),
  SET_PHY_L_LENGTH(50, 38, 35),
  SET_PHY_L_LENGTH(35, 29, 26),
  SET_PHY_L_LENGTH(29, 26, 23),
  SET_PHY_L_LENGTH(26, 23, 23),
  SET_PHY_L_LENGTH(23, 23, 20),
  SET_PHY_L_LENGTH(23, 20, 20),
  SET_PHY_L_LENGTH(47, 38, 35),
  SET_PHY_L_LENGTH( 0, 0, 0),
 };
#endif