static inline int32_t GPT__GetCtrlValue()

in IndustrialDeviceController/Software/MT3620_IDC_RTApp/lib/GPT.c [34:128]


static inline int32_t GPT__GetCtrlValue(
    GPT       *handle,
    bool      *enabled,
    GPT_Mode  *mode,
    bool      *speed,
    bool      *restart)
{
    if (!handle) {
        return ERROR_PARAMETER;
    }

    int32_t error = ERROR_NONE;
    switch (handle->id) {
    case MT3620_UNIT_GPT0:
        if (enabled) {
            *enabled = MT3620_GPT_FIELD_READ(gpt0_ctrl, en);
        }
        if (mode) {
            *mode = MT3620_GPT_FIELD_READ(gpt0_ctrl, mode);
        }
        if (speed) {
            *speed = MT3620_GPT_FIELD_READ(gpt0_ctrl, speed);
        }
        if (restart) {
            *restart = MT3620_GPT_FIELD_READ(gpt0_ctrl, restart);
        }
        break;

    case MT3620_UNIT_GPT1:
        if (enabled) {
            *enabled = MT3620_GPT_FIELD_READ(gpt1_ctrl, en);
        }
        if (mode) {
            *mode = MT3620_GPT_FIELD_READ(gpt1_ctrl, mode);
        }
        if (speed) {
            *speed = MT3620_GPT_FIELD_READ(gpt1_ctrl, speed);
        }
        if (restart) {
            *restart = MT3620_GPT_FIELD_READ(gpt1_ctrl, restart);
        }
        break;

    case MT3620_UNIT_GPT2:
        if (enabled) {
            *enabled = MT3620_GPT_FIELD_READ(gpt2_ctrl, en);
        }
        if (mode) {
            *mode = GPT_MODE_NONE;
        }
        if (speed) {
            *speed = MT3620_GPT_FIELD_READ(gpt2_ctrl, speed);
        }
        if (restart) {
            error = ERROR_UNSUPPORTED;
        }
        break;

    case MT3620_UNIT_GPT3:
        if (enabled) {
            *enabled = MT3620_GPT_FIELD_READ(gpt3_ctrl, en);
        }
        if (mode) {
            *mode = handle->mode;
        }
        if (speed) {
            error = ERROR_UNSUPPORTED;
        }
        if (restart) {
            error = ERROR_UNSUPPORTED;
        }
        break;

    case MT3620_UNIT_GPT4:
        if (enabled) {
            *enabled = MT3620_GPT_FIELD_READ(gpt4_ctrl, en);
        }
        if (mode) {
            *mode = GPT_MODE_NONE;
        }
        if (speed) {
            *speed = MT3620_GPT_FIELD_READ(gpt4_ctrl, speed);
        }
        if (restart) {
            error = ERROR_UNSUPPORTED;
        }
        break;

    default:
        error = ERROR_UNSUPPORTED;
        break;
    }

    return error;
}