mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 13:15:18 -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);
|
semaphore_release(&i2c_sema);
|
||||||
}
|
}
|
||||||
|
|
||||||
void i2c_init(void)
|
void imx233_i2c_init(void)
|
||||||
{
|
{
|
||||||
imx233_reset_block(&HW_I2C_CTRL0);
|
imx233_reset_block(&HW_I2C_CTRL0);
|
||||||
/* setup pins (must be done when shutdown) */
|
/* setup pins (must be done when shutdown) */
|
||||||
|
|
@ -147,6 +147,10 @@ enum imx233_i2c_error_t imx233_i2c_end(unsigned timeout)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void i2c_init(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
int i2c_write(int device, const unsigned char* buf, int count)
|
int i2c_write(int device, const unsigned char* buf, int count)
|
||||||
{
|
{
|
||||||
uint8_t addr = device;
|
uint8_t addr = device;
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ enum imx233_i2c_error_t
|
||||||
I2C_SLAVE_NAK = -5
|
I2C_SLAVE_NAK = -5
|
||||||
};
|
};
|
||||||
|
|
||||||
void i2c_init(void);
|
void imx233_i2c_init(void);
|
||||||
/* start building a transfer, will acquire an exclusive lock */
|
/* start building a transfer, will acquire an exclusive lock */
|
||||||
void imx233_i2c_begin(void);
|
void imx233_i2c_begin(void);
|
||||||
/* add stage */
|
/* add stage */
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
#include "system-target.h"
|
#include "system-target.h"
|
||||||
#include "power-imx233.h"
|
#include "power-imx233.h"
|
||||||
#include "pinctrl-imx233.h"
|
#include "pinctrl-imx233.h"
|
||||||
|
#include "fmradio_i2c.h"
|
||||||
|
|
||||||
struct current_step_bit_t
|
struct current_step_bit_t
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -85,17 +85,11 @@ struct i2c_interface fmradio_i2c =
|
||||||
.delay_thigh = 4
|
.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, 24, PINCTRL_FUNCTION_GPIO);
|
||||||
imx233_set_pin_function(1, 22, PINCTRL_FUNCTION_GPIO);
|
imx233_set_pin_function(1, 22, PINCTRL_FUNCTION_GPIO);
|
||||||
imx233_enable_gpio_output(1, 22, enable);
|
fmradio_i2c_bus = i2c_add_node(&fmradio_i2c);
|
||||||
imx233_enable_gpio_output(1, 24, enable);
|
|
||||||
imx233_set_gpio_output(1, 22, enable);
|
|
||||||
imx233_set_gpio_output(1, 24, enable);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int fmradio_i2c_write(unsigned char address, const unsigned char* buf, int count)
|
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)
|
if(enable != tuner_enable)
|
||||||
{
|
{
|
||||||
fmradio_i2c_enable(enable);
|
|
||||||
/* CE is B029 (active high) */
|
/* 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_set_pin_drive_strength(0, 29, PINCTRL_DRIVE_4mA);
|
||||||
imx233_enable_gpio_output(0, 29, enable);
|
imx233_enable_gpio_output(0, 29, enable);
|
||||||
imx233_set_gpio_output(0, 29, enable);
|
imx233_set_gpio_output(0, 29, enable);
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@
|
||||||
#include "lcd.h"
|
#include "lcd.h"
|
||||||
#include "backlight-target.h"
|
#include "backlight-target.h"
|
||||||
#include "button.h"
|
#include "button.h"
|
||||||
|
#include "fmradio_i2c.h"
|
||||||
|
|
||||||
#define default_interrupt(name) \
|
#define default_interrupt(name) \
|
||||||
extern __attribute__((weak, alias("UIRQ"))) void name(void)
|
extern __attribute__((weak, alias("UIRQ"))) void name(void)
|
||||||
|
|
@ -213,6 +214,10 @@ void system_init(void)
|
||||||
imx233_dma_init();
|
imx233_dma_init();
|
||||||
imx233_ssp_init();
|
imx233_ssp_init();
|
||||||
imx233_dcp_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)
|
bool imx233_us_elapsed(uint32_t ref, unsigned us_delay)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue