| .. SPDX-License-Identifier: GPL-2.0-or-later |
| |
| Kernel driver kb9002 |
| ==================== |
| |
| Supported chips: |
| |
| * Kandou KB9002 |
| |
| Prefix: 'kb9002' |
| |
| Addresses scanned: - |
| |
| Datasheet: KA-015171-PD (available from Kandou under NDA) |
| |
| Author: Andy Chung <andy.chung@amd.com> |
| |
| Description |
| ----------- |
| |
| The Kandou KB9002 is an 8-lane PCIe 5.0 retimer with an integrated |
| microcontroller. It exposes an SMBus 3.0 target (with mandatory PEC) |
| on its sideband interface. The internal firmware aggregates per-lane |
| die temperatures and publishes the maximum value through a 16-bit |
| addressed register window. |
| |
| This driver reports that aggregated maximum as the only hwmon |
| temperature channel. The running firmware version and the firmware |
| boot status are exposed under debugfs. |
| |
| sysfs interface |
| --------------- |
| |
| ================== =============================================== |
| temp1_input Aggregated maximum die temperature across all |
| active lanes (millidegrees Celsius). |
| ================== =============================================== |
| |
| debugfs interface |
| ----------------- |
| |
| Files live in the per-client debugfs directory created by the I2C |
| core: ``/sys/kernel/debug/i2c/i2c-<bus>/<bus>-<addr>/``. |
| |
| ================== =============================================== |
| fw_ver Running firmware version in |
| "major.minor.patch.suffix" format. Read-only. |
| fw_load_status Firmware boot status: "normal" once firmware has |
| finished initialising, "abnormal" otherwise. |
| Read-only. |
| ================== =============================================== |
| |
| Notes |
| ----- |
| |
| The driver requires ``I2C_FUNC_SMBUS_BLOCK_DATA``, |
| ``I2C_FUNC_SMBUS_PEC`` and ``I2C_FUNC_I2C`` from the host adapter. The |
| last is needed only during probe for the host-interface mode switch; |
| runtime accesses use SMBus block transactions exclusively. |
| |
| The retimer's SMBus address is configurable on three strap pins and |
| ranges from 0x20 to 0x27. The address is selected through device tree |
| (or i2c board info) the same way as any other I2C device; the driver |
| does not auto-detect. |