* [PATCH v2 1/6] Documentation: tps6594x: Add DT bindings for the TPS6594x PMIC
2022-08-12 3:22 [PATCH v2 0/6] mfd: add tps6594x support for Jacinto platform Matt Ranostay
@ 2022-08-12 3:22 ` Matt Ranostay
2022-08-16 17:20 ` Rob Herring
2022-08-12 3:22 ` [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips Matt Ranostay
` (4 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Matt Ranostay @ 2022-08-12 3:22 UTC (permalink / raw)
To: nm, j-keerthy, lee
Cc: linux-kernel, linux-rtc, devicetree, linux-arm-kernel, Matt Ranostay
Signed-off-by: Matt Ranostay <mranostay@ti.com>
---
.../devicetree/bindings/mfd/ti,tps6594x.yaml | 56 +++++++++++++++++++
1 file changed, 56 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml
diff --git a/Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml b/Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml
new file mode 100644
index 000000000000..9b5e17f63709
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml
@@ -0,0 +1,56 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ti,tps6594x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TPS6594x Power Management Integrated Circuit (PMIC)
+
+maintainers:
+ - Keerthy <j-keerthy@ti.com>
+
+properties:
+ compatible:
+ contains:
+ enum:
+ - ti,tps6594x
+
+ reg:
+ const: 0x48
+ description: I2C slave address
+
+ ti,system-power-controller:
+ type: boolean
+ description: PMIC is controlling the system power.
+
+ rtc:
+ type: object
+ $ref: /schemas/rtc/rtc.yaml#
+ unevaluatedProperties: false
+ properties:
+ compatible:
+ const: ti,tps6594x-rtc
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+
+examples:
+ - |
+ i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic: pmic@48 {
+ compatible = "ti,tps6594x";
+ reg = <0x48>;
+
+ rtc {
+ compatible = "ti,tps6594x-rtc";
+ };
+ };
+ };
+
+...
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/6] Documentation: tps6594x: Add DT bindings for the TPS6594x PMIC
2022-08-12 3:22 ` [PATCH v2 1/6] Documentation: tps6594x: Add DT bindings for the TPS6594x PMIC Matt Ranostay
@ 2022-08-16 17:20 ` Rob Herring
0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring @ 2022-08-16 17:20 UTC (permalink / raw)
To: Matt Ranostay
Cc: nm, j-keerthy, lee, linux-kernel, linux-rtc, devicetree,
linux-arm-kernel
On Thu, Aug 11, 2022 at 08:22:37PM -0700, Matt Ranostay wrote:
> Signed-off-by: Matt Ranostay <mranostay@ti.com>
Commit message? Use a subject prefix appropriate for the subsystem.
> ---
> .../devicetree/bindings/mfd/ti,tps6594x.yaml | 56 +++++++++++++++++++
> 1 file changed, 56 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml
>
> diff --git a/Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml b/Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml
> new file mode 100644
> index 000000000000..9b5e17f63709
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/ti,tps6594x.yaml
> @@ -0,0 +1,56 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mfd/ti,tps6594x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: TPS6594x Power Management Integrated Circuit (PMIC)
> +
> +maintainers:
> + - Keerthy <j-keerthy@ti.com>
> +
> +properties:
> + compatible:
> + contains:
No, this means '"foo", "ti,tps6594x", "bar"' is valid.
> + enum:
Use 'const' if only 1 entry.
> + - ti,tps6594x
Don't use wildcards in compatible strings.
> +
> + reg:
> + const: 0x48
> + description: I2C slave address
> +
> + ti,system-power-controller:
> + type: boolean
> + description: PMIC is controlling the system power.
> +
> + rtc:
Why do you need a sub-node here? Is the RTC a separate block with its
own resources?
> + type: object
> + $ref: /schemas/rtc/rtc.yaml#
> + unevaluatedProperties: false
> + properties:
> + compatible:
> + const: ti,tps6594x-rtc
> +
> +additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> +
> +examples:
> + - |
> + i2c0 {
i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pmic: pmic@48 {
> + compatible = "ti,tps6594x";
> + reg = <0x48>;
> +
> + rtc {
> + compatible = "ti,tps6594x-rtc";
> + };
> + };
> + };
> +
> +...
> --
> 2.36.1
>
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips
2022-08-12 3:22 [PATCH v2 0/6] mfd: add tps6594x support for Jacinto platform Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 1/6] Documentation: tps6594x: Add DT bindings for the TPS6594x PMIC Matt Ranostay
@ 2022-08-12 3:22 ` Matt Ranostay
2022-08-12 7:01 ` Lee Jones
2022-08-12 3:22 ` [PATCH v2 3/6] rtc: rtc-tps6594x: Add support for TPS6594X PMIC RTC Matt Ranostay
` (3 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Matt Ranostay @ 2022-08-12 3:22 UTC (permalink / raw)
To: nm, j-keerthy, lee
Cc: linux-kernel, linux-rtc, devicetree, linux-arm-kernel, Matt Ranostay
From: Keerthy <j-keerthy@ti.com>
The TPS6594x chip is a PMIC, and contains the following components:
- Regulators
- GPIO controller
- RTC
However initially only RTC is supported.
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Matt Ranostay <mranostay@ti.com>
---
drivers/mfd/Kconfig | 14 ++++
drivers/mfd/Makefile | 1 +
drivers/mfd/tps6594x.c | 121 +++++++++++++++++++++++++++++++++++
include/linux/mfd/tps6594x.h | 84 ++++++++++++++++++++++++
4 files changed, 220 insertions(+)
create mode 100644 drivers/mfd/tps6594x.c
create mode 100644 include/linux/mfd/tps6594x.h
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index abb58ab1a1a4..4845683ae1d0 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1547,6 +1547,20 @@ config MFD_TI_LP873X
This driver can also be built as a module. If so, the module
will be called lp873x.
+config MFD_TPS6594X
+ tristate "TI TPS6594X Power Management IC"
+ depends on I2C && OF
+ select MFD_CORE
+ select REGMAP_I2C
+ help
+ If you say yes here then you get support for the TPS6594X series of
+ Power Management Integrated Circuits (PMIC).
+ These include voltage regulators, RTS, configurable
+ General Purpose Outputs (GPO) that are used in portable devices.
+
+ This driver can also be built as a module. If so, the module
+ will be called tps6594x.
+
config MFD_TI_LP87565
tristate "TI LP87565 Power Management IC"
depends on I2C && OF
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index 858cacf659d6..7ff6a8a57d55 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -105,6 +105,7 @@ obj-$(CONFIG_MFD_TPS65910) += tps65910.o
obj-$(CONFIG_MFD_TPS65912) += tps65912-core.o
obj-$(CONFIG_MFD_TPS65912_I2C) += tps65912-i2c.o
obj-$(CONFIG_MFD_TPS65912_SPI) += tps65912-spi.o
+obj-$(CONFIG_MFD_TPS6594X) += tps6594x.o
obj-$(CONFIG_MENELAUS) += menelaus.o
obj-$(CONFIG_TWL4030_CORE) += twl-core.o twl4030-irq.o twl6030-irq.o
diff --git a/drivers/mfd/tps6594x.c b/drivers/mfd/tps6594x.c
new file mode 100644
index 000000000000..ff265b91db3e
--- /dev/null
+++ b/drivers/mfd/tps6594x.c
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Driver for tps6594x PMIC chips
+ *
+ * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
+ * Author: Keerthy <j-keerthy@ti.com>
+ */
+
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/mfd/core.h>
+#include <linux/mfd/tps6594x.h>
+#include <linux/module.h>
+#include <linux/i2c.h>
+#include <linux/regmap.h>
+
+static const struct regmap_config tps6594x_regmap_config = {
+ .reg_bits = 8,
+ .val_bits = 8,
+ .max_register = TPS6594X_REG_MAX,
+};
+
+static const struct mfd_cell tps6594x_cells[] = {
+ { .name = "tps6594x-gpio" },
+ { .name = "tps6594x-regulator" },
+ { .name = "tps6594x-rtc" },
+};
+
+static struct tps6594x *tps;
+
+static void tps6594x_power_off(void)
+{
+ regmap_write(tps->regmap, TPS6594X_FSM_NSLEEP_TRIGGERS,
+ TPS6594X_FSM_NSLEEP_NSLEEP1B | TPS6594X_FSM_NSLEEP_NSLEEP2B);
+
+ regmap_write(tps->regmap, TPS6594X_INT_STARTUP,
+ TPS6594X_INT_STARTUP_NPWRON_START_INT |
+ TPS6594X_INT_STARTUP_ENABLE_INT | TPS6594X_INT_STARTUP_RTC_INT |
+ TPS6594X_INT_STARTUP_SOFT_REBOOT_INT);
+
+ regmap_write(tps->regmap, TPS6594X_INT_MISC,
+ TPS6594X_INT_MISC_BIST_PASS_INT |
+ TPS6594X_INT_MISC_EXT_CLK_INT | TPS6594X_INT_MISC_TWARN_INT);
+
+ regmap_write(tps->regmap, TPS6594X_CONFIG_1,
+ TPS6594X_CONFIG_NSLEEP1_MASK | TPS6594X_CONFIG_NSLEEP2_MASK);
+
+ regmap_write(tps->regmap, TPS6594X_FSM_I2C_TRIGGERS,
+ TPS6594X_FSM_I2C_TRIGGERS_I2C0);
+}
+
+static int tps6594x_probe(struct i2c_client *client)
+{
+ struct tps6594x *ddata;
+ struct device_node *node = client->dev.of_node;
+ unsigned int otpid;
+ int ret;
+
+ ddata = devm_kzalloc(&client->dev, sizeof(*ddata), GFP_KERNEL);
+ if (!ddata)
+ return -ENOMEM;
+
+ ddata->dev = &client->dev;
+
+ ddata->regmap = devm_regmap_init_i2c(client, &tps6594x_regmap_config);
+ if (IS_ERR(ddata->regmap)) {
+ ret = PTR_ERR(ddata->regmap);
+ dev_err(ddata->dev,
+ "Failed to initialize register map: %d\n", ret);
+ return ret;
+ }
+
+ ret = regmap_read(ddata->regmap, TPS6594X_REG_DEV_REV, &otpid);
+ if (ret) {
+ dev_err(ddata->dev, "Failed to read OTP ID\n");
+ return ret;
+ }
+
+ ddata->rev = otpid;
+ i2c_set_clientdata(client, ddata);
+
+ ret = mfd_add_devices(ddata->dev, PLATFORM_DEVID_AUTO, tps6594x_cells,
+ ARRAY_SIZE(tps6594x_cells), NULL, 0, NULL);
+ if (ret) {
+ dev_err(ddata->dev, "Failed to register cells\n");
+ return ret;
+ }
+
+ tps = ddata;
+
+ if (of_property_read_bool(node, "ti,system-power-controller"))
+ pm_power_off = tps6594x_power_off;
+
+ return 0;
+}
+
+static const struct of_device_id of_tps6594x_match_table[] = {
+ { .compatible = "ti,tps6594x", },
+ {}
+};
+MODULE_DEVICE_TABLE(of, of_tps6594x_match_table);
+
+static const struct i2c_device_id tps6594x_id_table[] = {
+ { "tps6594x", 0 },
+ {}
+};
+MODULE_DEVICE_TABLE(i2c, tps6594x_id_table);
+
+static struct i2c_driver tps6594x_driver = {
+ .driver = {
+ .name = "tps6594x",
+ .of_match_table = of_tps6594x_match_table,
+ },
+ .probe_new = tps6594x_probe,
+ .id_table = tps6594x_id_table,
+};
+module_i2c_driver(tps6594x_driver);
+
+MODULE_AUTHOR("J Keerthy <j-keerthy@ti.com>");
+MODULE_DESCRIPTION("TPS6594X PMIC device driver");
+MODULE_LICENSE("GPL");
diff --git a/include/linux/mfd/tps6594x.h b/include/linux/mfd/tps6594x.h
new file mode 100644
index 000000000000..5a6af0da9223
--- /dev/null
+++ b/include/linux/mfd/tps6594x.h
@@ -0,0 +1,84 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Core driver interface for TI TPS6594x PMIC family
+ *
+ * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+#ifndef __MFD_TPS6594X_H
+#define __MFD_TPS6594X_H
+
+#include <linux/bits.h>
+
+/* TPS6594x chip ID list */
+#define TPS6594X 0x00
+
+/* All register addresses */
+#define TPS6594X_REG_DEV_REV 0x01
+#define TPS6594X_INT_STARTUP 0x65
+#define TPS6594X_INT_MISC 0x66
+#define TPS6594X_CONFIG_1 0x7d
+#define TPS6594X_FSM_I2C_TRIGGERS 0x85
+#define TPS6594X_FSM_NSLEEP_TRIGGERS 0x86
+
+#define TPS6594X_RTC_SECONDS 0xb5
+#define TPS6594X_RTC_MINUTES 0xb6
+#define TPS6594X_RTC_HOURS 0xb7
+#define TPS6594X_RTC_DAYS 0xb8
+#define TPS6594X_RTC_MONTHS 0xb9
+#define TPS6594X_RTC_YEARS 0xba
+#define TPS6594X_RTC_WEEKS 0xbb
+#define TPS6594X_ALARM_SECONDS 0xbc
+#define TPS6594X_ALARM_MINUTES 0xbd
+#define TPS6594X_ALARM_HOURS 0xbe
+#define TPS6594X_ALARM_DAYS 0xbf
+#define TPS6594X_ALARM_MONTHS 0xc0
+#define TPS6594X_ALARM_YEARS 0xc1
+#define TPS6594X_RTC_CTRL_1 0xc2
+#define TPS6594X_RTC_CTRL_2 0xc3
+#define TPS6594X_RTC_STATUS 0xc4
+#define TPS6594X_RTC_INTERRUPTS 0xc5
+#define TPS6594X_REG_MAX 0xd0
+
+/* Register field definitions */
+#define TPS6594X_DEV_REV_DEV_ID 0xff
+
+#define TPS6594X_INT_STARTUP_NPWRON_START_INT BIT(0)
+#define TPS6594X_INT_STARTUP_ENABLE_INT BIT(1)
+#define TPS6594X_INT_STARTUP_RTC_INT BIT(2)
+#define TPS6594X_INT_STARTUP_FSD_INT BIT(4)
+#define TPS6594X_INT_STARTUP_SOFT_REBOOT_INT BIT(5)
+
+#define TPS6594X_INT_MISC_BIST_PASS_INT BIT(0)
+#define TPS6594X_INT_MISC_EXT_CLK_INT BIT(1)
+#define TPS6594X_INT_MISC_TWARN_INT BIT(3)
+
+#define TPS6594X_CONFIG_NSLEEP1_MASK BIT(6)
+#define TPS6594X_CONFIG_NSLEEP2_MASK BIT(7)
+
+#define TPS6594X_FSM_I2C_TRIGGERS_I2C0 BIT(0)
+
+#define TPS6594X_FSM_NSLEEP_NSLEEP1B BIT(0)
+#define TPS6594X_FSM_NSLEEP_NSLEEP2B BIT(1)
+
+#define TPS6594X_RTC_CTRL_REG_GET_TIME BIT(6)
+#define TPS6594X_RTC_CTRL_REG_STOP_RTC BIT(0)
+#define TPS6594X_RTC_INTERRUPTS_REG_IT_ALARM BIT(3)
+
+#define TPS6594X_RTC_STATUS_RUN BIT(1)
+
+/**
+ * struct tps6594x - state holder for the tps6594x driver
+ * @dev: struct device pointer for MFD device
+ * @rev: revision of the tps6594x
+ * @lock: lock guarding the data structure
+ * @regmap: register map of the tps6594x PMIC
+ *
+ * Device data may be used to access the TPS6594X chip
+ */
+struct tps6594x {
+ struct device *dev;
+ u8 rev;
+ struct regmap *regmap;
+};
+#endif /* __MFD_TPS6594X_H */
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips
2022-08-12 3:22 ` [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips Matt Ranostay
@ 2022-08-12 7:01 ` Lee Jones
2022-08-30 20:09 ` Matt Ranostay
0 siblings, 1 reply; 11+ messages in thread
From: Lee Jones @ 2022-08-12 7:01 UTC (permalink / raw)
To: Matt Ranostay
Cc: nm, j-keerthy, linux-kernel, linux-rtc, devicetree, linux-arm-kernel
On Thu, 11 Aug 2022, Matt Ranostay wrote:
> From: Keerthy <j-keerthy@ti.com>
>
> The TPS6594x chip is a PMIC, and contains the following components:
>
> - Regulators
> - GPIO controller
> - RTC
>
> However initially only RTC is supported.
>
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> Signed-off-by: Matt Ranostay <mranostay@ti.com>
> ---
> drivers/mfd/Kconfig | 14 ++++
> drivers/mfd/Makefile | 1 +
> drivers/mfd/tps6594x.c | 121 +++++++++++++++++++++++++++++++++++
> include/linux/mfd/tps6594x.h | 84 ++++++++++++++++++++++++
> 4 files changed, 220 insertions(+)
> create mode 100644 drivers/mfd/tps6594x.c
> create mode 100644 include/linux/mfd/tps6594x.h
>
> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> index abb58ab1a1a4..4845683ae1d0 100644
> --- a/drivers/mfd/Kconfig
> +++ b/drivers/mfd/Kconfig
> @@ -1547,6 +1547,20 @@ config MFD_TI_LP873X
> This driver can also be built as a module. If so, the module
> will be called lp873x.
>
> +config MFD_TPS6594X
> + tristate "TI TPS6594X Power Management IC"
> + depends on I2C && OF
> + select MFD_CORE
> + select REGMAP_I2C
> + help
> + If you say yes here then you get support for the TPS6594X series of
> + Power Management Integrated Circuits (PMIC).
> + These include voltage regulators, RTS, configurable
> + General Purpose Outputs (GPO) that are used in portable devices.
> +
> + This driver can also be built as a module. If so, the module
> + will be called tps6594x.
> +
> config MFD_TI_LP87565
> tristate "TI LP87565 Power Management IC"
> depends on I2C && OF
> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> index 858cacf659d6..7ff6a8a57d55 100644
> --- a/drivers/mfd/Makefile
> +++ b/drivers/mfd/Makefile
> @@ -105,6 +105,7 @@ obj-$(CONFIG_MFD_TPS65910) += tps65910.o
> obj-$(CONFIG_MFD_TPS65912) += tps65912-core.o
> obj-$(CONFIG_MFD_TPS65912_I2C) += tps65912-i2c.o
> obj-$(CONFIG_MFD_TPS65912_SPI) += tps65912-spi.o
> +obj-$(CONFIG_MFD_TPS6594X) += tps6594x.o
> obj-$(CONFIG_MENELAUS) += menelaus.o
>
> obj-$(CONFIG_TWL4030_CORE) += twl-core.o twl4030-irq.o twl6030-irq.o
> diff --git a/drivers/mfd/tps6594x.c b/drivers/mfd/tps6594x.c
> new file mode 100644
> index 000000000000..ff265b91db3e
> --- /dev/null
> +++ b/drivers/mfd/tps6594x.c
> @@ -0,0 +1,121 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Driver for tps6594x PMIC chips
> + *
> + * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
> + * Author: Keerthy <j-keerthy@ti.com>
> + */
> +
> +#include <linux/of.h>
> +#include <linux/of_device.h>
> +#include <linux/mfd/core.h>
> +#include <linux/mfd/tps6594x.h>
> +#include <linux/module.h>
> +#include <linux/i2c.h>
> +#include <linux/regmap.h>
> +
> +static const struct regmap_config tps6594x_regmap_config = {
> + .reg_bits = 8,
> + .val_bits = 8,
> + .max_register = TPS6594X_REG_MAX,
> +};
> +
> +static const struct mfd_cell tps6594x_cells[] = {
> + { .name = "tps6594x-gpio" },
> + { .name = "tps6594x-regulator" },
> + { .name = "tps6594x-rtc" },
> +};
Where are the device drivers for these?
--
Lee Jones [李琼斯]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips
2022-08-12 7:01 ` Lee Jones
@ 2022-08-30 20:09 ` Matt Ranostay
2022-09-05 14:35 ` Lee Jones
0 siblings, 1 reply; 11+ messages in thread
From: Matt Ranostay @ 2022-08-30 20:09 UTC (permalink / raw)
To: Lee Jones
Cc: nm, j-keerthy, linux-kernel, linux-rtc, devicetree, linux-arm-kernel
On Fri, Aug 12, 2022 at 08:01:04AM +0100, Lee Jones wrote:
> On Thu, 11 Aug 2022, Matt Ranostay wrote:
>
> > From: Keerthy <j-keerthy@ti.com>
> >
> > The TPS6594x chip is a PMIC, and contains the following components:
> >
> > - Regulators
> > - GPIO controller
> > - RTC
> >
> > However initially only RTC is supported.
> >
> > Signed-off-by: Keerthy <j-keerthy@ti.com>
> > Signed-off-by: Matt Ranostay <mranostay@ti.com>
> > ---
> > drivers/mfd/Kconfig | 14 ++++
> > drivers/mfd/Makefile | 1 +
> > drivers/mfd/tps6594x.c | 121 +++++++++++++++++++++++++++++++++++
> > include/linux/mfd/tps6594x.h | 84 ++++++++++++++++++++++++
> > 4 files changed, 220 insertions(+)
> > create mode 100644 drivers/mfd/tps6594x.c
> > create mode 100644 include/linux/mfd/tps6594x.h
> >
> > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> > index abb58ab1a1a4..4845683ae1d0 100644
> > --- a/drivers/mfd/Kconfig
> > +++ b/drivers/mfd/Kconfig
> > @@ -1547,6 +1547,20 @@ config MFD_TI_LP873X
> > This driver can also be built as a module. If so, the module
> > will be called lp873x.
> >
> > +config MFD_TPS6594X
> > + tristate "TI TPS6594X Power Management IC"
> > + depends on I2C && OF
> > + select MFD_CORE
> > + select REGMAP_I2C
> > + help
> > + If you say yes here then you get support for the TPS6594X series of
> > + Power Management Integrated Circuits (PMIC).
> > + These include voltage regulators, RTS, configurable
> > + General Purpose Outputs (GPO) that are used in portable devices.
> > +
> > + This driver can also be built as a module. If so, the module
> > + will be called tps6594x.
> > +
> > config MFD_TI_LP87565
> > tristate "TI LP87565 Power Management IC"
> > depends on I2C && OF
> > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> > index 858cacf659d6..7ff6a8a57d55 100644
> > --- a/drivers/mfd/Makefile
> > +++ b/drivers/mfd/Makefile
> > @@ -105,6 +105,7 @@ obj-$(CONFIG_MFD_TPS65910) += tps65910.o
> > obj-$(CONFIG_MFD_TPS65912) += tps65912-core.o
> > obj-$(CONFIG_MFD_TPS65912_I2C) += tps65912-i2c.o
> > obj-$(CONFIG_MFD_TPS65912_SPI) += tps65912-spi.o
> > +obj-$(CONFIG_MFD_TPS6594X) += tps6594x.o
> > obj-$(CONFIG_MENELAUS) += menelaus.o
> >
> > obj-$(CONFIG_TWL4030_CORE) += twl-core.o twl4030-irq.o twl6030-irq.o
> > diff --git a/drivers/mfd/tps6594x.c b/drivers/mfd/tps6594x.c
> > new file mode 100644
> > index 000000000000..ff265b91db3e
> > --- /dev/null
> > +++ b/drivers/mfd/tps6594x.c
> > @@ -0,0 +1,121 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later
> > +/*
> > + * Driver for tps6594x PMIC chips
> > + *
> > + * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
> > + * Author: Keerthy <j-keerthy@ti.com>
> > + */
> > +
> > +#include <linux/of.h>
> > +#include <linux/of_device.h>
> > +#include <linux/mfd/core.h>
> > +#include <linux/mfd/tps6594x.h>
> > +#include <linux/module.h>
> > +#include <linux/i2c.h>
> > +#include <linux/regmap.h>
> > +
> > +static const struct regmap_config tps6594x_regmap_config = {
> > + .reg_bits = 8,
> > + .val_bits = 8,
> > + .max_register = TPS6594X_REG_MAX,
> > +};
> > +
> > +static const struct mfd_cell tps6594x_cells[] = {
> > + { .name = "tps6594x-gpio" },
> > + { .name = "tps6594x-regulator" },
> > + { .name = "tps6594x-rtc" },
> > +};
>
> Where are the device drivers for these?
>
They currently don't exist. Would these need to be merged/developed
before the acceptance of the mfd driver?
- Matt
> --
> Lee Jones [李琼斯]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips
2022-08-30 20:09 ` Matt Ranostay
@ 2022-09-05 14:35 ` Lee Jones
0 siblings, 0 replies; 11+ messages in thread
From: Lee Jones @ 2022-09-05 14:35 UTC (permalink / raw)
To: Matt Ranostay
Cc: nm, j-keerthy, linux-kernel, linux-rtc, devicetree, linux-arm-kernel
On Tue, 30 Aug 2022, Matt Ranostay wrote:
> On Fri, Aug 12, 2022 at 08:01:04AM +0100, Lee Jones wrote:
> > On Thu, 11 Aug 2022, Matt Ranostay wrote:
> >
> > > From: Keerthy <j-keerthy@ti.com>
> > >
> > > The TPS6594x chip is a PMIC, and contains the following components:
> > >
> > > - Regulators
> > > - GPIO controller
> > > - RTC
> > >
> > > However initially only RTC is supported.
> > >
> > > Signed-off-by: Keerthy <j-keerthy@ti.com>
> > > Signed-off-by: Matt Ranostay <mranostay@ti.com>
> > > ---
> > > drivers/mfd/Kconfig | 14 ++++
> > > drivers/mfd/Makefile | 1 +
> > > drivers/mfd/tps6594x.c | 121 +++++++++++++++++++++++++++++++++++
> > > include/linux/mfd/tps6594x.h | 84 ++++++++++++++++++++++++
> > > 4 files changed, 220 insertions(+)
> > > create mode 100644 drivers/mfd/tps6594x.c
> > > create mode 100644 include/linux/mfd/tps6594x.h
> > >
> > > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
> > > index abb58ab1a1a4..4845683ae1d0 100644
> > > --- a/drivers/mfd/Kconfig
> > > +++ b/drivers/mfd/Kconfig
> > > @@ -1547,6 +1547,20 @@ config MFD_TI_LP873X
> > > This driver can also be built as a module. If so, the module
> > > will be called lp873x.
> > >
> > > +config MFD_TPS6594X
> > > + tristate "TI TPS6594X Power Management IC"
> > > + depends on I2C && OF
> > > + select MFD_CORE
> > > + select REGMAP_I2C
> > > + help
> > > + If you say yes here then you get support for the TPS6594X series of
> > > + Power Management Integrated Circuits (PMIC).
> > > + These include voltage regulators, RTS, configurable
> > > + General Purpose Outputs (GPO) that are used in portable devices.
> > > +
> > > + This driver can also be built as a module. If so, the module
> > > + will be called tps6594x.
> > > +
> > > config MFD_TI_LP87565
> > > tristate "TI LP87565 Power Management IC"
> > > depends on I2C && OF
> > > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
> > > index 858cacf659d6..7ff6a8a57d55 100644
> > > --- a/drivers/mfd/Makefile
> > > +++ b/drivers/mfd/Makefile
> > > @@ -105,6 +105,7 @@ obj-$(CONFIG_MFD_TPS65910) += tps65910.o
> > > obj-$(CONFIG_MFD_TPS65912) += tps65912-core.o
> > > obj-$(CONFIG_MFD_TPS65912_I2C) += tps65912-i2c.o
> > > obj-$(CONFIG_MFD_TPS65912_SPI) += tps65912-spi.o
> > > +obj-$(CONFIG_MFD_TPS6594X) += tps6594x.o
> > > obj-$(CONFIG_MENELAUS) += menelaus.o
> > >
> > > obj-$(CONFIG_TWL4030_CORE) += twl-core.o twl4030-irq.o twl6030-irq.o
> > > diff --git a/drivers/mfd/tps6594x.c b/drivers/mfd/tps6594x.c
> > > new file mode 100644
> > > index 000000000000..ff265b91db3e
> > > --- /dev/null
> > > +++ b/drivers/mfd/tps6594x.c
> > > @@ -0,0 +1,121 @@
> > > +// SPDX-License-Identifier: GPL-2.0-or-later
> > > +/*
> > > + * Driver for tps6594x PMIC chips
> > > + *
> > > + * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
> > > + * Author: Keerthy <j-keerthy@ti.com>
> > > + */
> > > +
> > > +#include <linux/of.h>
> > > +#include <linux/of_device.h>
> > > +#include <linux/mfd/core.h>
> > > +#include <linux/mfd/tps6594x.h>
> > > +#include <linux/module.h>
> > > +#include <linux/i2c.h>
> > > +#include <linux/regmap.h>
> > > +
> > > +static const struct regmap_config tps6594x_regmap_config = {
> > > + .reg_bits = 8,
> > > + .val_bits = 8,
> > > + .max_register = TPS6594X_REG_MAX,
> > > +};
> > > +
> > > +static const struct mfd_cell tps6594x_cells[] = {
> > > + { .name = "tps6594x-gpio" },
> > > + { .name = "tps6594x-regulator" },
> > > + { .name = "tps6594x-rtc" },
> > > +};
> >
> > Where are the device drivers for these?
> >
>
> They currently don't exist. Would these need to be merged/developed
> before the acceptance of the mfd driver?
Yes, they would.
--
Lee Jones [李琼斯]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 3/6] rtc: rtc-tps6594x: Add support for TPS6594X PMIC RTC
2022-08-12 3:22 [PATCH v2 0/6] mfd: add tps6594x support for Jacinto platform Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 1/6] Documentation: tps6594x: Add DT bindings for the TPS6594x PMIC Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 2/6] MFD: TPS6594x: Add new PMIC device driver for TPS6594x chips Matt Ranostay
@ 2022-08-12 3:22 ` Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 4/6] arm64: dts: ti: k3-j7200-common-proc-board: Add TPS6594x PMIC node Matt Ranostay
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Matt Ranostay @ 2022-08-12 3:22 UTC (permalink / raw)
To: nm, j-keerthy, lee
Cc: linux-kernel, linux-rtc, devicetree, linux-arm-kernel, Matt Ranostay
From: Keerthy <j-keerthy@ti.com>
Add support for TPS6594X PMIC RTC. However, currently only get/set of
time + date functionality is supported..
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Matt Ranostay <mranostay@ti.com>
---
drivers/rtc/Kconfig | 10 ++
drivers/rtc/Makefile | 1 +
drivers/rtc/rtc-tps6594x.c | 181 +++++++++++++++++++++++++++++++++++++
3 files changed, 192 insertions(+)
create mode 100644 drivers/rtc/rtc-tps6594x.c
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index b8de25118ad0..df8e78eed5fb 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -593,6 +593,16 @@ config RTC_DRV_TPS65910
This driver can also be built as a module. If so, the module
will be called rtc-tps65910.
+config RTC_DRV_TPS6594X
+ tristate "TI TPS6594X RTC driver"
+ depends on MFD_TPS6594X
+ help
+ If you say yes here you get support for the RTC of TI TPS6594X series PMIC
+ chips.
+
+ This driver can also be built as a module. If so, the module
+ will be called rtc-tps6594x.
+
config RTC_DRV_RC5T583
tristate "RICOH 5T583 RTC driver"
depends on MFD_RC5T583
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index aab22bc63432..d854e162275a 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -177,6 +177,7 @@ obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o
obj-$(CONFIG_RTC_DRV_TI_K3) += rtc-ti-k3.o
obj-$(CONFIG_RTC_DRV_TPS6586X) += rtc-tps6586x.o
obj-$(CONFIG_RTC_DRV_TPS65910) += rtc-tps65910.o
+obj-$(CONFIG_RTC_DRV_TPS6594X) += rtc-tps6594x.o
obj-$(CONFIG_RTC_DRV_TWL4030) += rtc-twl.o
obj-$(CONFIG_RTC_DRV_V3020) += rtc-v3020.o
obj-$(CONFIG_RTC_DRV_VT8500) += rtc-vt8500.o
diff --git a/drivers/rtc/rtc-tps6594x.c b/drivers/rtc/rtc-tps6594x.c
new file mode 100644
index 000000000000..e9f904d0a769
--- /dev/null
+++ b/drivers/rtc/rtc-tps6594x.c
@@ -0,0 +1,181 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * rtc-tps6594x.c -- TPS6594x Real Time Clock driver.
+ *
+ * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com
+ *
+ * TODO: alarm support
+ */
+
+#include <linux/bcd.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/mfd/tps6594x.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/rtc.h>
+#include <linux/types.h>
+#include <linux/platform_device.h>
+#include <linux/regmap.h>
+
+struct tps6594x_rtc {
+ struct rtc_device *rtc;
+ struct device *dev;
+};
+
+#define TPS6594X_NUM_TIME_REGS (TPS6594X_RTC_YEARS - TPS6594X_RTC_SECONDS + 1)
+
+static int tps6594x_rtc_read_time(struct device *dev, struct rtc_time *tm)
+{
+ unsigned char rtc_data[TPS6594X_NUM_TIME_REGS];
+ struct tps6594x *tps6594x = dev_get_drvdata(dev->parent);
+ int ret;
+
+ /* Reset TPS6594X_RTC_CTRL_REG_GET_TIME bit to zero, required for latch */
+ ret = regmap_update_bits(tps6594x->regmap, TPS6594X_RTC_CTRL_1,
+ TPS6594X_RTC_CTRL_REG_GET_TIME, 0);
+ if (ret < 0) {
+ dev_err(dev, "RTC CTRL reg update failed, err: %d\n", ret);
+ return ret;
+ }
+
+ /* Copy RTC counting registers to static registers or latches */
+ ret = regmap_update_bits(tps6594x->regmap, TPS6594X_RTC_CTRL_1,
+ TPS6594X_RTC_CTRL_REG_GET_TIME, TPS6594X_RTC_CTRL_REG_GET_TIME);
+ if (ret < 0) {
+ dev_err(dev, "RTC CTRL reg update failed, err: %d\n", ret);
+ return ret;
+ }
+
+ ret = regmap_bulk_read(tps6594x->regmap, TPS6594X_RTC_SECONDS,
+ rtc_data, TPS6594X_NUM_TIME_REGS);
+ if (ret < 0) {
+ dev_err(dev, "RTC_SECONDS reg read failed, err = %d\n", ret);
+ return ret;
+ }
+
+ tm->tm_sec = bcd2bin(rtc_data[0]);
+ tm->tm_min = bcd2bin(rtc_data[1]);
+ tm->tm_hour = bcd2bin(rtc_data[2]);
+ tm->tm_mday = bcd2bin(rtc_data[3]);
+ tm->tm_mon = bcd2bin(rtc_data[4]) - 1;
+ tm->tm_year = bcd2bin(rtc_data[5]) + 100;
+
+ return ret;
+}
+
+static int tps6594x_rtc_set_time(struct device *dev, struct rtc_time *tm)
+{
+ unsigned char rtc_data[TPS6594X_NUM_TIME_REGS];
+ struct tps6594x *tps6594x = dev_get_drvdata(dev->parent);
+ int ret, retries = 5;
+ unsigned int val;
+
+ rtc_data[0] = bin2bcd(tm->tm_sec);
+ rtc_data[1] = bin2bcd(tm->tm_min);
+ rtc_data[2] = bin2bcd(tm->tm_hour);
+ rtc_data[3] = bin2bcd(tm->tm_mday);
+ rtc_data[4] = bin2bcd(tm->tm_mon + 1);
+ rtc_data[5] = bin2bcd(tm->tm_year - 100);
+
+ /* Stop RTC while updating the RTC time registers */
+ ret = regmap_update_bits(tps6594x->regmap, TPS6594X_RTC_CTRL_1,
+ TPS6594X_RTC_CTRL_REG_STOP_RTC, 0);
+ if (ret < 0) {
+ dev_err(dev, "RTC stop failed, err = %d\n", ret);
+ return ret;
+ }
+
+ /* Waiting till RTC isn't running */
+ do {
+ ret = regmap_read(tps6594x->regmap, TPS6594X_RTC_STATUS, &val);
+ if (ret < 0) {
+ dev_err(dev, "RTC_STATUS reg read failed, err = %d\n", ret);
+ return ret;
+ }
+ msleep(20);
+ } while (--retries && (val & TPS6594X_RTC_STATUS_RUN));
+
+ if (!retries) {
+ dev_err(dev, "RTC_STATUS is still RUNNING\n");
+ return -ETIMEDOUT;
+ }
+
+ ret = regmap_bulk_write(tps6594x->regmap, TPS6594X_RTC_SECONDS,
+ rtc_data, TPS6594X_NUM_TIME_REGS);
+ if (ret < 0) {
+ dev_err(dev, "RTC_SECONDS reg write failed, err = %d\n", ret);
+ return ret;
+ }
+
+ /* Start back RTC */
+ ret = regmap_update_bits(tps6594x->regmap, TPS6594X_RTC_CTRL_1,
+ TPS6594X_RTC_CTRL_REG_STOP_RTC,
+ TPS6594X_RTC_CTRL_REG_STOP_RTC);
+ if (ret < 0)
+ dev_err(dev, "RTC start failed, err = %d\n", ret);
+
+ return ret;
+}
+
+static const struct rtc_class_ops tps6594x_rtc_ops = {
+ .read_time = tps6594x_rtc_read_time,
+ .set_time = tps6594x_rtc_set_time,
+};
+
+static int tps6594x_rtc_probe(struct platform_device *pdev)
+{
+ struct tps6594x *tps6594x = dev_get_drvdata(pdev->dev.parent);
+ struct tps6594x_rtc *tps6594x_rtc = NULL;
+ int ret;
+
+ tps6594x_rtc = devm_kzalloc(&pdev->dev, sizeof(struct tps6594x_rtc), GFP_KERNEL);
+ if (!tps6594x_rtc)
+ return -ENOMEM;
+
+ tps6594x_rtc->dev = &pdev->dev;
+ platform_set_drvdata(pdev, tps6594x_rtc);
+
+ /* Start RTC */
+ ret = regmap_update_bits(tps6594x->regmap, TPS6594X_RTC_CTRL_1,
+ TPS6594X_RTC_CTRL_REG_STOP_RTC,
+ TPS6594X_RTC_CTRL_REG_STOP_RTC);
+ if (ret < 0) {
+ dev_err(&pdev->dev, "RTC_CTRL write failed, err = %d\n", ret);
+ return ret;
+ }
+
+ tps6594x_rtc->rtc = devm_rtc_device_register(&pdev->dev, pdev->name,
+ &tps6594x_rtc_ops, THIS_MODULE);
+ if (IS_ERR(tps6594x_rtc->rtc)) {
+ ret = PTR_ERR(tps6594x_rtc->rtc);
+ dev_err(&pdev->dev, "RTC register failed, err = %d\n", ret);
+ return ret;
+ }
+
+ return 0;
+}
+
+#ifdef CONFIG_OF
+static const struct of_device_id of_tps6594x_rtc_match[] = {
+ { .compatible = "ti,tps6594x-rtc", },
+ {},
+};
+MODULE_DEVICE_TABLE(of, of_tps6594x_rtc_match);
+#endif
+
+static struct platform_driver tps6594x_rtc_driver = {
+ .probe = tps6594x_rtc_probe,
+ .driver = {
+ .name = "tps6594x-rtc",
+ .of_match_table = of_match_ptr(of_tps6594x_rtc_match),
+ },
+};
+
+module_platform_driver(tps6594x_rtc_driver);
+
+MODULE_ALIAS("platform:tps6594x_rtc");
+MODULE_DESCRIPTION("TI TPS6594x series RTC driver");
+MODULE_AUTHOR("Keerthy J <j-keerthy@ti.com>");
+MODULE_LICENSE("GPL");
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/6] arm64: dts: ti: k3-j7200-common-proc-board: Add TPS6594x PMIC node
2022-08-12 3:22 [PATCH v2 0/6] mfd: add tps6594x support for Jacinto platform Matt Ranostay
` (2 preceding siblings ...)
2022-08-12 3:22 ` [PATCH v2 3/6] rtc: rtc-tps6594x: Add support for TPS6594X PMIC RTC Matt Ranostay
@ 2022-08-12 3:22 ` Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 5/6] arm64: dts: ti: k3-j721e-common-proc-board: " Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 6/6] arm64: dts: ti: k3-j721s2-common-proc-board: " Matt Ranostay
5 siblings, 0 replies; 11+ messages in thread
From: Matt Ranostay @ 2022-08-12 3:22 UTC (permalink / raw)
To: nm, j-keerthy, lee; +Cc: linux-kernel, linux-rtc, devicetree, linux-arm-kernel
From: Keerthy <j-keerthy@ti.com>
Add TPS6594x PMIC + RTC definition for J7200 common processor board
device tree.
Signed-off-by: Keerthy <j-keerthy@ti.com>
---
.../boot/dts/ti/k3-j7200-common-proc-board.dts | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
index 121975dc8239..6deab4f9a04b 100644
--- a/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts
@@ -353,3 +353,19 @@ &pcie1_ep {
num-lanes = <2>;
status = "disabled";
};
+
+&wkup_i2c0 {
+ status = "okay";
+};
+
+&wkup_i2c0 {
+ tps6594x: tps6594x@48 {
+ compatible = "ti,tps6594x";
+ reg = <0x48>;
+ ti,system-power-controller;
+
+ rtc {
+ compatible = "ti,tps6594x-rtc";
+ };
+ };
+};
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 5/6] arm64: dts: ti: k3-j721e-common-proc-board: Add TPS6594x PMIC node
2022-08-12 3:22 [PATCH v2 0/6] mfd: add tps6594x support for Jacinto platform Matt Ranostay
` (3 preceding siblings ...)
2022-08-12 3:22 ` [PATCH v2 4/6] arm64: dts: ti: k3-j7200-common-proc-board: Add TPS6594x PMIC node Matt Ranostay
@ 2022-08-12 3:22 ` Matt Ranostay
2022-08-12 3:22 ` [PATCH v2 6/6] arm64: dts: ti: k3-j721s2-common-proc-board: " Matt Ranostay
5 siblings, 0 replies; 11+ messages in thread
From: Matt Ranostay @ 2022-08-12 3:22 UTC (permalink / raw)
To: nm, j-keerthy, lee
Cc: linux-kernel, linux-rtc, devicetree, linux-arm-kernel, Matt Ranostay
Add TPS6594x PMIC + RTC definition for j721e common processor board
device tree.
Signed-off-by: Matt Ranostay <mranostay@ti.com>
---
.../boot/dts/ti/k3-j721e-common-proc-board.dts | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
index b1691ac3442d..f7b8b40993bd 100644
--- a/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
@@ -995,3 +995,19 @@ &main_mcan12 {
&main_mcan13 {
status = "disabled";
};
+
+&wkup_i2c0 {
+ status = "okay";
+};
+
+&wkup_i2c0 {
+ tps6594x: tps6594x@48 {
+ compatible = "ti,tps6594x";
+ reg = <0x48>;
+ ti,system-power-controller;
+
+ rtc {
+ compatible = "ti,tps6594x-rtc";
+ };
+ };
+};
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 6/6] arm64: dts: ti: k3-j721s2-common-proc-board: Add TPS6594x PMIC node
2022-08-12 3:22 [PATCH v2 0/6] mfd: add tps6594x support for Jacinto platform Matt Ranostay
` (4 preceding siblings ...)
2022-08-12 3:22 ` [PATCH v2 5/6] arm64: dts: ti: k3-j721e-common-proc-board: " Matt Ranostay
@ 2022-08-12 3:22 ` Matt Ranostay
5 siblings, 0 replies; 11+ messages in thread
From: Matt Ranostay @ 2022-08-12 3:22 UTC (permalink / raw)
To: nm, j-keerthy, lee
Cc: linux-kernel, linux-rtc, devicetree, linux-arm-kernel, Matt Ranostay
Add TPS6594x PMIC + RTC definition for j721s2 common processor board
device tree.
Signed-off-by: Matt Ranostay <mranostay@ti.com>
---
.../boot/dts/ti/k3-j721s2-common-proc-board.dts | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
index b210cc07c539..0156a700f5df 100644
--- a/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-j721s2-common-proc-board.dts
@@ -429,3 +429,19 @@ &main_mcan15 {
&main_mcan17 {
status = "disabled";
};
+
+&wkup_i2c0 {
+ status = "okay";
+};
+
+&wkup_i2c0 {
+ tps6594x: tps6594x@48 {
+ compatible = "ti,tps6594x";
+ reg = <0x48>;
+ ti,system-power-controller;
+
+ rtc {
+ compatible = "ti,tps6594x-rtc";
+ };
+ };
+};
--
2.36.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread