mraa_result_t mraa_intel_edison_uart_init_pre(int index) { if (index != 0) { syslog(LOG_ERR, "edison: Failed to write to drive mode"); return MRAA_ERROR_INVALID_RESOURCE; } if (miniboard == 0) { mraa_gpio_write(tristate, 0); mraa_gpio_context io0_output = mraa_gpio_init_raw(248); mraa_gpio_context io0_pullup = mraa_gpio_init_raw(216); mraa_gpio_context io1_output = mraa_gpio_init_raw(249); mraa_gpio_context io1_pullup = mraa_gpio_init_raw(217); mraa_gpio_dir(io0_output, MRAA_GPIO_OUT); mraa_gpio_dir(io0_pullup, MRAA_GPIO_OUT); mraa_gpio_dir(io1_output, MRAA_GPIO_OUT); mraa_gpio_dir(io1_pullup, MRAA_GPIO_IN); mraa_gpio_write(io0_output, 0); mraa_gpio_write(io0_pullup, 0); mraa_gpio_write(io1_output, 1); mraa_gpio_close(io0_output); mraa_gpio_close(io0_pullup); mraa_gpio_close(io1_output); mraa_gpio_close(io1_pullup); } mraa_result_t ret; ret = mraa_intel_edison_pinmode_change(130, 1); // IO0 RX ret = mraa_intel_edison_pinmode_change(131, 1); // IO1 TX return ret; }
mraa_result_t mraa_intel_edison_uart_init_pre(int index) { if (miniboard == 0) { mraa_gpio_write(tristate, 0); mraa_gpio_context io0_output = mraa_gpio_init_raw(248); mraa_gpio_context io0_pullup = mraa_gpio_init_raw(216); mraa_gpio_context io1_output = mraa_gpio_init_raw(249); mraa_gpio_context io1_pullup = mraa_gpio_init_raw(217); mraa_gpio_dir(io0_output, MRAA_GPIO_OUT); mraa_gpio_dir(io0_pullup, MRAA_GPIO_OUT); mraa_gpio_dir(io1_output, MRAA_GPIO_OUT); mraa_gpio_dir(io1_pullup, MRAA_GPIO_IN); mraa_gpio_write(io0_output, 0); mraa_gpio_write(io0_pullup, 0); mraa_gpio_write(io1_output, 1); mraa_gpio_close(io0_output); mraa_gpio_close(io0_pullup); mraa_gpio_close(io1_output); mraa_gpio_close(io1_pullup); } mraa_result_t ret; ret = mraa_intel_edison_pinmode_change(130,1); //IO0 RX ret = mraa_intel_edison_pinmode_change(131,1); //IO1 TX return ret; }
mraa_result_t mraa_intel_edison_pwm_init_pre(int pin) { if (miniboard == 1) { return mraa_intel_edison_pinmode_change(plat->pins[pin].gpio.pinmap, 1); } if (pin < 0 || pin > 19) return MRAA_ERROR_INVALID_RESOURCE; if (!plat->pins[pin].capabilites.pwm) return MRAA_ERROR_INVALID_RESOURCE; mraa_gpio_context output_e; output_e = mraa_gpio_init_raw(outputen[pin]); if (mraa_gpio_dir(output_e, MRAA_GPIO_OUT) != MRAA_SUCCESS) return MRAA_ERROR_INVALID_RESOURCE; if (mraa_gpio_write(output_e, 1) != MRAA_SUCCESS) return MRAA_ERROR_INVALID_RESOURCE; mraa_gpio_close(output_e); mraa_gpio_context pullup_pin; pullup_pin = mraa_gpio_init_raw(pullup_map[pin]); if (mraa_gpio_dir(pullup_pin, MRAA_GPIO_IN) != MRAA_SUCCESS) return MRAA_ERROR_INVALID_RESOURCE; mraa_gpio_close(pullup_pin); mraa_intel_edison_pinmode_change(plat->pins[pin].gpio.pinmap, 1); return MRAA_SUCCESS; }
mraa_result_t mraa_intel_edison_i2c_init_pre(unsigned int bus) { if (miniboard == 0) { if(bus != 6) { syslog(LOG_ERR, "edison: You can't use that bus, switching to bus 6"); bus = 6; } mraa_gpio_write(tristate, 0); mraa_gpio_context io18_gpio = mraa_gpio_init_raw(14); mraa_gpio_context io19_gpio = mraa_gpio_init_raw(165); mraa_gpio_dir(io18_gpio, MRAA_GPIO_IN); mraa_gpio_dir(io19_gpio, MRAA_GPIO_IN); mraa_gpio_close(io18_gpio); mraa_gpio_close(io19_gpio); mraa_gpio_context io18_enable = mraa_gpio_init_raw(236); mraa_gpio_context io19_enable = mraa_gpio_init_raw(237); mraa_gpio_dir(io18_enable, MRAA_GPIO_OUT); mraa_gpio_dir(io19_enable, MRAA_GPIO_OUT); mraa_gpio_write(io18_enable, 0); mraa_gpio_write(io19_enable, 0); mraa_gpio_close(io18_enable); mraa_gpio_close(io19_enable); mraa_gpio_context io18_pullup = mraa_gpio_init_raw(212); mraa_gpio_context io19_pullup = mraa_gpio_init_raw(213); mraa_gpio_dir(io18_pullup, MRAA_GPIO_IN); mraa_gpio_dir(io19_pullup, MRAA_GPIO_IN); mraa_gpio_close(io18_pullup); mraa_gpio_close(io19_pullup); mraa_intel_edison_pinmode_change(28, 1); mraa_intel_edison_pinmode_change(27, 1); mraa_gpio_write(tristate, 1); } else { if(bus != 6 && bus != 1) { syslog(LOG_ERR, "edison: You can't use that bus, switching to bus 6"); bus = 6; } int scl = plat->pins[plat->i2c_bus[bus].scl].gpio.pinmap; int sda = plat->pins[plat->i2c_bus[bus].sda].gpio.pinmap; mraa_intel_edison_pinmode_change(sda, 1); mraa_intel_edison_pinmode_change(scl, 1); } return MRAA_SUCCESS; }
mraa_result_t mraa_intel_edison_spi_init_pre(int bus) { if (miniboard == 1) { mraa_intel_edison_pinmode_change(111, 1); mraa_intel_edison_pinmode_change(115, 1); mraa_intel_edison_pinmode_change(114, 1); mraa_intel_edison_pinmode_change(109, 1); return MRAA_SUCCESS; } mraa_gpio_write(tristate, 0); mraa_gpio_context io10_out = mraa_gpio_init_raw(258); mraa_gpio_context io11_out = mraa_gpio_init_raw(259); mraa_gpio_context io12_out = mraa_gpio_init_raw(260); mraa_gpio_context io13_out = mraa_gpio_init_raw(261); mraa_gpio_dir(io10_out, MRAA_GPIO_OUT); mraa_gpio_dir(io11_out, MRAA_GPIO_OUT); mraa_gpio_dir(io12_out, MRAA_GPIO_OUT); mraa_gpio_dir(io13_out, MRAA_GPIO_OUT); mraa_gpio_write(io10_out, 1); mraa_gpio_write(io11_out, 1); mraa_gpio_write(io12_out, 0); mraa_gpio_write(io13_out, 1); mraa_gpio_close(io10_out); mraa_gpio_close(io11_out); mraa_gpio_close(io12_out); mraa_gpio_close(io13_out); mraa_gpio_context io10_pull = mraa_gpio_init_raw(226); mraa_gpio_context io11_pull = mraa_gpio_init_raw(227); mraa_gpio_context io12_pull = mraa_gpio_init_raw(228); mraa_gpio_context io13_pull = mraa_gpio_init_raw(229); mraa_gpio_dir(io10_pull, MRAA_GPIO_IN); mraa_gpio_dir(io11_pull, MRAA_GPIO_IN); mraa_gpio_dir(io12_pull, MRAA_GPIO_IN); mraa_gpio_dir(io13_pull, MRAA_GPIO_IN); mraa_gpio_close(io10_pull); mraa_gpio_close(io11_pull); mraa_gpio_close(io12_pull); mraa_gpio_close(io13_pull); return MRAA_SUCCESS; }
mraa_result_t mraa_intel_edison_gpio_init_post(mraa_gpio_context dev) { if (dev == NULL) return MRAA_ERROR_INVALID_RESOURCE; int sysfs = pinmodes[dev->phy_pin].gpio.sysfs; int mode = pinmodes[dev->phy_pin].gpio.mode; mraa_result_t ret = mraa_intel_edison_pinmode_change(sysfs, mode); return ret; }
static mraa_result_t mraa_intel_edison_misc_spi() { mraa_gpio_write(tristate, 0); mraa_gpio_context io10_p1 = mraa_gpio_init_raw(263); mraa_gpio_context io10_p2 = mraa_gpio_init_raw(240); mraa_gpio_context io11_p1 = mraa_gpio_init_raw(262); mraa_gpio_context io11_p2 = mraa_gpio_init_raw(241); mraa_gpio_context io12_p1 = mraa_gpio_init_raw(242); mraa_gpio_context io13_p1 = mraa_gpio_init_raw(243); mraa_gpio_dir(io10_p1, MRAA_GPIO_OUT); mraa_gpio_dir(io10_p2, MRAA_GPIO_OUT); mraa_gpio_dir(io11_p1, MRAA_GPIO_OUT); mraa_gpio_dir(io11_p2, MRAA_GPIO_OUT); mraa_gpio_dir(io12_p1, MRAA_GPIO_OUT); mraa_gpio_dir(io13_p1, MRAA_GPIO_OUT); mraa_gpio_write(io10_p1, 1); mraa_gpio_write(io10_p2, 0); mraa_gpio_write(io11_p1, 1); mraa_gpio_write(io11_p2, 0); mraa_gpio_write(io12_p1, 0); mraa_gpio_write(io13_p1, 0); mraa_gpio_close(io10_p1); mraa_gpio_close(io10_p2); mraa_gpio_close(io11_p1); mraa_gpio_close(io11_p2); mraa_gpio_close(io12_p1); mraa_gpio_close(io13_p1); mraa_intel_edison_pinmode_change(111, 1); mraa_intel_edison_pinmode_change(115, 1); mraa_intel_edison_pinmode_change(114, 1); mraa_intel_edison_pinmode_change(109, 1); mraa_gpio_write(tristate, 1); return MRAA_SUCCESS; }
mraa_result_t mraa_intel_edison_i2c_init_pre(unsigned int bus) { if(bus != 6) { syslog(LOG_ERR, "Edison: You can't use that bus :/"); return MRAA_ERROR_INVALID_RESOURCE; } mraa_gpio_write(tristate, 0); mraa_gpio_context io18_gpio = mraa_gpio_init_raw(14); mraa_gpio_context io19_gpio = mraa_gpio_init_raw(165); mraa_gpio_dir(io18_gpio, MRAA_GPIO_IN); mraa_gpio_dir(io19_gpio, MRAA_GPIO_IN); mraa_gpio_close(io18_gpio); mraa_gpio_close(io19_gpio); mraa_gpio_context io18_enable = mraa_gpio_init_raw(236); mraa_gpio_context io19_enable = mraa_gpio_init_raw(237); mraa_gpio_dir(io18_enable, MRAA_GPIO_OUT); mraa_gpio_dir(io19_enable, MRAA_GPIO_OUT); mraa_gpio_write(io18_enable, 0); mraa_gpio_write(io19_enable, 0); mraa_gpio_close(io18_enable); mraa_gpio_close(io19_enable); mraa_gpio_context io18_pullup = mraa_gpio_init_raw(212); mraa_gpio_context io19_pullup = mraa_gpio_init_raw(213); mraa_gpio_dir(io18_pullup, MRAA_GPIO_IN); mraa_gpio_dir(io19_pullup, MRAA_GPIO_IN); mraa_gpio_close(io18_pullup); mraa_gpio_close(io19_pullup); mraa_intel_edison_pinmode_change(28, 1); mraa_intel_edison_pinmode_change(27, 1); mraa_gpio_write(tristate, 1); return MRAA_SUCCESS; }
mraa_result_t mraa_intel_edison_gpio_init_post(mraa_gpio_context dev) { if (dev == NULL) { return MRAA_ERROR_INVALID_RESOURCE; } int sysfs, mode; if (miniboard == 1) { sysfs = dev->pin; mode = 0; } else { sysfs = pinmodes[dev->phy_pin].gpio.sysfs; mode = pinmodes[dev->phy_pin].gpio.mode; } return mraa_intel_edison_pinmode_change(sysfs, mode); }