aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/af9035/parse_af9035.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/af9035/parse_af9035.pl')
-rwxr-xr-xcontrib/af9035/parse_af9035.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/contrib/af9035/parse_af9035.pl b/contrib/af9035/parse_af9035.pl
index a615d15a..d29e26e8 100755
--- a/contrib/af9035/parse_af9035.pl
+++ b/contrib/af9035/parse_af9035.pl
@@ -29,6 +29,8 @@ my $hide_ir;
my $hide_fw;
my $hide_rd;
my $hide_wr;
+my $hide_i2c_rd;
+my $hide_i2c_wr;
my $argerr = "Invalid arguments.\nUse $0 [--debug] [--show_timestamp] [--hide-ir] [--hide-fw] [--hide-rd] [--hide-wr]\n";
@@ -38,6 +40,8 @@ GetOptions(
'hide_fw|hide-fw' => \$hide_fw,
'hide_rd|hide-rd' => \$hide_rd,
'hide_wr|hide-wr' => \$hide_wr,
+ 'hide_i2c_rd|hide-i2c-rd' => \$hide_i2c_rd,
+ 'hide_i2c_wr|hide-i2c-wr' => \$hide_i2c_wr,
'debug' => \$debug,
) or die $argerr;
@@ -78,6 +82,36 @@ sub print_send_race($$$$$$)
my ( $ctrl_ts, $ctrl_ep, $ctrl_len, $ctrl_seq, $ctrl_mbox, $ctrl_cmd, @ctrl_bytes ) = @$data;
+ if ($cmd eq "CMD_MEM_RD" && scalar(@ctrl_bytes) >= 3 && ($ctrl_cmd =~ /CMD_GENERIC_I2C_(RD|WR)/)) {
+ my @old = @ctrl_bytes;
+ my $len = shift @ctrl_bytes;
+ my $bus = shift @ctrl_bytes;
+ my $addr = (shift @ctrl_bytes) >> 1;
+
+ if (!scalar(@ctrl_bytes) && ($ctrl_cmd eq "CMD_GENERIC_I2C_RD")) {
+ my @b = split(/ /, $payload);
+ my $comment = "\t/* read: $payload */";
+
+ printf "i2c_master_recv(bus%d, 0x%02x >> 1, &buf, %d);%s\n", $bus, $addr, scalar(@b), $comment if (!$hide_i2c_rd);
+ return;
+ } elsif ($ctrl_cmd eq "CMD_GENERIC_I2C_WR") {
+ my $comment = "\t/* $payload */" if ($payload =~ /ERROR/);
+
+ my $ctrl_pay;
+ for (my $i = 0; $i < scalar(@ctrl_bytes); $i++) {
+ if ($i == 0) {
+ $ctrl_pay .= sprintf "0x%02x", $ctrl_bytes[$i];
+ } else {
+ $ctrl_pay .= sprintf ", 0x%02x", $ctrl_bytes[$i];
+ }
+ }
+
+ printf "i2c_master_send(bus%d, 0x%02x >> 1, { %s }, %d);%s\n", $bus, $addr, $ctrl_pay, scalar(@ctrl_bytes), $comment if (!$hide_i2c_wr);
+ return;
+ }
+ @ctrl_bytes = @old;
+ }
+
if ($cmd eq "CMD_MEM_RD" && scalar(@ctrl_bytes) >= 6 && ($ctrl_cmd eq "CMD_MEM_WR" || $ctrl_cmd eq "CMD_MEM_RD")) {
my $wlen;

Privacy Policy