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 register the mikroBUS board using device tree infrastructure. The patchset is based on work originally done by Vaishnav. Link: https://www.mikroe.com/mikrobus Link: https://docs.beagleboard.org/latest/boards/beagleplay/ Link: https://lore.kernel.org/all/20240317193714.403132-1-ayushdevel1325@xxxxxxxxx/ Patch v4 Changes v5 - Complete rewrite to use device tree instead of mikroBUS manifest. - Only support for SPI. - Adds `mikrobus,spi` compatible property. Changes v4: - Better commit messages - Remove clickID, serdev, pwm, regulator, clocks etc. Just the basic mikroBUS driver. - Fix a lot of memory leaks, unused variables, etc. - Create accompanying PR in Greybus Spec repository - Switch to 80 columns formatting - Some other fixes pointed out in v3 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. Signed-off-by: Ayush Singh <ayush@xxxxxxxxxxxxxxx> --- Ayush Singh (7): dt-bindings: connector: Add mikrobus-connector dt-bindings: mikrobus: Add mikrobus board base dt-bindings: mikrobus: Add mikrobus-spi binding spi: Make of_find_spi_controller_by_node() available spi: Make of_register_spi_device() available mikrobus: Add mikroBUS driver dts: ti: k3-am625-beagleplay: Add mikroBUS .../bindings/connector/mikrobus-connector.yaml | 107 ++++++ .../bindings/mikrobus/mikrobus-board.yaml | 20 ++ .../devicetree/bindings/mikrobus/mikrobus-spi.yaml | 37 +++ MAINTAINERS | 9 + arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 94 +++++- drivers/misc/Kconfig | 16 + drivers/misc/Makefile | 1 + drivers/misc/mikrobus.c | 361 +++++++++++++++++++++ drivers/spi/spi.c | 209 ++++++------ include/linux/spi/spi.h | 7 + 10 files changed, 750 insertions(+), 111 deletions(-) --- base-commit: f76698bd9a8ca01d3581236082d786e9a6b72bb7 change-id: 20240627-mikrobus-scratch-spi-ad8c98dcec98 Best regards, -- Ayush Singh <ayush@xxxxxxxxxxxxxxx>