altos/lpc: Declare SPI send parameters as const
[fw/altos] / src / lpc / ao_spi_lpc.c
index ff107e40dd0339fb01eed124f30c282116e1bf7a..bc8f9c690cbcde29a3220c3d864ec9b4b03130c3 100644 (file)
@@ -21,8 +21,6 @@ static uint8_t                ao_spi_mutex[LPC_NUM_SPI];
 
 static struct lpc_ssp * const ao_lpc_ssp[LPC_NUM_SPI] = { &lpc_ssp0, &lpc_ssp1 };
 
-static uint8_t spi_dev_null;
-
 #define tx_busy(lpc_ssp) (lpc_ssp->sr & ((1 << LPC_SSP_SR_BSY) | (1 << LPC_SSP_SR_TNF))) != (1 << LPC_SSP_SR_TNF)
 #define rx_busy(lpc_ssp) (lpc_ssp->sr & ((1 << LPC_SSP_SR_BSY) | (1 << LPC_SSP_SR_RNE))) != (1 << LPC_SSP_SR_RNE)
 
@@ -42,12 +40,12 @@ static uint8_t      spi_dev_null;
                        /* recv a byte */                               \
                        get lpc_ssp->dr;                                \
                }                                                       \
-       } while (0);
+       } while (0)
 
 void
-ao_spi_send(void *block, uint16_t len, uint8_t id)
+ao_spi_send(const void *block, uint16_t len, uint8_t id)
 {
-       uint8_t *b = block;
+       const uint8_t   *b = block;
        struct lpc_ssp *lpc_ssp = ao_lpc_ssp[id];
 
        spi_loop(len, *b++, (void));
@@ -71,9 +69,9 @@ ao_spi_recv(void *block, uint16_t len, uint8_t id)
 }
 
 void
-ao_spi_duplex(void *out, void *in, uint16_t len, uint8_t id)
+ao_spi_duplex(const void *out, void *in, uint16_t len, uint8_t id)
 {
-       uint8_t *o = out;
+       const uint8_t   *o = out;
        uint8_t *i = in;
        struct lpc_ssp *lpc_ssp = ao_lpc_ssp[id];
 
@@ -199,7 +197,8 @@ ao_spi_init(void)
        /* Turn on the clock */
        lpc_scb.ssp1clkdiv = 1;
 
-       /* De-assert reset */
+       /* Reset the device */
+       lpc_scb.presetctrl &= ~(1 << LPC_SCB_PRESETCTRL_SSP1_RST_N);
        lpc_scb.presetctrl |= (1 << LPC_SCB_PRESETCTRL_SSP1_RST_N);
        ao_spi_channel_init(1);
 #endif /* HAS_SPI_1 */