Hisilicon didn’t share the document on PINMUX. There’re two kinds of PINMUX registers. One is called as xxx_cfg_func in DTS that controls the internal pull status. And the other is called as xxx_pmx_func in DTS that controls the multiple functions of PIN.
If he wants to change the internal pull status on pmu pins, he needs to access pmu_pmx_func in DTS file.
------->------->-------pmu_pmx_func: pmu_pmx_func {
------->------->------->-------pinctrl-single,pins = <
------->------->------->------->-------0x008 MUX_M1 /* PMU1_SSI /
------->------->------->------->-------0x00c MUX_M1 / PMU2_SSI /
------->------->------->------->-------0x010 MUX_M1 / PMU_CLKOUT /
------->------->------->------->-------0x100 MUX_M1 / PMU_HKADC_SSI */
------->------->------->------->;
------->------->-------};
------->------->-------pmu_cfg_func: pmu_cfg_func {
------->------->------->-------pinctrl-single,pins = <
------->------->------->------->-------0x010 0x0 /* PMU1_SSI /
------->------->------->------->-------0x014 0x0 / PMU2_SSI /
------->------->------->------->-------0x018 0x0 / PMU_CLKOUT /
------->------->------->------->-------0x10c 0x0 / PMU_HKADC_SSI */
------->------->------->------->;
------->------->------->-------pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>;
------->------->------->-------pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>;
------->------->------->-------pinctrl-single,drive-strength = <DRIVE7_02MA DRIVE6_MASK>;
------->------->-------};
The definition of bias-pulldown & bias-pullup is in $LINUX/Documentation/devicetree/bindings/pinctrl/pinctrl-single.txt. Let me paste it in below.
- pinctrl-single,bias-pullup : array of value that are used to configure the
input bias pullup in the pinmux register.
------->-------/* input, enabled pullup bits, disabled pullup bits, mask */
------->-------pinctrl-single,bias-pullup = <0 1 0 1>;
- pinctrl-single,bias-pulldown : array of value that are used to configure the
input bias pulldown in the pinmux register.
------->-------/* input, enabled pulldown bits, disabled pulldown bits, mask */
------->-------pinctrl-single,bias-pulldown = <2 2 0 2>;
------->------->------->-------pinctrl-single,bias-pulldown = <PULL_DIS PULL_DOWN PULL_DIS PULL_DOWN>;
It means that PULLDOWN is disabled. <PULL_DOWN PULL_DOWN PULL_DIS PULL_DOWN> to enable pull down.
------->------->------->-------pinctrl-single,bias-pullup = <PULL_DIS PULL_UP PULL_DIS PULL_UP>;
It means that PULLUP is also disabled. <PULL_UP PULL_UP PULL_DIS PULL_UP> to enable pull up.