]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soundwire: mipi-disco: add new properties from 2.0 spec
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 3 Oct 2024 07:06:49 +0000 (15:06 +0800)
committerVinod Koul <vkoul@kernel.org>
Thu, 3 Oct 2024 07:58:51 +0000 (13:28 +0530)
The DisCo for SoundWire 2.0 spec adds support for new
'mipi-sdw-sdca-interrupt-register-list' and
'mipi-sdw-commit-register-supported'.

This patch only adds the definitions and property reads, but the use
of these properties will come at some point in the future when needed.

Note a slight conceptual disconnect between the MIPI DisCo definition
of a boolean property and the Linux implementation. The latter only
checks the presence of the property to set its value to 'true',
whereas the MIPI definitions allow for a property with a 'false'
value. This patch uses the new introduced mipi_device_property_read_bool()
to handle it.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20241003070650.62787-14-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/mipi_disco.c
include/linux/soundwire/sdw.h

index d6eb63bf125253b12708d71df53c1b3b91be2a72..36e734751225c91a55b11162b7c72f81576452aa 100644 (file)
@@ -398,6 +398,12 @@ int sdw_slave_read_prop(struct sdw_slave *slave)
        device_property_read_u32(dev, "mipi-sdw-sink-port-list",
                                 &prop->sink_ports);
 
+       device_property_read_u32(dev, "mipi-sdw-sdca-interrupt-register-list",
+                                &prop->sdca_interrupt_register_list);
+
+       prop->commit_register_supported = mipi_device_property_read_bool(dev,
+                       "mipi-sdw-commit-register-supported");
+
        /*
         * Read dp0 properties - we don't rely on the 'mipi-sdw-dp-0-supported'
         * property since the 'mipi-sdw-dp0-subproperties' property is logically
index 66feaa79ecfc7e0d603d17dcedbc2ea3acf94f02..952514f044f0d6be22c900ed62c3b65d2ecaa3e8 100644 (file)
@@ -335,8 +335,11 @@ struct sdw_dpn_prop {
  * @master_count: Number of Masters present on this Slave
  * @source_ports: Bitmap identifying source ports
  * @sink_ports: Bitmap identifying sink ports
- * @scp_int1_mask: SCP_INT1_MASK desired settings
  * @quirks: bitmask identifying deltas from the MIPI specification
+ * @sdca_interrupt_register_list: indicates which sets of SDCA interrupt status
+ * and masks are supported
+ * @commit_register_supported: is PCP_Commit register supported
+ * @scp_int1_mask: SCP_INT1_MASK desired settings
  * @clock_reg_supported: the Peripheral implements the clock base and scale
  * registers introduced with the SoundWire 1.2 specification. SDCA devices
  * do not need to set this boolean property as the registers are required.
@@ -363,6 +366,8 @@ struct sdw_slave_prop {
        u32 source_ports;
        u32 sink_ports;
        u32 quirks;
+       u32 sdca_interrupt_register_list;
+       u8 commit_register_supported;
        u8 scp_int1_mask;
        bool clock_reg_supported;
        bool use_domain_irq;