blob: 4afb3a48bfdc71387b787b0c7bb64542a3ae17ee [file] [log] [blame]
Aaron Williams1fd14ee2022-04-07 09:11:03 +02001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Copyright (C) 2018-2022 Marvell International Ltd.
4 *
5 * Functions for AGL (RGMII) commong initialization, configuration.
6 */
7
8#ifndef __CVMX_AGL_H__
9#define __CVMX_AGL_H__
10
11/*
12 * @param port to enable
13 *
14 * @return Zero on success, negative on failure
15 */
16int cvmx_agl_enable(int port);
17
18cvmx_helper_link_info_t cvmx_agl_link_get(int port);
19
20/*
21 * Set MII/RGMII link based on mode.
22 *
23 * @param port interface port to set the link.
24 * @param link_info Link status
25 *
26 * @return 0 on success and 1 on failure
27 */
28int cvmx_agl_link_set(int port, cvmx_helper_link_info_t link_info);
29
30/**
31 * Disables the sending of flow control (pause) frames on the specified
32 * AGL (RGMII) port(s).
33 *
34 * @param interface Which interface (0 or 1)
35 * @param port_mask Mask (4bits) of which ports on the interface to disable
36 * backpressure on.
37 * 1 => disable backpressure
38 * 0 => enable backpressure
39 *
40 * @return 0 on success
41 * -1 on error
42 */
43int cvmx_agl_set_backpressure_override(u32 interface, uint32_t port_mask);
44
45#endif /* __CVMX_AGL_H__ */