WCD audio codecs contain SPI slave hardware module to provide access
to codec memory and SPI register space. Change adds driver for this
slave hardware. This driver uses regmap for SPI internal register
accesses and plugs in to standard SPI framework as child device to
master controller driver.
CRs-Fixed: 1049012
Change-Id: I0640ac1ed60a2ec3633636760593211ecd2f9c2d
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
WCD audio codecs have DSP embedded to perform signal processing on
audio data. The codec driver has control over the DSP clock, power etc,
whereas the DSP memory can be accessed through an different bus slave
interface. In such cases, it is required to make sure the hardware
expected sequences are met for the DSP to function properly. The
wcd-dsp manager driver registers as master to component framework
and provides the ability to sequence the operations between the child
drivers. Upon registration of all children, the wcd-dsp manager driver
parses the wcd dsp image, downloads the image and boots up the DSP.
It invokes the component children to perform the tasks in sequence.
CRs-Fixed: 1049012
Change-Id: I059e1b111c607e49a7cc9a7940cf458e701c73d3
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
wcd_dsp_utils adds utilities that will be used by the
wcd dsp manager driver. Add helper functions to parse
WDSP image and provide list of segments to be loaded
to memory.
CRs-Fixed: 1049012
Change-Id: I2b1464c2a035a039440e6d3e5122ad3f90da4d1e
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
Currently only read-only registers are marked as volatile. It is
possible that some registers could be read-write and still have
subset of the bits that are updated by the hardware. Add change
to mark such CPE (codec processing engine) register as volatile.
CRs-Fixed: 1049012
Change-Id: I1cedf646d0df1ab5968df4830502649de305c9d1
Signed-off-by: Bhalchandra Gajare <gajare@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>
This Mstar CTP reference driver code is added into a wrong place,
a follow-on patch is created to move the driver to proper path.
Change-Id: I34365ce21659348ad1d1289e3b06b81e778c2648
Signed-off-by: Mao Li <maol@codeaurora.org>
Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
Add low power idle mode support in suspend state for ITE tech
touchscreen driver.
Also, execute the touch to wake feature code only when device moves
from idle state to active state.
Change-Id: Ia989d8130bbded4ae5acab0b9c3122998acb2056
Signed-off-by: Shantanu Jain <shjain@codeaurora.org>