[PATCH v7 0/3] pwm: Add pwm driver for Sophgo SG2042

From: Chen Wang
Date: Wed Feb 05 2025 - 01:59:45 EST


From: Chen Wang <unicorn_wang@xxxxxxxxxxx>

Add driver for pwm controller of Sophgo SG2042 SoC.

Thanks,
Chen

---

Changes in v7:
The patch series is based on v6.14-rc1.

Fixed following issues as per comments from Uwe Kleine-König, thanks.

- dt-bindings: change value of "#pwm-cells" from 2 to 3.
- driver: rename variables period/hlperiod to period_ticks/hlperiod_ticks and
improve coding of apply()/get_state(); use
devm_reset_control_get_optional_shared_deasserted() instead of
devm_reset_control_get_optional_shared() and reset_control_deassert();
add more comments and other miscellaneous code improvements.

Changes in v6:
Nothing major changes just rebased onto v6.13-rc1 and retested. You can
simply review or test the patches at the link [6].

Changes in v5:
The patch series is based on v6.12-rc1. You can simply review or test
the patches at the link [5].

Updated driver to add resets property for pwm controller node as per
suggestion from Inochi.

Changes in v4:
The patch series is based on v6.12-rc1. You can simply review or test
the patches at the link [4].

Updated driver to set property atomic of pwm_chip to true as per suggestion
from Sean.

Changes in v3:
The patch series is catched up with v6.12-rc1. You can simply review or test
the patches at the link [3].

Add patch #3 for dts part change.

Changes in v2:
The patch series is based on v6.11-rc6. You can simply review or test the
patches at the link [2].

Fixed following issues as per comments from Yixun Lan, Krzysztof Kozlowski
and Uwe Kleine-König, thanks.

- Some minor issues in dt-bindings.
- driver issues, use macros with name prefix for registers access; add
limitations comments; fixed potential calculation overflow problem;
add .get_state() callback and other miscellaneous code improvements.

Changes in v1:
The patch series is based on v6.11-rc6. You can simply review or test the
patches at the link [1].

Link: https://lore.kernel.org/linux-riscv/cover.1725536870.git.unicorn_wang@xxxxxxxxxxx/ [1]
Link: https://lore.kernel.org/linux-riscv/cover.1725931796.git.unicorn_wang@xxxxxxxxxxx/ [2]
Link: https://lore.kernel.org/linux-riscv/cover.1728355974.git.unicorn_wang@xxxxxxxxxxx/ [3]
Link: https://lore.kernel.org/linux-riscv/cover.1729037302.git.unicorn_wang@xxxxxxxxxxx/ [4]
Link: https://lore.kernel.org/linux-riscv/cover.1729843087.git.unicorn_wang@xxxxxxxxxxx/ [5]
Link: https://lore.kernel.org/linux-riscv/cover.1733281657.git.unicorn_wang@xxxxxxxxxxx/ [6]
---

Chen Wang (3):
dt-bindings: pwm: sophgo: add PWM controller for SG2042
pwm: sophgo: add driver for Sophgo SG2042 PWM
riscv: sophgo: dts: add pwm controller for SG2042 SoC

.../bindings/pwm/sophgo,sg2042-pwm.yaml | 58 ++++++
arch/riscv/boot/dts/sophgo/sg2042.dtsi | 9 +
drivers/pwm/Kconfig | 10 +
drivers/pwm/Makefile | 1 +
drivers/pwm/pwm-sophgo-sg2042.c | 196 ++++++++++++++++++
5 files changed, 274 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pwm/sophgo,sg2042-pwm.yaml
create mode 100644 drivers/pwm/pwm-sophgo-sg2042.c


base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
--
2.34.1