diff mbox

[1/1] generic spidev devices must be registered

Message ID 1470402714-10798-1-git-send-email-fabien.lahoudere@collabora.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Fabien Lahoudere Aug. 5, 2016, 1:11 p.m. UTC
Adding spidev in the compatible list, let configure spidev from device tree
instead of C source code.

Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
---
 Documentation/devicetree/bindings/spi/spidev.txt | 16 ++++++++++++++++
 drivers/spi/spidev.c                             |  1 +
 2 files changed, 17 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/spi/spidev.txt

Comments

Mark Rutland Aug. 5, 2016, 1:43 p.m. UTC | #1
On Fri, Aug 05, 2016 at 03:11:53PM +0200, Fabien Lahoudere wrote:
> Adding spidev in the compatible list, let configure spidev from device tree
> instead of C source code.

I'm not keen on this.

It ties the hardware description to today's use-case, and leaves the DT
without information regarding the particuarl device. The binding is also
written in terms of the userspace interface, which is backwards.

So NAK to this as-is.

Thanks,
Mark.

> 
> Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
> ---
>  Documentation/devicetree/bindings/spi/spidev.txt | 16 ++++++++++++++++
>  drivers/spi/spidev.c                             |  1 +
>  2 files changed, 17 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/spi/spidev.txt
> 
> diff --git a/Documentation/devicetree/bindings/spi/spidev.txt b/Documentation/devicetree/bindings/spi/spidev.txt
> new file mode 100644
> index 0000000..23200f2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/spidev.txt
> @@ -0,0 +1,16 @@
> +* SPIDEV
> +
> +spidev is a device driver to access to SPI devices using normal userspace I/O calls.
> +To make an SPI device compatible with this drivers add:
> +
> +Required properties:
> +- compatible : should be "spidev".
> +
> +Example:
> +
> +spidev0: spi@0 {
> +	compatible = "spidev";
> +	reg = <0>;
> +	spi-max-frequency = <1000000>;
> +	status = "okay";
> +};
> diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
> index 2e05046..d780491 100644
> --- a/drivers/spi/spidev.c
> +++ b/drivers/spi/spidev.c
> @@ -696,6 +696,7 @@ static struct class *spidev_class;
>  static const struct of_device_id spidev_dt_ids[] = {
>  	{ .compatible = "rohm,dh2228fv" },
>  	{ .compatible = "lineartechnology,ltc2488" },
> +	{ .compatible = "spidev" },
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, spidev_dt_ids);
> -- 
> 2.7.4
> 
--
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
Mark Brown Aug. 5, 2016, 2:21 p.m. UTC | #2
On Fri, Aug 05, 2016 at 02:43:43PM +0100, Mark Rutland wrote:
> On Fri, Aug 05, 2016 at 03:11:53PM +0200, Fabien Lahoudere wrote:
> > Adding spidev in the compatible list, let configure spidev from device tree
> > instead of C source code.

> I'm not keen on this.

> It ties the hardware description to today's use-case, and leaves the DT
> without information regarding the particuarl device. The binding is also
> written in terms of the userspace interface, which is backwards.

> So NAK to this as-is.

Indeed.  Fabien, please see the *extensive* and repeated previous
discussions of this topic.  Device tree is there to describe the
hardware, not the software you currently happen to be using on your
system.  Please also see the comments in the driver which explain why we
require a compatible string which is descriptive of the hardware.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/spi/spidev.txt b/Documentation/devicetree/bindings/spi/spidev.txt
new file mode 100644
index 0000000..23200f2
--- /dev/null
+++ b/Documentation/devicetree/bindings/spi/spidev.txt
@@ -0,0 +1,16 @@ 
+* SPIDEV
+
+spidev is a device driver to access to SPI devices using normal userspace I/O calls.
+To make an SPI device compatible with this drivers add:
+
+Required properties:
+- compatible : should be "spidev".
+
+Example:
+
+spidev0: spi@0 {
+	compatible = "spidev";
+	reg = <0>;
+	spi-max-frequency = <1000000>;
+	status = "okay";
+};
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
index 2e05046..d780491 100644
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -696,6 +696,7 @@  static struct class *spidev_class;
 static const struct of_device_id spidev_dt_ids[] = {
 	{ .compatible = "rohm,dh2228fv" },
 	{ .compatible = "lineartechnology,ltc2488" },
+	{ .compatible = "spidev" },
 	{},
 };
 MODULE_DEVICE_TABLE(of, spidev_dt_ids);