All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/4] add NXP RTC driver support for S32G2/S32G3 SoCs
@ 2024-12-06  7:09 Ciprian Costea
  2024-12-06  7:09 ` [PATCH v6 1/4] dt-bindings: rtc: add schema for NXP " Ciprian Costea
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Ciprian Costea @ 2024-12-06  7:09 UTC (permalink / raw)
  To: Alexandre Belloni, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Catalin Marinas, Will Deacon
  Cc: linux-rtc, devicetree, linux-kernel, linux-arm-kernel,
	NXP S32 Linux, imx, Christophe Lizzi, Alberto Ruiz,
	Enric Balletbo, Ciprian Marian Costea

From: Ciprian Marian Costea <ciprianmarian.costea@oss.nxp.com>

This patch series add support for the NXP RTC hardware module present on
S32G2/S32G3 SoCs.

RTC tracks clock time during system suspend. It is used as a time-based
wakeup source for the S32G2/S32G3 SoCs.

RTC is not battery-powered and it is not kept alive during system reset.

Following is an example of Suspend to RAM trigger on S32G2/S32G3 SoCs,
using userspace tools such as rtcwake:
# rtcwake -s 2 -m mem
# rtcwake: assuming RTC uses UTC ...
# rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Feb  6 06:28:36 2036
#

Changes in V6:
- Fixed a coding style issue regarding kernel doc reported by kernel test robot
- Refactored small sections from the S32G RTC driver without impacting
  functionality
- Fixed an error probe path issue on S32G RTC driver.
- Added 'rtc' schema in S32G-RTC bindings

Changes in V5:
- Removed rollover support.
- Removed clock switching support between Runtime and Suspend. A clock source
  which is always available has been used instead.
- Enabled 512 value RTC hardware frequency divisor to achieve higher rollover
  time
- Removed unneeded 'remove' callback.
- Decreased driver print verbosity on error paths.
- Provided 'clock-names' actual names in bindings documentation
- Remove __maybe_unused notations. Used the DEFINE_SIMPLE_DEV_PM_OPS() and
  pm_sleep_ptr() macros to handle the .suspend/.resume callbacks.
- Fixed some alignment issues.

Changes in V4:
- Dropped 'assigned-*' clock management approach. Simplified RTC Runtime
  and Suspend/Standby clock configuration.
- Simplified error paths on probe function
- Removed node label from bindings example
- Several cosmetic coding style fixes

Changes in V3:
- Removed 'nxp,s32g3-rtc' compatible string
- Change to 'remove' callback from 'remove_new'
- Used 'dev.parent' from 'struct rtc_device' instead of defining a
  specific 'struct device' in driver data
- Fixed several errors reported by kernel test robot
- Removed 'assigned-clocks', 'assigned-clock-parents' and
  'assigned-clock-rates' from required properties in the binding
  documentation.
- Refactored S32G RTC driver such that a default clock source and
  divisors configuration will be applied in case 'assigned-clocks' and
  'assigned-clock-parents' properties are missing.

Changes in V2:
- Removed 'clksel' support from dts bindings. Used clock parents support
  from CCF to better illustrate the RTC hardware IP from S32G2/S32G3.
- Removed frequency dividers support from dts bindings. Used assigned
  clock frequencies support from CCF instead.
- Reduced the interval while RTC is voluntarily disabled to a simple
  register write in order to avoid any race condition between a possbile
  rollover and 'suspend' callback execution flow.
- Updated bindings documentation with respect to clocking support.
- Fixed a potential unused variable warning reported by kernel test robot.
- Updated to usage of 'devm_rtc_allocate_device' and 'devm_rtc_register_device'
  instead of deprecated 'devm_rtc_device_register'.

Ciprian Marian Costea (4):
  dt-bindings: rtc: add schema for NXP S32G2/S32G3 SoCs
  rtc: s32g: add NXP S32G2/S32G3 SoC support
  arm64: defconfig: add S32G RTC module support
  MAINTAINERS: add NXP S32G RTC driver

 .../devicetree/bindings/rtc/nxp,s32g-rtc.yaml |  72 +++
 MAINTAINERS                                   |   2 +
 arch/arm64/configs/defconfig                  |   1 +
 drivers/rtc/Kconfig                           |  11 +
 drivers/rtc/Makefile                          |   1 +
 drivers/rtc/rtc-s32g.c                        | 529 ++++++++++++++++++
 6 files changed, 616 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/rtc/nxp,s32g-rtc.yaml
 create mode 100644 drivers/rtc/rtc-s32g.c

-- 
2.45.2


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

end of thread, other threads:[~2025-02-06 10:36 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-06  7:09 [PATCH v6 0/4] add NXP RTC driver support for S32G2/S32G3 SoCs Ciprian Costea
2024-12-06  7:09 ` [PATCH v6 1/4] dt-bindings: rtc: add schema for NXP " Ciprian Costea
2024-12-10 23:04   ` Rob Herring (Arm)
2024-12-06  7:09 ` [PATCH v6 2/4] rtc: s32g: add NXP S32G2/S32G3 SoC support Ciprian Costea
2024-12-06  8:04   ` Arnd Bergmann
2024-12-06 12:05     ` Ciprian Marian Costea
2024-12-06 12:41       ` Arnd Bergmann
2024-12-09 17:17         ` Ciprian Marian Costea
2024-12-10  8:22           ` Arnd Bergmann
2024-12-10 23:07             ` Alexandre Belloni
2024-12-10  5:22   ` kernel test robot
2024-12-10 23:25   ` Alexandre Belloni
2025-02-06 10:36     ` Ciprian Marian Costea
2024-12-06  7:09 ` [PATCH v6 3/4] arm64: defconfig: add S32G RTC module support Ciprian Costea
2024-12-06  7:09 ` [PATCH v6 4/4] MAINTAINERS: add NXP S32G RTC driver Ciprian Costea

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.