GPIO 9 is the reset input of the MT7995 radio module, active low.
The old description used it as a PERST line on pcie0 with active
high polarity, so the port reset toggled the module reset at the
wrong time and with the wrong polarity.
Describe it as wifi-reset-gpios on pcie3, the port wired to the
module reset. The PCIe controller then releases the module from
reset before link training, with a 100 ms delay.
Signed-off-by: Chad Monroe <chad@monroe.io>
Link: https://github.com/openwrt/openwrt/pull/24352
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
* Author: Chad Monroe <chad.monroe@smartrg.com>
*
* Second PCIe function of the MT7995/MT7996-233 radio modules. The
- * main function (and the radio0 node) lives on pcie0.
+ * main function (and the radio0 node) lives on pcie0; the module
+ * reset is wired to the pcie3 port.
*/
&pcie3 {
pinctrl-names = "default";
pinctrl-0 = <&pcie3_1_pins>;
+ wifi-reset-gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+ wifi-reset-msleep = <100>;
status = "okay";
};
&pcie0 {
pinctrl-names = "default";
pinctrl-0 = <&pcie0_1_pins>;
- reset-gpios = <&pio 9 GPIO_ACTIVE_HIGH>;
};
&pio {