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无法接收到任何时钟信号、为什么?