#include <stdio.h>
#include <stdint.h>

#define MCP4901_SPI_MASK_DATA               0x0FF0

static inline void mcpSetData(uint16_t* mcp, uint8_t value) {
    *mcp &= ~MCP4901_SPI_MASK_DATA; // Clear out the middle bits
    *mcp |= ((uint16_t)value) << 4; // Put in the value in the middle
}

int main(void) {
	uint16_t m = 0xd12d;
	mcpSetData(&m, 0xea);
	printf("%0x\n", m);
	return 0;
}
