mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-08 20:55:17 -05:00
imx233/fuze+: rework i2c and fmradio_i2c init
Only enable fmradio_i2c once with _init() called from system. Move actual i2c init to system for consistency. Move tuner power pin setup to power instead of fmradio. Change-Id: Idb56bfba5803f71b5d049f174c48d2afb969a6ea
This commit is contained in:
parent
a4fd5bf7cb
commit
9caffa8bf7
6 changed files with 15 additions and 11 deletions
|
|
@ -53,7 +53,7 @@ void INT_I2C_DMA(void)
|
|||
semaphore_release(&i2c_sema);
|
||||
}
|
||||
|
||||
void i2c_init(void)
|
||||
void imx233_i2c_init(void)
|
||||
{
|
||||
imx233_reset_block(&HW_I2C_CTRL0);
|
||||
/* setup pins (must be done when shutdown) */
|
||||
|
|
@ -147,6 +147,10 @@ enum imx233_i2c_error_t imx233_i2c_end(unsigned timeout)
|
|||
return ret;
|
||||
}
|
||||
|
||||
void i2c_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
int i2c_write(int device, const unsigned char* buf, int count)
|
||||
{
|
||||
uint8_t addr = device;
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ enum imx233_i2c_error_t
|
|||
I2C_SLAVE_NAK = -5
|
||||
};
|
||||
|
||||
void i2c_init(void);
|
||||
void imx233_i2c_init(void);
|
||||
/* start building a transfer, will acquire an exclusive lock */
|
||||
void imx233_i2c_begin(void);
|
||||
/* add stage */
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include "system-target.h"
|
||||
#include "power-imx233.h"
|
||||
#include "pinctrl-imx233.h"
|
||||
#include "fmradio_i2c.h"
|
||||
|
||||
struct current_step_bit_t
|
||||
{
|
||||
|
|
|
|||
|
|
@ -85,17 +85,11 @@ struct i2c_interface fmradio_i2c =
|
|||
.delay_thigh = 4
|
||||
};
|
||||
|
||||
void fmradio_i2c_enable(bool enable)
|
||||
void fmradio_i2c_init(void)
|
||||
{
|
||||
if(fmradio_i2c_bus == -1)
|
||||
fmradio_i2c_bus = i2c_add_node(&fmradio_i2c);
|
||||
imx233_set_pin_function(0, 29, PINCTRL_FUNCTION_GPIO);
|
||||
imx233_set_pin_function(1, 24, PINCTRL_FUNCTION_GPIO);
|
||||
imx233_set_pin_function(1, 22, PINCTRL_FUNCTION_GPIO);
|
||||
imx233_enable_gpio_output(1, 22, enable);
|
||||
imx233_enable_gpio_output(1, 24, enable);
|
||||
imx233_set_gpio_output(1, 22, enable);
|
||||
imx233_set_gpio_output(1, 24, enable);
|
||||
fmradio_i2c_bus = i2c_add_node(&fmradio_i2c);
|
||||
}
|
||||
|
||||
int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count)
|
||||
|
|
|
|||
|
|
@ -32,8 +32,8 @@ bool tuner_power(bool enable)
|
|||
{
|
||||
if(enable != tuner_enable)
|
||||
{
|
||||
fmradio_i2c_enable(enable);
|
||||
/* CE is B029 (active high) */
|
||||
imx233_set_pin_function(0, 29, PINCTRL_FUNCTION_GPIO);
|
||||
imx233_set_pin_drive_strength(0, 29, PINCTRL_DRIVE_4mA);
|
||||
imx233_enable_gpio_output(0, 29, enable);
|
||||
imx233_set_gpio_output(0, 29, enable);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "lcd.h"
|
||||
#include "backlight-target.h"
|
||||
#include "button.h"
|
||||
#include "fmradio_i2c.h"
|
||||
|
||||
#define default_interrupt(name) \
|
||||
extern __attribute__((weak, alias("UIRQ"))) void name(void)
|
||||
|
|
@ -213,6 +214,10 @@ void system_init(void)
|
|||
imx233_dma_init();
|
||||
imx233_ssp_init();
|
||||
imx233_dcp_init();
|
||||
imx233_i2c_init();
|
||||
#if defined(SANSA_FUZEPLUS) && !defined(BOOTLOADER)
|
||||
fmradio_i2c_init();
|
||||
#endif
|
||||
}
|
||||
|
||||
bool imx233_us_elapsed(uint32_t ref, unsigned us_delay)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue