Based on kernel version 6.11
. Page generated on 2024-09-24 08:21 EST
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | # SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Generic PWM Regulator maintainers: - Brian Norris <briannorris@chromium.org> - Lee Jones <lee@kernel.org> - Alexandre Courbot <acourbot@nvidia.com> description: | Currently supports 2 modes of operation: Voltage Table: When in this mode, a voltage table (See below) of predefined voltage <=> duty-cycle values must be provided via DT. Limitations are that the regulator can only operate at the voltages supplied in the table. Intermediary duty-cycle values which would normally allow finer grained voltage selection are ignored and rendered useless. Although more control is given to the user if the assumptions made in continuous-voltage mode do not reign true. Continuous Voltage: This mode uses the regulator's maximum and minimum supplied voltages specified in the regulator-{min,max}-microvolt properties to calculate appropriate duty-cycle values. This allows for a much more fine grained solution when compared with voltage-table mode above. This solution does make an assumption that a %50 duty-cycle value will cause the regulator voltage to run at half way between the supplied max_uV and min_uV values. If voltage-table is provided, then the device will be used in Voltage Table Mode. If no voltage-table is provided, then the device will be used in Continuous Voltage Mode. allOf: - $ref: regulator.yaml# properties: compatible: const: pwm-regulator pwms: maxItems: 1 voltage-table: description: Voltage and Duty-Cycle table. $ref: /schemas/types.yaml#/definitions/uint32-matrix items: items: - description: voltage in microvolts (uV) - description: duty-cycle in percent (%) enable-gpios: description: Regulator enable GPIO maxItems: 1 # Optional properties for Continuous mode: pwm-dutycycle-unit: description: Integer value encoding the duty cycle unit. If not defined, <100> is assumed, meaning that pwm-dutycycle-range contains values expressed in percent. $ref: /schemas/types.yaml#/definitions/uint32 default: 100 pwm-dutycycle-range: description: Should contain 2 entries. The first entry is encoding the dutycycle for regulator-min-microvolt and the second one the dutycycle for regulator-max-microvolt. Duty cycle values are expressed in pwm-dutycycle-unit. If not defined, <0 100> is assumed. $ref: /schemas/types.yaml#/definitions/uint32-array items: - description: the dutycycle for regulator-min-microvolt - description: the dutycycle for regulator-max-microvolt default: [ 0 100 ] required: - compatible - pwms unevaluatedProperties: false examples: - | #include <dt-bindings/gpio/gpio.h> // Continuous Voltage With Enable GPIO Example: regulator { compatible = "pwm-regulator"; pwms = <&pwm1 0 8448 0>; enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>; regulator-min-microvolt = <1016000>; regulator-max-microvolt = <1114000>; regulator-name = "vdd_logic"; /* unit == per-mille */ pwm-dutycycle-unit = <1000>; /* * Inverted PWM logic, and the duty cycle range is limited * to 30%-70%. */ pwm-dutycycle-range = <700 300>; /* */ }; - | // Voltage Table Example: regulator { compatible = "pwm-regulator"; pwms = <&pwm1 0 8448 0>; regulator-min-microvolt = <1016000>; regulator-max-microvolt = <1114000>; regulator-name = "vdd_logic"; /* Voltage Duty-Cycle */ voltage-table = <1114000 0>, <1095000 10>, <1076000 20>, <1056000 30>, <1036000 40>, <1016000 50>; }; ... |