• Home
  • Raw
  • Download

Lines Matching refs:fd

53 	int fd;  member
57 static int realtek_mst_i2c_spi_write_data(int fd, uint16_t addr, void *buf, uint16_t len) in realtek_mst_i2c_spi_write_data() argument
63 return i2c_write(fd, addr, &data) == len ? 0 : SPI_GENERIC_ERROR; in realtek_mst_i2c_spi_write_data()
66 static int realtek_mst_i2c_spi_read_data(int fd, uint16_t addr, void *buf, uint16_t len) in realtek_mst_i2c_spi_read_data() argument
72 return i2c_read(fd, addr, &data) == len ? 0 : SPI_GENERIC_ERROR; in realtek_mst_i2c_spi_read_data()
84 return data->fd; in get_fd_from_context()
87 static int realtek_mst_i2c_spi_write_register(int fd, uint8_t reg, uint8_t value) in realtek_mst_i2c_spi_write_register() argument
90 return realtek_mst_i2c_spi_write_data(fd, REGISTER_ADDRESS, command, 2); in realtek_mst_i2c_spi_write_register()
93 static int realtek_mst_i2c_spi_read_register(int fd, uint8_t reg, uint8_t *value) in realtek_mst_i2c_spi_read_register() argument
96 int ret = realtek_mst_i2c_spi_write_data(fd, REGISTER_ADDRESS, command, 1); in realtek_mst_i2c_spi_read_register()
97 ret |= realtek_mst_i2c_spi_read_data(fd, REGISTER_ADDRESS, value, 1); in realtek_mst_i2c_spi_read_register()
102 static int realtek_mst_i2c_spi_wait_command_done(int fd, unsigned int offset, int mask, in realtek_mst_i2c_spi_wait_command_done() argument
109 ret |= realtek_mst_i2c_spi_read_register(fd, offset, &val); in realtek_mst_i2c_spi_wait_command_done()
120 static int realtek_mst_i2c_spi_enter_isp_mode(int fd) in realtek_mst_i2c_spi_enter_isp_mode() argument
122 int ret = realtek_mst_i2c_spi_write_register(fd, MCU_MODE, MCU_ISP_MODE_MASK); in realtek_mst_i2c_spi_enter_isp_mode()
124 …ret |= realtek_mst_i2c_spi_wait_command_done(fd, MCU_MODE, MCU_ISP_MODE_MASK, MCU_ISP_MODE_MASK, 1… in realtek_mst_i2c_spi_enter_isp_mode()
131 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF4, 0x9F); in realtek_mst_i2c_spi_enter_isp_mode()
132 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF5, 0x06); in realtek_mst_i2c_spi_enter_isp_mode()
133 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF4, 0xA0); in realtek_mst_i2c_spi_enter_isp_mode()
134 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF5, 0x74); in realtek_mst_i2c_spi_enter_isp_mode()
139 static int realtek_mst_i2c_execute_write(int fd) in realtek_mst_i2c_execute_write() argument
141 int ret = realtek_mst_i2c_spi_write_register(fd, MCU_MODE, START_WRITE_XFER); in realtek_mst_i2c_execute_write()
142 ret |= realtek_mst_i2c_spi_wait_command_done(fd, MCU_MODE, WRITE_XFER_STATUS_MASK, 0, 1); in realtek_mst_i2c_execute_write()
146 static int realtek_mst_i2c_spi_reset_mpu(int fd) in realtek_mst_i2c_spi_reset_mpu() argument
149 int ret = realtek_mst_i2c_spi_read_register(fd, MCU_MODE, &mcu_mode_val); in realtek_mst_i2c_spi_reset_mpu()
157 ret |= realtek_mst_i2c_spi_read_register(fd, 0xEE, &val); in realtek_mst_i2c_spi_reset_mpu()
158 ret |= realtek_mst_i2c_spi_write_register(fd, 0xEE, (val & 0xFD) | 0x02); in realtek_mst_i2c_spi_reset_mpu()
162 static int realtek_mst_i2c_spi_select_indexed_register(int fd, uint16_t address) in realtek_mst_i2c_spi_select_indexed_register() argument
166 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF4, 0x9F); in realtek_mst_i2c_spi_select_indexed_register()
167 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF5, address >> 8); in realtek_mst_i2c_spi_select_indexed_register()
168 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF4, address & 0xFF); in realtek_mst_i2c_spi_select_indexed_register()
173 static int realtek_mst_i2c_spi_write_indexed_register(int fd, uint16_t address, uint8_t val) in realtek_mst_i2c_spi_write_indexed_register() argument
177 ret |= realtek_mst_i2c_spi_select_indexed_register(fd, address); in realtek_mst_i2c_spi_write_indexed_register()
178 ret |= realtek_mst_i2c_spi_write_register(fd, 0xF5, val); in realtek_mst_i2c_spi_write_indexed_register()
183 static int realtek_mst_i2c_spi_read_indexed_register(int fd, uint16_t address, uint8_t *val) in realtek_mst_i2c_spi_read_indexed_register() argument
187 ret |= realtek_mst_i2c_spi_select_indexed_register(fd, address); in realtek_mst_i2c_spi_read_indexed_register()
188 ret |= realtek_mst_i2c_spi_read_register(fd, 0xF5, val); in realtek_mst_i2c_spi_read_indexed_register()
195 static int realtek_mst_i2c_spi_toggle_gpio_88_strap(int fd, bool toggle) in realtek_mst_i2c_spi_toggle_gpio_88_strap() argument
201 ret |= realtek_mst_i2c_spi_read_indexed_register(fd, GPIO_CONFIG_ADDRESS, &val); in realtek_mst_i2c_spi_toggle_gpio_88_strap()
203 ret |= realtek_mst_i2c_spi_write_indexed_register(fd, GPIO_CONFIG_ADDRESS, (val & 0xF0) | 0x01); in realtek_mst_i2c_spi_toggle_gpio_88_strap()
206 ret |= realtek_mst_i2c_spi_read_indexed_register(fd, GPIO_VALUE_ADDRESS, &val); in realtek_mst_i2c_spi_toggle_gpio_88_strap()
208 ret |= realtek_mst_i2c_spi_write_indexed_register(fd, GPIO_VALUE_ADDRESS, (val & 0xFE) | toggle); in realtek_mst_i2c_spi_toggle_gpio_88_strap()
226 int fd = get_fd_from_context(flash); in realtek_mst_i2c_spi_send_command() local
227 if (fd < 0) in realtek_mst_i2c_spi_send_command()
272 ret |= realtek_mst_i2c_spi_write_register(fd, 0x60, ctrl_reg_val); in realtek_mst_i2c_spi_send_command()
273 ret |= realtek_mst_i2c_spi_write_register(fd, 0x61, writearr[0]); /* opcode */ in realtek_mst_i2c_spi_send_command()
276 ret |= realtek_mst_i2c_spi_write_register(fd, 0x64 + i, writearr[i + 1]); in realtek_mst_i2c_spi_send_command()
277 ret |= realtek_mst_i2c_spi_write_register(fd, 0x60, ctrl_reg_val | 0x1); in realtek_mst_i2c_spi_send_command()
281 ret = realtek_mst_i2c_spi_wait_command_done(fd, 0x60, 0x01, 0, max_timeout_mul); in realtek_mst_i2c_spi_send_command()
286 ret |= realtek_mst_i2c_spi_read_register(fd, 0x67 + i, &readarr[i]); in realtek_mst_i2c_spi_send_command()
291 static int realtek_mst_i2c_spi_map_page(int fd, uint32_t addr) in realtek_mst_i2c_spi_map_page() argument
299 ret |= realtek_mst_i2c_spi_write_register(fd, MAP_PAGE_BYTE2, block_idx); in realtek_mst_i2c_spi_map_page()
300 ret |= realtek_mst_i2c_spi_write_register(fd, MAP_PAGE_BYTE1, page_idx); in realtek_mst_i2c_spi_map_page()
301 ret |= realtek_mst_i2c_spi_write_register(fd, MAP_PAGE_BYTE0, byte_idx); in realtek_mst_i2c_spi_map_page()
306 static int realtek_mst_i2c_spi_write_page(int fd, uint8_t reg, const uint8_t *buf, unsigned int len) in realtek_mst_i2c_spi_write_page() argument
318 return realtek_mst_i2c_spi_write_data(fd, REGISTER_ADDRESS, wbuf, len + 1); in realtek_mst_i2c_spi_write_page()
330 int fd = get_fd_from_context(flash); in realtek_mst_i2c_spi_read() local
331 if (fd < 0) in realtek_mst_i2c_spi_read()
335 ret |= realtek_mst_i2c_spi_write_register(fd, 0x60, 0x46); // ** in realtek_mst_i2c_spi_read()
336 ret |= realtek_mst_i2c_spi_write_register(fd, 0x61, OPCODE_READ); in realtek_mst_i2c_spi_read()
337 ret |= realtek_mst_i2c_spi_map_page(fd, start); in realtek_mst_i2c_spi_read()
338 ret |= realtek_mst_i2c_spi_write_register(fd, 0x6a, 0x03); in realtek_mst_i2c_spi_read()
339 ret |= realtek_mst_i2c_spi_write_register(fd, 0x60, 0x47); // ** in realtek_mst_i2c_spi_read()
343 ret = realtek_mst_i2c_spi_wait_command_done(fd, 0x60, 0x01, 0, 1); in realtek_mst_i2c_spi_read()
352 realtek_mst_i2c_spi_read_register(fd, MCU_DATA_PORT, &dummy); in realtek_mst_i2c_spi_read()
355 ret |= realtek_mst_i2c_spi_read_data(fd, REGISTER_ADDRESS, in realtek_mst_i2c_spi_read()
373 int fd = get_fd_from_context(flash); in realtek_mst_i2c_spi_write_256() local
374 if (fd < 0) in realtek_mst_i2c_spi_write_256()
377 ret |= realtek_mst_i2c_spi_write_register(fd, 0x6D, 0x02); /* write opcode */ in realtek_mst_i2c_spi_write_256()
378 ret |= realtek_mst_i2c_spi_write_register(fd, 0x71, (RTK_PAGE_SIZE - 1)); /* fit len=256 */ in realtek_mst_i2c_spi_write_256()
383 ret |= realtek_mst_i2c_spi_write_register(fd, 0x71, page_len-1); in realtek_mst_i2c_spi_write_256()
384 ret |= realtek_mst_i2c_spi_map_page(fd, start + i); in realtek_mst_i2c_spi_write_256()
389 ret |= realtek_mst_i2c_spi_wait_command_done(fd, MCU_MODE, 0x10, 0x10, 1); in realtek_mst_i2c_spi_write_256()
393 ret |= realtek_mst_i2c_spi_write_page(fd, MCU_DATA_PORT, in realtek_mst_i2c_spi_write_256()
397 ret |= realtek_mst_i2c_execute_write(fd); in realtek_mst_i2c_spi_write_256()
418 int fd = realtek_mst_data->fd; in realtek_mst_i2c_spi_shutdown() local
419 ret |= realtek_mst_i2c_spi_toggle_gpio_88_strap(fd, false); in realtek_mst_i2c_spi_shutdown()
427 realtek_mst_i2c_spi_reset_mpu(fd); in realtek_mst_i2c_spi_shutdown()
429 i2c_close(fd); in realtek_mst_i2c_spi_shutdown()
513 int fd = i2c_open_from_programmer_params(cfg, REGISTER_ADDRESS, 0); in realtek_mst_i2c_spi_init() local
514 if (fd < 0) in realtek_mst_i2c_spi_init()
515 return fd; in realtek_mst_i2c_spi_init()
518 ret |= realtek_mst_i2c_spi_enter_isp_mode(fd); in realtek_mst_i2c_spi_init()
523 ret |= realtek_mst_i2c_spi_toggle_gpio_88_strap(fd, true); in realtek_mst_i2c_spi_init()
535 data->fd = fd; in realtek_mst_i2c_spi_init()