DaVinci GIT Linux Kernel

From Texas Instruments Wiki
Jump to: navigation, search

NOTE
This page tracks the status of major subsystem support in mainline kernel (Linus Torvalds'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.


Overview

The Linux support for the DaVinci family of processors is maintained in the linux-davinci GIT tree. Patches are sent upstream from this tree to the mainline (Linus') kernel regularly. 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/nsekhar/linux-davinci.git
Web - https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git
Old Location
GIT - git://gitorious.org/linux-davinci/linux-davinci.git
Web - http://gitorious.org/linux-davinci
Maintainer
Sekhar Nori (nsekhar@ti.com)/Kevin Hilman (khilman@ti.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-203 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


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

  1. TI DaVinci EMAC driver is now mainline.
  2. Support for interrupt pacing is added

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

  1. Platform support for Audio on all EVMs is has been accepted in community

To Do

  1. Audio support for DA830 Audio daughter card needs to be worked on.

Video Display

Devices DM644x DM6467 DM355 DM365 DA850/OMAP-L138 Mainline
Status

Status

  • VPBE display (V4L2) for DM644x is in Mainline.
  • VPBE DM355/DM365 device support patches have been submitted to community for acceptance.
  • Manju Hadli at TI currently working on this. Please see: http://git.linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
  • Please note: Port of LSP 02.10 display drivers to community kernel is available in linux-davinci staging tree on Arago. This is based on encoder manager & display manager architecture (THS8200 not supported).

To Do

  1. Add DT Support for VPIF display & VPBE.

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 and DA850/OMAP-L138, 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 & DA850/OMAP-L138.
  • Supports TVP7002 driver on DM365.
  • VPFE: Media Controller based capture driver for DM36x has been accepted for in staging and will be merged Linux for 3.9 release. DM355/DM644x device support will come next.
  • VPIF & VPFE drivers have been migrated to videobuf2 usage.

Note: following supported in linux-davinci staging tree on arago-project.org (not submitted to community):-

  • 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

  1. Add mt9t031 sensor support for VPIF.
  2. DT Support for both VPFE and VPIF capture

IPIPE - Previewer/Resizer

Devices DM644x DM6467 DM355 DM365 DA850/OMAP-L138 Mainline
Status

Status

  • IPIPE (Previewer/Resizer) for DM365 is accepted will merge in Linux for 3.9 release. DM355 and DM6446 will follow.
  • The current arago linux-davinci supports the fully featured driver with one-shot and on-the-fly mode support using Media Controller framework.

H3A - AEW/AF

Devices DM644x DM6467 DM355 DM365 DA850/OMAP-L138 Mainline
Status

Status

  • H3A - AEW/AF support is submitted to community as RFC.
  • Media Controller and event mechanism based support present on linux-davinci staging tree on arago-project.org

VDCE

Devices DM644x DM6467 DM355 DM365 DA850/OMAP-L138 Mainline
Status

Status

  1. Interim patch for VDCE driver on DM6467 is maintained in the linux-davinci staging tree on Arago

TO DO

  1. 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

UART

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

USB Host

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status / To Do

  1. OHCI and MUSB support need to be added in OMAPL138 board file.
  2. CPPI4.1 DMA driver needs to be added for OMAPL1x.
  3. USB patches to support DM365 and DM646x needs to be added.
  4. CPPI3.0 DMA fine tuning for performance enhancements is pending.

USB Gadget

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status / To Do

  1. MUSB support need to be added in OMAPL138 board file.
  2. CPPI4.1 DMA driver needs to be added for OMAPL1x.
  3. USB patches to support DM365 and DM646x needs to be added.
  4. CPPI3.0 DMA fine tuning for performance enhancements is pending.

USB OTG

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status / To Do

  1. MUSB support need to be added in OMAPL138 board file.
  2. CPPI4.1 DMA driver needs to be added for OMAPL1x.
  3. USB patches to support DM365 and DM646x needs to be added.
  4. CPPI3.0 DMA fine tuning for performance enhancements is pending.

NAND

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status

  1. 4-bit ECC patches accepted into the mtd subsystem
  2. Patch submitted to mtd list for 4-Bit ECC error correction issue.

TODO

  1. Support for 4K page size NAND devices 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

  1. SPI driver accepted into Linus's kernel
  2. SPI was tested on DM355, DM365 and DM6467 using EEPROMs on the EVMs connected to SPI
  3. SPI was tested on OMAP-L138 and OMAP-L137 using EEPROMS on the EVMs connected to SPI

TODO

PCI Host

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status

  1. Aug03 2009: v2 patch set submitted to DaVinci ML for review

TODO

  1. Submit boot driver

MMC/SD

Devices DM644x DM6467 DM355 DM365 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status

  1. Platform support patches for DA830/OMAP-L137 have been merged.

To Do

  1. 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

To Do

  1. Naming the event queues wrt priority.
  2. Implementing single tc err handler for all the Transfer controllers.
  3. Getting the TC err interrupt numbers from platform resources.
  4. Getting rid of the n_* fields in struct edma_soc_info with the help of EDMA_CCCFG register.

Graphical LCD

Devices DM368 DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status

  1. OMAP-L1 FB driver is present in mainline.

Character LCD

Devices DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status

  1. 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

  1. RTC patch accepted into Linus's kernel.

Power Management

CPU Freq

Devices DA850/OMAP-L138 Mainline
Status

Status

  1. CPUFreq support is present in Linus's tree

To Do

  1. Support driver notifications for all affected drivers. LCD and MMC/SD modifications are complete.

CPU Idle

Devices DA850/OMAP-L138 Mainline
Status

Status

  1. CPUIdle support is present in Linus's tree.

Suspend-to-RAM support

Devices DA850/OMAP-L138 DM355 DM365 Mainline
Status

Status

  1. Support for DA850/OMAP-L138 is present in Linus's tree

To Do

  1. 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

  1. Need to start work on driver development

SATA

Devices DA850/OMAP-L138 Mainline
Status

Status

  1. SATA patches queued in linux-next. Slated to appear in v3.2 kernel

eQEP

Devices DA830/OMAP-L137 Mainline
Status

Status

  1. 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

  1. Patches to support APWM on eCAP module submitted to DaVinci mailing list and under review

HRPWM

Devices DA830/OMAP-L137 DA850/OMAP-L138 Mainline
Status

Status

  1. Patches to support PWM control using eHRPWM module submitted to DaVinci mailing list and under review.