[PATCH 10/11] bcm47xx: add support for bcma bus
Hauke Mehrtens
hauke at hauke-m.de
Wed Jul 13 16:05:54 EDT 2011
Hi Jonas,
Thank you for the review.
On 07/13/2011 09:52 PM, Jonas Gorski wrote:
> On 9 July 2011 13:06, Hauke Mehrtens <hauke at hauke-m.de> wrote:
>> This patch add support for the bcma bus. Broadcom uses only Mips 74K
>> CPUs on the new SoC and on the old ons using ssb bus there are no Mips
>> 74K CPUs.
>>
>> Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
>> ---
>> arch/mips/bcm47xx/Kconfig | 13 ++++++
>> arch/mips/bcm47xx/gpio.c | 22 +++++++++++
>> arch/mips/bcm47xx/nvram.c | 10 +++++
>> arch/mips/bcm47xx/serial.c | 29 ++++++++++++++
>> arch/mips/bcm47xx/setup.c | 53 +++++++++++++++++++++++++-
>> arch/mips/bcm47xx/time.c | 5 ++
>> arch/mips/include/asm/mach-bcm47xx/bcm47xx.h | 8 ++++
>> arch/mips/include/asm/mach-bcm47xx/gpio.h | 41 ++++++++++++++++++++
>> drivers/watchdog/bcm47xx_wdt.c | 11 +++++
>> 9 files changed, 190 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/mips/bcm47xx/Kconfig b/arch/mips/bcm47xx/Kconfig
>> index 0346f92..6210b8d 100644
>> --- a/arch/mips/bcm47xx/Kconfig
>> +++ b/arch/mips/bcm47xx/Kconfig
>> @@ -15,4 +15,17 @@ config BCM47XX_SSB
>>
>> This will generate an image with support for SSB and MIPS32 R1 instruction set.
>>
>> +config BCM47XX_BCMA
>> + bool "BCMA Support for Broadcom BCM47XX"
>> + select SYS_HAS_CPU_MIPS32_R2
>> + select BCMA
>> + select BCMA_HOST_SOC
>> + select BCMA_DRIVER_MIPS
>> + select BCMA_DRIVER_PCI_HOSTMODE if PCI
>> + default y
>> + help
>> + Add support for new Broadcom BCM47xx boards with Broadcom specific Advanced Microcontroller Bus.
>> +
>> + This will generate an image with support for BCMA and MIPS32 R2 instruction set.
>> +
>
> BCM47XX_SSB and BCM47XX_BCMA should either exclude each other, or
> SYS_HAS_CPU_MIPS32_R2 should only be selected when BCM47XX_SSB isn't
> selected.
> I would expect an image built when having both selected to also
> support both systems, but selecting MIPS32_R2 as the CPU this will
> make it actually not work on SSB systems.
It should be possible to build a kernel capable of running with both
versions. I would change "select SYS_HAS_CPU_MIPS32_R2" to "select
SYS_HAS_CPU_MIPS32_R2 if !BCM47XX_SSB" that should make the image mips
r1 compatible if it was build for older cpus.
>
>> diff --git a/arch/mips/bcm47xx/gpio.c b/arch/mips/bcm47xx/gpio.c
>> index 3320e91..9d5bafe 100644
>> --- a/arch/mips/bcm47xx/gpio.c
>> +++ b/arch/mips/bcm47xx/gpio.c
>> @@ -36,6 +36,16 @@ int gpio_request(unsigned gpio, const char *tag)
>>
>> return 0;
>> #endif
>> +#ifdef CONFIG_BCM47XX_BCMA
>> + case BCM47XX_BUS_TYPE_BCMA:
>> + if ((unsigned)gpio >= BCM47XX_CHIPCO_GPIO_LINES)
>
> gpio is already unsigned, you shouldn't need to cast it.
Will do that.
>
>> + return -EINVAL;
>> +
>> + if (test_and_set_bit(gpio, gpio_in_use))
>> + return -EBUSY;
>> +
>> + return 0;
>> +#endif
>> }
>> return -EINVAL;
>> }
>> @@ -57,6 +67,14 @@ void gpio_free(unsigned gpio)
>> clear_bit(gpio, gpio_in_use);
>> return;
>> #endif
>> +#ifdef CONFIG_BCM47XX_BCMA
>> + case BCM47XX_BUS_TYPE_BCMA:
>> + if ((unsigned)gpio >= BCM47XX_CHIPCO_GPIO_LINES)
>
> Ditto.
More information about the b43-dev
mailing list