Blame view

include/fsl_mdio.h 1.94 KB
063c12633   Andy Fleming   tsec: Convert tse...
1
  /*
5be00a016   Claudiu Manoil   net: fsl_mdio: Fi...
2
   * Copyright 2009-2012, 2013 Freescale Semiconductor, Inc.
063c12633   Andy Fleming   tsec: Convert tse...
3
4
5
   *	Jun-jie Zhang <b18070@freescale.com>
   *	Mingkai Hu <Mingkai.hu@freescale.com>
   *
1a4596601   Wolfgang Denk   Add GPL-2.0+ SPDX...
6
   * SPDX-License-Identifier:	GPL-2.0+
063c12633   Andy Fleming   tsec: Convert tse...
7
   */
9872b736f   Bin Meng   net: tsec: fsl_md...
8

063c12633   Andy Fleming   tsec: Convert tse...
9
10
11
12
13
  #ifndef __FSL_PHY_H__
  #define __FSL_PHY_H__
  
  #include <net.h>
  #include <miiphy.h>
93f26f130   Claudiu Manoil   net: Merge asm/fs...
14
15
16
17
18
19
20
21
22
23
24
25
  
  struct tsec_mii_mng {
  	u32 miimcfg;		/* MII management configuration reg */
  	u32 miimcom;		/* MII management command reg */
  	u32 miimadd;		/* MII management address reg */
  	u32 miimcon;		/* MII management control reg */
  	u32 miimstat;		/* MII management status reg  */
  	u32 miimind;		/* MII management indication reg */
  	u32 ifstat;		/* Interface Status Register */
  };
  
  int fdt_fixup_phy_connection(void *blob, int offset, phy_interface_t phyc);
063c12633   Andy Fleming   tsec: Convert tse...
26
27
28
29
30
  
  /* PHY register offsets */
  #define PHY_EXT_PAGE_ACCESS	0x1f
  
  /* MII Management Configuration Register */
9872b736f   Bin Meng   net: tsec: fsl_md...
31
32
33
  #define MIIMCFG_RESET_MGMT		0x80000000
  #define MIIMCFG_MGMT_CLOCK_SELECT	0x00000007
  #define MIIMCFG_INIT_VALUE		0x00000003
063c12633   Andy Fleming   tsec: Convert tse...
34
35
36
37
38
39
40
41
42
43
44
  
  /* MII Management Command Register */
  #define MIIMCOM_READ_CYCLE	0x00000001
  #define MIIMCOM_SCAN_CYCLE	0x00000002
  
  /* MII Management Address Register */
  #define MIIMADD_PHY_ADDR_SHIFT	8
  
  /* MII Management Indicator Register */
  #define MIIMIND_BUSY		0x00000001
  #define MIIMIND_NOTVALID	0x00000004
5be00a016   Claudiu Manoil   net: fsl_mdio: Fi...
45
  void tsec_local_mdio_write(struct tsec_mii_mng __iomem *phyregs, int port_addr,
063c12633   Andy Fleming   tsec: Convert tse...
46
  		int dev_addr, int reg, int value);
5be00a016   Claudiu Manoil   net: fsl_mdio: Fi...
47
  int tsec_local_mdio_read(struct tsec_mii_mng __iomem *phyregs, int port_addr,
063c12633   Andy Fleming   tsec: Convert tse...
48
49
50
51
  		int dev_addr, int regnum);
  int tsec_phy_read(struct mii_dev *bus, int addr, int dev_addr, int regnum);
  int tsec_phy_write(struct mii_dev *bus, int addr, int dev_addr, int regnum,
  		u16 value);
111fd19e3   Roy Zang   fm/mEMAC: add mEM...
52
53
54
55
  int memac_mdio_write(struct mii_dev *bus, int port_addr, int dev_addr,
  		int regnum, u16 value);
  int memac_mdio_read(struct mii_dev *bus, int port_addr, int dev_addr,
  		int regnum);
063c12633   Andy Fleming   tsec: Convert tse...
56
57
  
  struct fsl_pq_mdio_info {
5be00a016   Claudiu Manoil   net: fsl_mdio: Fi...
58
  	struct tsec_mii_mng __iomem *regs;
063c12633   Andy Fleming   tsec: Convert tse...
59
60
61
62
63
  	char *name;
  };
  int fsl_pq_mdio_init(bd_t *bis, struct fsl_pq_mdio_info *info);
  
  #endif /* __FSL_PHY_H__ */