Skip to content

Commit

Permalink
[PATCH] spi: misc fixes
Browse files Browse the repository at this point in the history
This collects some small SPI patches that seem to be missing from the MM tree:

  - spi_butterfly kbuild hooks got dropped somehow; this restores them
  - quick fix for a (theoretical?) m25p80_write() oops noted by Andrew
  - quick fix for a potential config-specific oops for mtd_dataflash()
  - minor doc tweaks

Signed-off-by: David Brownell <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
David Brownell authored and gregkh committed Jan 14, 2006
1 parent 8275c64 commit 7111763
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 2 deletions.
13 changes: 13 additions & 0 deletions Documentation/spi/spi-summary
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ shows up in sysfs in several locations:
/sys/devices/.../CTLR/spiB.C ... spi_device for on bus "B",
chipselect C, accessed through CTLR.

/sys/devices/.../CTLR/spiB.C/modalias ... identifies the driver
that should be used with this device (for hotplug/coldplug)

/sys/bus/spi/devices/spiB.C ... symlink to the physical
spiB-C device

Expand Down Expand Up @@ -247,6 +250,12 @@ driver is registered:

Like with other static board-specific setup, you won't unregister those.

The widely used "card" style computers bundle memory, cpu, and little else
onto a card that's maybe just thirty square centimeters. On such systems,
your arch/.../mach-.../board-*.c file would primarily provide information
about the devices on the mainboard into which such a card is plugged. That
certainly includes SPI devices hooked up through the card connectors!


NON-STATIC CONFIGURATIONS

Expand All @@ -258,6 +267,10 @@ up the spi bus master, and will likely need spi_new_device() to provide the
board info based on the board that was hotplugged. Of course, you'd later
call at least spi_unregister_device() when that board is removed.

When Linux includes support for MMC/SD/SDIO/DataFlash cards through SPI, those
configurations will also be dynamic. Fortunately, those devices all support
basic device identification probes, so that support should hotplug normally.


How do I write an "SPI Protocol Driver"?
----------------------------------------
Expand Down
4 changes: 3 additions & 1 deletion drivers/mtd/devices/m25p80.c
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,9 @@ static int m25p80_write(struct mtd_info *mtd, loff_t to, size_t len,

spi_sync(flash->spi, &m);

*retlen += m.actual_length - sizeof(flash->command);
if (retlen)
*retlen += m.actual_length
- sizeof(flash->command);
}
}

Expand Down
2 changes: 1 addition & 1 deletion drivers/mtd/devices/mtd_dataflash.c
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,7 @@ add_dataflash(struct spi_device *spi, char *name,
priv->partitioned = 1;
return add_mtd_partitions(device, parts, nr_parts);
}
} else if (pdata->nr_parts)
} else if (pdata && pdata->nr_parts)
dev_warn(&spi->dev, "ignoring %d default partitions on %s\n",
pdata->nr_parts, device->name);

Expand Down
10 changes: 10 additions & 0 deletions drivers/spi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,16 @@ config SPI_BITBANG
need it. You only need to select this explicitly to support driver
modules that aren't part of this kernel tree.

config SPI_BUTTERFLY
tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
depends on SPI_MASTER && PARPORT && EXPERIMENTAL
select SPI_BITBANG
help
This uses a custom parallel port cable to connect to an AVR
Butterfly <http://www.atmel.com/products/avr/butterfly>, an
inexpensive battery powered microcontroller evaluation board.
This same cable can be used to flash new firmware.

#
# Add new SPI master controllers in alphabetical order above this line
#
Expand Down
1 change: 1 addition & 0 deletions drivers/spi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ obj-$(CONFIG_SPI_MASTER) += spi.o

# SPI master controller drivers (bus)
obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o
# ... add above this line ...

# SPI protocol drivers (device/link on bus)
Expand Down

0 comments on commit 7111763

Please sign in to comment.