Messages in this thread Patch in this message | | | Date | Sat, 22 Nov 2003 12:49:30 +0100 | From | Jean Delvare <> | Subject | [PATCH 2.4] SCx200 config |
| |
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/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |