70 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			70 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 (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>;
 | |
| 	};
 | 
