PWM120 on nRF54H20 not producing output

Hi, 

I am trying to get the PWM120 to work on nRF54H20 using SDK 3.1.0 

As the starting point I am using the dimming PWM example which is working and I can get proper output. I have substituted the pwm130 with pwm120 and changed the pins to P6.6 as this is defined as the output of PWM120 ch 0 as per datasheet. 

here is the snippet from .DTS that I am using 

&pwm120 {
  status = "okay";
  pinctrl-0 = <&pwm120_default>;
  pinctrl-1 = <&pwm120_sleep>;
  pinctrl-names = "default", "sleep";
  memory-regions = <&cpuapp_dma_region>;
};

pwmleds {
  compatible = "pwm-leds";

  pwm_led2: pwm_led_2 {
    pwms = <&pwm130 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
  };

  alt_clk: alt_clk {
    pwms = <&pwm120 0 PWM_USEC(10) PWM_POLARITY_NORMAL>;
  };

};

and the pin control dtsi

/omit-if-no-ref/ pwm120_default: pwm120_default {
group1 {
  psels = <NRF_PSEL(PWM_OUT0, 6, 6)>;
};
};

/omit-if-no-ref/ pwm120_sleep: pwm120_sleep {
group1 {
  psels = <NRF_PSEL(PWM_OUT0, 6, 6)>;
low-power-enable;
};
};

In the main function I am calling the following

    if (!pwm_is_ready_dt(&pwm_alt_clk)) {
        printk("Error: PWM device %s is not ready\n",
               pwm_alt_clk.dev->name);
        return 0;
    }

    period_ns = 200;
    ret = pwm_set_dt(&pwm_alt_clk, period_ns, period_ns / 2U);
    if (ret) {
        printk("Error %d: failed to set pulse width\n", ret);
        return 0;
    }
What is happening is that on the output I have a solid high signal all the time. There is no switching of any sort. This code is working with PWM130 and PWM131 on their CH0. 
If feels like that PWM120 is not being clocked properly but I am not finding anything in the datasheet regarding how to check this and the counting register is not available so I can see if the value is increasing or not.
After stopping the device and reading out the registers I can see that the PWM120 is firing the RAMUDERNDLOW event, is this blocking the output. According to my understanding it should use the last received value.
Generally my goal is to get a 10MHz signal out of the pin as its needed for driving another device. 
I am new to zephyr programming so any help would be appreciated
Parents Reply Children
No Data
Related