pwm: meson: Add clock source configuration for Meson G12A
authorNeil Armstrong <narmstrong@baylibre.com>
Tue, 23 Apr 2019 13:36:45 +0000 (15:36 +0200)
committerThierry Reding <thierry.reding@gmail.com>
Thu, 9 May 2019 15:29:31 +0000 (17:29 +0200)
For the PWM controller in the Meson G12A SoC, the EE domain and AO domain
have different clock sources. This patch tries to describe them in the
DT compatible data. The two AO PWM controller has different clock source,
but the first AO controller (A & B) can reuse the AXG parents name.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/pwm-meson.c

index e247ab632530bac5d07c22f816b68681ac866578..ba748027ecbf1735a4a6ec99dbd3b679df26148e 100644 (file)
@@ -433,6 +433,24 @@ static const struct meson_pwm_data pwm_axg_ao_data = {
        .num_parents = ARRAY_SIZE(pwm_axg_ao_parent_names),
 };
 
+static const char * const pwm_g12a_ao_cd_parent_names[] = {
+       "aoclk81", "xtal",
+};
+
+static const struct meson_pwm_data pwm_g12a_ao_cd_data = {
+       .parent_names = pwm_g12a_ao_cd_parent_names,
+       .num_parents = ARRAY_SIZE(pwm_g12a_ao_cd_parent_names),
+};
+
+static const char * const pwm_g12a_ee_parent_names[] = {
+       "xtal", "hdmi_pll", "fclk_div4", "fclk_div3"
+};
+
+static const struct meson_pwm_data pwm_g12a_ee_data = {
+       .parent_names = pwm_g12a_ee_parent_names,
+       .num_parents = ARRAY_SIZE(pwm_g12a_ee_parent_names),
+};
+
 static const struct of_device_id meson_pwm_matches[] = {
        {
                .compatible = "amlogic,meson8b-pwm",
@@ -454,6 +472,18 @@ static const struct of_device_id meson_pwm_matches[] = {
                .compatible = "amlogic,meson-axg-ao-pwm",
                .data = &pwm_axg_ao_data
        },
+       {
+               .compatible = "amlogic,meson-g12a-ee-pwm",
+               .data = &pwm_g12a_ee_data
+       },
+       {
+               .compatible = "amlogic,meson-g12a-ao-pwm-ab",
+               .data = &pwm_axg_ao_data
+       },
+       {
+               .compatible = "amlogic,meson-g12a-ao-pwm-cd",
+               .data = &pwm_g12a_ao_cd_data
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, meson_pwm_matches);