]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
exynos: Rework legacy PWM usage
authorTom Rini <trini@konsulko.com>
Sun, 4 Dec 2022 15:03:26 +0000 (10:03 -0500)
committerTom Rini <trini@konsulko.com>
Fri, 23 Dec 2022 15:07:03 +0000 (10:07 -0500)
The way that the timer support is currently done for exynos/nexell
platforms relies on the legacy PWM infrastructure, and that needs to be
updated. However, we really cannot safely undef CONFIG_DM_PWM to build
the timer.c file without warnings. For now, rename the relevant legacy
functions to be prefixed with s5p_ and add prototypes to the arch pwm.h
files.

Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Dzmitry Sankouski <dsankouski@gmail.com>
Cc: Stefan Bosch <stefan_b@posteo.net>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/arm/cpu/armv7/s5p-common/pwm.c
arch/arm/cpu/armv7/s5p-common/timer.c
arch/arm/mach-exynos/include/mach/pwm.h
arch/arm/mach-nexell/include/mach/pwm.h
arch/arm/mach-s5pc1xx/include/mach/pwm.h
board/friendlyarm/nanopi2/board.c
board/friendlyarm/nanopi2/onewire.c

index aef2e5574b41450cc182b29c6965906024d7502b..5068327d3c5fdb7c75ca70986e58156a5cddc450 100644 (file)
@@ -7,12 +7,11 @@
 
 #include <common.h>
 #include <errno.h>
-#include <pwm.h>
 #include <asm/io.h>
 #include <asm/arch/pwm.h>
 #include <asm/arch/clk.h>
 
-int pwm_enable(int pwm_id)
+int s5p_pwm_enable(int pwm_id)
 {
        const struct s5p_timer *pwm =
 #if defined(CONFIG_ARCH_NEXELL)
@@ -30,7 +29,7 @@ int pwm_enable(int pwm_id)
        return 0;
 }
 
-void pwm_disable(int pwm_id)
+void s5p_pwm_disable(int pwm_id)
 {
        const struct s5p_timer *pwm =
 #if defined(CONFIG_ARCH_NEXELL)
@@ -92,7 +91,7 @@ static unsigned long pwm_calc_tin(int pwm_id, unsigned long freq)
 
 #define NS_IN_SEC 1000000000UL
 
-int pwm_config(int pwm_id, int duty_ns, int period_ns)
+int s5p_pwm_config(int pwm_id, int duty_ns, int period_ns)
 {
        const struct s5p_timer *pwm =
 #if defined(CONFIG_ARCH_NEXELL)
@@ -157,7 +156,7 @@ int pwm_config(int pwm_id, int duty_ns, int period_ns)
        return 0;
 }
 
-int pwm_init(int pwm_id, int div, int invert)
+int s5p_pwm_init(int pwm_id, int div, int invert)
 {
        u32 val;
        const struct s5p_timer *pwm =
@@ -219,7 +218,7 @@ int pwm_init(int pwm_id, int div, int invert)
                val |= TCON_INVERTER(pwm_id);
        writel(val, &pwm->tcon);
 
-       pwm_enable(pwm_id);
+       s5p_pwm_enable(pwm_id);
 
        return 0;
 }
index 8533d04878c2a71e493e14985450eebc13a925a7..f4a045e2f0d2cbef5eadac58bb981545393e8beb 100644 (file)
 #include <asm/arch/clk.h>
 #include <linux/delay.h>
 
-/* Use the old PWM interface for now */
-#undef CONFIG_DM_PWM
-#include <pwm.h>
-
 DECLARE_GLOBAL_DATA_PTR;
 
 unsigned long get_current_tick(void);
@@ -49,9 +45,9 @@ static unsigned long timer_get_us_down(void)
 int timer_init(void)
 {
        /* PWM Timer 4 */
-       pwm_init(4, MUX_DIV_4, 0);
-       pwm_config(4, 100000, 100000);
-       pwm_enable(4);
+       s5p_pwm_init(4, MUX_DIV_4, 0);
+       s5p_pwm_config(4, 100000, 100000);
+       s5p_pwm_enable(4);
 
        /* Use this as the current monotonic time in us */
        gd->arch.timer_reset_value = 0;
index 417fc15551d5863a9b54deb566fffeef3a22f66f..17372492d586701aa9b312c19abc112a9c289eef 100644 (file)
@@ -49,6 +49,11 @@ struct s5p_timer {
        unsigned int    tcnto4;
        unsigned int    tintcstat;
 };
+
+int s5p_pwm_init (int pwm_id, int div, int invert);
+int s5p_pwm_config (int pwm_id, int duty_ns, int period_ns);
+int s5p_pwm_enable (int pwm_id);
+void s5p_pwm_disable (int pwm_id);
 #endif /* __ASSEMBLY__ */
 
 #endif
index 08a287d308ff26c2dd03b4c37459e6c0e71dbb94..1e12058dd53487ddc3b50345ed12d81a92356b23 100644 (file)
@@ -49,6 +49,11 @@ struct s5p_timer {
        unsigned int    tcnto4;
        unsigned int    tintcstat;
 };
+
+int s5p_pwm_init (int pwm_id, int div, int invert);
+int s5p_pwm_config (int pwm_id, int duty_ns, int period_ns);
+int s5p_pwm_enable (int pwm_id);
+void s5p_pwm_disable (int pwm_id);
 #endif /* __ASSEMBLY__ */
 
 #endif
index 1a531beddc6351f955e556de4ff5d4a3d71f8222..6d53e52f64977cfa2c4a5f3862f851bc21ce5df5 100644 (file)
@@ -49,6 +49,11 @@ struct s5p_timer {
        unsigned int    tcnto4;
        unsigned int    tintcstat;
 };
+
+int s5p_pwm_init (int pwm_id, int div, int invert);
+int s5p_pwm_config (int pwm_id, int duty_ns, int period_ns);
+int s5p_pwm_enable (int pwm_id);
+void s5p_pwm_disable (int pwm_id);
 #endif /* __ASSEMBLY__ */
 
 #endif
index 954197282e6b885ebe12638e390a32bffae6fa42..393c5a447d6fd085fe6af6981c56ff1fefc3391c 100644 (file)
@@ -80,9 +80,9 @@ static void bd_backlight_on(void)
 
 #elif defined(BACKLIGHT_CH)
        /* pwm backlight ON: HIGH, ON: LOW */
-       pwm_init(BACKLIGHT_CH,
+       s5p_pwm_init(BACKLIGHT_CH,
                 BACKLIGHT_DIV, BACKLIGHT_INV);
-       pwm_config(BACKLIGHT_CH,
+       s5p_pwm_config(BACKLIGHT_CH,
                   TO_DUTY_NS(BACKLIGHT_DUTY, BACKLIGHT_HZ),
                   TO_PERIOD_NS(BACKLIGHT_HZ));
 #endif
index fb356639be2fd893211c3c0a7fec344191f52cd1..56f0f2dfcebab838eac90b213780de7ac5ed9d14 100644 (file)
@@ -9,8 +9,8 @@
 #include <errno.h>
 #include <asm/io.h>
 #include <asm/arch/clk.h>
+#include <asm/arch/pwm.h>
 #include <i2c.h>
-#include <pwm.h>
 
 #include <irq_func.h>
 
@@ -102,7 +102,7 @@ static int onewire_init_timer(void)
        /* range: 1080~1970 */
        period_ns -= 1525;
 
-       return pwm_config(PWM_CH, period_ns >> 1, period_ns);
+       return s5p_pwm_config(PWM_CH, period_ns >> 1, period_ns);
 }
 
 static void wait_one_tick(void)