See drivers/mcs/mcs_gpio (doxygen) for the Doxygen documentation.

Overview

The MCS GPIO driver is meant to provide the infrastructure for adding a GPIO to a jesd204 topology for projects where one wants to do multi-chip synchronization. The driver includes a state op that can be called from the jesd-fsm that toggles the respective gpio at the necessary time to synchronize the devices.

Supported Devices

Any GPIO required in a project featuring jesd and multi-chip synchronization.

Applications

  • MXFE Multi-Chip Synchronization

Configuration

The mcs_gpio driver init param only requires a no_os_gpio_init_param.

MCS_GPIO Driver Initialization Example

struct mcs_gpio_dev *mcs_dev;
struct no_os_gpio_init_param gpio_req_init = {
        .number = PHY_SYNC,
        .platform_ops = &xil_gpio_ops,
        .extra = &xil_gpio_param
};
struct mcs_gpio_init_param mcs_gpio_init_params = {
        .gpio_req = &gpio_req_init,
};

status = mcs_gpio_init(&mcs_dev, &mcs_gpio_init_params);
if (status) {
        printf("mcs_gpio_init() error: %" PRId32 "\n", status);
        return status;
}

/* Other devices initialization and configuration for jesd204 topology */

struct jesd204_topology_dev devs[] = {
        /* Other devices in the topology */
        {
                .jdev = mcs_dev->jdev,
                .link_ids = {DEFRAMER_LINK0_TX},
                .links_number = 1,
        },
};