int axp_get_sid(unsigned int *sid) { u8 *dest = (u8 *)sid; int i, ret; ret = pmic_bus_init(); if (ret) return ret; ret = pmic_bus_write(AXP221_PAGE, 1); if (ret) return ret; for (i = 0; i < 16; i++) { ret = pmic_bus_read(AXP221_SID + i, &dest[i]); if (ret) return ret; } pmic_bus_write(AXP221_PAGE, 0); for (i = 0; i < 4; i++) sid[i] = be32_to_cpu(sid[i]); return 0; }
int axp_init(void) { u8 axp_chip_id; int ret; ret = pmic_bus_init(); if (ret) return ret; ret = pmic_bus_read(AXP221_CHIP_ID, &axp_chip_id); if (ret) return ret; if (!(axp_chip_id == 0x6 || axp_chip_id == 0x7 || axp_chip_id == 0x17)) return -ENODEV; /* * Turn off LDOIO regulators / tri-state GPIO pins, when rebooting * from android these are sometimes on. */ ret = pmic_bus_write(AXP_GPIO0_CTRL, AXP_GPIO_CTRL_INPUT); if (ret) return ret; ret = pmic_bus_write(AXP_GPIO1_CTRL, AXP_GPIO_CTRL_INPUT); if (ret) return ret; return 0; }
int axp_gpio_init(void) { struct udevice *dev; int ret; ret = pmic_bus_init(); if (ret) return ret; /* There is no devicetree support for the axp yet, so bind directly */ ret = device_bind_driver(dm_root(), "gpio_axp", "AXP-gpio", &dev); if (ret) return ret; return 0; }
int axp_init(void) { u8 axp_chip_id; int ret; ret = pmic_bus_init(); if (ret) return ret; ret = pmic_bus_read(AXP221_CHIP_ID, &axp_chip_id); if (ret) return ret; if (!(axp_chip_id == 0x6 || axp_chip_id == 0x7 || axp_chip_id == 0x17)) return -ENODEV; return 0; }
int axp_init(void) { u8 ver; int i, rc; rc = pmic_bus_init(); if (rc) return rc; rc = pmic_bus_read(AXP209_CHIP_VERSION, &ver); if (rc) return rc; /* Low 4 bits is chip version */ ver &= 0x0f; if (ver != 0x1) return -EINVAL; /* Mask all interrupts */ for (i = AXP209_IRQ_ENABLE1; i <= AXP209_IRQ_ENABLE5; i++) { rc = pmic_bus_write(i, 0); if (rc) return rc; } /* * Turn off LDOIO regulators / tri-state GPIO pins, when rebooting * from android these are sometimes on. */ rc = pmic_bus_write(AXP_GPIO0_CTRL, AXP_GPIO_CTRL_INPUT); if (rc) return rc; rc = pmic_bus_write(AXP_GPIO1_CTRL, AXP_GPIO_CTRL_INPUT); if (rc) return rc; rc = pmic_bus_write(AXP_GPIO2_CTRL, AXP_GPIO_CTRL_INPUT); if (rc) return rc; return 0; }
int axp_init(void) { u8 axp_chip_id; int ret; ret = pmic_bus_init(); if (ret) return ret; ret = pmic_bus_read(AXP818_CHIP_ID, &axp_chip_id); if (ret) return ret; if (!(axp_chip_id == 0x51)) return -ENODEV; else return ret; return 0; }
int axp221_init(void) { /* This cannot be 0 because it is used in SPL before BSS is ready */ static int needs_init = 1; u8 axp_chip_id; int ret; if (!needs_init) return 0; ret = pmic_bus_init(); if (ret) return ret; ret = pmic_bus_read(AXP221_CHIP_ID, &axp_chip_id); if (ret) return ret; if (!(axp_chip_id == 0x6 || axp_chip_id == 0x7 || axp_chip_id == 0x17)) return -ENODEV; needs_init = 0; return 0; }
int axp_init(void) { return pmic_bus_init(); }