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.htmlAre 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