max5847: work with std chipselect

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll 2014-08-29 15:35:00 +01:00
parent 94a49a8f36
commit cbe211c8cf

View File

@ -37,18 +37,21 @@ struct MAX5487Exception : public std::exception {
const char* what() const throw () { return message.c_str(); } const char* what() const throw () { return message.c_str(); }
}; };
MAX5487::MAX5487 (int csn) { MAX5487::MAX5487 (int csn = -1) {
mraa_result_t error = MRAA_SUCCESS; mraa_result_t error = MRAA_SUCCESS;
m_name = "MAX5487"; m_name = "MAX5487";
m_csnPinCtx = mraa_gpio_init (csn); m_csnPinCtx = NULL;
if (m_csnPinCtx == NULL) { if (csn != -1) {
throw MAX5487Exception ("GPIO failed to initilize"); m_csnPinCtx = mraa_gpio_init (csn);
} if (m_csnPinCtx == NULL) {
throw MAX5487Exception ("GPIO failed to initilize");
}
error = mraa_gpio_dir (m_csnPinCtx, MRAA_GPIO_OUT); error = mraa_gpio_dir (m_csnPinCtx, MRAA_GPIO_OUT);
if (error != MRAA_SUCCESS) { if (error != MRAA_SUCCESS) {
throw MAX5487Exception ("GPIO failed to initilize"); throw MAX5487Exception ("GPIO failed to initilize");
}
} }
m_spi = mraa_spi_init (0); m_spi = mraa_spi_init (0);
@ -66,9 +69,11 @@ MAX5487::~MAX5487() {
if (error != MRAA_SUCCESS) { if (error != MRAA_SUCCESS) {
mraa_result_print(error); mraa_result_print(error);
} }
error = mraa_gpio_close (m_csnPinCtx); if (m_csnPinCtx != NULL) {
if (error != MRAA_SUCCESS) { error = mraa_gpio_close (m_csnPinCtx);
mraa_result_print(error); if (error != MRAA_SUCCESS) {
mraa_result_print(error);
}
} }
} }
@ -108,10 +113,14 @@ MAX5487::setWiperB (uint8_t wiper) {
mraa_result_t mraa_result_t
MAX5487::CSOn () { MAX5487::CSOn () {
return mraa_gpio_write (m_csnPinCtx, LOW); if (m_csnPinCtx != NULL)
return mraa_gpio_write (m_csnPinCtx, LOW);
return MRAA_SUCCESS;
} }
mraa_result_t mraa_result_t
MAX5487::CSOff () { MAX5487::CSOff () {
return mraa_gpio_write (m_csnPinCtx, HIGH); if (m_csnPinCtx != NULL)
return mraa_gpio_write (m_csnPinCtx, HIGH);
return MRAA_SUCCESS;
} }