Message ID | 1412796428-3255-1-git-send-email-tthayer@opensource.altera.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Oct 08, 2014 at 02:27:08PM -0500, tthayer@opensource.altera.com wrote: > + spidev@0 { > + compatible = "spidev"; > + reg = <0>; /* chip select */ > + spi-max-frequency = <100000000>; > + }; No, if you're putting spidev into the DT that's broken - describe the hardware, not the software you're using to control it.
On 10/08/2014 03:05 PM, Mark Brown wrote: > On Wed, Oct 08, 2014 at 02:27:08PM -0500, tthayer@opensource.altera.com wrote: > >> + spidev@0 { >> + compatible = "spidev"; >> + reg = <0>; /* chip select */ >> + spi-max-frequency = <100000000>; >> + }; > No, if you're putting spidev into the DT that's broken - describe the > hardware, not the software you're using to control it. Hi Mark, There are quite a few instances of the spidev as a child of a spi node in the arch/arm/dts directory - imx6qdl-tx6.dtsi - imx53-tx53.dtsi - tegra30-apalis-eval.dts - spear1340-evb.dts I believe the reason these are added to the device tree is that they are automatically probed. If there is a different or better way to handle spidev, I'll be happy to do it. This seemed to be the cleanest way and had precedent. Thanks for reviewing this and I appreciate your input. Thor -- To unsubscribe from this list: send the line "unsubscribe linux-spi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Oct 09, 2014 at 02:19:09PM -0500, Thor Thayer wrote: > There are quite a few instances of the spidev as a child of a spi node in > the arch/arm/dts directory > - imx6qdl-tx6.dtsi > - imx53-tx53.dtsi > - tegra30-apalis-eval.dts > - spear1340-evb.dts > I believe the reason these are added to the device tree is that they are > automatically probed. These are all buggy - the DT is there to describe the hardware, not how Linux currently implements it. I see I need to add some code to spidev to make it complain loudy if instantiated from DT. > If there is a different or better way to handle spidev, I'll be happy to do > it. This seemed to be the cleanest way and had precedent. The DT should say what the physical device connected to the bus is using whatever binding is appropriate for that device. If that happens to be spidev in current Linux then the appropriate ID should be added to spidev.
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi index 4d77ad6..d81bc2d3 100644 --- a/arch/arm/boot/dts/socfpga.dtsi +++ b/arch/arm/boot/dts/socfpga.dtsi @@ -628,6 +628,30 @@ clock-names = "biu", "ciu"; }; + spi0: spi@fff00000 { + compatible = "snps,dw-apb-ssi"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfff00000 0x1000>; + interrupts = <0 154 4>; + num-cs = <4>; + bus-num = <0>; + clocks = <&spi_m_clk>; + status = "disabled"; + }; + + spi1: spi@fff01000 { + compatible = "snps,dw-apb-ssi"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0xfff01000 0x1000>; + interrupts = <0 156 4>; + num-cs = <4>; + bus-num = <1>; + clocks = <&spi_m_clk>; + status = "disabled"; + }; + /* Local timer */ timer@fffec600 { compatible = "arm,cortex-a9-twd-timer"; diff --git a/arch/arm/boot/dts/socfpga_cyclone5.dtsi b/arch/arm/boot/dts/socfpga_cyclone5.dtsi index bf51182..85c6b5c 100644 --- a/arch/arm/boot/dts/socfpga_cyclone5.dtsi +++ b/arch/arm/boot/dts/socfpga_cyclone5.dtsi @@ -48,5 +48,15 @@ sysmgr@ffd08000 { cpu1-start-addr = <0xffd080c4>; }; + + spi0: spi@fff00000 { + status = "okay"; + + spidev@0 { + compatible = "spidev"; + reg = <0>; /* chip select */ + spi-max-frequency = <100000000>; + }; + }; }; };