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