Lines Matching +full:0 +full:x4
27 uint32_t ctl = 0; in lan865x_mac_rxtx_control()
113 for (i = 0; !ctx->reset && i < LAN865X_RESET_TIMEOUT; i++) { in lan865x_wait_for_reset()
122 return 0; in lan865x_wait_for_reset()
138 gpio_pin_set_dt(&cfg->reset, 0); in lan865x_gpio_reset()
150 if (ret < 0) { in lan865x_check_spi()
159 ctx->chip_id = (val >> 4) & 0xFFFF; in lan865x_check_spi()
174 oa_tc6_reg_write(ctx->tc6, 0x000400D8, addr); in lan865x_read_indirect_reg()
175 oa_tc6_reg_write(ctx->tc6, 0x000400DA, 0x02); in lan865x_read_indirect_reg()
177 oa_tc6_reg_read(ctx->tc6, 0x000400D9, &val); in lan865x_read_indirect_reg()
187 { .mms = 0x1, .address = 0x00, .value = 0x0000 },
188 { .mms = 0x4, .address = 0xD0, .value = 0x3F31 },
189 { .mms = 0x4, .address = 0xE0, .value = 0xC000 },
190 { .mms = 0x4, .address = 0x84, .value = 0x0000 }, /* cfgparam1 */
191 { .mms = 0x4, .address = 0x8A, .value = 0x0000 }, /* cfgparam2 */
192 { .mms = 0x4, .address = 0xE9, .value = 0x9E50 },
193 { .mms = 0x4, .address = 0xF5, .value = 0x1CF8 },
194 { .mms = 0x4, .address = 0xF4, .value = 0xC020 },
195 { .mms = 0x4, .address = 0xF8, .value = 0xB900 },
196 { .mms = 0x4, .address = 0xF9, .value = 0x4E53 },
197 { .mms = 0x4, .address = 0x91, .value = 0x9660 },
198 { .mms = 0x4, .address = 0x77, .value = 0x0028 },
199 { .mms = 0x4, .address = 0x43, .value = 0x00FF },
200 { .mms = 0x4, .address = 0x44, .value = 0xFFFF },
201 { .mms = 0x4, .address = 0x45, .value = 0x0000 },
202 { .mms = 0x4, .address = 0x53, .value = 0x00FF },
203 { .mms = 0x4, .address = 0x54, .value = 0xFFFF },
204 { .mms = 0x4, .address = 0x55, .value = 0x0000 },
205 { .mms = 0x4, .address = 0x40, .value = 0x0002 },
206 { .mms = 0x4, .address = 0x50, .value = 0x0002 },
207 { .mms = 0x4, .address = 0xAD, .value = 0x0000 }, /* cfgparam3 */
208 { .mms = 0x4, .address = 0xAE, .value = 0x0000 }, /* cfgparam4 */
209 { .mms = 0x4, .address = 0xAF, .value = 0x0000 }, /* cfgparam5 */
210 { .mms = 0x4, .address = 0xB0, .value = 0x0103 },
211 { .mms = 0x4, .address = 0xB1, .value = 0x0910 },
212 { .mms = 0x4, .address = 0xB2, .value = 0x1D26 },
213 { .mms = 0x4, .address = 0xB3, .value = 0x002A },
214 { .mms = 0x4, .address = 0xB4, .value = 0x0103 },
215 { .mms = 0x4, .address = 0xB5, .value = 0x070D },
216 { .mms = 0x4, .address = 0xB6, .value = 0x1720 },
217 { .mms = 0x4, .address = 0xB7, .value = 0x0027 },
218 { .mms = 0x4, .address = 0xB8, .value = 0x0509 },
219 { .mms = 0x4, .address = 0xB9, .value = 0x0E13 },
220 { .mms = 0x4, .address = 0xBA, .value = 0x1C25 },
221 { .mms = 0x4, .address = 0xBB, .value = 0x002B },
222 { .mms = 0x4, .address = 0x0C, .value = 0x0100 },
223 { .mms = 0x4, .address = 0x81, .value = 0x00E0 },
232 int8_t offset1 = 0, offset2 = 0; in lan865x_init_chip()
238 value1 = lan865x_read_indirect_reg(dev, 0x04, 0x1F); in lan865x_init_chip()
239 if ((value1 & 0x10) != 0) { /* Convert uint8_t to int8_t */ in lan865x_init_chip()
240 offset1 = (int8_t)((uint8_t)value1 - 0x20); in lan865x_init_chip()
245 value2 = lan865x_read_indirect_reg(dev, 0x08, 0x1F); in lan865x_init_chip()
246 if ((value2 & 0x10) != 0) { /* Convert uint8_t to int8_t */ in lan865x_init_chip()
247 offset2 = (int8_t)((uint8_t)value2 - 0x20); in lan865x_init_chip()
252 cfgparam1 = (uint16_t) (((9 + offset1) & 0x3F) << 10) | in lan865x_init_chip()
253 (uint16_t) (((14 + offset1) & 0x3F) << 4) | 0x03; in lan865x_init_chip()
254 cfgparam2 = (uint16_t) (((40 + offset2) & 0x3F) << 10); in lan865x_init_chip()
255 cfgparam3 = (uint16_t) (((5 + offset1) & 0x3F) << 8) | in lan865x_init_chip()
256 (uint16_t) ((9 + offset1) & 0x3F); in lan865x_init_chip()
257 cfgparam4 = (uint16_t) (((9 + offset1) & 0x3F) << 8) | in lan865x_init_chip()
258 (uint16_t) ((14 + offset1) & 0x3F); in lan865x_init_chip()
259 cfgparam5 = (uint16_t) (((17 + offset1) & 0x3F) << 8) | in lan865x_init_chip()
260 (uint16_t) ((22 + offset1) & 0x3F); in lan865x_init_chip()
263 MMS_REG(0x4, 0x84), cfgparam1); in lan865x_init_chip()
265 MMS_REG(0x4, 0x8A), cfgparam2); in lan865x_init_chip()
267 MMS_REG(0x4, 0xAD), cfgparam3); in lan865x_init_chip()
269 MMS_REG(0x4, 0xAE), cfgparam4); in lan865x_init_chip()
271 MMS_REG(0x4, 0xAF), cfgparam5); in lan865x_init_chip()
274 /* For silicon rev 1 (B0): (bit [3..0] from 0x0A0084 */ in lan865x_init_chip()
276 MMS_REG(0x4, 0xD0), 0x5F21); in lan865x_init_chip()
280 for (i = 0; i < size; i++) { in lan865x_init_chip()
286 return 0; in lan865x_init_chip()
297 oa_tc6_reg_write(ctx->tc6, 0x00040087, 0x0083u); /* COL_DET_CTRL0 */ in lan865x_config_plca()
300 if (node_id == 0) { in lan865x_config_plca()
305 oa_tc6_reg_write(ctx->tc6, 0x0004CA02, val); /* PLCA_CONTROL_1_REGISTER */ in lan865x_config_plca()
309 oa_tc6_reg_write(ctx->tc6, 0x0004CA05, val); /* PLCA_BURST_MODE_REGISTER */ in lan865x_config_plca()
312 oa_tc6_reg_write(ctx->tc6, 0x0004CA01, BIT(15)); /* PLCA_CONTROL_0_REGISTER */ in lan865x_config_plca()
314 return 0; in lan865x_config_plca()
320 uint8_t *mac = &ctx->mac_address[0]; in lan865x_write_macaddress()
324 val = (mac[3] << 24) | (mac[2] << 16) | (mac[1] << 8) | mac[0]; in lan865x_write_macaddress()
342 uint32_t mac_h_hash = 0xffffffff; in lan865x_set_specific_multicast_addr()
343 uint32_t mac_l_hash = 0xffffffff; in lan865x_set_specific_multicast_addr()
370 if (ret < 0) { in lan865x_default_config()
379 if (ret < 0) { in lan865x_default_config()
383 return 0; in lan865x_default_config()
415 if (ret < 0) { in lan865x_read_chunks()
424 if (ret < 0) { in lan865x_read_chunks()
461 * The IRQ_N is asserted when RCA becomes > 0. As described in in lan865x_int_thread()
469 } while (tc6->rca > 0); in lan865x_int_thread()
500 if (ret < 0) { in lan865x_init()
509 if (ret < 0) { in lan865x_init()
518 if (ret < 0) { in lan865x_init()
532 0, K_NO_WAIT); in lan865x_init()
543 if (ret < 0) { in lan865x_init()
560 /* Check if rca > 0 during half-duplex TX transmission */ in lan865x_port_send()
561 if (tc6->rca > 0) { in lan865x_port_send()
566 if (ret < 0) { in lan865x_port_send()
572 return 0; in lan865x_port_send()
593 .spi = SPI_DT_SPEC_INST_GET(inst, SPI_WORD_SET(8), 0), \
602 .protected = 0, \
609 .int_sem = Z_SEM_INITIALIZER((lan865x_data_##inst).int_sem, 0, 1), \