Hi Vitor,
On Tue, 27 Nov 2018 11:50:53 +0000
vitor<vitor.soares@xxxxxxxxxxxx> wrote:
There's a difference between a secondary master that waits for its timeYes, we already talked about secondary master support.Sorry for that and don't take me wrong... maybe I should rise thisSo you have such a dual-role controller?
question early but this only came up now when I started splitting and
thinking where to put what is for master for slave, what is common and
the thing of putting everything of controller in a folder.
to become the currrent master, and a secondary master that provides I3C
device features when it's acting as a slave (sensor, GPIO
controller, ...). So far we focused on supporting the former. If
there's a need for the latter, then we should start thinking about the
slave framework...
Can you detail a bit more what you have in mind? I don't think we canWhat I call a slave controller would be something that lets you reply toI would bet to do something like in i2c, we don't need the same level of
SDR/DDR transactions or fill a generic regmap that would be exposed to
other masters on the bus. This way we could implement generic slave
drivers in Linux (the same way we have gadget drivers). Anything else
is likely to be to specific to be exposed as a generic framework.
complexity found in USB.
do like I2C, simply because we need to expose a valid DCR +
manuf-ID/PID so that other masters can bind the device to the
appropriate driver on their side. Plus, if we're about to expose
generic profiles, we likely don't want each I3C slave controller driver
to do that on its own.
If we mix everything in the same subdir, I'd like to have an easy wayI agree with the controller folder but not with prefix. Please checkTaking the USB as exemple do you prefer a dwc folder on i3c root?Hm, not sure I like this idea either. So I see 2 options:
1/ put all controller drivers (both master and slave ones) in a common
directory (drivers/i3c/controllers) as you suggest, and prefix them
correctly (i3c-master-<ip>.c, i3c-slave-<ip>.c and i3c-dual-<ip>.c)
what is already in the kernel.
to quickly identify those that are slave controllers and those that are
master controllers. For the dual-role thing, maybe we can consider them
as master (ones with advances slave features).
Would you be okay with drivers/i3c/controllers/{designware,dw}/..., so
that you can have all designware drivers (for both slave and master
blocks) in the same dir?
For those that are placed directly under drivers/i3c/controllers/...
(because they only have one .c file), I'd like to keep a standard
prefix.
To be clear, the subsystem is nice and I working with daily. As I saidCome on! All I've seen so far are complaints on tiny details, it
this is something that I dealing now and I'm telling what I think that
is not correct.
definitely doesn't prevent you from adding new features.
Regards,
Boris