SPI devices and OF

Sascha Hauer s.hauer at pengutronix.de
Wed Apr 4 21:09:16 EST 2007


I'm currently writing a driver for the mpc5200 spi controller (the
dedicated one, not the PSC ones).
The driver has the form of a of_platform_driver. My problem is that I
don't know how to define the spi devices on the spi bus. My current
approach is having something like this in the OF tree:

	spi at f00 {
		device_type = "spi";
		compatible = "mpc5200b-spi\0mpc5200-spi";
		reg = <f00 20>;
		interrupts = <2 d 0 2 e 0>;
		interrupt-parent = <500>;
		mmc at 0 {
			device_type = "mmc_spi";
			compatible = "mmc_spi";

I can then parse the children in my spi driver with

	while( (child = of_get_next_child(odev->node, child))) {
		struct spi_board_info info;

		info.max_speed_hz = 
		info.bus_num = 
		info.chip_select = 
		spi_register_board_info(&info, 1);

I think it will work this way but I found no way getting the
platform_data for the spi devices.

I could also define the spi devices in a board specific c file but there
I would not know which spi bus is which if there is more than one.

Any thoughts on this or am I completely on the wrong track?


More information about the Linuxppc-dev mailing list