* Re: [PATCH/RFC] [POWERPC] CPM1: implement GPIO LIB API
From: Scott Wood @ 2008-01-17 18:48 UTC (permalink / raw)
To: Jochen Friedrich; +Cc: linuxppc-dev, Arnd Bergmann, David Gibson
In-Reply-To: <478F6972.9080308@scram.de>
On Thu, Jan 17, 2008 at 03:42:58PM +0100, Jochen Friedrich wrote:
> Hi Grant,
>
> >> arch/powerpc/platforms/8xx/Kconfig | 2 +
> >> arch/powerpc/sysdev/commproc.c | 162 +++++++++++++++++++++++++++++++++++-
> >
> > Is this 8xx only? Can it live in arch/powerpc/platforms/8xx?
>
> According to the freescale docs, the GPIO ports are part of the CPM1. So I've put the
> support into commproc.c (which maybe should be renamed to cpm1_common.c to match cpm2_common.c).
>
> AFAIK, CPM1 is specific to 8xx.
If we're going to rename, I'd change commproc.c to cpm1.c, and cpm2_common.c
to cpm2.c.
-Scott
^ permalink raw reply
* Re: Endian problem when accessing internel regs on 8347
From: Bruce_Leonard @ 2008-01-17 18:38 UTC (permalink / raw)
To: Scott Wood; +Cc: linuxppc-embedded
In-Reply-To: <478F92EB.2000500@freescale.com>
> > __asm__ __volatile__("lwz%U1%X1 %0,%1; twi 0,%0,0; isync" : "=r" (ret)
:
> > "m" (*addr));
>
> They allow the compiler to use update and/or index mode for the memory
> operand.
Well that makes sense, U for update and X for index, but I'm not sure
they're applicable to this particular instruction and I'm not sure that
the memory operand makes sense for PowerPC. However, before I post
anything that makes me look like I've got hoof-n-mouth disease I'm going
to do some more digging. Is the GCC manual the only "official"
documentation on this (I've found a couple of web sites but none of them
gun.org) or is there another manual I should be looking for?
Thanks for the pointers.
Bruce
^ permalink raw reply
* Re: [PATCH v5] [POWERPC] Add LED driver for Promess Motion-PRO board.
From: Grant Likely @ 2008-01-17 18:26 UTC (permalink / raw)
To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <20080117180805.18035.60818.stgit@hekate.izotz.org>
On 1/17/08, Marian Balakowicz <m8@semihalf.com> wrote:
> Add support for two Motion-PRO board custom LEDs:
> - motionpro-statusled
> - motionpro-readyled
>
> Signed-off-by: Jan Wrobel <wrr@semihalf.com>
> Signed-off-by: Marian Balakowicz <m8@semihalf.com>
I'm still not quite sure what to do with this one... give me a couple
of days to think about it and re-review it.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: Endian problem when accessing internel regs on 8347
From: Ben Warren @ 2008-01-17 18:25 UTC (permalink / raw)
To: Bruce_Leonard; +Cc: linuxppc-embedded
In-Reply-To: <OF5F228537.B04EB840-ON882573D3.00628576-882573D3.0062FB1E@selinc.com>
Bruce_Leonard@selinc.com wrote:
> Ben Warren <biggerbadderben@gmail.com> wrote on 01/17/2008 07:01:10 AM:
>
>
>> I've attached a poorly-written-yet-functional GPIO driver that I wrote a
>>
>
>
>> while ago for the MPC8349 (same as what you have for all intents and
>> purposes). It uses in_be32() and out_be32().
>>
>>
> Ben,
>
> Thanks for the answer. Hummmm, at first glance it looks like you're doing
> the same thing I am. Only difference I can see is you use get_immrbase()
> to figure out the address to ask for and I've got it hardcoded. Other
> than that we're both using request_mem_region() in in/out_be32(). Yet
> your's works for you and mine doesn't. Well, I'll take a closer look
> tonight and see if there's something you're doing that I missed.
> Unfortunately, I've gotten a higher level interrupt this morning and it
> may ba a day or so before I get back to this and can give you any
> feedback. Thanks again.
>
> See 'ya!
>
> Bruce
>
>
Something else to consider is that I've never tried this beyond 2.6.19.
Maybe things have changed since then.
Anyway, glad to help if I can.
cheers,
Ben
^ permalink raw reply
* Re: [PATCH] [POWERPC] Update TQM5200, CM5200 and Motion-PRO _defconfig and .dts files
From: Grant Likely @ 2008-01-17 18:23 UTC (permalink / raw)
To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <478F984F.2030106@semihalf.com>
On 1/17/08, Marian Balakowicz <m8@semihalf.com> wrote:
> Grant Likely wrote:
> > On 1/17/08, Marian Balakowicz <m8@semihalf.com> wrote:
> >> Updates include:
> >> - set soc node compatible property to "fsl,mpc5200-immr"
> >
> > On these three boards; which have the original mpc5200 and which have
> > the mpc5200b?
>
> cm5200 and motionpro have mpc5200b, some versions of tqm5200 have
> mpc5200, some have mpc5200b.
>
> > I'm not going to pick up this patch immediately, I've got an invasive
> > set of mpc5200 device tree cleanups which need to go in first. After
> > that I'll revisit your changes here.
>
> Understood, thanks.
>
> >> - update i2c device tree nodes
> >> - add mdio node
> >> - add lpb bus node and flash device (without partitions defined)
> >> - add second mscan node for Motio-PRO
> >> - add rtc i2c nodes and enable RTC in _defconfigs
> >> - use SLUB insteand of SLAB
> >> - enable printk timestamp
> >
> > Can you split the defconfig changes into a separate patch... That
> > being said, how do you feel about merging all the 5200 defconfigs into
> > a single defconfig? They are all multiplatform after all and it would
> > make maintenance easier.
>
> Ok, I'll split it into two patches.
>
> But merging defconfigs won't be a good option, boards differ in which
> devices they use, some have PCI, some have USB, etc. Having one
> defconfig, it would be necessary to manually customize kernel
> configuration and remember which options are to be set/disabled.
That doesn't matter for defconfigs. That needs to be done when you're
tailoring a product regardless. defconfigs are simply a known good
configuration; they are not intended to be the deployed config. If
the defconfig enables all features used by any of the boards then it
should be okay.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: crash in kmem_cache_init
From: Olaf Hering @ 2008-01-17 18:12 UTC (permalink / raw)
To: Christoph Lameter; +Cc: linuxppc-dev, Pekka Enberg, linux-kernel, Linux MM
In-Reply-To: <Pine.LNX.4.64.0801170628580.19208@schroedinger.engr.sgi.com>
On Thu, Jan 17, Christoph Lameter wrote:
> On Thu, 17 Jan 2008, Pekka Enberg wrote:
>
> > Looks similar to the one discussed on linux-mm ("[BUG] at
> > mm/slab.c:3320" thread). Christoph?
>
> Right. Try the latest version of the patch to fix it:
The patch does not help.
> Index: linux-2.6/mm/slab.c
> ===================================================================
> --- linux-2.6.orig/mm/slab.c 2008-01-03 12:26:42.000000000 -0800
> +++ linux-2.6/mm/slab.c 2008-01-09 15:59:49.000000000 -0800
> @@ -2977,7 +2977,10 @@ retry:
> }
> l3 = cachep->nodelists[node];
>
> - BUG_ON(ac->avail > 0 || !l3);
> + if (!l3)
> + return NULL;
> +
> + BUG_ON(ac->avail > 0);
> spin_lock(&l3->list_lock);
>
> /* See if we can refill from the shared array */
Is this hunk supposed to go into cache_grow()? There is no NULL check
for l3.
But if I do that, it does not help:
freeing bootmem node 1
Memory: 3496632k/3571712k available (6188k kernel code, 75080k reserved, 1324k data, 1220k bss, 304k init)
cache_grow(2781) swapper(0):c0,j4294937299 cp c0000000006a4fb8 !l3
Kernel panic - not syncing: kmem_cache_create(): failed to create slab `size-32'
Rebooting in 1 seconds..
^ permalink raw reply
* [PATCH v5] [POWERPC] Add LED driver for Promess Motion-PRO board.
From: Marian Balakowicz @ 2008-01-17 18:09 UTC (permalink / raw)
To: linuxppc-dev
Add support for two Motion-PRO board custom LEDs:
- motionpro-statusled
- motionpro-readyled
Signed-off-by: Jan Wrobel <wrr@semihalf.com>
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---
Call to removed mpc52xx_map_node() was replaced with the of_iomap() call.
drivers/leds/Kconfig | 7 +
drivers/leds/Makefile | 3
drivers/leds/leds-motionpro.c | 250 +++++++++++++++++++++++++++++++++++++++++
include/asm-powerpc/mpc52xx.h | 5 +
4 files changed, 264 insertions(+), 1 deletions(-)
create mode 100644 drivers/leds/leds-motionpro.c
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index ec568fa..1567ed6 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -55,6 +55,13 @@ config LEDS_TOSA
This option enables support for the LEDs on Sharp Zaurus
SL-6000 series.
+config LEDS_MOTIONPRO
+ tristate "Motion-PRO LEDs Support"
+ depends on LEDS_CLASS && PPC_MPC5200
+ help
+ This option enables support for status and ready LEDs connected
+ to GPIO lines on Motion-PRO board.
+
config LEDS_S3C24XX
tristate "LED Support for Samsung S3C24XX GPIO LEDs"
depends on LEDS_CLASS && ARCH_S3C2410
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
index a60de1b..a56d399 100644
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -18,7 +18,8 @@ obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o
obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
-obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o
+obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o
+obj-$(CONFIG_LEDS_MOTIONPRO) += leds-motionpro.o
# LED Triggers
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
diff --git a/drivers/leds/leds-motionpro.c b/drivers/leds/leds-motionpro.c
new file mode 100644
index 0000000..1374dd2
--- /dev/null
+++ b/drivers/leds/leds-motionpro.c
@@ -0,0 +1,250 @@
+/*
+ * LEDs driver for the Motion-PRO board.
+ *
+ * Copyright (C) 2007 Semihalf
+ * Jan Wrobel <wrr@semihalf.com>
+ * Marian Balakowicz <m8@semihalf.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ *
+ * Decription:
+ * This driver enables control over Motion-PRO status and ready LEDs through
+ * sysfs. LEDs can be controlled by writing to sysfs files:
+ * class/leds/<led-name>/(brightness|delay_off|delay_on).
+ * See Documentation/leds-class.txt for more details.
+ * <led-name> is the set to the value of 'label' property of the
+ * corresponding GPT node.
+ *
+ * Before user issues first control command via sysfs, LED blinking is
+ * controlled by the kernel ('blink-delay' property of the GPT node
+ * in the device tree blob).
+ *
+ */
+
+#define DEBUG
+
+#include <linux/module.h>
+#include <linux/leds.h>
+#include <linux/of_platform.h>
+#include <asm/mpc52xx.h>
+
+/* LED control bits */
+#define LED_ON MPC52xx_GPT_OUTPUT_1
+
+/* LED mode */
+#define LED_MODE_KERNEL 1
+#define LED_MODE_USER 2
+
+struct motionpro_led {
+ spinlock_t led_lock; /* Protects the LED data */
+ struct mpc52xx_gpt __iomem *gpt;/* LED registers */
+ struct timer_list blink_timer; /* Used if blink_delay is nonzero */
+ unsigned int blink_delay; /* [ms], if set to 0 blinking is off */
+ unsigned int mode; /* kernel/user */
+ struct led_classdev mpled_cdev; /* LED class */
+};
+
+/*
+ * Timer event - blinks LED before user takes control over it
+ * with the first access via sysfs.
+ */
+static void mpled_timer_toggle(unsigned long data)
+{
+ struct motionpro_led *mpled = (struct motionpro_led *)data;
+
+ spin_lock_bh(&mpled->led_lock);
+ if (mpled->mode == LED_MODE_KERNEL) {
+ u32 val = in_be32(&mpled->gpt->mode);
+ val ^= LED_ON;
+ out_be32(&mpled->gpt->mode, val);
+
+ mod_timer(&mpled->blink_timer,
+ jiffies + msecs_to_jiffies(mpled->blink_delay));
+ }
+ spin_unlock_bh(&mpled->led_lock);
+}
+
+/*
+ * Turn on/off led according to user settings in sysfs.
+ * First call to this function disables kernel blinking.
+ */
+static void mpled_set(struct led_classdev *led_cdev,
+ enum led_brightness brightness)
+{
+ struct motionpro_led *mpled;
+ int old_mode;
+ u32 val;
+
+ mpled = container_of(led_cdev, struct motionpro_led, mpled_cdev);
+
+ spin_lock_bh(&mpled->led_lock);
+ /* disable kernel controll */
+ old_mode = mpled->mode;
+ if (old_mode == LED_MODE_KERNEL)
+ mpled->mode = LED_MODE_USER;
+
+ val = in_be32(&mpled->gpt->mode);
+ if (brightness)
+ val |= LED_ON;
+ else
+ val &= ~LED_ON;
+ out_be32(&mpled->gpt->mode, val);
+ spin_unlock_bh(&mpled->led_lock);
+
+ /* delete kernel mode blink timer, not needed anymore */
+ if ((old_mode == LED_MODE_KERNEL) && mpled->blink_delay)
+ del_timer(&mpled->blink_timer);
+}
+
+static void mpled_init_led(void __iomem *gpt_mode)
+{
+ u32 val = in_be32(gpt_mode);
+ val |= MPC52xx_GPT_ENABLE_OUTPUT;
+ val &= ~LED_ON;
+ out_be32(gpt_mode, val);
+}
+
+static int __devinit mpled_probe(struct of_device *op,
+ const struct of_device_id *match)
+{
+ struct motionpro_led *mpled;
+ const unsigned int *of_blink_delay;
+ const char *label;
+ int err;
+
+ dev_dbg(&op->dev, "mpled_probe: node=%s (op=%p, match=%p)\n",
+ op->node->name, op, match);
+
+ mpled = kzalloc(sizeof(*mpled), GFP_KERNEL);
+ if (!mpled)
+ return -ENOMEM;
+
+ mpled->gpt = of_iomap(op->node, 0);
+ if (!mpled->gpt) {
+ printk(KERN_ERR __FILE__ ": "
+ "Error mapping GPT registers for LED %s\n",
+ op->node->full_name);
+ err = -EIO;
+ goto err_free;
+ }
+
+ /* initialize GPT for LED use */
+ mpled_init_led(&mpled->gpt->mode);
+
+ spin_lock_init(&mpled->led_lock);
+ mpled->mode = LED_MODE_KERNEL;
+
+ /* get LED label, used to register led classdev */
+ label = of_get_property(op->node, "label", NULL);
+ if (label == NULL) {
+ printk(KERN_ERR __FILE__ ": "
+ "No label property provided for LED %s\n",
+ op->node->full_name);
+ err = -EINVAL;
+ goto err_free;
+ }
+ dev_dbg(&op->dev, "mpled_probe: label = '%s'\n", label);
+
+ /* get 'blink-delay' property if present */
+ of_blink_delay = of_get_property(op->node, "blink-delay", NULL);
+ mpled->blink_delay = of_blink_delay ? *of_blink_delay : 0;
+ dev_dbg(&op->dev, "mpled_probe: blink_delay = %d msec\n",
+ mpled->blink_delay);
+
+ /* initialize kernel blink_timer if blink_delay was provided */
+ if (mpled->blink_delay) {
+ init_timer(&mpled->blink_timer);
+ mpled->blink_timer.function = mpled_timer_toggle;
+ mpled->blink_timer.data = (unsigned long)mpled;
+
+ mod_timer(&mpled->blink_timer,
+ jiffies + msecs_to_jiffies(mpled->blink_delay));
+ }
+
+ /* register LED classdev */
+ mpled->mpled_cdev.name = label;
+ mpled->mpled_cdev.brightness_set = mpled_set;
+ mpled->mpled_cdev.default_trigger = "timer";
+
+ err = led_classdev_register(NULL, &mpled->mpled_cdev);
+ if (err) {
+ printk(KERN_ERR __FILE__ ": "
+ "Error registering class device for LED %s\n",
+ op->node->full_name);
+ goto err;
+ }
+
+ dev_set_drvdata(&op->dev, mpled);
+ return 0;
+
+err:
+ if (mpled->blink_delay)
+ del_timer(&mpled->blink_timer);
+ iounmap(mpled->gpt);
+err_free:
+ kfree(mpled);
+
+ return err;
+}
+
+static int mpled_remove(struct of_device *op)
+{
+ struct motionpro_led *mpled = dev_get_drvdata(&op->dev);
+
+ dev_dbg(&op->dev, "mpled_remove: (%p)\n", op);
+
+ if (mpled->blink_delay && (mpled->mode == LED_MODE_KERNEL))
+ del_timer(&mpled->blink_timer);
+
+ led_classdev_unregister(&mpled->mpled_cdev);
+
+ iounmap(mpled->gpt);
+ kfree(mpled);
+
+ return 0;
+}
+
+static struct of_device_id mpled_match[] = {
+ { .compatible = "promess,motionpro-led", },
+ {},
+};
+
+static struct of_platform_driver mpled_driver = {
+ .match_table = mpled_match,
+ .probe = mpled_probe,
+ .remove = mpled_remove,
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "leds-motionpro",
+ },
+};
+
+static int __init mpled_init(void)
+{
+ return of_register_platform_driver(&mpled_driver);
+}
+
+static void __exit mpled_exit(void)
+{
+ of_unregister_platform_driver(&mpled_driver);
+}
+
+module_init(mpled_init);
+module_exit(mpled_exit);
+
+MODULE_LICENSE("GPL")
+MODULE_DESCRIPTION("Motion-PRO LED driver");
+MODULE_AUTHOR("Jan Wrobel <wrr@semihalf.com>");
+MODULE_AUTHOR("Marian Balakowicz <m8@semihalf.com>");
diff --git a/include/asm-powerpc/mpc52xx.h b/include/asm-powerpc/mpc52xx.h
index 1c48c6d..de869ee 100644
--- a/include/asm-powerpc/mpc52xx.h
+++ b/include/asm-powerpc/mpc52xx.h
@@ -147,6 +147,11 @@ struct mpc52xx_gpio {
#define MPC52xx_GPIO_PSC_CONFIG_UART_WITH_CD 5
#define MPC52xx_GPIO_PCI_DIS (1<<15)
+/* Enables GPT register to operate as simple GPIO output register */
+#define MPC52xx_GPT_ENABLE_OUTPUT 0x00000024
+/* Puts 1 on GPT output pin */
+#define MPC52xx_GPT_OUTPUT_1 0x00000010
+
/* GPIO with WakeUp*/
struct mpc52xx_gpio_wkup {
u8 wkup_gpioe; /* GPIO_WKUP + 0x00 */
^ permalink raw reply related
* [PATCH v2] [POWERPC] Update TQM5200, CM5200 and Motion-PRO _defconfig files
From: Marian Balakowicz @ 2008-01-17 18:07 UTC (permalink / raw)
To: linuxppc-dev
Updates include:
- enable RTC in _defconfigs
- use SLUB insteand of SLAB
- enable printk timestamp
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---
This patch was applied and tested against:
git://git.secretlab.ca/git/linux-2.6-mpc52xx.git#for-2.6.25
arch/powerpc/configs/cm5200_defconfig | 53 ++++------
arch/powerpc/configs/motionpro_defconfig | 161 ++++++++++++++----------------
arch/powerpc/configs/tqm5200_defconfig | 91 ++++++++---------
3 files changed, 137 insertions(+), 168 deletions(-)
diff --git a/arch/powerpc/configs/cm5200_defconfig b/arch/powerpc/configs/cm5200_defconfig
index a17d966..4fcedcd 100644
--- a/arch/powerpc/configs/cm5200_defconfig
+++ b/arch/powerpc/configs/cm5200_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23
-# Mon Oct 29 14:06:34 2007
+# Linux kernel version: 2.6.24-rc6
+# Tue Jan 15 16:03:14 2008
#
# CONFIG_PPC64 is not set
@@ -67,11 +67,14 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
+# CONFIG_FAIR_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
@@ -93,18 +96,14 @@ CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_KMOD is not set
+# CONFIG_MODULES is not set
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -246,7 +245,7 @@ CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
+CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
@@ -297,10 +296,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
# CONFIG_NET_SCHED is not set
#
@@ -457,7 +452,6 @@ CONFIG_CHR_DEV_SG=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
@@ -496,7 +490,6 @@ CONFIG_NETDEVICES=y
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_PPP is not set
@@ -543,7 +536,6 @@ CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_GEN_RTC is not set
@@ -569,7 +561,6 @@ CONFIG_I2C_MPC=y
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
#
@@ -598,6 +589,7 @@ CONFIG_I2C_MPC=y
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
#
# Sonics Silicon Backplane
@@ -621,7 +613,7 @@ CONFIG_SSB_POSSIBLE=y
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
@@ -683,6 +675,7 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
@@ -761,7 +754,6 @@ CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
@@ -936,16 +928,13 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
-
-#
-# Instrumentation Support
-#
-# CONFIG_PROFILING is not set
+# CONFIG_INSTRUMENTATION is not set
#
# Kernel hacking
#
-# CONFIG_PRINTK_TIME is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
@@ -957,7 +946,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_SLAB is not set
+# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
@@ -969,10 +958,11 @@ CONFIG_SCHED_DEBUG=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1002,9 +992,9 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
-CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCBC=y
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CRYPTD is not set
@@ -1025,7 +1015,6 @@ CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
CONFIG_CRYPTO_HW=y
CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/motionpro_defconfig b/arch/powerpc/configs/motionpro_defconfig
index fd7a327..510ac66 100644
--- a/arch/powerpc/configs/motionpro_defconfig
+++ b/arch/powerpc/configs/motionpro_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23
-# Mon Oct 29 14:11:27 2007
+# Linux kernel version: 2.6.24-rc6
+# Thu Jan 17 12:40:29 2008
#
# CONFIG_PPC64 is not set
@@ -67,11 +67,14 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
+# CONFIG_FAIR_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
@@ -93,18 +96,14 @@ CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_KMOD is not set
+# CONFIG_MODULES is not set
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -246,7 +245,7 @@ CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
+CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
@@ -297,10 +296,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
# CONFIG_NET_SCHED is not set
#
@@ -456,7 +451,6 @@ CONFIG_CHR_DEV_SG=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
@@ -472,7 +466,7 @@ CONFIG_SCSI_LOWLEVEL=y
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_PATA_MPC52xx=y
-CONFIG_PATA_PLATFORM=y
+# CONFIG_PATA_PLATFORM is not set
# CONFIG_MD is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
@@ -485,15 +479,14 @@ CONFIG_NETDEVICES=y
# CONFIG_VETH is not set
# CONFIG_PHYLIB is not set
CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
+# CONFIG_MII is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_B44 is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_MV643XX_ETH is not set
-CONFIG_NETDEV_10000=y
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
#
# Wireless LAN
@@ -545,7 +538,6 @@ CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_GEN_RTC is not set
@@ -571,7 +563,6 @@ CONFIG_I2C_MPC=y
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
#
# Miscellaneous I2C Chip support
@@ -598,53 +589,8 @@ CONFIG_SENSORS_EEPROM=y
# CONFIG_SPI_MASTER is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
+# CONFIG_HWMON is not set
+# CONFIG_WATCHDOG is not set
#
# Sonics Silicon Backplane
@@ -668,7 +614,7 @@ CONFIG_DAB=y
# Graphics support
#
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
@@ -711,7 +657,53 @@ CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
# CONFIG_EDAC is not set
-# CONFIG_RTC_CLASS is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=y
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
#
# Userspace I/O
@@ -730,7 +722,6 @@ CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
@@ -797,7 +788,7 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
+# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_NFSD is not set
CONFIG_ROOT_NFS=y
@@ -805,9 +796,8 @@ CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
# CONFIG_SUNRPC_BIND34 is not set
-CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
# CONFIG_CIFS is not set
@@ -894,16 +884,13 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
-
-#
-# Instrumentation Support
-#
-# CONFIG_PROFILING is not set
+# CONFIG_INSTRUMENTATION is not set
#
# Kernel hacking
#
-# CONFIG_PRINTK_TIME is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
@@ -915,7 +902,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_SLAB is not set
+# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
@@ -927,10 +914,11 @@ CONFIG_SCHED_DEBUG=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
@@ -960,9 +948,9 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
-CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCBC=y
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CRYPTD is not set
@@ -983,7 +971,6 @@ CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
CONFIG_CRYPTO_HW=y
CONFIG_PPC_CLOCK=y
diff --git a/arch/powerpc/configs/tqm5200_defconfig b/arch/powerpc/configs/tqm5200_defconfig
index 53fa968..ed4951b 100644
--- a/arch/powerpc/configs/tqm5200_defconfig
+++ b/arch/powerpc/configs/tqm5200_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23
-# Mon Oct 29 14:01:58 2007
+# Linux kernel version: 2.6.24-rc6
+# Thu Jan 17 11:12:51 2008
#
# CONFIG_PPC64 is not set
@@ -67,11 +67,14 @@ CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
# CONFIG_AUDIT is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_CGROUPS is not set
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_FAIR_USER_SCHED=y
+# CONFIG_FAIR_CGROUP_SCHED is not set
CONFIG_SYSFS_DEPRECATED=y
# CONFIG_RELAY is not set
CONFIG_BLK_DEV_INITRD=y
@@ -93,18 +96,14 @@ CONFIG_SIGNALFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_KMOD is not set
+# CONFIG_MODULES is not set
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -221,6 +220,7 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
+CONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
@@ -251,7 +251,7 @@ CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
+CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
@@ -302,10 +302,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
# CONFIG_NET_SCHED is not set
#
@@ -472,7 +468,6 @@ CONFIG_CHR_DEV_SG=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
@@ -628,7 +623,6 @@ CONFIG_NET_ETHERNET=y
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
@@ -679,25 +673,6 @@ CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_IPMI_HANDLER is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_MPC5200_WDT is not set
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
CONFIG_GEN_RTC=y
@@ -740,7 +715,6 @@ CONFIG_I2C_MPC=y
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TINY_USB is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
@@ -783,6 +757,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADT7470 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_F71882FG is not set
# CONFIG_SENSORS_F75375S is not set
@@ -821,6 +796,25 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_MPC5200_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
#
# Sonics Silicon Backplane
@@ -846,7 +840,7 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OUTPUT_CONTROL=y
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
@@ -911,6 +905,7 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
@@ -1036,7 +1031,6 @@ CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
@@ -1211,16 +1205,15 @@ CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
-
-#
-# Instrumentation Support
-#
+CONFIG_INSTRUMENTATION=y
# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
#
# Kernel hacking
#
-# CONFIG_PRINTK_TIME is not set
+CONFIG_PRINTK_TIME=y
+CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
# CONFIG_MAGIC_SYSRQ is not set
# CONFIG_UNUSED_SYMBOLS is not set
@@ -1232,7 +1225,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_SLAB is not set
+# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
@@ -1244,10 +1237,11 @@ CONFIG_SCHED_DEBUG=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
CONFIG_FORCED_INLINING=y
# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
@@ -1277,9 +1271,9 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
-CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCBC=y
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_XTS is not set
# CONFIG_CRYPTO_CRYPTD is not set
@@ -1300,7 +1294,6 @@ CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_AUTHENC is not set
CONFIG_CRYPTO_HW=y
CONFIG_PPC_CLOCK=y
^ permalink raw reply related
* [PATCH v2] [POWERPC] Update TQM5200, CM5200 and Motion-PRO .dts files
From: Marian Balakowicz @ 2008-01-17 18:07 UTC (permalink / raw)
To: linuxppc-dev
Updates include:
- set soc mnode compatible property to "fsl,mpc5200-immr"
- update i2c device tree nodes
- add mdio node
- add lpb bus node and flash device (without partitions defined)
- add second mscan node for Motio-PRO
- add rtc i2c nodes
Signed-off-by: Marian Balakowicz <m8@semihalf.com>
---
This patch was applied and tested against:
git://git.secretlab.ca/git/linux-2.6-mpc52xx.git#for-2.6.25
arch/powerpc/boot/dts/cm5200.dts | 40 +++++++++++++++++++++++++++--
arch/powerpc/boot/dts/motionpro.dts | 49 ++++++++++++++++++++++++++++++++---
arch/powerpc/boot/dts/tqm5200.dts | 45 +++++++++++++++++++++++++++++++-
3 files changed, 126 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/boot/dts/cm5200.dts b/arch/powerpc/boot/dts/cm5200.dts
index 9295083..ff01478 100644
--- a/arch/powerpc/boot/dts/cm5200.dts
+++ b/arch/powerpc/boot/dts/cm5200.dts
@@ -46,7 +46,7 @@
soc5200@f0000000 {
model = "fsl,mpc5200b";
- compatible = "fsl,mpc5200b";
+ compatible = "fsl,mpc5200-immr";
revision = ""; // from bootloader
device_type = "soc";
ranges = <0 f0000000 0000c000>;
@@ -214,13 +214,31 @@
ethernet@3000 {
device_type = "network";
compatible = "mpc5200b-fec","mpc5200-fec";
- reg = <3000 800>;
+ reg = <3000 400>;
local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
interrupts = <2 5 0>;
interrupt-parent = <&mpc5200_pic>;
+ phy-handle = <&phy0>;
+ };
+
+ mdio@3000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ device_type = "mdio";
+ compatible = "mpc5200b-fec-phy";
+ reg = <3000 400>; // fec range, since we need to setup fec interrupts
+ interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
+ interrupt-parent = <&mpc5200_pic>;
+
+ phy0:ethernet-phy@0 {
+ device_type = "ethernet-phy";
+ reg = <0>;
+ };
};
i2c@3d40 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "mpc5200b-i2c","mpc5200-i2c","fsl-i2c";
reg = <3d40 40>;
interrupts = <2 10 0>;
@@ -233,4 +251,22 @@
reg = <8000 4000>;
};
};
+
+ lpb {
+ model = "fsl,lpb";
+ compatible = "fsl,lpb";
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges = <0 0 fc000000 2000000>;
+
+ // 16-bit flash device at LocalPlus Bus CS0
+ flash@0,0 {
+ compatible = "cfi-flash";
+ reg = <0 0 2000000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
+ };
};
diff --git a/arch/powerpc/boot/dts/motionpro.dts b/arch/powerpc/boot/dts/motionpro.dts
index d8c316a..1a046aa 100644
--- a/arch/powerpc/boot/dts/motionpro.dts
+++ b/arch/powerpc/boot/dts/motionpro.dts
@@ -46,7 +46,7 @@
soc5200@f0000000 {
model = "fsl,mpc5200b";
- compatible = "fsl,mpc5200b";
+ compatible = "fsl,mpc5200-immr";
revision = ""; // from bootloader
device_type = "soc";
ranges = <0 f0000000 0000c000>;
@@ -134,6 +134,13 @@
interrupt-parent = <&mpc5200_pic>;
};
+ mscan@900 {
+ compatible = "mpc5200b-mscan\0mpc5200-mscan";
+ interrupts = <2 11 0>;
+ interrupt-parent = <&mpc5200_pic>;
+ reg = <900 80>;
+ };
+
mscan@980 {
compatible = "mpc5200b-mscan","mpc5200-mscan";
interrupts = <2 12 0>;
@@ -155,7 +162,6 @@
interrupt-parent = <&mpc5200_pic>;
};
-
spi@f00 {
compatible = "mpc5200b-spi","mpc5200-spi";
reg = <f00 20>;
@@ -216,10 +222,26 @@
ethernet@3000 {
device_type = "network";
compatible = "mpc5200b-fec","mpc5200-fec";
- reg = <3000 800>;
+ reg = <3000 400>;
local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
interrupts = <2 5 0>;
interrupt-parent = <&mpc5200_pic>;
+ phy-handle = <&phy0>;
+ };
+
+ mdio@3000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ device_type = "mdio";
+ compatible = "mpc5200b-fec-phy";
+ reg = <3000 400>; // fec range, since we need to setup fec interrupts
+ interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
+ interrupt-parent = <&mpc5200_pic>;
+
+ phy0:ethernet-phy@0 {
+ device_type = "ethernet-phy";
+ reg = <0>;
+ };
};
ata@3a00 {
@@ -230,11 +252,19 @@
};
i2c@3d40 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "mpc5200b-i2c","mpc5200-i2c","fsl-i2c";
reg = <3d40 40>;
interrupts = <2 10 0>;
interrupt-parent = <&mpc5200_pic>;
fsl5200-clocking;
+
+ rtc@68 {
+ device_type = "rtc";
+ compatible = "dallas,ds1339";
+ reg = <68>;
+ };
};
sram@8000 {
@@ -248,7 +278,8 @@
compatible = "fsl,lpb";
#address-cells = <2>;
#size-cells = <1>;
- ranges = <1 0 50000000 00010000
+ ranges = <0 0 ff000000 01000000
+ 1 0 50000000 00010000
2 0 50010000 00010000
3 0 50020000 00010000>;
@@ -279,6 +310,16 @@
compatible = "promess,pro_module_dio";
reg = <3 800 2>;
};
+
+ // 16-bit flash device at LocalPlus Bus CS0
+ flash@0,0 {
+ compatible = "cfi-flash";
+ reg = <0 0 01000000>;
+ bank-width = <2>;
+ device-width = <2>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
};
pci@f0000d00 {
diff --git a/arch/powerpc/boot/dts/tqm5200.dts b/arch/powerpc/boot/dts/tqm5200.dts
index 5017cec..54fb2a2 100644
--- a/arch/powerpc/boot/dts/tqm5200.dts
+++ b/arch/powerpc/boot/dts/tqm5200.dts
@@ -46,7 +46,7 @@
soc5200@f0000000 {
model = "fsl,mpc5200";
- compatible = "fsl,mpc5200";
+ compatible = "fsl,mpc5200-immr";
revision = ""; // from bootloader
device_type = "soc";
ranges = <0 f0000000 0000c000>;
@@ -134,10 +134,26 @@
ethernet@3000 {
device_type = "network";
compatible = "mpc5200-fec";
- reg = <3000 800>;
+ reg = <3000 400>;
local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
interrupts = <2 5 0>;
interrupt-parent = <&mpc5200_pic>;
+ phy-handle = <&phy0>;
+ };
+
+ mdio@3000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ device_type = "mdio";
+ compatible = "mpc5200b-fec-phy";
+ reg = <3000 400>; // fec range, since we need to setup fec interrupts
+ interrupts = <2 5 0>; // these are for "mii command finished", not link changes & co.
+ interrupt-parent = <&mpc5200_pic>;
+
+ phy0:ethernet-phy@0 {
+ device_type = "ethernet-phy";
+ reg = <0>;
+ };
};
ata@3a00 {
@@ -148,11 +164,19 @@
};
i2c@3d40 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "mpc5200-i2c","fsl-i2c";
reg = <3d40 40>;
interrupts = <2 10 0>;
interrupt-parent = <&mpc5200_pic>;
fsl5200-clocking;
+
+ rtc@68 {
+ device_type = "rtc";
+ compatible = "dallas,ds1307";
+ reg = <68>;
+ };
};
sram@8000 {
@@ -161,6 +185,23 @@
};
};
+ lpb {
+ model = "fsl,lpb";
+ compatible = "fsl,lpb";
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges = <0 0 fc000000 02000000>;
+
+ flash@0,0 {
+ compatible = "cfi-flash";
+ reg = <0 0 02000000>;
+ bank-width = <4>;
+ device-width = <2>;
+ #size-cells = <1>;
+ #address-cells = <1>;
+ };
+ };
+
pci@f0000d00 {
#interrupt-cells = <1>;
#size-cells = <2>;
^ permalink raw reply related
* Re: [Add mpc5121 support PATCH v2 5/8] Separate MPC52xx PSC FIFO registers from rest of PSC
From: Grant Likely @ 2008-01-17 17:36 UTC (permalink / raw)
To: John Rigby; +Cc: linuxppc-dev
In-Reply-To: <1200519447-25555-5-git-send-email-jrigby@freescale.com>
On 1/16/08, John Rigby <jrigby@freescale.com> wrote:
> This is in preparation for the addition of MPC512x
> PSC support. The main difference in the 512x is
> in the fifo registers.
>
> Signed-off-by: John Rigby <jrigby@freescale.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
I'll pick this one up
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: [PATCH] [POWERPC] Update TQM5200, CM5200 and Motion-PRO _defconfig and .dts files
From: Marian Balakowicz @ 2008-01-17 18:02 UTC (permalink / raw)
To: Grant Likely; +Cc: linuxppc-dev
In-Reply-To: <fa686aa40801170805g46eb4686y35c65276779d5244@mail.gmail.com>
Grant Likely wrote:
> On 1/17/08, Marian Balakowicz <m8@semihalf.com> wrote:
>> Updates include:
>> - set soc node compatible property to "fsl,mpc5200-immr"
>
> On these three boards; which have the original mpc5200 and which have
> the mpc5200b?
cm5200 and motionpro have mpc5200b, some versions of tqm5200 have
mpc5200, some have mpc5200b.
> I'm not going to pick up this patch immediately, I've got an invasive
> set of mpc5200 device tree cleanups which need to go in first. After
> that I'll revisit your changes here.
Understood, thanks.
>> - update i2c device tree nodes
>> - add mdio node
>> - add lpb bus node and flash device (without partitions defined)
>> - add second mscan node for Motio-PRO
>> - add rtc i2c nodes and enable RTC in _defconfigs
>> - use SLUB insteand of SLAB
>> - enable printk timestamp
>
> Can you split the defconfig changes into a separate patch... That
> being said, how do you feel about merging all the 5200 defconfigs into
> a single defconfig? They are all multiplatform after all and it would
> make maintenance easier.
Ok, I'll split it into two patches.
But merging defconfigs won't be a good option, boards differ in which
devices they use, some have PCI, some have USB, etc. Having one
defconfig, it would be necessary to manually customize kernel
configuration and remember which options are to be set/disabled.
Cheers,
m.
^ permalink raw reply
* Re: [Add mpc5121 support PATCH v2 6/8] Cleanup checkpatch.pl problems in mpc52xx_uart.c
From: Grant Likely @ 2008-01-17 17:35 UTC (permalink / raw)
To: John Rigby; +Cc: linuxppc-dev
In-Reply-To: <1200519447-25555-6-git-send-email-jrigby@freescale.com>
On 1/16/08, John Rigby <jrigby@freescale.com> wrote:
> In preparation of adding MPC5121 support
> cleanup some things that checkpatch.pl complains
> about also some minor fixes suggested by
> Stephen Rothwell.
>
> Signed-off-by: John Rigby <jrigby@freescale.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
I'll pick this one up into my tree.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: Endian problem when accessing internel regs on 8347
From: Bruce_Leonard @ 2008-01-17 18:01 UTC (permalink / raw)
To: Ben Warren; +Cc: linuxppc-embedded
In-Reply-To: <478F6DB6.8050907@gmail.com>
Ben Warren <biggerbadderben@gmail.com> wrote on 01/17/2008 07:01:10 AM:
> >
> I've attached a poorly-written-yet-functional GPIO driver that I wrote a
> while ago for the MPC8349 (same as what you have for all intents and
> purposes). It uses in_be32() and out_be32().
>
Ben,
Thanks for the answer. Hummmm, at first glance it looks like you're doing
the same thing I am. Only difference I can see is you use get_immrbase()
to figure out the address to ask for and I've got it hardcoded. Other
than that we're both using request_mem_region() in in/out_be32(). Yet
your's works for you and mine doesn't. Well, I'll take a closer look
tonight and see if there's something you're doing that I missed.
Unfortunately, I've gotten a higher level interrupt this morning and it
may ba a day or so before I get back to this and can give you any
feedback. Thanks again.
See 'ya!
Bruce
^ permalink raw reply
* Re: Endian problem when accessing internel regs on 8347
From: Scott Wood @ 2008-01-17 17:39 UTC (permalink / raw)
To: Bruce_Leonard; +Cc: linuxppc-embedded
In-Reply-To: <OF03A8BF8B.4AC46CCD-ON882573D3.00216F5B-882573D3.00236B8D@selinc.com>
Bruce_Leonard@selinc.com wrote:
> As an additional question related to PowerPC inline assembly, can anyone
> tell me what "%U1%X1" means in the following:
>
> __asm__ __volatile__("lwz%U1%X1 %0,%1; twi 0,%0,0; isync" : "=r" (ret) :
> "m" (*addr));
They allow the compiler to use update and/or index mode for the memory
operand.
-Scott
^ permalink raw reply
* Re: [Add mpc5121 support PATCH v2 4/8] Device tree for MPC5121 ADS
From: Grant Likely @ 2008-01-17 17:30 UTC (permalink / raw)
To: John Rigby; +Cc: linuxppc-dev
In-Reply-To: <1200519447-25555-4-git-send-email-jrigby@freescale.com>
On 1/16/08, John Rigby <jrigby@freescale.com> wrote:
> Minimal tree for mpc5121 ads.
>
> Signed-off-by: John Rigby <jrigby@freescale.com>
> ---
> arch/powerpc/boot/dts/mpc5121ads.dts | 116 ++++++++++++++++++++++++++++++++++
> 1 files changed, 116 insertions(+), 0 deletions(-)
> create mode 100644 arch/powerpc/boot/dts/mpc5121ads.dts
>
> diff --git a/arch/powerpc/boot/dts/mpc5121ads.dts b/arch/powerpc/boot/dts/mpc5121ads.dts
> new file mode 100644
> index 0000000..fac1f15
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/mpc5121ads.dts
> @@ -0,0 +1,116 @@
> +/*
> + * MPC5121E MDS Device Tree Source
> + *
> + * Copyright 2007 Freescale Semiconductor Inc.
> + *
> + * 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.
> + */
> +
> +/ {
> + model = "MPC5121ADS";
Model should also use the form "fsl,mpc5121ads". I think lowercase is
also preferred.
> + compatible = "fsl,mpc5121ads";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + PowerPC,5121@0 {
> + device_type = "cpu";
> + reg = <0>;
> + d-cache-line-size = <20>; // 32 bytes
> + i-cache-line-size = <20>; // 32 bytes
> + d-cache-size = <8000>; // L1, 32K
> + i-cache-size = <8000>; // L1, 32K
> + timebase-frequency = <d#49500000>; // 49.5 MHz (csb/4)
> + bus-frequency = <d#198000000>; // 198 MHz csb bus
> + clock-frequency = <d#396000000>;// 396 MHz ppc core
> + };
> + };
> +
> + memory {
> + device_type = "memory";
> + reg = <00000000 10000000>; // 256MB at 0
> + };
> +
> + localbus@80000020 {
> + compatible = "fsl,mpc5121ads_localbus";
fsl,mpc5121ads-localbus (use dash instead of underscore)
> + #address-cells = <2>;
> + #size-cells = <1>;
> + reg = <80000020 40>;
> +
> + ranges = <0 0 fc000000 04000000
> + 2 0 82000000 00008000>;
> +
> + flash@0,0 {
> + compatible = "cfi-flash";
> + reg = <0 0 4000000>;
> + bank-width = <4>;
> + device-width = <1>;
> + };
> +
> + board-control@2,0 {
> + compatible = "fsl,mpc5121ads-cpld";
> + reg = <2 0 8000>;
> + };
> + };
> +
> + soc@80000000 {
> + compatible = "fsl,mpc5121-immr";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + #interrupt-cells = <2>;
> + ranges = <0 80000000 400000>;
> + reg = <80000000 400000>;
> + bus-frequency = <d#66000000>; // 66 MHz ips bus
> +
> +
> + // IPIC
> + // interrupts cell = <intr #, sense>
> + // sense values match linux IORESOURCE_IRQ_* defines:
> + // sense == 8: Level, low assertion
> + // sense == 2: Edge, high-to-low change
> + //
> + ipic: interrupt-controller@c00 {
> + compatible = "fsl,ipic";
for completeness: compatible = "fsl,mpc5121-ipic", "fsl,ipic";
> + interrupt-controller;
> + #address-cells = <0>;
> + #interrupt-cells = <2>;
> + reg = <c00 100>;
> + };
> +
> + // 512x PSCs are not 52xx PSCs compatible
> + // PSC3 serial port A aka ttyPSC0
> + serial@11300 {
> + device_type = "serial";
> + compatible = "fsl,mpc5121-psc-uart";
> + port-number = <0>; // Logical port assignment
This should be going away in short order. I hope to have some code
written soon which will use aliases for assigning the port number.
> + cell-index = <3>;
> + reg = <11300 100>;
> + interrupts = <28 8>; // actually the fifo irq
Hmmm, interesting. Perhaps it would be better to leave the interrupts
property out of this node and have a fsl,fifo-handle property pointing
to the fifo node.
> + interrupt-parent = < &ipic >;
> + };
> +
> + // PSC4 serial port B aka ttyPSC1
> + serial@11400 {
> + device_type = "serial";
> + compatible = "fsl,mpc5121-psc-uart";
> + port-number = <1>; // Logical port assignment
> + cell-index = <4>;
> + reg = <11400 100>;
> + interrupts = <28 8>; // actually the fifo irq
> + interrupt-parent = < &ipic >;
> + };
> +
> + pscsfifo@11f00 {
> + compatible = "fsl,mpc512x-psc-fifo";
fsl,mpc5121-psc-fifo. mpc512x isn't real, it's a made up wildcard.
It's better to be specific.
> + reg = <11f00 100>;
> + interrupts = <28 8>;
> + interrupt-parent = < &ipic >;
> + };
> + };
> +};
> --
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: [Add mpc5121 support PATCH v2 3/8] Basic Freescale MPC512x support
From: Grant Likely @ 2008-01-17 17:21 UTC (permalink / raw)
To: John Rigby; +Cc: linuxppc-dev
In-Reply-To: <1200519447-25555-3-git-send-email-jrigby@freescale.com>
On 1/16/08, John Rigby <jrigby@freescale.com> wrote:
> 512x is very similar to 83xx and most
> of this is patterned after code from 83xx.
>
> New platform:
> changed:
> arch/powerpc/Kconfig
> arch/powerpc/platforms/Kconfig
> arch/powerpc/platforms/Kconfig.cputype
> arch/powerpc/platforms/Makefile
> new:
> arch/powerpc/platforms/512x/*
> include/asm-powerpc/mpc512x.h
>
> Signed-off-by: John Rigby <jrigby@freescale.com>
After Stephen's comment is addressed:
Acked-by: Grant Likely <grant.likely@secretlab.ca>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* error: array type has incomplete element type
From: WEHBI Rami @ 2008-01-17 17:05 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 2331 bytes --]
Hi all,
I am trying to compile a kernel for the ppc405 embedded on the virtex 4 and I am obtaining the compiling errors listed below(at the end of this mail).
my compiler is the crosstool latest one.
I tried to compile each the following kernel versions :
2.6.23.8
2.6.17
with the following versions of gcc and glibc of the crosscompiler
gcc-4.0.2-glibc-2.3.5
gcc-4.1.0-glibc-2.3.6
gcc-4.1.1-glibc-2.3.6
the result is always the same (array type has incomplete element type)
moreover I searched all the files and I replaced
(struct ocp_def core_ocp[]) with (struct ocp_def core_ocp[2])
because my architectur contains only one UART, the result is always the same (same error).
any help is appreciated,
arch/ppc/syslib/virtex_devices.c:23: error: array type has incomplete element type
arch/ppc/syslib/virtex_devices.c:25: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:25: error: (near initialization for 'core_ocp')
arch/ppc/syslib/virtex_devices.c:26: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:26: error: (near initialization for 'core_ocp')
arch/ppc/syslib/virtex_devices.c:27: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:27: error: (near initialization for 'core_ocp')
arch/ppc/syslib/virtex_devices.c:28: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:28: error: (near initialization for 'core_ocp')
arch/ppc/syslib/virtex_devices.c:29: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:29: error: (near initialization for 'core_ocp')
arch/ppc/syslib/virtex_devices.c:30: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:30: error: (near initialization for 'core_ocp')
arch/ppc/syslib/virtex_devices.c:30: error: 'OCP_CPM_NA' undeclared here (not in a function)
arch/ppc/syslib/virtex_devices.c:63: error: field name not in record or union initializer
arch/ppc/syslib/virtex_devices.c:63: error: (near initialization for 'core_ocp')
Rami
---------------------------------
Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail
[-- Attachment #2: Type: text/html, Size: 4588 bytes --]
^ permalink raw reply
* Re: [PATCH] [POWERPC] Update TQM5200, CM5200 and Motion-PRO _defconfig and .dts files
From: Grant Likely @ 2008-01-17 16:05 UTC (permalink / raw)
To: Marian Balakowicz; +Cc: linuxppc-dev
In-Reply-To: <20080117143024.15372.95923.stgit@hekate.izotz.org>
On 1/17/08, Marian Balakowicz <m8@semihalf.com> wrote:
> Updates include:
> - set soc node compatible property to "fsl,mpc5200-immr"
On these three boards; which have the original mpc5200 and which have
the mpc5200b?
I'm not going to pick up this patch immediately, I've got an invasive
set of mpc5200 device tree cleanups which need to go in first. After
that I'll revisit your changes here.
> - update i2c device tree nodes
> - add mdio node
> - add lpb bus node and flash device (without partitions defined)
> - add second mscan node for Motio-PRO
> - add rtc i2c nodes and enable RTC in _defconfigs
> - use SLUB insteand of SLAB
> - enable printk timestamp
Can you split the defconfig changes into a separate patch... That
being said, how do you feel about merging all the 5200 defconfigs into
a single defconfig? They are all multiplatform after all and it would
make maintenance easier.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: Patches added to master/for-2.6.25 branch of powerpc.git
From: Grant Likely @ 2008-01-17 15:52 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
In-Reply-To: <18318.56299.476711.644917@cargo.ozlabs.ibm.com>
Paul, can you also please pull the following 52xx changes?
Thanks,
g.
The following changes since commit 52920df4aa9dd25836b8ed4dc0b177ea14c09e53:
Paul Mackerras (1):
Merge branch 'for-2.6.25' of
master.kernel.org:/.../olof/pasemi into for-2.6.25
are available in the git repository at:
git://git.secretlab.ca/git/linux-2.6-mpc52xx.git for-2.6.25
Grant Likely (1):
[POWERPC] mpc5200: eliminate mpc52xx_*_map_*() functions.
Marian Balakowicz (9):
Add 'fsl, lpb' bus type for MPC5200 LocalPlus Bus
Add common mpc52xx_setup_pci() routine
TQM5200 DTS
TQM5200 defconfig
CM5200 DTS
CM5200 defconfig
Promess Motion-PRO DTS
Promess Motion-PRO defconfig
Add generic support for simple MPC5200 based boards
arch/powerpc/boot/dts/cm5200.dts | 236 +++++
arch/powerpc/boot/dts/lite5200.dts | 2 +-
arch/powerpc/boot/dts/lite5200b.dts | 2 +-
arch/powerpc/boot/dts/motionpro.dts | 309 ++++++
arch/powerpc/boot/dts/tqm5200.dts | 184 ++++
arch/powerpc/configs/cm5200_defconfig | 1031 ++++++++++++++++++++
arch/powerpc/configs/motionpro_defconfig | 989 +++++++++++++++++++
arch/powerpc/configs/tqm5200_defconfig | 1306 ++++++++++++++++++++++++++
arch/powerpc/platforms/52xx/Kconfig | 22 +-
arch/powerpc/platforms/52xx/Makefile | 1 +
arch/powerpc/platforms/52xx/lite5200.c | 22 +-
arch/powerpc/platforms/52xx/lite5200_pm.c | 6 +-
arch/powerpc/platforms/52xx/mpc5200_simple.c | 85 ++
arch/powerpc/platforms/52xx/mpc52xx_common.c | 63 +-
arch/powerpc/platforms/52xx/mpc52xx_pci.c | 14 +
arch/powerpc/platforms/52xx/mpc52xx_pic.c | 8 +-
arch/powerpc/platforms/52xx/mpc52xx_pm.c | 8 +-
drivers/spi/mpc52xx_psc_spi.c | 9 +-
include/asm-powerpc/mpc52xx.h | 7 +-
19 files changed, 4234 insertions(+), 70 deletions(-)
create mode 100644 arch/powerpc/boot/dts/cm5200.dts
create mode 100644 arch/powerpc/boot/dts/motionpro.dts
create mode 100644 arch/powerpc/boot/dts/tqm5200.dts
create mode 100644 arch/powerpc/configs/cm5200_defconfig
create mode 100644 arch/powerpc/configs/motionpro_defconfig
create mode 100644 arch/powerpc/configs/tqm5200_defconfig
create mode 100644 arch/powerpc/platforms/52xx/mpc5200_simple.c
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: Patches added to master/for-2.6.25 branch of powerpc.git
From: Anton Vorontsov @ 2008-01-17 15:34 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev list, Paul Mackerras
In-Reply-To: <A1DA2145-E5AE-4A7D-83D4-D86F05A9F6DF@kernel.crashing.org>
On Thu, Jan 17, 2008 at 09:11:00AM -0600, Kumar Gala wrote:
>
> On Jan 17, 2008, at 8:59 AM, Anton Vorontsov wrote:
>
> >Hello Paul, Kumar,
> >
> >On Thu, Jan 17, 2008 at 03:39:07PM +1100, Paul Mackerras wrote:
> >>Includes commits pulled from Josh Boyer's tree.
> >
> >Um.. Probably I'm being importunate.. if so, just command me to sit
> >silent and wait. ;-) But how about these down here? Ones that touches
> >drivers/net/ are having "Acked-by: Jeff Garzik <jeff@garzik.org>"
> >thus meant to go through one of powerpc tree. Not sure through which
> >one exactly.
> >
> >http://ozlabs.org/pipermail/linuxppc-dev/2007-December/047777.html
> >http://ozlabs.org/pipermail/linuxppc-dev/2007-December/047778.html
> >http://ozlabs.org/pipermail/linuxppc-dev/2007-December/047779.html
> >
> >^^ are mandatory to make MPC8349E-mITX's ENET1-ENET5 actually work.
> >Plus, as you may notice all of them having "777" in the message id,
> >they ought to be lucky, despite that today they're applying with
> >fuzz. :-)
>
> I've got these in my queue to apply.
Great, good to know. Thanks.
> If I have issues I'll ping you for a respin.
Sure thing.
> >http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048473.html
> >
> >^^ fixed phy support for fs_enet. Needed for some other boards, I
> >presume.
>
> Hmm, its vitaly picking this one up? if not I can.
Ah, right. I just forgot that Vitaly resumed his tree.
Thanks,
--
Anton Vorontsov
email: cbou@mail.ru
backup email: ya-cbou@yandex.ru
irc://irc.freenode.net/bd2
^ permalink raw reply
* Re: [PATCH/RFCv2] wdt: Add support for PowerQUICC watchdog
From: Kumar Gala @ 2008-01-17 15:11 UTC (permalink / raw)
To: Jochen Friedrich; +Cc: Scott Wood, linuxppc-dev, wim, linux-kernel
In-Reply-To: <478F6C5F.4010505@scram.de>
On Jan 17, 2008, at 8:55 AM, Jochen Friedrich wrote:
> Hi Kumar,
>
>> Why are you commenting on mpc83xx_wdt with respect to pq1_wdt?
>> Also, is this driver just for PQ1 platforms or PQ1 & PQ2? If its
>> just pq1 we should probably call it pq1_wdt*
>
> It should be for pq1, pq2 and pq2pro. However, i only have the
> possibility
> to test this on pq1.
>
>>> arch/powerpc/platforms/8xx/mpc86xads_setup.c | 5 +
>>> arch/powerpc/platforms/8xx/mpc885ads_setup.c | 5 +
>>> arch/powerpc/sysdev/Makefile | 3 +
>>> arch/powerpc/sysdev/pq_wdt.c | 203 +++++++++++++++
>>> ++++++++
>>> arch/powerpc/sysdev/pq_wdt.h | 28 ++++
>>> drivers/watchdog/Kconfig | 13 ++-
>>> drivers/watchdog/Makefile | 1 +
>>> drivers/watchdog/pq_wdt.c | 225 +++++++++++++++
>>> +++++++++++
>>> 8 files changed, 482 insertions(+), 1 deletions(-)
>>> create mode 100644 arch/powerpc/sysdev/pq_wdt.c
>>> create mode 100644 arch/powerpc/sysdev/pq_wdt.h
>>> create mode 100644 drivers/watchdog/pq_wdt.c
>> What are the bits in sysdev/pq_wdt.{c,h}. Why aren't these just in
>> drivers/watchdog?
>
> These are the parts needed to boot a device with activated watchdog.
> If a bootloader like u-boot activates the watchdog, it can't be
> deactivated again
> and needs to be reset at regular intervals. This is done using a
> kernel timer.
> The driver in drivers/watchdog disables the timer as soon as the wdt
> device
> is opened.
Ok, but is there a need for these bits to be in sysdev vs just being
in the driver and calling into it.
- k
^ permalink raw reply
* Re: Patches added to master/for-2.6.25 branch of powerpc.git
From: Kumar Gala @ 2008-01-17 15:11 UTC (permalink / raw)
To: avorontsov; +Cc: linuxppc-dev list, Paul Mackerras
In-Reply-To: <20080117145903.GA4535@localhost.localdomain>
On Jan 17, 2008, at 8:59 AM, Anton Vorontsov wrote:
> Hello Paul, Kumar,
>
> On Thu, Jan 17, 2008 at 03:39:07PM +1100, Paul Mackerras wrote:
>> Includes commits pulled from Josh Boyer's tree.
>
> Um.. Probably I'm being importunate.. if so, just command me to sit
> silent and wait. ;-) But how about these down here? Ones that touches
> drivers/net/ are having "Acked-by: Jeff Garzik <jeff@garzik.org>"
> thus meant to go through one of powerpc tree. Not sure through which
> one exactly.
>
> http://ozlabs.org/pipermail/linuxppc-dev/2007-December/047777.html
> http://ozlabs.org/pipermail/linuxppc-dev/2007-December/047778.html
> http://ozlabs.org/pipermail/linuxppc-dev/2007-December/047779.html
>
> ^^ are mandatory to make MPC8349E-mITX's ENET1-ENET5 actually work.
> Plus, as you may notice all of them having "777" in the message id,
> they ought to be lucky, despite that today they're applying with
> fuzz. :-)
I've got these in my queue to apply. If I have issues I'll ping you
for a respin.
> http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048473.html
>
> ^^ fixed phy support for fs_enet. Needed for some other boards, I
> presume.
Hmm, its vitaly picking this one up? if not I can.
- k
^ permalink raw reply
* Re: Endian problem when accessing internel regs on 8347
From: Ben Warren @ 2008-01-17 15:01 UTC (permalink / raw)
To: Bruce_Leonard; +Cc: linuxppc-embedded
In-Reply-To: <OF03A8BF8B.4AC46CCD-ON882573D3.00216F5B-882573D3.00236B8D@selinc.com>
[-- Attachment #1: Type: text/plain, Size: 2065 bytes --]
Hi Bruce,
Bruce_Leonard@selinc.com wrote:
> Hi,
>
> I've got an MPC8347 running the 2.6.24-rc5 kernel and I'm trying to access
> the GPIO registers. I already have a driver that's doing related work
> (tho across PCI) and I just want to remap the internal CPU address to a
> kernal address and be able to read/write the register using an IOCTL call
> from user space. My problem is, every accessor I try does an endian
> conversion before giving me my data. So here's some code snipits of what
> I'm doing:
>
> request_mem_region(0xe0000c00, 24, "my driver"); // 0xe0000c00 is the
> memory mapped location of the GPIO regs
> data_ptr2 = ioremap(0xe0000c00, 24);
>
> Then in the IOCTL function I try to read from the register. First I
> tried:
>
> ioread32(data_ptr2);
>
> I know that the mapping is working okay because I got the data from the
> GPIO direction register, but it's been byte swapped. The contents of the
> register are 0xFFFFFFE7, but what my user space app gets back is
> 0xE7FFFFFF. I've tried all the varients I can find, readl(), inl(),
> in_be32(), in_le32(), even __raw_readl(). They all give me back byte
> swapped data. I'm very confused. Especially since I've looked at
> in_be32() and in_le32(), they're both inline assembly, and they use
> different instructions. They can't be giving me the same results. I'm
> sure I'm not the first person to want to access PowerPC internal registers
> through a driver. Can anyone give me a hint what I'm doing wrong?
>
> As an additional question related to PowerPC inline assembly, can anyone
> tell me what "%U1%X1" means in the following:
>
> __asm__ __volatile__("lwz%U1%X1 %0,%1; twi 0,%0,0; isync" : "=r" (ret) :
> "m" (*addr));
>
> Thanks.
>
> See 'ya!
>
> Bruce
> _______________________________________________
>
I've attached a poorly-written-yet-functional GPIO driver that I wrote a
while ago for the MPC8349 (same as what you have for all intents and
purposes). It uses in_be32() and out_be32().
Let me know if you have any questions.
regards,
Ben
[-- Attachment #2: mpc83xx_gpio.c --]
[-- Type: text/x-csrc, Size: 6289 bytes --]
/******************************************************************************
*
* gpio_driver.c
* Copyright Qstreams Networks 2006
*
* This file contains a simple Linux device driver for accessing GPIO ports
* It is originally targeted for the MPC8349 PowerQUICC II Pro processor,
* although with simple modifications it should work with lots of CPUs. Note
* that all CPU accesses are big-endian.
*
* History:
* 04/11/2006 BAW Initial Creation
*
*****************************************************************************/
#include <linux/init.h>
#include <linux/module.h>
#include <linux/ioport.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include "gpio.h"
struct gpio_dev {
struct gpio_reg *regs;
struct cdev cdev;
};
MODULE_AUTHOR("Ben Warren");
MODULE_LICENSE("GPL");
static int gpio_major_num;
static struct gpio_dev *gpio_devices;
static spinlock_t gpioLock[GPIO_NUM_BANKS];
extern phys_addr_t get_immrbase(void);
static u32 readGpioReg(u8 bank, u32 * addr)
{
u32 value;
spin_lock(&gpioLock[bank]);
value = in_be32(addr);
spin_unlock(&gpioLock[bank]);
return value;
}
static void writeGpioReg(u8 bank, u32 * addr, u32 val, u32 mask)
{
spin_lock(&gpioLock[bank]);
out_be32(addr, (in_be32(addr) & ~mask) | val);
spin_unlock(&gpioLock[bank]);
}
/*****
* Kernel-mode GPIO access functions.
* DO NOT CALL FROM USERSPACE
*****/
int kgpio_set_dir(u8 bank, u8 bit, u8 isOutput)
{
u32 value = GPIO_BIT(bit);
if ((bank >= GPIO_NUM_BANKS) || !gpio_devices) {
return -ENODEV;
}
writeGpioReg(bank, &gpio_devices[bank].regs->gpxdir,
isOutput ? value : 0, value);
return 0;
}
EXPORT_SYMBOL(kgpio_set_dir);
int kgpio_get_dir(u8 bank, u8 bit)
{
u32 value;
if ((bank >= GPIO_NUM_BANKS) || !gpio_devices) {
return -ENODEV;
}
value = readGpioReg(bank, &gpio_devices[bank].regs->gpxdir);
return (value & GPIO_BIT(bit) ? 1 : 0);
}
EXPORT_SYMBOL(kgpio_get_dir);
int kgpio_set_data(u8 bank, u8 bit, u8 isHigh)
{
u32 value = GPIO_BIT(bit);
if ((bank >= GPIO_NUM_BANKS) || !gpio_devices) {
return -ENODEV;
}
writeGpioReg(bank, &gpio_devices[bank].regs->gpxdat,
isHigh ? value : 0, value);
return 0;
}
EXPORT_SYMBOL(kgpio_set_data);
int kgpio_get_data(u8 bank, u8 bit)
{
u32 value;
if ((bank >= GPIO_NUM_BANKS) || !gpio_devices) {
return -ENODEV;
}
value = readGpioReg(bank, &gpio_devices[bank].regs->gpxdat);
return (value & GPIO_BIT(bit) ? 1 : 0);
}
EXPORT_SYMBOL(kgpio_get_data);
int gpio_open(struct inode *inode, struct file *filp)
{
struct gpio_dev *dev;
/* Set things up so other methods can access private data */
dev = container_of(inode->i_cdev, struct gpio_dev, cdev);
filp->private_data = dev;
return 0;
}
int gpio_ioctl(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
{
int rc = 0;
gpioDataAccess gpioData = { 0, 0 };
struct gpio_dev *dev;
u8 bank;
/* Check that the caller really wanted GPIO */
if (_IOC_TYPE(cmd) != GPIO_IOC_MAGIC)
return -ENOTTY;
if (_IOC_NR(cmd) > GPIO_IOC_MAXNR)
return -ENOTTY;
/* Check access controls */
if (_IOC_DIR(cmd) & _IOC_READ)
rc = !access_ok(VERIFY_WRITE, (void __user *)arg,
_IOC_SIZE(cmd));
else if (_IOC_DIR(cmd) & _IOC_WRITE)
rc = !access_ok(VERIFY_READ, (void __user *)arg,
_IOC_SIZE(cmd));
if (rc)
return -EFAULT;
bank = (u8) iminor(inode);
dev = filp->private_data;
switch (cmd) {
/* Direction Register access */
case GPIO_IOC_GET_DIR:
return readGpioReg(bank, &dev->regs->gpxdir);
case GPIO_IOC_SET_DIR:
if (copy_from_user(&gpioData,
(const void __user *)arg,
sizeof(gpioDataAccess))) {
printk(KERN_ERR "copy_from_user failed\n");
return -EFAULT;
}
writeGpioReg(bank, &dev->regs->gpxdir,
gpioData.value, gpioData.mask);
break;
/* Data Register access */
case GPIO_IOC_GET_DATA:
return readGpioReg(bank, &dev->regs->gpxdat);
case GPIO_IOC_SET_DATA:
if (copy_from_user(&gpioData,
(const void __user *)arg,
sizeof(gpioDataAccess))) {
printk(KERN_ERR "copy_from_user failed\n");
return -EFAULT;
}
writeGpioReg(bank, &dev->regs->gpxdat,
gpioData.value, gpioData.mask);
break;
default:
return -ENOTTY;
}
return rc;
}
/* File operations structure. Pretty limited on this device */
struct file_operations gpio_fops = {
.owner = THIS_MODULE,
.open = gpio_open,
.ioctl = gpio_ioctl,
};
static void gpio_cleanup(void)
{
int i;
u32 addr;
dev_t devno = MKDEV(gpio_major_num, 0);
if (gpio_devices) {
for (i = 0; i < GPIO_NUM_BANKS; i++) {
cdev_del(&gpio_devices[i].cdev);
}
iounmap(gpio_devices);
}
addr = get_immrbase() + GPIO1_IO_OFFSET;
release_mem_region(addr, sizeof(struct gpio_reg));
addr = get_immrbase() + GPIO2_IO_OFFSET;
release_mem_region(addr, sizeof(struct gpio_reg));
unregister_chrdev_region(devno, GPIO_NUM_BANKS);
}
static void gpio_setup_cdev(struct gpio_dev *dev, int index)
{
int rc, devno = MKDEV(gpio_major_num, index);
cdev_init(&dev->cdev, &gpio_fops);
dev->cdev.owner = THIS_MODULE;
dev->cdev.ops = &gpio_fops;
if ((rc = cdev_add(&dev->cdev, devno, 1)))
printk(KERN_CRIT "Error %d adding gpio%d", rc, index);
}
static int gpio_init(void)
{
int i, rc;
dev_t dev = 0;
u32 addr;
/* Grab a dynamic major number and GPIO_NUM_BANKS minors */
rc = alloc_chrdev_region(&dev, 0, GPIO_NUM_BANKS, "gpio");
gpio_major_num = MAJOR(dev);
if (rc < 0) {
printk(KERN_CRIT "GPIO: couldn't get major number\n");
return rc;
}
if (!(gpio_devices = kmalloc(GPIO_NUM_BANKS * sizeof(struct gpio_dev),
GFP_KERNEL))) {
gpio_cleanup();
return -ENOMEM;
}
for (i = 0; i < GPIO_NUM_BANKS; i++) {
spin_lock_init(&gpioLock[i]);
gpio_setup_cdev(&gpio_devices[i], i);
addr =
get_immrbase() + (i ==
0 ? GPIO1_IO_OFFSET : GPIO2_IO_OFFSET);
if (!request_mem_region(addr,
sizeof(struct gpio_reg), "gpio")) {
printk(KERN_CRIT "gpio: I/O memory request failed\n");
return -ENODEV;
}
gpio_devices[i].regs = (struct gpio_reg *)ioremap_nocache(addr,
sizeof (struct gpio_reg));
if (!gpio_devices[i].regs) {
printk(KERN_CRIT "gpio: can't remap I/O memory\n");
return -ENODEV;
}
}
return 0;
}
module_init(gpio_init);
module_exit(gpio_cleanup);
[-- Attachment #3: gpio.h --]
[-- Type: text/x-chdr, Size: 829 bytes --]
#ifndef GPIO_INCLUDE_H
#define GPIO_INCLUDE_H
#include <asm/ioctl.h>
#define GPIO1_IO_OFFSET 0x00000c00
#define GPIO2_IO_OFFSET 0x00000d00
typedef struct _gpioDatAccess
{
unsigned int value;
unsigned int mask;
} gpioDataAccess;
#define GPIO_IOC_MAGIC 0xaa
#define GPIO_IOC_GET_DIR _IO(GPIO_IOC_MAGIC, 1)
#define GPIO_IOC_SET_DIR _IOW(GPIO_IOC_MAGIC, 2, gpioDataAccess)
#define GPIO_IOC_GET_DATA _IO(GPIO_IOC_MAGIC, 3)
#define GPIO_IOC_SET_DATA _IOW(GPIO_IOC_MAGIC, 4, gpioDataAccess)
#define GPIO_IOC_MAXNR 5
#define GPIO_NUM_BANKS 2
struct gpio_reg
{
unsigned int gpxdir;
unsigned int gpxdr;
unsigned int gpxdat;
unsigned int gpxier;
unsigned int gpximr;
unsigned int gpxicr;
};
/* On our CPU, bit 0 is the MS bit, so go from the left */
#define GPIO_BIT(x) (0x80000000 >> (x))
#endif /* GPIO_INCLUDE_H */
^ permalink raw reply
* Re: Patches added to master/for-2.6.25 branch of powerpc.git
From: Marian Balakowicz @ 2008-01-17 15:01 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
In-Reply-To: <18318.56299.476711.644917@cargo.ozlabs.ibm.com>
Hi,
Paul Mackerras wrote:
> Includes commits pulled from Josh Boyer's tree.
>
Will you be willing to pick up this one? It's a generic powerpc patch,
so I'm not sure where else to direct it.
[POWERPC] Add 'model: ...' line to common show_cpuinfo()
http://patchwork.ozlabs.org/linuxppc/patch?id=14661
Thanks,
m.
^ permalink raw reply
* Re: [PATCH/RFCv2] wdt: Add support for PowerQUICC watchdog
From: Jochen Friedrich @ 2008-01-17 14:55 UTC (permalink / raw)
To: Kumar Gala; +Cc: Scott Wood, linuxppc-dev, wim, linux-kernel
In-Reply-To: <A00FB5AE-903B-461A-B234-4BA817B3C5CB@kernel.crashing.org>
Hi Kumar,
> Why are you commenting on mpc83xx_wdt with respect to pq1_wdt?
>
> Also, is this driver just for PQ1 platforms or PQ1 & PQ2? If its just
> pq1 we should probably call it pq1_wdt*
It should be for pq1, pq2 and pq2pro. However, i only have the possibility
to test this on pq1.
>> arch/powerpc/platforms/8xx/mpc86xads_setup.c | 5 +
>> arch/powerpc/platforms/8xx/mpc885ads_setup.c | 5 +
>> arch/powerpc/sysdev/Makefile | 3 +
>> arch/powerpc/sysdev/pq_wdt.c | 203
>> +++++++++++++++++++++++
>> arch/powerpc/sysdev/pq_wdt.h | 28 ++++
>> drivers/watchdog/Kconfig | 13 ++-
>> drivers/watchdog/Makefile | 1 +
>> drivers/watchdog/pq_wdt.c | 225
>> ++++++++++++++++++++++++++
>> 8 files changed, 482 insertions(+), 1 deletions(-)
>> create mode 100644 arch/powerpc/sysdev/pq_wdt.c
>> create mode 100644 arch/powerpc/sysdev/pq_wdt.h
>> create mode 100644 drivers/watchdog/pq_wdt.c
>
> What are the bits in sysdev/pq_wdt.{c,h}. Why aren't these just in
> drivers/watchdog?
These are the parts needed to boot a device with activated watchdog. If a
bootloader like u-boot activates the watchdog, it can't be deactivated again
and needs to be reset at regular intervals. This is done using a kernel timer.
The driver in drivers/watchdog disables the timer as soon as the wdt device
is opened.
Thanks,
Jochen
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox