1*7ce1032eSTomasz Duszynski
2*7ce1032eSTomasz Duszynski /* SPDX-License-Identifier: BSD-3-Clause
3*7ce1032eSTomasz Duszynski * Copyright(C) 2021 Marvell.
4*7ce1032eSTomasz Duszynski */
5*7ce1032eSTomasz Duszynski
6*7ce1032eSTomasz Duszynski #include "cnxk_telemetry.h"
7*7ce1032eSTomasz Duszynski #include "roc_api.h"
8*7ce1032eSTomasz Duszynski #include "roc_priv.h"
9*7ce1032eSTomasz Duszynski
10*7ce1032eSTomasz Duszynski static int
cnxk_tel_bphy(struct plt_tel_data * d)11*7ce1032eSTomasz Duszynski cnxk_tel_bphy(struct plt_tel_data *d)
12*7ce1032eSTomasz Duszynski {
13*7ce1032eSTomasz Duszynski struct idev_cfg *idev;
14*7ce1032eSTomasz Duszynski
15*7ce1032eSTomasz Duszynski idev = idev_get_cfg();
16*7ce1032eSTomasz Duszynski if (!idev || !idev->bphy)
17*7ce1032eSTomasz Duszynski return -ENODEV;
18*7ce1032eSTomasz Duszynski
19*7ce1032eSTomasz Duszynski plt_tel_data_add_dict_int(d, "sso_pf_func", roc_bphy_sso_pf_func_get());
20*7ce1032eSTomasz Duszynski plt_tel_data_add_dict_int(d, "npa_pf_func", roc_bphy_npa_pf_func_get());
21*7ce1032eSTomasz Duszynski
22*7ce1032eSTomasz Duszynski return 0;
23*7ce1032eSTomasz Duszynski }
24*7ce1032eSTomasz Duszynski
25*7ce1032eSTomasz Duszynski static int
cnxk_bphy_tel_handle_info(const char * cmd __plt_unused,const char * params __plt_unused,struct plt_tel_data * d)26*7ce1032eSTomasz Duszynski cnxk_bphy_tel_handle_info(const char *cmd __plt_unused,
27*7ce1032eSTomasz Duszynski const char *params __plt_unused,
28*7ce1032eSTomasz Duszynski struct plt_tel_data *d)
29*7ce1032eSTomasz Duszynski {
30*7ce1032eSTomasz Duszynski plt_tel_data_start_dict(d);
31*7ce1032eSTomasz Duszynski
32*7ce1032eSTomasz Duszynski return cnxk_tel_bphy(d);
33*7ce1032eSTomasz Duszynski }
34*7ce1032eSTomasz Duszynski
35*7ce1032eSTomasz Duszynski static int
cnxk_bphy_telemetry_register(void)36*7ce1032eSTomasz Duszynski cnxk_bphy_telemetry_register(void)
37*7ce1032eSTomasz Duszynski {
38*7ce1032eSTomasz Duszynski if (!(roc_model->flag & ROC_MODEL_CNF9K) &&
39*7ce1032eSTomasz Duszynski !(roc_model->flag & ROC_MODEL_CNF10K))
40*7ce1032eSTomasz Duszynski return 0;
41*7ce1032eSTomasz Duszynski
42*7ce1032eSTomasz Duszynski plt_telemetry_register_cmd(
43*7ce1032eSTomasz Duszynski "/cnxk/bphy/info", cnxk_bphy_tel_handle_info,
44*7ce1032eSTomasz Duszynski "Returns bphy information. Takes no parameters");
45*7ce1032eSTomasz Duszynski
46*7ce1032eSTomasz Duszynski return 0;
47*7ce1032eSTomasz Duszynski }
48*7ce1032eSTomasz Duszynski
PLT_INIT(cnxk_telemetry_bphy_init)49*7ce1032eSTomasz Duszynski PLT_INIT(cnxk_telemetry_bphy_init)
50*7ce1032eSTomasz Duszynski {
51*7ce1032eSTomasz Duszynski roc_plt_init_cb_register(cnxk_bphy_telemetry_register);
52*7ce1032eSTomasz Duszynski }
53