Hi,
I have a custom spi device connected to a Xilinx spi controller. To map the
register space of the controller a reg property is defined in the device tree.
Because my custom device also has register space which I want to map in my
driver, I also defined a reg property. Because things weren't running smooth I
started debugging and found in of_spi.c in the function
void of_register_spi_devices(struct spi_master *master, struct device_node *np)
the following piece of code (2.6.31)
...
/* Device address */
prop = of_get_property(nc, "reg", &len);
if (!prop || len < sizeof(*prop)) {
dev_err(&master->dev, "%s has no 'reg' property\n",
nc->full_name);
spi_dev_put(spi);
continue;
}
spi->chip_select = *prop;
Why does the reg property value of spi child devices is assigned to the
chip_select? Is there another way for spi devices to propagate their register
space?
The related device tree snippet is as follows
xps-...@83440000 {
compatible = "xlnx,xps-spi-2.00.b";
interrupt-parent = <&int_ctrl>;
interrupts = < 1 2 >;
reg = < 0x83440000 0x10000 >;
xlnx,family = "virtex4";
xlnx,fifo-exist = <0x0>;
xlnx,num-offchip-ss-bits = <0x0>;
xlnx,num-ss-bits = <0x1>;
xlnx,sck-ratio = <0x40>;
#address-cells = <1>;
#size-cells = <1>;
dev...@0,0 {
compatible = "beissbarth,orion_cam";
reg = <0x48 0x8>;
spi-max-frequency = <25000000>;
interrupt-parent = <&int_ctrl>;
interrupts = < 8 2 >;
};
};
Cheers,
Matthias.
_______________________________________________
Linuxppc-dev mailing list
[email protected]
https://lists.ozlabs.org/listinfo/linuxppc-dev