Blame view

include/miiphy.h 3.56 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
22
23
24
  #include <phy.h>
  
  struct legacy_mii_dev {
  	int (*read)(const char *devname, unsigned char addr,
f915c9316   Wolfgang Denk   Revert "mii: miip...
25
  		     unsigned char reg, unsigned short *value);
5f184715e   Andy Fleming   Create PHY Lib fo...
26
  	int (*write)(const char *devname, unsigned char addr,
f915c9316   Wolfgang Denk   Revert "mii: miip...
27
  		      unsigned char reg, unsigned short value);
5f184715e   Andy Fleming   Create PHY Lib fo...
28
  };
214ec6bbd   wdenk   Initial revision
29

f915c9316   Wolfgang Denk   Revert "mii: miip...
30
  int miiphy_read(const char *devname, unsigned char addr, unsigned char reg,
298035df4   Larry Johnson   NET: Cosmetic cha...
31
  		 unsigned short *value);
f915c9316   Wolfgang Denk   Revert "mii: miip...
32
  int miiphy_write(const char *devname, unsigned char addr, unsigned char reg,
298035df4   Larry Johnson   NET: Cosmetic cha...
33
  		  unsigned short value);
16a532383   Andy Fleming   miiphy: Fix some ...
34
  int miiphy_info(const char *devname, unsigned char addr, unsigned int *oui,
298035df4   Larry Johnson   NET: Cosmetic cha...
35
  		 unsigned char *model, unsigned char *rev);
16a532383   Andy Fleming   miiphy: Fix some ...
36
37
38
39
  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...
40
  #ifdef CONFIG_SYS_FAULT_ECHO_LINK_DOWN
16a532383   Andy Fleming   miiphy: Fix some ...
41
  int miiphy_link(const char *devname, unsigned char addr);
fc3e2165e   wdenk   * Patch by Sangmo...
42
  #endif
214ec6bbd   wdenk   Initial revision
43

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

16a532383   Andy Fleming   miiphy: Fix some ...
46
47
  void miiphy_register(const char *devname,
  		      int (*read)(const char *devname, unsigned char addr,
f915c9316   Wolfgang Denk   Revert "mii: miip...
48
  				   unsigned char reg, unsigned short *value),
16a532383   Andy Fleming   miiphy: Fix some ...
49
  		      int (*write)(const char *devname, unsigned char addr,
f915c9316   Wolfgang Denk   Revert "mii: miip...
50
  				    unsigned char reg, unsigned short value));
63ff004c4   Marian Balakowicz   Add support for m...
51

16a532383   Andy Fleming   miiphy: Fix some ...
52
53
  int miiphy_set_current_dev(const char *devname);
  const char *miiphy_get_current_dev(void);
5f184715e   Andy Fleming   Create PHY Lib fo...
54
55
56
  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...
57

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

5f184715e   Andy Fleming   Create PHY Lib fo...
60
61
62
  struct mii_dev *mdio_alloc(void);
  int mdio_register(struct mii_dev *bus);
  void mdio_list_devices(void);
4ba31ab33   Luigi 'Comio' Mantellini   Rewrite the miiph...
63
64
65
66
67
  #ifdef CONFIG_BITBANGMII
  
  #define BB_MII_DEVNAME	"bb_miiphy"
  
  struct bb_miiphy_bus {
f6add132f   Mike Frysinger   net/miiphy/serial...
68
  	char name[16];
4ba31ab33   Luigi 'Comio' Mantellini   Rewrite the miiph...
69
70
71
72
73
74
75
76
77
78
79
80
81
82
  	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...
83

16a532383   Andy Fleming   miiphy: Fix some ...
84
85
  void bb_miiphy_init(void);
  int bb_miiphy_read(const char *devname, unsigned char addr,
298035df4   Larry Johnson   NET: Cosmetic cha...
86
  		    unsigned char reg, unsigned short *value);
16a532383   Andy Fleming   miiphy: Fix some ...
87
  int bb_miiphy_write(const char *devname, unsigned char addr,
298035df4   Larry Johnson   NET: Cosmetic cha...
88
  		     unsigned char reg, unsigned short value);
4ba31ab33   Luigi 'Comio' Mantellini   Rewrite the miiph...
89
  #endif
214ec6bbd   wdenk   Initial revision
90
91
  
  /* phy seed setup */
65bd0e284   wdenk   * Patch by Rune T...
92
  #define AUTO			99
298035df4   Larry Johnson   NET: Cosmetic cha...
93
  #define _1000BASET		1000
65bd0e284   wdenk   * Patch by Rune T...
94
95
96
97
  #define _100BASET		100
  #define _10BASET		10
  #define HALF			22
  #define FULL			44
214ec6bbd   wdenk   Initial revision
98
99
  
  /* phy register offsets */
8ef583a03   Mike Frysinger   miiphy: convert t...
100
101
102
  #define MII_MIPSCR		0x11
  
  /* MII_LPA */
298035df4   Larry Johnson   NET: Cosmetic cha...
103
104
  #define PHY_ANLPAR_PSB_802_3	0x0001
  #define PHY_ANLPAR_PSB_802_9	0x0002
8ef583a03   Mike Frysinger   miiphy: convert t...
105
  /* MII_CTRL1000 masks */
71bc6e647   Larry Johnson   NET: Add Ethernet...
106
107
  #define PHY_1000BTCR_1000FD	0x0200
  #define PHY_1000BTCR_1000HD	0x0100
8ef583a03   Mike Frysinger   miiphy: convert t...
108
  /* MII_STAT1000 masks */
298035df4   Larry Johnson   NET: Cosmetic cha...
109
110
111
112
113
114
  #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...
115

71bc6e647   Larry Johnson   NET: Add Ethernet...
116
  /* phy EXSR */
8ef583a03   Mike Frysinger   miiphy: convert t...
117
118
  #define ESTATUS_1000XF		0x8000
  #define ESTATUS_1000XH		0x4000
71bc6e647   Larry Johnson   NET: Add Ethernet...
119

214ec6bbd   wdenk   Initial revision
120
  #endif