Thread 中讨论的其他器件: TPS23880
工具与软件:
您好!
我正在尝试启用此 IC、以便为另一个器件提供60W 的电源。 我能使它在低功耗模式下工作、PD 也能启动。 当 PD 尝试消耗更多功率时、PSE 停止供电。 我知道我需要将 SRAM 数据发送到 IC 以实现>30W 的电力输送。
我已将下面的上游驱动程序(6.12)移植到我的内核(6.1)
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/net/pse-pd/tps23881.c?h=v6.12.12
在探头函数中、奇偶校验和 SRAM 闪存被启动、I2C 写入成功(~20KB 奇偶校验和180KB SRAM)、但固件修订版读取为0xFF (我使用 TPS23881_2_PARITY_v15和 TPS23881_2_SRAM_v15 bin 文件)
我已经为0x20向 i2c 写入函数添加了 printk 以查看正在向芯片发送的所有数据
以下是使用 v15奇偶校验和 SRAM 时的调试信息。 得到 tps23881 2-0020:固件版本0xff 而不是0x15
root@...-board:~# insmod tps23881_6.12_ref_v15.ko [ 29.829113] kernel_read_file_from_path_initns path=/lib/firmware/TPS23881_2_PARITY_v15.bin [ 29.838140] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:01 [ 29.844950] ... tps: i2c_smbus_write_byte_data addr:20 reg:62 data:00 [ 29.851681] ... tps: i2c_smbus_write_byte_data addr:20 reg:63 data:80 [ 29.858380] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:c4 [ 29.865081] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:bc [ 29.871775] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:02 [ 29.878474] ... tps: i2c_smbus_write_byte_data addr:20 reg:91 data:00 [ 29.885175] ... tps: i2c_smbus_write_byte_data addr:20 reg:90 data:00 [ 29.891873] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:00 [ 29.898573] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:00 [ 31.530767] kernel_read_file_from_path_initns path=/lib/firmware/TPS23881_2_SRAM_v15.bin [ 31.541516] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:c5 [ 31.548243] ... tps: i2c_smbus_write_byte_data addr:20 reg:62 data:00 [ 31.554942] ... tps: i2c_smbus_write_byte_data addr:20 reg:63 data:80 [ 31.561635] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:c0 [ 31.568333] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:bc [ 31.575020] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:02 [ 31.581716] ... tps: i2c_smbus_write_byte_data addr:20 reg:91 data:00 [ 31.588413] ... tps: i2c_smbus_write_byte_data addr:20 reg:90 data:00 [ 31.595106] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:00 [ 31.601805] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:00 [ 38.291518] kauditd_printk_skb: 3 callbacks suppressed [ 38.291528] audit: type=1334 audit(1677930006.820:21): prog-id=10 op=UNLOAD [ 38.305693] audit: type=1334 audit(1677930006.820:22): prog-id=9 op=UNLOAD [ 45.818518] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:18 [ 45.837342] tps23881 2-0020: Firmware revision 0xff [ 45.842349] ... tps: i2c_smbus_write_byte_data addr:20 reg:17 data:a0 [ 45.849067] i2c_smbus_write_word_data addr:20 reg:26 data:e4e4 [ 45.855012] i2c_smbus_write_word_data addr:20 reg:12 data:aaaa [ 45.860954] i2c_smbus_write_word_data addr:20 reg:13 data:0000 [ 45.866895] i2c_smbus_write_word_data addr:20 reg:29 data:0000 [ 45.872846] i2c_smbus_write_word_data addr:20 reg:14 data:0000 [ 45.879745] tps23881 2-0020: DebugFS entry registers created [ 45.885465] ... tps: DebugFS entry registers created
以下是使用 v14的奇偶校验和 SRAM 时的调试信息。 得到 tps23881 2-0020:固件版本0x0而不是0x85
root@...-board:~# insmod tps23881_6.12_ref_v14.ko [ 277.778863] kernel_read_file_from_path_initns path=/lib/firmware/TPS23881_2_PARITY_v14.bin [ 277.787623] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:01 [ 277.794385] ... tps: i2c_smbus_write_byte_data addr:20 reg:62 data:00 [ 277.801107] ... tps: i2c_smbus_write_byte_data addr:20 reg:63 data:80 [ 277.807816] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:c4 [ 277.814521] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:bc [ 277.821216] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:02 [ 277.827916] ... tps: i2c_smbus_write_byte_data addr:20 reg:91 data:00 [ 277.834612] ... tps: i2c_smbus_write_byte_data addr:20 reg:90 data:00 [ 277.841349] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:00 [ 277.848052] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:00 [ 279.495612] kernel_read_file_from_path_initns path=/lib/firmware/TPS23881_2_SRAM_v14.bin [ 279.506359] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:c5 [ 279.513106] ... tps: i2c_smbus_write_byte_data addr:20 reg:62 data:00 [ 279.519809] ... tps: i2c_smbus_write_byte_data addr:20 reg:63 data:80 [ 279.526512] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:c0 [ 279.533209] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:bc [ 279.539906] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:02 [ 279.546604] ... tps: i2c_smbus_write_byte_data addr:20 reg:91 data:00 [ 279.553307] ... tps: i2c_smbus_write_byte_data addr:20 reg:90 data:00 [ 279.559999] ... tps: i2c_smbus_write_byte_data addr:20 reg:d7 data:00 [ 279.566691] ... tps: i2c_smbus_write_byte_data addr:20 reg:1d data:00 [ 293.784973] ... tps: i2c_smbus_write_byte_data addr:20 reg:60 data:18 [ 293.804701] tps23881 2-0020: Firmware revision 0x0 [ 293.809627] ... tps: i2c_smbus_write_byte_data addr:20 reg:17 data:a0 [ 293.817623] i2c_smbus_write_word_data addr:20 reg:26 data:e4e4 [ 293.823595] i2c_smbus_write_word_data addr:20 reg:12 data:aaaa [ 293.829557] i2c_smbus_write_word_data addr:20 reg:13 data:0000 [ 293.835523] i2c_smbus_write_word_data addr:20 reg:29 data:0000 [ 293.841467] i2c_smbus_write_word_data addr:20 reg:14 data:0000 [ 293.856116] tps23881 2-0020: DebugFS entry registers created [ 293.861823] ... tps: DebugFS entry registers created
在这两种情况下、固件似乎都被 IC 拒绝。 我已重新下载固件并重新检查以确保固件文件未损坏。
欢迎提供任何解决此问题的建议。