[PATCH v3 0/8] misc: Add mikroBUS driver

Ayush Singh ayushdevel1325 at gmail.com
Fri Mar 15 14:41:29 PDT 2024


On 3/16/24 02:50, Vaishnav M A wrote:

> Hi Ayush,
>
> On Sat, Mar 16, 2024 at 12:19 AM Ayush Singh <ayushdevel1325 at gmail.com> wrote:
>> MikroBUS is an open standard  developed by MikroElektronika for connecting
>> add-on boards to microcontrollers or microprocessors. It essentially
>> allows you to easily expand the functionality of your main boards using
>> these add-on boards.
>>
>> This patchset adds mikroBUS as a Linux bus type and provides a driver to
>> parse, and flash mikroBUS manifest and register the mikroBUS board.
>>
> As Russel had provided the feedback, this patchset does not add support
> for mikrobus, but a subset of mikrobus add-on boards which have a
> 1-wire click ID EEPROM with an identifier blob that is similar to the greybus
> manifest. This series lacks the necessary context and details to the
> specifications that is implemented.
>
> https://www.mikroe.com/clickid - you should atleast point to this specs.
>
>> The v1 and v2 of this patchset was submitted by Vaishnav M A back in
>> 2020. This patchset also includes changes made over the years as part of
>> BeagleBoards kernel.
>>
>> Link: https://www.mikroe.com/mikrobus
>> Link: https://docs.beagleboard.org/latest/boards/beagleplay/
>> Link: https://lore.kernel.org/lkml/20200818124815.11029-1-vaishnav@beagleboard.org/ Patch v2
>>
> Thank you for making the effort to upstream this, arriving at the
> latest revision of the public available click ID hardware took almost 2-3 years
> and I could not personally keep up with upstreaming, my sincere apologies to
> the maintainers that provided feedback on the earlier revisions. I hope an
> updated version of this series lands upstream with your work as the  efforts
> made at BeagleBoard.org Foundation makes development simpler by adding
> plug and play support to these add-on boards. Also this series mentions only
> the case where mikroBUS port is present physically on the board, but there
> can be mikroBUS ports appearing over greybus and that is the reason why
> greybus manifest was chose as descriptor format - the series needs to
> describe these details so that a reviewer has the necessary information
> to review your patches. A link to beagleconnect is also helpful to reviewers.
>
> https://docs.beagleboard.org/latest/projects/beagleconnect/index.html


Yes, I left out the mikroBUS over greybus patches for now since this 
patch series is already too big.

>> Changes in v3:
>> - Use phandle instead of busname for spi
>> - Use spi board info for registering new device
>> - Convert dt bindings to yaml
>> - Add support for clickID
>> - Code cleanup and style changes
>> - Additions required to spi, serdev, w1 and regulator subsystems
>>
>> Changes in v2:
>> - support for adding mikroBUS ports from DT overlays,
>> - remove debug sysFS interface for adding mikrobus ports,
>> - consider extended pin usage/deviations from mikrobus standard
>>    specifications
>> - use greybus CPort protocol enum instead of new protocol enums
>> - Fix cases of wrong indentation, ignoring return values, freeing allocated
>>    resources in case of errors and other style suggestions in v1 review.
>>
>> Ayush Singh (7):
> It looks like the version you have sent is very similar to the
> version I had previously updated for Beagleboard git with
> only rebases and cleanup, but I don't see major functional
> changes. I request you give credit to the original author
> atleast as a Co-author with Co-developed by tag, As there
> there was a significant amount of work done by myself to
> come up with this specs and get everything working on close
> to 150 mikrobus add-on boards on physical mikroBUS ports
> and over greybus:
> https://github.com/vaishnavachath/manifesto/tree/mikrobusv3/manifests

Yes, I will add Co-author and Co-developed tags. I think I should use 
your ti email? I would have preferred to keep you as the author in the 
git commit but I could not get the patches applied cleanly back when I 
tried it.

> The driver today is poorly written and was one of the first
> Linux kernel development work I did while I was still in college
> so I might have made a lot of blunders and just rebasing and
> reposting will not get this to an acceptable state, here is what
> I would recommend:
>
> * Drop all the unnecessary changes in the mikroBUS driver to
> support fixed-regulators, fixed-clocks, serdev device .etc and
> implement minimal changes to support the mikroBUS clickid
> devices.
>
> * Provide necessary justification to why the particular descriptor
> format (greybus manifest) is chosen, with pull request to manifesto
> and greybus-specification.
> https://github.com/projectara/greybus-spec
> and similar to : https://github.com/projectara/manifesto/pull/2
>
> * Move the mikrobus W1 driver to w1/ subsytem, it is a standard
> W1 EEPROM driver (also a standard part with updated family code)
> * Keep a RFC series of changes where mikroBUS ports can appear over
> greybus to justify why the identifier format needs to be extended greybus
> manifest.
>
>>    dt-bindings: misc: Add mikrobus-connector
>>    w1: Add w1_find_master_device
> Dependent patches that goes to different subsytems should
> be sent first separately to avoid confusion and then your series
> should mention the necessary dependencies. (same for
> spi).
>
>>    spi: Make of_find_spi_controller_by_node() available
>>    regulator: fixed-helper: export regulator_register_always_on
>>    greybus: Add mikroBUS manifest types
>>    mikrobus: Add mikrobus driver
>>    dts: ti: k3-am625-beagleplay: Add mikroBUS
> Send this patch as DONOTMERGE till your bindings are
> accepted.

Thanks, should I just add it in the message body? I cannot see anything 
in docs about that.

>> Vaishnav M A (1):
>>    serdev: add of_ helper to get serdev controller
>>
> Drop this from initial series,
> I will provide further feedback from my TI e-mail,
> Vaishnav Achath <vaishnav.a at ti.com>
>
> Thank again for taking this up,
>
> Thanks and Regards,
> Vaishnav
>
>>   .../bindings/misc/mikrobus-connector.yaml     | 110 ++
>>   MAINTAINERS                                   |   7 +
>>   .../arm64/boot/dts/ti/k3-am625-beagleplay.dts |  76 +-
>>   drivers/misc/Kconfig                          |   1 +
>>   drivers/misc/Makefile                         |   1 +
>>   drivers/misc/mikrobus/Kconfig                 |  19 +
>>   drivers/misc/mikrobus/Makefile                |   6 +
>>   drivers/misc/mikrobus/mikrobus_core.c         | 942 ++++++++++++++++++
>>   drivers/misc/mikrobus/mikrobus_core.h         | 201 ++++
>>   drivers/misc/mikrobus/mikrobus_id.c           | 229 +++++
>>   drivers/misc/mikrobus/mikrobus_manifest.c     | 502 ++++++++++
>>   drivers/misc/mikrobus/mikrobus_manifest.h     |  20 +
>>   drivers/regulator/fixed-helper.c              |   1 +
>>   drivers/spi/spi.c                             | 206 ++--
>>   drivers/tty/serdev/core.c                     |  19 +
>>   drivers/w1/w1.c                               |   6 +-
>>   drivers/w1/w1_int.c                           |  27 +
>>   include/linux/greybus/greybus_manifest.h      |  49 +
>>   include/linux/serdev.h                        |   4 +
>>   include/linux/spi/spi.h                       |   4 +
>>   include/linux/w1.h                            |   1 +
>>   21 files changed, 2318 insertions(+), 113 deletions(-)
>>   create mode 100644 Documentation/devicetree/bindings/misc/mikrobus-connector.yaml
>>   create mode 100644 drivers/misc/mikrobus/Kconfig
>>   create mode 100644 drivers/misc/mikrobus/Makefile
>>   create mode 100644 drivers/misc/mikrobus/mikrobus_core.c
>>   create mode 100644 drivers/misc/mikrobus/mikrobus_core.h
>>   create mode 100644 drivers/misc/mikrobus/mikrobus_id.c
>>   create mode 100644 drivers/misc/mikrobus/mikrobus_manifest.c
>>   create mode 100644 drivers/misc/mikrobus/mikrobus_manifest.h
>>
>>
>> base-commit: 61996c073c9b070922ad3a36c981ca6ddbea19a5
>> --
>> 2.44.0
>>

I guess I will start with only i2c and spi support and go from there.


Ayush Singh




More information about the linux-arm-kernel mailing list