mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
83af24027b
Add support for encoding PWM properties in bit encoded form with of_pwm_xlate_with_flags() function support. Platforms require platform specific PWM properties has to populate in 3rd cell of the pwm-specifier and PWM driver should also set .of_xlate support with this function. Currently PWM property polarity encoded in bit position 0 of the third cell in pwm-specifier. Signed-off-by: Philip, Avinash <avinashphilip@ti.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
69 lines
2.0 KiB
Plaintext
69 lines
2.0 KiB
Plaintext
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 in a third cell:
|
|
- bit 0: PWM signal polarity (0: normal polarity, 1: inverse polarity)
|
|
|
|
Example with optional PWM specifier for inverse polarity
|
|
|
|
bl: backlight {
|
|
pwms = <&pwm 0 5000000 1>;
|
|
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>;
|
|
};
|