130 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0
 | |
| %YAML 1.2
 | |
| ---
 | |
| $id: http://devicetree.org/schemas/pwm/pwm-samsung.yaml#
 | |
| $schema: http://devicetree.org/meta-schemas/core.yaml#
 | |
| 
 | |
| title: Samsung SoC PWM timers
 | |
| 
 | |
| maintainers:
 | |
|   - Thierry Reding <thierry.reding@gmail.com>
 | |
|   - Krzysztof Kozlowski <krzk@kernel.org>
 | |
| 
 | |
| description: |+
 | |
|   Samsung SoCs contain PWM timer blocks which can be used for system clock source
 | |
|   and clock event timers, as well as to drive SoC outputs with PWM signal. Each
 | |
|   PWM timer block provides 5 PWM channels (not all of them can drive physical
 | |
|   outputs - see SoC and board manual).
 | |
| 
 | |
|   Be aware that the clocksource driver supports only uniprocessor systems.  
 | |
| 
 | |
| properties:
 | |
|   compatible:
 | |
|     oneOf:
 | |
|       - enum:
 | |
|           - samsung,s3c2410-pwm             # 16-bit, S3C24xx
 | |
|           - samsung,s3c6400-pwm             # 32-bit, S3C64xx
 | |
|           - samsung,s5p6440-pwm             # 32-bit, S5P64x0
 | |
|           - samsung,s5pc100-pwm             # 32-bit, S5PC100, S5PV210, Exynos4210 rev0 SoCs
 | |
|           - samsung,exynos4210-pwm          # 32-bit, Exynos
 | |
|       - items:
 | |
|           - enum:
 | |
|               - samsung,exynos5433-pwm
 | |
|               - samsung,exynos7-pwm
 | |
|               - samsung,exynosautov9-pwm
 | |
|               - samsung,exynosautov920-pwm
 | |
|               - tesla,fsd-pwm
 | |
|           - const: samsung,exynos4210-pwm
 | |
| 
 | |
|   reg:
 | |
|     maxItems: 1
 | |
| 
 | |
|   clocks:
 | |
|     minItems: 1
 | |
|     maxItems: 3
 | |
| 
 | |
|   clock-names:
 | |
|     description: |
 | |
|       Should contain all following required clock names:
 | |
|       - "timers" - PWM base clock used to generate PWM signals,
 | |
|       and any subset of following optional clock names:
 | |
|       - "pwm-tclk0" - first external PWM clock source,
 | |
|       - "pwm-tclk1" - second external PWM clock source.
 | |
|       Note that not all IP variants allow using all external clock sources.
 | |
|       Refer to SoC documentation to learn which clock source configurations
 | |
|       are available.      
 | |
|     oneOf:
 | |
|       - items:
 | |
|           - const: timers
 | |
|       - items:
 | |
|           - const: timers
 | |
|           - const: pwm-tclk0
 | |
|       - items:
 | |
|           - const: timers
 | |
|           - const: pwm-tclk1
 | |
|       - items:
 | |
|           - const: timers
 | |
|           - const: pwm-tclk0
 | |
|           - const: pwm-tclk1
 | |
| 
 | |
|   interrupts:
 | |
|     description:
 | |
|       One interrupt per timer, starting at timer 0. Necessary only for SoCs which
 | |
|       use PWM clocksource.
 | |
|     minItems: 1
 | |
|     maxItems: 5
 | |
| 
 | |
|   "#pwm-cells":
 | |
|     description:
 | |
|       The only third cell flag supported by this binding
 | |
|       is PWM_POLARITY_INVERTED.
 | |
|     const: 3
 | |
| 
 | |
|   samsung,pwm-outputs:
 | |
|     description:
 | |
|       A list of PWM channels used as PWM outputs on particular platform.
 | |
|       It is an array of up to 5 elements being indices of PWM channels
 | |
|       (from 0 to 4), the order does not matter.
 | |
|     $ref: /schemas/types.yaml#/definitions/uint32-array
 | |
|     uniqueItems: true
 | |
|     items:
 | |
|       minimum: 0
 | |
|       maximum: 4
 | |
| 
 | |
| required:
 | |
|   - clocks
 | |
|   - clock-names
 | |
|   - compatible
 | |
|   - reg
 | |
| 
 | |
| additionalProperties: false
 | |
| 
 | |
| allOf:
 | |
|   - $ref: pwm.yaml#
 | |
| 
 | |
|   - if:
 | |
|       properties:
 | |
|         compatible:
 | |
|           contains:
 | |
|             enum:
 | |
|               - samsung,s3c2410-pwm
 | |
|               - samsung,s3c6400-pwm
 | |
|               - samsung,s5p6440-pwm
 | |
|               - samsung,s5pc100-pwm
 | |
|     then:
 | |
|       required:
 | |
|         - interrupts
 | |
| 
 | |
| examples:
 | |
|   - |
 | |
|     pwm@7f006000 {
 | |
|         compatible = "samsung,s3c6400-pwm";
 | |
|         reg = <0x7f006000 0x1000>;
 | |
|         interrupt-parent = <&vic0>;
 | |
|         interrupts = <23>, <24>, <25>, <27>, <28>;
 | |
|         clocks = <&clock 67>;
 | |
|         clock-names = "timers";
 | |
|         samsung,pwm-outputs = <0>, <1>;
 | |
|         #pwm-cells = <3>;
 | |
|     };    
 |