Re-introduce the driver for atcpit100. This device driver was previously part of the Linux Kernel, but was removed due to the deprecation of the NDS32 architecture [1]. Although Andes now dedicates our effort on RISC-V, ATCPIT100 is still one of our peripheral platform IPs, and that's why we are re-introducing it now. This patch series includes DT-bindings(1/2) and PWM driver(2/2). The ATCPIT100 Programmable Interval Timer (PIT) is a set of compact multi-function timers, which can be used as pulse width modulators (PWM) as well as simple timers. ATCPIT100 supports up to 4 PIT channels, and each PIT channel may be a simple timer or PWM, or a combination of the timer and the PWM. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aec499c75cf8e0b599be4d559e6922b613085f8f --- Changes in v3: (1/2): - modify the compatible string according to Krzysztof's review. (2/2): - add a check for the clock rate to prevent the overflow warning by kernel test robot. - remove the unnecessary check in .apply() reported by kernel test robot. Link to v2: https://lore.kernel.org/linux-pwm/20241202060147.1271264-1-ben717@xxxxxxxxxxxxx/T/#t Changes in v2: (1/2): - change "title" in the yaml file. - remove vendor-specific property, and add clocks property. (2/2): - add a description for hardware limitations. - instead of statically configuring the clock source in the dtb, switch the clock parent depending on the requested setting. - have some minor changes according to Uwe's suggestion. Link to v1: https://lore.kernel.org/linux-pwm/20241028102721.1961289-1-ben717@xxxxxxxxxxxxx/T/#t --- Ben Zong-You Xie (2): dt-bindings: pwm: add atcpit100 pwm: atcpit100: add Andes PWM driver support .../bindings/pwm/andestech,atcpit100-pwm.yaml | 51 +++ MAINTAINERS | 6 + drivers/pwm/Kconfig | 17 + drivers/pwm/Makefile | 1 + drivers/pwm/pwm-atcpit100.c | 296 ++++++++++++++++++ 5 files changed, 371 insertions(+) create mode 100644 Documentation/devicetree/bindings/pwm/andestech,atcpit100-pwm.yaml create mode 100644 drivers/pwm/pwm-atcpit100.c --- 2.34.1