Linux mainlining effort

The purpose of this page is to try and define sub-goals and milestones for mainlining effort, containing goals and sub-goals with milestones for adding Allwinner support in the upstream mainline Linux Kernel.

It is very important to note that this is intended as a rough set of minimal goals - it is not meant to collide with the huge effort of rewriting major drivers!

=Overview= The idea is to submit break the code needed to run the Linux kernel on Allwinner SoCs upstream to the official Linux kernel, also checkout Linux-tree-diff.

This can be achieved by following the concept outlined in the Your new ARM SoC Linux support check-list! published by Thomas Petazzoni from Free Electrons.

Where relevant, I have attempted to include who is currently working on an item, mostly separate from any particular mainlining goal.

=Milestones=

Milestone 1 (Merged into 3.8)

 * Core SoC
 * Timer
 * UART
 * Device Tree
 * Interrupt controller

Related merges: ,

Added board support: Cubieboard, A13-OLinuXino

Merged into 3.9

 * PINCTRL driver
 * GPIO-lib based driver

Related merges:

Added Board Support: Hackberry

Merged into 3.10

 * LED support (Patches sent: latest versions, )
 * Clock driver (Patches sent: latest version )

Planned for 3.10

 * Clock Gates
 * Complete UART supports
 * EMAC Driver

Milestone 3+ as they mature

 * DMA driver (WiP: Matt Porter (mdp))
 * I2C driver (WiP: Maxime Ripard (mripard))
 * SPI driver (WiP: Matt Porter (mdp))
 * USB driver (WiP: Felipe Balbi (felipebalbi))

I2C dependent drivers

 * PMU driver

DMA dependent drivers

 * NAND MTD driver
 * MMC driver
 * Sound driver

Needing major rework
These drivers need major rework AND lack documentation other than existing source pile.


 * USB Driver
 * USB Gadget driver
 * Display driver (libv)

Unlikely
These are too far off the track third party drivers making it unlikely they will ever get accepted mainline.


 * NAND Allwinner block driver
 * Mali driver (will not happen unless libv gets a proper lima driver out)

Related but separate

 * Device-specific drivers

=References=

= See also = Linux-tree-diff - list of kernel files modified or added ('+' sign) for allwinner SOCs.

=External Links=
 * Your new ARM SoC Linux support check-list! by Thomas Petazzoni of Free Electrons
 * kernel.org - Official website for the Linux Kernel
 * http://github.com/torvalds/linux - Linux Torvalds GitHub account with the upstream Linux kernel
 * Linux Kernel documentation index
 * Linux Kernel man pages
 * Kernel Newbies Site - Excellent source of information for people new to kernel
 * Linus' kernel tree for 2.6
 * Kernel bugzilla - Regressions for each of recent versions
 * Linux-libre project - Maintains and distributes fully free kernel
 * LinGrok, Linux kernel source code cross-reference