|
@@ -0,0 +1,69 @@
|
|
|
+Specifying PWM information for devices
|
|
|
+======================================
|
|
|
+
|
|
|
+1) PWM user nodes
|
|
|
+-----------------
|
|
|
+
|
|
|
+PWM users should specify a list of PWM devices that they want to use
|
|
|
+with a property containing a 'pwm-list':
|
|
|
+
|
|
|
+ pwm-list ::= <single-pwm> [pwm-list]
|
|
|
+ single-pwm ::= <pwm-phandle> <pwm-specifier>
|
|
|
+ pwm-phandle : phandle to PWM controller node
|
|
|
+ pwm-specifier : array of #pwm-cells specifying the given PWM
|
|
|
+ (controller specific)
|
|
|
+
|
|
|
+PWM properties should be named "pwms". The exact meaning of each pwms
|
|
|
+property must be documented in the device tree binding for each device.
|
|
|
+An optional property "pwm-names" may contain a list of strings to label
|
|
|
+each of the PWM devices listed in the "pwms" property. If no "pwm-names"
|
|
|
+property is given, the name of the user node will be used as fallback.
|
|
|
+
|
|
|
+Drivers for devices that use more than a single PWM device can use the
|
|
|
+"pwm-names" property to map the name of the PWM device requested by the
|
|
|
+pwm_get() call to an index into the list given by the "pwms" property.
|
|
|
+
|
|
|
+The following example could be used to describe a PWM-based backlight
|
|
|
+device:
|
|
|
+
|
|
|
+ pwm: pwm {
|
|
|
+ #pwm-cells = <2>;
|
|
|
+ };
|
|
|
+
|
|
|
+ [...]
|
|
|
+
|
|
|
+ bl: backlight {
|
|
|
+ pwms = <&pwm 0 5000000>;
|
|
|
+ pwm-names = "backlight";
|
|
|
+ };
|
|
|
+
|
|
|
+Note that in the example above, specifying the "pwm-names" is redundant
|
|
|
+because the name "backlight" would be used as fallback anyway.
|
|
|
+
|
|
|
+pwm-specifier typically encodes the chip-relative PWM number and the PWM
|
|
|
+period in nanoseconds.
|
|
|
+
|
|
|
+Optionally, the pwm-specifier can encode a number of flags (defined in
|
|
|
+<dt-bindings/pwm/pwm.h>) in a third cell:
|
|
|
+- PWM_POLARITY_INVERTED: invert the PWM signal polarity
|
|
|
+
|
|
|
+Example with optional PWM specifier for inverse polarity
|
|
|
+
|
|
|
+ bl: backlight {
|
|
|
+ pwms = <&pwm 0 5000000 PWM_POLARITY_INVERTED>;
|
|
|
+ pwm-names = "backlight";
|
|
|
+ };
|
|
|
+
|
|
|
+2) PWM controller nodes
|
|
|
+-----------------------
|
|
|
+
|
|
|
+PWM controller nodes must specify the number of cells used for the
|
|
|
+specifier using the '#pwm-cells' property.
|
|
|
+
|
|
|
+An example PWM controller might look like this:
|
|
|
+
|
|
|
+ pwm: pwm@7000a000 {
|
|
|
+ compatible = "nvidia,tegra20-pwm";
|
|
|
+ reg = <0x7000a000 0x100>;
|
|
|
+ #pwm-cells = <2>;
|
|
|
+ };
|