Re: Char Driver for Silicon Labs Si446x Transceivers

From: Greg KH
Date: Tue Jul 06 2021 - 01:10:58 EST


On Mon, Jul 05, 2021 at 06:09:28PM -0400, Sunip Mukherjee wrote:
> Hi,
>
> I am very new to the kernel community; this is my first message in the
> LKML so my apologies if I am doing things wrong.
>
> I have been using an Si4463 transceiver for UHF communication with a
> cubesat I developed. I could not find any code to control the
> transceiver on Linux. The closest thing I could find was an AVR
> implementation by Zak Kemble
> (https://blog.zakkemble.net/si4463-radio-library-avr-arduino/).
> I followed the API docs and rewrote the whole thing at first for
> userland only (can be found here:
> https://github.com/SPACE-HAUC/si446x_linux/releases/tag/v3.1), and
> then I decided it would be a great learning opportunity for me to port
> it to the kernel.
>
> The kernel port has gone mostly smoothly. The transceiver communicates
> with the host MCU over SPI, and requires a pin for RESET, and another
> pin for IRQ.
> I have implemented the driver to provide a char device (/dev/si446x#)
> to the userland for open, read, write, poll and ioctl.
> I had initially set up a pull request for the driver and the device
> tree overlay to the Raspberry Pi kernel community. They have agreed to
> accept the device tree overlay for the device, however the driver
> needs to be included by the Linux Kernel community. I want to use this
> opportunity to find some people who have access to a Si446x
> transceiver and a Raspberry Pi, so that the code I have can be tested,
> and if deemed worthy, included in the kernel tree.
>
> My code is hosted here: https://github.com/sunipkmukherjee/silabs.git
>
> Any suggestions/criticisms are welcome.

If you post it in a patch form, as described in our documentation, I
will be glad to review it. Otherwise just looking at a random github
repo is quite difficult and provides no way to give proper feedback.

Instructions on how to make a patch and submit it and the proper format
for everything can be found in the Documentation/SubmittingPatches file.

thanks,

greg k-h