Blame view

include/miiphy.h 3.31 KB
46263f2de   Wolfgang Denk   SPDX-License-Iden...
1
  /*
1b387ef55   Wolfgang Denk   SPDX: fix IBM-pib...
2
   * SPDX-License-Identifier:	GPL-2.0	IBM-pibs
46263f2de   Wolfgang Denk   SPDX-License-Iden...
3
4
5
   *
   * Additions (C) Copyright 2009 Industrie Dial Face S.p.A.
   */
214ec6bbd   wdenk   Initial revision
6
7
  /*----------------------------------------------------------------------------+
  |
65bd0e284   wdenk   * Patch by Rune T...
8
  |  File Name:	miiphy.h
214ec6bbd   wdenk   Initial revision
9
  |
65bd0e284   wdenk   * Patch by Rune T...
10
  |  Function:	Include file defining PHY registers.
214ec6bbd   wdenk   Initial revision
11
  |
65bd0e284   wdenk   * Patch by Rune T...
12
  |  Author:	Mark Wisner
214ec6bbd   wdenk   Initial revision
13
  |
214ec6bbd   wdenk   Initial revision
14
15
16
  +----------------------------------------------------------------------------*/
  #ifndef _miiphy_h_
  #define _miiphy_h_
5f184715e   Andy Fleming   Create PHY Lib fo...
17
  #include <common.h>
8ef583a03   Mike Frysinger   miiphy: convert t...
18
  #include <linux/mii.h>
5f184715e   Andy Fleming   Create PHY Lib fo...
19
  #include <linux/list.h>
63ff004c4   Marian Balakowicz   Add support for m...
20
  #include <net.h>
5f184715e   Andy Fleming   Create PHY Lib fo...
21
  #include <phy.h>
f915c9316   Wolfgang Denk   Revert "mii: miip...
22
  int miiphy_read(const char *devname, unsigned char addr, unsigned char reg,
298035df4   Larry Johnson   NET: Cosmetic cha...
23
  		 unsigned short *value);
f915c9316   Wolfgang Denk   Revert "mii: miip...
24
  int miiphy_write(const char *devname, unsigned char addr, unsigned char reg,
298035df4   Larry Johnson   NET: Cosmetic cha...
25
  		  unsigned short value);
16a532383   Andy Fleming   miiphy: Fix some ...
26
  int miiphy_info(const char *devname, unsigned char addr, unsigned int *oui,
298035df4   Larry Johnson   NET: Cosmetic cha...
27
  		 unsigned char *model, unsigned char *rev);
16a532383   Andy Fleming   miiphy: Fix some ...
28
29
30
31
  int miiphy_reset(const char *devname, unsigned char addr);
  int miiphy_speed(const char *devname, unsigned char addr);
  int miiphy_duplex(const char *devname, unsigned char addr);
  int miiphy_is_1000base_x(const char *devname, unsigned char addr);
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
32
  #ifdef CONFIG_SYS_FAULT_ECHO_LINK_DOWN
16a532383   Andy Fleming   miiphy: Fix some ...
33
  int miiphy_link(const char *devname, unsigned char addr);
fc3e2165e   wdenk   * Patch by Sangmo...
34
  #endif
214ec6bbd   wdenk   Initial revision
35

16a532383   Andy Fleming   miiphy: Fix some ...
36
  void miiphy_init(void);
d9785c14b   Marian Balakowicz   Fix miiphy global...
37

16a532383   Andy Fleming   miiphy: Fix some ...
38
39
  int miiphy_set_current_dev(const char *devname);
  const char *miiphy_get_current_dev(void);
5f184715e   Andy Fleming   Create PHY Lib fo...
40
41
42
  struct mii_dev *mdio_get_current_dev(void);
  struct mii_dev *miiphy_get_dev_by_name(const char *devname);
  struct phy_device *mdio_phydev_for_ethname(const char *devname);
63ff004c4   Marian Balakowicz   Add support for m...
43

16a532383   Andy Fleming   miiphy: Fix some ...
44
  void miiphy_listdev(void);
63ff004c4   Marian Balakowicz   Add support for m...
45

5f184715e   Andy Fleming   Create PHY Lib fo...
46
  struct mii_dev *mdio_alloc(void);
cb6baca77   Bin Meng   net: mdio: Add md...
47
  void mdio_free(struct mii_dev *bus);
5f184715e   Andy Fleming   Create PHY Lib fo...
48
  int mdio_register(struct mii_dev *bus);
79e2a6a04   Michal Simek   common: miiphyuti...
49
50
51
52
53
54
55
56
57
  
  /**
   * mdio_register_seq - Register mdio bus with sequence number
   * @bus: mii device structure
   * @seq: sequence number
   *
   * Return: 0 if success, negative value if error
   */
  int mdio_register_seq(struct mii_dev *bus, int seq);
cb6baca77   Bin Meng   net: mdio: Add md...
58
  int mdio_unregister(struct mii_dev *bus);
5f184715e   Andy Fleming   Create PHY Lib fo...
59
  void mdio_list_devices(void);
4ba31ab33   Luigi 'Comio' Mantellini   Rewrite the miiph...
60
61
62
63
64
  #ifdef CONFIG_BITBANGMII
  
  #define BB_MII_DEVNAME	"bb_miiphy"
  
  struct bb_miiphy_bus {
f6add132f   Mike Frysinger   net/miiphy/serial...
65
  	char name[16];
4ba31ab33   Luigi 'Comio' Mantellini   Rewrite the miiph...
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  	int (*init)(struct bb_miiphy_bus *bus);
  	int (*mdio_active)(struct bb_miiphy_bus *bus);
  	int (*mdio_tristate)(struct bb_miiphy_bus *bus);
  	int (*set_mdio)(struct bb_miiphy_bus *bus, int v);
  	int (*get_mdio)(struct bb_miiphy_bus *bus, int *v);
  	int (*set_mdc)(struct bb_miiphy_bus *bus, int v);
  	int (*delay)(struct bb_miiphy_bus *bus);
  #ifdef CONFIG_BITBANGMII_MULTI
  	void *priv;
  #endif
  };
  
  extern struct bb_miiphy_bus bb_miiphy_buses[];
  extern int bb_miiphy_buses_num;
63ff004c4   Marian Balakowicz   Add support for m...
80

16a532383   Andy Fleming   miiphy: Fix some ...
81
  void bb_miiphy_init(void);
dfcc496ed   Joe Hershberger   net: mii: Changes...
82
83
84
  int bb_miiphy_read(struct mii_dev *miidev, int addr, int devad, int reg);
  int bb_miiphy_write(struct mii_dev *miidev, int addr, int devad, int reg,
  		    u16 value);
4ba31ab33   Luigi 'Comio' Mantellini   Rewrite the miiph...
85
  #endif
214ec6bbd   wdenk   Initial revision
86
87
  
  /* phy seed setup */
65bd0e284   wdenk   * Patch by Rune T...
88
  #define AUTO			99
298035df4   Larry Johnson   NET: Cosmetic cha...
89
  #define _1000BASET		1000
65bd0e284   wdenk   * Patch by Rune T...
90
91
92
93
  #define _100BASET		100
  #define _10BASET		10
  #define HALF			22
  #define FULL			44
214ec6bbd   wdenk   Initial revision
94
95
  
  /* phy register offsets */
8ef583a03   Mike Frysinger   miiphy: convert t...
96
97
98
  #define MII_MIPSCR		0x11
  
  /* MII_LPA */
298035df4   Larry Johnson   NET: Cosmetic cha...
99
100
  #define PHY_ANLPAR_PSB_802_3	0x0001
  #define PHY_ANLPAR_PSB_802_9	0x0002
8ef583a03   Mike Frysinger   miiphy: convert t...
101
  /* MII_CTRL1000 masks */
71bc6e647   Larry Johnson   NET: Add Ethernet...
102
103
  #define PHY_1000BTCR_1000FD	0x0200
  #define PHY_1000BTCR_1000HD	0x0100
8ef583a03   Mike Frysinger   miiphy: convert t...
104
  /* MII_STAT1000 masks */
298035df4   Larry Johnson   NET: Cosmetic cha...
105
106
107
108
109
110
  #define PHY_1000BTSR_MSCF	0x8000
  #define PHY_1000BTSR_MSCR	0x4000
  #define PHY_1000BTSR_LRS	0x2000
  #define PHY_1000BTSR_RRS	0x1000
  #define PHY_1000BTSR_1000FD	0x0800
  #define PHY_1000BTSR_1000HD	0x0400
855a496fe   wdenk   * Patches by Trav...
111

71bc6e647   Larry Johnson   NET: Add Ethernet...
112
  /* phy EXSR */
8ef583a03   Mike Frysinger   miiphy: convert t...
113
114
  #define ESTATUS_1000XF		0x8000
  #define ESTATUS_1000XH		0x4000
71bc6e647   Larry Johnson   NET: Add Ethernet...
115

214ec6bbd   wdenk   Initial revision
116
  #endif