Re: [PATCH] p54spi: convert to devicetree

From: Christian Lamparter
Date: Tue Mar 14 2023 - 16:19:06 EST


Hi,

On 3/14/23 17:30, Arnd Bergmann wrote:
The Prism54 SPI driver hardcodes GPIO numbers and expects users to
pass them as module parameters, apparently a relic from its life as a
staging driver. This works because there is only one user, the Nokia
N8x0 tablet.

Convert this to the gpio descriptor interface and move the gpio
line information into devicetree to improve this and simplify the
code at the same time.

Yes, this is definitely the right idea/way. From what I remember, Kalle
Valo was partially involved in p54spi/stlc45xx. The details are very fuzzy.
So, I could be totally wrong. From what I remember Kalle was working
for Nokia (or as a contractor for Nokia?) at the time.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

I've seen the device-tree comments. That said, this is/was overdue.
You can definitely have this for a v2 :).
Acked-by: Christian Lamparter <chunkeey@xxxxxxxxx>

Thanks you!
Christian

---
As I don't have an N8x0, this is completely untested.

I listed the driver authors (Johannes and Christian) as the maintainers
of the binding document, but I don't know if they actually have this
hardware. It might be better to list someone who is actually using it.

Among the various chip identifications, I wasn't sure which one to
use for the compatible string and the name of the binding document.
I picked st,stlc4560 as that was cited as the version in the N800
on multiple websites.
---
.../bindings/net/wireless/st,stlc45xx.yaml | 64 +++++++++++++++++
MAINTAINERS | 1 +
arch/arm/boot/dts/omap2.dtsi | 4 ++
arch/arm/boot/dts/omap2420-n8x0-common.dtsi | 12 ++++
arch/arm/mach-omap2/board-n8x0.c | 18 -----
drivers/net/wireless/intersil/p54/p54spi.c | 69 +++++++------------
drivers/net/wireless/intersil/p54/p54spi.h | 3 +
7 files changed, 109 insertions(+), 62 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/wireless/st,stlc45xx.yaml

diff --git a/Documentation/devicetree/bindings/net/wireless/st,stlc45xx.yaml b/Documentation/devicetree/bindings/net/wireless/st,stlc45xx.yaml
new file mode 100644
index 000000000000..45bc4fab409a
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/wireless/st,stlc45xx.yaml
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/wireless/st,stlc45xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ST/Intersil/Conexant stlc45xx/p54spi/cx3110x SPI wireless device
+
+maintainers:
+ - Johannes Berg <johannes@xxxxxxxxxxxxxxxx>
+ - Christian Lamparter <chunkeey@xxxxxx>
Can you please change that to: Christian Lamparter <chunkeey@xxxxxxxxx> ?
(the @web.de/googlemail.com address still work too, but they are now just
forwarding)

+description: |
+ The SPI variant of the Intersil Prism54 wireless device was sold
+ under a variety of names, including ST Microelectronics STLC5460
+ and Conexant CX3110x.
+
+allOf:
+ - $ref: ieee80211.yaml#
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+ compatible:
+ enum:
+ - st,stlc4550
+ - st,stlc4560
+ - isil,p54spi
+ - cnxt,3110x
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ power-gpios:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ gpio {
+ gpio-controller;
+ #gpio-cells = <1>;
+ #interupt-cells = <1>;
+ };
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ wifi@0 {
+ reg = <0>;
+ compatible = "st,stlc4560";
+ spi-max-frequency = <48000000>;
+ interrupts-extended = <&gpio 23>;
+ power-gpios = <&gpio 1>;
+ };
+ };