blob: dffe9c7f057ffd5c93bc221e662e30debcf942c3 [file] [log] [blame]
developer880c8292022-07-11 11:52:59 +08001/*
2 * switch_ioctl.h: switch(ioctl) set API
3 */
4
5#ifndef SWITCH_IOCTL_H
6#define SWITCH_IOCTL_H
7
developer5dfa8b72022-11-03 11:33:07 +08008#define ETH_DEVNAME "eth0"
9#define BR_DEVNAME "br-lan"
developer880c8292022-07-11 11:52:59 +080010
11#define RAETH_MII_READ 0x89F3
12#define RAETH_MII_WRITE 0x89F4
13#define RAETH_ESW_PHY_DUMP 0x89F7
14
15struct esw_reg {
16 unsigned int off;
17 unsigned int val;
18};
19
20struct ra_mii_ioctl_data {
developer5dfa8b72022-11-03 11:33:07 +080021 __u16 phy_id;
22 __u16 reg_num;
developer880c8292022-07-11 11:52:59 +080023 __u32 val_in;
24 __u32 val_out;
developer5dfa8b72022-11-03 11:33:07 +080025/*
developer880c8292022-07-11 11:52:59 +080026 __u32 port_num;
27 __u32 dev_addr;
28 __u32 reg_addr;
developer5dfa8b72022-11-03 11:33:07 +080029*/
developer880c8292022-07-11 11:52:59 +080030};
31
32struct ra_switch_ioctl_data {
33 unsigned int cmd;
34 unsigned int on_off;
35 unsigned int port;
36 unsigned int bw;
37 unsigned int vid;
38 unsigned int fid;
39 unsigned int port_map;
40 unsigned int rx_port_map;
41 unsigned int tx_port_map;
42 unsigned int igmp_query_interval;
43 unsigned int reg_addr;
44 unsigned int reg_val;
45 unsigned int mode;
46 unsigned int qos_queue_num;
47 unsigned int qos_type;
48 unsigned int qos_pri;
49 unsigned int qos_dscp;
50 unsigned int qos_table_idx;
51 unsigned int qos_weight;
52 unsigned char mac[6];
53};
54
55extern int chip_name;
56
developer5dfa8b72022-11-03 11:33:07 +080057int switch_ioctl_init(void);
developer880c8292022-07-11 11:52:59 +080058void switch_ioctl_fini(void);
developer5dfa8b72022-11-03 11:33:07 +080059int reg_read_ioctl(unsigned int offset, unsigned int *value);
60int reg_write_ioctl(unsigned int offset, unsigned int value);
61int phy_dump_ioctl(unsigned int phy_addr);
62int mii_mgr_cl22_read_ioctl(unsigned int port_num, unsigned int reg,
63 unsigned int *value);
developer880c8292022-07-11 11:52:59 +080064int mii_mgr_cl22_write_ioctl(unsigned int port_num, unsigned int reg,
developer5dfa8b72022-11-03 11:33:07 +080065 unsigned int value);
66int mii_mgr_cl45_read_ioctl(unsigned int port_num, unsigned int dev,
67 unsigned int reg, unsigned int *value);
68int mii_mgr_cl45_write_ioctl(unsigned int port_num, unsigned int dev,
69 unsigned int reg, unsigned int value);
developer880c8292022-07-11 11:52:59 +080070#endif