All pages
Powered by GitBook
1 of 6

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

0x1A - Wolfson: WM8962 - AudioCodec

I2C Specs

  • Normal I2C

  • Address: 0x1A

https://statics.cirrus.com/pubs/proDatasheet/WM8962_Rev4.4.pdf

The I2C address seems to be 0x34 but that's the 8 Bit address. Shift the address 1 to the right (>>1) and you get 0x1A as 7Bit address

Digital Stereo Microphone

Wolfson WM7220 Microphones

http://datasheet.elcodis.com/pdf2/85/22/852275/wm7220.pdf

0x2D - TI: TPS659110 - PMIC

PMIC or Power Managment IC (PMIC) is an IC that contains a lot of regulators which power the CPU, Sensors and other components of Surface RT

I2C Specs

  • Normal I2C

  • Address: 0x2d

https://www.ti.com/lit/ds/symlink/tps65911.pdf

https://elinux.org/images/2/26/PMIC_ELCE_2019.pdf

Bus 4 - System

Bus speed

400 kHz

Devices

i2cdetect -y -a -r 4
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- 0a -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- 1a -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- 2d -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- 4a -- 4c -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

Physical Access

Access to I2C Bus 4 is not known right now.

0x0A - ACPI: Control Method Battery

I2C Specs

  • Normal I2c

  • Address: 0x0A

What is it?

Surface RT uses the Embedded Controller Topology. The controller is located at 0xa. That means that there must be an IC somewhere which interacts with the Charger and the Fuelgauge and provide an interface to both of them to the SoC. The Charger and the Fuelgauge are exposed through 0xa which provides an ACPI interface. The ACPI BAT0 device deals with the Fuelgauge. The ACPI ADP0 device deals with the Charger.

The ACPI methods like _BIX, _BTS, ... provide all the necessary information about the battery and the charger. They can be decrypted by reading the ACPI Spec p. 492 10.2 Control Method Batteries

https://wiki.ubuntu.com/Kernel/Reference/Battery "(Control Method) Batteries and ACPI are tied together in quite a complex way. Generally, the battery state information is transmitted over a SMBUS bus to the embedded controller, a.k.a. EC, which in turn interfaces to the OS via ACPI methods. These methods can interrogate the embedded controller for battery state information ..."

Battery <-- EC <--> BIOS ACPI Methods <--> OS

Since there is no ACPI implementation for ARM32 and we need to replace the ACPI Methods with a custom driver. all Necessary information can be found in the SSDT0000 ACPI table

Embedded Controller

The Embedded Controller directly interacts with the Charger and the Fuelgauge.

Fuelgauge

BQ28400

https://www.ti.com/lit/ug/sluu431/sluu431.pdf https://www.ti.com/lit/ds/symlink/bq28400.pdf?ts=1625607689401&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ28400

Charger

BQ24725A

https://www.ti.com/lit/ds/symlink/bq24725a.pdf?ts=1625636278558&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24725A

Critic

The Embedded Controller topology prevents the use of SmartBatterySystem (SBS) and requires an ACPI or custom driver. ACPI isn't (fully) implemented on ARM32 therefore we need a custom driver which resembels the ACPI methods.

Dump

https://uefi.org/sites/default/files/resources/ACPI_5_0_Errata_B.pdf

0x60 - TI: TPS62361B - Processor Supply

I2C Specs

  • Normal I2C

  • Address: 0x60

https://www.ti.com/lit/ds/symlink/tps62361b.pdf

WM7220 pdf, WM7220 description, WM7220 datasheets, WM7220 view ::: ALLDATASHEET :::
Logo
ACPI battery and power subsystem firmware implementationdocsmsft
Logo
Battery and chargingdocsmsft
Logo

0x4C - onsemi: NCT1008 - Temperatur sensor

I2C Specs

  • SMBus SBS

  • Address: 0x4C

https://www.onsemi.com/pdf/datasheet/nct1008-d.pdf

The Slave address and the ManufacturerID register do match. + This sensor is also found on Cardhu.

I2C Dump