drivers/phy/ti/phy-j721e-wiz.c
1015
static void wiz_clock_cleanup(struct wiz *wiz, struct device_node *node)
drivers/phy/ti/phy-j721e-wiz.c
1017
const struct wiz_clk_mux_sel *clk_mux_sel = wiz->clk_mux_sel;
drivers/phy/ti/phy-j721e-wiz.c
1018
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
1022
switch (wiz->type) {
drivers/phy/ti/phy-j721e-wiz.c
1040
for (i = 0; i < wiz->clk_div_sel_num; i++) {
drivers/phy/ti/phy-j721e-wiz.c
1046
of_clk_del_provider(wiz->dev->of_node);
drivers/phy/ti/phy-j721e-wiz.c
1049
static int wiz_clock_register(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
1051
const struct wiz_clk_mux_sel *clk_mux_sel = wiz->clk_mux_sel;
drivers/phy/ti/phy-j721e-wiz.c
1052
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
1060
ret = wiz_mux_clk_register(wiz, wiz->mux_sel_field[i], &clk_mux_sel[i], clk_index);
drivers/phy/ti/phy-j721e-wiz.c
1067
ret = wiz_phy_en_refclk_register(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1073
wiz->clk_data.clks = wiz->output_clks;
drivers/phy/ti/phy-j721e-wiz.c
1074
wiz->clk_data.clk_num = WIZ_MAX_OUTPUT_CLOCKS;
drivers/phy/ti/phy-j721e-wiz.c
1075
ret = of_clk_add_provider(node, of_clk_src_onecell_get, &wiz->clk_data);
drivers/phy/ti/phy-j721e-wiz.c
1082
static void wiz_clock_init(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
1086
rate = clk_get_rate(wiz->input_clks[WIZ_CORE_REFCLK]);
drivers/phy/ti/phy-j721e-wiz.c
1088
regmap_field_write(wiz->pma_cmn_refclk_int_mode, 0x1);
drivers/phy/ti/phy-j721e-wiz.c
1090
regmap_field_write(wiz->pma_cmn_refclk_int_mode, 0x3);
drivers/phy/ti/phy-j721e-wiz.c
1092
switch (wiz->type) {
drivers/phy/ti/phy-j721e-wiz.c
1098
regmap_field_write(wiz->div_sel_field[CMN_REFCLK_DIG_DIV], 0x2);
drivers/phy/ti/phy-j721e-wiz.c
1101
regmap_field_write(wiz->div_sel_field[CMN_REFCLK_DIG_DIV], 0x3);
drivers/phy/ti/phy-j721e-wiz.c
1104
regmap_field_write(wiz->div_sel_field[CMN_REFCLK_DIG_DIV], 0);
drivers/phy/ti/phy-j721e-wiz.c
1112
if (wiz->input_clks[WIZ_CORE_REFCLK1]) {
drivers/phy/ti/phy-j721e-wiz.c
1113
rate = clk_get_rate(wiz->input_clks[WIZ_CORE_REFCLK1]);
drivers/phy/ti/phy-j721e-wiz.c
1115
regmap_field_write(wiz->pma_cmn_refclk1_int_mode, 0x1);
drivers/phy/ti/phy-j721e-wiz.c
1117
regmap_field_write(wiz->pma_cmn_refclk1_int_mode, 0x3);
drivers/phy/ti/phy-j721e-wiz.c
1120
rate = clk_get_rate(wiz->input_clks[WIZ_EXT_REFCLK]);
drivers/phy/ti/phy-j721e-wiz.c
1122
regmap_field_write(wiz->pma_cmn_refclk_mode, 0x0);
drivers/phy/ti/phy-j721e-wiz.c
1124
regmap_field_write(wiz->pma_cmn_refclk_mode, 0x2);
drivers/phy/ti/phy-j721e-wiz.c
1127
static int wiz_clock_probe(struct wiz *wiz, struct device_node *node)
drivers/phy/ti/phy-j721e-wiz.c
1129
const struct wiz_clk_mux_sel *clk_mux_sel = wiz->clk_mux_sel;
drivers/phy/ti/phy-j721e-wiz.c
1130
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
1142
wiz->input_clks[WIZ_CORE_REFCLK] = clk;
drivers/phy/ti/phy-j721e-wiz.c
1144
if (wiz->data->pma_cmn_refclk1_int_mode) {
drivers/phy/ti/phy-j721e-wiz.c
1150
wiz->input_clks[WIZ_CORE_REFCLK1] = clk;
drivers/phy/ti/phy-j721e-wiz.c
1158
wiz->input_clks[WIZ_EXT_REFCLK] = clk;
drivers/phy/ti/phy-j721e-wiz.c
1160
wiz_clock_init(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1162
switch (wiz->type) {
drivers/phy/ti/phy-j721e-wiz.c
1168
ret = wiz_clock_register(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1185
ret = wiz_mux_of_clk_register(wiz, clk_node, wiz->mux_sel_field[i],
drivers/phy/ti/phy-j721e-wiz.c
1196
for (i = 0; i < wiz->clk_div_sel_num; i++) {
drivers/phy/ti/phy-j721e-wiz.c
1204
ret = wiz_div_clk_register(wiz, clk_node, wiz->div_sel_field[i],
drivers/phy/ti/phy-j721e-wiz.c
1216
wiz_clock_cleanup(wiz, node);
drivers/phy/ti/phy-j721e-wiz.c
1225
struct wiz *wiz = dev_get_drvdata(dev);
drivers/phy/ti/phy-j721e-wiz.c
1229
ret = regmap_field_write(wiz->phy_reset_n, false);
drivers/phy/ti/phy-j721e-wiz.c
1233
ret = regmap_field_write(wiz->p_enable[id - 1], P_ENABLE_DISABLE);
drivers/phy/ti/phy-j721e-wiz.c
1237
static int wiz_phy_fullrt_div(struct wiz *wiz, int lane)
drivers/phy/ti/phy-j721e-wiz.c
1239
switch (wiz->type) {
drivers/phy/ti/phy-j721e-wiz.c
1241
if (wiz->lane_phy_type[lane] == PHY_TYPE_PCIE)
drivers/phy/ti/phy-j721e-wiz.c
1242
return regmap_field_write(wiz->p0_fullrt_div[lane], 0x1);
drivers/phy/ti/phy-j721e-wiz.c
1250
if (wiz->lane_phy_type[lane] == PHY_TYPE_SGMII)
drivers/phy/ti/phy-j721e-wiz.c
1251
return regmap_field_write(wiz->p0_fullrt_div[lane], 0x2);
drivers/phy/ti/phy-j721e-wiz.c
1255
if (wiz->lane_phy_type[lane] == PHY_TYPE_PCIE)
drivers/phy/ti/phy-j721e-wiz.c
1256
return regmap_field_write(wiz->p0_fullrt_div[lane], 0x1);
drivers/phy/ti/phy-j721e-wiz.c
1257
if (wiz->lane_phy_type[lane] == PHY_TYPE_SGMII)
drivers/phy/ti/phy-j721e-wiz.c
1258
return regmap_field_write(wiz->p0_fullrt_div[lane], 0x2);
drivers/phy/ti/phy-j721e-wiz.c
1271
struct wiz *wiz = dev_get_drvdata(dev);
drivers/phy/ti/phy-j721e-wiz.c
1276
if (wiz->gpio_typec_dir) {
drivers/phy/ti/phy-j721e-wiz.c
1277
if (wiz->typec_dir_delay)
drivers/phy/ti/phy-j721e-wiz.c
1278
msleep_interruptible(wiz->typec_dir_delay);
drivers/phy/ti/phy-j721e-wiz.c
1280
if (gpiod_get_value_cansleep(wiz->gpio_typec_dir))
drivers/phy/ti/phy-j721e-wiz.c
1281
regmap_field_write(wiz->typec_ln10_swap, 1);
drivers/phy/ti/phy-j721e-wiz.c
1283
regmap_field_write(wiz->typec_ln10_swap, 0);
drivers/phy/ti/phy-j721e-wiz.c
1289
u32 num_lanes = wiz->num_lanes;
drivers/phy/ti/phy-j721e-wiz.c
1293
if (wiz->lane_phy_type[i] == PHY_TYPE_USB3) {
drivers/phy/ti/phy-j721e-wiz.c
1294
switch (wiz->master_lane_num[i]) {
drivers/phy/ti/phy-j721e-wiz.c
1296
regmap_field_write(wiz->typec_ln10_swap, 1);
drivers/phy/ti/phy-j721e-wiz.c
1299
regmap_field_write(wiz->typec_ln23_swap, 1);
drivers/phy/ti/phy-j721e-wiz.c
1310
ret = regmap_field_write(wiz->phy_reset_n, true);
drivers/phy/ti/phy-j721e-wiz.c
1314
ret = wiz_phy_fullrt_div(wiz, id - 1);
drivers/phy/ti/phy-j721e-wiz.c
1318
if (wiz->lane_phy_type[id - 1] == PHY_TYPE_DP)
drivers/phy/ti/phy-j721e-wiz.c
1319
ret = regmap_field_write(wiz->p_enable[id - 1], P_ENABLE);
drivers/phy/ti/phy-j721e-wiz.c
1321
ret = regmap_field_write(wiz->p_enable[id - 1], P_ENABLE_FORCE);
drivers/phy/ti/phy-j721e-wiz.c
1429
static int wiz_get_lane_phy_types(struct device *dev, struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
1462
wiz->master_lane_num[i] = reg;
drivers/phy/ti/phy-j721e-wiz.c
1463
wiz->lane_phy_type[i] = phy_type;
drivers/phy/ti/phy-j721e-wiz.c
1482
struct wiz *wiz;
drivers/phy/ti/phy-j721e-wiz.c
1487
wiz = devm_kzalloc(dev, sizeof(*wiz), GFP_KERNEL);
drivers/phy/ti/phy-j721e-wiz.c
1488
if (!wiz)
drivers/phy/ti/phy-j721e-wiz.c
1497
wiz->data = data;
drivers/phy/ti/phy-j721e-wiz.c
1498
wiz->type = data->type;
drivers/phy/ti/phy-j721e-wiz.c
1525
wiz->scm_regmap = syscon_regmap_lookup_by_phandle(node, "ti,scm");
drivers/phy/ti/phy-j721e-wiz.c
1526
if (IS_ERR(wiz->scm_regmap)) {
drivers/phy/ti/phy-j721e-wiz.c
1527
if (wiz->type == J7200_WIZ_10G) {
drivers/phy/ti/phy-j721e-wiz.c
1533
wiz->scm_regmap = NULL;
drivers/phy/ti/phy-j721e-wiz.c
1548
wiz->gpio_typec_dir = devm_gpiod_get_optional(dev, "typec-dir",
drivers/phy/ti/phy-j721e-wiz.c
1550
if (IS_ERR(wiz->gpio_typec_dir)) {
drivers/phy/ti/phy-j721e-wiz.c
1551
ret = PTR_ERR(wiz->gpio_typec_dir);
drivers/phy/ti/phy-j721e-wiz.c
1558
if (wiz->gpio_typec_dir) {
drivers/phy/ti/phy-j721e-wiz.c
1560
&wiz->typec_dir_delay);
drivers/phy/ti/phy-j721e-wiz.c
1568
wiz->typec_dir_delay = WIZ_TYPEC_DIR_DEBOUNCE_MIN;
drivers/phy/ti/phy-j721e-wiz.c
1570
if (wiz->typec_dir_delay < WIZ_TYPEC_DIR_DEBOUNCE_MIN ||
drivers/phy/ti/phy-j721e-wiz.c
1571
wiz->typec_dir_delay > WIZ_TYPEC_DIR_DEBOUNCE_MAX) {
drivers/phy/ti/phy-j721e-wiz.c
1578
ret = wiz_get_lane_phy_types(dev, wiz);
drivers/phy/ti/phy-j721e-wiz.c
1582
wiz->dev = dev;
drivers/phy/ti/phy-j721e-wiz.c
1583
wiz->regmap = regmap;
drivers/phy/ti/phy-j721e-wiz.c
1584
wiz->num_lanes = num_lanes;
drivers/phy/ti/phy-j721e-wiz.c
1585
wiz->clk_mux_sel = data->clk_mux_sel;
drivers/phy/ti/phy-j721e-wiz.c
1586
wiz->clk_div_sel = clk_div_sel;
drivers/phy/ti/phy-j721e-wiz.c
1587
wiz->clk_div_sel_num = data->clk_div_sel_num;
drivers/phy/ti/phy-j721e-wiz.c
1589
platform_set_drvdata(pdev, wiz);
drivers/phy/ti/phy-j721e-wiz.c
1591
ret = wiz_regfield_init(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1598
if (wiz->scm_regmap)
drivers/phy/ti/phy-j721e-wiz.c
1599
regmap_field_write(wiz->sup_legacy_clk_override, 1);
drivers/phy/ti/phy-j721e-wiz.c
1601
phy_reset_dev = &wiz->wiz_phy_reset_dev;
drivers/phy/ti/phy-j721e-wiz.c
1622
ret = wiz_clock_probe(wiz, node);
drivers/phy/ti/phy-j721e-wiz.c
1628
for (i = 0; i < wiz->num_lanes; i++) {
drivers/phy/ti/phy-j721e-wiz.c
1629
regmap_field_read(wiz->p_enable[i], &val);
drivers/phy/ti/phy-j721e-wiz.c
1637
ret = wiz_init(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1650
wiz->serdes_pdev = serdes_pdev;
drivers/phy/ti/phy-j721e-wiz.c
1656
wiz_clock_cleanup(wiz, node);
drivers/phy/ti/phy-j721e-wiz.c
1673
struct wiz *wiz;
drivers/phy/ti/phy-j721e-wiz.c
1675
wiz = dev_get_drvdata(dev);
drivers/phy/ti/phy-j721e-wiz.c
1676
serdes_pdev = wiz->serdes_pdev;
drivers/phy/ti/phy-j721e-wiz.c
1679
wiz_clock_cleanup(wiz, node);
drivers/phy/ti/phy-j721e-wiz.c
1686
struct wiz *wiz = dev_get_drvdata(dev);
drivers/phy/ti/phy-j721e-wiz.c
1690
regmap_field_read(wiz->mux_sel_field[i], &wiz->mux_sel_status[i]);
drivers/phy/ti/phy-j721e-wiz.c
1698
struct wiz *wiz = dev_get_drvdata(dev);
drivers/phy/ti/phy-j721e-wiz.c
1702
regmap_field_write(wiz->mux_sel_field[i], wiz->mux_sel_status[i]);
drivers/phy/ti/phy-j721e-wiz.c
1705
if (wiz->sup_legacy_clk_override)
drivers/phy/ti/phy-j721e-wiz.c
1706
regmap_field_write(wiz->sup_legacy_clk_override, 1);
drivers/phy/ti/phy-j721e-wiz.c
1708
wiz_clock_init(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1710
ret = wiz_init(wiz);
drivers/phy/ti/phy-j721e-wiz.c
1719
wiz_clock_cleanup(wiz, node);
drivers/phy/ti/phy-j721e-wiz.c
400
static int wiz_reset(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
404
ret = regmap_field_write(wiz->por_en, 0x1);
drivers/phy/ti/phy-j721e-wiz.c
410
ret = regmap_field_write(wiz->por_en, 0x0);
drivers/phy/ti/phy-j721e-wiz.c
417
static int wiz_p_mac_div_sel(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
419
u32 num_lanes = wiz->num_lanes;
drivers/phy/ti/phy-j721e-wiz.c
424
if (wiz->lane_phy_type[i] == PHY_TYPE_SGMII ||
drivers/phy/ti/phy-j721e-wiz.c
425
wiz->lane_phy_type[i] == PHY_TYPE_QSGMII ||
drivers/phy/ti/phy-j721e-wiz.c
426
wiz->lane_phy_type[i] == PHY_TYPE_USXGMII) {
drivers/phy/ti/phy-j721e-wiz.c
427
ret = regmap_field_write(wiz->p_mac_div_sel0[i], 1);
drivers/phy/ti/phy-j721e-wiz.c
431
ret = regmap_field_write(wiz->p_mac_div_sel1[i], 2);
drivers/phy/ti/phy-j721e-wiz.c
440
static int wiz_mode_select(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
442
u32 num_lanes = wiz->num_lanes;
drivers/phy/ti/phy-j721e-wiz.c
448
if (wiz->lane_phy_type[i] == PHY_TYPE_DP) {
drivers/phy/ti/phy-j721e-wiz.c
450
} else if (wiz->lane_phy_type[i] == PHY_TYPE_QSGMII) {
drivers/phy/ti/phy-j721e-wiz.c
452
} else if (wiz->lane_phy_type[i] == PHY_TYPE_USXGMII) {
drivers/phy/ti/phy-j721e-wiz.c
453
ret = regmap_field_write(wiz->p0_mac_src_sel[i], 0x3);
drivers/phy/ti/phy-j721e-wiz.c
454
ret = regmap_field_write(wiz->p0_rxfclk_sel[i], 0x3);
drivers/phy/ti/phy-j721e-wiz.c
455
ret = regmap_field_write(wiz->p0_refclk_sel[i], 0x2);
drivers/phy/ti/phy-j721e-wiz.c
461
ret = regmap_field_write(wiz->p_standard_mode[i], mode);
drivers/phy/ti/phy-j721e-wiz.c
469
static int wiz_init_raw_interface(struct wiz *wiz, bool enable)
drivers/phy/ti/phy-j721e-wiz.c
471
u32 num_lanes = wiz->num_lanes;
drivers/phy/ti/phy-j721e-wiz.c
476
ret = regmap_field_write(wiz->p_align[i], enable);
drivers/phy/ti/phy-j721e-wiz.c
480
ret = regmap_field_write(wiz->p_raw_auto_start[i], enable);
drivers/phy/ti/phy-j721e-wiz.c
488
static int wiz_init(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
490
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
493
ret = wiz_reset(wiz);
drivers/phy/ti/phy-j721e-wiz.c
499
ret = wiz_mode_select(wiz);
drivers/phy/ti/phy-j721e-wiz.c
505
ret = wiz_p_mac_div_sel(wiz);
drivers/phy/ti/phy-j721e-wiz.c
511
ret = wiz_init_raw_interface(wiz, true);
drivers/phy/ti/phy-j721e-wiz.c
520
static int wiz_regfield_init(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
522
struct regmap *regmap = wiz->regmap;
drivers/phy/ti/phy-j721e-wiz.c
523
struct regmap *scm_regmap = wiz->regmap; /* updated later to scm_regmap if applicable */
drivers/phy/ti/phy-j721e-wiz.c
524
int num_lanes = wiz->num_lanes;
drivers/phy/ti/phy-j721e-wiz.c
525
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
526
const struct wiz_data *data = wiz->data;
drivers/phy/ti/phy-j721e-wiz.c
529
wiz->por_en = devm_regmap_field_alloc(dev, regmap, por_en);
drivers/phy/ti/phy-j721e-wiz.c
530
if (IS_ERR(wiz->por_en)) {
drivers/phy/ti/phy-j721e-wiz.c
532
return PTR_ERR(wiz->por_en);
drivers/phy/ti/phy-j721e-wiz.c
535
wiz->phy_reset_n = devm_regmap_field_alloc(dev, regmap,
drivers/phy/ti/phy-j721e-wiz.c
537
if (IS_ERR(wiz->phy_reset_n)) {
drivers/phy/ti/phy-j721e-wiz.c
539
return PTR_ERR(wiz->phy_reset_n);
drivers/phy/ti/phy-j721e-wiz.c
542
wiz->pma_cmn_refclk_int_mode =
drivers/phy/ti/phy-j721e-wiz.c
544
if (IS_ERR(wiz->pma_cmn_refclk_int_mode)) {
drivers/phy/ti/phy-j721e-wiz.c
546
return PTR_ERR(wiz->pma_cmn_refclk_int_mode);
drivers/phy/ti/phy-j721e-wiz.c
549
wiz->pma_cmn_refclk_mode =
drivers/phy/ti/phy-j721e-wiz.c
551
if (IS_ERR(wiz->pma_cmn_refclk_mode)) {
drivers/phy/ti/phy-j721e-wiz.c
553
return PTR_ERR(wiz->pma_cmn_refclk_mode);
drivers/phy/ti/phy-j721e-wiz.c
556
wiz->div_sel_field[CMN_REFCLK_DIG_DIV] =
drivers/phy/ti/phy-j721e-wiz.c
558
if (IS_ERR(wiz->div_sel_field[CMN_REFCLK_DIG_DIV])) {
drivers/phy/ti/phy-j721e-wiz.c
560
return PTR_ERR(wiz->div_sel_field[CMN_REFCLK_DIG_DIV]);
drivers/phy/ti/phy-j721e-wiz.c
564
wiz->div_sel_field[CMN_REFCLK1_DIG_DIV] =
drivers/phy/ti/phy-j721e-wiz.c
567
if (IS_ERR(wiz->div_sel_field[CMN_REFCLK1_DIG_DIV])) {
drivers/phy/ti/phy-j721e-wiz.c
569
return PTR_ERR(wiz->div_sel_field[CMN_REFCLK1_DIG_DIV]);
drivers/phy/ti/phy-j721e-wiz.c
573
if (wiz->scm_regmap) {
drivers/phy/ti/phy-j721e-wiz.c
574
scm_regmap = wiz->scm_regmap;
drivers/phy/ti/phy-j721e-wiz.c
575
wiz->sup_legacy_clk_override =
drivers/phy/ti/phy-j721e-wiz.c
577
if (IS_ERR(wiz->sup_legacy_clk_override)) {
drivers/phy/ti/phy-j721e-wiz.c
579
return PTR_ERR(wiz->sup_legacy_clk_override);
drivers/phy/ti/phy-j721e-wiz.c
583
wiz->mux_sel_field[PLL0_REFCLK] =
drivers/phy/ti/phy-j721e-wiz.c
585
if (IS_ERR(wiz->mux_sel_field[PLL0_REFCLK])) {
drivers/phy/ti/phy-j721e-wiz.c
587
return PTR_ERR(wiz->mux_sel_field[PLL0_REFCLK]);
drivers/phy/ti/phy-j721e-wiz.c
590
wiz->mux_sel_field[PLL1_REFCLK] =
drivers/phy/ti/phy-j721e-wiz.c
592
if (IS_ERR(wiz->mux_sel_field[PLL1_REFCLK])) {
drivers/phy/ti/phy-j721e-wiz.c
594
return PTR_ERR(wiz->mux_sel_field[PLL1_REFCLK]);
drivers/phy/ti/phy-j721e-wiz.c
597
wiz->mux_sel_field[REFCLK_DIG] = devm_regmap_field_alloc(dev, scm_regmap,
drivers/phy/ti/phy-j721e-wiz.c
599
if (IS_ERR(wiz->mux_sel_field[REFCLK_DIG])) {
drivers/phy/ti/phy-j721e-wiz.c
601
return PTR_ERR(wiz->mux_sel_field[REFCLK_DIG]);
drivers/phy/ti/phy-j721e-wiz.c
605
wiz->pma_cmn_refclk1_int_mode =
drivers/phy/ti/phy-j721e-wiz.c
607
if (IS_ERR(wiz->pma_cmn_refclk1_int_mode)) {
drivers/phy/ti/phy-j721e-wiz.c
609
return PTR_ERR(wiz->pma_cmn_refclk1_int_mode);
drivers/phy/ti/phy-j721e-wiz.c
614
wiz->p_enable[i] = devm_regmap_field_alloc(dev, regmap,
drivers/phy/ti/phy-j721e-wiz.c
616
if (IS_ERR(wiz->p_enable[i])) {
drivers/phy/ti/phy-j721e-wiz.c
618
return PTR_ERR(wiz->p_enable[i]);
drivers/phy/ti/phy-j721e-wiz.c
621
wiz->p_align[i] = devm_regmap_field_alloc(dev, regmap,
drivers/phy/ti/phy-j721e-wiz.c
623
if (IS_ERR(wiz->p_align[i])) {
drivers/phy/ti/phy-j721e-wiz.c
625
return PTR_ERR(wiz->p_align[i]);
drivers/phy/ti/phy-j721e-wiz.c
628
wiz->p_raw_auto_start[i] =
drivers/phy/ti/phy-j721e-wiz.c
630
if (IS_ERR(wiz->p_raw_auto_start[i])) {
drivers/phy/ti/phy-j721e-wiz.c
633
return PTR_ERR(wiz->p_raw_auto_start[i]);
drivers/phy/ti/phy-j721e-wiz.c
636
wiz->p_standard_mode[i] =
drivers/phy/ti/phy-j721e-wiz.c
638
if (IS_ERR(wiz->p_standard_mode[i])) {
drivers/phy/ti/phy-j721e-wiz.c
641
return PTR_ERR(wiz->p_standard_mode[i]);
drivers/phy/ti/phy-j721e-wiz.c
644
wiz->p0_fullrt_div[i] = devm_regmap_field_alloc(dev, regmap, p0_fullrt_div[i]);
drivers/phy/ti/phy-j721e-wiz.c
645
if (IS_ERR(wiz->p0_fullrt_div[i])) {
drivers/phy/ti/phy-j721e-wiz.c
647
return PTR_ERR(wiz->p0_fullrt_div[i]);
drivers/phy/ti/phy-j721e-wiz.c
650
wiz->p0_mac_src_sel[i] = devm_regmap_field_alloc(dev, regmap, p0_mac_src_sel[i]);
drivers/phy/ti/phy-j721e-wiz.c
651
if (IS_ERR(wiz->p0_mac_src_sel[i])) {
drivers/phy/ti/phy-j721e-wiz.c
653
return PTR_ERR(wiz->p0_mac_src_sel[i]);
drivers/phy/ti/phy-j721e-wiz.c
656
wiz->p0_rxfclk_sel[i] = devm_regmap_field_alloc(dev, regmap, p0_rxfclk_sel[i]);
drivers/phy/ti/phy-j721e-wiz.c
657
if (IS_ERR(wiz->p0_rxfclk_sel[i])) {
drivers/phy/ti/phy-j721e-wiz.c
659
return PTR_ERR(wiz->p0_rxfclk_sel[i]);
drivers/phy/ti/phy-j721e-wiz.c
662
wiz->p0_refclk_sel[i] = devm_regmap_field_alloc(dev, regmap, p0_refclk_sel[i]);
drivers/phy/ti/phy-j721e-wiz.c
663
if (IS_ERR(wiz->p0_refclk_sel[i])) {
drivers/phy/ti/phy-j721e-wiz.c
665
return PTR_ERR(wiz->p0_refclk_sel[i]);
drivers/phy/ti/phy-j721e-wiz.c
668
wiz->p_mac_div_sel0[i] =
drivers/phy/ti/phy-j721e-wiz.c
670
if (IS_ERR(wiz->p_mac_div_sel0[i])) {
drivers/phy/ti/phy-j721e-wiz.c
673
return PTR_ERR(wiz->p_mac_div_sel0[i]);
drivers/phy/ti/phy-j721e-wiz.c
676
wiz->p_mac_div_sel1[i] =
drivers/phy/ti/phy-j721e-wiz.c
678
if (IS_ERR(wiz->p_mac_div_sel1[i])) {
drivers/phy/ti/phy-j721e-wiz.c
681
return PTR_ERR(wiz->p_mac_div_sel1[i]);
drivers/phy/ti/phy-j721e-wiz.c
685
wiz->typec_ln10_swap = devm_regmap_field_alloc(dev, regmap,
drivers/phy/ti/phy-j721e-wiz.c
687
if (IS_ERR(wiz->typec_ln10_swap)) {
drivers/phy/ti/phy-j721e-wiz.c
689
return PTR_ERR(wiz->typec_ln10_swap);
drivers/phy/ti/phy-j721e-wiz.c
692
wiz->typec_ln23_swap = devm_regmap_field_alloc(dev, regmap,
drivers/phy/ti/phy-j721e-wiz.c
694
if (IS_ERR(wiz->typec_ln23_swap)) {
drivers/phy/ti/phy-j721e-wiz.c
696
return PTR_ERR(wiz->typec_ln23_swap);
drivers/phy/ti/phy-j721e-wiz.c
699
wiz->phy_en_refclk = devm_regmap_field_alloc(dev, regmap, phy_en_refclk);
drivers/phy/ti/phy-j721e-wiz.c
700
if (IS_ERR(wiz->phy_en_refclk)) {
drivers/phy/ti/phy-j721e-wiz.c
702
return PTR_ERR(wiz->phy_en_refclk);
drivers/phy/ti/phy-j721e-wiz.c
743
static int wiz_phy_en_refclk_register(struct wiz *wiz)
drivers/phy/ti/phy-j721e-wiz.c
746
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
770
wiz_phy_en_refclk->phy_en_refclk = wiz->phy_en_refclk;
drivers/phy/ti/phy-j721e-wiz.c
780
wiz->output_clks[TI_WIZ_PHY_EN_REFCLK] = clk;
drivers/phy/ti/phy-j721e-wiz.c
811
static int wiz_mux_clk_register(struct wiz *wiz, struct regmap_field *field,
drivers/phy/ti/phy-j721e-wiz.c
814
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
834
clk = wiz->input_clks[mux_sel->parents[i]];
drivers/phy/ti/phy-j721e-wiz.c
864
wiz->output_clks[clk_index] = clk;
drivers/phy/ti/phy-j721e-wiz.c
872
static int wiz_mux_of_clk_register(struct wiz *wiz, struct device_node *node,
drivers/phy/ti/phy-j721e-wiz.c
875
struct device *dev = wiz->dev;
drivers/phy/ti/phy-j721e-wiz.c
967
static int wiz_div_clk_register(struct wiz *wiz, struct device_node *node,
drivers/phy/ti/phy-j721e-wiz.c
971
struct device *dev = wiz->dev;