Commit fc9ade56e3eb451683a58089e32e79abb69e240e

Authored by Yung-Ching LIN
Committed by Stefano Babic
1 parent f6f7e73d45

board: advantech: dms-ba16: add the PMIC configuration support

Change the PMIC bulk configuration from auto mode to sync mode to avoid the voltage shutdown issue

Signed-off-by: Ken Lin <yungching0725@gmail.com>
Acked-by: Akshay Bhat <akshay.bhat@timesys.com>

Showing 1 changed file with 51 additions and 0 deletions Side-by-side Diff

board/advantech/dms-ba16/dms-ba16.c
... ... @@ -534,6 +534,54 @@
534 534 };
535 535 #endif
536 536  
  537 +void pmic_init(void)
  538 +{
  539 +
  540 +#define DA9063_ADDR 0x58
  541 +#define BCORE2_CONF 0x9D
  542 +#define BCORE1_CONF 0x9E
  543 +#define BPRO_CONF 0x9F
  544 +#define BIO_CONF 0xA0
  545 +#define BMEM_CONF 0xA1
  546 +#define BPERI_CONF 0xA2
  547 +#define MODE_BIT_H 7
  548 +#define MODE_BIT_L 6
  549 +
  550 + uchar val;
  551 + i2c_set_bus_num(2);
  552 +
  553 + i2c_read(DA9063_ADDR, BCORE2_CONF, 1, &val, 1);
  554 + val |= (1 << MODE_BIT_H);
  555 + val &= ~(1 << MODE_BIT_L);
  556 + i2c_write(DA9063_ADDR, BCORE2_CONF , 1, &val, 1);
  557 +
  558 + i2c_read(DA9063_ADDR, BCORE1_CONF, 1, &val, 1);
  559 + val |= (1 << MODE_BIT_H);
  560 + val &= ~(1 << MODE_BIT_L);
  561 + i2c_write(DA9063_ADDR, BCORE1_CONF , 1, &val, 1);
  562 +
  563 + i2c_read(DA9063_ADDR, BPRO_CONF, 1, &val, 1);
  564 + val |= (1 << MODE_BIT_H);
  565 + val &= ~(1 << MODE_BIT_L);
  566 + i2c_write(DA9063_ADDR, BPRO_CONF , 1, &val, 1);
  567 +
  568 + i2c_read(DA9063_ADDR, BIO_CONF, 1, &val, 1);
  569 + val |= (1 << MODE_BIT_H);
  570 + val &= ~(1 << MODE_BIT_L);
  571 + i2c_write(DA9063_ADDR, BIO_CONF , 1, &val, 1);
  572 +
  573 + i2c_read(DA9063_ADDR, BMEM_CONF, 1, &val, 1);
  574 + val |= (1 << MODE_BIT_H);
  575 + val &= ~(1 << MODE_BIT_L);
  576 + i2c_write(DA9063_ADDR, BMEM_CONF , 1, &val, 1);
  577 +
  578 + i2c_read(DA9063_ADDR, BPERI_CONF, 1, &val, 1);
  579 + val |= (1 << MODE_BIT_H);
  580 + val &= ~(1 << MODE_BIT_L);
  581 + i2c_write(DA9063_ADDR, BPERI_CONF , 1, &val, 1);
  582 +
  583 +}
  584 +
537 585 int board_late_init(void)
538 586 {
539 587 #ifdef CONFIG_CMD_BMODE
... ... @@ -562,6 +610,9 @@
562 610 #ifdef CONFIG_CMD_SATA
563 611 setup_ba16_sata();
564 612 #endif
  613 +
  614 + /* board specific pmic init */
  615 + pmic_init();
565 616  
566 617 return 0;
567 618 }