Lines Matching +full:input +full:- +full:latch

5  * SPDX-License-Identifier: Apache-2.0
29 struct max14906_data *data = dev->data; in max14906_pars_spi_diag()
33 LOG_ERR("[DIAG] MAX14906 in SPI diag - error detected\n"); in max14906_pars_spi_diag()
34 data->glob.interrupt.reg_bits.SHT_VDD_FAULT = MAX149X6_GET_BIT(rx_diag_buff[0], 5); in max14906_pars_spi_diag()
35 data->glob.interrupt.reg_bits.ABOVE_VDD_FAULT = in max14906_pars_spi_diag()
37 data->glob.interrupt.reg_bits.OW_OFF_FAULT = MAX149X6_GET_BIT(rx_diag_buff[0], 3); in max14906_pars_spi_diag()
38 data->glob.interrupt.reg_bits.CURR_LIM = MAX149X6_GET_BIT(rx_diag_buff[0], 2); in max14906_pars_spi_diag()
39 data->glob.interrupt.reg_bits.OVER_LD_FAULT = MAX149X6_GET_BIT(rx_diag_buff[0], 1); in max14906_pars_spi_diag()
43 ret = -EIO; in max14906_pars_spi_diag()
45 PRINT_ERR(data->glob.interrupt.reg_bits.SHT_VDD_FAULT); in max14906_pars_spi_diag()
46 PRINT_ERR(data->glob.interrupt.reg_bits.ABOVE_VDD_FAULT); in max14906_pars_spi_diag()
47 PRINT_ERR(data->glob.interrupt.reg_bits.OW_OFF_FAULT); in max14906_pars_spi_diag()
48 PRINT_ERR(data->glob.interrupt.reg_bits.CURR_LIM); in max14906_pars_spi_diag()
49 PRINT_ERR(data->glob.interrupt.reg_bits.OVER_LD_FAULT); in max14906_pars_spi_diag()
54 /* +-----------------------------------------------------------------------+ in max14906_pars_spi_diag()
56 * +--------+--------+--------+--------+--------+--------+--------+--------+ in max14906_pars_spi_diag()
58 * +--------+--------+--------+--------+--------+--------+--------+--------+ in max14906_pars_spi_diag()
60 * +--------+--------+--------+--------+--------+--------+--------+--------+ in max14906_pars_spi_diag()
78 const struct max14906_config *config = dev->config; in max14906_reg_trans_spi_diag()
81 if (!gpio_pin_get_dt(&config->fault_gpio)) { in max14906_reg_trans_spi_diag()
88 ret = -EIO; in max14906_reg_trans_spi_diag()
101 * @param dev - MAX149x6 device.
102 * @param addr - Register valueto wich data is updated.
103 * @param mask - Corresponding mask to the data that will be updated.
104 * @param val - Updated value to be written in the register at update.
123 const struct max14906_config *config = dev->config; in gpio_max14906_diag_chan_get()
124 struct max14906_data *data = dev->data; in gpio_max14906_diag_chan_get()
127 if (!gpio_pin_get_dt(&config->fault_gpio)) { in gpio_max14906_diag_chan_get()
131 data->glob.interrupt.reg_raw = in gpio_max14906_diag_chan_get()
133 if (data->glob.interrupt.reg_raw) { in gpio_max14906_diag_chan_get()
134 if (data->glob.interrupt.reg_bits.OVER_LD_FAULT || in gpio_max14906_diag_chan_get()
135 data->glob.interrupt.reg_bits.CURR_LIM) { in gpio_max14906_diag_chan_get()
136 data->chan.ovr_ld.reg_raw = max149x6_reg_transceive( in gpio_max14906_diag_chan_get()
139 if (data->glob.interrupt.reg_bits.OW_OFF_FAULT || in gpio_max14906_diag_chan_get()
140 data->glob.interrupt.reg_bits.ABOVE_VDD_FAULT) { in gpio_max14906_diag_chan_get()
141 data->chan.opn_wir.reg_raw = max149x6_reg_transceive( in gpio_max14906_diag_chan_get()
144 if (data->glob.interrupt.reg_bits.SHT_VDD_FAULT) { in gpio_max14906_diag_chan_get()
145 data->chan.sht_vdd.reg_raw = max149x6_reg_transceive( in gpio_max14906_diag_chan_get()
148 if (data->glob.interrupt.reg_bits.DE_MAG_FAULT) { in gpio_max14906_diag_chan_get()
149 data->chan.doi_level.reg_raw = max149x6_reg_transceive( in gpio_max14906_diag_chan_get()
151 if (data->chan.doi_level.reg_raw) { in gpio_max14906_diag_chan_get()
152 PRINT_ERR(data->chan.doi_level.reg_bits.VDDOK_FAULT1); in gpio_max14906_diag_chan_get()
153 PRINT_ERR(data->chan.doi_level.reg_bits.VDDOK_FAULT2); in gpio_max14906_diag_chan_get()
154 PRINT_ERR(data->chan.doi_level.reg_bits.VDDOK_FAULT3); in gpio_max14906_diag_chan_get()
155 PRINT_ERR(data->chan.doi_level.reg_bits.VDDOK_FAULT4); in gpio_max14906_diag_chan_get()
156 PRINT_ERR(data->chan.doi_level.reg_bits.SAFE_DAMAGE_F1); in gpio_max14906_diag_chan_get()
157 PRINT_ERR(data->chan.doi_level.reg_bits.SAFE_DAMAGE_F2); in gpio_max14906_diag_chan_get()
158 PRINT_ERR(data->chan.doi_level.reg_bits.SAFE_DAMAGE_F3); in gpio_max14906_diag_chan_get()
159 PRINT_ERR(data->chan.doi_level.reg_bits.SAFE_DAMAGE_F4); in gpio_max14906_diag_chan_get()
162 if (data->glob.interrupt.reg_bits.SUPPLY_ERR) { in gpio_max14906_diag_chan_get()
163 data->glob.glob_err.reg_raw = max149x6_reg_transceive( in gpio_max14906_diag_chan_get()
165 PRINT_ERR(data->glob.glob_err.reg_bits.VINT_UV); in gpio_max14906_diag_chan_get()
166 PRINT_ERR(data->glob.glob_err.reg_bits.V5_UVLO); in gpio_max14906_diag_chan_get()
167 PRINT_ERR(data->glob.glob_err.reg_bits.VDD_LOW); in gpio_max14906_diag_chan_get()
168 PRINT_ERR(data->glob.glob_err.reg_bits.VDD_WARN); in gpio_max14906_diag_chan_get()
169 PRINT_ERR(data->glob.glob_err.reg_bits.VDD_UVLO); in gpio_max14906_diag_chan_get()
170 PRINT_ERR(data->glob.glob_err.reg_bits.THRMSHUTD); in gpio_max14906_diag_chan_get()
171 PRINT_ERR(data->glob.glob_err.reg_bits.LOSSGND); in gpio_max14906_diag_chan_get()
172 PRINT_ERR(data->glob.glob_err.reg_bits.WDOG_ERR); in gpio_max14906_diag_chan_get()
174 if (data->glob.interrupt.reg_bits.COM_ERR) { in gpio_max14906_diag_chan_get()
179 ret = data->chan.doi_level.reg_raw | data->chan.ovr_ld.reg_raw | in gpio_max14906_diag_chan_get()
180 data->chan.opn_wir.reg_raw | data->chan.sht_vdd.reg_raw; in gpio_max14906_diag_chan_get()
187 * @param desc - device descriptor for the MAX14906
188 * @param ch - channel index (0 based).
189 * @param function - channel configuration (input, output or high-z).
211 return -EINVAL; in max14906_ch_func()
245 return -ENOTSUP; in gpio_max14906_config()
249 return -ENOTSUP; in gpio_max14906_config()
253 return -ENOTSUP; in gpio_max14906_config()
257 return -ENOTSUP; in gpio_max14906_config()
263 LOG_DBG("SETUP AS INPUT %d", pin); in gpio_max14906_config()
270 LOG_ERR("On MAX14906 only input option is available!"); in gpio_max14906_config()
271 err = -ENOTSUP; in gpio_max14906_config()
282 * NOTE : in case and only if pin is INPUT DOILEVEL reg bits 0-4 shows PIN state. in gpio_max14906_port_get_raw()
341 const struct max14906_data *data = dev->data; in gpio_max14906_config_diag()
342 const struct max14906_config *config = dev->config; in gpio_max14906_config_diag()
345 MAX14906_REG_WRITE(dev, MAX14906_CONFIG1_REG, config->config1.reg_raw); in gpio_max14906_config_diag()
346 MAX14906_REG_WRITE(dev, MAX14906_CONFIG2_REG, config->config2.reg_raw); in gpio_max14906_config_diag()
349 MAX14906_REG_WRITE(dev, MAX14906_OPN_WR_EN_REG, data->chan_en.opn_wr_en.reg_raw); in gpio_max14906_config_diag()
350 MAX14906_REG_WRITE(dev, MAX14906_SHT_VDD_EN_REG, data->chan_en.sht_vdd_en.reg_raw); in gpio_max14906_config_diag()
357 const struct max14906_config *config = dev->config; in gpio_max14906_init()
360 LOG_DBG(" --- GPIO MAX14906 init IN ---"); in gpio_max14906_init()
362 if (!spi_is_ready_dt(&config->spi)) { in gpio_max14906_init()
364 return -ENODEV; in gpio_max14906_init()
367 /* setup READY gpio - normal low */ in gpio_max14906_init()
368 if (!gpio_is_ready_dt(&config->ready_gpio)) { in gpio_max14906_init()
370 return -ENODEV; in gpio_max14906_init()
373 err = gpio_pin_configure_dt(&config->ready_gpio, GPIO_INPUT); in gpio_max14906_init()
379 /* setup FAULT gpio - normal high */ in gpio_max14906_init()
380 if (!gpio_is_ready_dt(&config->fault_gpio)) { in gpio_max14906_init()
382 return -ENODEV; in gpio_max14906_init()
385 err = gpio_pin_configure_dt(&config->fault_gpio, GPIO_INPUT); in gpio_max14906_init()
391 /* setup LATCH gpio - normal high */ in gpio_max14906_init()
392 if (!gpio_is_ready_dt(&config->sync_gpio)) { in gpio_max14906_init()
394 return -ENODEV; in gpio_max14906_init()
397 err = gpio_pin_configure_dt(&config->sync_gpio, GPIO_OUTPUT_INACTIVE); in gpio_max14906_init()
403 /* setup LATCH gpio - normal high */ in gpio_max14906_init()
404 if (!gpio_is_ready_dt(&config->en_gpio)) { in gpio_max14906_init()
406 return -ENODEV; in gpio_max14906_init()
409 err = gpio_pin_configure_dt(&config->en_gpio, GPIO_OUTPUT_INACTIVE); in gpio_max14906_init()
415 gpio_pin_set_dt(&config->en_gpio, 1); in gpio_max14906_init()
416 gpio_pin_set_dt(&config->sync_gpio, 1); in gpio_max14906_init()
418 LOG_DBG("[GPIO] FAULT - %d\n", gpio_pin_get_dt(&config->fault_gpio)); in gpio_max14906_init()
419 LOG_DBG("[GPIO] READY - %d\n", gpio_pin_get_dt(&config->ready_gpio)); in gpio_max14906_init()
420 LOG_DBG("[GPIO] SYNC - %d\n", gpio_pin_get_dt(&config->sync_gpio)); in gpio_max14906_init()
421 LOG_DBG("[GPIO] EN - %d\n", gpio_pin_get_dt(&config->en_gpio)); in gpio_max14906_init()
429 LOG_DBG(" --- GPIO MAX14906 init OUT ---"); in gpio_max14906_init()