KernelDriverProjects: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
(18 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This page contains Hans' TODO list of kernel driver / u-boot projects. | This page contains Hans' TODO list of kernel driver / u-boot projects. | ||
These projects may also be undertaken by participants of the | |||
[[KernelDriverProgrammingCourse2015]]. | |||
__TOC__ | __TOC__ | ||
Line 6: | Line 9: | ||
= Open projects = | = Open projects = | ||
== | == Create a dts file and u-boot defconfig for uhost-u1a == | ||
* | * Create a dts file and u-boot defconfig for uhost-u1a | ||
* Difficulty: Easy | * Difficulty: Easy | ||
Line 18: | Line 21: | ||
== | == Add regulator nodes to the dts files of all boards with an axp221 pmic == | ||
* Add regulator nodes to the dts files of all boards with an axp221 pmic, to enable CPU voltage scaling and disable unused regulators | |||
* Boards: Columbus A31 DKT , Mele A1000G Quad | |||
* Difficulty: Easy | |||
== Add an i2c controller and axp152 child node to boards using an axp152 pmic == | |||
* | * Add an i2c controller and axp152 child node to boards using an axp152 pmic, to enable power button and "poweroff" support, see sun5i-a10s-auxtek-t003.dts for an example | ||
* Boards: r7-tv-dongle, a10s-mk802 | |||
* Difficulty: Easy | * Difficulty: Easy | ||
Line 26: | Line 37: | ||
== Silead GSL1680 touchcreen driver == | == Silead GSL1680 touchcreen driver == | ||
* Various (cheap) tablets use a gsl1680 touchscreen controller. An userspace driver for this touchscreen is available [https://github.com/rastersoft/gsl1680 here]. Write a proper kernel driver for this and upstream it. | * Various (cheap) tablets use a gsl1680 touchscreen controller ([http://dl.linux-sunxi.org/touchscreen/GSL1680.pdf datasheet]). An userspace driver for this touchscreen is available [https://github.com/rastersoft/gsl1680 here]. Write a proper kernel driver for this and upstream it. | ||
* A driver was recently posted for this [http://www.spinics.net/lists/linux-input/msg39695.html here], a good approach here would be to first get the userspace driver to work to make sure you've the right firmware, etc. and then try to get the posted driver to work, fixing it up as necessary. | * A driver was recently posted for this [http://www.spinics.net/lists/linux-input/msg39695.html here], a good approach here would be to first get the userspace driver to work to make sure you've the right firmware, etc. and then try to get the posted driver to work, fixing it up as necessary. | ||
* Yet another driver is [https://github.com/onitake/gslx680-acpi here], the above one is likely a better starting point, but this one may be useful in someway too | * Yet another driver is [https://github.com/onitake/gslx680-acpi here], the above one is likely a better starting point, but this one may be useful in someway too | ||
* Boards: Ippo q8h tablets, ga10h tablets | * Boards: Ippo q8h tablets, ga10h tablets | ||
* Difficulty: Easy/Medium | * Difficulty: Easy/Medium | ||
== Focaltech ft5x touchscreen driver == | == Focaltech ft5x touchscreen driver == | ||
* Various tablets use a Focaltech ft5x touchscreen controller. A driver is available in various Android kernel sources, see the linux-sunxi wiki [http://linux-sunxi.org/Touchscreen touchscreen page]. Write a proper kernel driver for this and upstream it. | * Various tablets use a Focaltech ft5x touchscreen controller. A driver is available in various Android kernel sources, see the linux-sunxi wiki [http://linux-sunxi.org/Touchscreen touchscreen page]. Write a proper kernel driver for this and upstream it. | ||
* Boards: Wits PRO A20 DKT, Columbus A31 DKT | * Boards: Wits PRO A20 DKT, Columbus A31 DKT, Chuwi_V7_CW0825 tablet, Intertoys Qware Pro 3 | ||
* Difficulty: Easy/Medium | |||
* Who: Bertrik see https://github.com/bertrik/KernelDriverCourse2015 | |||
== ZEITEC zet622x touchscreen driver == | |||
* Some tablets use a ZEITEC zet622x touchscreen controller. A [http://linux-sunxi.org/Touchscreen#zet6221 datasheet] for this chip is available. Write a proper kernel driver for this and upstream it. | |||
* Boards: Denver TAC-90011 tablet | |||
* Difficulty: Easy/Medium | * Difficulty: Easy/Medium | ||
Line 44: | Line 64: | ||
* [http://www.freescale.com/files/sensors/doc/data_sheet/MMA7660FC.pdf datasheet here] | * [http://www.freescale.com/files/sensors/doc/data_sheet/MMA7660FC.pdf datasheet here] | ||
* Something resembling a kernel driver, which exports both an input and a hwmon interface (which is wrong and should be removed) is available [http://files.chinaaet.com/files/blog/2011/10/07/7021917012132.txt here] and also [http://www.cprogramdevelop.com/4064103/ here] | * Something resembling a kernel driver, which exports both an input and a hwmon interface (which is wrong and should be removed) is available [http://files.chinaaet.com/files/blog/2011/10/07/7021917012132.txt here] and also [http://www.cprogramdevelop.com/4064103/ here] | ||
* Boards: | * Boards: Chuwi_V7_CW0825 tablet | ||
* Difficulty: Easy/Medium | * Difficulty: Easy/Medium | ||
Line 68: | Line 80: | ||
* Various tablets use a Bosch BMA250 accelerometer | * Various tablets use a Bosch BMA250 accelerometer | ||
* This accelerometer is supported by the drivers/iio/accel/bmc150-accel.c driver | * This accelerometer is supported by the drivers/iio/accel/bmc150-accel.c driver | ||
* | * All that needs to be done is hook things up in devicetree for all boards / tablets with this accelerometer | ||
* Boards: UTOO P66 | * Boards: UTOO P66 tablet, inet97fv2 (qware tablet pc pro3 / cherry m677), pov protab2_ips9 | ||
* Difficulty: Easy/Medium | * Difficulty: Easy/Medium | ||
== Bosch? mc32x0 accelerometer driver == | |||
* Some tablets use a mc32x0 accelerometer. Write a proper kernel driver for this and upstream it. | |||
* [https://github.com/gp-b2g/gp-peak-kernel/blob/master/drivers/misc/mc32x0.c Android driver here] | |||
* Boards: q8 94v-0 (a13, pink) | |||
* Difficulty: Easy/Medium | |||
== Add vbus-supply regulator support to the mv64xxx i2c controller driver == | |||
* On some tablets some i2c busses only function properly if a certain regulator is enabled, otherwise the bus always report being stuck. To properly support this drivers/i2c/busses/i2c-mv64xxx.c needs to be extended to support a vbus-supply devicetree property and to enabled this regulator on probe, and disable it again on driver remove. | |||
* Boards: pov protab2 ips9 | |||
* Difficulty: Easy | |||
Line 77: | Line 104: | ||
* The AXP152 / AXP209 / AXP221 / AXP223 PMIC-s all have various gpio pins. These need to have a pinctrl driver written for them, so that they can be either used as gpio-s, or e multiplexed to e.g. the pwm the PMIC-s have on board. | * The AXP152 / AXP209 / AXP221 / AXP223 PMIC-s all have various gpio pins. These need to have a pinctrl driver written for them, so that they can be either used as gpio-s, or e multiplexed to e.g. the pwm the PMIC-s have on board. | ||
* Difficulty: Medium | * Difficulty: Medium | ||
== AXP PMIC hwmon driver == | |||
* The AXP152 / AXP209 / AXP221 / AXP223 PMIC-s all can monitor various voltages and currents (and in some cases temperatures), write and upstream a hwmon driver for this, so that userspace utilities using the hwmon interface can show the readings of these sensors. | |||
* Difficulty: Easy / Medium | |||
== AXP152 PMIC regulator driver == | == AXP152 PMIC regulator driver == | ||
* The AXP152 PMIC has several voltage regulators on board. | * The AXP152 PMIC has several voltage regulators on board. drivers/regulator/axp20x-regulator.c regulator driver needs to be extended to support the AXP152 so that e.g. CPU voltage scaling can be used to save power on boards with this pmic. | ||
* Boards: A10s OLinuxIno Micro, mk802-a10s, others | * Boards: A10s OLinuxIno Micro, mk802-a10s, others | ||
* Difficulty: Medium | * Difficulty: Medium | ||
== Add support for peripheral only mode to sunxi musb and usb-phy code == | |||
* Currently the sunxi musb and usb-phy code support otg and host-only mode, some boards however use the musb controller in peripheral-only mode, add support for this. | |||
* Boards: Auxtek T003 | |||
* Difficulty: Easy/Medium | |||
Line 92: | Line 132: | ||
# The ability to replace the MAC address in the nvram file with a dynamically generated one, so that not all boards end up getting the same MAC from the linux-firmware provided nvram file. This will require some special notation in the nvram file which will cause the kernel to replace the product (and not the vendor) bits of the MAC with a dynamically generated one. | # The ability to replace the MAC address in the nvram file with a dynamically generated one, so that not all boards end up getting the same MAC from the linux-firmware provided nvram file. This will require some special notation in the nvram file which will cause the kernel to replace the product (and not the vendor) bits of the MAC with a dynamically generated one. | ||
* Difficulty: Easy | * Difficulty: Easy | ||
== RTL8189ES wifi driver == | == RTL8189ES wifi driver == | ||
Line 107: | Line 148: | ||
== | == Mediatek mt6620 wifi / bluetooth driver == | ||
* | * Find a recent copy of the Mediatek mt6620 wifi / bluetooth driver, make it build against the latest kernel and get it to work on at least one device. Then clean it up and submit it upstream for drivers/staging, then clean it up further to eventually move it into mainline proper. The; latest version I could find is [https://github.com/MediaTek-Connectivity/mt6620 here], there may be a more recent version in one of the [http://dl.linux-sunxi.org/ later allwinner SDKs] | ||
* Difficulty: | * Boards: Columbus A31 DKT | ||
* Difficulty: Medium | |||
== | == Espressif ESP8089 wifi driver == | ||
* | * Find a recent copy of the Espressif ESP8089 wifi driver, make it build against the latest kernel and get it to work on at least one device. Then clean it up and submit it upstream for drivers/staging, then clean it up further to eventually move it into mainline proper. The; latest version I could find is [https://github.com/linux-rockchip/linux-rockchip here]. | ||
* Difficulty: | * Boards: qa88-v1.3 (a23, front black, back light blue), q8 tj-a23-q88-v4.0 (a23, blue, Modoex), q8 ao721_v41 (a23, white), q8 tzx-723q4 (a33) | ||
* Difficulty: Medium | |||
Line 141: | Line 184: | ||
== | == Kernel modesetting driver for sis chipset usb to vga adapters == | ||
* | * There is a [http://cgit.freedesktop.org/xorg/driver/xf86-video-sisusb userspace driver] for these chipsets, but we really need a kms driver for plug and play operation and sharing the vga output with the main display (typically a laptop lcd panel) | ||
* I've one of these adapters available for testing | |||
* Difficulty: Medium/Hard | |||
* | |||
* | |||
== | == Kernel modesetting driver for Fresco Logic USB3 to vga adapters | ||
* | * Recently cheap USB3 to vga adapters based on a Fresco Logic chipset have become available on the market. These need to have their protocol reverse engineered and a kms kernel drive written and upstreamed. | ||
* Difficulty: | * I've one of these adapters available for testing | ||
* Difficulty: Hard | |||
== | == gpio driver for CP210x usb to tty serial adapters == | ||
* | * Newer CP210x usb to tty serial adapters have a few gpio pins, it would be good to have a gpio driver for these so that they can be controlled via sysfs. | ||
* Difficulty: Easy | * Revspace has many of these adapters available | ||
* Difficulty: Easy/Medium | |||
== | == Various sunxi kernel support tasks == | ||
* | * Button mapping for mele a1000 remote | ||
* | * Fix stmmac ethernet driver being too chatty making it hard to use a text console, note it spews even more after suspend/resume | ||
* [http:// | * Add missing iounmap(info->screen_base) to simplefb_remove | ||
* For even more Allwinner SoCs related todo items see [http://linux-sunxi.org/Linux_mainlining_effort#Left_to_be_done this todo list]. | |||
== | == Convert sunxi u-boot i2c code to the device-model == | ||
* | * Convert sunxi u-boot i2c code to the new u-boot device-model. Note this requires taking special care of the UTOO_P66 and Colombus boards which both use a gpio-i2c controller to initialize the LCD screen | ||
* Difficulty: | * Difficulty: Medium | ||
== | == Add support for vga out via the chrontel ch7026 parallel lcd to vga bridge chip == | ||
* Add support to u-boot | * Add support for vga out via the chrontel ch7026 parallel lcd to vga bridge chip to the u-boot video code | ||
* Difficulty: Hard | * Boards: Columbus A31 DKT | ||
* Difficulty: Medium / Hard | |||
== | == A80 u-boot support == | ||
* Add support to u-boot for the | * Add full support to u-boot for the A80 SoC, main u-boot.bin already has A80 support, but we need to add SPL support (pmic voltage setup, dram init) | ||
* Difficulty: Hard | * Difficulty: Hard | ||
Line 211: | Line 254: | ||
** Make CONFIG_SYS_USB_[E|O]HCI_MAX_ROOT_PORTS a runtime parameter passed in via ehci_register / ohci_register for device-model (CONFIG_DM_USB) enabled builds and drop them from include/configs/sunxi-common.h | ** Make CONFIG_SYS_USB_[E|O]HCI_MAX_ROOT_PORTS a runtime parameter passed in via ehci_register / ohci_register for device-model (CONFIG_DM_USB) enabled builds and drop them from include/configs/sunxi-common.h | ||
** Make board/sunxi/Kconfig select CONFIG_SPL by default on MACH-s where we support the SPL, remove CONFIG_SPL=y from all defconfigs | ** Make board/sunxi/Kconfig select CONFIG_SPL by default on MACH-s where we support the SPL, remove CONFIG_SPL=y from all defconfigs | ||
** Fix u-boot "gpio status" command output for axp gpio-s | |||
* Difficulty: Easy | * Difficulty: Easy | ||
Line 221: | Line 265: | ||
* Difficulty: Easy | * Difficulty: Easy | ||
* Who: All | * Who: All | ||
== Add support to u-boot for booting from NAND == | |||
* sunxi NAND support is in the works for the kernel, and currently is available in [https://github.com/jwrdegoede/linux-sunxi/commits/sunxi-wip my sunxi-wip kernel tree] | |||
* Preliminary support for loading u-boot.bin from NAND from the SPL is available in [https://github.com/jwrdegoede/u-boot-sunxi/commits/sunxi-wip my sunxi-wip u-boot tree] | |||
* [http://patchwork.ozlabs.org/patch/481155/ Patches] for adding support for reading the kernel, fdt, etc. from NAND from u-boot.bin are [http://patchwork.ozlabs.org/patch/481155/ available here] | |||
* This all needs to be integrated, tested and cleaned-up | |||
* Difficulty: Medium | |||
* Who: Hans | |||
== Add a poweroff cmd to u-boot == | |||
* When testing u-boot often the next step after testing is turning off the board, currently this requires booting into Linux or holding down the power button for 10+ seconds for battery powered devices. It would be nice to have a poweroff command which shutsdown the board. Since we already have pmic support in u-boot for all sunxi boards adding this should be easy. | |||
* Difficulty: Easy | |||
* Who: Remi | |||
== A83 kernel support == | |||
* Add support to the Linux kernel for the A83 SoC, initial patches for this have been posted. | |||
* Who: Vishnu Patekar | |||
== A83 u-boot support == | |||
* Add support to u-boot for the A83 SoC, initial patches for this have been posted. | |||
* Who: Vishnu Patekar | |||
Line 229: | Line 302: | ||
* The AXP152 PMIC is a multifunction device, so a mfd driver needs to be written to instantiate per function cells to which various kernel driver can then be bound. | * The AXP152 PMIC is a multifunction device, so a mfd driver needs to be written to instantiate per function cells to which various kernel driver can then be bound. | ||
* Boards: A10s OLinuxIno Micro, mk802-a10s, others | * Boards: A10s OLinuxIno Micro, mk802-a10s, others | ||
* Who: Hans | * Who: Hans | ||
== Add support for edp display panels via the anx9804 parallel lcd to dp bridge chip == | |||
* Add support for edp display panels via the anx9804 parallel lcd to dp bridge chip to the u-boot video code | |||
* Boards: Columbus A31 DKT | |||
* Who: Hans | |||
== Create dts files for sunxi boards which do not have a dts file yet == | |||
* Create a dts file for the wobo-i5 (including pinmux setting for the emac veing routed to an alternative port), auxtek-t003, uhost-u1a | |||
* Who: Jelle | |||
== Create u-boot boardconfigs and dts for sunxi boards which do not have a defconfig / dts file yet == | |||
* Create defconfig and dts files for the wobo-i5, auxtek-t003 | |||
* Who: Jelle, Hans | |||
== Freescale MMA8452 accelerometer driver == | |||
* Various tablets use a Freescale MMA8452 accelerometer. The kernel already has an iio driver for this, looks like all we need to do is hook it up in devicetree | |||
* [http://www.freescale.com/files/sensors/doc/data_sheet/MMA8452Q.pdf datasheet here] | |||
* Boards: Columbus A31 DKT | |||
* Who: Sander Vermin | |||
== Various sunxi kernel support tasks == | |||
* i2c speed calculation is wrong in kernel, see datasheet / u-boot for correct formula, this is a sunxi only thing, needs to check the compat. | |||
* Who: Hans | |||
== pixcir pixcir_tangoc touchscreen driver == | |||
* Some tablers use a pixcir_tangoc touchscreen. The kernel already has a driver for this, but for these tablets to be able to work with this driver it needs to be extended to support touchscreens with external enable and wakeup pins such as found on these tablets. The driver also needs to be extended to support the touchscreen-inverted-x and touchscreen-inverted-y devicetree properties. Code for both supporting the extra gpio pins as well as for the inverted properties can be mostly copied from the chipone_icn8318.c driver | |||
* Boards: PoV protab2-ips9 tablet | |||
* Who: Sander Vermin | |||
== Add an i2c controller and axp152 child node to boards using an axp152 pmic == | |||
* Add an i2c controller and axp152 child node to boards using an axp152 pmic, to enable power button and "poweroff" support, see sun5i-a10s-auxtek-t003.dts for an example | |||
* Boards: Auxtek T004 | |||
* Who: Michael van Slingerland | |||
== H3 kernel support == | |||
* Add support to the Linux kernel for the H3 SoC, a patchset adding basic support (timers, interrupt controller, serial console) is available. | |||
* Who: Jens Kuske, Reinder de Haan | |||
== H3 u-boot support == | |||
* Add support to u-boot for the H3 SoC, no work has been done on this yet. | |||
* Who: Jens Kuske |
Latest revision as of 11:04, 22 November 2015
This page contains Hans' TODO list of kernel driver / u-boot projects.
These projects may also be undertaken by participants of the KernelDriverProgrammingCourse2015.
Open projects
Create a dts file and u-boot defconfig for uhost-u1a
- Create a dts file and u-boot defconfig for uhost-u1a
- Difficulty: Easy
Add regulator nodes to the dts files of all boards with an axp209 pmic
- Add regulator nodes to the dts files of all boards with an axp209 pmic, to enable CPU voltage scaling and disable unused regulators
- Difficulty: Easy
Add regulator nodes to the dts files of all boards with an axp221 pmic
- Add regulator nodes to the dts files of all boards with an axp221 pmic, to enable CPU voltage scaling and disable unused regulators
- Boards: Columbus A31 DKT , Mele A1000G Quad
- Difficulty: Easy
Add an i2c controller and axp152 child node to boards using an axp152 pmic
- Add an i2c controller and axp152 child node to boards using an axp152 pmic, to enable power button and "poweroff" support, see sun5i-a10s-auxtek-t003.dts for an example
- Boards: r7-tv-dongle, a10s-mk802
- Difficulty: Easy
Silead GSL1680 touchcreen driver
- Various (cheap) tablets use a gsl1680 touchscreen controller (datasheet). An userspace driver for this touchscreen is available here. Write a proper kernel driver for this and upstream it.
- A driver was recently posted for this here, a good approach here would be to first get the userspace driver to work to make sure you've the right firmware, etc. and then try to get the posted driver to work, fixing it up as necessary.
- Yet another driver is here, the above one is likely a better starting point, but this one may be useful in someway too
- Boards: Ippo q8h tablets, ga10h tablets
- Difficulty: Easy/Medium
Focaltech ft5x touchscreen driver
- Various tablets use a Focaltech ft5x touchscreen controller. A driver is available in various Android kernel sources, see the linux-sunxi wiki touchscreen page. Write a proper kernel driver for this and upstream it.
- Boards: Wits PRO A20 DKT, Columbus A31 DKT, Chuwi_V7_CW0825 tablet, Intertoys Qware Pro 3
- Difficulty: Easy/Medium
- Who: Bertrik see https://github.com/bertrik/KernelDriverCourse2015
ZEITEC zet622x touchscreen driver
- Some tablets use a ZEITEC zet622x touchscreen controller. A datasheet for this chip is available. Write a proper kernel driver for this and upstream it.
- Boards: Denver TAC-90011 tablet
- Difficulty: Easy/Medium
Freescale MMA7660 accelerometer driver
- Various tablets use a Freescale MMA7660 accelerometer. Write a proper kernel driver for this and upstream it.
- datasheet here
- Something resembling a kernel driver, which exports both an input and a hwmon interface (which is wrong and should be removed) is available here and also here
- Boards: Chuwi_V7_CW0825 tablet
- Difficulty: Easy/Medium
Memsic MXC622X accelerometer driver
- Various (cheap) tablets use a Memsic MXC622X accelerometer. Write a proper kernel driver for this and upstream it.
- Android driver here
- Boards: Ippo q8h tablets
- Difficulty: Easy/Medium
Bosch BMA250 accelerometer driver
- Various tablets use a Bosch BMA250 accelerometer
- This accelerometer is supported by the drivers/iio/accel/bmc150-accel.c driver
- All that needs to be done is hook things up in devicetree for all boards / tablets with this accelerometer
- Boards: UTOO P66 tablet, inet97fv2 (qware tablet pc pro3 / cherry m677), pov protab2_ips9
- Difficulty: Easy/Medium
Bosch? mc32x0 accelerometer driver
- Some tablets use a mc32x0 accelerometer. Write a proper kernel driver for this and upstream it.
- Android driver here
- Boards: q8 94v-0 (a13, pink)
- Difficulty: Easy/Medium
Add vbus-supply regulator support to the mv64xxx i2c controller driver
- On some tablets some i2c busses only function properly if a certain regulator is enabled, otherwise the bus always report being stuck. To properly support this drivers/i2c/busses/i2c-mv64xxx.c needs to be extended to support a vbus-supply devicetree property and to enabled this regulator on probe, and disable it again on driver remove.
- Boards: pov protab2 ips9
- Difficulty: Easy
AXP PMIC gpio driver
- The AXP152 / AXP209 / AXP221 / AXP223 PMIC-s all have various gpio pins. These need to have a pinctrl driver written for them, so that they can be either used as gpio-s, or e multiplexed to e.g. the pwm the PMIC-s have on board.
- Difficulty: Medium
AXP PMIC hwmon driver
- The AXP152 / AXP209 / AXP221 / AXP223 PMIC-s all can monitor various voltages and currents (and in some cases temperatures), write and upstream a hwmon driver for this, so that userspace utilities using the hwmon interface can show the readings of these sensors.
- Difficulty: Easy / Medium
AXP152 PMIC regulator driver
- The AXP152 PMIC has several voltage regulators on board. drivers/regulator/axp20x-regulator.c regulator driver needs to be extended to support the AXP152 so that e.g. CPU voltage scaling can be used to save power on boards with this pmic.
- Boards: A10s OLinuxIno Micro, mk802-a10s, others
- Difficulty: Medium
Add support for peripheral only mode to sunxi musb and usb-phy code
- Currently the sunxi musb and usb-phy code support otg and host-only mode, some boards however use the musb controller in peripheral-only mode, add support for this.
- Boards: Auxtek T003
- Difficulty: Easy/Medium
brcmfmac sdio support improvements
- The brcmfmac driver needs a board specific nvram file to be loaded from /lib/firmware/brcm, which means that currently brcm sdio wifi devices do not work ootb. To fix this 2 things are needed:
- The ability to set a board specific name for the nvram file in the dts, so that these files can be distributed as part of the linux-firmware package
- The ability to replace the MAC address in the nvram file with a dynamically generated one, so that not all boards end up getting the same MAC from the linux-firmware provided nvram file. This will require some special notation in the nvram file which will cause the kernel to replace the product (and not the vendor) bits of the MAC with a dynamically generated one.
- Difficulty: Easy
RTL8189ES wifi driver
- Find a recent copy of the RTL8189ES driver, make it build against the latest kernel and get it to work on at least one device. Then clean it up and submit it upstream for drivers/staging, then clean it up further to eventually move it into mainline proper.
- Boards: mk802-a10s, other a10s based hdmi-sticks / topset-boxes
- Difficulty: Medium
RTL8703AS wifi / bluetooth driver
- Find a recent copy of the RTL8703AS driver, make it build against the latest kernel and get it to work on at least one device. Then clean it up and submit it upstream for drivers/staging, then clean it up further to eventually move it into mainline proper. This may be a good starting point.
- Boards: ga10h
- Difficulty: Medium
Mediatek mt6620 wifi / bluetooth driver
- Find a recent copy of the Mediatek mt6620 wifi / bluetooth driver, make it build against the latest kernel and get it to work on at least one device. Then clean it up and submit it upstream for drivers/staging, then clean it up further to eventually move it into mainline proper. The; latest version I could find is here, there may be a more recent version in one of the later allwinner SDKs
- Boards: Columbus A31 DKT
- Difficulty: Medium
Espressif ESP8089 wifi driver
- Find a recent copy of the Espressif ESP8089 wifi driver, make it build against the latest kernel and get it to work on at least one device. Then clean it up and submit it upstream for drivers/staging, then clean it up further to eventually move it into mainline proper. The; latest version I could find is here.
- Boards: qa88-v1.3 (a23, front black, back light blue), q8 tj-a23-q88-v4.0 (a23, blue, Modoex), q8 ao721_v41 (a23, white), q8 tzx-723q4 (a33)
- Difficulty: Medium
CSI camera interface driver + sensor drivers
- All the Allwinner SoCs have a CSI camera interface, add a driver for this + where necessary drivers for the sensor used on a board so that the camera can be used through the kernel's v4l2 api.
- Boards: All tablets, bananapi with camera module
- Difficulty: Hard
Rework Raspberry Pi 2 kernel code for multi platform support
- Most Linux distros ship a single ARM kernel binary build with multi-platform support which runtime adjusts itself to the SoC being used. The Raspberry Pi 2 kernel code does not support this, requiring a kernel compiled specifically for it, which will not run on any other board. This means that the ARM images of distributions like Fedora do not work out of the box on the Raspberry Pi 2. The Raspberry Pi 2 kernel code needs to be modified to support multi platform kernels and use devicetree for runtime configuration everywhere.
- Work on this is in progress
- Difficulty: Medium/Hard
Kernel modesetting driver for am7xxx based usb pico projectors
- There is a userspace driver for these devices available documenting the protocol, video format, etc.
- A kernel driver can be modelled after my Grain Media GM12U320 driver
- I've a Philips PPX 2055 beamer available for testing
- Difficulty: Medium/Hard
Kernel modesetting driver for sis chipset usb to vga adapters
- There is a userspace driver for these chipsets, but we really need a kms driver for plug and play operation and sharing the vga output with the main display (typically a laptop lcd panel)
- I've one of these adapters available for testing
- Difficulty: Medium/Hard
== Kernel modesetting driver for Fresco Logic USB3 to vga adapters
- Recently cheap USB3 to vga adapters based on a Fresco Logic chipset have become available on the market. These need to have their protocol reverse engineered and a kms kernel drive written and upstreamed.
- I've one of these adapters available for testing
- Difficulty: Hard
gpio driver for CP210x usb to tty serial adapters
- Newer CP210x usb to tty serial adapters have a few gpio pins, it would be good to have a gpio driver for these so that they can be controlled via sysfs.
- Revspace has many of these adapters available
- Difficulty: Easy/Medium
Various sunxi kernel support tasks
- Button mapping for mele a1000 remote
- Fix stmmac ethernet driver being too chatty making it hard to use a text console, note it spews even more after suspend/resume
- Add missing iounmap(info->screen_base) to simplefb_remove
- For even more Allwinner SoCs related todo items see this todo list.
Convert sunxi u-boot i2c code to the device-model
- Convert sunxi u-boot i2c code to the new u-boot device-model. Note this requires taking special care of the UTOO_P66 and Colombus boards which both use a gpio-i2c controller to initialize the LCD screen
- Difficulty: Medium
Add support for vga out via the chrontel ch7026 parallel lcd to vga bridge chip
- Add support for vga out via the chrontel ch7026 parallel lcd to vga bridge chip to the u-boot video code
- Boards: Columbus A31 DKT
- Difficulty: Medium / Hard
A80 u-boot support
- Add full support to u-boot for the A80 SoC, main u-boot.bin already has A80 support, but we need to add SPL support (pmic voltage setup, dram init)
- Difficulty: Hard
u-boot usb scanning speedup
- Probing the usb bus on u-boot is currently very slow, one problem is that all ports are scanning one by one, with a 1s powerup delay per port. This can be sped up by making doing the scanning in parallel using cooperative multi-tasking, e.g. :
- rework reset to use kernel timings (try every 10 ms)
- lower power good wait to 100 ms, then when done enumerating re-scan hubs every 100 ms, and if no new hubs show up for 5 sonsecutive scans, we are done
- Difficulty: Medium/Hard
u-boot sunxi support cleanups
- The u-boot code for supporting Allwinner sunxi SoCs can use a number of cleanups:
- Define CONFIG_MMC0_CD_PIN for all boards with a sdcard slot
- Define CONFIG_USB0_ID_DET for all boards which use CONFIG_USB_MUSB_SUNXI and have an otg connector
- Move i2c_init_board() call in arch/arm/cpu/armv7/sunxi/board.c from s_init() to board_init_f under #ifdef CONFIG_SPL_I2C_SUPPORT
- Convert all options set through CONFIG_SYS_EXTRA_OPTIONS to proper Kconfig options
- Drop CONFIG_SUNXI use CONFIG_ARCH_SUNXI everywhere
- Fix u-boot twsi enable / disable in clock_sun6i.c to do trt wrt reset
- Fix "weird" CCM_DRAM_CTRL_DCLK_OUT define, change it into a CCM_DRAM_GATE_OFFSET_foo define, and put it together with the others
- Use CONFIG_VIDEO_LCD_RESET instead of power on Ippo q8h boards
- Print board name from u-boot
- Make CONFIG_SYS_USB_[E|O]HCI_MAX_ROOT_PORTS a runtime parameter passed in via ehci_register / ohci_register for device-model (CONFIG_DM_USB) enabled builds and drop them from include/configs/sunxi-common.h
- Make board/sunxi/Kconfig select CONFIG_SPL by default on MACH-s where we support the SPL, remove CONFIG_SPL=y from all defconfigs
- Fix u-boot "gpio status" command output for axp gpio-s
- Difficulty: Easy
WIP Projects
Enable the OTG USB port on all Allwinner boards
- Hans' sunxi-wip branch has support for the otg controller found on all supported Allwinner SoCs, currently this only gets enabled in devicetree on a few boards. This needs to be enabled in devicetree on all boards. See the cubietruck dts file for an example how to do this.
- Difficulty: Easy
- Who: All
Add support to u-boot for booting from NAND
- sunxi NAND support is in the works for the kernel, and currently is available in my sunxi-wip kernel tree
- Preliminary support for loading u-boot.bin from NAND from the SPL is available in my sunxi-wip u-boot tree
- Patches for adding support for reading the kernel, fdt, etc. from NAND from u-boot.bin are available here
- This all needs to be integrated, tested and cleaned-up
- Difficulty: Medium
- Who: Hans
Add a poweroff cmd to u-boot
- When testing u-boot often the next step after testing is turning off the board, currently this requires booting into Linux or holding down the power button for 10+ seconds for battery powered devices. It would be nice to have a poweroff command which shutsdown the board. Since we already have pmic support in u-boot for all sunxi boards adding this should be easy.
- Difficulty: Easy
- Who: Remi
A83 kernel support
- Add support to the Linux kernel for the A83 SoC, initial patches for this have been posted.
- Who: Vishnu Patekar
A83 u-boot support
- Add support to u-boot for the A83 SoC, initial patches for this have been posted.
- Who: Vishnu Patekar
Finished Projects
AXP152 PMIC mfd driver
- The AXP152 PMIC is a multifunction device, so a mfd driver needs to be written to instantiate per function cells to which various kernel driver can then be bound.
- Boards: A10s OLinuxIno Micro, mk802-a10s, others
- Who: Hans
Add support for edp display panels via the anx9804 parallel lcd to dp bridge chip
- Add support for edp display panels via the anx9804 parallel lcd to dp bridge chip to the u-boot video code
- Boards: Columbus A31 DKT
- Who: Hans
Create dts files for sunxi boards which do not have a dts file yet
- Create a dts file for the wobo-i5 (including pinmux setting for the emac veing routed to an alternative port), auxtek-t003, uhost-u1a
- Who: Jelle
Create u-boot boardconfigs and dts for sunxi boards which do not have a defconfig / dts file yet
- Create defconfig and dts files for the wobo-i5, auxtek-t003
- Who: Jelle, Hans
Freescale MMA8452 accelerometer driver
- Various tablets use a Freescale MMA8452 accelerometer. The kernel already has an iio driver for this, looks like all we need to do is hook it up in devicetree
- datasheet here
- Boards: Columbus A31 DKT
- Who: Sander Vermin
Various sunxi kernel support tasks
- i2c speed calculation is wrong in kernel, see datasheet / u-boot for correct formula, this is a sunxi only thing, needs to check the compat.
- Who: Hans
pixcir pixcir_tangoc touchscreen driver
- Some tablers use a pixcir_tangoc touchscreen. The kernel already has a driver for this, but for these tablets to be able to work with this driver it needs to be extended to support touchscreens with external enable and wakeup pins such as found on these tablets. The driver also needs to be extended to support the touchscreen-inverted-x and touchscreen-inverted-y devicetree properties. Code for both supporting the extra gpio pins as well as for the inverted properties can be mostly copied from the chipone_icn8318.c driver
- Boards: PoV protab2-ips9 tablet
- Who: Sander Vermin
Add an i2c controller and axp152 child node to boards using an axp152 pmic
- Add an i2c controller and axp152 child node to boards using an axp152 pmic, to enable power button and "poweroff" support, see sun5i-a10s-auxtek-t003.dts for an example
- Boards: Auxtek T004
- Who: Michael van Slingerland
H3 kernel support
- Add support to the Linux kernel for the H3 SoC, a patchset adding basic support (timers, interrupt controller, serial console) is available.
- Who: Jens Kuske, Reinder de Haan
H3 u-boot support
- Add support to u-boot for the H3 SoC, no work has been done on this yet.
- Who: Jens Kuske