X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=gpio.pl;h=429982be6c38a020f63d72fbe62a5807a7f3924b;hb=df949b3ca21b452f975b9b093ac233cf669477ee;hp=d328559c6c1f0d682e95302e32103b0a146ede15;hpb=20665dc69962d11a1135164862fb33d314cf6ac3;p=linux-gpio-pinout diff --git a/gpio.pl b/gpio.pl index d328559..429982b 100755 --- a/gpio.pl +++ b/gpio.pl @@ -14,6 +14,7 @@ my $opt_edge = 0; my $opt_middle = 0; my $opt_zebra = 0; my $opt_lines = 0; +my $opt_read = ''; GetOptions( 'svg!' => \$opt_svg, 'alt!' => \$opt_alt, @@ -24,14 +25,17 @@ GetOptions( 'middle-pins!' => \$opt_middle, 'zebra!' => \$opt_zebra, 'lines!' => \$opt_lines, + 'read=s' => \$opt_read, ); # svg font hints my $font_w = 1.67; # < 2.54, font is not perfect square my $font_b = 2.10; # font baseline position +$opt_read .= '/' unless $opt_read =~ m/\/$/; + sub slurp { - open(my $fh, '<', shift); + open(my $fh, '<', $opt_read . shift); local $/ = undef; <$fh>; } @@ -76,11 +80,12 @@ warn "# pins ",dump($pins); my $pin_function; my $device; -open(my $fh, '<', '/sys/kernel/debug/pinctrl/pinctrl-handles'); +open(my $fh, '<', $opt_read . '/sys/kernel/debug/pinctrl/pinctrl-handles'); while(<$fh>) { chomp; - if ( m/device: [0-9a-f]+\.(\w+)/ ) { + if ( m/device: (\S+)/ ) { $device = $1; + $device =~ s/^[0-9a-f]*\.//; # remove hex address } elsif ( m/group: (\w+\d+)\s.+function: (\S+)/ ) { my ($pin, $function) = ($1,$2); $pin_function->{$pin} = "$device $function";