* [PATCH v5 0/9] imx8mm: add pwm-imx backlight support
@ 2022-03-26 11:19 Tommaso Merciai
2022-03-26 11:19 ` [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines Tommaso Merciai
` (9 more replies)
0 siblings, 10 replies; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Ye Li, Alice Guo,
Andrey Zhizhikin, u-boot
Hi,
This series add support for pwm/backlight on i.MX8MM evk,
separe also CONFIG_DM_PWM pwm-imx implementation from non dm
implementation moving pwm-imx-util into pwm-imx with driver
refactoring.
1. add pwm ctrl registers fields for i.MX8MM SOC
2. add pwm_regs struct for i.MX8MM SOC
3. add pwm clocks support for i.MX8MM SOC
4. move pwm-imx-util into pwm-imx
5. get and enable per/ipg clock using dm
6. introduce pwm_dm_imx_get_parms
7. separe dm from non dm implementation into pwm-imx driver
8. add pwm1/backlight dts support for imx8mm_evk
9. add pwm backlight configs support for imx8mm_evk
Tommaso Merciai (9):
arch: mach-imx: imx8m: add pwm ctrl registers fields defines
arch: mach-imx: imx8m: add pwm_regs struct in imx-regs
clk: imx8mm: add pwm clocks support
drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx
driver: pwm: pwm-imx: get and enable per/ipg clock using dm
driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms
driver: pwm: pwm-imx: separe dm from non dm implementation
arm: dts: imx8mm_evk: add pwm1/backlight support
configs: imx8mm_evk: add pwm backlight support
arch/arm/dts/imx8mm-evk.dtsi | 21 +++
arch/arm/include/asm/arch-imx8m/imx-regs.h | 17 +++
configs/imx8mm_evk_defconfig | 4 +
drivers/clk/imx/clk-imx8mm.c | 28 ++++
drivers/pwm/Makefile | 2 +-
drivers/pwm/pwm-imx-util.c | 80 -----------
drivers/pwm/pwm-imx-util.h | 15 --
drivers/pwm/pwm-imx.c | 155 +++++++++++++++++++--
8 files changed, 212 insertions(+), 110 deletions(-)
delete mode 100644 drivers/pwm/pwm-imx-util.c
delete mode 100644 drivers/pwm/pwm-imx-util.h
--
2.25.1
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:42 ` sbabic
2022-03-26 11:19 ` [PATCH v5 2/9] arch: mach-imx: imx8m: add pwm_regs struct in imx-regs Tommaso Merciai
` (8 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Andrey Zhizhikin,
Ye Li, Alice Guo, u-boot
Add pwm control registers fields defines into imx-regs.h:
- prescaler
- dozeen
- waiten
- dbgen
- clksrc_ipg_high
- clksrc_ipg, en field
References:
- iMX8MMRM.pdf p 3884
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
arch/arm/include/asm/arch-imx8m/imx-regs.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm/include/asm/arch-imx8m/imx-regs.h b/arch/arm/include/asm/arch-imx8m/imx-regs.h
index 11389a0f4d..57a95de1b8 100644
--- a/arch/arm/include/asm/arch-imx8m/imx-regs.h
+++ b/arch/arm/include/asm/arch-imx8m/imx-regs.h
@@ -351,6 +351,14 @@ struct src {
u32 ddr2_rcr;
};
+#define PWMCR_PRESCALER(x) (((x - 1) & 0xFFF) << 4)
+#define PWMCR_DOZEEN (1 << 24)
+#define PWMCR_WAITEN (1 << 23)
+#define PWMCR_DBGEN (1 << 22)
+#define PWMCR_CLKSRC_IPG_HIGH (2 << 16)
+#define PWMCR_CLKSRC_IPG (1 << 16)
+#define PWMCR_EN (1 << 0)
+
#define WDOG_WDT_MASK BIT(3)
#define WDOG_WDZST_MASK BIT(0)
struct wdog_regs {
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 2/9] arch: mach-imx: imx8m: add pwm_regs struct in imx-regs
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
2022-03-26 11:19 ` [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 3/9] clk: imx8mm: add pwm clocks support Tommaso Merciai
` (7 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Alice Guo, Ye Li,
Andrey Zhizhikin, u-boot
Add pwm_regs struct for i.MX8MM SOC
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
arch/arm/include/asm/arch-imx8m/imx-regs.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm/include/asm/arch-imx8m/imx-regs.h b/arch/arm/include/asm/arch-imx8m/imx-regs.h
index 57a95de1b8..f31f54ad0c 100644
--- a/arch/arm/include/asm/arch-imx8m/imx-regs.h
+++ b/arch/arm/include/asm/arch-imx8m/imx-regs.h
@@ -359,6 +359,15 @@ struct src {
#define PWMCR_CLKSRC_IPG (1 << 16)
#define PWMCR_EN (1 << 0)
+struct pwm_regs {
+ u32 cr;
+ u32 sr;
+ u32 ir;
+ u32 sar;
+ u32 pr;
+ u32 cnr;
+};
+
#define WDOG_WDT_MASK BIT(3)
#define WDOG_WDZST_MASK BIT(0)
struct wdog_regs {
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 3/9] clk: imx8mm: add pwm clocks support
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
2022-03-26 11:19 ` [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines Tommaso Merciai
2022-03-26 11:19 ` [PATCH v5 2/9] arch: mach-imx: imx8m: add pwm_regs struct in imx-regs Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 4/9] drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx Tommaso Merciai
` (6 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Lukasz Majewski, Sean Anderson,
Peng Fan, Andrey Zhizhikin, Alice Guo, Ye Li, u-boot
Add clocks support for the PWM controllers. This is ported from
Linux v5.17-rc8.
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
drivers/clk/imx/clk-imx8mm.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/clk/imx/clk-imx8mm.c b/drivers/clk/imx/clk-imx8mm.c
index 3aa8c641f9..964a778934 100644
--- a/drivers/clk/imx/clk-imx8mm.c
+++ b/drivers/clk/imx/clk-imx8mm.c
@@ -116,6 +116,18 @@ static const char *imx8mm_i2c3_sels[] = {"clock-osc-24m", "sys_pll1_160m", "sys_
static const char *imx8mm_i2c4_sels[] = {"clock-osc-24m", "sys_pll1_160m", "sys_pll2_50m", "sys_pll3_out", "audio_pll1_out",
"video_pll1_out", "audio_pll2_out", "sys_pll1_133m", };
+static const char *imx8mm_pwm1_sels[] = {"clock-osc-24m", "sys_pll2_100m", "sys_pll1_160m", "sys_pll1_40m",
+ "sys_pll3_out", "clk_ext1", "sys_pll1_80m", "video_pll1_out", };
+
+static const char *imx8mm_pwm2_sels[] = {"clock-osc-24m", "sys_pll2_100m", "sys_pll1_160m", "sys_pll1_40m",
+ "sys_pll3_out", "clk_ext1", "sys_pll1_80m", "video_pll1_out", };
+
+static const char *imx8mm_pwm3_sels[] = {"clock-osc-24m", "sys_pll2_100m", "sys_pll1_160m", "sys_pll1_40m",
+ "sys_pll3_out", "clk_ext2", "sys_pll1_80m", "video_pll1_out", };
+
+static const char *imx8mm_pwm4_sels[] = {"clock-osc-24m", "sys_pll2_100m", "sys_pll1_160m", "sys_pll1_40m",
+ "sys_pll3_out", "clk_ext2", "sys_pll1_80m", "video_pll1_out", };
+
static const char *imx8mm_wdog_sels[] = {"clock-osc-24m", "sys_pll1_133m", "sys_pll1_160m", "vpu_pll_out",
"sys_pll2_125m", "sys_pll3_out", "sys_pll1_80m", "sys_pll2_166m", };
@@ -391,6 +403,14 @@ static int imx8mm_clk_probe(struct udevice *dev)
imx8m_clk_composite("i2c3", imx8mm_i2c3_sels, base + 0xae00));
clk_dm(IMX8MM_CLK_I2C4,
imx8m_clk_composite("i2c4", imx8mm_i2c4_sels, base + 0xae80));
+ clk_dm(IMX8MM_CLK_PWM1,
+ imx8m_clk_composite("pwm1", imx8mm_pwm1_sels, base + 0xb380));
+ clk_dm(IMX8MM_CLK_PWM2,
+ imx8m_clk_composite("pwm2", imx8mm_pwm2_sels, base + 0xb400));
+ clk_dm(IMX8MM_CLK_PWM3,
+ imx8m_clk_composite("pwm3", imx8mm_pwm3_sels, base + 0xb480));
+ clk_dm(IMX8MM_CLK_PWM4,
+ imx8m_clk_composite("pwm4", imx8mm_pwm4_sels, base + 0xb500));
clk_dm(IMX8MM_CLK_WDOG,
imx8m_clk_composite("wdog", imx8mm_wdog_sels, base + 0xb900));
clk_dm(IMX8MM_CLK_USDHC3,
@@ -425,6 +445,14 @@ static int imx8mm_clk_probe(struct udevice *dev)
imx_clk_gate4("i2c4_root_clk", "i2c4", base + 0x41a0, 0));
clk_dm(IMX8MM_CLK_OCOTP_ROOT,
imx_clk_gate4("ocotp_root_clk", "ipg_root", base + 0x4220, 0));
+ clk_dm(IMX8MM_CLK_PWM1_ROOT,
+ imx_clk_gate4("pwm1_root_clk", "pwm1", base + 0x4280, 0));
+ clk_dm(IMX8MM_CLK_PWM2_ROOT,
+ imx_clk_gate4("pwm2_root_clk", "pwm2", base + 0x4290, 0));
+ clk_dm(IMX8MM_CLK_PWM3_ROOT,
+ imx_clk_gate4("pwm3_root_clk", "pwm3", base + 0x42a0, 0));
+ clk_dm(IMX8MM_CLK_PWM4_ROOT,
+ imx_clk_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0));
clk_dm(IMX8MM_CLK_USDHC1_ROOT,
imx_clk_gate4("usdhc1_root_clk", "usdhc1", base + 0x4510, 0));
clk_dm(IMX8MM_CLK_USDHC2_ROOT,
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 4/9] drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (2 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 3/9] clk: imx8mm: add pwm clocks support Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 5/9] driver: pwm: pwm-imx: get and enable per/ipg clock using dm Tommaso Merciai
` (5 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Ye Li,
Andrey Zhizhikin, Alice Guo, Dan Sneddon, Simon Glass,
Alper Nebi Yasak, u-boot
Move pwm_imx_get_parms, pwm_id_to_reg functions into pwm-imx.c
and drop off pwm-imx-util.c
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
drivers/pwm/Makefile | 2 +-
drivers/pwm/pwm-imx-util.c | 80 --------------------------------------
drivers/pwm/pwm-imx-util.h | 15 -------
drivers/pwm/pwm-imx.c | 67 ++++++++++++++++++++++++++++++-
4 files changed, 67 insertions(+), 97 deletions(-)
delete mode 100644 drivers/pwm/pwm-imx-util.c
delete mode 100644 drivers/pwm/pwm-imx-util.h
diff --git a/drivers/pwm/Makefile b/drivers/pwm/Makefile
index 55f2bc081d..5d696ec49c 100644
--- a/drivers/pwm/Makefile
+++ b/drivers/pwm/Makefile
@@ -13,7 +13,7 @@ obj-$(CONFIG_DM_PWM) += pwm-uclass.o
obj-$(CONFIG_PWM_AT91) += pwm-at91.o
obj-$(CONFIG_PWM_CROS_EC) += cros_ec_pwm.o
obj-$(CONFIG_PWM_EXYNOS) += exynos_pwm.o
-obj-$(CONFIG_PWM_IMX) += pwm-imx.o pwm-imx-util.o
+obj-$(CONFIG_PWM_IMX) += pwm-imx.o
obj-$(CONFIG_PWM_MESON) += pwm-meson.o
obj-$(CONFIG_PWM_MTK) += pwm-mtk.o
obj-$(CONFIG_PWM_ROCKCHIP) += rk_pwm.o
diff --git a/drivers/pwm/pwm-imx-util.c b/drivers/pwm/pwm-imx-util.c
deleted file mode 100644
index 823a9d2d6b..0000000000
--- a/drivers/pwm/pwm-imx-util.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * (C) Copyright 2014
- * Heiko Schocher, DENX Software Engineering, hs@denx.de.
- *
- * Basic support for the pwm module on imx6.
- *
- * Based on linux:drivers/pwm/pwm-imx.c
- * from
- * Sascha Hauer <s.hauer@pengutronix.de>
- */
-
-#include <common.h>
-#include <div64.h>
-#include <asm/arch/imx-regs.h>
-
-/* pwm_id from 0..7 */
-struct pwm_regs *pwm_id_to_reg(int pwm_id)
-{
- switch (pwm_id) {
- case 0:
- return (struct pwm_regs *)PWM1_BASE_ADDR;
- case 1:
- return (struct pwm_regs *)PWM2_BASE_ADDR;
-#ifdef CONFIG_MX6
- case 2:
- return (struct pwm_regs *)PWM3_BASE_ADDR;
- case 3:
- return (struct pwm_regs *)PWM4_BASE_ADDR;
-#endif
-#ifdef CONFIG_MX6SX
- case 4:
- return (struct pwm_regs *)PWM5_BASE_ADDR;
- case 5:
- return (struct pwm_regs *)PWM6_BASE_ADDR;
- case 6:
- return (struct pwm_regs *)PWM7_BASE_ADDR;
- case 7:
- return (struct pwm_regs *)PWM8_BASE_ADDR;
-#endif
- default:
- printf("unknown pwm_id: %d\n", pwm_id);
- break;
- }
- return NULL;
-}
-
-int pwm_imx_get_parms(int period_ns, int duty_ns, unsigned long *period_c,
- unsigned long *duty_c, unsigned long *prescale)
-{
- unsigned long long c;
-
- /*
- * we have not yet a clock framework for imx6, so add the clock
- * value here as a define. Replace it when we have the clock
- * framework.
- */
- c = CONFIG_IMX6_PWM_PER_CLK;
- c = c * period_ns;
- do_div(c, 1000000000);
- *period_c = c;
-
- *prescale = *period_c / 0x10000 + 1;
-
- *period_c /= *prescale;
- c = *period_c * (unsigned long long)duty_ns;
- do_div(c, period_ns);
- *duty_c = c;
-
- /*
- * according to imx pwm RM, the real period value should be
- * PERIOD value in PWMPR plus 2.
- */
- if (*period_c > 2)
- *period_c -= 2;
- else
- *period_c = 0;
-
- return 0;
-}
diff --git a/drivers/pwm/pwm-imx-util.h b/drivers/pwm/pwm-imx-util.h
deleted file mode 100644
index 82c61d774d..0000000000
--- a/drivers/pwm/pwm-imx-util.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/*
- * (C) Copyright 2014
- * Heiko Schocher, DENX Software Engineering, hs@denx.de.
- *
- * Basic support for the pwm module on imx6.
- */
-
-#ifndef _pwm_imx_util_h_
-#define _pwm_imx_util_h_
-
-struct pwm_regs *pwm_id_to_reg(int pwm_id);
-int pwm_imx_get_parms(int period_ns, int duty_ns, unsigned long *period_c,
- unsigned long *duty_c, unsigned long *prescale);
-#endif
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index 2008c1520e..67dad21295 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -13,7 +13,6 @@
#include <pwm.h>
#include <asm/arch/imx-regs.h>
#include <asm/io.h>
-#include "pwm-imx-util.h"
int pwm_init(int pwm_id, int div, int invert)
{
@@ -44,6 +43,72 @@ int pwm_config_internal(struct pwm_regs *pwm, unsigned long period_cycles,
return 0;
}
+/* pwm_id from 0..7 */
+struct pwm_regs *pwm_id_to_reg(int pwm_id)
+{
+
+ switch (pwm_id) {
+ case 0:
+ return (struct pwm_regs *)PWM1_BASE_ADDR;
+ case 1:
+ return (struct pwm_regs *)PWM2_BASE_ADDR;
+#ifdef CONFIG_MX6
+ case 2:
+ return (struct pwm_regs *)PWM3_BASE_ADDR;
+ case 3:
+ return (struct pwm_regs *)PWM4_BASE_ADDR;
+#endif
+#ifdef CONFIG_MX6SX
+ case 4:
+ return (struct pwm_regs *)PWM5_BASE_ADDR;
+ case 5:
+ return (struct pwm_regs *)PWM6_BASE_ADDR;
+ case 6:
+ return (struct pwm_regs *)PWM7_BASE_ADDR;
+ case 7:
+ return (struct pwm_regs *)PWM8_BASE_ADDR;
+#endif
+ default:
+ printf("unknown pwm_id: %d\n", pwm_id);
+ break;
+ }
+ return NULL;
+}
+
+int pwm_imx_get_parms(int period_ns, int duty_ns, unsigned long *period_c,
+ unsigned long *duty_c, unsigned long *prescale)
+{
+ unsigned long long c;
+
+ /*
+ * we have not yet a clock framework for imx6, so add the clock
+ * value here as a define. Replace it when we have the clock
+ * framework.
+ */
+ c = CONFIG_IMX6_PWM_PER_CLK;
+ c = c * period_ns;
+ do_div(c, 1000000000);
+ *period_c = c;
+
+ *prescale = *period_c / 0x10000 + 1;
+
+ *period_c /= *prescale;
+ c = *period_c * (unsigned long long)duty_ns;
+ do_div(c, period_ns);
+ *duty_c = c;
+
+ /*
+ * according to imx pwm RM, the real period value should be
+ * PERIOD value in PWMPR plus 2.
+ */
+ if (*period_c > 2)
+ *period_c -= 2;
+ else
+ *period_c = 0;
+
+ return 0;
+}
+
int pwm_config(int pwm_id, int duty_ns, int period_ns)
{
struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 5/9] driver: pwm: pwm-imx: get and enable per/ipg clock using dm
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (3 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 4/9] drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:43 ` sbabic
2022-03-26 11:19 ` [PATCH v5 6/9] driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms Tommaso Merciai
` (4 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Alice Guo,
Andrey Zhizhikin, Ye Li, u-boot
Get and enable ipg/per pwms clocks using dm api into imx_pwm_of_to_plat
and imx_pwm_probe driver function
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
Changes since v3:
- Fix ipg/per clk declaration
- Fix clk_get_by_name call
- Fix clk_enable call
drivers/pwm/pwm-imx.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index 67dad21295..74b0817a05 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -24,6 +24,7 @@ int pwm_init(int pwm_id, int div, int invert)
writel(0, &pwm->ir);
return 0;
}
+#include <clk.h>
int pwm_config_internal(struct pwm_regs *pwm, unsigned long period_cycles,
unsigned long duty_cycles, unsigned long prescale)
@@ -148,6 +149,8 @@ void pwm_disable(int pwm_id)
struct imx_pwm_priv {
struct pwm_regs *regs;
bool invert;
+ struct clk per_clk;
+ struct clk ipg_clk;
};
static int imx_pwm_set_invert(struct udevice *dev, uint channel,
@@ -193,15 +196,43 @@ static int imx_pwm_set_enable(struct udevice *dev, uint channel, bool enable)
static int imx_pwm_of_to_plat(struct udevice *dev)
{
+ int ret;
struct imx_pwm_priv *priv = dev_get_priv(dev);
priv->regs = dev_read_addr_ptr(dev);
+ ret = clk_get_by_name(dev, "per", &priv->per_clk);
+ if (ret) {
+ printf("Failed to get per_clk\n");
+ return ret;
+ }
+
+ ret = clk_get_by_name(dev, "ipg", &priv->ipg_clk);
+ if (ret) {
+ printf("Failed to get ipg_clk\n");
+ return ret;
+ }
+
return 0;
}
static int imx_pwm_probe(struct udevice *dev)
{
+ int ret;
+ struct imx_pwm_priv *priv = dev_get_priv(dev);
+
+ ret = clk_enable(&priv->per_clk);
+ if (ret) {
+ printf("Failed to enable per_clk\n");
+ return ret;
+ }
+
+ ret = clk_enable(&priv->ipg_clk);
+ if (ret) {
+ printf("Failed to enable ipg_clk\n");
+ return ret;
+ }
+
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 6/9] driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (4 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 5/9] driver: pwm: pwm-imx: get and enable per/ipg clock using dm Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 7/9] driver: pwm: pwm-imx: separe dm from non dm implementation Tommaso Merciai
` (3 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Ye Li,
Andrey Zhizhikin, Alice Guo, u-boot
Introduce pwm_dm_imx_get_parms, dm version of pwm_imx_get_parms.
This function get clock rate using clk dm api
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
Changes since v3:
- Fix clk_get_rate call
drivers/pwm/pwm-imx.c | 32 +++++++++++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index 74b0817a05..1d656e726f 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -153,6 +153,36 @@ struct imx_pwm_priv {
struct clk ipg_clk;
};
+int pwm_dm_imx_get_parms(struct imx_pwm_priv *priv, int period_ns,
+ int duty_ns, unsigned long *period_c, unsigned long *duty_c,
+ unsigned long *prescale)
+{
+ unsigned long long c;
+
+ c = clk_get_rate(&priv->per_clk);
+ c = c * period_ns;
+ do_div(c, 1000000000);
+ *period_c = c;
+
+ *prescale = *period_c / 0x10000 + 1;
+
+ *period_c /= *prescale;
+ c = *period_c * (unsigned long long)duty_ns;
+ do_div(c, period_ns);
+ *duty_c = c;
+
+ /*
+ * according to imx pwm RM, the real period value should be
+ * PERIOD value in PWMPR plus 2.
+ */
+ if (*period_c > 2)
+ *period_c -= 2;
+ else
+ *period_c = 0;
+
+ return 0;
+}
+
static int imx_pwm_set_invert(struct udevice *dev, uint channel,
bool polarity)
{
@@ -173,7 +203,7 @@ static int imx_pwm_set_config(struct udevice *dev, uint channel,
debug("%s: Config '%s' channel: %d\n", __func__, dev->name, channel);
- pwm_imx_get_parms(period_ns, duty_ns, &period_cycles, &duty_cycles,
+ pwm_dm_imx_get_parms(priv, period_ns, duty_ns, &period_cycles, &duty_cycles,
&prescale);
return pwm_config_internal(regs, period_cycles, duty_cycles, prescale);
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 7/9] driver: pwm: pwm-imx: separe dm from non dm implementation
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (5 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 6/9] driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:43 ` sbabic
2022-03-26 11:19 ` [PATCH v5 8/9] arm: dts: imx8mm_evk: add pwm1/backlight support Tommaso Merciai
` (2 subsequent siblings)
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Ye Li, Alice Guo,
Andrey Zhizhikin, u-boot
Separe dm implementation from non dm implementation of pwm-imx
driver using CONFIG_DM_PWM
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
drivers/pwm/pwm-imx.c | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index 1d656e726f..9b8a8c189d 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -13,17 +13,6 @@
#include <pwm.h>
#include <asm/arch/imx-regs.h>
#include <asm/io.h>
-
-int pwm_init(int pwm_id, int div, int invert)
-{
- struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
-
- if (!pwm)
- return -1;
-
- writel(0, &pwm->ir);
- return 0;
-}
#include <clk.h>
int pwm_config_internal(struct pwm_regs *pwm, unsigned long period_cycles,
@@ -44,6 +33,7 @@ int pwm_config_internal(struct pwm_regs *pwm, unsigned long period_cycles,
return 0;
}
+#ifndef CONFIG_DM_PWM
/* pwm_id from 0..7 */
struct pwm_regs *pwm_id_to_reg(int pwm_id)
{
@@ -110,6 +100,17 @@ int pwm_imx_get_parms(int period_ns, int duty_ns, unsigned long *period_c,
return 0;
}
+int pwm_init(int pwm_id, int div, int invert)
+{
+ struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
+
+ if (!pwm)
+ return -1;
+
+ writel(0, &pwm->ir);
+ return 0;
+}
+
int pwm_config(int pwm_id, int duty_ns, int period_ns)
{
struct pwm_regs *pwm = (struct pwm_regs *)pwm_id_to_reg(pwm_id);
@@ -145,7 +146,7 @@ void pwm_disable(int pwm_id)
clrbits_le32(&pwm->cr, PWMCR_EN);
}
-#if defined(CONFIG_DM_PWM)
+#else
struct imx_pwm_priv {
struct pwm_regs *regs;
bool invert;
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 8/9] arm: dts: imx8mm_evk: add pwm1/backlight support
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (6 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 7/9] driver: pwm: pwm-imx: separe dm from non dm implementation Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:42 ` sbabic
2022-03-26 11:19 ` [PATCH v5 9/9] configs: imx8mm_evk: add pwm backlight support Tommaso Merciai
2022-04-06 8:04 ` [PATCH v5 0/9] imx8mm: add pwm-imx " Tommaso Merciai
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Stefano Babic, Fabio Estevam,
NXP i.MX U-Boot Team, Peng Fan, Andrey Zhizhikin, Ye Li,
Alice Guo, u-boot
Add pwm1/backlight support nodes for imx8mm_evk board
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
arch/arm/dts/imx8mm-evk.dtsi | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm/dts/imx8mm-evk.dtsi b/arch/arm/dts/imx8mm-evk.dtsi
index 60179e006d..e7a2bd8a64 100644
--- a/arch/arm/dts/imx8mm-evk.dtsi
+++ b/arch/arm/dts/imx8mm-evk.dtsi
@@ -41,6 +41,15 @@
enable-active-high;
};
+ backlight: backlight {
+ status = "disabled";
+ compatible = "pwm-backlight";
+ pwms = <&pwm1 0 5000000>;
+ brightness-levels = <0 255>;
+ num-interpolated-steps = <255>;
+ default-brightness-level = <250>;
+ };
+
ir-receiver {
compatible = "gpio-ir-receiver";
gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
@@ -350,6 +359,12 @@
status = "okay";
};
+&pwm1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_backlight>;
+ status = "disabled";
+};
+
&iomuxc {
pinctrl_fec1: fec1grp {
fsl,pins = <
@@ -491,4 +506,10 @@
MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B 0x166
>;
};
+
+ pinctrl_backlight: backlightgrp {
+ fsl,pins = <
+ MX8MM_IOMUXC_GPIO1_IO01_PWM1_OUT 0x06
+ >;
+ };
};
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v5 9/9] configs: imx8mm_evk: add pwm backlight support
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (7 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 8/9] arm: dts: imx8mm_evk: add pwm1/backlight support Tommaso Merciai
@ 2022-03-26 11:19 ` Tommaso Merciai
2022-04-12 18:46 ` sbabic
2022-04-06 8:04 ` [PATCH v5 0/9] imx8mm: add pwm-imx " Tommaso Merciai
9 siblings, 1 reply; 20+ messages in thread
From: Tommaso Merciai @ 2022-03-26 11:19 UTC (permalink / raw)
Cc: tommaso.merciai, alb3rto.merciai, Peng Fan, Andrey Zhizhikin,
Alice Guo, Ye Li, u-boot
Enable support for backlight/pwm-imx driver
Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
---
Changes since v4:
- Drop off CONFIG_DM_VIDEO
configs/imx8mm_evk_defconfig | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig
index 01395fc7eb..db0d19c38d 100644
--- a/configs/imx8mm_evk_defconfig
+++ b/configs/imx8mm_evk_defconfig
@@ -84,3 +84,7 @@ CONFIG_SYSRESET_PSCI=y
CONFIG_SYSRESET_WATCHDOG=y
CONFIG_DM_THERMAL=y
CONFIG_IMX_WATCHDOG=y
+CONFIG_BACKLIGHT=y
+CONFIG_BACKLIGHT_PWM=y
+CONFIG_DM_PWM=y
+CONFIG_PWM_IMX=y
\ No newline at end of file
--
2.25.1
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v5 0/9] imx8mm: add pwm-imx backlight support
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
` (8 preceding siblings ...)
2022-03-26 11:19 ` [PATCH v5 9/9] configs: imx8mm_evk: add pwm backlight support Tommaso Merciai
@ 2022-04-06 8:04 ` Tommaso Merciai
9 siblings, 0 replies; 20+ messages in thread
From: Tommaso Merciai @ 2022-04-06 8:04 UTC (permalink / raw)
To: alb3rto.merciai, Peng Fan, Ye Li, Alice Guo, Andrey Zhizhikin, u-boot
Hi,
Gentle ping on this v5.
Regards,
Tommaso
On Sat, Mar 26, 2022 at 12:19:01PM +0100, Tommaso Merciai wrote:
> Hi,
> This series add support for pwm/backlight on i.MX8MM evk,
> separe also CONFIG_DM_PWM pwm-imx implementation from non dm
> implementation moving pwm-imx-util into pwm-imx with driver
> refactoring.
>
> 1. add pwm ctrl registers fields for i.MX8MM SOC
> 2. add pwm_regs struct for i.MX8MM SOC
> 3. add pwm clocks support for i.MX8MM SOC
> 4. move pwm-imx-util into pwm-imx
> 5. get and enable per/ipg clock using dm
> 6. introduce pwm_dm_imx_get_parms
> 7. separe dm from non dm implementation into pwm-imx driver
> 8. add pwm1/backlight dts support for imx8mm_evk
> 9. add pwm backlight configs support for imx8mm_evk
>
> Tommaso Merciai (9):
> arch: mach-imx: imx8m: add pwm ctrl registers fields defines
> arch: mach-imx: imx8m: add pwm_regs struct in imx-regs
> clk: imx8mm: add pwm clocks support
> drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx
> driver: pwm: pwm-imx: get and enable per/ipg clock using dm
> driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms
> driver: pwm: pwm-imx: separe dm from non dm implementation
> arm: dts: imx8mm_evk: add pwm1/backlight support
> configs: imx8mm_evk: add pwm backlight support
>
> arch/arm/dts/imx8mm-evk.dtsi | 21 +++
> arch/arm/include/asm/arch-imx8m/imx-regs.h | 17 +++
> configs/imx8mm_evk_defconfig | 4 +
> drivers/clk/imx/clk-imx8mm.c | 28 ++++
> drivers/pwm/Makefile | 2 +-
> drivers/pwm/pwm-imx-util.c | 80 -----------
> drivers/pwm/pwm-imx-util.h | 15 --
> drivers/pwm/pwm-imx.c | 155 +++++++++++++++++++--
> 8 files changed, 212 insertions(+), 110 deletions(-)
> delete mode 100644 drivers/pwm/pwm-imx-util.c
> delete mode 100644 drivers/pwm/pwm-imx-util.h
>
> --
> 2.25.1
>
--
Tommaso Merciai
Embedded Linux Engineer
tommaso.merciai@amarulasolutions.com
__________________________________
Amarula Solutions SRL
Via Le Canevare 30, 31100 Treviso, Veneto, IT
T. +39 042 243 5310
info@amarulasolutions.com
www.amarulasolutions.com
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 8/9] arm: dts: imx8mm_evk: add pwm1/backlight support
2022-03-26 11:19 ` [PATCH v5 8/9] arm: dts: imx8mm_evk: add pwm1/backlight support Tommaso Merciai
@ 2022-04-12 18:42 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:42 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Add pwm1/backlight support nodes for imx8mm_evk board
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines
2022-03-26 11:19 ` [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines Tommaso Merciai
@ 2022-04-12 18:42 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:42 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Add pwm control registers fields defines into imx-regs.h:
> - prescaler
> - dozeen
> - waiten
> - dbgen
> - clksrc_ipg_high
> - clksrc_ipg, en field
> References:
> - iMX8MMRM.pdf p 3884
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 7/9] driver: pwm: pwm-imx: separe dm from non dm implementation
2022-03-26 11:19 ` [PATCH v5 7/9] driver: pwm: pwm-imx: separe dm from non dm implementation Tommaso Merciai
@ 2022-04-12 18:43 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:43 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Separe dm implementation from non dm implementation of pwm-imx
> driver using CONFIG_DM_PWM
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 5/9] driver: pwm: pwm-imx: get and enable per/ipg clock using dm
2022-03-26 11:19 ` [PATCH v5 5/9] driver: pwm: pwm-imx: get and enable per/ipg clock using dm Tommaso Merciai
@ 2022-04-12 18:43 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:43 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Get and enable ipg/per pwms clocks using dm api into imx_pwm_of_to_plat
> and imx_pwm_probe driver function
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 3/9] clk: imx8mm: add pwm clocks support
2022-03-26 11:19 ` [PATCH v5 3/9] clk: imx8mm: add pwm clocks support Tommaso Merciai
@ 2022-04-12 18:44 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:44 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Add clocks support for the PWM controllers. This is ported from
> Linux v5.17-rc8.
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 6/9] driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms
2022-03-26 11:19 ` [PATCH v5 6/9] driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms Tommaso Merciai
@ 2022-04-12 18:44 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:44 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Introduce pwm_dm_imx_get_parms, dm version of pwm_imx_get_parms.
> This function get clock rate using clk dm api
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 4/9] drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx
2022-03-26 11:19 ` [PATCH v5 4/9] drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx Tommaso Merciai
@ 2022-04-12 18:44 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:44 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Move pwm_imx_get_parms, pwm_id_to_reg functions into pwm-imx.c
> and drop off pwm-imx-util.c
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 2/9] arch: mach-imx: imx8m: add pwm_regs struct in imx-regs
2022-03-26 11:19 ` [PATCH v5 2/9] arch: mach-imx: imx8m: add pwm_regs struct in imx-regs Tommaso Merciai
@ 2022-04-12 18:44 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:44 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Add pwm_regs struct for i.MX8MM SOC
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v5 9/9] configs: imx8mm_evk: add pwm backlight support
2022-03-26 11:19 ` [PATCH v5 9/9] configs: imx8mm_evk: add pwm backlight support Tommaso Merciai
@ 2022-04-12 18:46 ` sbabic
0 siblings, 0 replies; 20+ messages in thread
From: sbabic @ 2022-04-12 18:46 UTC (permalink / raw)
To: Tommaso Merciai, u-boot
> Enable support for backlight/pwm-imx driver
> Signed-off-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2022-04-12 18:57 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-26 11:19 [PATCH v5 0/9] imx8mm: add pwm-imx backlight support Tommaso Merciai
2022-03-26 11:19 ` [PATCH v5 1/9] arch: mach-imx: imx8m: add pwm ctrl registers fields defines Tommaso Merciai
2022-04-12 18:42 ` sbabic
2022-03-26 11:19 ` [PATCH v5 2/9] arch: mach-imx: imx8m: add pwm_regs struct in imx-regs Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 3/9] clk: imx8mm: add pwm clocks support Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 4/9] drivers: pwm: pwm-imx: move pwm-imx-util into pwm-imx Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 5/9] driver: pwm: pwm-imx: get and enable per/ipg clock using dm Tommaso Merciai
2022-04-12 18:43 ` sbabic
2022-03-26 11:19 ` [PATCH v5 6/9] driver: pwm: pwm-imx: introduce pwm_dm_imx_get_parms Tommaso Merciai
2022-04-12 18:44 ` sbabic
2022-03-26 11:19 ` [PATCH v5 7/9] driver: pwm: pwm-imx: separe dm from non dm implementation Tommaso Merciai
2022-04-12 18:43 ` sbabic
2022-03-26 11:19 ` [PATCH v5 8/9] arm: dts: imx8mm_evk: add pwm1/backlight support Tommaso Merciai
2022-04-12 18:42 ` sbabic
2022-03-26 11:19 ` [PATCH v5 9/9] configs: imx8mm_evk: add pwm backlight support Tommaso Merciai
2022-04-12 18:46 ` sbabic
2022-04-06 8:04 ` [PATCH v5 0/9] imx8mm: add pwm-imx " Tommaso Merciai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.