blob: 3ee43d77931bb0a2ad466066bcc4b2776e5f87c3 [file] [log] [blame]
developerfd40db22021-04-29 10:08:25 +08001/*
2 * switch_ioctl.h: switch(ioctl) set API
3 */
4
5#ifndef SWITCH_IOCTL_H
6#define SWITCH_IOCTL_H
7
8#define ETH_DEVNAME "eth0"
9#define BR_DEVNAME "br-lan"
10
developercd707d22024-08-06 10:44:11 +080011#define RAETH_MII_READ 0x89F3
12#define RAETH_MII_WRITE 0x89F4
13#define RAETH_ESW_PHY_DUMP 0x89F7
developerfd40db22021-04-29 10:08:25 +080014
15struct esw_reg {
developercd707d22024-08-06 10:44:11 +080016 unsigned int off;
17 unsigned int val;
developerfd40db22021-04-29 10:08:25 +080018};
19
20struct ra_mii_ioctl_data {
developercd707d22024-08-06 10:44:11 +080021 __u16 phy_id;
22 __u16 reg_num;
23 __u32 val_in;
24 __u32 val_out;
developerfd40db22021-04-29 10:08:25 +080025};
26
27struct ra_switch_ioctl_data {
developercd707d22024-08-06 10:44:11 +080028 unsigned int cmd;
29 unsigned int on_off;
30 unsigned int port;
31 unsigned int bw;
32 unsigned int vid;
33 unsigned int fid;
34 unsigned int port_map;
35 unsigned int rx_port_map;
36 unsigned int tx_port_map;
37 unsigned int igmp_query_interval;
38 unsigned int reg_addr;
39 unsigned int reg_val;
40 unsigned int mode;
41 unsigned int qos_queue_num;
42 unsigned int qos_type;
43 unsigned int qos_pri;
44 unsigned int qos_dscp;
45 unsigned int qos_table_idx;
46 unsigned int qos_weight;
47 unsigned char mac[6];
developerfd40db22021-04-29 10:08:25 +080048};
49
50extern int chip_name;
51
developer0c1ae572021-05-27 15:32:01 +080052int switch_ioctl_init(void);
developerfd40db22021-04-29 10:08:25 +080053void switch_ioctl_fini(void);
54int reg_read_ioctl(unsigned int offset, unsigned int *value);
55int reg_write_ioctl(unsigned int offset, unsigned int value);
56int phy_dump_ioctl(unsigned int phy_addr);
57int mii_mgr_cl22_read_ioctl(unsigned int port_num, unsigned int reg,
developercd707d22024-08-06 10:44:11 +080058 unsigned int *value);
developerfd40db22021-04-29 10:08:25 +080059int mii_mgr_cl22_write_ioctl(unsigned int port_num, unsigned int reg,
developercd707d22024-08-06 10:44:11 +080060 unsigned int value);
developerfd40db22021-04-29 10:08:25 +080061int mii_mgr_cl45_read_ioctl(unsigned int port_num, unsigned int dev,
developercd707d22024-08-06 10:44:11 +080062 unsigned int reg, unsigned int *value);
developerfd40db22021-04-29 10:08:25 +080063int mii_mgr_cl45_write_ioctl(unsigned int port_num, unsigned int dev,
developercd707d22024-08-06 10:44:11 +080064 unsigned int reg, unsigned int value);
developerfd40db22021-04-29 10:08:25 +080065#endif