Thread (7 messages) flat view 7 messages, 2 authors, 2020-06-29

Re: [PATCH 4/4] ARM: dts: uniphier: change support card to simple-mfd from simple-bus

From: Masahiro Yamada <masahiroy@kernel.org>
Date: 2020-06-29 01:59:43
Also in: linux-devicetree, lkml

On Thu, Jun 25, 2020 at 11:57 PM Lee Jones [off-list ref] wrote:
On Thu, 25 Jun 2020, Masahiro Yamada wrote:
quoted
On Thu, Jun 25, 2020 at 3:16 AM Lee Jones [off-list ref] wrote:
quoted
On Thu, 25 Jun 2020, Masahiro Yamada wrote:
quoted
On Tue, Jun 23, 2020 at 9:24 PM Lee Jones [off-list ref] wrote:
quoted
On Tue, 23 Jun 2020, Masahiro Yamada wrote:
quoted
'make ARCH=arm dtbs_check' emits the following warning:

  support-card@1,1f00000: $nodename:0: 'support-card@1,1f00000' does not match '^(bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$'

Maybe, simple-mfd could be a better fit for this device.
The two should be equivalent.
Yes, I know.
That's why I can change "simple-bus" to "simple-mfd"
with no risk.

The difference is schema-check.

The node name for "simple-bus" is checked by 'make dtbs_check'.

See this code:
https://github.com/robherring/dt-schema/blob/v2020.05/schemas/simple-bus.yaml#L17

Even if I rename the node, it does not accept the
unit name '1,1f00000'
quoted
What do you mean by "maybe"?  Does this squash the warning?
"maybe" means I am not quite sure
which compatible is a better fit
to describe this device.

As mentioned above, simple-bus and simple-mfd
are interchangeable from a driver point of view.

This add-on board is integrated with various peripherals
such as 16550a serial, smsc9115 ether etc.
The address-decode is implemented in a CPLD device.
It has chip selects and local addresses, which are mapped to
the parent.

It can be either simple-bus or simple-mfd, I think.


dt-schema checks the node name of simple-bus.
Currently, there is no check for simple-mfd.

So, I think this patch is an easy solution
to fix the warning.
Yes, looking at the documentation it seems as though 'simple-mfd'
would be a better fit.  Is the device a single IP with various
different functions?
Not an IP.

This is a small board that consists of
a CPLD + ethernet controller + serial controller + LED, etc.
Then simple MFD does not seem like a good fit.

Neither does 'simple-bus'.
Then, I do not know what to do.


This board connection is so simple
that no hardware initialization needed to get access
to peripherals.

So, 'simple-bus' or 'simple-mfd' is preferred.

If this is not either simple-bus or simple-mfd,
I need a special driver to probe the
child devices such as ethernet, serial etc.


What is it you're trying to describe in the device hierarchy?

The connection is as follows:


|-Main board -|      |----- add-on board ----|
|             |      |     (this board)      |
|             |      |                       |
|    (SoC) ---|------|--- CPLD --- ethernet  |
|             |      |          |- serial    |
|-------------|      |          |- LED       |
                     |                       |
                     |-----------------------|



uniphier-support-card.dtsi describes the
"add-on board" part.
Address-decode is implemented in CPLD.


So, the criteria to become MFD is
whether it is an IP integrated into SoC.


- implemented in an SoC  --> MFD

- implemented in a board + CPLD  --> not MFD


Right?



quoted
quoted
quoted
Rob is in Cc. Please add comments if any.
quoted
Isn't the issue caused by the ','?
Right.

The node name of simple-bus
must meet the regular expression:
"^(bus|soc|axi|ahb|apb)(@[0-9a-f]+)?$"


Even if I rename the node
"support-card@1,1f00000"
to "bus@1,1f00000", the warning is still
displayed due to ','

"1,1f00000" means
the address 0x01f00000 of chip select 1.
Is this an officially accepted format?
I am not sure if it is official.

Rob said the data fields should be separated by commas.
https://www.spinics.net/lists/devicetree/msg201565.html
Are you sure he doesn't mean in the 'reg' property.

Rather than the node-name@NNNNNNNN syntax.

BTW, I think the error you link to above is related to the
node-name@NNNNNNNN not matching the value listed in the 'reg'
property.

If I get rid of @NNNNNNNN part,
DTC warns the following for W=1 builds:

arch/arm/boot/dts/uniphier-support-card.dtsi:12.29-32.4: Warning
(unit_address_vs_reg): /soc/system-bus@58c00000/support-card: node has
a reg or ranges property, but no unit name



So, 'reg' or 'range' requires a unit name.

A unit name should be a base address.
If it has a chip select, the format is
<chip-select>,<base-address>

But the schema does not allow commas
in a unit name of simple-bus.

This is the problem I am trying to do something for.




--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog


-- 
Best Regards
Masahiro Yamada

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help