meta-ampere: mtmitchell: correct checking PGOOD

Currently, in the platform initialization phase, BMC is checking PGOOD
gpio via both dbus and "/sys/class/gpio" methods. The "power_control"
application is polling PGOOD. Sometimes, "power_control" stops checking
the PGOOD's status due to a conflict with platform initialization. It
makes BMC can not control the power.

This commit removes the conflict between the "power_control" and the
platform initialization as below:
- Update ampere-platform-init.service to request the platform
  initialization run before the "power_control".
- Update mtmitchell_platform_gpios_init.sh to remove checking PGOOD via
  dbus.

Tested:
   The platform initialization runs before the "power_control".
   Turn on/off the host, reboot BMC, AC power work correctly.

Signed-off-by: Thang Tran <thuutran@amperecomputing.com>
Change-Id: Ic9619f93b8a49c578a8a0d733872a636ec6fc100
diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere-platform-init.service b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere-platform-init.service
index 72a34cb..a19cf90 100644
--- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere-platform-init.service
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/ampere-platform-init.service
@@ -1,5 +1,6 @@
 [Unit]
 Description = Ampere Platform Initialization
+Before=org.openbmc.control.Power@0.service
 
 [Service]
 Restart=no
@@ -8,4 +9,4 @@
 ExecStart=/usr/sbin/ampere_platform_init.sh
 
 [Install]
-WantedBy=sysinit.target
+WantedBy=multi-user.target
diff --git a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/mtmitchell_platform_gpios_init.sh b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/mtmitchell_platform_gpios_init.sh
index f5fefc3..57a951a 100644
--- a/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/mtmitchell_platform_gpios_init.sh
+++ b/meta-ampere/meta-mitchell/recipes-ampere/platform/ampere-platform-init/mtmitchell_platform_gpios_init.sh
@@ -19,33 +19,15 @@
     # When BMC is rebooted, because PSON_L has pull up to P3V3_STB, it changes its
     # value to HIGH. Add code to check P3V3_STB and recover PSON_L to correct state
     # before setting BMC_RDY.
-    cnt=10
-    pgood=""
-    while [ $cnt -gt 0 ];
-    do
-        pgood=$(busctl get-property org.openbmc.control.Power /org/openbmc/control/power0 org.openbmc.control.Power pgood | cut -d' ' -f2)
-        if [[ "$pgood" != '' ]]; then
-            break;
-        fi
-        cnt=$(( cnt - 1 ))
-        sleep 1
-    done
-
+    pgood=$(gpioget $(gpiofind power-chassis-good))
     if [ "$pgood" == '1' ]; then
         echo "PSU is on. Setting PSON to 0"
         gpioset $(gpiofind power-chassis-control)=0
     else
-        echo "pgood D-Bus property response as 0. PSU is off."
-        # for unknown reason when stress reboot bmc power-control.exe detect power-chassis-good is 1 (power on)
-        # But "busctl get-property org.openbmc.control.Power /org/openbmc/control/power0 org.openbmc.control.Power pgood" responses 0 (power off)
-        # Add sleep 3 seconds after the pgood dbus reponse (power off) and recheck the power-chassis-good to confirm about the PSU power state
-        sleep 3
-        pgood=$(gpioget $(gpiofind power-chassis-good))
-        if [ "$pgood" == '0' ]; then
-            echo "power-chassis-good reponse as 0. Confirm PSU is off. Setting PSON to 1."
-            gpioset $(gpiofind power-chassis-control)=1
-        fi
+        echo "PSU is off. Setting PSON to 1"
+        gpioset $(gpiofind power-chassis-control)=1
     fi
+
     gpioset $(gpiofind host0-sysreset-n)=1
 
     # gpio-leds is controlling bmc-ready, not by gpio