Lines Matching refs:chip
31 uint8_t chip; member
42 static int pca953x_ngpio(uint8_t chip) in pca953x_ngpio() argument
47 if (pca953x_chip_ngpios[i].chip == chip) in pca953x_ngpio()
53 static int pca953x_ngpio(uint8_t chip) in pca953x_ngpio() argument
62 static int pca953x_reg_write(uint8_t chip, uint addr, uint mask, uint data) in pca953x_reg_write() argument
67 if (pca953x_ngpio(chip) <= 8) { in pca953x_reg_write()
68 if (i2c_read(chip, addr, 1, &valb, 1)) in pca953x_reg_write()
74 return i2c_write(chip, addr, 1, &valb, 1); in pca953x_reg_write()
76 if (i2c_read(chip, addr << 1, 1, (u8*)&valw, 2)) in pca953x_reg_write()
84 return i2c_write(chip, addr << 1, 1, (u8*)&valw, 2); in pca953x_reg_write()
88 static int pca953x_reg_read(uint8_t chip, uint addr, uint *data) in pca953x_reg_read() argument
93 if (pca953x_ngpio(chip) <= 8) { in pca953x_reg_read()
94 if (i2c_read(chip, addr, 1, &valb, 1)) in pca953x_reg_read()
98 if (i2c_read(chip, addr << 1, 1, (u8*)&valw, 2)) in pca953x_reg_read()
109 int pca953x_set_val(uint8_t chip, uint mask, uint data) in pca953x_set_val() argument
111 return pca953x_reg_write(chip, PCA953X_OUT, mask, data); in pca953x_set_val()
118 int pca953x_set_pol(uint8_t chip, uint mask, uint data) in pca953x_set_pol() argument
120 return pca953x_reg_write(chip, PCA953X_POL, mask, data); in pca953x_set_pol()
127 int pca953x_set_dir(uint8_t chip, uint mask, uint data) in pca953x_set_dir() argument
129 return pca953x_reg_write(chip, PCA953X_CONF, mask, data); in pca953x_set_dir()
135 int pca953x_get_val(uint8_t chip) in pca953x_get_val() argument
139 if (pca953x_reg_read(chip, PCA953X_IN, &val) < 0) in pca953x_get_val()
149 static int pca953x_info(uint8_t chip) in pca953x_info() argument
153 int nr_gpio = pca953x_ngpio(chip); in pca953x_info()
156 printf("pca953x@ 0x%x (%d pins):\n\n", chip, nr_gpio); in pca953x_info()
165 if (pca953x_reg_read(chip, PCA953X_CONF, &data) < 0) in pca953x_info()
172 if (pca953x_reg_read(chip, PCA953X_POL, &data) < 0) in pca953x_info()
179 if (pca953x_reg_read(chip, PCA953X_IN, &data) < 0) in pca953x_info()
186 if (pca953x_reg_read(chip, PCA953X_OUT, &data) < 0) in pca953x_info()
206 static uint8_t chip = CONFIG_SYS_I2C_PCA953X_ADDR; in do_pca953x() local
231 ret = pca953x_info(chip); in do_pca953x()
238 chip = (uint8_t)ul_arg2; in do_pca953x()
239 printf("Current device address: 0x%x\n", chip); in do_pca953x()
244 ret = pca953x_set_dir(chip, (1 << ul_arg2), in do_pca953x()
246 val = (pca953x_get_val(chip) & (1 << ul_arg2)) != 0; in do_pca953x()
251 printf("chip 0x%02x, pin 0x%lx = %d\n", chip, ul_arg2, in do_pca953x()
256 ret = pca953x_set_dir(chip, (1 << ul_arg2), in do_pca953x()
259 ret = pca953x_set_val(chip, (1 << ul_arg2), in do_pca953x()
266 ret = pca953x_set_pol(chip, (1 << ul_arg2), in do_pca953x()
274 eprintf("Error talking to chip at 0x%x\n", chip); in do_pca953x()