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.

Reply via email to