18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci# Copyright (C) 2020 SiFive, Inc. 38c2ecf20Sopenharmony_ci%YAML 1.2 48c2ecf20Sopenharmony_ci--- 58c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/pwm/pwm-sifive.yaml# 68c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cititle: SiFive PWM controller 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_cimaintainers: 118c2ecf20Sopenharmony_ci - Yash Shah <yash.shah@sifive.com> 128c2ecf20Sopenharmony_ci - Sagar Kadam <sagar.kadam@sifive.com> 138c2ecf20Sopenharmony_ci - Paul Walmsley <paul.walmsley@sifive.com> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cidescription: 168c2ecf20Sopenharmony_ci Unlike most other PWM controllers, the SiFive PWM controller currently 178c2ecf20Sopenharmony_ci only supports one period for all channels in the PWM. All PWMs need to 188c2ecf20Sopenharmony_ci run at the same period. The period also has significant restrictions on 198c2ecf20Sopenharmony_ci the values it can achieve, which the driver rounds to the nearest 208c2ecf20Sopenharmony_ci achievable period. PWM RTL that corresponds to the IP block version 218c2ecf20Sopenharmony_ci numbers can be found here - 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/pwm 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciproperties: 268c2ecf20Sopenharmony_ci compatible: 278c2ecf20Sopenharmony_ci items: 288c2ecf20Sopenharmony_ci - const: sifive,fu540-c000-pwm 298c2ecf20Sopenharmony_ci - const: sifive,pwm0 308c2ecf20Sopenharmony_ci description: 318c2ecf20Sopenharmony_ci Should be "sifive,<chip>-pwm" and "sifive,pwm<version>". Supported 328c2ecf20Sopenharmony_ci compatible strings are "sifive,fu540-c000-pwm" for the SiFive PWM v0 338c2ecf20Sopenharmony_ci as integrated onto the SiFive FU540 chip, and "sifive,pwm0" for the 348c2ecf20Sopenharmony_ci SiFive PWM v0 IP block with no chip integration tweaks. 358c2ecf20Sopenharmony_ci Please refer to sifive-blocks-ip-versioning.txt for details. 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci reg: 388c2ecf20Sopenharmony_ci maxItems: 1 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci clocks: 418c2ecf20Sopenharmony_ci maxItems: 1 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci "#pwm-cells": 448c2ecf20Sopenharmony_ci const: 3 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci interrupts: 478c2ecf20Sopenharmony_ci maxItems: 4 488c2ecf20Sopenharmony_ci description: 498c2ecf20Sopenharmony_ci Each PWM instance in FU540-C000 has 4 comparators. One interrupt per comparator. 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cirequired: 528c2ecf20Sopenharmony_ci - compatible 538c2ecf20Sopenharmony_ci - reg 548c2ecf20Sopenharmony_ci - clocks 558c2ecf20Sopenharmony_ci - "#pwm-cells" 568c2ecf20Sopenharmony_ci - interrupts 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciadditionalProperties: false 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ciexamples: 618c2ecf20Sopenharmony_ci - | 628c2ecf20Sopenharmony_ci pwm: pwm@10020000 { 638c2ecf20Sopenharmony_ci compatible = "sifive,fu540-c000-pwm", "sifive,pwm0"; 648c2ecf20Sopenharmony_ci reg = <0x10020000 0x1000>; 658c2ecf20Sopenharmony_ci clocks = <&tlclk>; 668c2ecf20Sopenharmony_ci interrupt-parent = <&plic>; 678c2ecf20Sopenharmony_ci interrupts = <42>, <43>, <44>, <45>; 688c2ecf20Sopenharmony_ci #pwm-cells = <3>; 698c2ecf20Sopenharmony_ci }; 70