Lines Matching refs:mode
47 static inline int zmii_valid_mode(int mode)
49 return mode == PHY_INTERFACE_MODE_MII ||
50 mode == PHY_INTERFACE_MODE_RMII ||
51 mode == PHY_INTERFACE_MODE_SMII ||
52 mode == PHY_INTERFACE_MODE_NA;
55 static inline const char *zmii_mode_name(int mode)
57 switch (mode) {
69 static inline u32 zmii_mode_mask(int mode, int input)
71 switch (mode) {
84 phy_interface_t *mode)
89 ZMII_DBG(dev, "init(%d, %d)" NL, input, *mode);
91 if (!zmii_valid_mode(*mode)) {
102 /* Autodetect ZMII mode if not specified.
104 * Please, always specify PHY mode in your board port to avoid
107 if (dev->mode == PHY_INTERFACE_MODE_NA) {
108 if (*mode == PHY_INTERFACE_MODE_NA) {
111 ZMII_DBG(dev, "autodetecting mode, FER = 0x%08x" NL, r);
114 dev->mode = PHY_INTERFACE_MODE_MII;
116 dev->mode = PHY_INTERFACE_MODE_RMII;
118 dev->mode = PHY_INTERFACE_MODE_SMII;
120 dev->mode = *mode;
122 printk(KERN_NOTICE "%pOF: bridge in %s mode\n",
124 zmii_mode_name(dev->mode));
126 /* All inputs must use the same mode */
127 if (*mode != PHY_INTERFACE_MODE_NA && *mode != dev->mode) {
129 "%pOF: invalid mode %d specified for input %d\n",
130 ofdev->dev.of_node, *mode, input);
136 /* Report back correct PHY mode,
139 *mode = dev->mode;
142 out_be32(&p->fer, in_be32(&p->fer) | zmii_mode_mask(dev->mode, input));
205 in_be32(&dev->base->fer) & ~zmii_mode_mask(dev->mode, input));
248 dev->mode = PHY_INTERFACE_MODE_NA;