Difference between revisions of "Qualcomm SOC Mainlining Project"

From eLinux.org
Jump to: navigation, search
(fix samsung generic download site entry)
(IP blocks on the 8974)
(45 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
= Overview =
 
Here is some information about the Qualcomm SOC mainlining project.
 
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.
  
[ this page is currently a stub ]
+
= Project List =
 +
== 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)
  
== Project List ==
+
== June 2014 ==
 
List of items that need to be mainlined, or are "in flight" (as of June, 2014):
 
List of items that need to be mainlined, or are "in flight" (as of June, 2014):
  
Line 15: Line 27:
 
** 8084
 
** 8084
 
** 8974
 
** 8974
* SOC DT file? - Kumar Gala?
 
 
* USB support
 
* USB support
 
** USB host mode for HS port - Tim Bird
 
** USB host mode for HS port - Tim Bird
Line 21: Line 32:
 
* spmi - ??
 
* spmi - ??
  
== Project Table ==
+
= Status =
This might be too time-consuming to maintain?
+
== Planned for 4.2 ==
{|  border="1" cellspacing="0" cellpadding="4"
 
|- bgcolor="#c0e0e0"
 
| align="center" | '''Feature or Item'''
 
| align="center" | '''Person'''
 
| align="center" | '''Notes'''
 
| align="center" | '''Link'''
 
| align="center" | '''Last activity'''
 
|-
 
| USB - msm_otg host mode ||Tim Bird
 
| I'm currently working on the pmic_id_irq, which require spmi support.
 
I got stuck on the DT EPROBE_DEFER support issue.
 
| <no links yet>
 
| none yet
 
|-
 
| SD card controller||Srinivas Kandagatla
 
|This patch series adds Qualcomm SD Card Controller support in pl180 mmci
 
driver. QCom SDCC is basically a pl180, but bit more customized, some of the
 
register layouts and offsets are different to the ones mentioned in pl180
 
datasheet. The plan is to totally remove the standalone SDCC driver
 
drivers/mmc/host/msm_sdcc.* and start using generic mmci driver for all
 
Qualcomm parts, as we get chance to test on other Qcom boards.
 
|http://thread.gmane.org/gmane.linux.ports.arm.msm/7706
 
https://www.mail-archive.com/linux-arm-msm@vger.kernel.org/msg09059.html
 
| 2014-06-02
 
|-
 
| 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.1 ==
[ add person who is working on each part ]
+
* 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)
  
== Specific Hardware ==
+
== 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 Kadagatla <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 =
 
* 8074 ([[Dragonboard/APQ8074]])
 
* 8074 ([[Dragonboard/APQ8074]])
 
* 8064 ([[Dragonboard/IFC6410]], [[Dragonboard/SYS6440]])
 
* 8064 ([[Dragonboard/IFC6410]], [[Dragonboard/SYS6440]])
  
== Resources ==
+
== IP blocks on the 8974 ==
=== mailing list ===
+
* KRAIT - arm processor - '''(DONE)'''
 +
* SAW - SPM AVS wrapper - adaptive wakup, sleep, voltage
 +
** AVS - adaptive voltage scaler
 +
** SPM - subsystem power manager - '''(DONE)'''
 +
* RPM - Resource power manager - regulator voting thingy - '''(in progress)''' - ''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
 +
** 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
 +
*** RPM regulators - '''(in progress)''' (see RPM) - ''Bjorn, AGross''
 +
*** SPMI regulators - '''(DONE - 4.0)''' - ''sboyd''
 +
** PMIC clocks - '''(not done)'''
 +
** VADC - '''(DONE?)''' - ''Ivan''
 +
* PM8841 - analog regulators - '''(not done)'''
 +
* MODEM - '''(not done)''' (but see RemoteProc)
 +
* TLMM - top level mode manager '''(DONE)'''
 +
** PINCTRL - '''(DONE)'''
 +
* QUP - configurable serial blocks
 +
** I2C - '''(DONE)'''
 +
** SPI - '''(DONE)'''
 +
* BLSP - UART - '''(DONE)''' '''(could use high speed improvements)'''
 +
* SDHCI - SD Card/emmc/EMMC controller - '''(DONE - but needs regulator for HPM mode)''' - ''Bjorn''
 +
* GCC - global clocks - '''(DONE)'''
 +
** GDSC - global distributed switch controllers - '''(in progress)''' - ''rnayak''
 +
* MMCC - multimedia clocks - '''(DONE)'''
 +
* LCC - LPASS (audio) clocks - '''(DONE)'''
 +
* LPASS - Audio - '''(not done)''' - ''some 3rd party??''
 +
* 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)'''
 +
* OCMEM - multimedia memory = '''(not 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)'''
 +
* USB 3.0 controller - dwc3 - '''(not done)'''
 +
* slimbus - peripheral bus - '''(in progress)'''
 +
* MI2S - multi-channel audio - '''(not done)''' - ''Kenneth?''
 +
* I2S - sound thingy - '''(not done)'''
 +
* QCRYPTO - '''(DONE)'''
 +
* PRND - random number generator - '''(DONE)'''
 +
* RIVA - radio controller - '''(Done, but needs major rewrite)'''
 +
* HDMI - '''(DONE)'''
 +
* DSI - '''(DONE)'''
 +
* eDP - display port - '''(DONE)'''
 +
* VENUS - video codec thingy - '''(not done)'''
 +
* VFE - video front end - '''(not done)'''
 +
* VPE - video processing engine - '''(not done)'''
 +
* CSI - camera high speed serial interface (mipi spec) - '''(not done)'''
 +
* CCI - camera i2c interface (mipi spec) - '''(not done)'''
 +
* TCSR - '''(?)'''
 +
** hardware mutex - hwspinlock - '''(DONE)'''
 +
*** hwspinlock DT support - '''(DONE)'''
 +
** halt control - '''(unknown)'''
 +
* QFPROM - fuses - '''(in progress)'''
 +
* BAM - dma stuff - '''(DONE - but missing utilization by individual drivers)'''
 +
* TSENSE - thermal sensing - '''(in progress)'''
 +
 
 +
=== Features ===
 +
Here is a list of features (related to IP blocks) for an 8974 processor:
 +
* charger (see charger IP block) - ''Courtney''
 +
* regulators (depends on RPM) - ''Bjorn''
 +
* remoteproc-tz - loading firmware through trustzone
 +
* 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 - '''(in progress)''' - ''Bjorn''
 +
* SMD - inter-processor ring buffers - '''(in-progress)''' - ''Bjorn''
 +
* SMP2P - interprocessor state signaling - '''(in progress)''' - ''Bjorn''
 +
* SMSM - interprocessor state signaling - '''(in progress)''' - ''Bjorn''
 +
* Bluetooth
 +
* FM radio
 +
* WiFi - wcn36xx - '''(in progress)''' - ''Bjorn''
 +
* MHL
 +
* NFC
 +
* Vibrator
 +
* Audio Codec
 +
* IRDA
 +
* irq_read_line - '''(DONE)'''
 +
* ipcrouter - '''(in progress)''' - ''Courtney''
 +
 
 +
=== Dependencies ===
 +
Dependencies:
 +
'->' = "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 =
 +
== 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
 
** subscribe or unsubscribe via e-mail, by following links on the above page
 
** subscribe or unsubscribe via e-mail, by following links on the above page
Line 69: Line 274:
 
** gmain: http://dir.gmane.org/gmane.linux.ports.arm.msm
 
** gmain: http://dir.gmane.org/gmane.linux.ports.arm.msm
  
=== IRC channel ===
+
== IRC channel ==
 
* Server: freenode (chat.freenode.net)
 
* Server: freenode (chat.freenode.net)
 
* Channel ##linux-msm
 
* Channel ##linux-msm
Line 76: Line 281:
 
You can access the IRC channel from inside a corporate firewall using the web interface.
 
You can access the IRC channel from inside a corporate firewall using the web interface.
  
=== git trees ===
+
== git trees ==
 
* git trees:
 
* git trees:
 
** Sony github integration ("next") tree: https://github.com/andersson/kernel/tree/next
 
** Sony github integration ("next") tree: https://github.com/andersson/kernel/tree/next
Line 82: Line 287:
 
** Code Aurora git trees: https://www.codeaurora.org/cgit/quic/kernel
 
** Code Aurora git trees: https://www.codeaurora.org/cgit/quic/kernel
 
** Linaro Qualcomm integration tree: https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/shortlog/refs/heads/integration-linux-qcomlt
 
** Linaro Qualcomm integration tree: https://git.linaro.org/landing-teams/working/qualcomm/kernel.git/shortlog/refs/heads/integration-linux-qcomlt
=== Other resources ===
+
 
 +
== Other resources ==
  
 
* Linaro patch queue for msm (??): https://patches.linaro.org/project/linux-arm-msm/
 
* Linaro patch queue for msm (??): https://patches.linaro.org/project/linux-arm-msm/
 
* Linaro mainline patch queue: https://patches.linaro.org/team/linaro-landing-team-qualcomm/
 
* Linaro mainline patch queue: https://patches.linaro.org/team/linaro-landing-team-qualcomm/
  
== Stakeholders ==
+
= Stakeholders =
 
This is a list of parties who are (or should be) interested in the progress of this work:
 
This is a list of parties who are (or should be) interested in the progress of this work:
 
* Qualcomm
 
* Qualcomm
Line 100: Line 306:
 
* Xiaomi
 
* Xiaomi
  
=== Table of phones, processors and download sites ===
+
== Table of phones, processors and download sites ==
Here is a table of smartphone vendors and their flagship products (as of Fall, 2014)
+
For links to different download sites, see [[Phones Processors and Download Sites]]
{| border="1" cellspacing="0" cellpadding="5"
 
|-bgcolor="#80c0d0"
 
!Vendor
 
!Phone
 
!Processor
 
!Source tree
 
!Contact
 
|-
 
|Samsung||Galaxy S3||Exynos 4412 Quad
 
|-
 
|Samsung||Galaxy S5 (SM-G900T)||Qualcomm MSM8974AC Snapdragon 801
 
|SM-G900T_NA_KK_Opensource.zip from general Samsung open source site below (page 144 of their downloads for mobile phones)
 
|-
 
|Samsung||Galaxy Note 4||Qualcomm Snapdragon 805 (SM-N910S) / Exynos 5433 (SM-N910C)
 
|-
 
|Samsung||Galaxy A3/A5||Qualcomm Snapdragon 400
 
|-
 
|Samsung||?||?||http://opensource.samsung.com/reception/receptionSub.do?method=sub&sub=T&menu_item=mobile (generic download site)
 
|-
 
|HTC||One M8||Qualcomm Snapdragon 801
 
|http://dl4.htc.com/RomCode/Source_and_Binaries/m8ul-3.4.0-g2c0a258.zip (tar download, ugh!)
 
|-
 
|HTC||?||?||http://www.htcdev.com/devcenter/downloads/ (generic download site)
 
|-
 
|Lenovo/Motorola||Moto G||Qualcomm Snapdragon MSM8974AC 801
 
|-
 
|Lenovo/Motorola||Nexus 6||Qualcomm Snapdragon 805
 
|-
 
|Motorola||?||?
 
|https://github.com/MotorolaMobilityLLC/kernel-msm (last commit Sep 2014, in branch kitkat-4.4.4-release-titan)
 
|-
 
|LG||Optimus G3 (LG G3 D850)||Qualcomm Snapdragon 801
 
|file download LGD850_G3_KitKat_V10d_Kernel.zip from LG general site below
 
|-
 
|LG||?||?||https://www.lg.com/global/support/opensource/opensourceList?superOsCategoryId=CAT00000001&osCategoryId= (generic download site)
 
|-
 
|Sony||Xperia Z3||Qualcomm Snapdragon MSM8974AC 801
 
|https://github.com/sonyxperiadev/kernel-copyleft (latest branch is 23.0.1.A.0.xxx)
 
|-
 
|Xiaomi||Mi4||Qualcomm Snapdragon 8974AC 801
 
|-
 
|Xiaomi||Mi3||Qualcomm Snapdragon 800
 
|-
 
|Xiaomi||MiPad||NVIDIA Tegra K1
 
|-
 
|Huawei||Ascend Mate7||Hi-Silicon K3V2
 
|(could not find source in October, 2014)
 
|-
 
|Huawei||Ascend G7||Qualcomm Snapdragon (which version?)
 
|(could not find source in October, 2014) - usually they post stuff under the support, download section for each individual product, on this site: http://consumer.huawei.com/en/mobile-phones/support/downloads/
 
|-
 
|Lenovo||K900||Atom Z2580
 
|}
 
  
== Status ==
+
= Status =
 
[Figure out a metric for what remains to be done]
 
[Figure out a metric for what remains to be done]
 
* brainstorming ideas for metric to measure:
 
* brainstorming ideas for metric to measure:

Revision as of 11:43, 30 July 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

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

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 Kadagatla <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
    • SPM - subsystem power manager - (DONE)
  • RPM - Resource power manager - regulator voting thingy - (in progress) - 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
    • 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
      • RPM regulators - (in progress) (see RPM) - Bjorn, AGross
      • SPMI regulators - (DONE - 4.0) - sboyd
    • PMIC clocks - (not done)
    • VADC - (DONE?) - Ivan
  • PM8841 - analog regulators - (not done)
  • MODEM - (not done) (but see RemoteProc)
  • TLMM - top level mode manager (DONE)
    • PINCTRL - (DONE)
  • QUP - configurable serial blocks
    • I2C - (DONE)
    • SPI - (DONE)
  • BLSP - UART - (DONE) (could use high speed improvements)
  • SDHCI - SD Card/emmc/EMMC controller - (DONE - but needs regulator for HPM mode) - Bjorn
  • GCC - global clocks - (DONE)
    • GDSC - global distributed switch controllers - (in progress) - rnayak
  • MMCC - multimedia clocks - (DONE)
  • LCC - LPASS (audio) clocks - (DONE)
  • LPASS - Audio - (not done) - some 3rd party??
  • 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)
  • OCMEM - multimedia memory = (not 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)
  • USB 3.0 controller - dwc3 - (not done)
  • slimbus - peripheral bus - (in progress)
  • MI2S - multi-channel audio - (not done) - Kenneth?
  • I2S - sound thingy - (not done)
  • QCRYPTO - (DONE)
  • PRND - random number generator - (DONE)
  • RIVA - radio controller - (Done, but needs major rewrite)
  • HDMI - (DONE)
  • DSI - (DONE)
  • eDP - display port - (DONE)
  • VENUS - video codec thingy - (not done)
  • VFE - video front end - (not done)
  • VPE - video processing engine - (not done)
  • CSI - camera high speed serial interface (mipi spec) - (not done)
  • CCI - camera i2c interface (mipi spec) - (not done)
  • TCSR - (?)
    • hardware mutex - hwspinlock - (DONE)
      • hwspinlock DT support - (DONE)
    • halt control - (unknown)
  • QFPROM - fuses - (in progress)
  • BAM - dma stuff - (DONE - but missing utilization by individual drivers)
  • TSENSE - thermal sensing - (in progress)

Features

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

  • charger (see charger IP block) - Courtney
  • regulators (depends on RPM) - Bjorn
  • remoteproc-tz - loading firmware through trustzone
  • 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 - (in progress) - Bjorn
  • SMD - inter-processor ring buffers - (in-progress) - Bjorn
  • SMP2P - interprocessor state signaling - (in progress) - Bjorn
  • SMSM - interprocessor state signaling - (in progress) - Bjorn
  • Bluetooth
  • FM radio
  • WiFi - wcn36xx - (in progress) - Bjorn
  • MHL
  • NFC
  • Vibrator
  • Audio Codec
  • IRDA
  • irq_read_line - (DONE)
  • ipcrouter - (in progress) - Courtney

Dependencies

Dependencies: '->' = "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

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)