iām not at home this weekend so cannot test, but pin numbers also differ, but not same offsetā¦
have you checked with pinmux dump if the pinmux is applied?
we have defined these pins in dts
pcie3_pins: pcie3-pins {
mux {
function = "pcie";
groups = "pcie_1l_1_pereset", "pcie_clk_req_n3",
"pcie_wake_n3_0";
};
};
referring these pins/functions in pinctrl-driver (drivers/pinctrl/mediatek/pinctrl-mt7988.c)
static const int mt7988_pcie_1l_1_pereset_pins[] = { 20 };
static const int mt7988_pcie_1l_1_pereset_funcs[] = { 1 };
static const int mt7988_pcie_clk_req_n3_pins[] = { 10 };
static const int mt7988_pcie_clk_req_n3_funcs[] = { 1 };
static const int mt7988_pcie_wake_n3_0_pins[] = { 9 };
static const int mt7988_pcie_wake_n3_0_funcs[] = { 1 };
static const struct mtk_function_desc mt7988_functions[] = {
...
{"pcie", mt7988_pcie_groups, ARRAY_SIZE(mt7988_pcie_groups)},
...
static const char *const mt7988_pcie_groups[] = { "pcie_wake_n0_0",
"pcie_clk_req_n0_0", "pcie_wake_n3_0", "pcie_clk_req_n3",
"pcie_p0_phy_i2c", "pcie_p1_phy_i2c", "pcie_p3_phy_i2",
"pcie_p2_phy_i2c", "ckm_phy_i2c", "pcie_wake_n0_1", "pcie_wake_n3_1",
"pcie_2l_0_pereset", "pcie_1l_1_pereset", "pcie_clk_req_n2_1",
"pcie_2l_1_perese", "pcie_1l_0_pereset", "pcie_wake_n1_0",
"cie_clk_req_n1", "pcie_wake_n2_0", "pcie_wake_n2_1", };
cie_clk_req_n1 misses āpā, but unrelated to our controller
linux prints these
type: MUX_GROUP controller pinctrl_moore group: pcie_1l_1_pereset (40) function: pcie (7)
type: MUX_GROUP controller pinctrl_moore group: pcie_clk_req_n3 (16) function: pcie (7)
type: MUX_GROUP controller pinctrl_moore group: pcie_wake_n3_0 (15) function: pcie (7)
in linux pinmux definitions are same, but strange that displayed function is different
maybe you can set debugs in mtk_pinconf_group_set and mtk_pinconf_set in pinctrl-mtk-common.c
also wonder why such few clocks are shown in clk dump in ubootā¦
@moore have you an idea whats wrong here or is it right and the output is confusing us?