Reduce lpm current of avdd regulator for ITE tech touch controller
to save power dissipation in lpm state.
Change-Id: I4b0c532096f1555561ad33e937cb947e85f987cd
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
ITE tech touch controller needs a delay to come to an active
state after regulators are enabled and do any i2c transactions.
So this change adds a delay for the same.
Change-Id: Ifd7c936d8f5d364b78c64aeebd1517d49a5b8936
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
ITE tech touch driver puts the controller to IDLE state in suspend
function through an i2c write into controller register space. But
due to multiple triggers of fb blank events, the suspend
function is called repeatatively without resume, and the driver
causes i2c nacks in suspend function while again putting the
controller is IDLE state. This keeps the QUP5 clock ON and XO shutdown
doesn't happen.
This change prevents the touch driver to execute the i2c write, to
put the controller in IDLE state, by repeatative fb blank events,
and causes XO shutdown to happen within time limits.
Change-Id: Ie3ee6b861c10ae901dea54f252f6a799d688f02a
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
ITE tech touch driver dynamically detects the controller attached
to the device in its probe. And if the driver fails to identify
the controller, it exits the probe with the error code. But in the
probe error path, it doesn't retain the error code, replace it
with zero and registers the device instead of failing.
This change corrects the probe error path of ITE tech touch driver
and makes sure it returns the error code if it fails.
Change-Id: I8f193ee10076b6cf058b0a6940db54f71f70b758
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Add low reset gpio and delay reset support for ITE tech
driver.
ITE tech controller support low reset gpio configuration. This
property is parsed from the DT, and reset gpio is set to low.
Reset delay value is also parsed from DT which is required by the
ITE tech controller.
Change-Id: I314677747e8bbbcb273cd898376bbe03197c8c25
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
Do not put the ITE tech touchscreen driver in infinite
loop while probing.
Sometimes, when there is multiple touchscreen support on the
same snapdragon device, then the dynamic detection is used
to confirm which touchscreen is connected to the device.
So, this change will not make the CPUs to get hogged with
infinite loop of ITE tech driver.
Now it can easily get out of probe with error path releasing
the resources properly.
Change-Id: Ib9905017fc18999e7ab7c9cb8bc1af398f5f9791
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>
The array index value when setting/getting the channels
of proxy is incorrect as the channel count begins from two.
Fix by setting the correct index offset.
Change-Id: I3ab9858daf6dcdbce762946cbdebeb96eaad764a
Signed-off-by: Shiv Maliyappanahalli <smaliyap@codeaurora.org>
Goodix GT915 driver was provided by vendor and cherry-picked into
our project, it need to be placed to right location.
Change-Id: Idf191144354426233eca41727a41e26ddbf92f95
Signed-off-by: Bingzhe Cai <bingzhec@codeaurora.org>
Signed-off-by: Pan Fang <fangpan@codeaurora.org>
Registers for page 0x50 in the wcd934x audio codec are currently
not defined. These registers control WCD DSP register configuration
and setup. Add these register definitions so that codec driver can
read/write these registers.
CRs-Fixed: 1049012
Change-Id: If1162c09de8d4d7c330a97a1f133f6d46ce2fd74
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
DAPM marks back end dai as dirty during ASoC suspend
which triggers device path teardown. Add ignore suspend
to all back end dais to avoid device path teardown.
CRs-Fixed: 1031932
Change-Id: I89f83feed0702f3a3f3b6141ed73459b8878d2df
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
In general, the IOMMU framework likes to group PCI devices together.
This prevents someone from assigning them to separate VMs using VFIO,
for example. The reason they shouldn't go to separate VMs is because
there could be DMA aliasing between endpoint devices, and because the
root complex device can access anything that endpoint devices can
access.
Unfortunately, this makes things difficult in the DMA layer since the
IOMMU framework freaks out if you try to attach a single device that is
also part of a group. First instinct might be to start using
iommu_attach_group instead of iommu_attach_device in the DMA layer but
that has problems of its own (it attaches *everyone* in the group as
soon as one client attaches). Besides all that, it's also a bit
annoying to have the root complex device in group since, in our
platform, it doesn't actually have any stream IDs assigned to it and it
doesn't do any DMA of its own, so it doesn't really make any logical
sense to attach it.
As a compromise, we can stop grouping PCI devices together by allocating
a new domain for each one. By doing so we no longer need to call
iommu_attach_group in the DMA layer, avoid the issues described above.
It should be noted that with this patch in place we can't securely do
any direct DMA assignment of PCI endpoint devices to separate VMs.
CRs-Fixed: 1036401
Change-Id: I9528b61a695dc7840e1c6f80af18044340f5c6c4
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>