Skip to contentSkip to conversation

Add Richtek RT9756 Smart-Cap divider charger

PATCH Superseded [email protected] 2 participants 5 messages Jul 31, 2025

Subsystems (2)

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add Richtek RT9756 Smart-Cap divider charger

From: ChiYuan Huang <[email protected]>

This patch series adds support for RT9756 charger.

V2
- Add reference to 'power-supply.yaml'
- Remove 'wakeup-source' from required property list
- Use 'unevaluatedProperties' to replace 'additionalProperties'

ChiYuan Huang (3):
dt-bindings: power: supply: Add Richtek RT9756 smart cap divider
charger
power: supply: rt9756: Add Richtek RT9756 smart cap divider charger
Documentation: power: rt9756: Document exported sysfs entries

 .../ABI/testing/sysfs-class-power-rt9756      |  52 +
 .../bindings/power/supply/richtek,rt9756.yaml |  72 ++
 drivers/power/supply/Kconfig                  |  15 +
 drivers/power/supply/Makefile                 |   1 +
 drivers/power/supply/rt9756.c                 | 932 ++++++++++++++++++
 5 files changed, 1072 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-class-power-rt9756
 create mode 100644 Documentation/devicetree/bindings/power/supply/richtek,rt9756.yaml
 create mode 100644 drivers/power/supply/rt9756.c

base-commit: 038d61fd642278bab63ee8ef722c50d10ab01e8f

Signature · 1 line
2.34.1
#1 lore raw

PATCH v2 1/3 dt-bindings: power: supply: Add Richtek RT9756 smart cap divider charger

From: ChiYuan Huang <[email protected]>

Add the document for Richtek RT9756 smart cap divider charger.

---
V2
- Add reference to 'power-supply.yaml'
- Remove 'wakeup-source' from required property list
- Use 'unevaluatedProperties' to replace 'additionalProperties'

---
 .../bindings/power/supply/richtek,rt9756.yaml | 72 +++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/richtek,rt9756.yaml
Documentation/devicetree/bindings/power/supply/richtek,rt9756.yaml new file +72 -0
new file mode 100644
index 000000000000..a88bf6cd1927
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/supply/richtek,rt9756.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Richtek RT9756 Smart Cap Divider Charger
+
+maintainers:
+  - ChiYuan Huang <[email protected]>
+
+description: |
+  The RT9756/RT9757 is a high efficiency and high charge current charger.
+
+  The efficiency is up to 98.2% when VBAT = 4V, IBAT = 2A in DIV2 mode and 99.1%
+  when VBAT=4V, IBAT=1A in bypass mode. The maximum charger current is up to 8A
+  in DIV2 mode and 5A in bypass mode. The device integrates smart cap divider
+  topology, direct charging mode, external over-voltage protection control, an
+  input reverse blocking NFET and 2-way regulation, a dual phase charge pump
+  core, 8-Channel high speed ADCs and USB BC 1.2 detection.
+
+  RT9770 is almost the same with RT9756/57, only BC 1.2 detection function is
+  removed to shrink the die size.
+
+allOf:
+  - $ref: power-supply.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - richtek,rt9756
+          - richtek,rt9770
+      - items:
+          - enum:
+              - richtek,rt9757
+          - const: richtek,rt9756
+
+  reg:
+    maxItems: 1
+
+  wakeup-source: true
+
+  interrupts:
+    maxItems: 1
+
+  shunt-resistor-micro-ohms:
+    description: Battery current sense resistor mounted.
+    default: 2000
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      charger@6f {
+        compatible = "richtek,rt9756";
+        reg = <0x6f>;
+        wakeup-source;
+        interrupts-extended = <&gpio_intc 32 IRQ_TYPE_EDGE_FALLING>;
+        shunt-resistor-micro-ohms = <5000>;
+      };
+    };
Signature · 1 line
2.34.1
Reviewed-by on v2 1/3
#2 lore raw

Re: [PATCH v2 1/3] dt-bindings: power: supply: Add Richtek RT9756 smart cap divider charger

Quoted 10 lines · On Thu, Jul 31, 2025 at 01:48:16PM +0800, [email protected] wrote:

From: ChiYuan Huang <[email protected]>

Add the document for Richtek RT9756 smart cap divider charger.

---
V2
- Add reference to 'power-supply.yaml'
- Remove 'wakeup-source' from required property list
- Use 'unevaluatedProperties' to replace 'additionalProperties'

Quoted 4 lines
---
 .../bindings/power/supply/richtek,rt9756.yaml | 72 +++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/supply/richtek,rt9756.yaml

Best regards,
Krzysztof

#3 lore raw

PATCH v2 2/3 power: supply: rt9756: Add Richtek RT9756 smart cap divider charger

In reply to [email protected]

From: ChiYuan Huang <[email protected]>

Add support for RT9756 smart cap divider charger.

The RT9759 is a high efficiency and high charge current charger. The maximum charge current is up to 8A. It integrates a dual-phase charge pump core with ADC monitoring.

---
 drivers/power/supply/Kconfig  |  15 +
 drivers/power/supply/Makefile |   1 +
 drivers/power/supply/rt9756.c | 932 ++++++++++++++++++++++++++++++++++
 3 files changed, 948 insertions(+)
 create mode 100644 drivers/power/supply/rt9756.c
drivers/power/supply/Kconfig +15 -0
index 79ddb006e2da..aff192474140 100644
@@ -909,6 +909,21 @@ config CHARGER_RT9471
 	  This driver can also be built as a module. If so, the module will be
 	  called rt9471.
 
+config CHARGER_RT9756
+	tristate "Richtek RT9756 smart cap divider charger driver"
+	depends on I2C
+	select REGMAP_I2C
+	select LINEAR_RANGES
+	help
+	  This adds support for Richtek RT9756 smart cap divider charger driver.
+	  It's a high efficiency and high charge current charger. the device
+	  integrates smart cap divider topology with 9-channel high speed
+	  ADCs that can provide input and output voltage, current and
+	  temperature monitoring.
+
+	  This driver can also be built as a module. If so, the module will be
+	  called rt9756.
+
 config CHARGER_CROS_USBPD
 	tristate "ChromeOS EC based USBPD charger"
 	depends on CROS_USBPD_NOTIFY
drivers/power/supply/Makefile +1 -0
index 4f5f8e3507f8..a529f217f0ad 100644
@@ -62,6 +62,7 @@ obj-$(CONFIG_CHARGER_RT5033)	+= rt5033_charger.o
 obj-$(CONFIG_CHARGER_RT9455)	+= rt9455_charger.o
 obj-$(CONFIG_CHARGER_RT9467)	+= rt9467-charger.o
 obj-$(CONFIG_CHARGER_RT9471)	+= rt9471.o
+obj-$(CONFIG_CHARGER_RT9756)	+= rt9756.o
 obj-$(CONFIG_BATTERY_TWL4030_MADC)	+= twl4030_madc_battery.o
 obj-$(CONFIG_CHARGER_88PM860X)	+= 88pm860x_charger.o
 obj-$(CONFIG_BATTERY_RX51)	+= rx51_battery.o
drivers/power/supply/rt9756.c new file +932 -0

932 lines not on this page · raw message

Signature · 1 line
2.34.1
#4 lore raw

PATCH v2 3/3 Documentation: power: rt9756: Document exported sysfs entries

In reply to [email protected]

From: ChiYuan Huang <[email protected]>

Document the settings exported by rt9756 charger driver through sysfs entries:

- watchdog_timer
- battery_voltage
- battery_current
- operation_mode

---
 .../ABI/testing/sysfs-class-power-rt9756      | 52 +++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-class-power-rt9756
Documentation/ABI/testing/sysfs-class-power-rt9756 new file +52 -0
new file mode 100644
index 000000000000..2d0f7ef1b855
@@ -0,0 +1,52 @@
+What:		/sys/class/power_supply/rt9756-*/watchdog_timer
+Date:		Aug 2025
+KernelVersion:	6.17
+Contact:	ChiYuan Huang <[email protected]>
+Description:
+		This entry shows and sets the watchdog timer when rt9756 charger
+		operates in charging mode. When the timer expires, the device
+		will disable the charging. To prevent the timer expires, any
+		host communication can make the timer restarted.
+
+		Access: Read, Write
+
+		Valid values:
+		- 500, 1000, 5000, 30000, 40000, 80000, 128000 or 255000 (milliseconds),
+		- 0: disabled
+
+What:		/sys/class/power_supply/rt9756-*/battery_voltage
+Date:		Aug 2025
+KernelVersion:	6.17
+Contact:	ChiYuan Huang <[email protected]>
+Description:
+		Reports the current BAT voltage.
+
+		Access: Read-Only
+
+		Valid values: Represented in microvolts
+
+What:		/sys/class/power_supply/rt9756-*/battery_current
+Date:		Aug 2025
+KernelVersion:	6.17
+Contact:	ChiYuan Huang <[email protected]>
+Description:
+		Reports the current BAT current.
+
+		Access: Read-Only
+
+		Valid values: Represented in microamps
+
+What:		/sys/class/power_supply/rt9756-*/operation_mode
+Date:		Aug 2025
+KernelVersion:	6.17
+Contact:	ChiYuan Huang <[email protected]>
+Description:
+		This entry shows and set the operation mode when rt9756 charger
+		operates in charging phase. If 'bypass' mode is used, internal
+		path will connect vbus directly to vbat. Else, default 'div2'
+		mode for the switch-cap charging.
+
+		Access: Read, Write
+
+		Valid values:
+		- 'bypass' or 'div2'
Signature · 1 line
2.34.1