From de712eebbdbfc1a514ede554ba7d5d7db8ed4478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Sun, 4 Dec 2011 08:24:08 +0000 Subject: [PATCH] Sansa Connect: Add TPS65021 (Power Management) driver. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31135 a1c6a512-1295-4272-9138-f99709370657 --- firmware/SOURCES | 1 + firmware/drivers/tps65021.c | 64 +++++++++++++++++++ firmware/export/tps65021.h | 27 ++++++++ .../sansa-connect/power-sansaconnect.c | 2 + 4 files changed, 94 insertions(+) create mode 100644 firmware/drivers/tps65021.c create mode 100644 firmware/export/tps65021.h diff --git a/firmware/SOURCES b/firmware/SOURCES index f5ee7873a2..5610b5ab5a 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -1118,6 +1118,7 @@ target/arm/tms320dm320/creative-zvm/usb-creativezvm.c #ifdef SANSA_CONNECT #ifndef SIMULATOR +drivers/tps65021.c target/arm/mmu-arm.S target/arm/lcd-as-memframe.S target/arm/tms320dm320/sdmmc-dm320.c diff --git a/firmware/drivers/tps65021.c b/firmware/drivers/tps65021.c new file mode 100644 index 0000000000..d645b0d6f0 --- /dev/null +++ b/firmware/drivers/tps65021.c @@ -0,0 +1,64 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: $ + * + * Driver for TPS 65021 Power Management IC + * + * Copyright (c) 2011 Tomasz Moń + * + * 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; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ +#include "system.h" +#include "config.h" +#if CONFIG_I2C == I2C_DM320 +#include "i2c-dm320.h" +#endif +#include "logf.h" +#include "tps65021.h" + +/* (7-bit) address is 0x48, the LSB is read/write flag */ +#define TPS65021_ADDR (0x48 << 1) + +static void tps65021_write_reg(unsigned reg, unsigned value) +{ + unsigned char data[2]; + + data[0] = reg; + data[1] = value; + +#if CONFIG_I2C == I2C_DM320 + if (i2c_write(TPS65021_ADDR, data, 2) != 0) +#else + #warning Implement tps65021_write_reg() +#endif + { + logf("TPS65021 error reg=0x%x", reg); + return; + } +} + +void tps65021_init(void) +{ +#ifdef SANSA_CONNECT + /* PWM mode */ + tps65021_write_reg(0x04, 0xB2); + + /* Set core voltage to 1.5V */ + tps65021_write_reg(0x06, 0x1C); + + /* Set LCM (LDO1) to 2.85V, Set CODEC and USB (LDO2) to 1.8V */ + tps65021_write_reg(0x08, 0x36); +#endif +} diff --git a/firmware/export/tps65021.h b/firmware/export/tps65021.h new file mode 100644 index 0000000000..2b28ccb37e --- /dev/null +++ b/firmware/export/tps65021.h @@ -0,0 +1,27 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: $ + * + * Copyright (C) 2011 by Tomasz Moń + * + * 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; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef TPS65021_H +#define TPS65021_H + +void tps65021_init(void); + +#endif diff --git a/firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c b/firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c index 52ea9be1d9..bb03e4c0dd 100644 --- a/firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c +++ b/firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c @@ -28,9 +28,11 @@ #include "backlight.h" #include "backlight-target.h" #include "avr-sansaconnect.h" +#include "tps65021.h" void power_init(void) { + tps65021_init(); } void power_off(void)