From Texas Instruments Embedded Processors Wiki
Overview
The Linux support for the DaVinci family of processors is maintained in the linux-davinci GIT tree. Currently, this support is not in the kernel mainline, but it is a high priority to improve the codebase so that the support can move to the mainline. This topic describes what is in the DaVinci kernel tree and corresponding status for each device and/or peripheral.
- Location
- GIT - git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
- Web - http://git.kernel.org/?p=linux/kernel/git/khilman/linux-davinci.git;a=summary
- Maintainer
- Kevin Hilman (khilman@deeprootsystems.com)
- Email List
- Address - davinci-linux-open-source@linux.davincidsp.com
- Info and Archives - http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
- Recommended Compiler Toolchain
- CodeSourcery GNU Toolchain for ARM Processors: 2009q1-2003 version - http://www.codesourcery.com/sgpp/lite/arm/portal/release858
- Sample Target Filesystem (used by TI for testing)
- Arago Project (OpenEmbedded-based project) - http://arago-project.org
Conventions
The sections below cover the major subsystems of the SoCs. A simple color-coding indicates the status, using the following approximate definitions:
- Red - not functional
- Yellow - functional, but incomplete or known bugs
- Green - functional, only minor bugs, if any
- Gray - not applicable
In addition, there is a column labeled "Mainline" which indicates how close the code is to being ready for acceptance in the mainline kernel.
- Red - lots of cleanup needed and/or no one working on it
- Yellow - cleanup needed but somebody is working on it
- Green - either ready to be submitted or already in mainline
NOTE
This page tracks the status of major subsystem support in linux-davinci GIT tree and mainline kernel (Linus's tree). This does not indicate status of any TI release which often contains more functionality which may not have been accepted (or even submitted) upstream yet.
Boards
The following boards are used for development and testing by TI.
mach-davinci
The base level support for the DaVinci processors is in the arch/arm/mach-davinci directory, currently with support for DM644x, DM355, and DM6467.
| Area
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Boot
|
|
|
|
|
|
|
|
| IRQ
|
|
|
|
|
|
|
|
| DMA
|
|
|
|
|
|
|
|
| Clocks
|
|
|
|
|
|
|
|
| GPIO
|
|
|
|
|
|
|
|
| Timers
|
|
|
|
|
|
|
|
Status
To Do
Ethernet
Most DaVinci SoCs have an on-chip Ethernet MAC (exceptions are DM355).
DM355 uses the dm9000 driver from the kernel mainline.
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- TI DaVinci EMAC driver is now mainline.
To Do
- Add support for interrupt pacing
- Support MAC address read on DA850/OMAP-L138 EVM. Requires SPI driver
Audio
Audio is provided through ALSA-SoC using McBSP/McASP drivers and external audio codecs.
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- Platform support for Audio on DA8XX/OMAP-L1XX has been accepted in davinci git.
- Patch to fix audio crash on DA8XX has to be pulled in from ASoC tree.
- Platform support for Audio on DM365 has been accepted in davinci git. Also the changes to ALSA ASoC driver for DaVinci to support DM365 has also been accepted in the alsa devel list, but not yet merged to Kevin's tree.
To Do
- On-chip voice codec support for DM365 - initial patch submitted, requires some rework based on the comments received
Video Display
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
Status
Currently following support is available
Port of LSP2.10 display drivers to latest GIT kernel is available in linux-davinci staging tree on Arago. This is based on encoder manager & display manager architecture (THS 8200 not supported).
- VPBE FBDev driver (not supported on DM6467)
- VPBE V4L2 driver
To Do
- Update VPBE display drivers to V4L2 sub-device model and submit them in the upstream
- Update VPBE display drivers based on media controller framework
- Update VPIF display drivers to support HD timing/resolutions, based on the new timing API proposal
Video Capture
On DM644x, DM355 and DM365, Video Capture is handled by Video Peripheral Front End (VPFE) and CCDC. CCDC is interfaced with decoders - TVP514x and/or TVP7002 for SD/HD capture. It is also interfaced with Imagers (Camera) for raw capture.
On DM6467, Video capture is handled by Video Port Interface (VPIF), which interfaces with decoders - TVP514x and TVP7002.
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
Status
- Supports TVP5146 capture on DM6446,DM355 & DM365.
- Supports TVP7002 driver
Following supported in Arago tree:-
- Support for capture from TVP7002 on DM365 and DM6467
- Support for capture from MT9T031 on DM355 & DM365
- Support for capture from MT9T031 on DM355 & DM365 (on the fly mode mode)
- Support for capture from TVP7002 on DM365 (on the fly mode)
TO DO
- Update VPFE and VPIF capture drivers to support HD timing/resolutions based on the new timing API proposal
- Convert CCDC drivers to v4l2 sub device interface so that all the CCDC parameters can be configured directly into the sub device node with out going through video node (requires Media control support in the v4l2 core)
- Update drivers based on Bus handling, Buffer pool management and Even handling API proposals
- Submit patches for camera capture from mt9t031 sensor
- Add sensor driver for MT9P031
- Add support for On the fly mode capture through IPIPE and Resizer
- Add second video device node for output from Resizer2
- Add support for media controller API.
IPIPE - Previewer/Resizer
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
Status
- Support for one shot mode Preview & Resize are available through IPIPE drivers(ported from LSP2.10) on DM355 & DM365 in the linux-davinci staging tree on Arago
TODO
- Develop v4l2 drivers for (two video nodes for Resizer-1 and Resizer-2) One shot mode Preview and Resize
- Convert Hw modules to sub device interface to allow direct configuration of IP parameters using the sub device node instead of video node
- Add support for media control
H3A - AEW/AF
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
Status
- Interim patch for H3A drivers on DM355 & DM365 is maintained in the linux-davinci staging tree on Arago
TODO
- Convert the H3A driver to v4l2 sub device based
- Add support for statistics available event.
VDCE
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
Status
- Interim patch for VDCE driver on DM6467 is maintained in the linux-davinci staging tree on Arago
TO DO
- For upstream submission, this driver will require updates based on media controller framework
i2c
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
To Do
UART
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
To Do
USB Host
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status / To Do
- USB feature specific (and big fixes) patches are maintained in the linux-davinci staging tree on Arago, for upstream submission
- DA8XX/OMAP-L1XX needs USB 1.1 (OHCI) support as well. An initial patch supporting this was submitted by Sergei on 4/20/2009, but review was put on hold since basic DA8XX/OMAP-L1XX support was not upstream. The patch needs to be re-submitted now that the DA8XX/OMAP-L1XX support is poised to hit upstream.
- USB patches to support DM365 are submitted in the mailing list, but they require updates based on the comments received
- Update DaVinci MUSB driver to re-arrange the phy_on/phy_off APIs from the board-setup files
USB Gadget
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status / To Do
- USB feature specific (and big fixes) patches are maintained in the linux-davinci staging tree on Arago, for upstream submission
USB OTG
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status / To Do
- USB feature specific (and big fixes) patches are maintained in the linux-davinci staging tree on Arago, for upstream submission
NAND
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- 4-bit ECC patches accepted by the mtd subsystem and will make it to upstream (2.6.32)
- Submitted v4 of DM646x NAND patch, awaiting upstream acceptance of dependent patch "fix to use mask_ale from pdata" submitted to linux-mtd as well as mmotm.
- Patch submitted to mtd list for 4-Bit ECC error correction issue.
TODO
- Support for 4K requires changes to nand_ecclayout structures. Need to bring it up on the linux-mtd list for a generic solution
SPI
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- SPI driver accepted into Linus's kernel
- SPI was tested on DM355, DM365 and DM6467 using EEPROMs on the EVMs connected to SPI
TODO
- Support for OMAP-L1 devices (platform data needs to be added)
PCI Host
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- Aug03 2009: v2 patch set submitted to DaVinci ML for review
TODO
- Submit boot driver
MMC/SD
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- Platform support patches for DA830/OMAP-L137 have been merged.
To Do
- SDIO patches submitted on the mailing list - require updates based on the comments received
EDMA
| Devices
| DM644x
| DM6467
| DM355
| DM365
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
|
|
|
|
Status
- Naresh has submitted the EDMA support for DM6467 patches to DaVinci List. Kevin has to merge them.
To Do
- Naming the event queues wrt priority.
- Implementing single tc err handler for all the Transfer controllers.
- Getting the TC err interrupt numbers from platform resources.
- Getting rid of the n_* fields in struct edma_soc_info with the help of EDMA_CCCFG register.
Graphical LCD
| Devices
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
Status
- OMAP-L1 FB driver is present in mainline.
TODO
- Support for Panning
- Support for WAITFORVSYNC
Character LCD
| Devices
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
Status
- Patch adding dummy parallel port driver to support this has been rejected in LKML. Need to rework based on review received. Basically means cleaning up the panel.c driver before adding new support.
RTC
| Devices
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
Status
- RTC patch accepted into Linus's kernel.
To Do
- Remove hard coding of RTC driver as non-wakeup-capable
Power Management
CPU Freq
| Devices
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
Status
- CPUFreq support is present in Linus's tree
To Do
- Support driver notifications for all affected drivers. LCD and MMC/SD modifications are complete.
CPU Idle
| Devices
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
Status
- CPUIdle support is present in Linus's tree.
Suspend-to-RAM support
| Devices
| DA850/OMAP-L138
| DM355
| DM365
| Mainline
|
| Status
|
|
|
|
|
Status
- Support for DA850/OMAP-L138 is present in Linus's tree
To Do
- Support suspend/resume for all drivers. Support Suspend-to-RAM on DM355 and DM365
uPP (Universal Parallel Port)
| Devices
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
Status
- Need to start work on driver development
SATA
| Devices
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
Status
- AHCI driver in Linux is tied to PCI interface. Need to work with community on ways to decouple them before work can start on this.
eQEP
| Devices
| DA830/OMAP-L137
| Mainline
|
| Status
|
|
|
Status
- Driver available in MV Linux. Need to work on submitting patches to input subsystem mailing list.
eCAP
| Devices
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
Status
- Need to work on driver development.
HRPWM
| Devices
| DA830/OMAP-L137
| DA850/OMAP-L138
| Mainline
|
| Status
|
|
|
|
Status
- Need to work on driver development.
Leave a Comment Comments
Comments on DaVinci GIT Linux Kernel
Weijiang said ...
Also look forward to dvsdk, dmai for git kernel
--Weijiang 23:57, 2 December 2009 (CST)