Add Richtek RT9756 Smart-Cap divider charger
Subsystems (2)
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
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
@@ -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
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.
Signed-off-by ChiYuan Huang <[email protected]>---
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
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
@@ -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
@@ -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
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
@@ -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