1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/power/supply/gpio-charger.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: simple battery chargers only communicating through GPIOs 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Sebastian Reichel <sre@kernel.org> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: 13*4882a593Smuzhiyun This binding is for all chargers, which are working more or less 14*4882a593Smuzhiyun autonomously, only providing some status GPIOs and possibly some 15*4882a593Smuzhiyun GPIOs for limited control over the charging process. 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunproperties: 18*4882a593Smuzhiyun compatible: 19*4882a593Smuzhiyun const: gpio-charger 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun charger-type: 22*4882a593Smuzhiyun enum: 23*4882a593Smuzhiyun - unknown 24*4882a593Smuzhiyun - battery 25*4882a593Smuzhiyun - ups 26*4882a593Smuzhiyun - mains 27*4882a593Smuzhiyun - usb-sdp # USB standard downstream port 28*4882a593Smuzhiyun - usb-dcp # USB dedicated charging port 29*4882a593Smuzhiyun - usb-cdp # USB charging downstream port 30*4882a593Smuzhiyun - usb-aca # USB accessory charger adapter 31*4882a593Smuzhiyun description: 32*4882a593Smuzhiyun Type of the charger, e.g. "mains" for a wall charger. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun gpios: 35*4882a593Smuzhiyun maxItems: 1 36*4882a593Smuzhiyun description: GPIO indicating the charger presence 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun charge-status-gpios: 39*4882a593Smuzhiyun maxItems: 1 40*4882a593Smuzhiyun description: GPIO indicating the charging status 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun charge-current-limit-gpios: 43*4882a593Smuzhiyun minItems: 1 44*4882a593Smuzhiyun maxItems: 32 45*4882a593Smuzhiyun description: GPIOs used for current limiting 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun charge-current-limit-mapping: 48*4882a593Smuzhiyun description: List of tuples with current in uA and a GPIO bitmap (in 49*4882a593Smuzhiyun this order). The tuples must be provided in descending order of the 50*4882a593Smuzhiyun current limit. 51*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/uint32-matrix 52*4882a593Smuzhiyun items: 53*4882a593Smuzhiyun items: 54*4882a593Smuzhiyun - description: 55*4882a593Smuzhiyun Current limit in uA 56*4882a593Smuzhiyun - description: 57*4882a593Smuzhiyun Encoded GPIO setting. Bit 0 represents last GPIO from the 58*4882a593Smuzhiyun charge-current-limit-gpios property. Bit 1 second to last 59*4882a593Smuzhiyun GPIO and so on. 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunrequired: 62*4882a593Smuzhiyun - compatible 63*4882a593Smuzhiyun 64*4882a593SmuzhiyunanyOf: 65*4882a593Smuzhiyun - required: 66*4882a593Smuzhiyun - gpios 67*4882a593Smuzhiyun - required: 68*4882a593Smuzhiyun - charge-status-gpios 69*4882a593Smuzhiyun - required: 70*4882a593Smuzhiyun - charge-current-limit-gpios 71*4882a593Smuzhiyun 72*4882a593Smuzhiyundependencies: 73*4882a593Smuzhiyun charge-current-limit-gpios: [ charge-current-limit-mapping ] 74*4882a593Smuzhiyun charge-current-limit-mapping: [ charge-current-limit-gpios ] 75*4882a593Smuzhiyun 76*4882a593SmuzhiyunadditionalProperties: false 77*4882a593Smuzhiyun 78*4882a593Smuzhiyunexamples: 79*4882a593Smuzhiyun - | 80*4882a593Smuzhiyun #include <dt-bindings/gpio/gpio.h> 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun charger { 83*4882a593Smuzhiyun compatible = "gpio-charger"; 84*4882a593Smuzhiyun charger-type = "usb-sdp"; 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun gpios = <&gpd 28 GPIO_ACTIVE_LOW>; 87*4882a593Smuzhiyun charge-status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun charge-current-limit-gpios = <&gpioA 11 GPIO_ACTIVE_HIGH>, 90*4882a593Smuzhiyun <&gpioA 12 GPIO_ACTIVE_HIGH>; 91*4882a593Smuzhiyun charge-current-limit-mapping = <2500000 0x00>, // 2.5 A => both GPIOs low 92*4882a593Smuzhiyun <700000 0x01>, // 700 mA => GPIO A.12 high 93*4882a593Smuzhiyun <0 0x02>; // 0 mA => GPIO A.11 high 94*4882a593Smuzhiyun }; 95