On Fri, Mar 08, 2024 at 08:45:45AM +0000, Xingyu Wu wrote:
On Thu, Mar 07, 2024 at 11:37:08AM +0800, Xingyu Wu wrote:
- if (!device_property_read_u8(&pdev->dev, "starfive,pdm-modulex",
&using_modulex))
if (using_modulex == 1)
base += JH8100_PDM_MODULEX_SHIFT; /* Use module 1 */
This really looks like you've got one hardware block with two devices in it, either the address ranges registered for the devices in DT should be separate and you shouldn't need this property or you should have one component registering both PDM interfaces.
Yeah, They like two independent device and have different register to configure, but just use the same clocks and resets. Due to the sample rate depend on the share clocks, they should be registered together as a 4-channel capture device (rarely used), or just one of them can be registered separately as a 2-channel device. BTW, can I use the 0x12250000 about the property of reg for device 0 or 0x12250010 for device 1 to choose which device to be used in DT?
Ah, so it's actually a small MFD but given that it's two audio blocks possibly not worth registering as such. I'd register two stereo DAIs to one component and then use the DAI ID to figure out which registers to write to. Four channel mode might need a property to put everything as one DAI and not register the second one, or it might just be OK to let the first DAI be 4 channel with runtime error checking.
Please fix your mail client to word wrap within paragraphs at something substantially less than 80 columns. Doing this makes your messages much easier to read and reply to.