diff mbox series

[v6,1/7] dt-bindings: can: m_can: Add wakeup properties

Message ID 20241219-topic-mcan-wakeup-source-v6-12-v6-1-1356c7f7cfda@baylibre.com (mailing list archive)
State Awaiting Upstream
Delegated to: Netdev Maintainers
Headers show
Series can: m_can: Add am62 wakeup support | expand

Checks

Context Check Description
netdev/tree_selection success Series ignored based on subject

Commit Message

Markus Schneider-Pargmann Dec. 19, 2024, 7:57 p.m. UTC
m_can can be a wakeup source on some devices. Especially on some of the
am62* SoCs pins, connected to m_can in the mcu, can be used to wakeup
the SoC.

The wakeup-source property defines on which devices m_can can be used
for wakeup and in which power states.

The pins associated with m_can have to have a special configuration to
be able to wakeup the SoC. This configuration is described in the wakeup
pinctrl state while the default state describes the default
configuration.

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
 .../devicetree/bindings/net/can/bosch,m_can.yaml   | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Comments

Marc Kleine-Budde Dec. 25, 2024, 7:50 p.m. UTC | #1
On 19.12.2024 20:57:52, Markus Schneider-Pargmann wrote:
> m_can can be a wakeup source on some devices. Especially on some of the
> am62* SoCs pins, connected to m_can in the mcu, can be used to wakeup
> the SoC.
> 
> The wakeup-source property defines on which devices m_can can be used
> for wakeup and in which power states.
> 
> The pins associated with m_can have to have a special configuration to
> be able to wakeup the SoC. This configuration is described in the wakeup
> pinctrl state while the default state describes the default
> configuration.
> 
> Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>

The DTBS check fails:

| $ make CHECK_DTBS=y ti/k3-am625-beagleplay.dtb
|   DTC [C] arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb
| arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e08000: wakeup-source: 'oneOf' conditional failed, one must be fixed:
|         ['suspend', 'poweroff'] is not of type 'boolean'
|         ['suspend', 'poweroff'] is too long
|         from schema $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
| arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e08000: wakeup-source: ['suspend', 'poweroff'] is not of type 'boolean'
|         from schema $id: http://devicetree.org/schemas/wakeup-source.yaml#
| arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e18000: wakeup-source: 'oneOf' conditional failed, one must be fixed:
|         ['suspend', 'poweroff'] is not of type 'boolean'
|         ['suspend', 'poweroff'] is too long
|         from schema $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
| arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e18000: wakeup-source: ['suspend', 'poweroff'] is not of type 'boolean'
|         from schema $id: http://devicetree.org/schemas/wakeup-source.yaml#

Marc
Markus Schneider-Pargmann Jan. 7, 2025, 9:53 a.m. UTC | #2
On Wed, Dec 25, 2024 at 08:50:17PM +0100, Marc Kleine-Budde wrote:
> On 19.12.2024 20:57:52, Markus Schneider-Pargmann wrote:
> > m_can can be a wakeup source on some devices. Especially on some of the
> > am62* SoCs pins, connected to m_can in the mcu, can be used to wakeup
> > the SoC.
> > 
> > The wakeup-source property defines on which devices m_can can be used
> > for wakeup and in which power states.
> > 
> > The pins associated with m_can have to have a special configuration to
> > be able to wakeup the SoC. This configuration is described in the wakeup
> > pinctrl state while the default state describes the default
> > configuration.
> > 
> > Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> 
> The DTBS check fails:
> 
> | $ make CHECK_DTBS=y ti/k3-am625-beagleplay.dtb
> |   DTC [C] arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb
> | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e08000: wakeup-source: 'oneOf' conditional failed, one must be fixed:
> |         ['suspend', 'poweroff'] is not of type 'boolean'
> |         ['suspend', 'poweroff'] is too long
> |         from schema $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
> | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e08000: wakeup-source: ['suspend', 'poweroff'] is not of type 'boolean'
> |         from schema $id: http://devicetree.org/schemas/wakeup-source.yaml#
> | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e18000: wakeup-source: 'oneOf' conditional failed, one must be fixed:
> |         ['suspend', 'poweroff'] is not of type 'boolean'
> |         ['suspend', 'poweroff'] is too long
> |         from schema $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
> | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e18000: wakeup-source: ['suspend', 'poweroff'] is not of type 'boolean'
> |         from schema $id: http://devicetree.org/schemas/wakeup-source.yaml#

Thanks, the bot also notified me about this issue. I wasn't able to
solve it without updating the dt-schema, so I submitted a pull request
there:

https://github.com/devicetree-org/dt-schema/pull/150

Best
Markus
Marc Kleine-Budde Jan. 7, 2025, 12:05 p.m. UTC | #3
On 07.01.2025 10:53:26, Markus Schneider-Pargmann wrote:
> On Wed, Dec 25, 2024 at 08:50:17PM +0100, Marc Kleine-Budde wrote:
> > On 19.12.2024 20:57:52, Markus Schneider-Pargmann wrote:
> > > m_can can be a wakeup source on some devices. Especially on some of the
> > > am62* SoCs pins, connected to m_can in the mcu, can be used to wakeup
> > > the SoC.
> > > 
> > > The wakeup-source property defines on which devices m_can can be used
> > > for wakeup and in which power states.
> > > 
> > > The pins associated with m_can have to have a special configuration to
> > > be able to wakeup the SoC. This configuration is described in the wakeup
> > > pinctrl state while the default state describes the default
> > > configuration.
> > > 
> > > Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> > 
> > The DTBS check fails:
> > 
> > | $ make CHECK_DTBS=y ti/k3-am625-beagleplay.dtb
> > |   DTC [C] arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb
> > | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e08000: wakeup-source: 'oneOf' conditional failed, one must be fixed:
> > |         ['suspend', 'poweroff'] is not of type 'boolean'
> > |         ['suspend', 'poweroff'] is too long
> > |         from schema $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
> > | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e08000: wakeup-source: ['suspend', 'poweroff'] is not of type 'boolean'
> > |         from schema $id: http://devicetree.org/schemas/wakeup-source.yaml#
> > | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e18000: wakeup-source: 'oneOf' conditional failed, one must be fixed:
> > |         ['suspend', 'poweroff'] is not of type 'boolean'
> > |         ['suspend', 'poweroff'] is too long
> > |         from schema $id: http://devicetree.org/schemas/net/can/bosch,m_can.yaml#
> > | arch/arm64/boot/dts/ti/k3-am625-beagleplay.dtb: can@4e18000: wakeup-source: ['suspend', 'poweroff'] is not of type 'boolean'
> > |         from schema $id: http://devicetree.org/schemas/wakeup-source.yaml#
> 
> Thanks, the bot also notified me about this issue. I wasn't able to
> solve it without updating the dt-schema, so I submitted a pull request
> there:
> 
> https://github.com/devicetree-org/dt-schema/pull/150

I see, please add to the patch description that it depends on the that
PR and re-post once it is accepted.

Thanks,
Marc
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
index c4887522e8fe97c3947357b4dbd4ecf20ee8100a..75963b11d31964c47679370664824ea111e70ca7 100644
--- a/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
+++ b/Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
@@ -106,6 +106,22 @@  properties:
         maximum: 32
     minItems: 1
 
+  pinctrl-0:
+    description: Default pinctrl state
+
+  pinctrl-1:
+    description: Wakeup pinctrl state
+
+  pinctrl-names:
+    description:
+      When present should contain at least "default" describing the default pin
+      states. The second state called "wakeup" describes the pins in their
+      wakeup configuration required to exit sleep states.
+    minItems: 1
+    items:
+      - const: default
+      - const: wakeup
+
   power-domains:
     description:
       Power domain provider node and an args specifier containing
@@ -122,6 +138,17 @@  properties:
     minItems: 1
     maxItems: 2
 
+  wakeup-source:
+    oneOf:
+      - description: This device is capable of wakeup.
+        type: boolean
+      - description: This device is capable of wakeup from the defined power
+          states.
+        $ref: /schemas/types.yaml#/definitions/string-array
+        enum:
+          - suspend
+          - poweroff
+
 required:
   - compatible
   - reg