summaryrefslogtreecommitdiffstats
path: root/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2016-06-16 13:50:56 -0500
committerGitHub <noreply@github.com>2016-06-16 13:50:56 -0500
commit46e8769570f3284915df7a643461dec64c30f29c (patch)
treee149803e0b6a3f97471fa48670be646e35dbf2dc /meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch
parent420a00764fbccf3523c46d1bcf076cc0f522217c (diff)
parentced4c34ee252d0036b714425eecb0ed8bb528750 (diff)
downloadtalos-openbmc-46e8769570f3284915df7a643461dec64c30f29c.tar.gz
talos-openbmc-46e8769570f3284915df7a643461dec64c30f29c.zip
Merge pull request #372 from bradbishop/garrison
Fix Garrison/Firestone build breaks
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch')
-rw-r--r--meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch128
1 files changed, 128 insertions, 0 deletions
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch
new file mode 100644
index 000000000..ac5465532
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-garrison/recipes-phosphor/skeleton/skeleton/0001-Add-power-control-support-for-the-Garrison-system.patch
@@ -0,0 +1,128 @@
+From c2f1b1115f6a7f814a05622a33984f5a4797fede Mon Sep 17 00:00:00 2001
+From: Brad Bishop <bradleyb@fuzziesquirrel.com>
+Date: Wed, 15 Jun 2016 21:16:43 -0400
+Subject: [PATCH] Add power control support for the Garrison system
+
+Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
+---
+ op-pwrctl/power_control_obj.c | 70 +++++++++++++++++++++++++++++--------------
+ 1 file changed, 48 insertions(+), 22 deletions(-)
+
+diff --git a/op-pwrctl/power_control_obj.c b/op-pwrctl/power_control_obj.c
+index 85a8cff..f6bc996 100644
+--- a/git/op-pwrctl/power_control_obj.c
++++ b/git/op-pwrctl/power_control_obj.c
+@@ -17,11 +17,15 @@ static const gchar* instance_name = "power0";
+ static const gchar* dbus_name = "org.openbmc.control.Power";
+
+ //This object will use these GPIOs
+-GPIO power_pin = (GPIO){ "POWER_PIN" };
+-GPIO pgood = (GPIO){ "PGOOD" };
+-GPIO usb_reset = (GPIO){ "USB_RESET" };
+-GPIO pcie_reset = (GPIO){ "PCIE_RESET" };
+-
++GPIO power_pin = (GPIO){ "BMC_POWER_UP" };
++GPIO pgood = (GPIO){ "SYS_PWROK_BUFF" };
++GPIO bmc_wd_clear_pulse_n = (GPIO){ "BMC_WD_CLEAR_PULSE_N" };
++GPIO cm1_oe_r_n = (GPIO){ "CM1_OE_R_N" };
++GPIO bmc_cp0_reset_n = (GPIO){ "BMC_CP0_RESET_N" };
++GPIO bmc_cfam_reset_n_r = (GPIO){ "BMC_CFAM_RESET_N_R" };
++GPIO pcie_reset = (GPIO){ "PEX8718_DEVICES_RESET_N" };
++GPIO cp0_devices_reset_n = (GPIO){ "CP0_DEVICES_RESET_N" };
++GPIO cp1_devices_reset_n = (GPIO){ "CP1_DEVICES_RESET_N" };
+
+ static GDBusObjectManagerServer *manager = NULL;
+
+@@ -67,27 +71,36 @@ poll_pgood(gpointer user_data)
+ {
+ control_power_emit_power_lost(control_power);
+ control_emit_goto_system_state(control,"HOST_POWERED_OFF");
+- rc = gpio_open(&pcie_reset);
+- rc = gpio_write(&pcie_reset,0);
+- gpio_close(&pcie_reset);
+-
+- rc = gpio_open(&usb_reset);
+- rc = gpio_write(&usb_reset,0);
+- gpio_close(&usb_reset);
+-
+ }
+ else
+ {
+ control_power_emit_power_good(control_power);
+ control_emit_goto_system_state(control,"HOST_POWERED_ON");
+- rc = gpio_open(&pcie_reset);
+- rc = gpio_write(&pcie_reset,1);
+- gpio_close(&pcie_reset);
+-
+- rc = gpio_open(&usb_reset);
+- rc = gpio_write(&usb_reset,1);
+- gpio_close(&usb_reset);
+ }
++
++ gpio_open(&cm1_oe_r_n);
++ gpio_write(&cm1_oe_r_n, !gpio);
++ gpio_close(&cm1_oe_r_n);
++
++ gpio_open(&bmc_cp0_reset_n);
++ gpio_write(&bmc_cp0_reset_n, gpio);
++ gpio_close(&bmc_cp0_reset_n);
++
++ gpio_open(&bmc_cfam_reset_n_r);
++ gpio_write(&bmc_cfam_reset_n_r, gpio);
++ gpio_close(&bmc_cfam_reset_n_r);
++
++ gpio_open(&pcie_reset);
++ gpio_write(&pcie_reset, gpio);
++ gpio_close(&pcie_reset);
++
++ gpio_open(&cp0_devices_reset_n);
++ gpio_write(&cp0_devices_reset_n, gpio);
++ gpio_close(&cp0_devices_reset_n);
++
++ gpio_open(&cp1_devices_reset_n);
++ gpio_write(&cp1_devices_reset_n, gpio);
++ gpio_close(&cp1_devices_reset_n);
+ }
+ } else {
+ printf("ERROR PowerControl: GPIO read error (gpio=%s,rc=%d)\n",pgood.name,rc);
+@@ -138,11 +151,13 @@ on_set_power_state(ControlPower *pwr,
+ } else {
+ control_emit_goto_system_state(control,"HOST_POWERING_OFF");
+ }
++
+ error = gpio_open(&power_pin);
+ if(error != GPIO_OK) { break; }
+- error = gpio_write(&power_pin,!state);
++ error = gpio_write(&power_pin, state);
+ if(error != GPIO_OK) { break; }
+ gpio_close(&power_pin);
++
+ control_power_set_state(pwr,state);
+ } while(0);
+ if(error != GPIO_OK)
+@@ -230,10 +245,21 @@ on_bus_acquired(GDBusConnection *connection,
+ if(rc != GPIO_OK) { break; }
+ rc = gpio_init(connection,&pgood);
+ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&bmc_wd_clear_pulse_n);
++ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&cm1_oe_r_n);
++ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&bmc_cp0_reset_n);
++ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&bmc_cfam_reset_n_r);
++ if(rc != GPIO_OK) { break; }
+ rc = gpio_init(connection,&pcie_reset);
+ if(rc != GPIO_OK) { break; }
+- rc = gpio_init(connection,&usb_reset);
++ rc = gpio_init(connection,&cp0_devices_reset_n);
+ if(rc != GPIO_OK) { break; }
++ rc = gpio_init(connection,&cp1_devices_reset_n );
++ if(rc != GPIO_OK) { break; }
++
+
+ uint8_t gpio;
+ rc = gpio_open(&pgood);
+--
+2.1.4
+
OpenPOWER on IntegriCloud