SG2042 has a simple pinctrl device for all configurable pins. It supports setting pull up/down, drive strength and input schmitt trigger. Add support for SG2042 and SG2044 pinctrl device. Changed from v1: - https://lore.kernel.org/all/20241024064356.865055-1-inochiama@xxxxxxxxx/ 1. Fix the binding documentation error. 2. Refactor the cv18xx code so SG2042 can uses the same code. 3. Add SG2044 pinctrl support as it has the same layout. Inochi Amaoto (8): pinctrl: sophgo: avoid to modify untouched bit when setting cv1800 pinconf pinctrl: sophgo: introduce generic data structure for cv18xx pinctrl driver pinctrl: sophgo: generalize shareable code of cv18xx pinctrl driver pinctrl: sophgo: introduce generic probe function dt-bindings: pinctrl: Add pinctrl for Sophgo SG2042 series SoC pinctrl: sophgo: add support for SG2042 SoC pinctrl: sophgo: add support for SG2044 SoC riscv: dts: sophgo: sg2042: add pinctrl support .../pinctrl/sophgo,sg2042-pinctrl.yaml | 129 ++++ .../boot/dts/sophgo/sg2042-milkv-pioneer.dts | 72 ++ arch/riscv/boot/dts/sophgo/sg2042.dtsi | 6 + drivers/pinctrl/sophgo/Kconfig | 46 +- drivers/pinctrl/sophgo/Makefile | 8 +- drivers/pinctrl/sophgo/pinctrl-cv1800b.c | 27 +- drivers/pinctrl/sophgo/pinctrl-cv1812h.c | 27 +- drivers/pinctrl/sophgo/pinctrl-cv18xx.c | 602 ++++----------- drivers/pinctrl/sophgo/pinctrl-cv18xx.h | 66 +- drivers/pinctrl/sophgo/pinctrl-sg2000.c | 27 +- drivers/pinctrl/sophgo/pinctrl-sg2002.c | 27 +- drivers/pinctrl/sophgo/pinctrl-sg2042-ops.c | 296 ++++++++ drivers/pinctrl/sophgo/pinctrl-sg2042.c | 655 ++++++++++++++++ drivers/pinctrl/sophgo/pinctrl-sg2042.h | 49 ++ drivers/pinctrl/sophgo/pinctrl-sg2044.c | 718 ++++++++++++++++++ .../pinctrl/sophgo/pinctrl-sophgo-common.c | 451 +++++++++++ drivers/pinctrl/sophgo/pinctrl-sophgo.h | 136 ++++ include/dt-bindings/pinctrl/pinctrl-sg2042.h | 196 +++++ include/dt-bindings/pinctrl/pinctrl-sg2044.h | 221 ++++++ 19 files changed, 3217 insertions(+), 542 deletions(-) create mode 100644 Documentation/devicetree/bindings/pinctrl/sophgo,sg2042-pinctrl.yaml create mode 100644 drivers/pinctrl/sophgo/pinctrl-sg2042-ops.c create mode 100644 drivers/pinctrl/sophgo/pinctrl-sg2042.c create mode 100644 drivers/pinctrl/sophgo/pinctrl-sg2042.h create mode 100644 drivers/pinctrl/sophgo/pinctrl-sg2044.c create mode 100644 drivers/pinctrl/sophgo/pinctrl-sophgo-common.c create mode 100644 drivers/pinctrl/sophgo/pinctrl-sophgo.h create mode 100644 include/dt-bindings/pinctrl/pinctrl-sg2042.h create mode 100644 include/dt-bindings/pinctrl/pinctrl-sg2044.h -- 2.48.1