I'd recommend you give a shot to upstream kernel (3.7), I recently tested it there. You'll just have to add a DT snippet like this:
ssp0: ssp@80010000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx28-spi";
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>;
clock-frequency = <3000000>;
status = "okay";
spidev@0x00 {
compatible = "spidev";
spi-max-frequency = <30000000>;
reg = <0>;
};
};
As for non-DT board-file init, you want something like this:
static struct spi_board_info spi_board_info[] __initdata = {
{
.modalias = "spidev",
.bus_num = 1,
.chip_select = 0,
.max_speed_hz = 30000000,
},
};
And then do NOT forget to call spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); in your platform init ! In any case, do not forget to enable the spidev driver in the kernel.
Besides, give a go to devtmpfs (mount -t devtmpfs dev /dev) , your udev might just be crap and won't create the node (you can spy on udev with udevadm).