1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 2d60a2099SWang Huan /* 3d60a2099SWang Huan * Copyright 2014 Freescale Semiconductor, Inc. 4d60a2099SWang Huan */ 5d60a2099SWang Huan 6d60a2099SWang Huan #ifndef __FSL_SERDES_H 7d60a2099SWang Huan #define __FSL_SERDES_H 8d60a2099SWang Huan 9d60a2099SWang Huan #include <config.h> 10d60a2099SWang Huan 11d60a2099SWang Huan enum srds_prtcl { 1271fe2225SHou Zhiqiang /* 1371fe2225SHou Zhiqiang * Nobody will check whether the device 'NONE' has been configured, 1471fe2225SHou Zhiqiang * So use it to indicate if the serdes_prtcl_map has been initialized. 1571fe2225SHou Zhiqiang */ 16d60a2099SWang Huan NONE = 0, 17d60a2099SWang Huan PCIE1, 18d60a2099SWang Huan PCIE2, 19d60a2099SWang Huan SATA1, 20d60a2099SWang Huan SGMII_TSEC1, 21d60a2099SWang Huan SGMII_TSEC2, 22d60a2099SWang Huan }; 23d60a2099SWang Huan 24d60a2099SWang Huan enum srds { 25d60a2099SWang Huan FSL_SRDS_1 = 0, 26d60a2099SWang Huan FSL_SRDS_2 = 1, 27d60a2099SWang Huan }; 28d60a2099SWang Huan 29d60a2099SWang Huan int is_serdes_configured(enum srds_prtcl device); 30d60a2099SWang Huan void fsl_serdes_init(void); 31d60a2099SWang Huan const char *serdes_clock_to_string(u32 clock); 32d60a2099SWang Huan 33d60a2099SWang Huan int serdes_get_first_lane(u32 sd, enum srds_prtcl device); 34d60a2099SWang Huan enum srds_prtcl serdes_get_prtcl(int serdes, int cfg, int lane); 35d60a2099SWang Huan 36d60a2099SWang Huan #endif /* __FSL_SERDES_H */ 37