30 #if defined(SSD1306_LINUX_SUPPORTED) && !defined(__KERNEL__) 35 #if !defined(SDL_EMULATION) 38 #include <sys/ioctl.h> 39 #include <linux/i2c-dev.h> 43 static uint8_t s_buffer[128];
44 static uint8_t s_dataSize = 0;
46 static void ssd1306_i2cStart_Linux(
void)
51 static void ssd1306_i2cStop_Linux(
void)
53 if (write(s_fd, s_buffer, s_dataSize) != s_dataSize)
55 fprintf(stderr,
"Failed to write to the i2c bus.\n");
60 static void ssd1306_i2cSendByte_Linux(uint8_t data)
62 s_buffer[s_dataSize] = data;
64 if (s_dataSize ==
sizeof(s_buffer))
68 ssd1306_i2cStop_Linux();
73 static void ssd1306_i2cClose_Linux()
82 static void empty_function()
86 static void empty_function_single_arg(uint8_t arg)
90 void ssd1306_i2cInit_Linux(int8_t busId, uint8_t sa)
97 snprintf(filename, 19,
"/dev/i2c-%d", busId);
104 if ((s_fd = open(filename, O_RDWR)) < 0)
106 fprintf(stderr,
"Failed to open the i2c bus\n");
113 if (ioctl(s_fd, I2C_SLAVE, s_sa) < 0)
115 fprintf(stderr,
"Failed to acquire bus access and/or talk to slave.\n");
128 #include "sdl_core.h" 130 void ssd1306_i2cInit_Linux(int8_t busId, uint8_t sa)
void(* ssd1306_closeInterface)(void)
deinitializes internal resources, allocated for interface.
void(* ssd1306_sendByte)(uint8_t data)
void ssd1306_i2cCommandStart(void)
void(* ssd1306_dataStart)(void)
void(* ssd1306_startTransmission)(void)
void(* ssd1306_endTransmission)(void)
void ssd1306_i2cDataStart(void)
uint8_t ssd1306_dcQuickSwitch
void(* ssd1306_commandStart)(void)