Currently we output virtual address of BAM when it is enabled,
which is not very helpful for debugging. Output BAM's physical
address instead as well as its version and pipe amount.
Change-Id: I1956a1c65bb047b9ff39f1cb04c04e8c08d7a890
Signed-off-by: Yan He <yanhe@codeaurora.org>
(cherry picked from commit c23ab8f614349eade2169402e529abfa1e8cfc24)
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
(cherry picked from commit d9533ab3e1bb136d8f61bf9acc4f04ca56e7eab7)
Clients can specify whether to ignore external block pipe reset
or not during BAM registration.
Signed-off-by: Yan He <yanhe@codeaurora.org>
(cherry picked from commit 821e276e5c19c80dcdf9c933acb6a3b0b9df0fce)
Change-Id: I1cde36cae8328c5b2cc5ec7f1dd053271f69e604
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
1> Output BAM_TEST_BUS content with specified TEST_BUS_SEL value,
which helps HW team's debugging.
2> Support selection of pipes to only output registers' values of
selected pipes.
Signed-off-by: Yan He <yanhe@codeaurora.org>
(cherry picked from commit fc1aa893e95a45a8a55b5ccc0cc01a5a8261f085)
Conflicts:
drivers/platform/msm/sps/sps.c
Change-Id: I78cd4f4f3f847b709d69f973b1d3ae7becab666d
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
Currently the log is output after callback is returned from the
client driver. Output the log first so that we could know the
callback is executed.
Change-Id: If9183b364d518f8b426b94f58556232605575714
Signed-off-by: Yan He <yanhe@codeaurora.org>
(cherry picked from commit 93fe9147cd2f053880a0156892328e290088cd65)
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
This driver supports the Qualcomm PNP clkdiv peripheral. It
allowed for configuring divide factors for various clock outputs
on the PMIC. The source clock is CXO.
The driver allows for configuration of the clkdiv device through
Device Tree. Some optional parameters may be specified instead at
runtime with the qpnp_clkdiv_config() API.
Change-Id: I393ed0e4389fb3c1dfe0bcdb40944102d2e09894
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
The PMIC 8941 v1.0 has a hardware bug where the RESIN line
does not generate an interrupt on key-press. The bark interrupt
can be used to provide the required functionality as follows -
Initialization:
1. Configure the bark (s1 timer) to 0ms, this generates the bark
interrupt as soon as the key is pressed.
2. Configure S2 reset timer to max 2 seconds and enable the S2 reset.
Runtime:
1. On receiving a bark interrupt report the key press, disable
reset and the bark irq. Schedule a work handler to execute after 500ms.
2. In the work, enable the reset and check the bark RT status bit.
3. If the bark RT bit is 0, report the key release and exit.
4. If bark RT bit is 1, disable the reset and re-arm the work for 500ms.
Change-Id: I6da47d27e32ada34660e36e6265f9078b2144999
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
The PON module supports various reset sources (physical pins)
such as KPDPWR, RESIN, RESIN+KPDPWR. These pins can be configured
for different reset types (such as warm, soft, hard) and can also
be used as push buttons (keys).
In the push-button configuration these pins act as gpios, only
reporting the state on the line (high/low) and no additional
pon based configuration being done in the hardware or software.
They can be used for generic buttons (such as volume up/down,
directional keys)
Change-Id: Icde78b49b1037c1b5a13d7e90f772f72ac822b2a
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
1> Check if the content of input IOVECs are valid.
2> The flag checking has existed in sps_transfer_one(). Move
this part to a separate function since it is common in both
sps_transfer_one() and sps_transfer().
Change-Id: I3835b60e216600496192ea0e84440d420f10adec
Signed-off-by: Yan He <yanhe@codeaurora.org>
Add this API to get the info of BAM registers and descriptor FIFOs.
Change-Id: I646119f6f1f7d8c94c71e30209b56a84bd4da38d
Signed-off-by: Yan He <yanhe@codeaurora.org>
Add the PWM devicetree bindings for the PWM/LPG device present in
Qualcomm PM8941 chipset. Also make the necessary changes to the driver
to comply with the devicetree binding requirements.
Change-Id: I8124e2541028719e5b747bc85ff548ac109a9735
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
Add USB bam changes to support QDSS in msm-8794.
Main additions:
Support device-tree files.
Add disconnect bam pipe support.
Add new API to retrieve pipe connection: get_bam2bam_connection_info.
Change-Id: I200d44dee319b8a9efda31b238c99202efddaa07
Signed-off-by: Shimrit Malichi <smalichi@codeaurora.org>
The updated ARM GCC compiler warns about the usage of
a variable that might have been uninitialized. Comply
to the warnings.
Change-Id: Ia400ba4b895f91e828a9e485be0f1fe5c12bcd64
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
The power-on module of the PMIC provides support for
power-key, reset and power on/off reasons and other
power-on related functionality.
The driver currently supports only the power-key detection.
Change-Id: If7d42ce38fba6e9a590d0953daadcd43ab746112
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Two changes for clocks:
1> Vote for dfab_clk which is the peripheral NOC on 8974;
2> Do not vote for mem_clk since it does not exist on 8974.
Change-Id: Ia9d5547073219cea4250d3038aa5aa01a47ff4e0
Signed-off-by: Yan He <yanhe@codeaurora.org>
Add the qpnp-pwm driver to support LPG/PWM devices in Qualcomm
plug-and-play (QPNP) PMIC chips. QPNP chips make use of
Qualcomm's SPMI register convention. LPG module provides a superset
of functionality provided by PWM device such as user defined pattern
generation, driving multiple PWM channels etc.
Change-Id: I29a22c6e655612d93cac10e6eea76383d37775e2
Signed-off-by: Jay Chokshi <jchokshi@codeaurora.org>
In WHCK loopback test, data transfer stall is observed on DL
where A2 could not send data to USB due to hardware buffer.
Currently the pipe event threshold of A2 BAM is 16 bytes. So
A2 BAM will notify USB BAM almost as soon as it has any new
data. But the pipe event threshold of USB BAM was 512 bytes.
Change the usb bam pipe threshold to 16 bytes, so USB BAM
can tell A2 BAM as soon as USB BAM consumes a descriptor with
even small data trunk.
Change-Id: I2703b8fab4260d5da5366d0a0d9b5a309d11a7a4
CRs-Fixed: 374584
Acked-by: Amit Blay <ablay@codeaurora.org>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
The official name for copper is MSM8974.
Switch to it.
Change-Id: Ifb241232111139912477bf7b5f2e9cf5d38d0f9e
Signed-off-by: Abhimanyu Kapur <abhimany@codeaurora.org>
Enable SPS functionalities (including BAM, BAM DMA and pipe memory)
on MDM 9x25.
Change-Id: Id5295922dd87ebad5e87efa27eff0dc4b2b837ae
Signed-off-by: Yan He <yanhe@codeaurora.org>
USB BAM driver to support BAM-to-BAM
USB<->Peripheral transactions.
Change-Id: Ib49a41f5dcdccb6f6bff2492fa64ead40f18b870
Signed-off-by: Ofir Cohen <ofirc@codeaurora.org>
The driver controls the SPS hardware DMA to move data in the following
modes:
1. Peripheral-to-Peripheral
2. Peripheral-to-Memory
3. Memory-to-Memory
This driver complies to BAM hardware version#2.
Change-Id: I1b2b503893cf6891b47201da0f44a47ce7511ece
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
Signed-off-by: Kenneth Heitke <kheitke@codeaurora.org>
SSBI is the Qualcomm single-wire serial bus interface used to connect
the MSM devices to the PMIC and other devices.
Since SSBI only supports a single slave, the driver gets the name of the
slave device passed in from the board file through the master device's
platform data.
SSBI registers pretty early (postcore), so that the PMIC can come up
before the board init. This is useful if the board init requires the
use of gpios that are connected through the PMIC.
Based on a patch by Dima Zavin <dima@android.com> that can be found at:
http://android.git.kernel.org/?p=kernel/msm.git;a=commitdiff;h=eb060bac4
This patch adds PMIC Arbiter support for the MSM8660. The PMIC Arbiter
is a hardware wrapper around the SSBI 2.0 controller that is designed to
overcome concurrency issues and security limitations. A controller_type
field is added to the platform data to specify the type of the SSBI
controller (1.0, 2.0, or PMIC Arbiter).
Change-Id: Ic37e1505f0ed7cfb8c5926a4c8d1770aa43e67cc
Signed-off-by: Kenneth Heitke <kheitke@codeaurora.org>