linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2.4] SCx200 config
@ 2003-11-22 11:49 Jean Delvare
  0 siblings, 0 replies; only message in thread
From: Jean Delvare @ 2003-11-22 11:49 UTC (permalink / raw)
  To: Christer Weinigel, LKML; +Cc: Eyal Lebedinsky, Bernd Schubert, Aschwin Marsman

Hi Christer, hi all,

As I was working on other I2C stuff, I came across the SCx200 driver
configration options, and it doesn't look correct. I could find three
threads where users (CC'd) are complaining about that:
http://marc.theaimsgroup.com/?l=linux-kernel&m=103960396800992&w=2
http://marc.theaimsgroup.com/?l=linux-kernel&m=105586728225277&w=2
http://marc.theaimsgroup.com/?l=linux-kernel&m=106103689410136&w=2

As I understand it, CONFIG_SCx200 and CONFIG_SCx200_GPIO are almost the
same thing in 2.4, since the SCx200 support is limited to GPIO. But
CONFIG_SCx200 doesn't seem to be defined anywhere, while it is
used in various places (Documentation/Configure.help,
drivers/char/Config.in, drivers/i2c/Config.in).

I was about to suggest that we could get rid of CONFIG_SCx200_GPIO
completely, and use CONFIG_SCx200 everywhere, but it looks like some
drivers (drivers/char/scx200_wdt.c, drivers/i2c/scx200_acb.c) need only
scx200.o, not scx200_gpio.o, so we need to really define CONFIG_SCx200
and CONFIG_SCx200_GPIO separately (with the second depending on the
first, of course).

Also, the CONFIG_SCx200_GPIO entry in Documentation/Configure.help looks
like it would apply to CONFIG_SCx200_I2C instead, which has no help text
for now. This means that CONFIG_SCx200_GPIO needs a new help text.

Last, the dependencies for CONFIG_SCx200_ACB seem to be wrong. It
doesn't actually depend on CONFIG_I2C_ALGOBIT (only CONFIG_I2C), so it
should be moved outside of the 'if [ "$CONFIG_I2C_ALGOBIT" != "n" ]'
block. This is indeed the first thing I noticed, then I started digging
and found the other problems.

The following patch fixes it all. I tested that the configration
dependencies behave as intended, and also made sure everything would
still compile (as modules).

Christer (and others), if you could please take a look and confirm that
I got it correctly, I'd send it to Marcelo. Help texts may need
rewording, proposals welcome. Also, we might consider reordering the
options a bit, because for now CONFIG_SCx200 and CONFIG_SCx200_GPIO are
after the I2C and Watchdog menus, where the dependencies on them are.
Having to go back that way might confuse the user.

Comments welcome.

diff -ru linux-2.4.23-rc3/Documentation/Configure.help linux-2.4.23-rc3-k1/Documentation/Configure.help
--- linux-2.4.23-rc3/Documentation/Configure.help	Sat Nov 22 09:09:35 2003
+++ linux-2.4.23-rc3-k1/Documentation/Configure.help	Sat Nov 22 12:32:56 2003
@@ -28113,6 +28113,13 @@
   This support is also available as a module.  If compiled as a
   module, it will be called scx200.o.
 
+NatSemi SCx200 GPIO support
+CONFIG_SCx200_GPIO
+  Enable the use of GPIO pins of a SCx200 processor.
+
+  This support is also available as a module.  If compiled as a
+  module, it will be called scx200_gpio.o.
+
 NatSemi SCx200 Watchdog
 CONFIG_SCx200_WDT
   Enable the built-in watchdog timer support on the National 
@@ -28264,7 +28271,7 @@
   If compiled as a module, it will be called uclinux.o.
 
 NatSemi SCx200 I2C using GPIO pins
-CONFIG_SCx200_GPIO
+CONFIG_SCx200_I2C
   Enable the use of two GPIO pins of a SCx200 processor as an I2C bus.
 
   If you don't know what to do here, say N.
diff -ru linux-2.4.23-rc3/drivers/char/Config.in linux-2.4.23-rc3-k1/drivers/char/Config.in
--- linux-2.4.23-rc3/drivers/char/Config.in	Sat Nov 22 09:09:36 2003
+++ linux-2.4.23-rc3-k1/drivers/char/Config.in	Sat Nov 22 12:27:12 2003
@@ -244,7 +244,7 @@
    tristate '  Mixcom Watchdog' CONFIG_MIXCOMWD 
    tristate '  SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
    dep_tristate '  SC1200 Watchdog Timer (EXPERIMENTAL)' CONFIG_SC1200_WDT $CONFIG_EXPERIMENTAL
-   tristate '  NatSemi SCx200 Watchdog' CONFIG_SCx200_WDT
+   dep_tristate '  NatSemi SCx200 Watchdog' CONFIG_SCx200_WDT $CONFIG_SCx200
    tristate '  Software Watchdog' CONFIG_SOFT_WATCHDOG
    tristate '  W83877F (EMACS) Watchdog Timer' CONFIG_W83877F_WDT
    tristate '  WDT Watchdog timer' CONFIG_WDT
@@ -268,7 +268,8 @@
    fi
    tristate 'NetWinder flash support' CONFIG_NWFLASH
 fi
-dep_tristate 'NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200
+dep_tristate 'NatSemi SCx200 Support' CONFIG_SCx200
+dep_tristate '  NatSemi SCx200 GPIO Support' CONFIG_SCx200_GPIO $CONFIG_SCx200
 
 if [ "$CONFIG_IA64_GENERIC" = "y" -o "$CONFIG_IA64_SGI_SN2" = "y" ] ; then
    bool 'SGI SN2 fetchop support' CONFIG_FETCHOP
diff -ru linux-2.4.23-rc3/drivers/char/Makefile linux-2.4.23-rc3-k1/drivers/char/Makefile
--- linux-2.4.23-rc3/drivers/char/Makefile	Sat Nov 22 09:09:36 2003
+++ linux-2.4.23-rc3-k1/drivers/char/Makefile	Sat Nov 22 12:17:28 2003
@@ -274,7 +274,8 @@
 obj-$(CONFIG_DZ) += dz.o
 obj-$(CONFIG_NWBUTTON) += nwbutton.o
 obj-$(CONFIG_NWFLASH) += nwflash.o
-obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o scx200.o
+obj-$(CONFIG_SCx200) += scx200.o
+obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o
 
 # Only one watchdog can succeed. We probe the hardware watchdog
 # drivers first, then the softdog driver.  This means if your hardware
diff -ru linux-2.4.23-rc3/drivers/i2c/Config.in linux-2.4.23-rc3-k1/drivers/i2c/Config.in
--- linux-2.4.23-rc3/drivers/i2c/Config.in	Mon Aug 25 13:44:41 2003
+++ linux-2.4.23-rc3-k1/drivers/i2c/Config.in	Sat Nov 22 12:24:52 2003
@@ -13,13 +13,14 @@
       dep_tristate '  Philips style parallel port adapter' CONFIG_I2C_PHILIPSPAR $CONFIG_I2C_ALGOBIT $CONFIG_PARPORT
       dep_tristate '  ELV adapter' CONFIG_I2C_ELV $CONFIG_I2C_ALGOBIT
       dep_tristate '  Velleman K9000 adapter' CONFIG_I2C_VELLEMAN $CONFIG_I2C_ALGOBIT
-      dep_tristate '  NatSemi SCx200 I2C using GPIO pins' CONFIG_SCx200_I2C $CONFIG_SCx200 $CONFIG_I2C_ALGOBIT
+      dep_tristate '  NatSemi SCx200 I2C using GPIO pins' CONFIG_SCx200_I2C $CONFIG_SCx200_GPIO $CONFIG_I2C_ALGOBIT
       if [ "$CONFIG_SCx200_I2C" != "n" ]; then
          int  '    GPIO pin used for SCL' CONFIG_SCx200_I2C_SCL 12
          int  '    GPIO pin used for SDA' CONFIG_SCx200_I2C_SDA 13
       fi
-      dep_tristate '  NatSemi SCx200 ACCESS.bus' CONFIG_SCx200_ACB $CONFIG_I2C
    fi
+
+   dep_tristate 'NatSemi SCx200 ACCESS.bus' CONFIG_SCx200_ACB $CONFIG_SCx200 $CONFIG_I2C
 
    dep_tristate 'I2C PCF 8584 interfaces' CONFIG_I2C_ALGOPCF $CONFIG_I2C
    if [ "$CONFIG_I2C_ALGOPCF" != "n" ]; then


-- 
Jean Delvare
http://www.ensicaen.ismra.fr/~delvare/

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-11-22 11:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-11-22 11:49 [PATCH 2.4] SCx200 config Jean Delvare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).