[#6270] Problem with portmuxgroup_check()
Submitted By: Jay Ku
Open Date
2010-09-21 03:33:05
Priority:
Medium Assignee:
steven miao
Status:
Open Fixed In Release:
N/A
Found In Release:
2010R1 Release:
9821M
Category:
N/A Board:
Custom
Processor:
BF537 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
4927
App binary format:
N/A
Summary: Problem with portmuxgroup_check()
Details:
portmuxgroup_check() is reporting incorrect conflict when configuring the RMII interface on a BF537. See detail below. Interface configures and works fine if I skip portmuxgroup_check().
I'm having some trouble configuring the MAC on my BF537 board. I'm using SVN ver 9821. When I boot the kernel I get:
.
.
bfin-uart: Blackfin serial driver
bfin-uart.0: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART
brd: module loaded
pin grounp conflict! request pin 37 func 1 conflict with pin 32 func 0
bfin_mii_bus bfin_mii_bus.0: Requesting peripherals failed!
bfin_mii_bus: probe of bfin_mii_bus.0 failed with error -16
bfin_mac bfin_mac.0: Cannot get mii_bus!
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
TCP cubic registered
.
.
The kernel continues to boot and otherwise runs ok.
I've got pretty much everything disabled in my config. Here's an excerpt from my board config - basically copied this out of the pnav10.c config file, which apparently also uses RMII:
#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
#include <linux/bfin_mac.h>
static const unsigned short bfin_mac_peripherals[] = P_RMII0;
static struct bfin_phydev_platform_data bfin_phydev_data[] = {
{
.addr = 1,
.irq = IRQ_MAC_PHYINT,
// .irq = PHY_POLL, /* IRQ_MAC_PHYINT */
},
};
static struct bfin_mii_bus_platform_data bfin_mii_bus_data = {
.phydev_number = 1,
.phydev_data = bfin_phydev_data,
.phy_mode = PHY_INTERFACE_MODE_RMII,
.mac_peripherals = bfin_mac_peripherals,
};
static struct platform_device bfin_mii_bus = {
.name = "bfin_mii_bus",
.dev = {
.platform_data = &bfin_mii_bus_data,
}
};
static struct platform_device bfin_mac_device = {
.name = "bfin_mac",
.dev = {
.platform_data = &bfin_mii_bus,
}
};
#endif
Follow-ups
--- steven miao 2010-09-25 22:08:46
bypass the mux group check for those pins has only one function
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found