xref: /linux/Documentation/hwmon/kb9002.rst (revision 7acf90feab8b009fde7def08ff2c622d0f10e99f)
1*20e95671SAndy Chung.. SPDX-License-Identifier: GPL-2.0-or-later
2*20e95671SAndy Chung
3*20e95671SAndy ChungKernel driver kb9002
4*20e95671SAndy Chung====================
5*20e95671SAndy Chung
6*20e95671SAndy ChungSupported chips:
7*20e95671SAndy Chung
8*20e95671SAndy Chung  * Kandou KB9002
9*20e95671SAndy Chung
10*20e95671SAndy Chung    Prefix: 'kb9002'
11*20e95671SAndy Chung
12*20e95671SAndy Chung    Addresses scanned: -
13*20e95671SAndy Chung
14*20e95671SAndy Chung    Datasheet: KA-015171-PD (available from Kandou under NDA)
15*20e95671SAndy Chung
16*20e95671SAndy ChungAuthor: Andy Chung <andy.chung@amd.com>
17*20e95671SAndy Chung
18*20e95671SAndy ChungDescription
19*20e95671SAndy Chung-----------
20*20e95671SAndy Chung
21*20e95671SAndy ChungThe Kandou KB9002 is an 8-lane PCIe 5.0 retimer with an integrated
22*20e95671SAndy Chungmicrocontroller. It exposes an SMBus 3.0 target (with mandatory PEC)
23*20e95671SAndy Chungon its sideband interface. The internal firmware aggregates per-lane
24*20e95671SAndy Chungdie temperatures and publishes the maximum value through a 16-bit
25*20e95671SAndy Chungaddressed register window.
26*20e95671SAndy Chung
27*20e95671SAndy ChungThis driver reports that aggregated maximum as the only hwmon
28*20e95671SAndy Chungtemperature channel. The running firmware version and the firmware
29*20e95671SAndy Chungboot status are exposed under debugfs.
30*20e95671SAndy Chung
31*20e95671SAndy Chungsysfs interface
32*20e95671SAndy Chung---------------
33*20e95671SAndy Chung
34*20e95671SAndy Chung==================  ===============================================
35*20e95671SAndy Chungtemp1_input         Aggregated maximum die temperature across all
36*20e95671SAndy Chung                    active lanes (millidegrees Celsius).
37*20e95671SAndy Chung==================  ===============================================
38*20e95671SAndy Chung
39*20e95671SAndy Chungdebugfs interface
40*20e95671SAndy Chung-----------------
41*20e95671SAndy Chung
42*20e95671SAndy ChungFiles live in the per-client debugfs directory created by the I2C
43*20e95671SAndy Chungcore: ``/sys/kernel/debug/i2c/i2c-<bus>/<bus>-<addr>/``.
44*20e95671SAndy Chung
45*20e95671SAndy Chung==================  ===============================================
46*20e95671SAndy Chungfw_ver              Running firmware version in
47*20e95671SAndy Chung                    "major.minor.patch.suffix" format. Read-only.
48*20e95671SAndy Chungfw_load_status      Firmware boot status: "normal" once firmware has
49*20e95671SAndy Chung                    finished initialising, "abnormal" otherwise.
50*20e95671SAndy Chung                    Read-only.
51*20e95671SAndy Chung==================  ===============================================
52*20e95671SAndy Chung
53*20e95671SAndy ChungNotes
54*20e95671SAndy Chung-----
55*20e95671SAndy Chung
56*20e95671SAndy ChungThe driver requires ``I2C_FUNC_SMBUS_BLOCK_DATA``,
57*20e95671SAndy Chung``I2C_FUNC_SMBUS_PEC`` and ``I2C_FUNC_I2C`` from the host adapter. The
58*20e95671SAndy Chunglast is needed only during probe for the host-interface mode switch;
59*20e95671SAndy Chungruntime accesses use SMBus block transactions exclusively.
60*20e95671SAndy Chung
61*20e95671SAndy ChungThe retimer's SMBus address is configurable on three strap pins and
62*20e95671SAndy Chungranges from 0x20 to 0x27. The address is selected through device tree
63*20e95671SAndy Chung(or i2c board info) the same way as any other I2C device; the driver
64*20e95671SAndy Chungdoes not auto-detect.
65