[PATCH 1/5] Warp Base Platform
Josh Boyer
jwboyer at linux.vnet.ibm.com
Sat Jan 12 04:51:43 EST 2008
On Fri, 11 Jan 2008 02:10:45 -0500
Sean MacLennan <smaclennan at pikatech.com> wrote:
>
> Signed-off-by: Sean MacLennan <smaclennan at pikatech.com>
> ---
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 66a3d8c..b3e4c35 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -469,7 +469,7 @@ config MCA
> config PCI
> bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
> || PPC_MPC52xx || (EMBEDDED && (PPC_PSERIES || PPC_ISERIES)) \
> - || PPC_PS3
> + || PPC_PS3 || 44x
> default y if !40x && !CPM2 && !8xx && !PPC_83xx \
> && !PPC_85xx && !PPC_86xx
> default PCI_PERMEDIA if !4xx && !CPM2 && !8xx
> diff --git a/arch/powerpc/platforms/44x/Kconfig b/arch/powerpc/platforms/44x/Kconfig
> index d248013..a95409e 100644
> --- a/arch/powerpc/platforms/44x/Kconfig
> +++ b/arch/powerpc/platforms/44x/Kconfig
> @@ -53,6 +53,19 @@ config RAINIER
> help
> This option enables support for the AMCC PPC440GRX evaluation board.
>
> +config WARP
> + bool "PIKA Warp"
> + depends on 44x
> + default n
> + select 440EP
> + help
> + This option enables support for the PIKA Warp(tm) Appliance. The Warp
> + is a small computer replacement with up to 9 ports of FXO/FXS plus VOIP
> + stations and trunks.
> +
> + See http://www.pikatechnologies.com/ and follow the "PIKA for Computer
> + Telephony Developers" link for more information.
> +
> #config LUAN
> # bool "Luan"
> # depends on 44x
> @@ -75,6 +88,7 @@ config 440EP
> select PPC_FPU
> select IBM440EP_ERR42
> select IBM_NEW_EMAC_ZMII
> + select USB_ARCH_HAS_OHCI
>
> config 440EPX
> bool
> diff --git a/arch/powerpc/platforms/44x/Makefile b/arch/powerpc/platforms/44x/Makefile
> index a2a0dc1..c1733c0 100644
> --- a/arch/powerpc/platforms/44x/Makefile
> +++ b/arch/powerpc/platforms/44x/Makefile
> @@ -5,3 +5,4 @@ obj-$(CONFIG_BAMBOO) += bamboo.o
> obj-$(CONFIG_SEQUOIA) += sequoia.o
> obj-$(CONFIG_KATMAI) += katmai.o
> obj-$(CONFIG_RAINIER) += rainier.o
> +obj-$(CONFIG_WARP) += warp.o
> --- /dev/null 2005-11-20 22:22:37.000000000 -0500
> +++ arch/powerpc/platforms/44x/warp.c 2008-01-11 02:08:20.000000000 -0500
> @@ -0,0 +1,244 @@
> +/*
> + * PIKA Warp(tm) board specific routines
> + *
> + * Copyright (c) 2008 PIKA Technologies
> + * Sean MacLennan <smaclennan at pikatech.com>
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation; either version 2 of the License, or (at your
> + * option) any later version.
> + */
> +#include <linux/init.h>
> +#include <linux/of_platform.h>
> +#include <linux/kthread.h>
> +
> +#include <asm/machdep.h>
> +#include <asm/prom.h>
> +#include <asm/udbg.h>
> +#include <asm/time.h>
> +#include <asm/uic.h>
> +
> +#include "44x.h"
> +
> +#define WARP_GPIO_BASE 0xEF600B00ULL
This should be in the device tree...
> +
> +/* This is for the power LEDs 1 = on, 0 = off, -1 = leave alone */
> +void warp_set_power_leds(int green, int red)
> +{
> + static void *gpio_base = NULL;
> + unsigned leds;
> +
> + if (gpio_base == NULL) {
> + gpio_base = ioremap(WARP_GPIO_BASE, 0x148);
... and you should get the resource for it from there instead of using
the #define.
> + if (gpio_base == NULL) {
> + printk("ERROR: Unable to remap GPIO base.\n");
> + return;
> + }
> + }
> +
> + leds = readl(gpio_base + 0x100);
Do you really want readl here? That will byte-swap.
> +
> + switch(green) {
> + case 0: leds &= ~0x80; break;
> + case 1: leds |= 0x80; break;
> + }
> + switch(red) {
> + case 0: leds &= ~0x40; break;
> + case 1: leds |= 0x40; break;
> + }
> +
> + writel(leds, gpio_base + 0x100);
Same here.
> +}
> +EXPORT_SYMBOL(warp_set_power_leds);
Hm... does this really need to be exported?
> +// SAM not yet #define NAND_FLASH
> +#ifdef NAND_FLASH
> +/* --- All of this code is for the NAND flash */
Perhaps you could split this out into warp-nand.c instead of ifdefing
it here. That way it can be left uncompiled until we figure out the
NAND situation in general.
josh
More information about the Linuxppc-dev
mailing list