> For the complete documentation index, see [llms.txt](https://open-rt.gitbook.io/open-surfacert/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://open-rt.gitbook.io/open-surfacert/surface-rt/hardware/components/i2c/bus-0-ms-hid/microsoft-type-touch-cover.md).

# 0x00 - Microsoft: Type/Touch Cover

Technical information about Type/Touch Covers for Surface RT/2

## I2C Specs

* HID over I2C
* Address: 0x00
* Bus speed: 400kHz
* HID\_Descriptor: 0x0041
* ACPI Device: SNMU
* Power:&#x20;
  * Bridge IC: PMIC.REG1: 1.8V
  * tCover Power: PMIC.REG3: 2.8V

## GPIO

HID Interrupt: O5\
Hotplug Interrupt: S0

## Issue

The tCover I2C address is 0x00. This address is reserved for `general call`. \
Linux doesn't allow I2C Slaves to use this address therefore the I2C driver must be patched to allow 0x00 as valid Slave address.

## Implementation

{% embed url="<https://github.com/grate-driver/linux/pull/45/commits/45572898080c6c2af9581ab7e17fca5e6243f625>" %}

`i2c-hotplug-gpio` is a grate driver and doesn't work in mainline.

## VendorID / ProductID

| Cover | Generation | VendorID / hex | ProductID / hex |
| ----- | ---------- | -------------- | --------------- |
| Touch | 1          | 045E           | 079A            |
| Type  | 1          | 045E           | 079C            |
| Touch | 2          | 045E           | 07A7            |
| Type  | 2          | 045E           | 07A9            |
| Power | 1          | 045E - tbc     | 07DA - tbc      |
