linux-rtc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/3] Add nxp bbnsm module support
@ 2023-02-15  2:41 Jacky Bai
  2023-02-15  2:41 ` [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support Jacky Bai
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Jacky Bai @ 2023-02-15  2:41 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, alexandre.belloni
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	linux-imx, festevam

NXP BBNSM (Battery-Backed Non-Secure Module) serves as non-volatile
logic and storage for the system. it provides some similar functions
like RTC and ON/OFF support as previous SNVS module found on legacy
i.MX SoCs. The BBNSM is replacement of previous SNVS module, and more
likely it will be used on all the future i.MX SoC or other SoCs from
NXP.

This patchset add the basic support for BBNSM that found on i.MX93.

Jacky Bai (3):
  input: bbnsm_pwrkey: Add bbnsm power key support
  rtc: bbnsm: Add the bbnsm rtc support
  arm64: dts: imx93: Add the bbnsm dts node

 arch/arm64/boot/dts/freescale/imx93.dtsi |  16 ++
 drivers/input/misc/Kconfig               |  11 ++
 drivers/input/misc/Makefile              |   1 +
 drivers/input/misc/nxp-bbnsm-pwrkey.c    | 192 +++++++++++++++++++
 drivers/rtc/Kconfig                      |  12 ++
 drivers/rtc/Makefile                     |   1 +
 drivers/rtc/rtc-nxp-bbnsm.c              | 226 +++++++++++++++++++++++
 7 files changed, 459 insertions(+)
 create mode 100644 drivers/input/misc/nxp-bbnsm-pwrkey.c
 create mode 100644 drivers/rtc/rtc-nxp-bbnsm.c

-- 
2.34.1


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

* [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support
  2023-02-15  2:41 [PATCH v5 0/3] Add nxp bbnsm module support Jacky Bai
@ 2023-02-15  2:41 ` Jacky Bai
  2023-02-21 22:45   ` Dmitry Torokhov
  2023-02-15  2:41 ` [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support Jacky Bai
  2023-02-15  2:41 ` [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node Jacky Bai
  2 siblings, 1 reply; 12+ messages in thread
From: Jacky Bai @ 2023-02-15  2:41 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, alexandre.belloni
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	linux-imx, festevam

The ON/OFF logic inside the BBNSM allows for connecting directly
into a PMIC or other voltage regulator device. The module has an
button input signal and a wakeup request input signal. It also
has two interrupts (set_pwr_off_irq and set_pwr_on_irq) and an
active-low PMIC enable (pmic_en_b) output.

Add the power key support for the ON/OFF button function found in
BBNSM module.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
 - v5 changes:
    - move the bbnsm pwr key driver to input/misc as Dmitry suggested
    - replace del_timer_sync with timer_shutdown_sync() 
    - minor refine for error log string

  - v4 changes:
    - update the compatible string to align with binding file
    - fix the device_property_read_u32 as stated in v2.
    - add back the 'dev_warn' for 'dev_pm_set_wake_irq' return fail.

  - v3 changes:
    - get the regmap directly from the parent node
 
  - v2 changes:
    - use device_property_read_u32() to read the property
    - clean up the goto return, return directly
    - sort the header file alphabetically
    - rename the file to add 'nxp' prefix
---
 drivers/input/misc/Kconfig            |  11 ++
 drivers/input/misc/Makefile           |   1 +
 drivers/input/misc/nxp-bbnsm-pwrkey.c | 192 ++++++++++++++++++++++++++
 3 files changed, 204 insertions(+)
 create mode 100644 drivers/input/misc/nxp-bbnsm-pwrkey.c

diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index 5c2d0c06d2a5..81a54a59e13c 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -119,6 +119,17 @@ config INPUT_ATMEL_CAPTOUCH
 	  To compile this driver as a module, choose M here: the
 	  module will be called atmel_captouch.
 
+config INPUT_BBNSM_PWRKEY
+	tristate "NXP BBNSM Power Key Driver"
+	depends on ARCH_MXC || COMPILE_TEST
+	depends on OF
+	help
+	  This is the bbnsm powerkey driver for the NXP i.MX application
+	  processors.
+
+	  To compile this driver as a module, choose M here; the
+	  module will be called bbnsm_pwrkey.
+
 config INPUT_BMA150
 	tristate "BMA150/SMB380 acceleration sensor support"
 	depends on I2C
diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
index 61949263300d..04296a4abe8e 100644
--- a/drivers/input/misc/Makefile
+++ b/drivers/input/misc/Makefile
@@ -21,6 +21,7 @@ obj-$(CONFIG_INPUT_ATC260X_ONKEY)	+= atc260x-onkey.o
 obj-$(CONFIG_INPUT_ATI_REMOTE2)		+= ati_remote2.o
 obj-$(CONFIG_INPUT_ATLAS_BTNS)		+= atlas_btns.o
 obj-$(CONFIG_INPUT_ATMEL_CAPTOUCH)	+= atmel_captouch.o
+obj-$(CONFIG_INPUT_BBNSM_PWRKEY)	+= nxp-bbnsm-pwrkey.o
 obj-$(CONFIG_INPUT_BMA150)		+= bma150.o
 obj-$(CONFIG_INPUT_CM109)		+= cm109.o
 obj-$(CONFIG_INPUT_CMA3000)		+= cma3000_d0x.o
diff --git a/drivers/input/misc/nxp-bbnsm-pwrkey.c b/drivers/input/misc/nxp-bbnsm-pwrkey.c
new file mode 100644
index 000000000000..737e202ec513
--- /dev/null
+++ b/drivers/input/misc/nxp-bbnsm-pwrkey.c
@@ -0,0 +1,192 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2022 NXP.
+
+#include <linux/device.h>
+#include <linux/err.h>
+#include <linux/init.h>
+#include <linux/input.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/jiffies.h>
+#include <linux/kernel.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/platform_device.h>
+#include <linux/pm_wakeirq.h>
+#include <linux/regmap.h>
+
+#define BBNSM_CTRL		0x8
+#define BBNSM_INT_EN		0x10
+#define BBNSM_EVENTS		0x14
+#define BBNSM_PAD_CTRL		0x24
+
+#define BBNSM_BTN_PRESSED	BIT(7)
+#define BBNSM_PWR_ON		BIT(6)
+#define BBNSM_BTN_OFF		BIT(5)
+#define BBNSM_EMG_OFF		BIT(4)
+#define BBNSM_PWRKEY_EVENTS	(BBNSM_PWR_ON | BBNSM_BTN_OFF | BBNSM_EMG_OFF)
+#define BBNSM_DP_EN		BIT(24)
+
+#define DEBOUNCE_TIME		30
+#define REPEAT_INTERVAL		60
+
+struct bbnsm_pwrkey {
+	struct regmap *regmap;
+	int irq;
+	int keycode;
+	int keystate;  /* 1:pressed */
+	struct timer_list check_timer;
+	struct input_dev *input;
+};
+
+static void bbnsm_pwrkey_check_for_events(struct timer_list *t)
+{
+	struct bbnsm_pwrkey *bbnsm = from_timer(bbnsm, t, check_timer);
+	struct input_dev *input = bbnsm->input;
+	u32 state;
+
+	regmap_read(bbnsm->regmap, BBNSM_EVENTS, &state);
+
+	state = state & BBNSM_BTN_PRESSED ? 1 : 0;
+
+	/* only report new event if status changed */
+	if (state ^ bbnsm->keystate) {
+		bbnsm->keystate = state;
+		input_event(input, EV_KEY, bbnsm->keycode, state);
+		input_sync(input);
+		pm_relax(bbnsm->input->dev.parent);
+	}
+
+	/* repeat check if pressed long */
+	if (state) {
+		mod_timer(&bbnsm->check_timer,
+			  jiffies + msecs_to_jiffies(REPEAT_INTERVAL));
+	}
+}
+
+static irqreturn_t bbnsm_pwrkey_interrupt(int irq, void *dev_id)
+{
+	struct platform_device *pdev = dev_id;
+	struct bbnsm_pwrkey *bbnsm = platform_get_drvdata(pdev);
+	struct input_dev *input = bbnsm->input;
+	u32 event;
+
+	regmap_read(bbnsm->regmap, BBNSM_EVENTS, &event);
+	if (event & BBNSM_BTN_OFF)
+		mod_timer(&bbnsm->check_timer, jiffies + msecs_to_jiffies(DEBOUNCE_TIME));
+	else
+		return IRQ_NONE;
+
+	pm_wakeup_event(input->dev.parent, 0);
+
+	/* clear PWR OFF */
+	regmap_write(bbnsm->regmap, BBNSM_EVENTS, BBNSM_BTN_OFF);
+
+	return IRQ_HANDLED;
+}
+
+static void bbnsm_pwrkey_act(void *pdata)
+{
+	struct bbnsm_pwrkey *bbnsm = pdata;
+
+	timer_shutdown_sync(&bbnsm->check_timer);
+}
+
+static int bbnsm_pwrkey_probe(struct platform_device *pdev)
+{
+	struct bbnsm_pwrkey *bbnsm;
+	struct input_dev *input;
+	struct device_node *np = pdev->dev.of_node;
+	int error;
+
+	bbnsm = devm_kzalloc(&pdev->dev, sizeof(*bbnsm), GFP_KERNEL);
+	if (!bbnsm)
+		return -ENOMEM;
+
+	bbnsm->regmap = syscon_node_to_regmap(np->parent);
+	if (IS_ERR(bbnsm->regmap)) {
+		dev_err(&pdev->dev, "bbnsm pwerkey get regmap failed\n");
+		return PTR_ERR(bbnsm->regmap);
+	}
+
+	if (device_property_read_u32(&pdev->dev, "linux,code", &bbnsm->keycode)) {
+		bbnsm->keycode = KEY_POWER;
+		dev_warn(&pdev->dev, "key code is not specified, using default KEY_POWER\n");
+	}
+
+	bbnsm->irq = platform_get_irq(pdev, 0);
+	if (bbnsm->irq < 0)
+		return -EINVAL;
+
+	/* config the BBNSM power related register */
+	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, BBNSM_DP_EN, BBNSM_DP_EN);
+
+	/* clear the unexpected interrupt before driver ready */
+	regmap_write_bits(bbnsm->regmap, BBNSM_EVENTS, BBNSM_PWRKEY_EVENTS, BBNSM_PWRKEY_EVENTS);
+
+	timer_setup(&bbnsm->check_timer, bbnsm_pwrkey_check_for_events, 0);
+
+	input = devm_input_allocate_device(&pdev->dev);
+	if (!input) {
+		dev_err(&pdev->dev, "failed to allocate the input device\n");
+		return -ENOMEM;
+	}
+
+	input->name = pdev->name;
+	input->phys = "bbnsm-pwrkey/input0";
+	input->id.bustype = BUS_HOST;
+
+	input_set_capability(input, EV_KEY, bbnsm->keycode);
+
+	/* input customer action to cancel release timer */
+	error = devm_add_action(&pdev->dev, bbnsm_pwrkey_act, bbnsm);
+	if (error) {
+		dev_err(&pdev->dev, "failed to register remove action\n");
+		return error;
+	}
+
+	bbnsm->input = input;
+	platform_set_drvdata(pdev, bbnsm);
+
+	error = devm_request_irq(&pdev->dev, bbnsm->irq, bbnsm_pwrkey_interrupt,
+			       IRQF_SHARED, pdev->name, pdev);
+	if (error) {
+		dev_err(&pdev->dev, "interrupt not available.\n");
+		return error;
+	}
+
+	error = input_register_device(input);
+	if (error < 0) {
+		dev_err(&pdev->dev, "failed to register input device\n");
+		return error;
+	}
+
+	device_init_wakeup(&pdev->dev, true);
+	error = dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
+	if (error)
+		dev_warn(&pdev->dev, "irq wake enable failed.\n");
+
+	return 0;
+}
+
+static const struct of_device_id bbnsm_pwrkey_ids[] = {
+	{ .compatible = "nxp,imx93-bbnsm-pwrkey" },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, bbnsm_pwrkey_ids);
+
+static struct platform_driver bbnsm_pwrkey_driver = {
+	.driver = {
+		.name = "bbnsm_pwrkey",
+		.of_match_table = bbnsm_pwrkey_ids,
+	},
+	.probe = bbnsm_pwrkey_probe,
+};
+module_platform_driver(bbnsm_pwrkey_driver);
+
+MODULE_AUTHOR("Jacky Bai <ping.bai@nxp.com>");
+MODULE_DESCRIPTION("NXP bbnsm power key Driver");
+MODULE_LICENSE("GPL");
-- 
2.34.1


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

* [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support
  2023-02-15  2:41 [PATCH v5 0/3] Add nxp bbnsm module support Jacky Bai
  2023-02-15  2:41 ` [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support Jacky Bai
@ 2023-02-15  2:41 ` Jacky Bai
  2023-02-21 18:01   ` Alexandre Belloni
  2023-02-22 11:26   ` (subset) " Alexandre Belloni
  2023-02-15  2:41 ` [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node Jacky Bai
  2 siblings, 2 replies; 12+ messages in thread
From: Jacky Bai @ 2023-02-15  2:41 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, alexandre.belloni
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	linux-imx, festevam

The BBNSM module includes a real time counter with alarm.
Add a RTC driver for this function.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
---
  - v5 changes: no

  - v4 changes:
    - update the compatible string to align with binding file

  - v3 changes:
    - get the regmap directly from parent node
    - remove unnecessary dev_err log print

  - v2 changes:
    - sort the header file alphabetically
    - rename the file to add 'nxp' prefix
    - refine bbnsm_rtc_irq_handler function, remove the unnecessary
      event variable
    - add rtc enable check in .read_time, remove rtc enable in probe function
    - remove unnecessary dev_err log in probe function
---
 drivers/rtc/Kconfig         |  12 ++
 drivers/rtc/Makefile        |   1 +
 drivers/rtc/rtc-nxp-bbnsm.c | 226 ++++++++++++++++++++++++++++++++++++
 3 files changed, 239 insertions(+)
 create mode 100644 drivers/rtc/rtc-nxp-bbnsm.c

diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 2ba72de0fa47..13c9c57aab73 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -1773,6 +1773,18 @@ config RTC_DRV_SNVS
 	   This driver can also be built as a module, if so, the module
 	   will be called "rtc-snvs".
 
+config RTC_DRV_BBNSM
+	tristate "NXP BBNSM RTC support"
+	select REGMAP_MMIO
+	depends on ARCH_MXC || COMPILE_TEST
+	depends on HAS_IOMEM
+	depends on OF
+	help
+	   If you say yes here you get support for the NXP BBNSM RTC module.
+
+	   This driver can also be built as a module, if so, the module
+	   will be called "rtc-bbnsm".
+
 config RTC_DRV_IMX_SC
 	depends on IMX_SCU
 	depends on HAVE_ARM_SMCCC
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 59eb30289335..ea445d1ebb17 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -33,6 +33,7 @@ obj-$(CONFIG_RTC_DRV_ASPEED)	+= rtc-aspeed.o
 obj-$(CONFIG_RTC_DRV_AT91RM9200)+= rtc-at91rm9200.o
 obj-$(CONFIG_RTC_DRV_AT91SAM9)	+= rtc-at91sam9.o
 obj-$(CONFIG_RTC_DRV_AU1XXX)	+= rtc-au1xxx.o
+obj-$(CONFIG_RTC_DRV_BBNSM)	+= rtc-nxp-bbnsm.o
 obj-$(CONFIG_RTC_DRV_BD70528)	+= rtc-bd70528.o
 obj-$(CONFIG_RTC_DRV_BQ32K)	+= rtc-bq32k.o
 obj-$(CONFIG_RTC_DRV_BQ4802)	+= rtc-bq4802.o
diff --git a/drivers/rtc/rtc-nxp-bbnsm.c b/drivers/rtc/rtc-nxp-bbnsm.c
new file mode 100644
index 000000000000..1009388b635e
--- /dev/null
+++ b/drivers/rtc/rtc-nxp-bbnsm.c
@@ -0,0 +1,226 @@
+// SPDX-License-Identifier: GPL-2.0+
+//
+// Copyright 2022 NXP.
+
+#include <linux/init.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/mfd/syscon.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/pm_wakeirq.h>
+#include <linux/regmap.h>
+#include <linux/rtc.h>
+
+#define BBNSM_CTRL	0x8
+#define BBNSM_INT_EN	0x10
+#define BBNSM_EVENTS	0x14
+#define BBNSM_RTC_LS	0x40
+#define BBNSM_RTC_MS	0x44
+#define BBNSM_TA	0x50
+
+#define RTC_EN		0x2
+#define RTC_EN_MSK	0x3
+#define TA_EN		(0x2 << 2)
+#define TA_DIS		(0x1 << 2)
+#define TA_EN_MSK	(0x3 << 2)
+#define RTC_INT_EN	0x2
+#define TA_INT_EN	(0x2 << 2)
+
+#define BBNSM_EVENT_TA	(0x2 << 2)
+
+#define CNTR_TO_SECS_SH	15
+
+struct bbnsm_rtc {
+	struct rtc_device *rtc;
+	struct regmap *regmap;
+	int irq;
+	struct clk *clk;
+};
+
+static u32 bbnsm_read_counter(struct bbnsm_rtc *bbnsm)
+{
+	u32 rtc_msb, rtc_lsb;
+	unsigned int timeout = 100;
+	u32 time;
+	u32 tmp = 0;
+
+	do {
+		time = tmp;
+		/* read the msb */
+		regmap_read(bbnsm->regmap, BBNSM_RTC_MS, &rtc_msb);
+		/* read the lsb */
+		regmap_read(bbnsm->regmap, BBNSM_RTC_LS, &rtc_lsb);
+		/* convert to seconds */
+		tmp = (rtc_msb << 17) | (rtc_lsb >> 15);
+	} while (tmp != time && --timeout);
+
+	return time;
+}
+
+static int bbnsm_rtc_read_time(struct device *dev, struct rtc_time *tm)
+{
+	struct bbnsm_rtc *bbnsm = dev_get_drvdata(dev);
+	unsigned long time;
+	u32 val;
+
+	regmap_read(bbnsm->regmap, BBNSM_CTRL, &val);
+	if ((val & RTC_EN_MSK) != RTC_EN)
+		return -EINVAL;
+
+	time = bbnsm_read_counter(bbnsm);
+	rtc_time64_to_tm(time, tm);
+
+	return 0;
+}
+
+static int bbnsm_rtc_set_time(struct device *dev, struct rtc_time *tm)
+{
+	struct bbnsm_rtc *bbnsm = dev_get_drvdata(dev);
+	unsigned long time = rtc_tm_to_time64(tm);
+
+	/* disable the RTC first */
+	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, 0);
+
+	/* write the 32bit sec time to 47 bit timer counter, leaving 15 LSBs blank */
+	regmap_write(bbnsm->regmap, BBNSM_RTC_LS, time << CNTR_TO_SECS_SH);
+	regmap_write(bbnsm->regmap, BBNSM_RTC_MS, time >> (32 - CNTR_TO_SECS_SH));
+
+	/* Enable the RTC again */
+	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, RTC_EN_MSK, RTC_EN);
+
+	return 0;
+}
+
+static int bbnsm_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
+{
+	struct bbnsm_rtc *bbnsm = dev_get_drvdata(dev);
+	u32 bbnsm_events, bbnsm_ta;
+
+	regmap_read(bbnsm->regmap, BBNSM_TA, &bbnsm_ta);
+	rtc_time64_to_tm(bbnsm_ta, &alrm->time);
+
+	regmap_read(bbnsm->regmap, BBNSM_EVENTS, &bbnsm_events);
+	alrm->pending = (bbnsm_events & BBNSM_EVENT_TA) ? 1 : 0;
+
+	return 0;
+}
+
+static int bbnsm_rtc_alarm_irq_enable(struct device *dev, unsigned int enable)
+{
+	struct bbnsm_rtc *bbnsm = dev_get_drvdata(dev);
+
+	/* enable the alarm event */
+	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, TA_EN_MSK, enable ? TA_EN : TA_DIS);
+	/* enable the alarm interrupt */
+	regmap_update_bits(bbnsm->regmap, BBNSM_INT_EN, TA_EN_MSK, enable ? TA_EN : TA_DIS);
+
+	return 0;
+}
+
+static int bbnsm_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)
+{
+	struct bbnsm_rtc *bbnsm = dev_get_drvdata(dev);
+	unsigned long time = rtc_tm_to_time64(&alrm->time);
+
+	/* disable the alarm */
+	regmap_update_bits(bbnsm->regmap, BBNSM_CTRL, TA_EN, TA_EN);
+
+	/* write the seconds to TA */
+	regmap_write(bbnsm->regmap, BBNSM_TA, time);
+
+	return bbnsm_rtc_alarm_irq_enable(dev, alrm->enabled);
+}
+
+static const struct rtc_class_ops bbnsm_rtc_ops = {
+	.read_time = bbnsm_rtc_read_time,
+	.set_time = bbnsm_rtc_set_time,
+	.read_alarm = bbnsm_rtc_read_alarm,
+	.set_alarm = bbnsm_rtc_set_alarm,
+	.alarm_irq_enable = bbnsm_rtc_alarm_irq_enable,
+};
+
+static irqreturn_t bbnsm_rtc_irq_handler(int irq, void *dev_id)
+{
+	struct device *dev = dev_id;
+	struct bbnsm_rtc  *bbnsm = dev_get_drvdata(dev);
+	u32 val;
+
+	regmap_read(bbnsm->regmap, BBNSM_EVENTS, &val);
+	if (val & BBNSM_EVENT_TA) {
+		bbnsm_rtc_alarm_irq_enable(dev, false);
+		/* clear the alarm event */
+		regmap_write_bits(bbnsm->regmap, BBNSM_EVENTS, TA_EN_MSK, BBNSM_EVENT_TA);
+		rtc_update_irq(bbnsm->rtc, 1, RTC_AF | RTC_IRQF);
+
+		return IRQ_HANDLED;
+	}
+
+	return IRQ_NONE;
+}
+
+static int bbnsm_rtc_probe(struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.of_node;
+	struct bbnsm_rtc *bbnsm;
+	int ret;
+
+	bbnsm = devm_kzalloc(&pdev->dev, sizeof(*bbnsm), GFP_KERNEL);
+	if (!bbnsm)
+		return -ENOMEM;
+
+	bbnsm->rtc = devm_rtc_allocate_device(&pdev->dev);
+	if (IS_ERR(bbnsm->rtc))
+		return PTR_ERR(bbnsm->rtc);
+
+	bbnsm->regmap = syscon_node_to_regmap(np->parent);
+	if (IS_ERR(bbnsm->regmap)) {
+		dev_dbg(&pdev->dev, "bbnsm get regmap failed\n");
+		return PTR_ERR(bbnsm->regmap);
+	}
+
+	bbnsm->irq = platform_get_irq(pdev, 0);
+	if (bbnsm->irq < 0)
+		return bbnsm->irq;
+
+	platform_set_drvdata(pdev, bbnsm);
+
+	/* clear all the pending events */
+	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
+
+	device_init_wakeup(&pdev->dev, true);
+	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
+
+	ret = devm_request_irq(&pdev->dev, bbnsm->irq, bbnsm_rtc_irq_handler,
+			IRQF_SHARED, "rtc alarm", &pdev->dev);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to request irq %d: %d\n",
+			bbnsm->irq, ret);
+		return ret;
+	}
+
+	bbnsm->rtc->ops = &bbnsm_rtc_ops;
+	bbnsm->rtc->range_max = U32_MAX;
+
+	return devm_rtc_register_device(bbnsm->rtc);
+}
+
+static const struct of_device_id bbnsm_dt_ids[] = {
+	{ .compatible = "nxp,imx93-bbnsm-rtc" },
+	{ /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, bbnsm_dt_ids);
+
+static struct platform_driver bbnsm_rtc_driver = {
+	.driver = {
+		.name = "bbnsm_rtc",
+		.of_match_table = bbnsm_dt_ids,
+	},
+	.probe = bbnsm_rtc_probe,
+};
+module_platform_driver(bbnsm_rtc_driver);
+
+MODULE_AUTHOR("Jacky Bai <ping.bai@nxp.com>");
+MODULE_DESCRIPTION("NXP BBNSM RTC Driver");
+MODULE_LICENSE("GPL");
-- 
2.34.1


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

* [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node
  2023-02-15  2:41 [PATCH v5 0/3] Add nxp bbnsm module support Jacky Bai
  2023-02-15  2:41 ` [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support Jacky Bai
  2023-02-15  2:41 ` [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support Jacky Bai
@ 2023-02-15  2:41 ` Jacky Bai
  2023-03-08  9:58   ` Jacky Bai
  2023-03-14  1:01   ` Shawn Guo
  2 siblings, 2 replies; 12+ messages in thread
From: Jacky Bai @ 2023-02-15  2:41 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, alexandre.belloni
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	linux-imx, festevam

Add the bbnsm node for RTC & ON/OFF button support

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
---
  - v5 changes: no

  - v4 changes:
    - update the compatible string to align with binding file

  - v3 changes:
    - remove 'nxp,bbnsm-regmap' property to align with binding doc

  - v2 changes:
    - update the regmap property to align with binding doc
---
 arch/arm64/boot/dts/freescale/imx93.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index 2076f9c9983a..e772c136e895 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -243,6 +243,22 @@ iomuxc: pinctrl@443c0000 {
 				status = "okay";
 			};
 
+			bbnsm: bbnsm@44440000 {
+				compatible = "nxp,imx93-bbnsm", "syscon", "simple-mfd";
+				reg = <0x44440000 0x10000>;
+
+				bbnsm_rtc: rtc {
+					compatible = "nxp,imx93-bbnsm-rtc";
+					interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+				};
+
+				bbnsm_pwrkey: pwrkey {
+					compatible = "nxp,imx93-bbnsm-pwrkey";
+					interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+					linux,code = <KEY_POWER>;
+				};
+			};
+
 			clk: clock-controller@44450000 {
 				compatible = "fsl,imx93-ccm";
 				reg = <0x44450000 0x10000>;
-- 
2.34.1


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

* Re: [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support
  2023-02-15  2:41 ` [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support Jacky Bai
@ 2023-02-21 18:01   ` Alexandre Belloni
  2023-02-21 18:04     ` Alexandre Belloni
  2023-02-22 11:26   ` (subset) " Alexandre Belloni
  1 sibling, 1 reply; 12+ messages in thread
From: Alexandre Belloni @ 2023-02-21 18:01 UTC (permalink / raw)
  To: Jacky Bai
  Cc: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, devicetree, linux-arm-kernel,
	linux-input, linux-rtc, kernel, linux-imx, festevam

On 15/02/2023 10:41:16+0800, Jacky Bai wrote:
> The BBNSM module includes a real time counter with alarm.
> Add a RTC driver for this function.
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> +static int bbnsm_rtc_probe(struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	struct bbnsm_rtc *bbnsm;
> +	int ret;
> +
> +	bbnsm = devm_kzalloc(&pdev->dev, sizeof(*bbnsm), GFP_KERNEL);
> +	if (!bbnsm)
> +		return -ENOMEM;
> +
> +	bbnsm->rtc = devm_rtc_allocate_device(&pdev->dev);
> +	if (IS_ERR(bbnsm->rtc))
> +		return PTR_ERR(bbnsm->rtc);
> +
> +	bbnsm->regmap = syscon_node_to_regmap(np->parent);
> +	if (IS_ERR(bbnsm->regmap)) {
> +		dev_dbg(&pdev->dev, "bbnsm get regmap failed\n");
> +		return PTR_ERR(bbnsm->regmap);
> +	}
> +
> +	bbnsm->irq = platform_get_irq(pdev, 0);
> +	if (bbnsm->irq < 0)
> +		return bbnsm->irq;
> +
> +	platform_set_drvdata(pdev, bbnsm);
> +
> +	/* clear all the pending events */
> +	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
> +
> +	device_init_wakeup(&pdev->dev, true);
> +	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
> +
> +	ret = devm_request_irq(&pdev->dev, bbnsm->irq, bbnsm_rtc_irq_handler,
> +			IRQF_SHARED, "rtc alarm", &pdev->dev);

This is not properly aligned, you can fix that if you ever have to
resend.


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* Re: [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support
  2023-02-21 18:01   ` Alexandre Belloni
@ 2023-02-21 18:04     ` Alexandre Belloni
  2023-02-22  7:09       ` Jacky Bai
  0 siblings, 1 reply; 12+ messages in thread
From: Alexandre Belloni @ 2023-02-21 18:04 UTC (permalink / raw)
  To: Jacky Bai
  Cc: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, devicetree, linux-arm-kernel,
	linux-input, linux-rtc, kernel, linux-imx, festevam

On 21/02/2023 19:01:16+0100, Alexandre Belloni wrote:
> On 15/02/2023 10:41:16+0800, Jacky Bai wrote:
> > The BBNSM module includes a real time counter with alarm.
> > Add a RTC driver for this function.
> > 
> > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > Reviewed-by: Peng Fan <peng.fan@nxp.com>
> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> 

Actually, as there is no dependency anymore, I'm going to apply that
directly.

> > +static int bbnsm_rtc_probe(struct platform_device *pdev)
> > +{
> > +	struct device_node *np = pdev->dev.of_node;
> > +	struct bbnsm_rtc *bbnsm;
> > +	int ret;
> > +
> > +	bbnsm = devm_kzalloc(&pdev->dev, sizeof(*bbnsm), GFP_KERNEL);
> > +	if (!bbnsm)
> > +		return -ENOMEM;
> > +
> > +	bbnsm->rtc = devm_rtc_allocate_device(&pdev->dev);
> > +	if (IS_ERR(bbnsm->rtc))
> > +		return PTR_ERR(bbnsm->rtc);
> > +
> > +	bbnsm->regmap = syscon_node_to_regmap(np->parent);
> > +	if (IS_ERR(bbnsm->regmap)) {
> > +		dev_dbg(&pdev->dev, "bbnsm get regmap failed\n");
> > +		return PTR_ERR(bbnsm->regmap);
> > +	}
> > +
> > +	bbnsm->irq = platform_get_irq(pdev, 0);
> > +	if (bbnsm->irq < 0)
> > +		return bbnsm->irq;
> > +
> > +	platform_set_drvdata(pdev, bbnsm);
> > +
> > +	/* clear all the pending events */
> > +	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
> > +
> > +	device_init_wakeup(&pdev->dev, true);
> > +	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
> > +
> > +	ret = devm_request_irq(&pdev->dev, bbnsm->irq, bbnsm_rtc_irq_handler,
> > +			IRQF_SHARED, "rtc alarm", &pdev->dev);
> 
> This is not properly aligned, you can fix that if you ever have to
> resend.

> 
> 
> -- 
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* Re: [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support
  2023-02-15  2:41 ` [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support Jacky Bai
@ 2023-02-21 22:45   ` Dmitry Torokhov
  0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Torokhov @ 2023-02-21 22:45 UTC (permalink / raw)
  To: Jacky Bai
  Cc: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer, a.zummo,
	alexandre.belloni, devicetree, linux-arm-kernel, linux-input,
	linux-rtc, kernel, linux-imx, festevam

On Wed, Feb 15, 2023 at 10:41:15AM +0800, Jacky Bai wrote:
> The ON/OFF logic inside the BBNSM allows for connecting directly
> into a PMIC or other voltage regulator device. The module has an
> button input signal and a wakeup request input signal. It also
> has two interrupts (set_pwr_off_irq and set_pwr_on_irq) and an
> active-low PMIC enable (pmic_en_b) output.
> 
> Add the power key support for the ON/OFF button function found in
> BBNSM module.
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>

Applied with a few cosmetic changes, thank you.

-- 
Dmitry

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

* RE: [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support
  2023-02-21 18:04     ` Alexandre Belloni
@ 2023-02-22  7:09       ` Jacky Bai
  0 siblings, 0 replies; 12+ messages in thread
From: Jacky Bai @ 2023-02-22  7:09 UTC (permalink / raw)
  To: Alexandre Belloni
  Cc: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, devicetree, linux-arm-kernel,
	linux-input, linux-rtc, kernel, dl-linux-imx, festevam

Hi Alexandre,

> Subject: Re: [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support
> 
> On 21/02/2023 19:01:16+0100, Alexandre Belloni wrote:
> > On 15/02/2023 10:41:16+0800, Jacky Bai wrote:
> > > The BBNSM module includes a real time counter with alarm.
> > > Add a RTC driver for this function.
> > >
> > > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > > Reviewed-by: Peng Fan <peng.fan@nxp.com>
> > Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> >
> 
> Actually, as there is no dependency anymore, I'm going to apply that directly.
> 

Do I need to resend or you will directly apply this V5 patch?

BR
> > > +static int bbnsm_rtc_probe(struct platform_device *pdev) {
> > > +	struct device_node *np = pdev->dev.of_node;
> > > +	struct bbnsm_rtc *bbnsm;
> > > +	int ret;
> > > +
> > > +	bbnsm = devm_kzalloc(&pdev->dev, sizeof(*bbnsm), GFP_KERNEL);
> > > +	if (!bbnsm)
> > > +		return -ENOMEM;
> > > +
> > > +	bbnsm->rtc = devm_rtc_allocate_device(&pdev->dev);
> > > +	if (IS_ERR(bbnsm->rtc))
> > > +		return PTR_ERR(bbnsm->rtc);
> > > +
> > > +	bbnsm->regmap = syscon_node_to_regmap(np->parent);
> > > +	if (IS_ERR(bbnsm->regmap)) {
> > > +		dev_dbg(&pdev->dev, "bbnsm get regmap failed\n");
> > > +		return PTR_ERR(bbnsm->regmap);
> > > +	}
> > > +
> > > +	bbnsm->irq = platform_get_irq(pdev, 0);
> > > +	if (bbnsm->irq < 0)
> > > +		return bbnsm->irq;
> > > +
> > > +	platform_set_drvdata(pdev, bbnsm);
> > > +
> > > +	/* clear all the pending events */
> > > +	regmap_write(bbnsm->regmap, BBNSM_EVENTS, 0x7A);
> > > +
> > > +	device_init_wakeup(&pdev->dev, true);
> > > +	dev_pm_set_wake_irq(&pdev->dev, bbnsm->irq);
> > > +
> > > +	ret = devm_request_irq(&pdev->dev, bbnsm->irq,
> bbnsm_rtc_irq_handler,
> > > +			IRQF_SHARED, "rtc alarm", &pdev->dev);
> >
> > This is not properly aligned, you can fix that if you ever have to
> > resend.
> 
> >
> >
> > --

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

* Re: (subset) [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support
  2023-02-15  2:41 ` [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support Jacky Bai
  2023-02-21 18:01   ` Alexandre Belloni
@ 2023-02-22 11:26   ` Alexandre Belloni
  1 sibling, 0 replies; 12+ messages in thread
From: Alexandre Belloni @ 2023-02-22 11:26 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, Jacky Bai
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	linux-imx, festevam


On Wed, 15 Feb 2023 10:41:16 +0800, Jacky Bai wrote:
> The BBNSM module includes a real time counter with alarm.
> Add a RTC driver for this function.
> 
> 

Applied, thanks!

[2/3] rtc: bbnsm: Add the bbnsm rtc support
      commit: eb7b85853c3866236f9cb378fc68ce5f76efbf9c

Best regards,

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

* RE: [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node
  2023-02-15  2:41 ` [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node Jacky Bai
@ 2023-03-08  9:58   ` Jacky Bai
  2023-03-08 10:32     ` Alexander Stein
  2023-03-14  1:01   ` Shawn Guo
  1 sibling, 1 reply; 12+ messages in thread
From: Jacky Bai @ 2023-03-08  9:58 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, alexandre.belloni
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	dl-linux-imx, festevam

Hi Shawn,

Can you help pick this patch?

BR
> Subject: [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node
> 
> Add the bbnsm node for RTC & ON/OFF button support
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> ---
>   - v5 changes: no
> 
>   - v4 changes:
>     - update the compatible string to align with binding file
> 
>   - v3 changes:
>     - remove 'nxp,bbnsm-regmap' property to align with binding doc
> 
>   - v2 changes:
>     - update the regmap property to align with binding doc
> ---
>  arch/arm64/boot/dts/freescale/imx93.dtsi | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi
> b/arch/arm64/boot/dts/freescale/imx93.dtsi
> index 2076f9c9983a..e772c136e895 100644
> --- a/arch/arm64/boot/dts/freescale/imx93.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
> @@ -243,6 +243,22 @@ iomuxc: pinctrl@443c0000 {
>  				status = "okay";
>  			};
> 
> +			bbnsm: bbnsm@44440000 {
> +				compatible = "nxp,imx93-bbnsm", "syscon", "simple-mfd";
> +				reg = <0x44440000 0x10000>;
> +
> +				bbnsm_rtc: rtc {
> +					compatible = "nxp,imx93-bbnsm-rtc";
> +					interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
> +				};
> +
> +				bbnsm_pwrkey: pwrkey {
> +					compatible = "nxp,imx93-bbnsm-pwrkey";
> +					interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
> +					linux,code = <KEY_POWER>;
> +				};
> +			};
> +
>  			clk: clock-controller@44450000 {
>  				compatible = "fsl,imx93-ccm";
>  				reg = <0x44450000 0x10000>;
> --
> 2.34.1


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

* RE: [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node
  2023-03-08  9:58   ` Jacky Bai
@ 2023-03-08 10:32     ` Alexander Stein
  0 siblings, 0 replies; 12+ messages in thread
From: Alexander Stein @ 2023-03-08 10:32 UTC (permalink / raw)
  To: lee, robh+dt, krzysztof.kozlowski+dt, shawnguo, s.hauer,
	dmitry.torokhov, a.zummo, alexandre.belloni, linux-arm-kernel
  Cc: devicetree, linux-arm-kernel, linux-input, linux-rtc, kernel,
	dl-linux-imx, festevam, Jacky Bai

Hi,

Am Mittwoch, 8. März 2023, 10:58:00 CET schrieb Jacky Bai:
> Hi Shawn,
> 
> Can you help pick this patch?

Just for completeness:
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com>
on TQMa93xx

Best regards,
Alexander

> BR
> 
> > Subject: [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node
> > 
> > Add the bbnsm node for RTC & ON/OFF button support
> > 
> > Signed-off-by: Jacky Bai <ping.bai@nxp.com>
> > ---
> > 
> >   - v5 changes: no
> >   
> >   - v4 changes:
> >     - update the compatible string to align with binding file
> >   
> >   - v3 changes:
> >     - remove 'nxp,bbnsm-regmap' property to align with binding doc
> >   
> >   - v2 changes:
> >     - update the regmap property to align with binding doc
> > 
> > ---
> > 
> >  arch/arm64/boot/dts/freescale/imx93.dtsi | 16 ++++++++++++++++
> >  1 file changed, 16 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi
> > b/arch/arm64/boot/dts/freescale/imx93.dtsi
> > index 2076f9c9983a..e772c136e895 100644
> > --- a/arch/arm64/boot/dts/freescale/imx93.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
> > @@ -243,6 +243,22 @@ iomuxc: pinctrl@443c0000 {
> > 
> >  				status = "okay";
> >  			
> >  			};
> > 
> > +			bbnsm: bbnsm@44440000 {
> > +				compatible = "nxp,imx93-bbnsm", 
"syscon", "simple-mfd";
> > +				reg = <0x44440000 0x10000>;
> > +
> > +				bbnsm_rtc: rtc {
> > +					compatible = "nxp,imx93-
bbnsm-rtc";
> > +					interrupts = <GIC_SPI 73 
IRQ_TYPE_LEVEL_HIGH>;
> > +				};
> > +
> > +				bbnsm_pwrkey: pwrkey {
> > +					compatible = "nxp,imx93-
bbnsm-pwrkey";
> > +					interrupts = <GIC_SPI 73 
IRQ_TYPE_LEVEL_HIGH>;
> > +					linux,code = <KEY_POWER>;
> > +				};
> > +			};
> > +
> > 
> >  			clk: clock-controller@44450000 {
> >  			
> >  				compatible = "fsl,imx93-ccm";
> >  				reg = <0x44450000 0x10000>;
> > 
> > --
> > 2.34.1
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/



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

* Re: [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node
  2023-02-15  2:41 ` [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node Jacky Bai
  2023-03-08  9:58   ` Jacky Bai
@ 2023-03-14  1:01   ` Shawn Guo
  1 sibling, 0 replies; 12+ messages in thread
From: Shawn Guo @ 2023-03-14  1:01 UTC (permalink / raw)
  To: Jacky Bai
  Cc: lee, robh+dt, krzysztof.kozlowski+dt, s.hauer, dmitry.torokhov,
	a.zummo, alexandre.belloni, devicetree, linux-arm-kernel,
	linux-input, linux-rtc, kernel, linux-imx, festevam

On Wed, Feb 15, 2023 at 10:41:17AM +0800, Jacky Bai wrote:
> Add the bbnsm node for RTC & ON/OFF button support
> 
> Signed-off-by: Jacky Bai <ping.bai@nxp.com>

Applied, thanks!

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

end of thread, other threads:[~2023-03-14  1:01 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-15  2:41 [PATCH v5 0/3] Add nxp bbnsm module support Jacky Bai
2023-02-15  2:41 ` [PATCH v5 1/3] input: bbnsm_pwrkey: Add bbnsm power key support Jacky Bai
2023-02-21 22:45   ` Dmitry Torokhov
2023-02-15  2:41 ` [PATCH v5 2/3] rtc: bbnsm: Add the bbnsm rtc support Jacky Bai
2023-02-21 18:01   ` Alexandre Belloni
2023-02-21 18:04     ` Alexandre Belloni
2023-02-22  7:09       ` Jacky Bai
2023-02-22 11:26   ` (subset) " Alexandre Belloni
2023-02-15  2:41 ` [PATCH v5 3/3] arm64: dts: imx93: Add the bbnsm dts node Jacky Bai
2023-03-08  9:58   ` Jacky Bai
2023-03-08 10:32     ` Alexander Stein
2023-03-14  1:01   ` Shawn Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).