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>
Add ADSP loader driver to bring ADSP out of reset on demand.
The MSM platforms that use APRv2 driver requires separate driver to
bring ADSP out of reset.
Change-Id: I7d64b0336fac76e71078a3bec0795007ee989643
Signed-off-by: Joonwoo Park <joonwoop@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>
The documentation incorrectly specifies 'select' instead of
'src-select'. Update this to be consistent with the driver.
Change-Id: I90bffc26affdefa42192c7f10d4af80ad0340f7f
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
Support for reading hardware data for CoreSight devices from device
tree.
Change-Id: I4d149991c89b458384465d163386084f500a4028
Signed-off-by: Pratik Patel <pratikp@codeaurora.org>
On some regulator hardware, the values read on SPMI offset 0x4 (type)
and 0x5 (subtype) are incorrect. Add a new optional property called
qcom,force-type that allows a user to override the hardware values
with values supplied in the Device Tree.
Change-Id: Id73fe69873f5dc9d0f2623771872aa2eaddd66f1
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
Interfacing with some modem subsystem peripherals is not possible
unless the UNCLAMP_ALL bit is set in MSS_CLAMP_IO register. Set
this bit accordingly.
Change-Id: I5685383c506b0bcb89d6b6f808021512079cc607
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Read the codec specific data from device tree instead of board file.
Change-Id: Iad382b89692903d2434b63d34c7121fe0b4b9dda
Signed-off-by: Kiran Kandi <kkandi@codeaurora.org>
The gpio driver was not a true platform driver and hence wasn't
supported by device tree. This patch fixes that for non-DT targets
by making sure the device gets added early on during board init.
For DT-targets, adding the gpio-controller property for the device
makes sure the msmgpio device gets probed.
This change is done for all TLMM_v2 targets (msm8660 and future)
TLMM_V1 targets remain unaffected.
Change-Id: I8a55ab1e2af0366b3e6893b334ba2396d2a83190
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
The qcom,msm-id entry specifies the MSM chipset, platform and
hardware revision. This is used by the Android dtbtool utility
to generate a table of device tree used in the boot.img.
The qcom,msm-id syntax is:
qcom,msm-id = <chipset_id, platform_id, rev_id> [, <...>];
The entry can optionally be an array with variable number of
triplets indicating the device tree supports more than one
chipset/platform/hardware rev.
Note that the id's are hardware ID's reported by the hardware
and not commonly used literal ID's. E.g. MSM8974's chipset ID
is 126, not 8974.
Change-Id: If65b40d6e947504cb4b07a36aa895f8ec6f9d300
Signed-off-by: David Ng <dave@codeaurora.org>
Define device tree bindings for MSM_THERMAL driver, and implement
matching code to make the driver abide to these bindings.
Change-Id: I6ed08a09f45f8748841cf44db601f28659e49d9c
Signed-off-by: Eugene Seah <eseah@codeaurora.org>
Due to some issue with older USB PHYs, USB h/w requires to be
RESET everytime cable is diconnected. Avoid this on 8974's
USB core which doesn't have this issue.
Change-Id: I918492032de6d65eaba7c9b656c700d4f443aa99
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
The QPNP IADC driver supports the user bank
peripheral of the current ADC(IADC).
IADC is a 16 bit ADC used for measuring current.
The single measurement mode is supported to read
current from upto seven channel configuration.
Clients can read the internal/external Rsense,
CSP_EX, CSN_RX along with gain and offset
calibraton channels.
Change-Id: I7e5ae3fc70878d16827d33705853a36bb0aa04f6
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Add support for controlling the power state of ocmem memory
macros. Both local power control and RPM assisted power control
are supported.
Also add required support for debugging power control operations.
Change-Id: Ia02c3b90245e808085c3f92fdf5f23044fc04665
Signed-off-by: Naveen Ramaraj <nramaraj@codeaurora.org>
Add the dsi driver implementation for
DSI version 3.0. Use the panel information
retrieved from the 'dts' to configure the
interface parameters.
Add the device tree binding file to specify the
basic configuration and panel features.
Change-Id: I6a3677401454ad1d2bc29b0b845b0366eb7842b7
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
MSM controller for slimbus usually uses a BAM pipe to receive control
data. However, some targets may not have a BAM pipe assinged for
receiving this data. In that case, RX data should be received using
direct register access instead.
Introduce a Device-Tree property to change this access.
Change-Id: I9bb1502f25e0e855937bc6fb4131f55348d04794
Signed-off-by: Sagar Dharia <sdharia@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 device tree parsing to common msm ion code
to allow new targets to specify ION heap configuration
in device tree.
Document the device tree bindings for ION.
Change-Id: I40b7f4b1fbb3ca4ad1d6dc06a33b647f6af1d669
Signed-off-by: Olav Haugan <ohaugan@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>
Document required information for camera hardware blocks
to support device tree.
Change-Id: Ia0fceb1091ac5ae7867dcd83691ab7613eb71e42
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
Add audio OCMEM driver support to exercise On-Chip
Memory (OCMEM) for low power audio and voice. The
driver is implemented as standalone and it gets
exercised based on the usecase. Also, this design
reduces the latency associated with OCMEM handshaking
protocol. The audio OCMEM driver is enabled by default
with a Kconfig option using select. Add device tree node
for audio OCMEM to retrieve platform data.
Change-Id: Iba46ce675fc03843d88cd7cf2aa9bc92fe70a955
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Register slimbus CPU dai link to support slimbus data path.
Change-Id: I3584306ac1e0ad6561a19cecfe71f2a63aadafa9
Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org>
Add device tree information for NAND controller. Also, add
documentation defining bindings for NAND controller and MTD
flash partition layout for NAND devices.
Change-Id: I6eaf949a54a19aacd3249711033563efd7fd90c2
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Refactor the IOMMU clock control code to always require a
core clock as well as an interface clock. Add support for
an optional alternate core clock and update device tree
bindings accordingly. Clean up the probe function to remove
needless enabling / disabling of clocks.
Change-Id: I4d744ffabc1e6fb123bacfda324f64408257cb25
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
The QPNP VADC driver supports the User Bank Peripheral of
the voltage ADC(VADC).
VADC is a 15 bit ADC that measures signals through the
Main analog multiplexer (AMUX) and PREMUX. The driver
arbitrates the request to issue ADC read requests.
VADC driver includes support for the conversion sequencer.
The conversion sequencer is a HW triggered signal to start
ADC measurement on trigger events for PA ON,
camera flash and TX threshold.
The AMUX supports external pull-ups simultaneously. Clients
can select the appropriate AMUX input channel to measure the
ADC for the intended pull up configuration.
Change-Id: I8886968ccec54ad03334b113b4516d4d200e0da8
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Use the label property to specify device labels instead of
a vendor-specific property.
Change-Id: I74f3b57db469781f738f0d52c785d992c1e88efb
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Video driver manages clock rate according
to the increase in load on video core. Clock
is scaled as per number of macroblocks
decoded/encoded per second. This makes sure
that the power consumption and performance is
optimal.
Change-Id: If8aede0e3048cdc9bcdf14ce0c239a58bdd5d263
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
The current MPM driver works for targets where the interrupt controllers
operate in a legacy mode, where the linux irqs are at a constant offset
from the hardware irqs. On newer targets, the mapping within the
interrupt controllers are no longer restricted to legacy mode.
The change also address the interface changes in the MPM hardware
starting with 8974 chipsets.
Change-Id: Ide9b5bf7e29c94a85e37d04cd0064864b89f7c5c
Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
Add device tree bindings and driver support for the cache
error reporting devices on 8974. Remove leftover
opportunistic debug info from the L1 error handler, since
we can no longer get away with this on all targets.
Change-Id: Iac88915a6b40a40ec3157027048f4daf6369dc42
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Bug fixes to get RPM assisted power collapse working.
Unstable behavior was seen because L2 SPM state wasn't
being reset as part of exiting power collapse.
RPM driver callbacks were being missed because the
resource type comparison from the callback with the
resource type maintained at lpm_resources was failing
due to endian related issues.RPM sleep set processing
fails because vdd-dig resource doesn't use absolute
voltage values but voltage corner values.
Change-Id: I5b7218ba87574f2e7296378ded5e86fcac085203
Signed-off-by: Girish Mahadevan <girishm@codeaurora.org>
- Add a front end DAI link for compressed audio driver.
- Add device tree specific changes to sound soc compressed
drivers which will help the detection of sound card.
Change-Id: I4a8076df8c82cd4e444fc0d68e8f7a228bd1dc02
Signed-off-by: Harmandeep Singh <hsingh@codeaurora.org>
SDC1 and SDC2 interfaces on copper target has dedicated
TLMM pins and SDC3, SDC4 have GPIOs muxed with other
subsystems.
Change-Id: I6f924ccb0c27e8ecde95c0a7d8beb6614c25378d
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Video driver uses PIL and IOMMU to download video
firmware.Video firmware is downloaded during the
start of video session using PIL apis.
Change-Id: If285e9b6df57ecdfa379fa82b9eef542e6aa9bba
Signed-off-by: Vinay Kalia <vkalia@codeaurora.org>
Add the On-chip memory(OCMEM) device to the msm8974 device tree.
OCMEM is a high speed memory device used by various subsystems.
Change-Id: I08da5b088e5f48e6ed935a38da5a708fcdbaf670
Signed-off-by: Naveen Ramaraj <nramaraj@codeaurora.org>
Add support in the rpm-regulator-smd driver for the "bypa"
bypass mode disallow parameter. This parameter can be used to
instruct the RPM that a given LDO should never be put into
bypass mode because its load is sensitive to voltage supply
noise.
Change-Id: I34fdcdb88107f94b78f2ace4a0512fe4ca94779c
Signed-off-by: David Collins <collinsd@codeaurora.org>
Update the voltage corner mapping used by the rpm-regulator-smd
driver to match what is being used inside of the RPM.
In particular, an explicit "none" corner value has been inserted
with value 0 which pushes all of the other corners up by 1.
Change-Id: I34b4285f88e7e9d23d7accf4ccbf9cebff591754
Signed-off-by: David Collins <collinsd@codeaurora.org>
Document the appropriate bindings so the register trace buffer (RTB)
can be used on targets that support device tree.
Change-Id: Iafd2cbca20489fb27ada0b982e012ee74f7b07c1
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
To get large contiguous memory allocations, a dedicated carved out
memory pool is created. The size of this pool is determined by the
sizes declared by devices. Add size bindings so drivers can increase
the size needed for reservations. Also add bindings to allow drivers
to reserve memory with memblock_reserve to reserve specific memory
regions.
Change-Id: Icc51aef5069a7964c03c5c52f24e40b96f4b2781
Signed-off-by: Laura Abbott <lauraa@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>
A 32 bit RTC is housed inside PMIC. The RTC driver
uses SPMI interface to communicate with the RTC module.
RTC device is divided into two sub-peripherals:
1. RTC read-write peripheral having basic RTC registers.
2. Alarm peripheral for controlling alarm.
RTC peripherals are children of SPMI device and driver
receives it's configuration parameters (such as alarm
powerup feature to powerup phone using alarm interrupt)
from device tree.
Change-Id: I46a2ffc0f6c9c5ee174cf803de19e656da7ce088
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
MSM8974 TSENS block supports 11 temperature
sensors that are used for thermal mitigation.
The TSENS driver is part of the thermal sysfs
framework that allows clients to set thresholds
and receive notification on temperature thresholds
being crossed through thermal sysfs.
The driver provides ability to thermal clients
to set upper/lower thresholds for each sensor
and receive individual notification for each
sensor once the threshold is crossed.
All sensors are enabled by default during
driver initialization.
The driver is initialized early during kernel
initialization to provide capability to the
thermal kernel driver to read temperature
from the TSENS sensors. To support this feature
a kernel API is provide to read the TSENS
temperature.
Change-Id: If17daae81cfb522a9cea786b5db0c920adb5ed2d
Signed-off-by: Siddartha Mohanadoss <smohanad@codeaurora.org>
Update the DTS bindings documentation to include the
vdd-supply regulator property.
Change-Id: I006dbbcf55cfdf07604c64380ce227f30f6cc75a
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Add device tree support for qcedev and qcrypto device drivers.
Add documentations for associated bindings.
Change-Id: Ib76986af5d9e30263a559329acbca401ec3304d2
Signed-off-by: Mona Hossain <mhossain@codeaurora.org>
Since the IOMMU ID registers are only accessible by the
secure environment, specify the SMT sizes in device tree
so that the IOMMU driver knows how many SMRs to initialize.
Change-Id: I614a51069c0304f71b0c7d061d97aca0289c17ea
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Venus PIL platform driver is used to bring Venus Video subsystem
out of the reset and start executing code. It also supports
shutting down the subsystem to save power when it is not in use.
Change-Id: I6e305efe548524fc71ee2fa2fba05b6b2b783ff7
Signed-off-by: Tianyi Gou <tgou@codeaurora.org>
DWC3 has separate irq line for OTG interrupts (e.g. ID / BSV).
These interrupts are needed to detect cable connect and disconnect
events. Hence, request for this interrupt line from OTG driver.
Also, update device tree binding documentation for DWC3 core.
Change-Id: Ie97e4b3b5dcf840eabeb01b5c5d6531a8a70a3c9
Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Add device tree support to sound soc audio drivers.
These drivers get registered to the alsa framework
and thus aid detection of soundcard.
Change the device tree entries to follow the new
design approach of having individual probe functions
for each audio interface.
Change-Id: Ie8f0bddd5ba6e2cfb66c6a23efdcb434c5082d7d
Signed-off-by: Phani Kumar Uppalapati <phanik@codeaurora.org>
Add necessary match table so this driver can be used in
Device Tree configurations
Change-Id: I4e7fd0c1bb1d9f22296f70cf5710016b10046cd5
Signed-off-by: Hariprasad Dhalinarasimha <hnamgund@codeaurora.org>