Lines Matching defs:sata_port
214 static u32 __combo_phy_reg_read(u8 sata_port, u32 addr)
217 u8 dev = port_data[sata_port].phy_devs;
219 writel(CPHY_MAP(dev, addr), port_data[sata_port].phy_base + 0x800);
220 data = readl(port_data[sata_port].phy_base + CPHY_ADDR(addr));
225 static void __combo_phy_reg_write(u8 sata_port, u32 addr, u32 data)
227 u8 dev = port_data[sata_port].phy_devs;
229 writel(CPHY_MAP(dev, addr), port_data[sata_port].phy_base + 0x800);
230 writel(data, port_data[sata_port].phy_base + CPHY_ADDR(addr));
234 static void combo_phy_wait_for_ready(u8 sata_port)
236 while (__combo_phy_reg_read(sata_port, SERDES_CR_CTL) & CR_BUSY)
240 static u32 combo_phy_read(u8 sata_port, u32 addr)
242 combo_phy_wait_for_ready(sata_port);
243 __combo_phy_reg_write(sata_port, SERDES_CR_ADDR, addr);
244 __combo_phy_reg_write(sata_port, SERDES_CR_CTL, CR_START);
245 combo_phy_wait_for_ready(sata_port);
246 return __combo_phy_reg_read(sata_port, SERDES_CR_DATA);
249 static void combo_phy_write(u8 sata_port, u32 addr, u32 data)
251 combo_phy_wait_for_ready(sata_port);
252 __combo_phy_reg_write(sata_port, SERDES_CR_ADDR, addr);
253 __combo_phy_reg_write(sata_port, SERDES_CR_DATA, data);
254 __combo_phy_reg_write(sata_port, SERDES_CR_CTL, CR_WR_RDN | CR_START);
257 static void highbank_cphy_disable_overrides(u8 sata_port)
259 u8 lane = port_data[sata_port].lane_mapping;
261 if (unlikely(port_data[sata_port].phy_base == NULL))
263 tmp = combo_phy_read(sata_port, CPHY_RX_INPUT_STS + lane * SPHY_LANE);
265 combo_phy_write(sata_port, CPHY_RX_OVERRIDE + lane * SPHY_LANE, tmp);
268 static void cphy_override_tx_attenuation(u8 sata_port, u32 val)
270 u8 lane = port_data[sata_port].lane_mapping;
276 tmp = combo_phy_read(sata_port, CPHY_TX_INPUT_STS + lane * SPHY_LANE);
278 combo_phy_write(sata_port, CPHY_TX_OVERRIDE + lane * SPHY_LANE, tmp);
281 combo_phy_write(sata_port, CPHY_TX_OVERRIDE + lane * SPHY_LANE, tmp);
284 combo_phy_write(sata_port, CPHY_TX_OVERRIDE + lane * SPHY_LANE, tmp);
287 static void cphy_override_rx_mode(u8 sata_port, u32 val)
289 u8 lane = port_data[sata_port].lane_mapping;
291 tmp = combo_phy_read(sata_port, CPHY_RX_INPUT_STS + lane * SPHY_LANE);
293 combo_phy_write(sata_port, CPHY_RX_OVERRIDE + lane * SPHY_LANE, tmp);
296 combo_phy_write(sata_port, CPHY_RX_OVERRIDE + lane * SPHY_LANE, tmp);
300 combo_phy_write(sata_port, CPHY_RX_OVERRIDE + lane * SPHY_LANE, tmp);
303 combo_phy_write(sata_port, CPHY_RX_OVERRIDE + lane * SPHY_LANE, tmp);
306 combo_phy_write(sata_port, CPHY_RX_OVERRIDE + lane * SPHY_LANE, tmp);
311 static void highbank_cphy_override_lane(u8 sata_port)
313 u8 lane = port_data[sata_port].lane_mapping;
316 if (unlikely(port_data[sata_port].phy_base == NULL))
319 tmp = combo_phy_read(sata_port, CPHY_RX_INPUT_STS +
322 cphy_override_rx_mode(sata_port, 3);
323 cphy_override_tx_attenuation(sata_port, port_data[sata_port].tx_atten);