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.

PROCESSOR-SDK-J721E: am65-cpts Linux driver bug?

Part Number: PROCESSOR-SDK-J721E

Tool/software:

The Linux driver am65-cpts.c seems to use wrong bits for estf ppm adjustments compared to the AM65x/DRA80xM Technical Reference Manual spruid7e.

Line 451-456:
    if (cpts->pps_enabled) {
        estf_ctrl_val = am65_cpts_read32(cpts, genf[pps_index].control);
        if (neg_adj)
            estf_ctrl_val &= ~BIT(1);
        else
            estf_ctrl_val |= BIT(1);

According to 11.1.4.1.33 CPTS_TS_ESTF_CONTROL_REG Register in spruid7e the PPM_DIR bit should be bit 0, not bit 1. Also its polarity is used in a inverse way.

Question: Is the driver correct, or the Technical Reference Manual?

Thanks a lot for your help,
best regards,

Bernd


  • Hi,

    According to 11.1.4.1.33 CPTS_TS_ESTF_CONTROL_REG Register in spruid7e the PPM_DIR bit should be bit 0, not bit 1. Also its polarity is used in a inverse way.

    In the driver, we are not changing the PPM_DIR in ESTf control, but we change the PPM_TS_DIR in the CPTS control based on "neg_adj" earlier.

    Here we are indeed just changing the polarity.

    Not sure why that is exactly done. I will get more clarity on the matter and come back to you.

    Is this just for understanding purpose or are you facing issues with the CPTS driver?

    Regards,
    Tanmay