#include #include #include #include #include #include #include #include #include #include /* ------------------------------------------------------------------------- */ static const gchar* dbus_object_path = "/org/openbmc/control"; static const gchar* instance_name = "host0"; static const gchar* dbus_name = "org.openbmc.control.Host"; static GDBusObjectManagerServer *manager = NULL; GPIO fsi_data = (GPIO){ "FSI_DATA" }; GPIO fsi_clk = (GPIO){ "FSI_CLK" }; GPIO fsi_enable = (GPIO){ "FSI_ENABLE" }; GPIO cronus_sel = (GPIO){ "CRONUS_SEL" }; GPIO Throttle = (GPIO){ "BMC_THROTTLE" }; GPIO idbtn = (GPIO){ "IDBTN" }; /* Bit bang patterns */ //putcfam pu 281c 30000000 -p0 (Primary Side Select) static const char* primary = "000011111111110101111000111001100111111111111111111111111111101111111111"; //putcfam pu 281c B0000000 -p0 static const char* go = "000011111111110101111000111000100111111111111111111111111111101101111111"; //putcfam pu 0x281c 30900000 (Golden Side Select) static const char* golden = "000011111111110101111000111001100111101101111111111111111111101001111111"; /* Setup attentions */ //putcfam pu 0x081C 20000000 static const char* attnA = "000011111111111101111110001001101111111111111111111111111111110001111111"; //putcfam pu 0x100D 40000000 static const char* attnB = "000011111111111011111100101001011111111111111111111111111111110001111111"; //putcfam pu 0x100B FFFFFFFF static const char* attnC = "000011111111111011111101001000000000000000000000000000000000001011111111"; static gboolean on_init(Control *control, GDBusMethodInvocation *invocation, gpointer user_data) { control_complete_init(control,invocation); return TRUE; } int fsi_bitbang(const char* pattern) { int rc=GPIO_OK; int i; for(i=0;i