Files
kernel_xiaomi_sm8250/drivers/net/usb/ax_ioctl.h
Yao Zhao 0f715024db net: usb: Upgrade ax88179a driver
This change is to update usb to ethernet AX88179A driver
cause old sensor AX88179 has stopped production
need to update AX88179 hardware and software meanwhile.

Code from ASIX web site:
https://www.asix.com.tw/en/product/USBEthernet/Super-Speed_USB_Ethernet/AX88179A.

Change-Id: I0cd53a569ddac58d1d5fb7556c95b3c18992a56d
[quic_yaozhao: addressed checkpatch issues]
Signed-off-by: Yao Zhao <quic_yaozhao@quicinc.com>
Signed-off-by: Vijay Kamble <quic_vkamble@quicinc.com>
2022-11-25 00:45:45 -08:00

122 lines
3.2 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*******************************************************************************
* Copyright (c) 2022 ASIX Electronic Corporation All rights reserved.
*
* 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 2 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 <https://www.gnu.org/licenses/>.
******************************************************************************/
#ifndef __ASIX_IOCTL_H
#define __ASIX_IOCTL_H
// CHANGE NETWORK INTERFACE WAY
// DEFAULT_SCAN : scan "eth0" - "eth255"
// INTERFACE_SCAN : scan all available network interfaces
#define NET_INTERFACE DEFAULT_SCAN
#define DEFAULT_SCAN 0x00
#define INTERFACE_SCAN 0x01
#define AX88179_SIGNATURE "AX88179_178A"
#define AX88179_DRV_NAME "AX88179_178A"
#define AX88179A_SIGNATURE "AX88179A_772D"
#define AX88179A_DRV_NAME "AX88179A_772D"
#define AX_PRIVATE SIOCDEVPRIVATE
#define AX_SIGNATURE 0
#define AX_USB_COMMAND 1
#define AX88179_READ_EEPROM 2
#define AX88179_WRITE_EEPROM 3
#define AX88179A_READ_VERSION 2
#define AX88179A_WRITE_FLASH 3
#define AX88179A_ROOT_2_ROM 4
#define AX88179A_ERASE_FLASH 5
#define AX88179A_SW_RESET 6
#define AX88179A_READ_FLASH 7
#define AX88179A_PROGRAM_EFUSE 8
#define AX88179A_DUMP_EFUSE 9
#define ERR_FALSH_WRITE_EN 1
#define ERR_FALSH_WRITE_DIS 2
#define ERR_FALSH_ERASE_ALL 3
#define ERR_FALSH_WRITE 4
#define ERR_FALSH_READ 5
#define ERR_EFUSE_READ 6
#define ERR_EFUSE_WRITE 6
#define USB_READ_OPS 0
#define USB_WRITE_OPS 1
#define SCAN_DEV_MAX_RETRY 10
struct _ax_usb_command {
unsigned char ops;
unsigned char cmd;
unsigned short value;
unsigned short index;
unsigned short size;
unsigned char *data;
unsigned long cmd_data;
};
struct _ax88179a_flash {
int status;
int length;
int offset;
unsigned char *buf;
};
struct _ax88179a_version {
unsigned char version[16];
};
struct _ax_ioctl_command {
unsigned short ioctl_cmd;
unsigned char sig[16];
unsigned char type;
unsigned short *buf;
unsigned short size;
unsigned char delay;
union {
struct _ax88179a_flash flash;
struct _ax88179a_version version;
struct _ax_usb_command usb_cmd;
};
};
#define SWAP_32(val) (((val >> 24) & 0x000000FF) | \
((val >> 8) & 0x0000FF00) | \
((val << 8) & 0x00FF0000) | \
((val << 24) & 0xFF000000))
struct ax_device;
typedef int (*IOCTRL_TABLE)(struct ax_device *axdev,
struct _ax_ioctl_command *info);
struct ax_command_info {
int inet_sock;
struct ifreq *ifr;
int argc;
char **argv;
unsigned short ioctl_cmd;
const char *help_ins;
const char *help_desc;
};
typedef void (*MENU_FUNC)(struct ax_command_info *info);
struct _command_list {
char *cmd;
unsigned short ioctl_cmd;
MENU_FUNC OptFunc;
const char *help_ins;
const char *help_desc;
};
#endif /* __ASIX_IOCTL_H */