[Atrix 4G Android Development] krystianp:
So... I'm not a kernel developer but i wanted to understand how atrix 4g kernel works. For starters I compared sources of atrix, stingray, galaxy R, LG SU660 and i made a list of what are peripherials are compatibile. I made it for myself for learning purposes, but maybe it will help someone. Of course there might be errors so forgive me. In the mean time i was thinking that maybe we should start building kernel from basics. So first make atrix to boot (just basic kernel stuff ), then consequently add modules to support emmc, modem, lcd etc. And what about using board-olympus in stingray kernel as a base. It's not working but maybe good for a start?

found what = found where = original olympus bus if available(not sure if it is important yet :D)

battery = olympus/whisler

accelerometer (kxtf9) = olympus/whisler/stingray = bus 3/1

keyboard = olympus/whisler/ventana

scrollwheel = olympus/whisler/

touchscreen controler (mxt224) = olympus/whisler= bus0/1

vibrator = olympus/whisler/ventana

mouse = olympus/whisler/ventana

ALS/Proximity Sensor (ils29030) = olympus = bus0/2

backlight (lm3532) = olympus = bus0/0

lm3534 flashlight - olympus

compas (akm8975) = olympus/stingray = bus3/0

fingerprint (aes1750) = olympus

bluetooth/wifi (bcm4329) = olympus/lgsu660/stingray

modem (mdm6600) = olympus/lgp999/stringay

charger (MAX8907B) = olympus

temperature sensor (adt7461) = olympus/lgsu660/seaboard

TPS72728YFF Regulator - LDO, 2.8V (stingray has TPS72728YFFR) they seems compatible

TPS72711YFF Regulator - LDO, 1.1V (stingray has TPS72711YFFR) as above

NAND Flash Y9A0A111308LA - olympus/stingray

charge pump TPS60151DRV - olympus/stingray

Regulator MIC23150-4YMT	- olympus/stingray

back camera (ov5650) = olympus/stingray

front camera Aptina Imaging MT9V013

not used or not known to be used by olympus

hall ic (bu52014hfv) = daytona not olympus

giroscope (l3g4200d) = stingray

touchscreen controler (mxt224e) = galaxyR

bluetooth/wifi (bcm4330) = galaxyR

charger (max8907C) = galaxyR/lgsu660

charger (max8922) = galaxyR

charger (max8922l) = lgsu660

power regulator (max8952) = galaxyR/lgsu660/stingray

fuel-gauge systems for battery (max17043) = galaxyR

power regulator (max8649) = stingray

modem (wrigley LTE?) = stingray

audio hub (WM8753,wm8994) = lgesu660

nfc (pn544) = galaxyR

USB port accessory detector and switch (FSA9480) = galaxyR

temperature sensor (NCT1008) = galaxyR/stingray

vibrator (isa1200) = galaxyR

fm radio (si4709) = galaxyR

MHL converter (sii9234) = galaxyR

proximity sensor (cm3663) = galaxyR

proximity sensor (max9635) = stingray

front camera (dw9714l) = stingray

pressure sensor (BMP085) = stingray

backlight (lp8550) = stingray

EDIT:

Something about memory:

Both LGSU660 and galaxyR has Hynix 300MHz. Voltages are the same in both, but Atrix is kinda problematic, since it seems that memory is queried during boot, so can't really say what type from code. Luckly all memory types are listed, and they have same parameters and voltages (at least for two highest frequencies)

I found NVidia Tegra2 Technical Reference Manual it public release so i guess it's legal and maybe helpful.

EDIT2:

Found some additional stuff from atrix:

ST Ericsson CPCAP 2.2TC22 DC Power Management / Audio / Interface SoC

Triquint TQM7M5013 Linear Power Amplifier

Qualcomm PM8028 RF Power Management IC

Toshiba eMMC THGBM2G7D4FBAIE 16GB NAND Flash

Qualcomm MDM6200 supporting HSPA+ speeds of up to 14.4 Mbps (so i was wrong, or maybe it is just the same driver)

Hynix H8BCSOQG0MMR 2-chip memory MCP

memory 1gb Elpida B8132B1PB so that's not hynix as i was suspecting (not sure if 50nm or 40nm) stingray has also elpida so should be compatible (stingray has autodetection of memory type so maybe it will work out of box)

EDIT3: Some cleanups and i added some stuff.

EDIT4: Some more cleanups and voltages (from kernel logs):

That's for Olympus:

/* not sure if important

input: cpcap-key as /devices/virtual/input/input0

input: aes1750 as /devices/virtual/input/input2

input: qtouch-obp-ts as /devices/virtual/input/input3

input: proximity as /devices/virtual/input/input4

input: als as /devices/virtual/input/input5

input: accelerometer as /devices/virtual/input/input6

input: compass as /devices/virtual/input/input7

*/

[ 14.550268] regulator: sw1: 750 <--> 1475 mV

[ 14.550614] regulator: sw2: 900 <--> 1475 mV

[ 14.551009] regulator: sw3: 1350 <--> 1875 mV

[ 14.551392] regulator: sw4: 900 <--> 1475 mV

[ 14.551796] regulator: sw5: 5050 mV

[ 14.552199] regulator: vusb: 3300 mV

[ 14.552559] regulator: vcam: 2600 <--> 2900 mV

[ 14.554402] regulator: vcsi: 1200 mV

[ 14.554741] regulator: vdac: 1200 <--> 2500 mV

[ 14.555082] regulator: vdig: 1200 <--> 1875 mV

[ 14.555894] regulator: vfuse: 1500 <--> 3150 mV

[ 14.557390] regulator: vhvio: 2775 mV

[ 14.557734] regulator: vsdio: 1500 <--> 3000 mV

[ 14.558599] regulator: vpll: 1800 mV

[ 14.558945] regulator: vrf1: 2500 <--> 2775 mV

[ 14.559283] regulator: vrf2: 2775 mV

[ 14.559629] regulator: vrfref: 2500 <--> 2775 mV

[ 14.559967] regulator: vwlan1: 1800 <--> 1900 mV

[ 14.560312] regulator: vwlan2: 2775 <--> 3300 mV

[ 14.560693] regulator: vsim: 1800 <--> 2900 mV

[ 14.561044] regulator: vsimcard: 1800 <--> 2900 mV

[ 14.561389] regulator: vvib: 1300 <--> 3000 mV

[ 14.562897] regulator: vaudio: 2775 mV normal idle standby

And that's for Stingray:

/* not sure if important

input: compass as /devices/virtual/input/input0

input: accelerometer as /devices/virtual/input/input1

input: max9635_als as /devices/virtual/input/input2

input: gyroscope as /devices/virtual/input/input3

input: barometer as /devices/virtual/input/input4

*/

<6>[ 19.279302] regulator: sw2: 1000 <--> 1200 mV at 1200 mV

<6>[ 19.281342] regulator: sw4: 1000 <--> 1200 mV at 1200 mV

<6>[ 19.281797] regulator: sw5: 5050 mV

<6>[ 19.282705] regulator: vcam: 2900 mV

<6>[ 19.284728] regulator: vcsi: 1200 mV

<6>[ 19.285599] regulator: vdac: 1800 mV

<6>[ 19.287598] regulator: vdig: 1875 mV

<6>[ 19.288026] regulator: vfuse: 1500 <--> 3150 mV

<6>[ 19.289644] regulator: vhvio: 2775 mV

<6>[ 19.291626] regulator: vsdio: 3000 mV

<6>[ 19.292764] regulator: vpll: 1800 mV

<6>[ 19.293192] regulator: vrf1: 2500 <--> 2775 mV

<6>[ 19.293577] regulator: vrf2: 2775 mV

<6>[ 19.294071] regulator: vrfref: 2500 <--> 2775 mV

<6>[ 19.295587] regulator: vwlan1: 1800 <--> 1900 mV at 1800 mV

<6>[ 19.297561] regulator: vwlan2: 3300 mV

<6>[ 19.298074] regulator: vsim: 1800 <--> 2900 mV

<6>[ 19.298513] regulator: vsimcard: 1800 <--> 2900 mV

<6>[ 19.299052] regulator: vvib: 1300 <--> 3000 mV

<6>[ 19.299513] regulator: vusb: 3300 mV

<6>[ 19.301075] regulator: vaudio: 2775 mV normal standby