From: Blake Gripling <[email protected]> Sent: Thursday, 26 February 2015, 10:08 Subject: [linux-sunxi] Re: AP6210 on A31/A31s It's alright. I know it's (theoretically) possible, well since I've seen tablets besides mine that use the A31 and AMPAK's AP6210 as the radio module. It's the patching part that puzzles me a bit as it appears that no one seems to have done so yet.
If you are seriously thinking of working in this area then the first thing I would suggest is understanding that the AP6210 is two chips in one: - Wifi is a Broadcom BCM43362. The A31(or whatever host) talks to it over an SDIO interface (fundamentally the same as used in SD memory cards) - Bluetooth is a Broadcom BCM20710. The A31(or whatever host) talks to it over an UART interface (a common serial interface) I would focus on one or the other and work through the details of setting it up. By getting some experience by focussing on one at first it will help you generalise and make the second a bit more understandable. Secondly patching the kernel is about the last thing you want to try. The purpose of the kernel is to abstract away low level details so people can just get on and use their stuff. For the A31 there will be specific pins on the chip for SDIO and UART interfaces. I don't know if these differ from other Allwinner SoCs, but so long as these pins can be driven by the kernel then you are OK to start. The next stage is getting the driver for the WiFi or Bluetooth chip up and running. The driver will send relevant commands to the chip to perform its function. For the 3.4 kernel WiFi is the bcmdhd module (although someone seems to have had to modify it to get it working on CubieTruck, but the write up on the Wiki doesn't give details) and for the mainline kernel it is the brcmfmac kernel module. For Bluetooth it is the hci_uart module for both 3.4 and mainline. You know that these drivers are good because people with CubieTrucks have got them working with the AP6210. You can know that because the underlying electrical interfaces have been abstracted away - SDIO and UART - by the kernel. The concept of layers of interfaces is important to understand in software and systems engineering. Reading up on the theory behind Open Systems Interconnection Protocol Model ( http://en.wikipedia.org/wiki/OSI_model ) may give you some ideas on this conceptual model. Back to the details. The hard part here is the device specific information. The A31 will have multiple SDIO and UART interfaces so you need to know which one the manufacturer has wired up the WiFi and Bluetooth to. There are also additional control lines for power on, etc. You don't need to "patch the kernel" for this. For the 3.4 kernel you need to be looking into FEX files and for mainline kernel it is DTS files. I presume you already have a device up and running with Linux and you have added it to the Wiki? Al -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
