Sanyog Kale
79df15b7d3
soundwire: Add helpers for ports operations
...
Add helpers to configure, prepare, enable, disable and
de-prepare ports.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Signed-off-by: Shreyas NC <shreyas.nc@intel.com >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2018-05-11 21:47:05 +05:30
Sanyog Kale
f8101c74aa
soundwire: Add Master and Slave port programming
...
Master and Slave port registers need to be programmed for each port
used in a stream. Add the helpers for port register programming.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Signed-off-by: Shreyas NC <shreyas.nc@intel.com >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2018-05-11 21:47:04 +05:30
Sanyog Kale
bbe7379d80
soundwire: Add support for port management
...
Add Soundwire port data structures and APIS for initialization
and release of ports.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Signed-off-by: Shreyas NC <shreyas.nc@intel.com >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2018-05-11 21:47:04 +05:30
Sanyog Kale
89e590535f
soundwire: Add support for SoundWire stream management
...
This patch adds APIs and relevant stream data structures
for initialization and release of stream.
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com >
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Signed-off-by: Shreyas NC <shreyas.nc@intel.com >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2018-05-11 21:47:03 +05:30
Vinod Koul
d62a7d41f3
soundwire: intel: Add Intel init module
...
The SoundWire Master is implemented as part of Audio controller in
Intel platforms. Add a init module which creates SoundWire Master
platform devices based on the links supported in the hardware.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:32:35 +01:00
Vinod Koul
71bb8a1b05
soundwire: intel: Add Intel Master driver
...
Some Intel platforms have SoundWire Master, so add Intel SoundWire
Master driver which uses Cadence module. This patch adds probe and
initialization routines for Intel Master driver.
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com >
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:32:02 +01:00
Vinod Koul
b0a9c37b01
soundwire: Add slave status handling
...
Add status handling API sdw_handle_slave_status() to handle
Slave status changes.
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com >
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:28:13 +01:00
Sanyog Kale
d52d7a1be0
soundwire: Add Slave status handling helpers
...
SoundWire Slaves report status to bus. Add helpers to handle
the status changes.
Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com >
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:27:33 +01:00
Vinod Koul
9d715fa005
soundwire: Add IO transfer
...
SoundWire bus supports read or write register(s) for SoundWire Slave
device. sdw_read() and sdw_write() APIs are provided for single
register read/write. sdw_nread() and sdw_nwrite() for operations on
contiguous registers.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:14:57 +01:00
Sanyog Kale
6f3da1f388
soundwire: Add SoundWire MIPI defined registers
...
MIPI SoundWire spec defines standard SoundWire registers mandatory for
SoundWire Slave devices, so add them.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:14:57 +01:00
Vinod Koul
56d4fe31af
soundwire: Add MIPI DisCo property helpers
...
MIPI Discovery And Configuration (DisCo) Specification for SoundWire
specifies properties to be implemented for SoundWire Masters and
Slaves. The DisCo spec doesn't mandate these properties. However,
SDW bus cannot work without knowing these values.
The helper functions read the Master and Slave properties.
Implementers of Master or Slave drivers can use any of the below
three mechanisms:
a) Use these APIs here as .read_prop() callback for Master
and Slave
b) Implement own methods and set those as .read_prop(), but invoke
APIs in this file for generic read and override the values with
platform specific data
c) Implement ones own methods which do not use anything provided
here
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:14:57 +01:00
Vinod Koul
7c3cd189b8
soundwire: Add Master registration
...
A Master adds a SoundWire bus instance which scans the firmware
provided for device description.
In this patch we scan ACPI namespaces and create SoundWire
Slave devices based on ACPI description
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:14:56 +01:00
Vinod Koul
9251345dca
soundwire: Add SoundWire bus type
...
This adds the base SoundWire bus type, bus and driver registration.
along with changes to module device table for new SoundWire
device type.
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com >
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com >
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com >
Reviewed-by: Takashi Iwai <tiwai@suse.de >
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-12-19 11:14:56 +01:00