Project

General

Profile

Actions

AKM8976A » History » Revision 6

« Previous | Revision 6/14 (diff) | Next »
Paul Kocialkowski, 07/02/2011 09:56 AM


= AKM8976A =

The goal here is to add support for AKM8976A to akmd-free (a free rewrite of akmd, the daemon that deals with the accelerometer/magnetometer data for a few chips, including AKM ones).
This page is to coordinate the work around this goal.

Current status

=== Global tasks achievement ===

Task Achievement
Modifying the kernel driver to print the requests akmd makes (ioctl, etc) [[span(Done , style=background: green; color: white; display: inline-block; width: 100%;)]]
Get an idea of how it works (what akmd does after what) [[span(Done , style=background: green; color: white; display: inline-block; width: 100%;)]]
Define the exact steps that akmd follows [[span(Done , style=background: green; color: white; display: inline-block; width: 100%;)]]
Implement AKM8976A in akmd-free without any data treatment yet [[span(Done , style=background: green; color: white; display: inline-block; width: 100%;)]]
Understand how the data is treated (algorithms, etc) [[span(Work in progress , style=background: orange; color: white; display: inline-block; width: 100%;)]]
Reproduce the data treatment with standard C code [[span(Work in progress , style=background: orange; color: white; display: inline-block; width: 100%;)]]
Include the data treatment code in akmd-free [[span(ToDo , style=background: red; color: white; display: inline-block; width: 100%;)]]
Check that everything is OK on different devices [[span(ToDo , style=background: red; color: white; display: inline-block; width: 100%;)]]

=== Specific tasks achievement ===

==== Initialization/calibration sequence ====

|| Task || Global achievement || Understood || Reproduced || Implemented || || Before the first ECS_IOCTL_GETDATA || [[span(Mostly done , style=background: orange; color: white; display: inline-block; width: 100%;)]] || [[span(Done , style=background: green; color: white; display: inline-block; width: 100%;)]] || [[span(Done , style=background: green; color: white; display: inline-block; width: 100%;)]] || [[span(ToDo , style=background: red; color: white; display: inline-block; width: 100%;)]]

Getting started

Note that before everything, coming on our IRC channel [https://www.jappix.com/?r=replicant%25irc.freenode.net@irc.jappix.com #replicant on irc.freenode.net] and introducing yourself is essential: you'll be able to get help there and, of course, if you want to join the effort, communication is fundamental.

If you plan to join the effort to achieve this goal, here are the steps:

  • Downloading and setting up the akm8976a-dev branch for kernel-msm (which contains a modified version of ''drivers/misc/akm8976.c'')
  • Downloading some scripts that are useful to debug fast
  • Download and build the re_set_data tool (to inject some data to the kernel)
Using the scripts/tools

First of all, you need to know that the kernel-side driver that is used for AKM8976A is located at ''drivers/misc/akm8976.c''.
This file has been modified in order to: * make it trace (print) all the ioctl * make it possible to inject data

Note that before you run any of the scripts, you need to start adb server as root: {{{ # adb start-server }}}

Here is a list of the scripts, what they do and how to use them: * '''replicant_kern_debug.sh''': this one is to get the debug messages from the kernel. It requires no special parameter, nor any specific location to be lunched in.

Updated by Paul Kocialkowski about 13 years ago · 6 revisions

Also available in: PDF HTML TXT