On Thu, Apr 21, 2022 at 11:44:21AM +0200, Michael Walle wrote: > On 21/04/2022 11:11, Jerry Huang wrote: > >> Please also answer Michael's comments. > >> > >> [Jerry Huang] I double checked the MikroBus devices, we used two MikcroBus devices: > >> BLE P click: https://www.mikroe.com/ble-p-click > >> BEE click: https://www.mikroe.com/bee-click > >> Both of them are SPI interface connect to ls1028ardb through MiKcroBus interface. > >> So the name "semtech sx1301" is not correct for this node. > > > > I asked to remove the words "Devicetree bindings" and this was not finished. > > > > Now you mention that entire name of device is wrong... It's confusing. I > > don't know what device you are describing here. I expect you know. :) > > > > What is this binding about exactly? > > I *think* it's just exposing the mikrobus connector as an spidev device. > There was a former attempt by Vladimir here [1]. Now as it the nature > of such a connector that you can connect a myriad of devices there, it > doesn't really make sense to have a just particular one described. What > happens if that one will switch from spidev to a real driver in the > kernel? So using "spidev" for the compatible would be the first reflex. > But as described in the spidev driver this is plain wrong (and also causes > a warning/info message it) because it should describe the actual hardware. > > Thus I proposed to use DT overlays which are loaded according to what > is actually attached to the header, so a real driver could be loaded. > > But there *could* be a sane default which then could be replaced in > an DT overlay. Like "mirkobus-socket" or similar, which might expose > spidev. Actually it is more than just SPI, there is GPIO and resets and > I2C. Maybe it should be an MFD? I don't know. But that is something for > the DT maintainers to decide if they'll allow such "generic" devices. generic devices, no. MFD, no. What's needed here is a connector node (and driver) for the mikrobus socket. The connector node's purpose is to decouple the host DT from add-on board overlay DT. Something like this: connector { // And a more specific compatible if pins can have alt funcs? // Spec version needed? compatible = "mikrobus-socket"; // Will need regulators defined if child devices expect // regulators vcc-33-supply = <®33>; vcc-5-supply = <®5v>; i2c-parent = <&i2c1>; // Already a defined property spi-parent = <&spi0>; // New // RST pin reset-gpios = <&gpio 4 0>; // remap 'INT' (index 0) to host interrupt #interrupt-cells = <2>; #address-cells = <0>; interrupt-map = <0 0 &gpio 3 0>; spi { //devices }; i2c { }; }; The DT spec defines 'foo-map' properties extending interrupt-map. Currently only GPIO is defined. We might want to do the same thing for PWM. Or we make the connector node both a PWM consumer and provider. Rob