[PATCH v2 2/2] arm64: dts: amlogic: Add Amlogic C3 PWM
Neil Armstrong
neil.armstrong at linaro.org
Wed Oct 9 00:57:00 PDT 2024
On 14/09/2024 07:48, Kelvin Zhang via B4 Relay wrote:
> From: Kelvin Zhang <kelvin.zhang at amlogic.com>
>
> Add device nodes for PWM_AB, PWM_CD, PWM_EF, PWM_GH, PWM_IJ, PWM_KL
> and PWM_MN, along with the GPIO pin configurations for each channel.
>
> Signed-off-by: Kelvin Zhang <kelvin.zhang at amlogic.com>
> ---
> arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi | 364 ++++++++++++++++++++++++++++
> 1 file changed, 364 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
> index d0cda759c25d..fd0e557eba06 100644
> --- a/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/amlogic-c3.dtsi
> @@ -410,6 +410,300 @@ mux {
> drive-strength-microamp = <4000>;
> };
> };
> +
> + pwm_a_pins1: pwm-a-pins1 {
> + mux {
> + groups = "pwm_a";
> + function = "pwm_a";
> + };
> + };
> +
> + pwm_b_pins1: pwm-b-pins1 {
> + mux {
> + groups = "pwm_b";
> + function = "pwm_b";
> + };
> + };
> +
> + pwm_c_pins1: pwm-c-pins1 {
> + mux {
> + groups = "pwm_c";
> + function = "pwm_c";
> + };
> + };
> +
> + pwm_d_pins1: pwm-d-pins1 {
> + mux {
> + groups = "pwm_d";
> + function = "pwm_d";
> + };
> + };
> +
> + pwm_e_pins1: pwm-e-pins1 {
> + mux {
> + groups = "pwm_e";
> + function = "pwm_e";
> + };
> + };
> +
> + pwm_f_pins1: pwm-f-pins1 {
> + mux {
> + groups = "pwm_f";
> + function = "pwm_f";
> + };
> + };
> +
> + pwm_g_pins1: pwm-g-pins1 {
> + mux {
> + groups = "pwm_g_b";
> + function = "pwm_g";
> + };
> + };
> +
> + pwm_g_pins2: pwm-g-pins2 {
> + mux {
> + groups = "pwm_g_c";
> + function = "pwm_g";
> + };
> + };
> +
> + pwm_g_pins3: pwm-g-pins3 {
> + mux {
> + groups = "pwm_g_d";
> + function = "pwm_g";
> + };
> + };
> +
> + pwm_g_pins4: pwm-g-pins4 {
> + mux {
> + groups = "pwm_g_x0";
> + function = "pwm_g";
> + };
> + };
> +
> + pwm_g_pins5: pwm-g-pins5 {
> + mux {
> + groups = "pwm_g_x8";
> + function = "pwm_g";
> + };
> + };
> +
> + pwm_h_pins1: pwm-h-pins1 {
> + mux {
> + groups = "pwm_h_b";
> + function = "pwm_h";
> + };
> + };
> +
> + pwm_h_pins2: pwm-h-pins2 {
> + mux {
> + groups = "pwm_h_c";
> + function = "pwm_h";
> + };
> + };
> +
> + pwm_h_pins3: pwm-h-pins3 {
> + mux {
> + groups = "pwm_h_d";
> + function = "pwm_h";
> + };
> + };
> +
> + pwm_h_pins4: pwm-h-pins4 {
> + mux {
> + groups = "pwm_h_x1";
> + function = "pwm_h";
> + };
> + };
> +
> + pwm_h_pins5: pwm-h-pins5 {
> + mux {
> + groups = "pwm_h_x9";
> + function = "pwm_h";
> + };
> + };
> +
> + pwm_i_pins1: pwm-i-pins1 {
> + mux {
> + groups = "pwm_i_b";
> + function = "pwm_i";
> + };
> + };
> +
> + pwm_i_pins2: pwm-i-pins2 {
> + mux {
> + groups = "pwm_i_c";
> + function = "pwm_i";
> + };
> + };
> +
> + pwm_i_pins3: pwm-i-pins3 {
> + mux {
> + groups = "pwm_i_d";
> + function = "pwm_i";
> + };
> + };
> +
> + pwm_i_pins4: pwm-i-pins4 {
> + mux {
> + groups = "pwm_i_x2";
> + function = "pwm_i";
> + };
> + };
> +
> + pwm_i_pins5: pwm-i-pins5 {
> + mux {
> + groups = "pwm_i_x10";
> + function = "pwm_i";
> + };
> + };
> +
> + pwm_j_pins1: pwm-j-pins1 {
> + mux {
> + groups = "pwm_j_c";
> + function = "pwm_j";
> + };
> + };
> +
> + pwm_j_pins2: pwm-j-pins2 {
> + mux {
> + groups = "pwm_j_d";
> + function = "pwm_j";
> + };
> + };
> +
> + pwm_j_pins3: pwm-j-pins3 {
> + mux {
> + groups = "pwm_j_b";
> + function = "pwm_j";
> + };
> + };
> +
> + pwm_j_pins4: pwm-j-pins4 {
> + mux {
> + groups = "pwm_j_x3";
> + function = "pwm_j";
> + };
> + };
> +
> + pwm_j_pins5: pwm-j-pins5 {
> + mux {
> + groups = "pwm_j_x12";
> + function = "pwm_j";
> + };
> + };
> +
> + pwm_k_pins1: pwm-k-pins1 {
> + mux {
> + groups = "pwm_k_c";
> + function = "pwm_k";
> + };
> + };
> +
> + pwm_k_pins2: pwm-k-pins2 {
> + mux {
> + groups = "pwm_k_d";
> + function = "pwm_k";
> + };
> + };
> +
> + pwm_k_pins3: pwm-k-pins3 {
> + mux {
> + groups = "pwm_k_b";
> + function = "pwm_k";
> + };
> + };
> +
> + pwm_k_pins4: pwm-k-pins4 {
> + mux {
> + groups = "pwm_k_x4";
> + function = "pwm_k";
> + };
> + };
> +
> + pwm_k_pins5: pwm-k-pins5 {
> + mux {
> + groups = "pwm_k_x13";
> + function = "pwm_k";
> + };
> + };
> +
> + pwm_l_pins1: pwm-l-pins1 {
> + mux {
> + groups = "pwm_l_c";
> + function = "pwm_l";
> + };
> + };
> +
> + pwm_l_pins2: pwm-l-pins2 {
> + mux {
> + groups = "pwm_l_x";
> + function = "pwm_l";
> + };
> + };
> +
> + pwm_l_pins3: pwm-l-pins3 {
> + mux {
> + groups = "pwm_l_b";
> + function = "pwm_l";
> + };
> + };
> +
> + pwm_l_pins4: pwm-l-pins4 {
> + mux {
> + groups = "pwm_l_a";
> + function = "pwm_l";
> + };
> + };
> +
> + pwm_m_pins1: pwm-m-pins1 {
> + mux {
> + groups = "pwm_m_c";
> + function = "pwm_m";
> + };
> + };
> +
> + pwm_m_pins2: pwm-m-pins2 {
> + mux {
> + groups = "pwm_m_x";
> + function = "pwm_m";
> + };
> + };
> +
> + pwm_m_pins3: pwm-m-pins3 {
> + mux {
> + groups = "pwm_m_a";
> + function = "pwm_m";
> + };
> + };
> +
> + pwm_m_pins4: pwm-m-pins4 {
> + mux {
> + groups = "pwm_m_b";
> + function = "pwm_m";
> + };
> + };
> +
> + pwm_n_pins1: pwm-n-pins1 {
> + mux {
> + groups = "pwm_n_x";
> + function = "pwm_n";
> + };
> + };
> +
> + pwm_n_pins2: pwm-n-pins2 {
> + mux {
> + groups = "pwm_n_a";
> + function = "pwm_n";
> + };
> + };
> +
> + pwm_n_pins3: pwm-n-pins3 {
> + mux {
> + groups = "pwm_n_b";
> + function = "pwm_n";
> + };
> + };
> };
>
> gpio_intc: interrupt-controller at 4080 {
> @@ -490,6 +784,16 @@ spicc1: spi at 52000 {
> status = "disabled";
> };
>
> + pwm_mn: pwm at 54000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 54000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_M>,
> + <&clkc_periphs CLKID_PWM_N>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> spifc: spi at 56000 {
> compatible = "amlogic,a1-spifc";
> reg = <0x0 0x56000 0x0 0x290>;
> @@ -499,6 +803,66 @@ spifc: spi at 56000 {
> status = "disabled";
> };
>
> + pwm_ab: pwm at 58000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 0x58000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_A>,
> + <&clkc_periphs CLKID_PWM_B>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> + pwm_cd: pwm at 5a000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 0x5a000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_C>,
> + <&clkc_periphs CLKID_PWM_D>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> + pwm_ef: pwm at 5c000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 0x5c000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_E>,
> + <&clkc_periphs CLKID_PWM_F>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> + pwm_gh: pwm at 5e000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 0x5e000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_G>,
> + <&clkc_periphs CLKID_PWM_H>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> + pwm_ij: pwm at 60000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 0x60000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_I>,
> + <&clkc_periphs CLKID_PWM_J>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> + pwm_kl: pwm at 62000 {
> + compatible = "amlogic,c3-pwm",
> + "amlogic,meson-s4-pwm";
> + reg = <0x0 0x62000 0x0 0x24>;
> + clocks = <&clkc_periphs CLKID_PWM_K>,
> + <&clkc_periphs CLKID_PWM_L>;
> + #pwm-cells = <3>;
> + status = "disabled";
> + };
> +
> i2c0: i2c at 66000 {
> compatible = "amlogic,meson-axg-i2c";
> reg = <0x0 0x66000 0x0 0x24>;
>
Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
More information about the linux-arm-kernel
mailing list