Lines Matching refs:rtk_phy

85 struct rtk_phy {  struct
150 static void do_rtk_usb3_phy_toggle(struct rtk_phy *rtk_phy, int index, bool connect) in do_rtk_usb3_phy_toggle() argument
152 struct phy_cfg *phy_cfg = rtk_phy->phy_cfg; in do_rtk_usb3_phy_toggle()
160 phy_parameter = &((struct phy_parameter *)rtk_phy->phy_parameter)[index]; in do_rtk_usb3_phy_toggle()
183 static int do_rtk_phy_init(struct rtk_phy *rtk_phy, int index) in do_rtk_phy_init() argument
190 phy_cfg = rtk_phy->phy_cfg; in do_rtk_phy_init()
191 phy_parameter = &((struct phy_parameter *)rtk_phy->phy_parameter)[index]; in do_rtk_phy_init()
212 do_rtk_usb3_phy_toggle(rtk_phy, index, false); in do_rtk_phy_init()
239 dev_info(rtk_phy->dev, "toggle fail addr=0x%02x, data=0x%04x\n", in do_rtk_phy_init()
262 …dev_warn(rtk_phy->dev, "Don't update rx_offset_range (rx_offset_code=0x%x, rx_offset_range=0x%x)\n… in do_rtk_phy_init()
284 struct rtk_phy *rtk_phy = phy_get_drvdata(phy); in rtk_phy_init() local
289 for (i = 0; i < rtk_phy->num_phy; i++) in rtk_phy_init()
290 ret = do_rtk_phy_init(rtk_phy, i); in rtk_phy_init()
292 dev_dbg(rtk_phy->dev, "Initialized RTK USB 3.0 PHY (take %dms)\n", in rtk_phy_init()
303 static void rtk_phy_toggle(struct rtk_phy *rtk_phy, bool connect, int port) in rtk_phy_toggle() argument
307 if (index > rtk_phy->num_phy) { in rtk_phy_toggle()
308 dev_err(rtk_phy->dev, "%s: The port=%d is not in usb phy (num_phy=%d)\n", in rtk_phy_toggle()
309 __func__, index, rtk_phy->num_phy); in rtk_phy_toggle()
313 do_rtk_usb3_phy_toggle(rtk_phy, index, connect); in rtk_phy_toggle()
318 struct rtk_phy *rtk_phy = phy_get_drvdata(phy); in rtk_phy_connect() local
320 dev_dbg(rtk_phy->dev, "%s port=%d\n", __func__, port); in rtk_phy_connect()
321 rtk_phy_toggle(rtk_phy, true, port); in rtk_phy_connect()
328 struct rtk_phy *rtk_phy = phy_get_drvdata(phy); in rtk_phy_disconnect() local
330 dev_dbg(rtk_phy->dev, "%s port=%d\n", __func__, port); in rtk_phy_disconnect()
331 rtk_phy_toggle(rtk_phy, false, port); in rtk_phy_disconnect()
358 struct rtk_phy *rtk_phy = s->private; in rtk_usb3_parameter_show() local
362 phy_cfg = rtk_phy->phy_cfg; in rtk_usb3_parameter_show()
374 for (index = 0; index < rtk_phy->num_phy; index++) { in rtk_usb3_parameter_show()
378 phy_parameter = &((struct phy_parameter *)rtk_phy->phy_parameter)[index]; in rtk_usb3_parameter_show()
409 static inline void create_debug_files(struct rtk_phy *rtk_phy) in create_debug_files() argument
418 rtk_phy->debug_dir = debugfs_create_dir(dev_name(rtk_phy->dev), phy_debug_root); in create_debug_files()
420 debugfs_create_file("parameter", 0444, rtk_phy->debug_dir, rtk_phy, in create_debug_files()
424 static inline void remove_debug_files(struct rtk_phy *rtk_phy) in remove_debug_files() argument
426 debugfs_remove_recursive(rtk_phy->debug_dir); in remove_debug_files()
429 static inline void create_debug_files(struct rtk_phy *rtk_phy) { } in create_debug_files() argument
430 static inline void remove_debug_files(struct rtk_phy *rtk_phy) { } in remove_debug_files() argument
433 static int get_phy_data_by_efuse(struct rtk_phy *rtk_phy, in get_phy_data_by_efuse() argument
436 struct phy_cfg *phy_cfg = rtk_phy->phy_cfg; in get_phy_data_by_efuse()
443 cell = nvmem_cell_get(rtk_phy->dev, "usb_u3_tx_lfps_swing_trim"); in get_phy_data_by_efuse()
445 dev_dbg(rtk_phy->dev, "%s no usb_u3_tx_lfps_swing_trim: %ld\n", in get_phy_data_by_efuse()
468 static void update_amplitude_control_value(struct rtk_phy *rtk_phy, in update_amplitude_control_value() argument
475 phy_cfg = rtk_phy->phy_cfg; in update_amplitude_control_value()
524 static int parse_phy_data(struct rtk_phy *rtk_phy) in parse_phy_data() argument
526 struct device *dev = rtk_phy->dev; in parse_phy_data()
531 rtk_phy->phy_parameter = devm_kzalloc(dev, sizeof(struct phy_parameter) * in parse_phy_data()
532 rtk_phy->num_phy, GFP_KERNEL); in parse_phy_data()
533 if (!rtk_phy->phy_parameter) in parse_phy_data()
536 for (index = 0; index < rtk_phy->num_phy; index++) { in parse_phy_data()
537 phy_parameter = &((struct phy_parameter *)rtk_phy->phy_parameter)[index]; in parse_phy_data()
551 get_phy_data_by_efuse(rtk_phy, phy_parameter, index); in parse_phy_data()
553 update_amplitude_control_value(rtk_phy, phy_parameter); in parse_phy_data()
561 struct rtk_phy *rtk_phy; in rtk_usb3phy_probe() local
574 rtk_phy = devm_kzalloc(dev, sizeof(*rtk_phy), GFP_KERNEL); in rtk_usb3phy_probe()
575 if (!rtk_phy) in rtk_usb3phy_probe()
578 rtk_phy->dev = &pdev->dev; in rtk_usb3phy_probe()
579 rtk_phy->phy_cfg = devm_kzalloc(dev, sizeof(*phy_cfg), GFP_KERNEL); in rtk_usb3phy_probe()
580 if (!rtk_phy->phy_cfg) in rtk_usb3phy_probe()
583 memcpy(rtk_phy->phy_cfg, phy_cfg, sizeof(*phy_cfg)); in rtk_usb3phy_probe()
585 rtk_phy->num_phy = 1; in rtk_usb3phy_probe()
587 ret = parse_phy_data(rtk_phy); in rtk_usb3phy_probe()
591 platform_set_drvdata(pdev, rtk_phy); in rtk_usb3phy_probe()
593 generic_phy = devm_phy_create(rtk_phy->dev, NULL, &ops); in rtk_usb3phy_probe()
597 phy_set_drvdata(generic_phy, rtk_phy); in rtk_usb3phy_probe()
599 phy_provider = devm_of_phy_provider_register(rtk_phy->dev, of_phy_simple_xlate); in rtk_usb3phy_probe()
603 create_debug_files(rtk_phy); in rtk_usb3phy_probe()
611 struct rtk_phy *rtk_phy = platform_get_drvdata(pdev); in rtk_usb3phy_remove() local
613 remove_debug_files(rtk_phy); in rtk_usb3phy_remove()