#!/usr/bin/perl

# Matthijs van Duin - Dutch & Dutch

use v5.14;
use strict;
use warnings qw( FATAL all );
use utf8;

binmode STDOUT, ':utf8'  or die;



package style;

use base 'Tie::Hash';

sub TIEHASH {
	my( $class, @attrs ) = @_;
	my $style = "\e[" . join( ';', @attrs ) . 'm';
	bless \$style, $class
}

sub FETCH {
	my( $this, $key ) = @_;
       	"$$this$key\e[m"
}

package main;

tie my %R, style => 31;
tie my %G, style => 32;
tie my %Y, style => 33;
tie my %D, style => 2;
tie my %BR, style => 31, 1;
tie my %DR, style => 31, 2;
tie my %DG, style => 32, 2;

warn "$R{'Caution:'} Uses peripheral names from <https://goo.gl/jiazTL>. See README there for details.\n";



# parse options

my $verbose = 0;

while( @ARGV && $ARGV[0] =~ s/^-v/-/ ) {
	++$verbose;
	shift if $ARGV[0] eq '-';
}
die "unexpected argument: $ARGV[0]\n"  if @ARGV;

sub setglob {
	my( $pattern ) = @_;
	@ARGV = glob $pattern;
	@ARGV = $pattern  if @ARGV != 1;
}


setglob '/sys/kernel/debug/pinctrl/4a003400.*/pinmux-pins';
my @usage;
while( <> ) {
	local $SIG{__DIE__} = sub { die "@_$_\n" };
	/^pin/gc  or next;
	/\G +(0|[1-9]\d*) +\((\w+)(?:\.0)?\):/gc  or die;
	my $pin = 0 + $1;
	if( $2 ne "PIN$pin" ) {
		my $addr = hex $2;
		( $addr & 0x7ff ) == 4 * $pin  or die;
	}
	next if /\G \(MUX UNCLAIMED\)/gc;
	/\G (\S+)/gc  or die;
	my @path = split m!:!, $1;
	s/^(.*)\.([^.]+)\z/$2\@$1/ for @path;
	my $path = join '/', @path;
	/\G \(GPIO UNCLAIMED\)/gc  or die;
	$usage[ $pin ] = [ $path ];
	next if /\G\s*\z/gc;
	/\G function (\S+) group (\S+)\s*\z/gc && $1 eq $2  or die;
	$usage[ $pin ] = [ $path, $1 ];
}


my @data = map { chomp; [ split /\t+/ ] } grep /^[^#]/, <DATA>;


my $platgpio = 1;
my %gpiochip;
my @gpiochip;
my @gpio;

@ARGV = '/sys/kernel/debug/gpio';
while( <> ) {
	s/\s*\z//;
	length  or next;
	if( /^gpiochip/gc ) {
		m!\G(\d+): GPIOs (\d+)-(\d+), parent: (\S+), !gc  or die;
		my %chip = (
			index => 0 + $1,
			start => 0 + $2,
			end   => 1 + $3,
			name  => $4,
		);
		my $prevend = @gpiochip && $gpiochip[-1]{end};
		$chip{index} == @gpiochip  or last;
		$chip{start} >= $prevend  or die;
		$chip{end} > $chip{start}  or die;
		die if exists $gpiochip{ $chip{name} };
		if( $chip{name} =~ m!^platform/([0-9a-f]{5}000)\.gpio\z! ) {
			$platgpio  or die;
			$chip{start} == $prevend  or die;
			$chip{end} == $chip{start} + 32  or die;
		} else {
			$platgpio = 0;
		}
		$chip{platform} = $platgpio;
		push @gpiochip, \%chip;
		$gpiochip{ $chip{name} } = \%chip;
		next;
	}
	/^ gpio-(\d+) +\(/gc  or die;
	my $chip = $gpiochip[-1]  or die;
	my $index = $1;
	$index >= $chip->{start} && $index < $chip->{end}  or die;
	$chip->{platform}  or next;
	die if $gpio[ $index ];
	my %info;
	if( /\G(.{20,31})\|/gc ) {
		$info{label} = $1;
		$info{label} =~ s/\s+\z//;
		delete $info{label}  if $info{label} =~ /^\??\z/;
	}
	/\G(.{20,31})\)/gc  or die;
	$info{consumer} = $1;
	$info{consumer} =~ s/\s+\z//;
	delete $info{consumer}  if $info{consumer} =~ /^\??\z/;

	$info{name} = $info{consumer} // $info{label};
	$info{name} // delete $info{name};
	next if /\G\z/gc;

	/\G (in|out) +(lo|hi)(?: |\z)/gc or die;
	$info{out} = $1 eq 'out';
	$info{value} = $2 eq 'hi';
	$gpio[ $index ] = \%info;
}


@ARGV = '/proc/interrupts';
while( <> ) {
	s/\s*\z//;
	/^\s*(\d+):\s*/gc  or next;
	my $irq = 0 + $1;
	/\G(?:\d+\s+)+(\S+)\s+(\d+)\s+\w+\s+(\S+)/gc  or die;
	my $chip = $gpiochip{ $1 }  or next;
	my $index = 0 + $2;
	my $consumer = $3;
	$index < $chip->{end}  or die;
	$index += $chip->{start};
	$chip->{platform}  or next;
	my $gpio = $gpio[ $index ] ||= {};
	$gpio->{name} = $gpio->{consumer} = $consumer;
	if( /\G\s+(\S+)/gc ) {
		$gpio->{label} = $1;
		$gpio->{name} .= " $1";
	}
	$gpio->{irq} = $irq;
}


setglob '/sys/kernel/debug/pinctrl/4a003400.*/pins';
while( <> ) {
	s/\s*\z//;
	/^pin/gc  or next;

	/\G (0|[1-9]\d*) /gc  or die "parse error";
	my $pin = 0 + $1;

	/\G\(PIN$pin\) (?:\d+:\S+ )?([0-9a-f]{8})(?:\.0)? /gc
		or /\G\(([0-9a-f]{8})(?:\.0)?\) /gc
		or die "parse error";
	hex $1 == 0x4a003400 + 4 * $pin  or die "sanity check failed";

	/\G([0-9a-f]{8}) pinctrl-single\z/ or die "parse error";
	my $conf = hex $1;
	die "invalid pad conf: $_" if $conf & 0xfcf0fe00;

	my $label = $data[ $pin ][ 15 ] // next;
	my $boring = ( $label =~ s/^-// ) + ( $label !~ /^P\d+\./ );
        next if $boring > $verbose or $label eq '';

	my $slew = ( "$D{fast}", "$R{slow}" )[ $conf >> 19 & 1 ];
	my $rx = ( "  ", "$G{rx}" )[ $conf >> 18 & 1 ];
	my $pull = ( "$DG{down}", " $DR{up} " )[ $conf >> 17 & 1 ];
	$pull = "    " if $conf >> 16 & 1;
	my $mux = $conf & 15;

	my $function = $data[ $pin ][ $mux ];
	$function = "$BR{INVALID}"  if $function eq '-';
	$function = "unused"  if $mux == 15;

	my $dir;
	my $value;
	if( $function =~ /^gpi[o ] (\d)\.(\d\d)\b/ && $2 < 32
			&& ( my $gi = $gpio[ $1 * 32 + $2 ] ) ) {
		$function .= " ";
		if( $gi->{out} ) {
			$function .= $gi->{value} ? $BR{hi} : $G{lo};
			$function .= $Y{" >>"};
		} elsif( $conf >> 18 & 1 ) {
			$function .= $Y{"<< "};
			$function .= $gi->{value} ? $R{hi} : $DG{lo};
		} else {
			$function .= $D{"<!   "};
		}
		$function .= " ";
		$usage[ $pin ][0] = $gi->{name}  if $gi->{name};
	} else {
		$function = sprintf "%-16s", $function;
	}

	if( $usage[ $pin ] ) {
		my( $dev, $group ) = @{ $usage[ $pin ] };
		$function .= " $Y{$dev}";
		$function .= " " . $D{"($group)"}  if defined $group;
	} elsif( $mux == 15 || $boring > 1 ) {
		$function = $D{$function};
	}

	$mux = sprintf $Y{'%2d'}, $mux;
	$function = qq/$slew $rx $pull $mux $function/;

	printf "%-36s $Y{'%3s'} %s\n", $label, $pin, $function;
}

__DATA__
gpmc d0			-			vin 1.0a d0		vout 2 d0		-			-			-			-			-			-			-			-			-			-			gpio 0.06		sysboot 0
gpmc d1			-			vin 1.0a d1		vout 2 d1		-			-			-			-			-			-			-			-			-			-			gpio 0.07		sysboot 1
gpmc d2			-			vin 1.0a d2		vout 2 d2		-			-			-			-			-			-			-			-			-			-			gpio 0.08		sysboot 2
gpmc d3			-			vin 1.0a d3		vout 2 d3		-			-			-			-			-			-			-			-			-			-			gpio 0.09		sysboot 3
gpmc d4			-			vin 1.0a d4		vout 2 d4		-			-			-			-			-			-			-			-			-			-			gpio 0.10		sysboot 4
gpmc d5			-			vin 1.0a d5		vout 2 d5		-			-			-			-			-			-			-			-			-			-			gpio 0.11		sysboot 5
gpmc d6			-			vin 1.0a d6		vout 2 d6		-			-			-			-			-			-			-			-			-			-			gpio 0.12		sysboot 6
gpmc d7			-			vin 1.0a d7		vout 2 d7		-			-			-			-			-			-			-			-			-			-			gpio 0.13		sysboot 7
gpmc d8			-			vin 1.0a d8		vout 2 d8		-			-			-			-			-			-			-			-			-			-			gpio 6.18		sysboot 8
gpmc d9			-			vin 1.0a d9		vout 2 d9		-			-			-			-			-			-			-			-			-			-			gpio 6.19		sysboot 9
gpmc d10		-			vin 1.0a d10		vout 2 d10		-			-			-			-			-			-			-			-			-			-			gpio 6.28		sysboot 10
gpmc d11		-			vin 1.0a d11		vout 2 d11		-			-			-			-			-			-			-			-			-			-			gpio 6.29		sysboot 11
gpmc d12		-			vin 1.0a d12		vout 2 d12		-			-			-			-			-			-			-			-			-			-			gpio 0.18		sysboot 12
gpmc d13		-			vin 1.0a d13		vout 2 d13		-			-			-			-			-			-			-			-			-			-			gpio 0.19		sysboot 13
gpmc d14		-			vin 1.0a d14		vout 2 d14		-			-			-			-			-			-			-			-			-			-			gpio 0.20		sysboot 14
gpmc d15		-			vin 1.0a d15		vout 2 d15		-			-			-			-			-			-			-			-			-			-			gpio 0.21		sysboot 15
gpmc a0			-			vin 1.0a d16		vout 2 d16		vin 1.1a d0		-			vin 1.1b d0		i²c 3 scl		uart 4 rxd		-			-			-			-			-			gpio 6.03		P9.19a
gpmc a1			-			vin 1.0a d17		vout 2 d17		vin 1.1a d1		-			vin 1.1b d1		i²c 3 sda		uart 4 txd		-			-			-			-			-			gpio 6.04		P9.20a
gpmc a2			-			vin 1.0a d18		vout 2 d18		vin 1.1a d2		-			vin 1.1b d2		uart 6 rxd		uart 4 cts		-			-			-			-			-			gpio 6.05		-
gpmc a3			qspi cs2		vin 1.0a d19		vout 2 d19		vin 1.1a d3		-			vin 1.1b d3		uart 6 txd		uart 4 rts		-			-			-			-			-			gpio 6.06		-
gpmc a4			qspi cs3		vin 1.0a d20		vout 2 d20		vin 1.1a d4		-			vin 1.1b d4		i²c 4 scl		uart 5 rxd		-			-			-			-			-			gpio 0.26		bluetooth in
gpmc a5			-			vin 1.0a d21		vout 2 d21		vin 1.1a d5		-			vin 1.1b d5		i²c 4 sda		uart 5 txd		-			-			-			-			-			gpio 0.27		bluetooth out
gpmc a6			-			vin 1.0a d22		vout 2 d22		vin 1.1a d6		-			vin 1.1b d6		uart 7 rxd		uart 5 cts		-			-			-			-			-			gpio 0.28		bluetooth cts
gpmc a7			-			vin 1.0a d23		vout 2 d23		vin 1.1a d7		-			vin 1.1b d7		uart 7 txd		uart 5 rts		-			-			-			-			-			gpio 0.29		bluetooth rts
gpmc a8			-			vin 1.0a hsync		vout 2 hsync		-			-			vin 1.1b hsync		timer 11		spi 3 sclk		-			-			-			-			-			gpio 0.30		-
gpmc a9			-			vin 1.0a vsync		vout 2 vsync		-			-			vin 1.1b vsync		timer 10		spi 3 d1		-			-			-			-			-			gpio 0.31		-
gpmc a10		-			vin 1.0a de		vout 2 de		-			-			vin 1.1b clk		timer 9			spi 3 d0		-			-			-			-			-			gpio 1.00		-
gpmc a11		-			vin 1.0a fld		vout 2 fld		vin 1.1a fld		-			vin 1.1b de		timer 8			spi 3 cs0		-			-			-			-			-			gpio 1.01		-
gpmc a12		-			-			-			vin 1.1a clk		gpmc a0			vin 1.1b fld		timer 7			spi 3 cs1		dma event 0		-			-			-			-			gpio 1.02		-
gpmc a13		qspi rtclk		-			-			vin 1.1a hsync		-			-			timer 6			spi 3 cs2		dma event 1		-			-			-			-			gpio 1.03		-
gpmc a14		qspi d3			-			-			vin 1.1a vsync		-			-			timer 5			spi 3 cs3		-			-			-			-			-			gpio 1.04		-
gpmc a15		qspi d2			-			-			vin 1.1a d8		-			-			timer 4			-			-			-			-			-			-			gpio 1.05		-
gpmc a16		qspi d0			-			-			vin 1.1a d9		-			-			-			-			-			-			-			-			-			gpio 1.06		-
gpmc a17		qspi d1			-			-			vin 1.1a d10		-			-			-			-			-			-			-			-			-			gpio 1.07		-
gpmc a18		qspi sclk		-			-			vin 1.1a d11		-			-			-			-			-			-			-			-			-			gpio 1.08		-
gpmc a19		mmc 1 dat4		gpmc a13		-			vin 1.1a d12		-			vin 1.0b d0		-			-			-			-			-			-			-			gpio 1.09		eMMC d4
gpmc a20		mmc 1 dat5		gpmc a14		-			vin 1.1a d13		-			vin 1.0b d1		-			-			-			-			-			-			-			gpio 1.10		eMMC d5
gpmc a21		mmc 1 dat6		gpmc a15		-			vin 1.1a d14		-			vin 1.0b d2		-			-			-			-			-			-			-			gpio 1.11		eMMC d6
gpmc a22		mmc 1 dat7		gpmc a16		-			vin 1.1a d15		-			vin 1.0b d3		-			-			-			-			-			-			-			gpio 1.12		eMMC d7
gpmc a23		mmc 1 clk		gpmc a17		-			vin 1.1a fld		-			vin 1.0b d4		-			-			-			-			-			-			-			gpio 1.13		eMMC clk
gpmc a24		mmc 1 dat0		gpmc a18		-			vin 1.1a d8		-			vin 1.0b d5		-			-			-			-			-			-			-			gpio 1.14		eMMC d0
gpmc a25		mmc 1 dat1		gpmc a19		-			vin 1.1a d9		-			vin 1.0b d6		-			-			-			-			-			-			-			gpio 1.15		eMMC d1
gpmc a26		mmc 1 dat2		gpmc a20		-			vin 1.1a d10		-			vin 1.0b d7		-			-			-			-			-			-			-			gpio 1.16		eMMC d2
gpmc a27		mmc 1 dat3		gpmc a21		-			vin 1.1a d11		-			vin 1.0b hsync		-			-			-			-			-			-			-			gpio 1.17		eMMC d3
gpmc cs1		mmc 1 cmd		gpmc a22		-			vin 1.1a de		-			vin 1.0b vsync		-			-			-			-			-			-			-			gpio 1.18		eMMC cmd
gpmc cs0		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 1.19		-
gpmc cs2		qspi cs0		-			-			-			-			-			-			-			-			-			-			-			-			gpio 1.20		-
gpmc cs3		qspi cs1		vin 1.0a clk		vout 2 clk		-			gpmc a1			-			-			-			-			-			-			-			-			gpio 1.21		-
gpmc clk		gpmc cs7		clkout 0		gpmc wait1		vin 1.1a hsync		vin 1.1a de		vin 1.0b clk		timer 3			i²c 2 scl		dma event 0		-			-			-			-			gpio 1.22		-
gpmc advn ale		gpmc cs6		clkout 1		gpmc wait1		vin 1.1a vsync		gpmc a2			gpmc a23		timer 2			i²c 2 sda		dma event 1		-			-			-			-			gpio 1.23		-
gpmc oen ren		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 1.24		-
gpmc wen		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 1.25		-
gpmc ben0		gpmc cs4		-			vin 0.0b hsync		-			-			vin 1.0b de		timer 1			-			dma event 2		-			-			-			-			gpio 1.26		-
gpmc ben1		gpmc cs5		-			vin 0.0b de		vin 1.0b clk		gpmc a3			vin 1.0b fld		timer 0			-			dma event 3		-			-			-			-			gpio 1.27		-
gpmc wait0		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 1.28		-
vin 0.0a clk		-			-			vout 2 d16		vout 2 fld		-			-			-			-			-			-			-			-			-			gpio 1.30		adc irq
vin 0.0b clk		-			-			-			-			-			vin 1.0a clk		-			-			-			-			-			-			-			gpio 1.31		-
vin 0.0a de		vin 0.0b hsync		-			vout 2 d17		vout 2 de		uart 6 rxd		-			timer 15		spi 2 sclk		kbd row 0		qep 0 A			-			-			-			gpio 2.00		P8.35b
vin 0.0a fld		vin 0.0b vsync		-			-			vout 2 clk		uart 6 txd		-			timer 14		spi 2 d1		kbd row 1		qep 0 B			-			-			-			gpio 2.01		P8.33b
vin 0.0a hsync		vin 0.0b fld		-			-			vout 2 hsync		uart 6 cts		-			timer 13		spi 2 d0		-			qep 0 index		-			-			-			gpio 2.02		-
vin 0.0a vsync		vin 0.0b de		-			-			vout 2 vsync		uart 6 rts		-			timer 12		spi 2 cs0		-			qep 0 strobe		-			-			-			gpio 2.03		P9.21a
vin 0.0a d0		-			-			vout 2 d7		vout 2 d23		uart 7 rxd		-			-			-			-			pwm 0 A			-			-			-			gpio 2.04		-
vin 0.0a d1		-			-			vout 2 d6		vout 2 d22		uart 7 txd		-			-			-			-			pwm 0 B			-			-			-			gpio 2.05		-
vin 0.0a d2		-			-			vout 2 d5		vout 2 d21		uart 7 cts		-			-			-			-			pwm 0 trip		-			-			-			gpio 2.06		-
vin 0.0a d3		-			-			vout 2 d4		vout 2 d20		uart 7 rts		-			-			-			-			cap 0			-			pr 0 pru0 gpi0		pr 0 pru0 gpo0		gpio 2.07		user led 4
vin 0.0a d4		-			-			vout 2 d3		vout 2 d19		-			-			-			-			-			pwm 0 sync in		-			pr 0 pru0 gpi1		pr 0 pru0 gpo1		gpio 2.08		-
vin 0.0a d5		-			-			vout 2 d2		vout 2 d18		-			-			-			-			-			pwm 0 sync out		-			pr 0 pru0 gpi2		pr 0 pru0 gpo2		gpio 2.09		-
vin 0.0a d6		-			-			vout 2 d1		vout 2 d17		-			-			-			-			-			qep 1 A			-			pr 0 pru0 gpi3		pr 0 pru0 gpo3		gpio 2.10		P8.12
vin 0.0a d7		-			-			vout 2 d0		vout 2 d16		-			-			-			-			-			qep 1 B			-			pr 0 pru0 gpi4		pr 0 pru0 gpo4		gpio 2.11		P8.11
vin 0.0a d8		vin 0.0b d7		-			-			vout 2 d15		-			-			-			-			kbd row 2		qep 1 index		-			pr 0 pru0 gpi5		pr 0 pru0 gpo5		gpio 2.12		P9.15
vin 0.0a d9		vin 0.0b d6		-			-			vout 2 d14		-			-			-			-			kbd row 3		qep 1 strobe		-			pr 0 pru0 gpi6		pr 0 pru0 gpo6		gpio 2.13		usb C id
vin 0.0a d10		vin 0.0b d5		-			-			vout 2 d13		-			-			-			-			kbd row 4		pr 0 edc latch 0	-			pr 0 pru0 gpi7		pr 0 pru0 gpo7		gpio 2.14		user led 3
vin 0.0a d11		vin 0.0b d4		-			-			vout 2 d12		gpmc a23		-			-			-			kbd row 5		pr 0 edc latch 1	-			pr 0 pru0 gpi8		pr 0 pru0 gpo8		gpio 2.15		user led 2
vin 0.0a d12		vin 0.0b d3		-			-			vout 2 d11		gpmc a24		-			-			-			kbd row 6		pr 0 edc sync 0		-			pr 0 pru0 gpi9		pr 0 pru0 gpo9		gpio 2.16		-
vin 0.0a d13		vin 0.0b d2		-			-			vout 2 d10		gpmc a25		-			-			-			kbd row 7		pr 0 edc sync 1		-			pr 0 pru0 gpi10		pr 0 pru0 gpo10		gpio 2.17		user led 0
vin 0.0a d14		vin 0.0b d1		-			-			vout 2 d9		gpmc a26		-			-			-			kbd row 8		pr 0 edio latch		-			pr 0 pru0 gpi11		pr 0 pru0 gpo11		gpio 2.18		wifi reg on
vin 0.0a d15		vin 0.0b d0		-			-			vout 2 d8		gpmc a27		-			-			-			kbd col 0		pr 0 edio sof		-			pr 0 pru0 gpi12		pr 0 pru0 gpo12		gpio 2.19		-
vin 0.0a d16		vin 0.0b d7		-			-			vout 2 d7		-			vin 1.0a d0		-			-			kbd col 1		pr 0 edio in0		pr 0 edio out0		pr 0 pru0 gpi13		pr 0 pru0 gpo13		gpio 2.20		bluetooth host wake
vin 0.0a d17		vin 0.0b d6		-			-			vout 2 d6		-			vin 1.0a d1		-			-			kbd col 2		pr 0 edio in1		pr 0 edio out1		pr 0 pru0 gpi14		pr 0 pru0 gpo14		gpio 2.21		bluetooth wake
vin 0.0a d18		vin 0.0b d5		-			-			vout 2 d5		-			vin 1.0a d2		-			-			kbd col 3		pr 0 edio in2		pr 0 edio out2		pr 0 pru0 gpi15		pr 0 pru0 gpo15		gpio 2.22		bluetooth reg on
vin 0.0a d19		vin 0.0b d4		-			-			vout 2 d4		-			vin 1.0a d3		-			-			kbd col 4		pr 0 edio in3		pr 0 edio out3		pr 0 pru0 gpi16		pr 0 pru0 gpo16		gpio 2.23		wifi host wake
vin 0.0a d20		vin 0.0b d3		-			-			vout 2 d3		-			vin 1.0a d4		-			-			kbd col 5		pr 0 edio in4		pr 0 edio out4		pr 0 pru0 gpi17		pr 0 pru0 gpo17		gpio 2.24		P9.26b
vin 0.0a d21		vin 0.0b d2		-			-			vout 2 d2		-			vin 1.0a d5		-			-			kbd col 6		pr 0 edio in5		pr 0 edio out5		pr 0 pru0 gpi18		pr 0 pru0 gpo18		gpio 2.25		usb C irq
vin 0.0a d22		vin 0.0b d1		-			-			vout 2 d1		-			vin 1.0a d6		-			-			kbd col 7		pr 0 edio in6		pr 0 edio out6		pr 0 pru0 gpi19		pr 0 pru0 gpo19		gpio 2.26		-
vin 0.0a d23		vin 0.0b d0		-			-			vout 2 d0		-			vin 1.0a d7		-			-			kbd col 8		pr 0 edio in7		pr 0 edio out7		pr 0 pru0 gpi20		pr 0 pru0 gpo20		gpio 2.27		adc voltage select
vin 0.1a clk		-			-			-			vout 1 fld		emu 5			-			-			-			kbd row 0		qep 0 A			-			pr 0 edio in0		pr 0 edio out0		gpio 2.28		-
vin 0.1a de		vin 0.1a fld		vin 0.1b fld		vin 0.1b de		vout 1 de		emu 6			-			-			-			kbd row 1		qep 0 B			-			pr 0 edio in1		pr 0 edio out1		gpio 2.29		-
vin 0.1a fld		-			vin 0.1b clk		-			vout 1 clk		emu 7			-			-			-			-			qep 0 index		-			pr 0 edio in2		pr 0 edio out2		gpio 2.30		-
vin 0.1a hsync		-			-			vin 0.1b hsync		vout 1 hsync		emu 8			-			uart 8 rxd		spi 3 sclk		kbd row 2		qep 0 strobe		pr 0 uart cts		pr 0 edio in3		pr 0 edio out3		gpio 2.31		-
vin 0.1a vsync		-			-			vin 0.1b vsync		vout 1 vsync		emu 9			-			uart 8 txd		spi 3 d1		kbd row 3		pwm 0 A			pr 0 uart rts		pr 0 edio in4		pr 0 edio out4		gpio 3.00		P8.34b
vin 0.1a d0		-			-			-			vout 1 d23		emu 10			-			uart 8 cts		spi 3 d0		kbd row 4		pwm 0 B			pr 0 uart rxd		pr 0 edio in5		pr 0 edio out5		gpio 3.01		P8.36b
vin 0.1a d1		-			-			-			vout 1 d22		emu 11			-			uart 8 rts		spi 3 cs0		kbd row 5		pwm 0 trip		pr 0 uart txd		pr 0 edio in6		pr 0 edio out6		gpio 3.02		-
vin 0.1a d2		-			-			-			vout 1 d21		emu 12			-			-			uart 9 rxd		kbd row 6		cap 0			pr 0 cap		pr 0 edio in7		pr 0 edio out7		gpio 3.03		P8.15a
vin 0.1a d3		-			-			-			vout 1 d20		emu 13			-			-			uart 9 txd		kbd col 0		pwm 0 sync in		pr 0 edc latch 0	pr 0 pru1 gpi0		pr 0 pru1 gpo0		gpio 3.04		-
vin 0.1a d4		-			-			-			vout 1 d19		emu 14			-			-			uart 9 cts		kbd col 1		pwm 0 sync out		pr 0 edc sync 0		pr 0 pru1 gpi1		pr 0 pru1 gpo1		gpio 3.05		P9.20b
vin 0.1a d5		-			-			-			vout 1 d18		emu 15			-			-			uart 9 rts		kbd col 2		qep 1 A			pr 0 edio sof		pr 0 pru1 gpi2		pr 0 pru1 gpo2		gpio 3.06		P9.19b
vin 0.1a d6		-			-			-			vout 1 d17		emu 16			-			-			mii 1 rxd1		kbd col 3		qep 1 B			pr 0 mii 1 txclk	pr 0 pru1 gpi3		pr 0 pru1 gpo3		gpio 3.07		P9.41b
vin 0.1a d7		-			-			-			vout 1 d16		emu 17			-			-			mii 1 rxd2		kbd col 4		qep 1 index		pr 0 mii 1 txen		pr 0 pru1 gpi4		pr 0 pru1 gpo4		gpio 3.08		-
vin 0.1a d8		-			-			-			vout 1 d15		emu 18			-			-			mii 1 rxd3		kbd col 5		qep 1 strobe		pr 0 mii 1 txd3		pr 0 pru1 gpi5		pr 0 pru1 gpo5		gpio 3.09		P8.18
vin 0.1a d9		-			-			-			vout 1 d14		emu 19			-			-			mii 1 rxd0		kbd col 6		pwm 1 A			pr 0 mii 1 txd2		pr 0 pru1 gpi6		pr 0 pru1 gpo6		gpio 3.10		P8.19
vin 0.1a d10		-			-			mdio clk		vout 1 d13		-			-			-			-			kbd col 7		pwm 1 B			pr 0 mdio mdclk		pr 0 pru1 gpi7		pr 0 pru1 gpo7		gpio 3.11		P8.13
vin 0.1a d11		-			-			mdio data		vout 1 d12		-			-			-			-			kbd row 7		pwm 1 trip		pr 0 mdio data		pr 0 pru1 gpi8		pr 0 pru1 gpo8		gpio 3.12		-
vin 0.1a d12		-			-			rgmii 1 txc		vout 1 d11		-			-			-			mii 1 rxclk		kbd col 8		cap 1			pr 0 mii 1 txd1		pr 0 pru1 gpi9		pr 0 pru1 gpo9		gpio 3.13		P8.14
vin 0.1a d13		-			-			rgmii 1 txctl		vout 1 d10		-			-			-			mii 1 rxdv		kbd row 8		qep 2 A			pr 0 mii 1 txd0		pr 0 pru1 gpi10		pr 0 pru1 gpo10		gpio 3.14		P9.42b
vin 0.1a d14		-			-			rgmii 1 txd3		vout 1 d9		-			-			-			mii 1 txclk		-			qep 2 B			pr 0 mii 1 rxclk	pr 0 pru1 gpi11		pr 0 pru1 gpo11		gpio 3.15		P9.27a
vin 0.1a d15		-			-			rgmii 1 txd2		vout 1 d8		-			-			-			mii 1 txd0		-			qep 2 index		pr 0 mii 1 rxdv		pr 0 pru1 gpi12		pr 0 pru1 gpo12		gpio 3.16		-
vin 0.1a d16		-			vin 0.1b d7		rgmii 1 txd1		vout 1 d7		-			vin 1.0a d8		-			mii 1 txd1		-			qep 2 strobe		pr 0 mii 1 rxd3		pr 0 pru1 gpi13		pr 0 pru1 gpo13		gpio 3.24		-
vin 0.1a d17		-			vin 0.1b d6		rgmii 1 txd0		vout 1 d6		-			vin 1.0a d9		-			mii 1 txd2		-			pwm 2 A			pr 0 mii 1 rxd2		pr 0 pru1 gpi14		pr 0 pru1 gpo14		gpio 3.25		P9.14
vin 0.1a d18		-			vin 0.1b d5		rgmii 1 rxc		vout 1 d5		-			vin 1.0a d10		-			mii 1 txd3		-			pwm 2 B			pr 0 mii 1 rxd1		pr 0 pru1 gpi15		pr 0 pru1 gpo15		gpio 3.26		P9.16
vin 0.1a d19		-			vin 0.1b d4		rgmii 1 rxctl		vout 1 d4		-			vin 1.0a d11		-			mii 1 txer		-			pwm 2 trip		pr 0 mii 1 rxd0		pr 0 pru1 gpi16		pr 0 pru1 gpo16		gpio 3.27		P8.15b
vin 0.1a d20		-			vin 0.1b d3		rgmii 1 rxd3		vout 1 d3		vin 1.0a de		vin 1.0a d12		-			mii 1 rxer		-			cap 2			pr 0 mii 1 rxer		pr 0 pru1 gpi17		pr 0 pru1 gpo17		gpio 3.28		P8.26
vin 0.1a d21		-			vin 0.1b d2		rgmii 1 rxd2		vout 1 d2		vin 1.0a fld		vin 1.0a d13		-			mii 1 col		-			-			pr 0 mii 1 rxlink	pr 0 pru1 gpi18		pr 0 pru1 gpo18		gpio 3.29		P8.16
vin 0.1a d22		-			vin 0.1b d1		rgmii 1 rxd1		vout 1 d1		vin 1.0a hsync		vin 1.0a d14		-			mii 1 crs		-			-			pr 0 mii 1 col		pr 0 pru1 gpi19		pr 0 pru1 gpo19		gpio 3.30		-
vin 0.1a d23		-			vin 0.1b d0		rgmii 1 rxd0		vout 1 d0		vin 1.0a vsync		vin 1.0a d15		-			mii 1 txen		-			-			pr 0 mii 1 crs		pr 0 pru1 gpi20		pr 0 pru1 gpo20		gpio 3.31		-
vout 0 clk		-			-			vin 1.1a fld		vin 1.0a fld		-			-			-			spi 2 cs0		-			-			-			-			-			gpio 3.19		P8.28a
vout 0 de		-			-			vin 1.1a de		vin 1.0a de		-			-			-			spi 2 d1		-			-			-			-			-			gpio 3.20		P8.30a
vout 0 fld		-			-			vin 1.1a clk		vin 1.0a clk		-			-			-			spi 2 cs1		-			-			-			-			-			gpio 3.21		-
vout 0 hsync		-			-			vin 1.1a hsync		vin 1.0a hsync		-			-			-			spi 2 d0		-			-			-			-			-			gpio 3.22		P8.29a
vout 0 vsync		-			-			vin 1.1a vsync		vin 1.0a vsync		-			-			-			spi 2 sclk		-			-			-			pr 1 pru1 gpi17		pr 1 pru1 gpo17		gpio 3.23		P8.27a
vout 0 d0		-			uart 4 rxd		vin 1.1a d16		vin 1.0a d16		-			-			-			spi 2 cs2		-			pr 0 uart cts		-			pr 1 pru1 gpi18		pr 1 pru1 gpo18		gpio 7.00		P8.45a
vout 0 d1		-			uart 4 txd		vin 1.1a d17		vin 1.0a d17		-			-			-			-			-			pr 0 uart rts		-			pr 1 pru1 gpi19		pr 1 pru1 gpo19		gpio 7.01		P8.46a
vout 0 d2		-			emu 2			vin 1.1a d18		vin 1.0a d18		obs 0			obs 16			obs irq 0		-			-			pr 0 uart rxd		-			pr 1 pru1 gpi20		pr 1 pru1 gpo20		gpio 7.02		P8.43
vout 0 d3		-			emu 5			vin 1.1a d19		vin 1.0a d19		obs 1			obs 17			obs dmarq 0		-			-			pr 0 uart txd		-			pr 1 pru0 gpi0		pr 1 pru0 gpo0		gpio 7.03		P8.44
vout 0 d4		-			emu 6			vin 1.1a d20		vin 1.0a d20		obs 2			obs 18			-			-			-			pr 0 cap		-			pr 1 pru0 gpi1		pr 1 pru0 gpo1		gpio 7.04		P8.41
vout 0 d5		-			emu 7			vin 1.1a d21		vin 1.0a d21		obs 3			obs 19			-			-			-			pr 1 edc latch 0	-			pr 1 pru0 gpi2		pr 1 pru0 gpo2		gpio 7.05		P8.42
vout 0 d6		-			emu 8			vin 1.1a d22		vin 1.0a d22		obs 4			obs 20			-			-			-			pr 1 edc latch 1	-			pr 1 pru0 gpi3		pr 1 pru0 gpo3		gpio 7.06		P8.39
vout 0 d7		-			emu 9			vin 1.1a d23		vin 1.0a d23		-			-			-			-			-			pr 1 edc sync 0		-			pr 1 pru0 gpi4		pr 1 pru0 gpo4		gpio 7.07		P8.40
vout 0 d8		-			uart 5 rxd		vin 1.1a d8		vin 1.0a d8		-			-			-			-			-			pr 1 edc sync 1		-			pr 1 pru0 gpi5		pr 1 pru0 gpo5		gpio 7.08		P8.37a
vout 0 d9		-			uart 5 txd		vin 1.1a d9		vin 1.0a d9		-			-			-			-			-			pr 1 edio latch		-			pr 1 pru0 gpi6		pr 1 pru0 gpo6		gpio 7.09		P8.38a
vout 0 d10		-			emu 3			vin 1.1a d10		vin 1.0a d10		obs 5			obs 21			obs irq 1		-			-			pr 1 edio sof		-			pr 1 pru0 gpi7		pr 1 pru0 gpo7		gpio 7.10		P8.36a
vout 0 d11		-			emu 10			vin 1.1a d11		vin 1.0a d11		obs 6			obs 22			obs dmarq 1		-			-			pr 1 uart cts		-			pr 1 pru0 gpi8		pr 1 pru0 gpo8		gpio 7.11		P8.34a
vout 0 d12		-			emu 11			vin 1.1a d12		vin 1.0a d12		obs 7			obs 23			-			-			-			pr 1 uart rts		-			pr 1 pru0 gpi9		pr 1 pru0 gpo9		gpio 7.12		P8.35a
vout 0 d13		-			emu 12			vin 1.1a d13		vin 1.0a d13		obs 8			obs 24			-			-			-			pr 1 uart rxd		-			pr 1 pru0 gpi10		pr 1 pru0 gpo10		gpio 7.13		P8.33a
vout 0 d14		-			emu 13			vin 1.1a d14		vin 1.0a d14		obs 9			obs 25			-			-			-			pr 1 uart txd		-			pr 1 pru0 gpi11		pr 1 pru0 gpo11		gpio 7.14		P8.31a
vout 0 d15		-			emu 14			vin 1.1a d15		vin 1.0a d15		obs 10			obs 26			-			-			-			pr 1 cap		-			pr 1 pru0 gpi12		pr 1 pru0 gpo12		gpio 7.15		P8.32a
vout 0 d16		-			uart 6 rxd		vin 1.1a d0		vin 1.0a d0		-			-			-			-			-			pr 1 edio in0		pr 1 edio out0		pr 1 pru0 gpi13		pr 1 pru0 gpo13		gpio 7.16		P8.45b
vout 0 d17		-			uart 6 txd		vin 1.1a d1		vin 1.0a d1		-			-			-			-			-			pr 1 edio in1		pr 1 edio out1		pr 1 pru0 gpi14		pr 1 pru0 gpo14		gpio 7.17		P9.11b
vout 0 d18		-			emu 4			vin 1.1a d2		vin 1.0a d2		obs 11			obs 27			-			-			-			pr 1 edio in2		pr 1 edio out2		pr 1 pru0 gpi15		pr 1 pru0 gpo15		gpio 7.18		P8.17
vout 0 d19		-			emu 15			vin 1.1a d3		vin 1.0a d3		obs 12			obs 28			-			-			-			pr 1 edio in3		pr 1 edio out3		pr 1 pru0 gpi16		pr 1 pru0 gpo16		gpio 7.19		P8.27b
vout 0 d20		-			emu 16			vin 1.1a d4		vin 1.0a d4		obs 13			obs 29			-			-			-			pr 1 edio in4		pr 1 edio out4		pr 1 pru0 gpi17		pr 1 pru0 gpo17		gpio 7.20		P8.28b
vout 0 d21		-			emu 17			vin 1.1a d5		vin 1.0a d5		obs 14			obs 30			-			-			-			pr 1 edio in5		pr 1 edio out5		pr 1 pru0 gpi18		pr 1 pru0 gpo18		gpio 7.21		P8.29b
vout 0 d22		-			emu 18			vin 1.1a d6		vin 1.0a d6		obs 15			obs 31			-			-			-			pr 1 edio in6		pr 1 edio out6		pr 1 pru0 gpi19		pr 1 pru0 gpo19		gpio 7.22		P8.30b
vout 0 d23		-			emu 19			vin 1.1a d7		vin 1.0a d7		-			-			-			spi 2 cs3		-			pr 1 edio in7		pr 1 edio out7		pr 1 pru0 gpi20		pr 1 pru0 gpo20		gpio 7.23		P8.46b
mdio clk		uart 2 rts		-			mii 0 col		vin 0.1a clk		vin 1.1b clk		-			-			-			-			-			pr 0 mii 0 col		pr 1 pru1 gpi0		pr 1 pru1 gpo0		gpio 4.15		eth mdio clk
mdio data		uart 2 cts		-			mii 0 txer		vin 0.1a d0		vin 1.1b d0		-			-			-			-			-			pr 0 mii 0 rxlink	pr 1 pru1 gpi1		pr 1 pru1 gpo1		gpio 4.16		eth mdio data
rmii refclk		-			-			-			vin 0.1a d11		-			-			-			-			-			-			-			pr 1 pru1 gpi2		pr 1 pru1 gpo2		gpio 4.17		-
uart 2 rxd		-			rmii 1 crs		mii 0 rxdv		vin 0.1a d1		vin 1.1b d1		-			spi 2 sclk		-			-			-			pr 0 mii 0 rxdv		pr 1 pru1 gpi3		pr 1 pru1 gpo3		gpio 4.18		usb A vbus overcurrent
uart 2 txd		-			rmii 1 rxer		mii 0 rxclk		vin 0.1a d2		vin 1.1b d2		-			spi 2 d1		spi 3 cs1		-			-			pr 0 mii 0 rxclk	pr 1 pru1 gpi4		pr 1 pru1 gpo4		gpio 4.19		eth mii irq
rgmii 0 txc		uart 2 cts		rmii 1 rxd1		mii 0 rxd3		vin 0.1a d3		vin 1.1b d3		-			spi 2 d0		spi 3 cs2		-			-			pr 0 mii 0 rxd3		pr 1 pru1 gpi5		pr 1 pru1 gpo5		gpio 4.20		eth mii tx clk
rgmii 0 txctl		uart 2 rts		rmii 1 rxd0		mii 0 rxd2		vin 0.1a d4		vin 1.1b d4		-			spi 2 cs0		spi 3 cs3		-			-			pr 0 mii 0 rxd2		pr 1 pru1 gpi6		pr 1 pru1 gpo6		gpio 4.21		eth mii tx en
rgmii 0 txd3		rmii 0 crs		-			mii 0 crs		vin 0.1a de		vin 1.1b de		-			spi 3 sclk		uart 3 rxd		-			-			pr 0 mii 0 crs		pr 1 pru1 gpi7		pr 1 pru1 gpo7		gpio 4.22		eth mii tx d3
rgmii 0 txd2		rmii 0 rxer		-			mii 0 rxer		vin 0.1a hsync		vin 1.1b hsync		-			spi 3 d1		uart 3 txd		-			-			pr 0 mii 0 rxer		pr 1 pru1 gpi8		pr 1 pru1 gpo8		gpio 4.23		eth mii tx d2
rgmii 0 txd1		rmii 0 rxd1		-			mii 0 rxd1		vin 0.1a vsync		vin 1.1b vsync		-			spi 3 d0		uart 3 cts		-			-			pr 0 mii 0 rxd1		pr 1 pru1 gpi9		pr 1 pru1 gpo9		gpio 4.24		eth mii tx d1
rgmii 0 txd0		rmii 0 rxd0		-			mii 0 rxd0		vin 0.1a d10		-			-			spi 3 cs0		uart 3 rts		-			-			pr 0 mii 0 rxd0		pr 1 pru1 gpi10		pr 1 pru1 gpo10		gpio 4.25		eth mii tx d0
rgmii 0 rxc		-			rmii 1 txen		mii 0 txclk		vin 0.1a d5		vin 1.1b d5		-			-			-			-			-			pr 0 mii 0 txclk	pr 1 pru1 gpi11		pr 1 pru1 gpo11		gpio 4.26		eth mii rx clk
rgmii 0 rxctl		-			rmii 1 txd1		mii 0 txd3		vin 0.1a d6		vin 1.1b d6		-			-			-			-			-			pr 0 mii 0 txd3		pr 1 pru1 gpi12		pr 1 pru1 gpo12		gpio 4.27		eth mii rx en
rgmii 0 rxd3		-			rmii 1 txd0		mii 0 txd2		vin 0.1a d7		vin 1.1b d7		-			-			-			-			-			pr 0 mii 0 txd2		pr 1 pru1 gpi13		pr 1 pru1 gpo13		gpio 4.28		eth mii rx d3
rgmii 0 rxd2		rmii 0 txen		-			mii 0 txen		vin 0.1a d8		-			-			-			-			-			-			pr 0 mii 0 txen		pr 1 pru1 gpi14		pr 1 pru1 gpo14		gpio 4.29		eth mii rx d2
rgmii 0 rxd1		rmii 0 txd1		-			mii 0 txd1		vin 0.1a d9		-			-			-			-			-			-			pr 0 mii 0 txd1		pr 1 pru1 gpi15		pr 1 pru1 gpo15		gpio 4.30		eth mii rx d1
rgmii 0 rxd0		rmii 0 txd0		-			mii 0 txd0		vin 0.1a fld		vin 1.1b fld		-			-			-			-			-			pr 0 mii 0 txd0		pr 1 pru1 gpi16		pr 1 pru1 gpo16		gpio 4.31		eth mii rx d3
usb 0 drvvbus		-			-			-			-			-			-			timer 15		-			-			-			-			-			-			gpio 5.12		P9.13b ?
usb 1 drvvbus		-			-			-			-			-			-			timer 14		-			-			-			-			-			-			gpio 5.13		usb A vbus out en
gpio 5.14		mcasp 0 d8		can 1 tx		uart 9 rxd		-			-			vout 1 hsync		-			vin 1.1a hsync		i²c 2 sda		timer 0			-			-			-			gpio 5.14		P9.26a
gpio 5.15		mcasp 0 d9		can 1 rx		uart 9 txd		-			-			vout 1 vsync		-			vin 1.1a vsync		i²c 2 scl		timer 1			-			-			-			gpio 5.15		P9.24
gpio 5.16		mcasp 0 d10		-			-			-			-			vout 1 fld		-			vin 1.1a fld		clkout 0		timer 2			-			-			-			gpio 5.16		pmic irq
xref clk 0		mcasp 1 d8		mcasp 0 d4		mcasp 0 tx hclk		mcasp 4 tx hclk		-			-			vin 2.1a d0		hdq			clkout 1		timer 12		pr 1 mii 1 col		pr 1 pru1 gpi5		pr 1 pru1 gpo5		gpio 5.17		P9.25
xref clk 1		mcasp 1 d9		mcasp 0 d5		mcasp 1 tx hclk		mcasp 5 tx hclk		-			-			vin 2.1a clk		-			-			timer 13		pr 1 mii 1 crs		pr 1 pru1 gpi6		pr 1 pru1 gpo6		gpio 5.18		P8.09
xref clk 2		mcasp 1 d10		mcasp 0 d6		mcasp 2 tx hclk		mcasp 6 tx hclk		-			vout 1 clk		-			vin 1.1a clk		-			timer 14		-			-			-			gpio 5.19		P9.22a
xref clk 3		mcasp 1 d11		mcasp 0 d7		mcasp 3 tx hclk		mcasp 7 tx hclk		-			vout 1 de		hdq			vin 1.1a de		clkout 2		timer 15		-			-			-			gpio 5.20		P9.41a
mcasp 0 tx clk		-			-			-			-			-			-			vin 2.1a fld		-			-			i²c 2 sda		pr 1 mdio mdclk		pr 1 pru1 gpi7		pr 1 pru1 gpo7		gpio 6.31		P9.31b
mcasp 0 tx fs		-			-			-			-			-			-			vin 2.1a de		-			-			i²c 2 scl		pr 1 mdio data		-			-			gpio 6.30		P9.29b
mcasp 0 rx clk		mcasp 6 d2		-			-			-			-			vout 1 d0		-			vin 1.1a d0		-			i²c 3 sda		-			-			-			gpio 4.00		P9.12
mcasp 0 rx fs		mcasp 6 d3		-			-			-			-			vout 1 d1		-			vin 1.1a d1		-			i²c 3 scl		-			-			-			gpio 4.01		P9.27b
mcasp 0 d0		-			-			uart 5 rxd		-			-			-			vin 2.1a vsync		-			-			i²c 4 sda		pr 1 mii 0 rxer		pr 1 pru1 gpi8		pr 1 pru1 gpo8		gpio 4.02		P9.18b
mcasp 0 d1		-			-			uart 5 txd		-			-			-			vin 2.1a hsync		-			-			i²c 4 scl		pr 1 mii 0 txclk	pr 1 pru1 gpi9		pr 1 pru1 gpo9		gpio 4.03		P9.17b
mcasp 0 d2		mcasp 5 d2		-			uart 5 cts		-			-			vout 1 d2		-			vin 1.1a d2		-			-			-			-			-			gpio 4.04		-
mcasp 0 d3		mcasp 5 d3		-			uart 5 rts		-			-			vout 1 d3		-			vin 1.1a d3		-			-			-			-			-			gpio 4.05		user led 1
mcasp 0 d4		mcasp 3 d2		-			-			-			-			vout 1 d4		-			vin 1.1a d4		-			-			-			-			-			gpio 4.06		-
mcasp 0 d5		mcasp 3 d3		-			-			-			-			vout 1 d5		-			vin 1.1a d5		-			-			-			-			-			gpio 4.07		eMMC reset
mcasp 0 d6		mcasp 4 d2		-			-			-			-			vout 1 d6		-			vin 1.1a d6		-			-			-			-			-			gpio 4.08		-
mcasp 0 d7		mcasp 4 d3		-			-			-			-			vout 1 d7		-			vin 1.1a d7		-			timer 3			-			-			-			gpio 4.09		-
mcasp 0 d8		mcasp 5 d0		-			spi 2 sclk		-			-			-			vin 2.1a d15		-			-			timer 4			pr 1 mii 0 txen		pr 1 pru1 gpi10		pr 1 pru1 gpo10		gpio 4.10		P9.31a
mcasp 0 d9		mcasp 5 d1		-			spi 2 d1		-			-			-			vin 2.1a d14		-			-			timer 5			pr 1 mii 0 txd3		pr 1 pru1 gpi11		pr 1 pru1 gpo11		gpio 4.11		P9.29a
mcasp 0 d10		mcasp 5 tx clk		mcasp 5 rx clk		spi 2 d0		-			-			-			vin 2.1a d13		-			-			timer 6			pr 1 mii 0 txd2		pr 1 pru1 gpi12		pr 1 pru1 gpo12		gpio 4.12		P9.30
mcasp 0 d11		mcasp 5 tx fs		mcasp 5 rx fs		spi 2 cs0		-			-			-			vin 2.1a d12		-			-			timer 7			pr 1 mii 0 txd1		pr 1 pru1 gpi13		pr 1 pru1 gpo13		gpio 3.17		P9.28
mcasp 0 d12		mcasp 6 d0		-			spi 2 cs1		-			-			-			vin 2.1a d11		-			-			timer 8			pr 1 mii 0 txd0		pr 1 pru1 gpi14		pr 1 pru1 gpo14		gpio 3.18		P9.42a
mcasp 0 d13		mcasp 6 d1		-			-			-			-			-			vin 2.1a d10		-			-			timer 9			pr 1 mii 0 rxclk	pr 1 pru1 gpi15		pr 1 pru1 gpo15		gpio 5.04		P8.10
mcasp 0 d14		mcasp 6 tx clk		mcasp 6 rx clk		-			-			-			-			vin 2.1a d9		-			-			timer 10		pr 1 mii 0 rxdv		pr 1 pru1 gpi16		pr 1 pru1 gpo16		gpio 5.05		P8.07
mcasp 0 d15		mcasp 6 tx fs		mcasp 6 rx fs		-			-			-			-			vin 2.1a d8		-			-			timer 11		pr 1 mii 0 rxd3		pr 1 pru0 gpi20		pr 1 pru0 gpo20		gpio 5.06		P8.08
mcasp 1 tx clk		-			-			-			-			-			-			vin 2.1a d7		-			-			-			pr 1 mii 0 rxd2		pr 1 pru0 gpi18		pr 1 pru0 gpo18		-			bluetooth audio aclkx
mcasp 1 tx fs		-			-			-			-			-			-			vin 2.1a d6		-			-			-			pr 1 mii 0 rxd1		pr 1 pru0 gpi19		pr 1 pru0 gpo19		-			bluetooth audio fsx
mcasp 1 rx clk		mcasp 7 d2		-			-			-			-			vout 1 d8		-			vin 1.1a d8		-			-			-			-			-			-			-
mcasp 1 rx fs		mcasp 7 d3		-			-			-			-			vout 1 d9		-			vin 1.1a d9		-			-			-			-			-			-			-
mcasp 1 d0		-			-			-			-			-			vout 1 d10		-			vin 1.1a d10		-			-			-			-			-			-			bluetooth audio pcm in
mcasp 1 d1		-			-			-			-			-			vout 1 d11		-			vin 1.1a d11		-			-			-			-			-			-			bluetooth audio pcm out
mcasp 1 d2		mcasp 2 d2		-			-			-			-			-			vin 2.1a d5		-			-			-			pr 1 mii 0 rxd0		pr 1 pru0 gpi16		pr 1 pru0 gpo16		gpio 5.08		-
mcasp 1 d3		mcasp 2 d3		-			-			-			-			-			vin 2.1a d4		-			-			-			pr 1 mii 0 rxlink	pr 1 pru0 gpi17		pr 1 pru0 gpo17		gpio 5.09		-
mcasp 1 d4		mcasp 7 d0		-			-			-			-			vout 1 d12		-			vin 1.1a d12		-			-			-			-			-			gpio 0.04		-
mcasp 1 d5		mcasp 7 d1		-			-			-			-			vout 1 d13		-			vin 1.1a d13		-			-			-			-			-			gpio 5.07		-
mcasp 1 d6		mcasp 7 tx clk		mcasp 7 rx clk		-			-			-			vout 1 d14		-			vin 1.1a d14		-			-			-			-			-			gpio 1.29		-
mcasp 1 d7		mcasp 7 tx fs		mcasp 7 rx fs		-			-			-			vout 1 d15		-			vin 1.1a d15		-			-			-			-			-			gpio 0.05		-
mcasp 2 tx clk		mcasp 2 rx clk		mcasp 1 d12		uart 6 rxd		-			-			-			vin 2.1a d3		-			-			-			pr 1 mii 0 crs		pr 1 pru0 gpi12		pr 1 pru0 gpo12		gpio 4.13		-
mcasp 2 tx fs		mcasp 2 rx fs		mcasp 1 d13		uart 6 txd		-			-			-			vin 2.1a d2		-			-			-			pr 1 mii 0 col		pr 1 pru0 gpi13		pr 1 pru0 gpo13		gpio 4.14		-
mcasp 2 d0		-			mcasp 1 d14		uart 6 cts		uart 4 rxd		-			-			vin 2.1a d1		-			-			-			pr 1 mii 1 rxer		pr 1 pru0 gpi14		pr 1 pru0 gpo14		-			P9.11a
mcasp 2 d1		-			mcasp 1 d15		uart 6 rts		uart 4 txd		-			-			vin 2.1a d0		-			vin 2.0a fld		-			pr 1 mii 1 rxlink	pr 1 pru0 gpi15		pr 1 pru0 gpo15		-			P9.13a
mcasp 3 tx clk		mcasp 3 rx clk		spi 2 sclk		uart 7 rxd		i²c 3 sda		-			vout 1 d16		-			vin 1.1a d16		vin 2.0a d15		-			-			-			-			-			P8.38b
mcasp 3 tx fs		mcasp 3 rx fs		spi 2 d1		uart 7 txd		i²c 3 scl		-			vout 1 d17		-			vin 1.1a d17		vin 2.0a d14		-			-			-			-			-			P8.37b
mcasp 3 d0		-			spi 2 d0		uart 7 cts		uart 3 rxd		-			vout 1 d18		-			vin 1.1a d18		vin 2.0a d13		-			-			-			-			-			P8.31b
mcasp 3 d1		-			spi 2 cs0		uart 7 rts		uart 3 txd		-			vout 1 d19		-			vin 1.1a d19		vin 2.0a d12		-			-			pr 1 pru1 gpi0		pr 1 pru1 gpo0		-			P8.32b
mcasp 4 tx clk		mcasp 4 rx clk		spi 3 sclk		uart 8 rxd		i²c 4 sda		-			vout 1 d20		-			vin 1.1a d20		vin 2.0a d11		-			-			pr 1 pru1 gpi1		pr 1 pru1 gpo1		-			-
mcasp 4 tx fs		mcasp 4 rx fs		spi 3 d1		uart 8 txd		i²c 4 scl		-			vout 1 d21		-			vin 1.1a d21		vin 2.0a d10		-			-			pr 1 pru1 gpi2		pr 1 pru1 gpo2		-			-
mcasp 4 d0		-			spi 3 d0		uart 8 cts		uart 2 rxd		-			vout 1 d22		-			vin 1.1a d22		vin 2.0a d9		-			pr 1 mdio mdclk		pr 1 pru1 gpi3		pr 1 pru1 gpo3		-			-
mcasp 4 d1		-			spi 3 cs0		uart 8 rts		uart 2 txd		-			vout 1 d23		-			vin 1.1a d23		vin 2.0a d8		-			pr 1 mdio data		pr 1 pru1 gpi4		pr 1 pru1 gpo4		-			-
mmc 0 clk		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 5.21		μSD clk
mmc 0 cmd		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 5.22		μSD cmd
mmc 0 dat0		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 5.23		μSD d0
mmc 0 dat1		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 5.24		μSD d1
mmc 0 dat2		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 5.25		μSD d2
mmc 0 dat3		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 5.26		μSD d3
mmc 0 sdcd		-			-			uart 5 rxd		i²c 3 sda		-			-			-			-			-			-			-			-			-			gpio 5.27		μSD cd
mmc 0 sdwp		-			-			uart 5 txd		i²c 3 scl		-			-			-			-			-			-			-			-			-			gpio 5.28		-
gpio 5.10		mdio clk		i²c 2 sda		-			vin 0.1b hsync		-			-			-			-			vin 2.0a clk		pwm 1 A			pr 1 mii 1 txclk	pr 1 pru0 gpi0		pr 1 pru0 gpo0		gpio 5.10		-
gpio 5.11		mdio data		i²c 2 scl		-			vin 0.1b vsync		-			-			-			-			vin 2.0a de		pwm 1 B			pr 1 mii 1 txen		pr 1 pru0 gpi1		pr 1 pru0 gpo1		gpio 5.11		-
mmc 2 clk		-			-			-			vin 0.1b d7		-			-			-			-			vin 2.0a d7		pwm 1 trip		pr 1 mii 1 txd3		pr 1 pru0 gpi2		pr 1 pru0 gpo2		gpio 5.29		P8.21
mmc 2 cmd		spi 2 sclk		-			-			vin 0.1b d6		-			-			-			-			vin 2.0a d6		cap 1			pr 1 mii 1 txd2		pr 1 pru0 gpi3		pr 1 pru0 gpo3		gpio 5.30		P8.20
mmc 2 dat0		spi 2 d1		uart 4 rxd		-			vin 0.1b d5		-			-			-			-			vin 2.0a d5		qep 2 A			pr 1 mii 1 txd1		pr 1 pru0 gpi4		pr 1 pru0 gpo4		gpio 5.31		P8.25
mmc 2 dat1		spi 2 d0		uart 4 txd		-			vin 0.1b d4		-			-			-			-			vin 2.0a d4		qep 2 B			pr 1 mii 1 txd0		pr 1 pru0 gpi5		pr 1 pru0 gpo5		gpio 6.00		P8.24
mmc 2 dat2		spi 2 cs0		uart 4 cts		-			vin 0.1b d3		-			-			-			-			vin 2.0a d3		qep 2 index		pr 1 mii 1 rxclk	pr 1 pru0 gpi6		pr 1 pru0 gpo6		gpio 6.01		P8.05
mmc 2 dat3		spi 2 cs1		uart 4 rts		-			vin 0.1b d2		-			-			-			-			vin 2.0a d2		qep 2 strobe		pr 1 mii 1 rxdv		pr 1 pru0 gpi7		pr 1 pru0 gpo7		gpio 6.02		P8.06
mmc 2 dat4		spi 3 sclk		uart 9 rxd		-			vin 0.1b d1		-			-			-			-			vin 2.0a d1		pwm 2 A			pr 1 mii 1 rxd3		pr 1 pru0 gpi8		pr 1 pru0 gpo8		gpio 0.22		P8.23
mmc 2 dat5		spi 3 d1		uart 9 txd		-			vin 0.1b d0		-			-			-			-			vin 2.0a d0		pwm 2 B			pr 1 mii 1 rxd2		pr 1 pru0 gpi9		pr 1 pru0 gpo9		gpio 0.23		P8.22
mmc 2 dat6		spi 3 d0		uart 9 cts		-			vin 0.1b de		-			-			-			-			vin 2.0a hsync		pwm 2 trip		pr 1 mii 1 rxd1		pr 1 pru0 gpi10		pr 1 pru0 gpo10		gpio 0.24		P8.03
mmc 2 dat7		spi 3 cs0		uart 9 rts		-			vin 0.1b clk		-			-			-			-			vin 2.0a vsync		cap 2			pr 1 mii 1 rxd0		pr 1 pru0 gpi11		pr 1 pru0 gpo11		gpio 0.25		P8.04
spi 0 sclk		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.07		-
spi 0 d1		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.08		-
spi 0 d0		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.09		-
spi 0 cs0		-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.10		-
spi 0 cs1		-			sata led		spi 1 cs1		-			-			-			-			-			-			-			-			-			-			gpio 6.11		P9.23
spi 0 cs2		uart 3 rxd		mmc 2 sdcd		spi 1 cs2		can 1 tx		mdio clk		hdmi hpd		-			-			-			-			-			-			-			gpio 6.12		hdmi ddc hpd
spi 0 cs3		uart 3 txd		mmc 2 sdwp		spi 1 cs3		can 1 rx		mdio data		hdmi cec		-			-			-			-			-			-			-			gpio 6.13		hdmi ddc cec
spi 1 sclk		uart 2 rxd		-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.14		P9.22b
spi 1 d1		uart 2 txd		-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.15		P9.21b
spi 1 d0		uart 2 cts		uart 4 rxd		-			-			-			-			-			-			-			-			-			-			-			gpio 6.16		P9.18a
spi 1 cs0		uart 2 rts		uart 4 txd		-			-			-			-			-			-			-			-			-			-			-			gpio 6.17		P9.17a
can 0 tx		-			uart 7 rxd		mmc 1 sdcd		-			-			hdmi hpd		-			-			-			-			-			-			-			gpio 0.14		-
can 0 rx		-			uart 7 txd		mmc 1 sdwp		sata led		-			hdmi cec		-			-			-			-			-			-			-			gpio 0.15		-
-			-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.20		-
-			-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 6.21		-
uart 0 rxd		-			-			mmc 3 sdcd		-			-			-			-			-			-			-			-			-			-			gpio 6.22		console in
uart 0 txd		-			-			mmc 3 sdwp		-			-			-			-			-			-			-			-			-			-			gpio 6.23		console out
uart 0 cts		-			uart 8 rxd		mmc 3 clk		-			-			-			-			-			-			-			-			-			-			gpio 6.24		wifi sdio clk
uart 0 rts		-			uart 8 txd		mmc 3 cmd		-			-			-			-			-			-			-			-			-			-			gpio 6.25		wifi sdio cmd
uart 1 rxd		uart 2 cts		uart 2 rctx		mmc 3 dat0		uart 1 rxd		uart 0 dcd		-			-			-			-			-			-			-			-			gpio 6.26		wifi sdio d0
uart 1 txd		uart 2 rts		uart 2 sd		mmc 3 dat1		uart 1 txd		uart 0 dsr		-			-			-			-			-			-			-			-			gpio 6.27		wifi sdio d1
uart 1 cts		-			uart 2 rxd		mmc 3 dat2		uart 9 rxd		uart 0 dtr		-			-			-			-			-			-			-			-			gpio 0.16		wifi sdio d2
uart 1 rts		uart 2 txd		uart 2 irtx		mmc 3 dat3		uart 9 txd		uart 0 ri		-			-			-			-			-			-			-			-			gpio 0.17		wifi sdio d3
i²c 0 sda		-			-			-			-			-			-			-			-			-			-			-			-			-			-			local i²c sda
i²c 0 scl		-			-			-			-			-			-			-			-			-			-			-			-			-			-			local i²c scl
i²c 1 sda		hdmi ddc scl		-			-			-			-			-			-			-			-			-			-			-			-			-			hdmi ddc scl
i²c 1 scl		hdmi ddc sda		-			-			-			-			-			-			-			-			-			-			-			-			-			hdmi ddc sda
-			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
-			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
wakeup 0		can 0 rx		-			-			-			-			-			-			-			-			-			-			-			-			gpi  0.00		-
wakeup 1		can 1 rx		-			-			-			-			-			-			-			-			-			-			-			-			gpi  0.01		-
wakeup 2		sys irq 1		-			-			-			-			-			-			-			-			-			-			-			-			gpi  0.02		-
wakeup 3		sys irq 0		-			-			-			-			-			-			-			-			-			-			-			-			gpi  0.03		-
on/off			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
rtc por			-			-			-			-			-			-			-			-			-			-			-			-			-			-			rtc por reset
tms			-			-			-			-			-			-			-			-			-			-			-			-			-			-			jtag tms
tdi			-			-			-			-			-			-			-			-			-			-			-			-			-			gpi  7.27		jtag tdi
tdo			-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 7.28		jtag tdo
tck			-			-			-			-			-			-			-			-			-			-			-			-			-			-			jtag tclk
trst			-			-			-			-			-			-			-			-			-			-			-			-			-			-			jtag trst
rtck			-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 7.29		jtag rtck
emu 0			-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 7.30		jtag emu0
emu 1			-			-			-			-			-			-			-			-			-			-			-			-			-			gpio 7.31		jtag emu1
-			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
-			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
-			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
reset			-			-			-			-			-			-			-			-			-			-			-			-			-			-			reset
nmi			-			-			-			-			-			-			-			-			-			-			-			-			-			-			-
reset out		-			-			-			-			-			-			-			-			-			-			-			-			-			-			reset out