All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/9] can: m_can: Add am62 wakeup support
@ 2024-10-11 13:16 Markus Schneider-Pargmann
  2024-10-11 13:16 ` [PATCH v3 1/9] dt-bindings: can: m_can: Add wakeup properties Markus Schneider-Pargmann
                   ` (8 more replies)
  0 siblings, 9 replies; 21+ messages in thread
From: Markus Schneider-Pargmann @ 2024-10-11 13:16 UTC (permalink / raw)
  To: Chandrasekar Ramakrishnan, Marc Kleine-Budde, Vincent Mailhol,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Nishanth Menon,
	Vignesh Raghavendra, Tero Kristo
  Cc: linux-can, netdev, devicetree, linux-kernel, linux-arm-kernel,
	Matthias Schiffer, Vishal Mahaveer, Kevin Hilman, Dhruva Gole,
	Markus Schneider-Pargmann, Andrew Lunn

Hi,

Series
------
am62, am62a and am62p support Partial-IO, a poweroff SoC state with a
few pin groups being active for wakeup.

To support mcu_mcan0 and mcu_mcan1 wakeup for the mentioned SoCs, the
series introduces a notion of wake-on-lan for m_can. If the user decides
to enable wake-on-lan for a m_can device, the device is set to wakeup
enabled. A 'wakeup' pinctrl state is selected to enable wakeup flags for
the relevant pins. If wake-on-lan is disabled the default pinctrl is
selected.

It is based on v6.12-rc1.

Partial-IO
----------
This series is part of a bigger topic to support Partial-IO on am62,
am62a and am62p. Partial-IO is a poweroff state in which some pins are
able to wakeup the SoC. In detail MCU m_can and two serial port pins can
trigger the wakeup.
A documentation can also be found in section 6.2.4 in the TRM:
  https://www.ti.com/lit/pdf/spruiv7

This other series is relevant for the support of Partial-IO:

 - firmware: ti_sci: Partial-IO support
   https://gitlab.baylibre.com/msp8/linux/-/tree/topic/am62-partialio/v6.12?ref_type=heads

Testing
-------
A test branch is available here that includes all patches required to
test Partial-IO:

https://gitlab.baylibre.com/msp8/linux/-/tree/integration/am62-lp-sk-partialio/v6.12?ref_type=heads

After enabling Wake-on-LAN the system can be powered off and will enter
the Partial-IO state in which it can be woken up by activity on the
specific pins:
    ethtool -s can0 wol p
    ethtool -s can1 wol p
    poweroff

I tested these patches on am62-lp-sk.

Best,
Markus

Previous versions:
 v1: https://lore.kernel.org/lkml/20240523075347.1282395-1-msp@baylibre.com/
 v2: https://lore.kernel.org/lkml/20240729074135.3850634-1-msp@baylibre.com/

Changes in v3:
 - Rebase to v6.12-rc1
 - Change 'wakeup-source' to only 'true'
 - Simplify m_can_set_wol by returning early on error
 - Add vio-suuply binding and handling of this optional property.
   vio-supply is used to reflect the SoC architecture and which power
   line powers the m_can unit. This is important as some units are
   powered in special low power modes.

Changes in v2:
 - Rebase to v6.11-rc1
 - Squash these two patches for the binding into one:
   dt-bindings: can: m_can: Add wakeup-source property
   dt-bindings: can: m_can: Add wakeup pinctrl state
 - Add error handling to multiple patches of the m_can driver
 - Add error handling in m_can_class_allocate_dev(). This also required
   to add a new patch to return error pointers from
   m_can_class_allocate_dev().

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
Markus Schneider-Pargmann (8):
      dt-bindings: can: m_can: Add wakeup properties
      dt-bindings: can: m_can: Add vio-supply
      can: m_can: Map WoL to device_set_wakeup_enable
      can: m_can: Return ERR_PTR on error in allocation
      can: m_can: Support pinctrl wakeup state
      can: m_can: Add use of optional regulator
      arm64: dts: ti: k3-am62: Mark mcu_mcan0/1 as wakeup-source
      arm64: dts: ti: k3-am62a-mcu: Mark mcu_mcan0/1 as wakeup-source

Vibhore Vardhan (1):
      arm64: dts: ti: k3-am62p-mcu: Mark mcu_mcan0/1 as wakeup-source

 .../devicetree/bindings/net/can/bosch,m_can.yaml   |  22 +++++
 arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi            |   2 +
 arch/arm64/boot/dts/ti/k3-am62a-mcu.dtsi           |   2 +
 .../boot/dts/ti/k3-am62p-j722s-common-mcu.dtsi     |   2 +
 drivers/net/can/m_can/m_can.c                      | 109 ++++++++++++++++++++-
 drivers/net/can/m_can/m_can.h                      |   4 +
 drivers/net/can/m_can/m_can_pci.c                  |   4 +-
 drivers/net/can/m_can/m_can_platform.c             |   4 +-
 drivers/net/can/m_can/tcan4x5x-core.c              |   4 +-
 9 files changed, 144 insertions(+), 9 deletions(-)
---
base-commit: 9852d85ec9d492ebef56dc5f229416c925758edc
change-id: 20241009-topic-mcan-wakeup-source-v6-12-8c1d69931bd8

Best regards,
-- 
Markus Schneider-Pargmann <msp@baylibre.com>


^ permalink raw reply	[flat|nested] 21+ messages in thread
* Re: [PATCH v3 3/9] can: m_can: Map WoL to device_set_wakeup_enable
@ 2024-10-15 12:07 kernel test robot
  0 siblings, 0 replies; 21+ messages in thread
From: kernel test robot @ 2024-10-15 12:07 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20241011-topic-mcan-wakeup-source-v6-12-v3-3-9752c714ad12@baylibre.com>
References: <20241011-topic-mcan-wakeup-source-v6-12-v3-3-9752c714ad12@baylibre.com>
TO: "Markus Schneider-Pargmann" <msp@baylibre.com>

Hi Markus,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 9852d85ec9d492ebef56dc5f229416c925758edc]

url:    https://github.com/intel-lab-lkp/linux/commits/Markus-Schneider-Pargmann/dt-bindings-can-m_can-Add-wakeup-properties/20241011-212232
base:   9852d85ec9d492ebef56dc5f229416c925758edc
patch link:    https://lore.kernel.org/r/20241011-topic-mcan-wakeup-source-v6-12-v3-3-9752c714ad12%40baylibre.com
patch subject: [PATCH v3 3/9] can: m_can: Map WoL to device_set_wakeup_enable
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: i386-randconfig-141-20241015 (https://download.01.org/0day-ci/archive/20241015/202410151950.6UahbF47-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410151950.6UahbF47-lkp@intel.com/

smatch warnings:
drivers/net/can/m_can/m_can.c:2199 m_can_set_wol() warn: add some parenthesis here?

vim +2199 drivers/net/can/m_can/m_can.c

0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2195  
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2196  static int m_can_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2197  {
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2198  	struct m_can_classdev *cdev = netdev_priv(dev);
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11 @2199  	bool wol_enable = !!wol->wolopts & WAKE_PHY;
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2200  	int ret;
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2201  
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2202  	if ((wol->wolopts & WAKE_PHY) != wol->wolopts)
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2203  		return -EINVAL;
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2204  
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2205  	if (wol_enable == device_may_wakeup(cdev->dev))
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2206  		return 0;
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2207  
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2208  	ret = device_set_wakeup_enable(cdev->dev, wol_enable);
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2209  	if (ret) {
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2210  		netdev_err(cdev->net, "Failed to set wakeup enable %pE\n",
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2211  			   ERR_PTR(ret));
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2212  		return ret;
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2213  	}
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2214  
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2215  	return 0;
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2216  }
0bd6199a58d117 Markus Schneider-Pargmann 2024-10-11  2217  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2024-10-15 12:25 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-11 13:16 [PATCH v3 0/9] can: m_can: Add am62 wakeup support Markus Schneider-Pargmann
2024-10-11 13:16 ` [PATCH v3 1/9] dt-bindings: can: m_can: Add wakeup properties Markus Schneider-Pargmann
2024-10-11 14:43   ` Krzysztof Kozlowski
2024-10-11 13:16 ` [PATCH v3 2/9] dt-bindings: can: m_can: Add vio-supply Markus Schneider-Pargmann
2024-10-11 14:44   ` Krzysztof Kozlowski
2024-10-11 19:01     ` Simon Horman
2024-10-11 13:16 ` [PATCH v3 3/9] can: m_can: Map WoL to device_set_wakeup_enable Markus Schneider-Pargmann
2024-10-11 18:59   ` Simon Horman
2024-10-15  6:32     ` Markus Schneider-Pargmann
2024-10-15 12:25   ` Dan Carpenter
2024-10-11 13:16 ` [PATCH v3 4/9] can: m_can: Return ERR_PTR on error in allocation Markus Schneider-Pargmann
2024-10-13 12:32   ` Vincent MAILHOL
2024-10-11 13:16 ` [PATCH v3 5/9] can: m_can: Support pinctrl wakeup state Markus Schneider-Pargmann
2024-10-13 12:27   ` Vincent MAILHOL
2024-10-15  9:29     ` Markus Schneider-Pargmann
2024-10-11 13:16 ` [PATCH v3 6/9] can: m_can: Add use of optional regulator Markus Schneider-Pargmann
2024-10-13 12:34   ` Vincent MAILHOL
2024-10-11 13:16 ` [PATCH v3 7/9] arm64: dts: ti: k3-am62: Mark mcu_mcan0/1 as wakeup-source Markus Schneider-Pargmann
2024-10-11 13:16 ` [PATCH v3 8/9] arm64: dts: ti: k3-am62a-mcu: " Markus Schneider-Pargmann
2024-10-11 13:16 ` [PATCH v3 9/9] arm64: dts: ti: k3-am62p-mcu: " Markus Schneider-Pargmann
  -- strict thread matches above, loose matches on Subject: below --
2024-10-15 12:07 [PATCH v3 3/9] can: m_can: Map WoL to device_set_wakeup_enable kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.