This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PWMSSTBClkEnable Function Operation

hi. all.

 

I have issue.

PWMSSTBClkEnable Function in the Starterware 2.00.00.07\platform\evmAM335x\pwmss.c

 

original source code is below

 

void PWMSSTBClkEnable(unsigned int instance) {

    switch(instance)

     {

          case 0:                HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL)= CONTROL_PWMSS_CTRL_PWMSS0_TBCLKEN;                break;

          case 1:                HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL)= CONTROL_PWMSS_CTRL_PWMMS1_TBCLKEN;                break;

          case 2:                HWREG(SOC_CONTROL_REGS +  CONTROL_PWMSS_CTRL)= CONTROL_PWMSS_CTRL_PWMSS2_TBCLKEN;                break;

          default:          break;     

  }

}

 

But this function generate problem when pwmss are used multiple

example

 

PWMSSTBClkEnable(0);  //Enable block0

PWMSSTBClkEnable(1); // Disable block0 , Enable block1

PWMSSTBClkEnable(2); //Disable block0,block1  Enable block2

 

As a result, PWMSS2 blocks are living alone

I suggest original code to be fixed 

 

 case 0: HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL) |= CONTROL_PWMSS_CTRL_PWMSS0_TBCLKEN;                break;

 case 1: HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL) |= CONTROL_PWMSS_CTRL_PWMMS1_TBCLKEN;                break;

 case 2: HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL) |= CONTROL_PWMSS_CTRL_PWMSS2_TBCLKEN;                 break;