10ade8cd8SKonstantin Porotchkin /* 20ade8cd8SKonstantin Porotchkin * Copyright (C) 2018 Marvell International Ltd. 30ade8cd8SKonstantin Porotchkin * 40ade8cd8SKonstantin Porotchkin * SPDX-License-Identifier: BSD-3-Clause 50ade8cd8SKonstantin Porotchkin * https://spdx.org/licenses 60ade8cd8SKonstantin Porotchkin */ 70ade8cd8SKonstantin Porotchkin 842a29337SGrzegorz Jaszczyk /* Those are parameters for xfi mode, which need to be tune for each board type. 942a29337SGrzegorz Jaszczyk * For known DB boards the parameters was already calibrated and placed under 10*a2847172SGrzegorz Jaszczyk * the plat/marvell/armada/a8k/<board_type>/board/phy-porting-layer.h 1142a29337SGrzegorz Jaszczyk */ 1242a29337SGrzegorz Jaszczyk struct xfi_params { 1342a29337SGrzegorz Jaszczyk uint8_t g1_ffe_res_sel; 1442a29337SGrzegorz Jaszczyk uint8_t g1_ffe_cap_sel; 1542a29337SGrzegorz Jaszczyk uint8_t align90; 1642a29337SGrzegorz Jaszczyk uint8_t g1_dfe_res; 1742a29337SGrzegorz Jaszczyk uint8_t g1_amp; 1842a29337SGrzegorz Jaszczyk uint8_t g1_emph; 1942a29337SGrzegorz Jaszczyk uint8_t g1_emph_en; 2042a29337SGrzegorz Jaszczyk uint8_t g1_tx_amp_adj; 2142a29337SGrzegorz Jaszczyk uint8_t g1_tx_emph_en; 2242a29337SGrzegorz Jaszczyk uint8_t g1_tx_emph; 2342a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmuff; 2442a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmufi; 2542a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmupf; 2642a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmupi; 2742a29337SGrzegorz Jaszczyk _Bool valid; 2842a29337SGrzegorz Jaszczyk }; 2942a29337SGrzegorz Jaszczyk 3042a29337SGrzegorz Jaszczyk struct sata_params { 3142a29337SGrzegorz Jaszczyk uint8_t g1_amp; 3242a29337SGrzegorz Jaszczyk uint8_t g2_amp; 3342a29337SGrzegorz Jaszczyk uint8_t g3_amp; 3442a29337SGrzegorz Jaszczyk 3542a29337SGrzegorz Jaszczyk uint8_t g1_emph; 3642a29337SGrzegorz Jaszczyk uint8_t g2_emph; 3742a29337SGrzegorz Jaszczyk uint8_t g3_emph; 3842a29337SGrzegorz Jaszczyk 3942a29337SGrzegorz Jaszczyk uint8_t g1_emph_en; 4042a29337SGrzegorz Jaszczyk uint8_t g2_emph_en; 4142a29337SGrzegorz Jaszczyk uint8_t g3_emph_en; 4242a29337SGrzegorz Jaszczyk 4342a29337SGrzegorz Jaszczyk uint8_t g1_tx_amp_adj; 4442a29337SGrzegorz Jaszczyk uint8_t g2_tx_amp_adj; 4542a29337SGrzegorz Jaszczyk uint8_t g3_tx_amp_adj; 4642a29337SGrzegorz Jaszczyk 4742a29337SGrzegorz Jaszczyk uint8_t g1_tx_emph_en; 4842a29337SGrzegorz Jaszczyk uint8_t g2_tx_emph_en; 4942a29337SGrzegorz Jaszczyk uint8_t g3_tx_emph_en; 5042a29337SGrzegorz Jaszczyk 5142a29337SGrzegorz Jaszczyk uint8_t g1_tx_emph; 5242a29337SGrzegorz Jaszczyk uint8_t g2_tx_emph; 5342a29337SGrzegorz Jaszczyk uint8_t g3_tx_emph; 5442a29337SGrzegorz Jaszczyk 5542a29337SGrzegorz Jaszczyk uint8_t g3_dfe_res; 5642a29337SGrzegorz Jaszczyk 5742a29337SGrzegorz Jaszczyk uint8_t g3_ffe_res_sel; 5842a29337SGrzegorz Jaszczyk 5942a29337SGrzegorz Jaszczyk uint8_t g3_ffe_cap_sel; 6042a29337SGrzegorz Jaszczyk 6142a29337SGrzegorz Jaszczyk uint8_t align90; 6242a29337SGrzegorz Jaszczyk 6342a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmuff; 6442a29337SGrzegorz Jaszczyk uint8_t g2_rx_selmuff; 6542a29337SGrzegorz Jaszczyk uint8_t g3_rx_selmuff; 6642a29337SGrzegorz Jaszczyk 6742a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmufi; 6842a29337SGrzegorz Jaszczyk uint8_t g2_rx_selmufi; 6942a29337SGrzegorz Jaszczyk uint8_t g3_rx_selmufi; 7042a29337SGrzegorz Jaszczyk 7142a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmupf; 7242a29337SGrzegorz Jaszczyk uint8_t g2_rx_selmupf; 7342a29337SGrzegorz Jaszczyk uint8_t g3_rx_selmupf; 7442a29337SGrzegorz Jaszczyk 7542a29337SGrzegorz Jaszczyk uint8_t g1_rx_selmupi; 7642a29337SGrzegorz Jaszczyk uint8_t g2_rx_selmupi; 7742a29337SGrzegorz Jaszczyk uint8_t g3_rx_selmupi; 7842a29337SGrzegorz Jaszczyk 7942a29337SGrzegorz Jaszczyk _Bool valid; 8042a29337SGrzegorz Jaszczyk }; 810ade8cd8SKonstantin Porotchkin 820ade8cd8SKonstantin Porotchkin int mvebu_cp110_comphy_is_pll_locked(uint64_t comphy_base, 83f858e989SGrzegorz Jaszczyk uint8_t comphy_index); 840ade8cd8SKonstantin Porotchkin int mvebu_cp110_comphy_power_off(uint64_t comphy_base, 8555df84f9SIgal Liberman uint8_t comphy_index, uint64_t comphy_mode); 860ade8cd8SKonstantin Porotchkin int mvebu_cp110_comphy_power_on(uint64_t comphy_base, 87f858e989SGrzegorz Jaszczyk uint8_t comphy_index, uint64_t comphy_mode); 880ade8cd8SKonstantin Porotchkin int mvebu_cp110_comphy_xfi_rx_training(uint64_t comphy_base, 890ade8cd8SKonstantin Porotchkin uint8_t comphy_index); 900ade8cd8SKonstantin Porotchkin int mvebu_cp110_comphy_digital_reset(uint64_t comphy_base, uint8_t comphy_index, 910ade8cd8SKonstantin Porotchkin uint32_t comphy_mode, uint32_t command); 92