Location of files for a new driver

Greg KH greg at kroah.com
Tue May 5 14:05:36 EDT 2020

On Tue, May 05, 2020 at 04:38:06PM +0200, Jacko Dirks wrote:
> On Tue, May 05, 2020 at 04:20:32PM +0200, Greg KH wrote:
> > drivers/staging/ is only for code that needs lots and lots of work to
> > get into the "real" part of the kernel.  It also requires a TODO file
> > that lists what is left to do to get it out of that location.
> Oh, I did not know that staging was optional. Well, I will attempt to
> skip staging in that case

Please do :)

> > It all depends on what you are writing.  What exactly does this code do?
> > That will determine where it goes in the kernel tree.
> The code is a driver for the Broadcom BSC, which lives on the Raspberry
> Pi 3 & 4 (at least, maybe also on 1 & 2). This device can act as an I2C
> slave. To "announce" the device (tell the device tree which pins need to
> be configured how, etcetera) I need to change existing dts/dtsi files,
> to actually be able to enable the device I need to create a new overlay. 
> Finally, the actual driver needs to be created in drivers/i2c/busses. And 
> then there is also some makefile, documentation and kconfig.
> Does that sound right?

Sounds correct to me.  It's easy to move files around if you make up a
patch and submit it to the mailing lists and people tell you to do so.
The harder part is writing a driver that works :)

good luck!

greg k-h

More information about the Kernelnewbies mailing list