0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #ifndef __IBM_NEWEMAC_RGMII_H
0023 #define __IBM_NEWEMAC_RGMII_H
0024
0025
0026 #define RGMII_STANDARD 0
0027 #define RGMII_AXON 1
0028
0029
0030 struct rgmii_regs {
0031 u32 fer;
0032 u32 ssr;
0033 };
0034
0035
0036 struct rgmii_instance {
0037 struct rgmii_regs __iomem *base;
0038
0039
0040 int flags;
0041 #define EMAC_RGMII_FLAG_HAS_MDIO 0x00000001
0042
0043
0044 struct mutex lock;
0045
0046
0047 int users;
0048
0049
0050 struct platform_device *ofdev;
0051 };
0052
0053 #ifdef CONFIG_IBM_EMAC_RGMII
0054
0055 int rgmii_init(void);
0056 void rgmii_exit(void);
0057 int rgmii_attach(struct platform_device *ofdev, int input, int mode);
0058 void rgmii_detach(struct platform_device *ofdev, int input);
0059 void rgmii_get_mdio(struct platform_device *ofdev, int input);
0060 void rgmii_put_mdio(struct platform_device *ofdev, int input);
0061 void rgmii_set_speed(struct platform_device *ofdev, int input, int speed);
0062 int rgmii_get_regs_len(struct platform_device *ofdev);
0063 void *rgmii_dump_regs(struct platform_device *ofdev, void *buf);
0064
0065 #else
0066
0067 # define rgmii_init() 0
0068 # define rgmii_exit() do { } while(0)
0069 # define rgmii_attach(x,y,z) (-ENXIO)
0070 # define rgmii_detach(x,y) do { } while(0)
0071 # define rgmii_get_mdio(o,i) do { } while (0)
0072 # define rgmii_put_mdio(o,i) do { } while (0)
0073 # define rgmii_set_speed(x,y,z) do { } while(0)
0074 # define rgmii_get_regs_len(x) 0
0075 # define rgmii_dump_regs(x,buf) (buf)
0076 #endif
0077
0078 #endif