Message ID | 20250519184530.21845-1-wsa+renesas@sang-engineering.com |
---|---|
State | New |
Headers | show |
Series | [dt-schema] schemas: i2c: Allow '-' in 'i2c-.*' node names | expand |
On Mon, May 19, 2025 at 1:45 PM Wolfram Sang <wsa+renesas@sang-engineering.com> wrote: > > When allowing extended i2c node names, the '-' character was not added > to the character class. Fixes the following error: > > .../Kernel/linux/arch/arm/boot/dts/microchip/usb_a9g20.dtb: i2c-gpio-0 (i2c-gpio): $nodename:0: 'i2c-gpio-0' does not match '^i2c(@.+|-[a-z0-9]+)?$' > from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml# IMO, we should change the node name to "i2c-0". While I'm on the fence whether it's worth changing these, I do think it is worth not getting new ones. > Fixes: 647181a1f8ff ("schemas: i2c: Allow for 'i2c-.*' node names") > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > --- > > I don't know if it is possible to define a custom character class to > avoid similar problems in the future? > > dtschema/schemas/i2c/i2c-controller.yaml | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/dtschema/schemas/i2c/i2c-controller.yaml b/dtschema/schemas/i2c/i2c-controller.yaml > index 8488edd5ecc4..4abcf1a0ddcc 100644 > --- a/dtschema/schemas/i2c/i2c-controller.yaml > +++ b/dtschema/schemas/i2c/i2c-controller.yaml > @@ -14,7 +14,7 @@ maintainers: > > properties: > $nodename: > - pattern: "^i2c(@.+|-[a-z0-9]+)?$" > + pattern: "^i2c(@.+|-[a-z0-9\\-]+)?$" > > i2c-bus: > type: object > -- > 2.47.2 > >
On Mon, May 19, 2025 at 08:18:53PM -0500, Rob Herring wrote: > On Mon, May 19, 2025 at 1:45 PM Wolfram Sang > <wsa+renesas@sang-engineering.com> wrote: > > > > When allowing extended i2c node names, the '-' character was not added > > to the character class. Fixes the following error: > > > > .../Kernel/linux/arch/arm/boot/dts/microchip/usb_a9g20.dtb: i2c-gpio-0 (i2c-gpio): $nodename:0: 'i2c-gpio-0' does not match '^i2c(@.+|-[a-z0-9]+)?$' > > from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml# > > IMO, we should change the node name to "i2c-0". While I'm on the fence > whether it's worth changing these, I do think it is worth not getting > new ones. It is hard changing the existing ones. They are numbered based on the numbers of GPIO based I2C busses only. If we drop "gpio-", they need to be mixed with other non-GPIO busses. That numbering is usually unique per board and can't be automated.
On Tue, May 20, 2025 at 4:25 AM Wolfram Sang <wsa+renesas@sang-engineering.com> wrote: > > On Mon, May 19, 2025 at 08:18:53PM -0500, Rob Herring wrote: > > On Mon, May 19, 2025 at 1:45 PM Wolfram Sang > > <wsa+renesas@sang-engineering.com> wrote: > > > > > > When allowing extended i2c node names, the '-' character was not added > > > to the character class. Fixes the following error: > > > > > > .../Kernel/linux/arch/arm/boot/dts/microchip/usb_a9g20.dtb: i2c-gpio-0 (i2c-gpio): $nodename:0: 'i2c-gpio-0' does not match '^i2c(@.+|-[a-z0-9]+)?$' > > > from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml# > > > > IMO, we should change the node name to "i2c-0". While I'm on the fence > > whether it's worth changing these, I do think it is worth not getting > > new ones. > > It is hard changing the existing ones. They are numbered based on the > numbers of GPIO based I2C busses only. If we drop "gpio-", they need to > be mixed with other non-GPIO busses. That numbering is usually unique > per board and can't be automated. I don't understand. For arm32, I see 1 case of possibly already having an i2c-[0-9] name and that's in arch/arm/boot/dts/samsung/exynos5250-arndale.dts. The non-GPIO I2C buses are all MMIO and have unit addresses (and also aren't at the root level). The hardest part is doing a dtb->dts pass and comparing those before and after to make sure you haven't combined or split nodes. Rob
diff --git a/dtschema/schemas/i2c/i2c-controller.yaml b/dtschema/schemas/i2c/i2c-controller.yaml index 8488edd5ecc4..4abcf1a0ddcc 100644 --- a/dtschema/schemas/i2c/i2c-controller.yaml +++ b/dtschema/schemas/i2c/i2c-controller.yaml @@ -14,7 +14,7 @@ maintainers: properties: $nodename: - pattern: "^i2c(@.+|-[a-z0-9]+)?$" + pattern: "^i2c(@.+|-[a-z0-9\\-]+)?$" i2c-bus: type: object
When allowing extended i2c node names, the '-' character was not added to the character class. Fixes the following error: .../Kernel/linux/arch/arm/boot/dts/microchip/usb_a9g20.dtb: i2c-gpio-0 (i2c-gpio): $nodename:0: 'i2c-gpio-0' does not match '^i2c(@.+|-[a-z0-9]+)?$' from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml# Fixes: 647181a1f8ff ("schemas: i2c: Allow for 'i2c-.*' node names") Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- I don't know if it is possible to define a custom character class to avoid similar problems in the future? dtschema/schemas/i2c/i2c-controller.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)