board/arm/am67/t3-gem-o1: Move EPWM initialization to its own file

Moves EPWM initialization from am67_bringup.c to am67_pwm.c. Initialization
  now requires only a function call in bringup.c.

  Nxstyle checked, builds same.

Signed-off-by: Ulaş Sertan Kemeç <sertan.usk@gmail.com>
This commit is contained in:
Ulaş Sertan Kemeç 2026-09-17 11:10:14 +03:00 • committed by Alan C. Assis
parent 7930953874
commit 35b68203ad
3 changed files with 68 additions and 51 deletions

View file

@ -102,4 +102,15 @@ int am67_epwm_init(void);
struct pwm_lowerhalf_s *am67_epwminitialize(int pwm);
/****************************************************************************
* Name: am67_pwmdev_initialize
*
* Description:
* Initialize the EPWM lower-half driver and register the PWM device.
* This function is called from board bringup.
*
****************************************************************************/
void am67_pwmdev_initialize(void);
#endif /* __ARCH_ARM_SRC_AM67_AM67_PWM_H */

View file

@ -76,59 +76,9 @@ int am67_bringup(void)
#endif
#if defined(CONFIG_AM67_EPWM0) || defined(CONFIG_AM67_EPWM1)
ret = am67_epwm_init();
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: Failed to initialize EPWM: %d\n", ret);
}
else
{
struct pwm_lowerhalf_s *lower;
syslog(LOG_INFO, "EPWM: CTRL_MMR unlocked\n");
#ifdef CONFIG_AM67_EPWM0
lower = am67_epwminitialize(0);
if (lower == NULL)
{
syslog(LOG_ERR, "ERROR: Failed to get EPWM0 lower half\n");
}
else
{
ret = pwm_register("/dev/pwm0", lower);
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: pwm_register failed: %d\n", ret);
}
else
{
syslog(LOG_INFO, "EPWM0: registered /dev/pwm0\n");
}
}
am67_pwmdev_initialize();
#endif
#ifdef CONFIG_AM67_EPWM1
lower = am67_epwminitialize(1);
if (lower == NULL)
{
syslog(LOG_ERR, "ERROR: Failed to get EPWM1 lower half\n");
}
else
{
ret = pwm_register("/dev/pwm1", lower);
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: pwm_register failed: %d\n", ret);
}
else
{
syslog(LOG_INFO, "EPWM1: registered /dev/pwm1\n");
}
}
#endif
}
#endif /* CONFIG_AM67_EPWM0 || CONFIG_AM67_EPWM1 */
#ifdef CONFIG_FS_PROCFS
/* Mount the procfs file system */

View file

@ -40,3 +40,59 @@
* Public Functions
****************************************************************************/
void am67_pwmdev_initialize(void)
{
int ret = am67_epwm_init();
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: Failed to initialize EPWM: %d\n", ret);
}
else
{
struct pwm_lowerhalf_s *lower;
syslog(LOG_INFO, "EPWM: CTRL_MMR unlocked\n");
#ifdef CONFIG_AM67_EPWM0
lower = am67_epwminitialize(0);
if (lower == NULL)
{
syslog(LOG_ERR, "ERROR: Failed to get EPWM0 lower half\n");
}
else
{
ret = pwm_register("/dev/pwm0", lower);
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: pwm_register failed: %d\n", ret);
}
else
{
syslog(LOG_INFO, "EPWM0: registered /dev/pwm0\n");
}
}
#endif
#ifdef CONFIG_AM67_EPWM1
lower = am67_epwminitialize(1);
if (lower == NULL)
{
syslog(LOG_ERR, "ERROR: Failed to get EPWM1 lower half\n");
}
else
{
ret = pwm_register("/dev/pwm1", lower);
if (ret < 0)
{
syslog(LOG_ERR, "ERROR: pwm_register failed: %d\n", ret);
}
else
{
syslog(LOG_INFO, "EPWM1: registered /dev/pwm1\n");
}
}
#endif
}
}