diff options
Diffstat (limited to 'src/mainboard/google')
-rw-r--r-- | src/mainboard/google/veyron_pinky/Makefile.inc | 1 | ||||
-rw-r--r-- | src/mainboard/google/veyron_pinky/mainboard.c | 10 | ||||
-rw-r--r-- | src/mainboard/google/veyron_pinky/pmic.c | 85 | ||||
-rw-r--r-- | src/mainboard/google/veyron_pinky/pmic.h | 23 |
4 files changed, 9 insertions, 110 deletions
diff --git a/src/mainboard/google/veyron_pinky/Makefile.inc b/src/mainboard/google/veyron_pinky/Makefile.inc index 3ae8763907..7b49a559b8 100644 --- a/src/mainboard/google/veyron_pinky/Makefile.inc +++ b/src/mainboard/google/veyron_pinky/Makefile.inc @@ -24,5 +24,4 @@ romstage-y += sdram_configs.c ramstage-y += boardid.c ramstage-y += chromeos.c ramstage-y += mainboard.c -ramstage-y += pmic.c diff --git a/src/mainboard/google/veyron_pinky/mainboard.c b/src/mainboard/google/veyron_pinky/mainboard.c index 349240faff..d3537bf093 100644 --- a/src/mainboard/google/veyron_pinky/mainboard.c +++ b/src/mainboard/google/veyron_pinky/mainboard.c @@ -29,8 +29,8 @@ #include <soc/rockchip/rk3288/soc.h> #include <soc/rockchip/rk3288/pmu.h> #include <soc/rockchip/rk3288/clock.h> +#include <soc/rockchip/rk3288/rk808.h> #include <soc/rockchip/rk3288/spi.h> -#include "pmic.h" #define DRAM_START (CONFIG_SYS_SDRAM_BASE >> 20) #define DRAM_SIZE CONFIG_DRAM_SIZE_MB @@ -110,6 +110,14 @@ static void configure_i2s(void) rkclk_configure_i2s(12288000); } +static void pmic_init(unsigned int bus) +{ + rk808_configure_ldo(bus, 4, 1800); /* VCC18_LCD */ + rk808_configure_ldo(bus, 5, 1800); /* VCC18_CODEC */ + rk808_configure_ldo(bus, 6, 1000); /* VCC10_LCD */ + rk808_configure_ldo(bus, 8, 3300); /* VCCIO_SD */ +} + static void mainboard_init(device_t dev) { setup_iomux(); diff --git a/src/mainboard/google/veyron_pinky/pmic.c b/src/mainboard/google/veyron_pinky/pmic.c deleted file mode 100644 index 2e6f0abca1..0000000000 --- a/src/mainboard/google/veyron_pinky/pmic.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright 2014 Rockchip Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <console/console.h> -#include <device/i2c.h> -#include <stdint.h> -#include <stdlib.h> -#include "pmic.h" - -#define RK808_ADDR 0x1b -#define LOD1EN (1 << 0) -#define LOD2EN (1 << 1) -#define LOD3EN (1 << 2) -#define LOD4EN (1 << 3) -#define LOD5EN (1 << 4) -#define LOD6EN (1 << 5) -#define LOD7EN (1 << 6) -#define LOD8EN (1 << 7) - -#define LDO_BASE18V 18 -#define LDO_BASE08V 8 -#define LDOVSEL(mV, base) (mV/100 - base) - -struct rk808_reg { - u8 reg; - u8 val; -}; - -enum { - LDO_EN = 0x24, - LDO1_ONSEL = 0x3B, - LDO1_SLPSEL, - LDO2_ONSEL, - LDO2_SLPSEL, - LDO3_ONSEL, - LDO3_SLPSEL, - LDO4_ONSEL, - LDO4_SLPSEL, - LDO5_ONSEL, - LDO5_SLPSEL, - LDO6_ONSEL, - LDO6_SLPSEL, - LDO7_ONSEL, - LDO7_SLPSEL, - LDO8_ONSEL, - LDO8_SLPSEL, -}; - -static struct rk808_reg ldo_initlist[] = { - {LDO4_ONSEL, LDOVSEL(1800, LDO_BASE18V)}, /*vcc18_lcd*/ - {LDO5_ONSEL, LDOVSEL(1800, LDO_BASE18V)}, /*vcc18_codec*/ - {LDO6_ONSEL, LDOVSEL(1000, LDO_BASE08V)}, /*vcc10_lcd*/ - {LDO8_ONSEL, LDOVSEL(3300, LDO_BASE18V)}, /*vccio_sd*/ -}; - -void pmic_init(unsigned int bus) -{ - uint8_t read_reg; - int i; - for (i = 0; i < ARRAY_SIZE(ldo_initlist); i++) { - struct rk808_reg *reg = &ldo_initlist[i]; - i2c_writeb(bus, RK808_ADDR, reg->reg, reg->val); - } - - /*enable ldo4,ldo5,ldo6,ldo8*/ - i2c_readb(bus, RK808_ADDR, LDO_EN, &read_reg); - i2c_writeb(bus, RK808_ADDR, LDO_EN, read_reg | LOD8EN | LOD6EN - | LOD5EN | LOD4EN); -} diff --git a/src/mainboard/google/veyron_pinky/pmic.h b/src/mainboard/google/veyron_pinky/pmic.h deleted file mode 100644 index dd6ed0b313..0000000000 --- a/src/mainboard/google/veyron_pinky/pmic.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright 2014 Rockchip Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __SOC_ROCKCHIP_RK3288_PMIC_H__ -#define __SOC_ROCKCHIP_RK3288_PMIC_H__ -void pmic_init(unsigned int bus); -#endif |