Commit fc9ade56e3eb451683a58089e32e79abb69e240e
Committed by
Stefano Babic
1 parent
f6f7e73d45
Exists in
smarc_8mq_lf_v2020.04
and in
17 other branches
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 | } |