#! /usr/bin/perl
#
# Copyright 2021-2025 MicroSys Electronics GmbH
#

my $rv = 0;

open(my $mod, "<", "/proc/device-tree/model")
	or die "Error: cannot get model: $!";
my $model = <$mod>;
close($mod);

$model =~ s/^\s+|\s+\$//g;

if ($model =~ "MPXLS1088A/CRX05") {
	if ($ENV{DEVPATH} =~ ".*/dpni\\.(\\d+)/") {
		my $dpni = int($1);
		if    ($dpni == 1) { print "dpmac2"; }
		elsif ($dpni == 2) { print "dpmac3"; }
		elsif ($dpni == 3) { print "dpmac4"; }
		elsif ($dpni == 4) { print "dpmac7"; }
		else { $rv = 3; }
	}
	else { $rv = 2; }
}
elsif ($model =~ "MPXLS1088A/CRX06/2xTSN") {
	if ($ENV{DEVPATH} =~ ".*/dpni\\.(\\d+)/") {
		my $dpni = int($1);
		if    ($dpni == 1) { print "dpmac1"; }
		elsif ($dpni == 2) { print "dpmac2"; }
		elsif ($dpni == 3) { print "dpmac3"; }
		elsif ($dpni == 4) { print "dpmac4"; }
		elsif ($dpni == 5) { print "dpmac5"; }
		elsif ($dpni == 6) { print "dpmac7"; }
		elsif ($dpni == 7) { print "dpmac8"; }
		elsif ($dpni == 8) { print "dpmac9"; }
		elsif ($dpni == 9) { print "dpmac10"; }
		else { $rv = 3; }
	}
	else { $rv = 2; }
}
elsif ($model =~ "MPXLS1088A/CRX06/2xQSGMII") {
	if ($ENV{DEVPATH} =~ ".*/dpni\\.(\\d+)/") {
		my $dpni = int($1);
		if    ($dpni == 1) { print "dpmac1"; }
		elsif ($dpni == 2) { print "dpmac2"; }
		elsif ($dpni == 3) { print "dpmac3"; }
		elsif ($dpni == 4) { print "dpmac4"; }
		elsif ($dpni == 5) { print "dpmac5"; }
		elsif ($dpni == 6) { print "dpmac6"; }
		elsif ($dpni == 7) { print "dpmac7"; }
		elsif ($dpni == 8) { print "dpmac8"; }
		elsif ($dpni == 9) { print "dpmac9"; }
		elsif ($dpni == 10) { print "dpmac10"; }
		else { $rv = 3; }
	}
	else { $rv = 2; }
}
elsif ($model =~ "MPXLS1088A/CRX09(R2)?/ADX0[23](R2)?") {
	if ($ENV{DEVPATH} =~ ".*/dpni\\.(\\d+)/") {
		my $dpni = int($1);
		if    ($dpni == 1) { print "dpmac1"; }
		elsif ($dpni == 2) { print "dpmac2"; }
		elsif ($dpni == 3) { print "dpmac3"; }
		elsif ($dpni == 4) { print "dpmac4"; }
		elsif ($dpni == 5) { print "dpmac7"; }
		else { $rv = 3; }
	}
	else { $rv = 2; }
}
elsif ($model =~ "MPXLX2160A/CRX08") {
	if ($ENV{DEVPATH} =~ ".*/dpni\\.(\\d+)/") {
		my $dpni = int($1);
		if    ($dpni == 0) { print "dpmac17"; }
		elsif ($dpni == 1) { print "dpmac18"; }
		elsif ($dpni == 2) { print "dpmac3"; }
		elsif ($dpni == 3) { print "dpmac4"; }
		elsif ($dpni == 4) { print "dpmac5"; }
		elsif ($dpni == 5) { print "dpmac6"; }
		elsif ($dpni == 6) { print "dpmac2"; }
		else { $rv = 3; }
	}
	else { $rv = 2; }
}
elsif ($model =~ "MPXLX2160A/ACU") {
	if ($ENV{DEVPATH} =~ ".*/dpni\\.(\\d+)/") {
		my $dpni = int($1);
		if    ($dpni == 0) { print "dpmac9"; }
		elsif ($dpni == 1) { print "dpmac10"; }
		elsif ($dpni == 2) { print "dpmac11"; }
		elsif ($dpni == 3) { print "dpmac12"; }
		elsif ($dpni == 4) { print "dpmac13"; }
		elsif ($dpni == 5) { print "dpmac14"; }
		elsif ($dpni == 6) { print "dpmac15"; }
		elsif ($dpni == 7) { print "dpmac16"; }
		elsif ($dpni == 8) { print "dpmac17"; }
		elsif ($dpni == 9) { print "dpmac18"; }
		else { $rv = 3; }
	}
	else { $rv = 2; }
}
else { $rv = 1; }

exit $rv;
