This topic is for ConnectCore 6 SOMs that have an Atheros AR6233 wireless MAC. If you are using a ConnectCore 6N SOM that has a Qualcomm QCA6564 wireless MAC, see this topic for ConnectCore 6 Plus, which uses the same Wi-Fi chip.

Some variants of the ConnectCore 6 system-on-module assemble the Atheros chip capable of 2.4 GHz and 5 GHz connections using 802.11 a/b/g/n. This Wi-Fi chip is connected to uSDHC1 controller.

A maximum of five clients are supported when using Qualcomm’s AR6233 in softAP mode.

Features

  • IEEE 802.11 a/b/g/n support

  • Software Access Point (SoftAP) support

  • Security (Open, WEP, WPA/WPA2 PSK, WPA/WPA2 Enterprise)

  • Power save

  • Bluetooth coexistence

  • Wi-Fi Direct (P2P)

  • Concurrent mode (AP-STA and STA-P2P)

The Atheros chip does not support Adhoc Wi-Fi mode.

Kernel configuration

You can manage the Wi-Fi driver support through the kernel configuration option:

  • Atheros ath6kl SDIO support (CONFIG_ATH6KL_SDIO)

This option is enabled as built-in on the ConnectCore 6 SBC kernel configuration file.

Kernel driver

The Atheros ATH6KL Wi-Fi driver is located at drivers/net/wireless/ath/ath6kl/.

Device tree bindings and customization

Device tree bindings for the Wi-Fi driver are documented at Documentation/devicetree/bindings/digi,ath6kl,wireless.txt.

Definition of the Wi-Fi device

ConnectCore 6 device tree
wireless {
	compatible = "atheros,ath6kl";
	ath6kl-p2p-enable;
	ath6kl-softmac-enable;
	digi,pwrdown-gpios = <&gpio_extender 3 0>;
	/* U-Boot will fill in the MAC address here */
};

This node is also used as a placeholder for containing Digi’s Wi-Fi MAC address.

MAC address

The MAC address of the Wi-Fi interface is programmed during manufacturing on the ConnectCore 6 eMMC using U-Boot environment variable wlanaddr. It is also printed on the module label.

Before booting the operating system, U-Boot writes the MAC address stored in environment variable wlanaddr into the device tree Wi-Fi node under property mac-address.

If the boolean property ath6kl-softmac-enable is defined in the device tree, the Wi-Fi device will use Digi’s MAC address. If not, it will use the MAC embedded in the Atheros chip.

Known issues

  • When using the SoftAP mode on Band A, channels used for Dynamic Frequency Selection (DFS) are not supported.

  • The firmware does not support the following configuration modes:

    • Concurrent modes involving P2P mode, such as P2P + SoftAP or P2P + STA

    • The Bluetooth + SoftAP + STA concurrent mode

Disabling Wi-Fi

Wi-Fi is enabled by default on the ConnectCore 6 variants that support it. To disable Wi-Fi, add the following lines to your platform device tree:

/* Disable Wi-Fi */
/delete-node/ &{/wireless};
&usdhc1 {
	/* Drive WLAN_PWD# low to disable Wi-Fi */
	pinctrl-assert-gpios = <&gpio_extender 3 GPIO_ACTIVE_LOW>;
};

This patch:

  • deletes the wireless node of the device tree. The existence of this node triggers the initialization scripts that bring up the Wi-Fi interface, so these won’t start when the node is missing.

    Expect a harmless error message in U-Boot reporting that it couldn’t find the wireless node to fill in its MAC address.
  • makes use of the uSDHC node (the uSDHC connected to the Wi-Fi chip), to drive the WLAN_PWD# line low, thus disabling the Wi-Fi chip.

    Even if you disable Wi-Fi, you won’t be able to make use of the uSDHC interface for connecting to other peripherals because it is connected to the Wi-Fi chip internally. For this you need a variant without Wi-Fi chip.