summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Moń <desowin@gmail.com>2011-12-04 08:24:08 +0000
committerTomasz Moń <desowin@gmail.com>2011-12-04 08:24:08 +0000
commitde712eebbdbfc1a514ede554ba7d5d7db8ed4478 (patch)
treee5a10a65c4d4bcbadc5a08a2a4b815169869f9d6
parentad0b3082654e1cd87e788f6e8c18908ffd0c46b7 (diff)
downloadrockbox-de712eebbdbfc1a514ede554ba7d5d7db8ed4478.tar.gz
rockbox-de712eebbdbfc1a514ede554ba7d5d7db8ed4478.zip
Sansa Connect: Add TPS65021 (Power Management) driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31135 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/SOURCES1
-rw-r--r--firmware/drivers/tps65021.c64
-rw-r--r--firmware/export/tps65021.h27
-rw-r--r--firmware/target/arm/tms320dm320/sansa-connect/power-sansaconnect.c2
4 files changed, 94 insertions, 0 deletions
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
1118 1118
1119#ifdef SANSA_CONNECT 1119#ifdef SANSA_CONNECT
1120#ifndef SIMULATOR 1120#ifndef SIMULATOR
1121drivers/tps65021.c
1121target/arm/mmu-arm.S 1122target/arm/mmu-arm.S
1122target/arm/lcd-as-memframe.S 1123target/arm/lcd-as-memframe.S
1123target/arm/tms320dm320/sdmmc-dm320.c 1124target/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 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: $
9 *
10 * Driver for TPS 65021 Power Management IC
11 *
12 * Copyright (c) 2011 Tomasz Moń
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
18 *
19 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
20 * KIND, either express or implied.
21 *
22 ****************************************************************************/
23#include "system.h"
24#include "config.h"
25#if CONFIG_I2C == I2C_DM320
26#include "i2c-dm320.h"
27#endif
28#include "logf.h"
29#include "tps65021.h"
30
31/* (7-bit) address is 0x48, the LSB is read/write flag */
32#define TPS65021_ADDR (0x48 << 1)
33
34static void tps65021_write_reg(unsigned reg, unsigned value)
35{
36 unsigned char data[2];
37
38 data[0] = reg;
39 data[1] = value;
40
41#if CONFIG_I2C == I2C_DM320
42 if (i2c_write(TPS65021_ADDR, data, 2) != 0)
43#else
44 #warning Implement tps65021_write_reg()
45#endif
46 {
47 logf("TPS65021 error reg=0x%x", reg);
48 return;
49 }
50}
51
52void tps65021_init(void)
53{
54#ifdef SANSA_CONNECT
55 /* PWM mode */
56 tps65021_write_reg(0x04, 0xB2);
57
58 /* Set core voltage to 1.5V */
59 tps65021_write_reg(0x06, 0x1C);
60
61 /* Set LCM (LDO1) to 2.85V, Set CODEC and USB (LDO2) to 1.8V */
62 tps65021_write_reg(0x08, 0x36);
63#endif
64}
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 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id: $
9 *
10 * Copyright (C) 2011 by Tomasz Moń
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22#ifndef TPS65021_H
23#define TPS65021_H
24
25void tps65021_init(void);
26
27#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 @@
28#include "backlight.h" 28#include "backlight.h"
29#include "backlight-target.h" 29#include "backlight-target.h"
30#include "avr-sansaconnect.h" 30#include "avr-sansaconnect.h"
31#include "tps65021.h"
31 32
32void power_init(void) 33void power_init(void)
33{ 34{
35 tps65021_init();
34} 36}
35 37
36void power_off(void) 38void power_off(void)