| /* |
| * Copyright (C) 2018 Marvell International Ltd. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| * https://spdx.org/licenses |
| */ |
| |
| /* Those are parameters for xfi mode, which need to be tune for each board type. |
| * For known DB boards the parameters was already calibrated and placed under |
| * the plat/marvell/armada/a8k/<board_type>/board/phy-porting-layer.h |
| */ |
| struct xfi_params { |
| uint8_t g1_ffe_res_sel; |
| uint8_t g1_ffe_cap_sel; |
| uint8_t align90; |
| uint8_t g1_dfe_res; |
| uint8_t g1_amp; |
| uint8_t g1_emph; |
| uint8_t g1_emph_en; |
| uint8_t g1_tx_amp_adj; |
| uint8_t g1_tx_emph_en; |
| uint8_t g1_tx_emph; |
| uint8_t g1_rx_selmuff; |
| uint8_t g1_rx_selmufi; |
| uint8_t g1_rx_selmupf; |
| uint8_t g1_rx_selmupi; |
| _Bool valid; |
| }; |
| |
| struct sata_params { |
| uint8_t g1_amp; |
| uint8_t g2_amp; |
| uint8_t g3_amp; |
| |
| uint8_t g1_emph; |
| uint8_t g2_emph; |
| uint8_t g3_emph; |
| |
| uint8_t g1_emph_en; |
| uint8_t g2_emph_en; |
| uint8_t g3_emph_en; |
| |
| uint8_t g1_tx_amp_adj; |
| uint8_t g2_tx_amp_adj; |
| uint8_t g3_tx_amp_adj; |
| |
| uint8_t g1_tx_emph_en; |
| uint8_t g2_tx_emph_en; |
| uint8_t g3_tx_emph_en; |
| |
| uint8_t g1_tx_emph; |
| uint8_t g2_tx_emph; |
| uint8_t g3_tx_emph; |
| |
| uint8_t g3_dfe_res; |
| |
| uint8_t g3_ffe_res_sel; |
| |
| uint8_t g3_ffe_cap_sel; |
| |
| uint8_t align90; |
| |
| uint8_t g1_rx_selmuff; |
| uint8_t g2_rx_selmuff; |
| uint8_t g3_rx_selmuff; |
| |
| uint8_t g1_rx_selmufi; |
| uint8_t g2_rx_selmufi; |
| uint8_t g3_rx_selmufi; |
| |
| uint8_t g1_rx_selmupf; |
| uint8_t g2_rx_selmupf; |
| uint8_t g3_rx_selmupf; |
| |
| uint8_t g1_rx_selmupi; |
| uint8_t g2_rx_selmupi; |
| uint8_t g3_rx_selmupi; |
| |
| uint8_t polarity_invert; |
| |
| _Bool valid; |
| }; |
| |
| struct usb_params { |
| uint8_t polarity_invert; |
| }; |
| |
| int mvebu_cp110_comphy_is_pll_locked(uint64_t comphy_base, |
| uint8_t comphy_index); |
| int mvebu_cp110_comphy_power_off(uint64_t comphy_base, |
| uint8_t comphy_index, uint64_t comphy_mode); |
| int mvebu_cp110_comphy_power_on(uint64_t comphy_base, uint8_t comphy_index, |
| uint64_t comphy_mode, |
| uint64_t comphy_train_base); |
| int mvebu_cp110_comphy_xfi_rx_training(uint64_t comphy_base, |
| uint8_t comphy_index); |
| int mvebu_cp110_comphy_digital_reset(uint64_t comphy_base, uint8_t comphy_index, |
| uint32_t comphy_mode, uint32_t command); |
| |
| #define COMPHY_POLARITY_NO_INVERT 0 |
| #define COMPHY_POLARITY_TXD_INVERT 1 |
| #define COMPHY_POLARITY_RXD_INVERT 2 |