Difference between revisions of "Qualcomm SOC Mainlining Project"

From eLinux.org
Jump to: navigation, search
(Features)
(31 intermediate revisions by 2 users not shown)
Line 5: Line 5:
  
 
= Project List =
 
= Project List =
 +
== October 2015 ==
 +
* wcn36xx (bjorn)
 +
 +
== September 2015 ==
 +
* remoteproc for wifi core (bjorn)
 +
* smem state stuff (bjorn)
 +
* bt hci smd (bjorn)
 +
* extcon USB int (for ID detect) (tim.b)
 +
* chipidea USB controller extcon support (ivan)
 +
* smbb charger (courtney)
 +
** including regulator for OTG vbus (tim.b)
 +
 
== July 2015 ==
 
== July 2015 ==
 
List of items "in flight" (as of July 2015)
 
List of items "in flight" (as of July 2015)
 
* regulators (bjorn)
 
* regulators (bjorn)
 +
* backlight driver (bjorn)
 
* coincell driver (tim.b)
 
* coincell driver (tim.b)
 
* dts support for 8064 SATA, i2c, USB OTG/host, regulators (srinivas.k)
 
* dts support for 8064 SATA, i2c, USB OTG/host, regulators (srinivas.k)
 
* 8016 sound card/lpass (srinivas.k)
 
* 8016 sound card/lpass (srinivas.k)
 
* SPM (subsystem power manager) driver (lina)
 
* SPM (subsystem power manager) driver (lina)
 +
* GDSC (global distributed switch controllers) (rnayak)
  
 
== June 2014 ==
 
== June 2014 ==
Line 30: Line 44:
 
* spmi - ??
 
* spmi - ??
  
== Project Table ==
+
= Status =
This might be too time-consuming to maintain?
+
== Planned for 4.4 ==
{|  border="1" cellspacing="0" cellpadding="4"
+
== Expected in 4.3 ==
|- bgcolor="#c0e0e0"
+
* qcom_smbb charger
| align="center" | '''Feature or Item'''
 
| align="center" | '''Person'''
 
| align="center" | '''Notes'''
 
| align="center" | '''Link'''
 
| align="center" | '''Last activity'''
 
|-
 
| DT stuff for 8084||Georgi Djakov
 
|Adds DT nodes for the APQ8084 global clock controller and serial port.
 
|https://www.mail-archive.com/linux-arm-msm@vger.kernel.org/msg09096.html
 
| 2014-06-03
 
|}
 
  
[ add links to most recently posted patches]
+
== Merged into 4.2 ==
[ add person who is working on each part ]
+
* coincell charger driver
 +
* RPM regulators?
  
=
+
[need to fill this in more]
 
 
= Status =
 
== Planned for 4.2 ==
 
  
 
== Merged into 4.1 ==
 
== Merged into 4.1 ==
Line 58: Line 59:
 
* 8016 sound card/lpass (srinivas.k)
 
* 8016 sound card/lpass (srinivas.k)
 
* SPM (subsystem power manager) driver (lina)
 
* SPM (subsystem power manager) driver (lina)
 
+
* regulator: add spmi regulator driver (sboyd)
  
 
== Merged into 4.0 ==
 
== Merged into 4.0 ==
 
* spi: qpu: add DMA support (agross)
 
* spi: qpu: add DMA support (agross)
 
* dts TCSR support for 8960, 8660, 8064 (agross)
 
* dts TCSR support for 8960, 8660, 8064 (agross)
 +
 +
== Merged into 3.19 ==
 +
* clk: qcom: LCC driver (806x LPASS clocks) (rnayak)
  
 
== Merged into 3.17 ==
 
== Merged into 3.17 ==
Line 72: Line 76:
 
* spi: qup fixups (agross)
 
* spi: qup fixups (agross)
 
* usb: phy fixups (srinivas.k)
 
* usb: phy fixups (srinivas.k)
* mmc: mmci SD card controller (srinivas.k)
+
* mmc: mmci: SD card controller (srinivas.k)
 
* SATA phy for 8064 (srinivas.k)
 
* SATA phy for 8064 (srinivas.k)
 +
* 8064 GCC support (sboyd)
  
 
== Merged into 3.15 ==
 
== Merged into 3.15 ==
Line 79: Line 84:
 
* GSBI driver (agross)
 
* GSBI driver (agross)
 
* amba work for qcom (srinivas.k)
 
* amba work for qcom (srinivas.k)
 
  
 
== Merged into 3.14 ==
 
== Merged into 3.14 ==
 
* BAM dma driver (agross)
 
* BAM dma driver (agross)
 +
* ARM perf work (sboyd)
 +
* update vibrator, powerkey and keypad drivers to DT (sboyd)
 +
* some pm8921 fixups (sboyd)
 +
 +
== Merged into 3.10 ==
 +
* Use common clock framework (sboyd)
  
 
= Working area =
 
= Working area =
 
== people submitting patches ==
 
== people submitting patches ==
 
Here is a list of people submitting patches for linux-arm-msm:
 
Here is a list of people submitting patches for linux-arm-msm:
* Andy Gross <agross(at)codeaurora(dot)org>
+
== June/July 2015 ==
 +
* Rajendra Nayak <rnayak(at)codeaurora(dot)org>
 +
** GDSC support
 +
** LCC for 806x
 +
 
 +
* Andy Gross <agross(at)codeaurora(dot)org> (scanned)
 
** SCM (secure channel Manager)
 
** SCM (secure channel Manager)
  
* Srinivas Kadagatla <srinivas(dot)kandagatla(at)linaro(dot)org>
+
* Srinivas Kandagatla <srinivas(dot)kandagatla(at)linaro(dot)org> (scanned)
 
** QFPROM (fuses)
 
** QFPROM (fuses)
 
** nvmem framework
 
** nvmem framework
Line 126: Line 141:
 
** drm: fb emulation
 
** drm: fb emulation
  
* Gerogi Cjakov <georgi.djakov(at)linaro(dot)org>
+
* Georgi Djakov <georgi.djakov(at)linaro(dot)org>
 
** clk: qcom: Add support for RPM Clocks
 
** clk: qcom: Add support for RPM Clocks
  
Line 137: Line 152:
  
 
* David Collins <collinsd(at)codeaurora(dot)org>
 
* David Collins <collinsd(at)codeaurora(dot)org>
*
 
  
 
* Josh Cartwright <joshc(at)codeaurora(dot)org>
 
* Josh Cartwright <joshc(at)codeaurora(dot)org>
**  
+
* saravana Kannan <skanna(at)codeaurora(dot)org>
 +
** clk stuff
  
* saravana Kannan <skanna(at)codeaurora(dot)org>
 
* clk stuff
 
*
 
 
== filenames ==
 
== filenames ==
 
* devicetree/bindings/firmware/qcom,scm.txt
 
* devicetree/bindings/firmware/qcom,scm.txt
Line 161: Line 173:
 
== slow responses ==
 
== slow responses ==
 
* v2, hwspinlock: Introduce raw capability for hwspinlock_device - submitted Jun 9, first response June 27 by Ohad Ben-Cohen
 
* v2, hwspinlock: Introduce raw capability for hwspinlock_device - submitted Jun 9, first response June 27 by Ohad Ben-Cohen
*
 
  
 
= Specific Hardware =
 
= Specific Hardware =
Line 170: Line 181:
 
* KRAIT - arm processor - '''(DONE)'''
 
* KRAIT - arm processor - '''(DONE)'''
 
* SAW - SPM AVS wrapper - adaptive wakup, sleep, voltage
 
* SAW - SPM AVS wrapper - adaptive wakup, sleep, voltage
** AVS - adaptive voltage scaler
+
** AVS - adaptive voltage scaler <<ignore>>
** SPM - subsystem power manager - '''(DONE)'''
+
** SPM - subsystem power manager - '''(DONE)''' <<half-done>> not doing voltage, only doing idle path
* RPM - Resource power manager - regulator voting thingy - '''(in progress)''' - ''Bjorn, AGross''
+
* RPM - Resource power manager - regulator voting thingy - '''(DONE)''' - ''Bjorn, AGross''
 
* PM8941 - power management IC (PMIC) - see sub-parts for status
 
* PM8941 - power management IC (PMIC) - see sub-parts for status
 
** WLED - '''(DONE)''' - ''Courtney''
 
** WLED - '''(DONE)''' - ''Courtney''
 
** PWM - pulse width modulator outputs - '''(in progress)''' - ''Courtney''
 
** PWM - pulse width modulator outputs - '''(in progress)''' - ''Courtney''
 
** LPG - (RGB LEDS) - '''(in progress)''' - ''Courtney''
 
** LPG - (RGB LEDS) - '''(in progress)''' - ''Courtney''
** VIB - vibrator drivers
+
** VIB - vibrator drivers - there's one for A-family done.  probably the same, but on different bus
 
** GPIO - '''(DONE)'''
 
** GPIO - '''(DONE)'''
 
** MPP - '''(DONE)'''
 
** MPP - '''(DONE)'''
Line 185: Line 196:
 
** PON - power on thingy - '''(DONE)'''
 
** PON - power on thingy - '''(DONE)'''
 
** RTC - realtime clock - '''(DONE)'''
 
** RTC - realtime clock - '''(DONE)'''
** coincell - '''(in progress)''' - ''Tim''
+
** coincell - '''(DONE)''' - ''Tim''
** regulators - '''(in progress)''' (see RPM) - ''Bjorn, AGross''
+
** regulators - '''(DONE)''' (except for the corner regulators)
** PMIC clocks - '''(not done)'''
+
*** RPM regulators - '''(DONE)''' (see RPM) - ''Bjorn, AGross'' - <<only thing missing is 8016/8084 tables>>
 +
**** two buckets for RPM active state and sleep state, SPM switches modes. aggregation of messages not working
 +
*** SPMI regulators - '''(DONE - 4.0)''' - ''sboyd''
 +
** PMIC clocks - '''(not done)''' <<should be easy to do>> RF clock and XO buffers probably sucked into rpm clocks, could be pinctrl.
 
** VADC - '''(DONE?)''' - ''Ivan''
 
** VADC - '''(DONE?)''' - ''Ivan''
 
* PM8841 - analog regulators - '''(not done)'''
 
* PM8841 - analog regulators - '''(not done)'''
* MODEM - '''(not done)''' (but see RemoteProc)
+
* MODEM - '''(not done)''' (but see RemoteProc) - not likelty to chage
 +
* PIL - lives in remoteproc, used for firmware load, have a common scheme, for wifi, modem, dsp, venus, Q6, etc.
 
* TLMM - top level mode manager '''(DONE)'''
 
* TLMM - top level mode manager '''(DONE)'''
 
** PINCTRL - '''(DONE)'''
 
** PINCTRL - '''(DONE)'''
* QUP - configurable serial blocks
+
* QUP - configurable serial blocks (not done)  - have lots of fixes for i2c and spi
** I2C - '''(DONE)'''
+
** I2C - '''(not DONE)''' - ''agross''
** SPI - '''(DONE)'''
+
** SPI - '''(not DONE)''' - ''agross'' - patches coming in from server guys.
* BLSP - UART - '''(DONE)''' '''(could use high speed improvements)'''
+
* BLSP - UART - '''(DONE)''' '''(could use high speed improvements)''' - Ivan has patches for that.
 
* SDHCI - SD Card/emmc/EMMC controller - '''(DONE - but needs regulator for HPM mode)''' - ''Bjorn''
 
* SDHCI - SD Card/emmc/EMMC controller - '''(DONE - but needs regulator for HPM mode)''' - ''Bjorn''
 
* GCC - global clocks - '''(DONE)'''
 
* GCC - global clocks - '''(DONE)'''
 +
** GDSC - global distributed switch controllers - '''(in next (4.4))''' - ''rnayak''
 
* MMCC - multimedia clocks - '''(DONE)'''
 
* MMCC - multimedia clocks - '''(DONE)'''
 
* LCC - LPASS (audio) clocks - '''(DONE)'''  
 
* LCC - LPASS (audio) clocks - '''(DONE)'''  
* LPASS - Audio - '''(not done)''' - ''some 3rd party??''
+
* LPASS - Audio - '''(not done)''' - ''some 3rd party??'' - on 8016 the DSP is cut out.  Normally would load DSP for this
 
* MDP - 2d display stuff - '''(DONE)''' - ''Rob''
 
* MDP - 2d display stuff - '''(DONE)''' - ''Rob''
 
* SATA - '''(DONE)'''
 
* SATA - '''(DONE)'''
Line 207: Line 223:
 
* SPMI - '''(DONE)'''
 
* SPMI - '''(DONE)'''
 
* QGIC - interrupt controller - '''(DONE)'''
 
* QGIC - interrupt controller - '''(DONE)'''
* MPM - power manager - '''(not done)'''
+
* MPM - power manager - '''(not done)''' <<suspend>>, is it needed?  If you don't have it, you can't suspend. nobody working on (a year away).  Depends on all of PM to be there first.
* OCMEM - multimedia memory = '''(not done)'''
+
* OCMEM - multimedia memory = '''(not done)''' - ''rob'' (may already be done)
 
* USB 2.0 controller - chipidea - '''(Done, but needs more)''' - ''Tim''
 
* USB 2.0 controller - chipidea - '''(Done, but needs more)''' - ''Tim''
 
* USB 2.0 PHY - '''(DONE, but needs more)''' - ''Tim'' - needs regulator support
 
* USB 2.0 PHY - '''(DONE, but needs more)''' - ''Tim'' - needs regulator support
 
* HSIC PHY - '''(not done)'''
 
* HSIC PHY - '''(not done)'''
* USB 3.0 PHY - '''(not done)'''
+
* USB 3.0 PHY - '''(not done)''' - dwc3 - needs some massaging
* USB 3.0 controller - dwc3 - '''(not done)'''
+
* USB 3.0 controller - dwc3 - '''(DONE)'''
* slimbus - peripheral bus - '''(not done)'''
+
* slimbus - peripheral bus - '''(in progress)''' audio bus - work was done on 8064, - ''Sagar Dharia'' was in development, probably still in progress.
* MI2S - multi-channel audio - '''(not done)''' - ''Kenneth?''
+
* MI2S - multi-channel audio - '''(??)''' - done for 8064, can use same code for 8016, completely different in 8074, register layout changes.
* I2S - sound thingy - '''(not done)'''
+
* I2S - sound thingy - '''(not done)''' - outgoing audio on most SOCs - unknown status, 8016 works upstream
 
* QCRYPTO - '''(DONE)'''
 
* QCRYPTO - '''(DONE)'''
 
* PRND - random number generator - '''(DONE)'''
 
* PRND - random number generator - '''(DONE)'''
* RIVA - radio controller - '''(Done, but needs major rewrite)'''
+
* RIVA - radio controller - '''(Done, but needs major rewrite)''' - -older generation for qcom wifi
 
* HDMI - '''(DONE)'''
 
* HDMI - '''(DONE)'''
* DSI - '''(not done)'''
+
* DSI - '''(DONE)'''
* eDP - display port - '''(not done)'''
+
* eDP - display port - '''(DONE)'''
* VENUS - video codec thingy - '''(not done)'''
+
* VENUS - video codec thingy - '''(in progress)''' - firmware blob , v4l driver being worked on, have some support on 4.2, 8016 version of IP is 'lite' version of IP block.
 
* VFE - video front end - '''(not done)'''
 
* VFE - video front end - '''(not done)'''
 
* VPE - video processing engine - '''(not done)'''
 
* VPE - video processing engine - '''(not done)'''
* CSI - camera high speed serial interface (mipi spec) - '''(not done)'''
+
* CSI - camera high speed serial interface (mipi spec) - '''(not done)''' - ''ivan on 8016??''
* CCI - camera i2c interface (mipi spec) - '''(not done)'''
+
* CCI - camera i2c interface (mipi spec) - '''(not done)'''- ''ivan on 8016??''
* TCSR - '''(not done)'''
+
* TCSR - '''(?)'''
 
** hardware mutex - hwspinlock - '''(DONE)'''
 
** hardware mutex - hwspinlock - '''(DONE)'''
 
*** hwspinlock DT support - '''(DONE)'''
 
*** hwspinlock DT support - '''(DONE)'''
** halt control
+
** halt control - '''(unknown)'''
* QFPROM - fuses - '''(not done)'''
+
* QFPROM - fuses - '''(DONE)'''
 
* BAM - dma stuff - '''(DONE - but missing utilization by individual drivers)'''
 
* BAM - dma stuff - '''(DONE - but missing utilization by individual drivers)'''
* TSENSE - thermal sensing - '''(in progress)'''
+
* TSENSE - thermal sensing - '''(DONE)'''
 +
* IOMMU - IO memmory management unit - it's complicated, nobody working on 8074 or 8016.
  
 
=== Features ===
 
=== Features ===
 
Here is a list of features (related to IP blocks) for an 8974 processor:
 
Here is a list of features (related to IP blocks) for an 8974 processor:
* charger (see charger IP block) - ''Courtney''
+
* charger '''(in progress)''' - ''Courtney''
* regulators (depends on RPM) - ''Bjorn''
+
* regulators '''(DONE)''' - ''Bjorn''
* remoteproc-tz - loading firmware through trustzone
+
* remoteproc-tz - loading firmware through trustzone - '''(in progress)''' - ''Bjorn''
 
* USB 2.0 gadget - '''(DONE - but needs regulators)''' - ''Tim''
 
* USB 2.0 gadget - '''(DONE - but needs regulators)''' - ''Tim''
 
* USB 2.0 host - '''(not done)'''
 
* USB 2.0 host - '''(not done)'''
 
* USB 2.0 OTG - '''(in progress)''' - ''Tim''
 
* USB 2.0 OTG - '''(in progress)''' - ''Tim''
* SMEM - provides an inter-processor heap - '''(in progress)''' - ''Bjorn''
+
* SMEM - provides an inter-processor heap - '''(DONE)''' - ''Bjorn''
* SMD - inter-processor ring buffers - '''(in-progress)''' - ''Bjorn''
+
** See [[Qualcomm SMEM_Items]]
 +
* SMD - inter-processor ring buffers - '''(DONE)''' - ''Bjorn''
 
* SMP2P - interprocessor state signaling - '''(in progress)''' - ''Bjorn''
 
* SMP2P - interprocessor state signaling - '''(in progress)''' - ''Bjorn''
 
* SMSM - interprocessor state signaling - '''(in progress)''' - ''Bjorn''
 
* SMSM - interprocessor state signaling - '''(in progress)''' - ''Bjorn''
* Bluetooth
+
* Bluetooth '''(in progress)''' - ''Bjorn'', ''Courtney''
 
* FM radio
 
* FM radio
 
* WiFi - wcn36xx - '''(in progress)''' - ''Bjorn''
 
* WiFi - wcn36xx - '''(in progress)''' - ''Bjorn''
 
* MHL
 
* MHL
 
* NFC
 
* NFC
* Vibrator
+
* Vibrator - '''(DONE)'''
 
* Audio Codec
 
* Audio Codec
 
* IRDA
 
* IRDA
 
* irq_read_line - '''(DONE)'''
 
* irq_read_line - '''(DONE)'''
 
* ipcrouter - '''(in progress)''' - ''Courtney''
 
* ipcrouter - '''(in progress)''' - ''Courtney''
 +
* Adreno GPU - '''(in progress)''' - ''Rob Clark''
  
=== Dependencies ===
+
=== Outstanding dependencies ===
 
Dependencies:
 
Dependencies:
 
'->' = "depends on"
 
'->' = "depends on"
* Regulators -> RPM -> SMD -> SMEM -> tcsr-mutex
 
* SMP2P -> SMEM
 
* SMSM -> SMEM
 
* SMD -> SMEM -> tcsr-mutex
 
* DSI -> regulators -> RPM -> SMD -> SMEM -> tcsr-mutex
 
* USB 2.0 controller -> charger PMIC ID -> irq_read_line
 
* USB 2.0 phy -> regulators -> RPM -> SMD -> SMEM -> tcsr-mutex
 
* USB 2.0 controller -> charger OTG switch -> charger
 
* charger -> irq_read_line
 
  
 
= Resources =
 
= Resources =
 +
[[LCU15 Qualcomm Mainlining meeting notes]] - Notes from meeting on September 24
 +
 
== mailing list ==
 
== mailing list ==
 
* Web site: http://vger.kernel.org/vger-lists.html#linux-arm-msm
 
* Web site: http://vger.kernel.org/vger-lists.html#linux-arm-msm

Revision as of 22:27, 30 September 2015

Overview

Here is some information about the Qualcomm SOC mainlining project. On this page are currently some lists of different IP SoC IP blocks or functional areas, with status for each one.

Project List

October 2015

  • wcn36xx (bjorn)

September 2015

  • remoteproc for wifi core (bjorn)
  • smem state stuff (bjorn)
  • bt hci smd (bjorn)
  • extcon USB int (for ID detect) (tim.b)
  • chipidea USB controller extcon support (ivan)
  • smbb charger (courtney)
    • including regulator for OTG vbus (tim.b)

July 2015

List of items "in flight" (as of July 2015)

  • regulators (bjorn)
  • backlight driver (bjorn)
  • coincell driver (tim.b)
  • dts support for 8064 SATA, i2c, USB OTG/host, regulators (srinivas.k)
  • 8016 sound card/lpass (srinivas.k)
  • SPM (subsystem power manager) driver (lina)
  • GDSC (global distributed switch controllers) (rnayak)

June 2014

List of items that need to be mainlined, or are "in flight" (as of June, 2014):

  • regulators - Josh Cartwright?, Bjorn Andersson?
  • clocks - Stephen Boyd
  • RPM
  • SD Card Controller - Srinivas Kandagatla
  • 8084 clock controller - Georgi Djakov
  • dma engine - Andy Gross
  • SOC-specific
    • 8084
    • 8974
  • USB support
    • USB host mode for HS port - Tim Bird
    • dwc3 (superspeed) USB driver
  • spmi - ??

Status

Planned for 4.4

Expected in 4.3

  • qcom_smbb charger

Merged into 4.2

  • coincell charger driver
  • RPM regulators?

[need to fill this in more]

Merged into 4.1

  • dts support for 8064 SATA, i2c, USB OTG/host, regulators (srinivas.k)
  • 8016 sound card/lpass (srinivas.k)
  • SPM (subsystem power manager) driver (lina)
  • regulator: add spmi regulator driver (sboyd)

Merged into 4.0

  • spi: qpu: add DMA support (agross)
  • dts TCSR support for 8960, 8660, 8064 (agross)

Merged into 3.19

  • clk: qcom: LCC driver (806x LPASS clocks) (rnayak)

Merged into 3.17

  • clk: 8064 PLL required for USB (agross)
  • i2c: qup fix order for pm init (agross)
  • sdcc support for 8064 (sdcc4 for wlan), via mcci driver (srinivas.k)

Merged into 3.16

  • spi: qup fixups (agross)
  • usb: phy fixups (srinivas.k)
  • mmc: mmci: SD card controller (srinivas.k)
  • SATA phy for 8064 (srinivas.k)
  • 8064 GCC support (sboyd)

Merged into 3.15

  • pinctrl for 8064 (agross)
  • GSBI driver (agross)
  • amba work for qcom (srinivas.k)

Merged into 3.14

  • BAM dma driver (agross)
  • ARM perf work (sboyd)
  • update vibrator, powerkey and keypad drivers to DT (sboyd)
  • some pm8921 fixups (sboyd)

Merged into 3.10

  • Use common clock framework (sboyd)

Working area

people submitting patches

Here is a list of people submitting patches for linux-arm-msm:

June/July 2015

  • Rajendra Nayak <rnayak(at)codeaurora(dot)org>
    • GDSC support
    • LCC for 806x
  • Andy Gross <agross(at)codeaurora(dot)org> (scanned)
    • SCM (secure channel Manager)
  • Srinivas Kandagatla <srinivas(dot)kandagatla(at)linaro(dot)org> (scanned)
    • QFPROM (fuses)
    • nvmem framework
    • i2c:qup bugfix and refactor
  • Maxime Ripard <maxime(dot)ripard@free-electrons(dot)com>
    • nvmem framework
  • Stephen Boyd <sboyd(at)codeaurora(dot)org>
    • pmic8xxx-pwrkey - Support shutdown
    • SPMI regulator driver
  • Sricharan R <sricharan(at)codeaurora(dot)org>
    • i2c:qup, BAM DMA
    • iommu/arm-smmu: Add support for specifying regulators
  • Ivan T. Ivanov <ivan(dot)ivanov(at)linaro(dot)org>
    • sdhci
    • pinctrl: qpnp
  • Lina Iyer <lina(dot)iyer(at)linaro(dot)org>
    • hwspinlocks
  • Bjorn Andersson <bjorn(dot)andersson(at)sonymobile(dot)com>
    • SMEM
    • mfd: pm8921: Implement irq_get_irqchip_state
    • firmware: qcom: scm: Peripheral Authentication Service
  • Timur Tabi <timur(at)codeaurora(dot)org>
    • pinctrl: add support for Qualcomm Technologies QDF2xxx ARM64 SoC (v2)
    • pinctrl: qcom: spmi-mpp:
  • Archit Taneja <architt(at)codeaurora(dot)org>
    • drm/misc: Kconfig cleanup
    • drm: fb emulation
  • Georgi Djakov <georgi.djakov(at)linaro(dot)org>
    • clk: qcom: Add support for RPM Clocks

July 2014

  • Olav Haugan <ohaugan(at)codeaurora(dot)org>
    • iommu-api: Add map_sg/unmap_sg functions
  • Stanimir Varbanov <svarbanov(at)mm-sol.com>
    • Support for Qualcomm QPNP PMIC's
  • David Collins <collinsd(at)codeaurora(dot)org>
  • Josh Cartwright <joshc(at)codeaurora(dot)org>
  • saravana Kannan <skanna(at)codeaurora(dot)org>
    • clk stuff

filenames

  • devicetree/bindings/firmware/qcom,scm.txt
  • drivers/firmware/qcom_scm.c
  • drivers/mmc/host/sdhci-msm.c
  • drivers/hwspinlock/qcom_hwspinlock.c
  • drivers/regulator/qcom_spmi-regulator.c
  • drivers/qcom/smem.c
  • drivers/clk/qcom/clk-rpm.c

Possible file regex for 'git log' search: (*qcom*, *msm*)


slow responses

  • v2, hwspinlock: Introduce raw capability for hwspinlock_device - submitted Jun 9, first response June 27 by Ohad Ben-Cohen

Specific Hardware

IP blocks on the 8974

  • KRAIT - arm processor - (DONE)
  • SAW - SPM AVS wrapper - adaptive wakup, sleep, voltage
    • AVS - adaptive voltage scaler <<ignore>>
    • SPM - subsystem power manager - (DONE) <<half-done>> not doing voltage, only doing idle path
  • RPM - Resource power manager - regulator voting thingy - (DONE) - Bjorn, AGross
  • PM8941 - power management IC (PMIC) - see sub-parts for status
    • WLED - (DONE) - Courtney
    • PWM - pulse width modulator outputs - (in progress) - Courtney
    • LPG - (RGB LEDS) - (in progress) - Courtney
    • VIB - vibrator drivers - there's one for A-family done. probably the same, but on different bus
    • GPIO - (DONE)
    • MPP - (DONE)
    • Charger - (in progress) - Courtney, Bjorn
    • IADC - (DONE)
    • BMS - battery monitoring system (not done)
    • PON - power on thingy - (DONE)
    • RTC - realtime clock - (DONE)
    • coincell - (DONE) - Tim
    • regulators - (DONE) (except for the corner regulators)
      • RPM regulators - (DONE) (see RPM) - Bjorn, AGross - <<only thing missing is 8016/8084 tables>>
        • two buckets for RPM active state and sleep state, SPM switches modes. aggregation of messages not working
      • SPMI regulators - (DONE - 4.0) - sboyd
    • PMIC clocks - (not done) <<should be easy to do>> RF clock and XO buffers probably sucked into rpm clocks, could be pinctrl.
    • VADC - (DONE?) - Ivan
  • PM8841 - analog regulators - (not done)
  • MODEM - (not done) (but see RemoteProc) - not likelty to chage
  • PIL - lives in remoteproc, used for firmware load, have a common scheme, for wifi, modem, dsp, venus, Q6, etc.
  • TLMM - top level mode manager (DONE)
    • PINCTRL - (DONE)
  • QUP - configurable serial blocks (not done) - have lots of fixes for i2c and spi
    • I2C - (not DONE) - agross
    • SPI - (not DONE) - agross - patches coming in from server guys.
  • BLSP - UART - (DONE) (could use high speed improvements) - Ivan has patches for that.
  • SDHCI - SD Card/emmc/EMMC controller - (DONE - but needs regulator for HPM mode) - Bjorn
  • GCC - global clocks - (DONE)
    • GDSC - global distributed switch controllers - (in next (4.4)) - rnayak
  • MMCC - multimedia clocks - (DONE)
  • LCC - LPASS (audio) clocks - (DONE)
  • LPASS - Audio - (not done) - some 3rd party?? - on 8016 the DSP is cut out. Normally would load DSP for this
  • MDP - 2d display stuff - (DONE) - Rob
  • SATA - (DONE)
  • DSP - (in progress) - Bjorn - (see ??? RemoteProc??) - can send audio via slimbus, and handles sensor stuff
  • SPMI - (DONE)
  • QGIC - interrupt controller - (DONE)
  • MPM - power manager - (not done) <<suspend>>, is it needed? If you don't have it, you can't suspend. nobody working on (a year away). Depends on all of PM to be there first.
  • OCMEM - multimedia memory = (not done) - rob (may already be done)
  • USB 2.0 controller - chipidea - (Done, but needs more) - Tim
  • USB 2.0 PHY - (DONE, but needs more) - Tim - needs regulator support
  • HSIC PHY - (not done)
  • USB 3.0 PHY - (not done) - dwc3 - needs some massaging
  • USB 3.0 controller - dwc3 - (DONE)
  • slimbus - peripheral bus - (in progress) audio bus - work was done on 8064, - Sagar Dharia was in development, probably still in progress.
  • MI2S - multi-channel audio - (??) - done for 8064, can use same code for 8016, completely different in 8074, register layout changes.
  • I2S - sound thingy - (not done) - outgoing audio on most SOCs - unknown status, 8016 works upstream
  • QCRYPTO - (DONE)
  • PRND - random number generator - (DONE)
  • RIVA - radio controller - (Done, but needs major rewrite) - -older generation for qcom wifi
  • HDMI - (DONE)
  • DSI - (DONE)
  • eDP - display port - (DONE)
  • VENUS - video codec thingy - (in progress) - firmware blob , v4l driver being worked on, have some support on 4.2, 8016 version of IP is 'lite' version of IP block.
  • VFE - video front end - (not done)
  • VPE - video processing engine - (not done)
  • CSI - camera high speed serial interface (mipi spec) - (not done) - ivan on 8016??
  • CCI - camera i2c interface (mipi spec) - (not done)- ivan on 8016??
  • TCSR - (?)
    • hardware mutex - hwspinlock - (DONE)
      • hwspinlock DT support - (DONE)
    • halt control - (unknown)
  • QFPROM - fuses - (DONE)
  • BAM - dma stuff - (DONE - but missing utilization by individual drivers)
  • TSENSE - thermal sensing - (DONE)
  • IOMMU - IO memmory management unit - it's complicated, nobody working on 8074 or 8016.

Features

Here is a list of features (related to IP blocks) for an 8974 processor:

  • charger (in progress) - Courtney
  • regulators (DONE) - Bjorn
  • remoteproc-tz - loading firmware through trustzone - (in progress) - Bjorn
  • USB 2.0 gadget - (DONE - but needs regulators) - Tim
  • USB 2.0 host - (not done)
  • USB 2.0 OTG - (in progress) - Tim
  • SMEM - provides an inter-processor heap - (DONE) - Bjorn
  • SMD - inter-processor ring buffers - (DONE) - Bjorn
  • SMP2P - interprocessor state signaling - (in progress) - Bjorn
  • SMSM - interprocessor state signaling - (in progress) - Bjorn
  • Bluetooth (in progress) - Bjorn, Courtney
  • FM radio
  • WiFi - wcn36xx - (in progress) - Bjorn
  • MHL
  • NFC
  • Vibrator - (DONE)
  • Audio Codec
  • IRDA
  • irq_read_line - (DONE)
  • ipcrouter - (in progress) - Courtney
  • Adreno GPU - (in progress) - Rob Clark

Outstanding dependencies

Dependencies: '->' = "depends on"

Resources

LCU15 Qualcomm Mainlining meeting notes - Notes from meeting on September 24

mailing list

IRC channel

You can access the IRC channel from inside a corporate firewall using the web interface.

git trees

Other resources

Stakeholders

This is a list of parties who are (or should be) interested in the progress of this work:

  • Qualcomm
  • Code Aurora Forum
  • Linaro
  • Qualcomm Innovation Center
  • Sony
  • Samsung
  • LG
  • HTC
  • Lenovo/Motorola
  • Xiaomi

Table of phones, processors and download sites

For links to different download sites, see Phones Processors and Download Sites

Status

[Figure out a metric for what remains to be done]

  • brainstorming ideas for metric to measure:
    • # of features out of tree (should be going down)
    • size of diff between latest msm tree and server it was based on? (should be going down)
    • linaro uses patch queue length (outstanding vs. already mainlined)