[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e66a9e95-7846-f353-8ebd-e35458c79797@linux.intel.com>
Date: Wed, 26 Aug 2020 09:54:16 -0500
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Mark Brown <broonie@...nel.org>
Cc: alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
tiwai@...e.de, vkoul@...nel.org, gregkh@...uxfoundation.org,
jank@...ence.com, srinivas.kandagatla@...aro.org,
slawomir.blauciak@...el.com,
Bard liao <yung-chuan.liao@...ux.intel.com>,
Rander Wang <rander.wang@...ux.intel.com>,
Ranjani Sridharan <ranjani.sridharan@...ux.intel.com>,
Hui Wang <hui.wang@...onical.com>,
Guennadi Liakhovetski <guennadi.liakhovetski@...ux.intel.com>,
Kai Vehmanen <kai.vehmanen@...ux.intel.com>,
"Rafael J. Wysocki" <rafael@...nel.org>
Subject: Re: [PATCH 4/4] regmap: sdw: add support for SoundWire 1.2 MBQ
>> One possible objection is that this code could have been handled with
>> regmap-sdw.c. However this is a new spec addition not handled by every
>> SoundWire 1.1 and non-SDCA device, so there's no reason to load code
>> that will never be used.
>
>> Also in practice it's extremely unlikely that CONFIG_REGMAP would not
>> be selected with CONFIG_REGMAP_MBQ selected. However there's no
>> functional dependency between the two modules so they can be selected
>> separately.
>
> The other thing I'm wondering here is about compatibility - is this
> something we can enumerate at runtime and if so couldn't this be done
> more like how we handle the various I2C and SMBus variants so the driver
> just says it wants a SoundWire regmap and then based on the capabilities
> of the device and the controller the regmap decides if it can use MBQ or
> not on the current system?
An SDCA device will have two regmaps, one for 'regular' registers and
one for MBQ-based ones. There is no known case where a codec can use
ONLY an MBQ-based regmap.
It's different from I2C/SMB since the bus is really identical, the
interface is the same, the difference is really the sequence by which
you access registers allocated to SDCA and how the address is constructed.
Each SDCA control will be described with a firmware property, and based
on their range and purpose you would know how if the control is a
regular one or an MBQ-based one. Alternatively, the driver might
hard-code things and define addresses for each.
Does this answer to your question?
Powered by blists - more mailing lists