Thread 中讨论的其他器件: AM67A、 WL1835、ALP、 BeagleY-AI
工具/软件:
您好:
我们在基于 AM67A 的板上无法找到 WL1835MOD 芯片。
我比较了我们的板和 使用 WL1835MOD 芯片的 BeagleBone Black (TI AM335x)板。
OSPI 接口的器件树和原理图:

wlan_en: regulator-7 {
compatible = "regulator-fixed";
regulator-name = "wlan_en";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
startup-delay-us= <70000>;
enable-active-high;
max-frequency = <10000000>;
/* regulator-always-on; */
regulator-off-in-suspend;
vin-supply = <&vdd_3v3>;
gpio = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
//pinctrl-names = "default";
//pinctrl-0 = <&wifi_en_pins_default>;
};
&sdhci2 {
vmmc-supply = <&wlan_en>;
// pinctrl-names = "default";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
pinctrl-1 = <&wifi_pins_default_sleep>, <&wifi_32k_clk>;
bus-width = <4>;
non-removable;
//ti,fails-without-test-cd;
ti,needs-special-hs-handling;
cap-power-off-card;
keep-power-in-suspend;
//ti,driver-strength-ohm = <50>;
//assigned-clocks = <&k3_clks 157 174>;
//assigned-clock-parents = <&k3_clks 157 175>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
pinctrl-names = "default";
wlcore: wlcore@2 {
compatible = "ti,wl1835";
reg = <2>;
//pinctrl-names = "default";
//pinctrl-0 = <&wifi_wlirq_pins_default>;
pinctrl-0 = <&wifi_wlirq_pins_default>;
interrupt-parent = <&main_gpio0>;
interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
irq-gpio = <&main_gpio0 4 GPIO_ACTIVE_HIGH>;
};
};
wifi_pins_default: wifi-default-pins {
pinctrl-single,pins = <
J722S_IOPAD(0x0120, PIN_INPUT_PULLUP, 0) /* (F27) MMC2_CMD */
J722S_IOPAD(0x0118, PIN_OUTPUT, 0) /* (H26) MMC2_CLK */
//J722S_IOPAD(0x011C, PIN_INPUT_PULLUP, 0) /* () MMC2_CLKLB */
J722S_IOPAD(0x0114, PIN_INPUT_PULLUP, 0) /* (G26) MMC2_DAT0 */
J722S_IOPAD(0x0110, PIN_INPUT_PULLUP, 0) /* (G27) MMC2_DAT1 */
J722S_IOPAD(0x010c, PIN_INPUT_PULLUP, 0) /* (H27) MMC2_DAT2 */
J722S_IOPAD(0x0108, PIN_INPUT_PULLUP, 0) /* (J27) MMC2_DAT3 */
>;
};
wifi_pins_default_sleep: wifi-default-pins_sleep {
pinctrl-single,pins = <
J722S_IOPAD(0x0120, PIN_INPUT_PULLDOWN, 0) /* (F27) MMC2_CMD */
J722S_IOPAD(0x0118, PIN_OUTPUT, 0) /* (H26) MMC2_CLK */
//J722S_IOPAD(0x011C, PIN_INPUT_PULLDOWN, 0) /* () MMC2_CLKLB */
J722S_IOPAD(0x0114, PIN_INPUT_PULLDOWN, 0) /* (G26) MMC2_DAT0 */
J722S_IOPAD(0x0110, PIN_INPUT_PULLDOWN, 0) /* (G27) MMC2_DAT1 */
J722S_IOPAD(0x010c, PIN_INPUT_PULLDOWN, 0) /* (H27) MMC2_DAT2 */
J722S_IOPAD(0x0108, PIN_INPUT_PULLDOWN, 0) /* (J27) MMC2_DAT3 */
>;
};
wifi_en_pins_default: wifi-en-default-pins {
pinctrl-single,pins = <
J722S_IOPAD(0x0010, PIN_OUTPUT, 7) /* (L27) OSPI0_D1.GPIO0_4 */
>;
};
wifi_wlirq_pins_default: wifi-wlirq-default-pins {
pinctrl-single,pins = <
J722S_IOPAD(0x0014, PIN_INPUT, 7) /* (L26) OSPI0_D2.GPIO0_5 */
>;
};
wifi_32k_clk: mcu-clk-out-default-pins {
pinctrl-single,pins = <
J722S_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (F12) WKUP_CLKOUT0 */
>;
};
BeagleBone Black (TI AM335x)上 WL1835MOD 的器件树和原理图如下所示:

wlan_en_reg: fixedregulator@2 {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
startup-delay-us= <70000>;
/* WL_EN */
gpio = <&gpio3 9 0>;
enable-active-high;
};
&mmc3 {
dmas = <&edma_xbar 12 0 1
&edma_xbar 13 0 2>;
dma-names = "tx", "rx";
status = "okay";
vmmc-supply = <&wlan_en_reg>;
bus-width = <4>;
non-removable;
cap-power-off-card;
keep-power-in-suspend;
pinctrl-names = "default";
pinctrl-0 = <&mmc3_pins &wl18xx_pins>;
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@2 {
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio0>;
interrupts = <29 IRQ_TYPE_EDGE_RISING>;
};
};
mmc3_pins: pinmux_mmc3_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(AM335X_PIN_MII1_RXD1, PIN_INPUT_PULLUP, MUX_MODE6 ) /* (L15) gmii1_rxd1.mmc2_clk */
AM33XX_PADCONF(AM335X_PIN_MII1_TX_EN, PIN_INPUT_PULLUP, MUX_MODE6 ) /* (J16) gmii1_txen.mmc2_cmd */
AM33XX_PADCONF(AM335X_PIN_MII1_RX_DV, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (J17) gmii1_rxdv.mmc2_dat0 */
AM33XX_PADCONF(AM335X_PIN_MII1_TXD3, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (J18) gmii1_txd3.mmc2_dat1 */
AM33XX_PADCONF(AM335X_PIN_MII1_TXD2, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (K15) gmii1_txd2.mmc2_dat2 */
AM33XX_PADCONF(AM335X_PIN_MII1_COL, PIN_INPUT_PULLUP, MUX_MODE5 ) /* (H16) gmii1_col.mmc2_dat3 */
>;
};
wl18xx_pins: pinmux_wl18xx_pins {
pinctrl-single,pins = <
AM33XX_PADCONF(AM335X_PIN_MII1_TX_CLK, PIN_OUTPUT_PULLDOWN, MUX_MODE7) /* gmii1_txclk.gpio3_9 WL_EN */
AM33XX_PADCONF(AM335X_PIN_RMII1_REF_CLK, PIN_INPUT_PULLDOWN, MUX_MODE7) /* rmii1_refclk.gpio0_29 WL_IRQ */
AM33XX_PADCONF(AM335X_PIN_MII1_RX_CLK, PIN_OUTPUT_PULLUP, MUX_MODE7) /* gmii1_rxclk.gpio3_10 LS_BUF_EN */
>;
};
我们有适用于 WL1835MOD 的 ti 连接固件。 当我们对 wlcore、wl18xx、wl_SDIO 驱动程序进行 modprobe 探测时、我们会收到以下信息:
user@am67board:~$ lsmod Module Size Used by wlcore 229376 0 mac80211 794624 1 wlcore libarc4 16384 1 mac80211 cfg80211 700416 2 wlcore,mac80211 pvrsrvkm 1306624 0 pwm_fan 24576 0 phy_can_transceiver 16384 1 at24 24576 0 ti_k3_r5_remoteproc 32768 0 ti_k3_dsp_remoteproc 20480 0 ti_k3_common 20480 1 ti_k3_dsp_remoteproc st_lsm6dsx_i2c 20480 0
MII_TXCLK 和 MII_REFCLK 引脚是否具有用于 Wi-Fi 的特殊用途引脚?
WL1835无法接收到任何时钟信号、为什么?