omap: rx51: Add SI4713 FM transmitter
Subsystems (3)
PATCH 1/1 omap: rx51: Add SI4713 FM transmitter
Add SI4713 FM transmitter supplies, platform data and setup to RX-51/N900. It is connected to line output signals of TLV320AIC34 codec A part. Driver can be either built-in or a module. It can be tuned with v4l2-ctl from ivtv-utils. Following examples illustrate the use of it:
v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 (power up) v4l2-ctl -d /dev/radio0 -f 107900 (tune 107.9 MHz) v4l2-ctl -d /dev/radio0 --set-ctrl=mute=1 (power down)
--- arch/arm/mach-omap2/board-rx51-peripherals.c | 44 ++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +44 -0
@@ -36,6 +36,8 @@#include <sound/tlv320aic3x.h> #include <sound/tpa6130a2-plat.h> +#include <media/radio-si4713.h> +#include <media/si4713.h> #include <../drivers/staging/iio/light/tsl2563.h>
@@ -47,6 +49,8 @@#define RX51_WL1251_POWER_GPIO 87#define RX51_WL1251_IRQ_GPIO 42 +#define RX51_FMTX_RESET_GPIO 163 +#define RX51_FMTX_IRQ 53/* list all spi devices here */ enum {
@@ -357,10 +361,14 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {REGULATOR_SUPPLY ("DVDD" ,"2-0018" ),REGULATOR_SUPPLY ("IOVDD" ,"2-0019" ),REGULATOR_SUPPLY ("DVDD" ,"2-0019" ), +/* Si4713 IO supply */ + REGULATOR_SUPPLY("vio", "2-0063"), };static struct regulator_consumer_supply rx51_vaux1_consumers[] = {REGULATOR_SUPPLY ("vdds_sdi" ,"omapdss" ), +/* Si4713 supply */ +REGULATOR_SUPPLY ("vdd" ,"2-0063" ), }; static struct regulator_consumer_supply rx51_vdac_supply[] = {
@@ -511,6 +519,41 @@ static struct regulator_init_data rx51_vio = { .consumer_supplies = rx51_vio_supplies, }; +static struct si4713_platform_data rx51_si4713_i2c_data __initdata_or_module = { + .gpio_reset =RX51_FMTX_RESET_GPIO , +}; + +static struct i2c_board_info rx51_si4713_board_info __initdata_or_module = { +I2C_BOARD_INFO ("si4713" ,SI4713_I2C_ADDR_BUSEN_HIGH ), + .platform_data = &rx51_si4713_i2c_data, +}; + +static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module = { + .i2c_bus =2 , + .subdev_board_info = &rx51_si4713_board_info, +}; + +static struct platform_device rx51_si4713_dev __initdata_or_module = { + .name ="radio-si4713" , + .id =-1 , + .dev = { + .platform_data = &rx51_si4713_data, + }, +}; + +static __init void rx51_init_si4713 (void ) +{ +int err; + + err =gpio_request_one (RX51_FMTX_IRQ ,GPIOF_DIR_IN ,"si4713 irq" ); +if (err) { +printk (KERN_ERR "Cannot request si4713 irq gpio. %d\n" , err); +return ; + } + rx51_si4713_board_info.irq =gpio_to_irq (RX51_FMTX_IRQ ); +platform_device_register (&rx51_si4713_dev); +} +static int rx51_twlgpio_setup (struct device *dev,unsigned gpio,unsigned n) {/* FIXME this gpio setup is just a placeholder for now */
@@ -921,6 +964,7 @@ void __init rx51_peripherals_init(void)board_smc91x_init ();rx51_add_gpio_keys ();rx51_init_wl1251 (); +rx51_init_si4713 ();spi_register_board_info (rx51_peripherals_spi_board_info,ARRAY_SIZE (rx51_peripherals_spi_board_info));
Signature · 1 line
1.7.2.3
PATCH RESEND 1/1 omap: rx51: Add SI4713 FM transmitter
Add SI4713 FM transmitter supplies, platform data and setup to RX-51/N900. It is connected to line output signals of TLV320AIC34 codec A part. Driver can be either built-in or a module. It can be tuned with v4l2-ctl from ivtv-utils. Following examples illustrate the use of it:
v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 (power up) v4l2-ctl -d /dev/radio0 -f 107900 (tune 107.9 MHz) v4l2-ctl -d /dev/radio0 --set-ctrl=mute=1 (power down)
---
Resend = forgot to cc LAKML.
--- arch/arm/mach-omap2/board-rx51-peripherals.c | 44 ++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +44 -0
@@ -36,6 +36,8 @@#include <sound/tlv320aic3x.h> #include <sound/tpa6130a2-plat.h> +#include <media/radio-si4713.h> +#include <media/si4713.h> #include <../drivers/staging/iio/light/tsl2563.h>
@@ -47,6 +49,8 @@#define RX51_WL1251_POWER_GPIO 87#define RX51_WL1251_IRQ_GPIO 42 +#define RX51_FMTX_RESET_GPIO 163 +#define RX51_FMTX_IRQ 53/* list all spi devices here */ enum {
@@ -357,10 +361,14 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {REGULATOR_SUPPLY ("DVDD" ,"2-0018" ),REGULATOR_SUPPLY ("IOVDD" ,"2-0019" ),REGULATOR_SUPPLY ("DVDD" ,"2-0019" ), +/* Si4713 IO supply */ + REGULATOR_SUPPLY("vio", "2-0063"), };static struct regulator_consumer_supply rx51_vaux1_consumers[] = {REGULATOR_SUPPLY ("vdds_sdi" ,"omapdss" ), +/* Si4713 supply */ +REGULATOR_SUPPLY ("vdd" ,"2-0063" ), }; static struct regulator_consumer_supply rx51_vdac_supply[] = {
@@ -511,6 +519,41 @@ static struct regulator_init_data rx51_vio = { .consumer_supplies = rx51_vio_supplies, }; +static struct si4713_platform_data rx51_si4713_i2c_data __initdata_or_module = { + .gpio_reset =RX51_FMTX_RESET_GPIO , +}; + +static struct i2c_board_info rx51_si4713_board_info __initdata_or_module = { +I2C_BOARD_INFO ("si4713" ,SI4713_I2C_ADDR_BUSEN_HIGH ), + .platform_data = &rx51_si4713_i2c_data, +}; + +static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module = { + .i2c_bus =2 , + .subdev_board_info = &rx51_si4713_board_info, +}; + +static struct platform_device rx51_si4713_dev __initdata_or_module = { + .name ="radio-si4713" , + .id =-1 , + .dev = { + .platform_data = &rx51_si4713_data, + }, +}; + +static __init void rx51_init_si4713 (void ) +{ +int err; + + err =gpio_request_one (RX51_FMTX_IRQ ,GPIOF_DIR_IN ,"si4713 irq" ); +if (err) { +printk (KERN_ERR "Cannot request si4713 irq gpio. %d\n" , err); +return ; + } + rx51_si4713_board_info.irq =gpio_to_irq (RX51_FMTX_IRQ ); +platform_device_register (&rx51_si4713_dev); +} +static int rx51_twlgpio_setup (struct device *dev,unsigned gpio,unsigned n) {/* FIXME this gpio setup is just a placeholder for now */
@@ -921,6 +964,7 @@ void __init rx51_peripherals_init(void)board_smc91x_init ();rx51_add_gpio_keys ();rx51_init_wl1251 (); +rx51_init_si4713 ();spi_register_board_info (rx51_peripherals_spi_board_info,ARRAY_SIZE (rx51_peripherals_spi_board_info));
Signature · 1 line
1.7.2.3
PATCH RESEND 1/1 omap: rx51: Add SI4713 FM transmitter
Quoted 8 lines · Jarkko Nikula
Add SI4713 FM transmitter supplies, platform data and setup to RX-51/N900. It is connected to line output signals of TLV320AIC34 codec A part. Driver can be either built-in or a module. It can be tuned with v4l2-ctl from ivtv-utils. Following examples illustrate the use of it:
? ? ? ?v4l2-ctl -d
/dev/radio0--set-ctrl=mute=0 (power up) ? ? ? ?v4l2-ctl -d/dev/radio0-f 107900 (tune 107.9 MHz)
Quoted 6 lines
? ? ? ?v4l2-ctl -d
/dev/radio0--set-ctrl=mute=1 (power down)Signed-off-by Jarkko Nikula <[email protected]>---
Resend = forgot to cc LAKML.
---
<<snip>>
arch/arm/mach-omap2/board-rx51-peripherals.c static struct regulator_init_data rx51_vio = {
Quoted 8 lines
arch/arm/mach-omap2/board-rx51-peripherals.c +8
-0+ +static __init void rx51_init_si4713 (void ) +{ + ? ? ? int err; + + ? ? ? err = gpio_request_one(RX51_FMTX_IRQ, GPIOF_DIR_IN, "si4713 irq"); + ? ? ? if (err) { + ? ? ? ? ? ? ? printk(KERN_ERR "Cannot request si4713 irq gpio. %d\n", err);
use pr_err instead of printk.
Review
Quoted 6 lines
+ ? ? ? ? ? ? ? return;
+ ? ? ? }
+ ? ? ? rx51_si4713_board_info.irq =gpio_to_irq(RX51_FMTX_IRQ);
+ ? ? ?platform_device_register(&rx51_si4713_dev);(quoted diff) +2
-0+} +
<<snip>>
PATCH RESEND 1/1 omap: rx51: Add SI4713 FM transmitter
Quoted 6 lines · Charulatha
Quoted 3 lines
+ err =
gpio_request_one(RX51_FMTX_IRQ, GPIOF_DIR_IN, "si4713 irq");
+ if (err) {
+ printk(KERN_ERR "Cannot request si4713 irq gpio. %d\n", err);use
pr_errinstead of printk.
Thanks, I was obviously blind, will send an update :-)
Signature · 5 lines
Jarkko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v2 1/1 omap: rx51: Add SI4713 FM transmitter
Add SI4713 FM transmitter supplies, platform data and setup to RX-51/N900. It is connected to line output signals of TLV320AIC34 codec A part. Driver can be either built-in or a module. It can be tuned with v4l2-ctl from ivtv-utils. Following examples illustrate the use of it:
v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 (power up) v4l2-ctl -d /dev/radio0 -f 107900 (tune 107.9 MHz) v4l2-ctl -d /dev/radio0 --set-ctrl=mute=1 (power down)
---
v2: Using pr_err instead of printk. Thanks to "Varadarajan, Charulatha" <[email protected]> for noticing.
--- arch/arm/mach-omap2/board-rx51-peripherals.c | 44 ++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +44 -0
@@ -36,6 +36,8 @@#include <sound/tlv320aic3x.h> #include <sound/tpa6130a2-plat.h> +#include <media/radio-si4713.h> +#include <media/si4713.h> #include <../drivers/staging/iio/light/tsl2563.h>
@@ -47,6 +49,8 @@#define RX51_WL1251_POWER_GPIO 87#define RX51_WL1251_IRQ_GPIO 42 +#define RX51_FMTX_RESET_GPIO 163 +#define RX51_FMTX_IRQ 53/* list all spi devices here */ enum {
@@ -357,10 +361,14 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {REGULATOR_SUPPLY ("DVDD" ,"2-0018" ),REGULATOR_SUPPLY ("IOVDD" ,"2-0019" ),REGULATOR_SUPPLY ("DVDD" ,"2-0019" ), +/* Si4713 IO supply */ + REGULATOR_SUPPLY("vio", "2-0063"), };static struct regulator_consumer_supply rx51_vaux1_consumers[] = {REGULATOR_SUPPLY ("vdds_sdi" ,"omapdss" ), +/* Si4713 supply */ +REGULATOR_SUPPLY ("vdd" ,"2-0063" ), }; static struct regulator_consumer_supply rx51_vdac_supply[] = {
@@ -511,6 +519,41 @@ static struct regulator_init_data rx51_vio = { .consumer_supplies = rx51_vio_supplies, }; +static struct si4713_platform_data rx51_si4713_i2c_data __initdata_or_module = { + .gpio_reset =RX51_FMTX_RESET_GPIO , +}; + +static struct i2c_board_info rx51_si4713_board_info __initdata_or_module = { +I2C_BOARD_INFO ("si4713" ,SI4713_I2C_ADDR_BUSEN_HIGH ), + .platform_data = &rx51_si4713_i2c_data, +}; + +static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module = { + .i2c_bus =2 , + .subdev_board_info = &rx51_si4713_board_info, +}; + +static struct platform_device rx51_si4713_dev __initdata_or_module = { + .name ="radio-si4713" , + .id =-1 , + .dev = { + .platform_data = &rx51_si4713_data, + }, +}; + +static __init void rx51_init_si4713 (void ) +{ +int err; + + err =gpio_request_one (RX51_FMTX_IRQ ,GPIOF_DIR_IN ,"si4713 irq" ); +if (err) { +pr_err ("Cannot request si4713 irq gpio. %d\n" , err); +return ; + } + rx51_si4713_board_info.irq =gpio_to_irq (RX51_FMTX_IRQ ); +platform_device_register (&rx51_si4713_dev); +} +static int rx51_twlgpio_setup (struct device *dev,unsigned gpio,unsigned n) {/* FIXME this gpio setup is just a placeholder for now */
@@ -921,6 +964,7 @@ void __init rx51_peripherals_init(void)board_smc91x_init ();rx51_add_gpio_keys ();rx51_init_wl1251 (); +rx51_init_si4713 ();spi_register_board_info (rx51_peripherals_spi_board_info,ARRAY_SIZE (rx51_peripherals_spi_board_info));
Signature · 1 line
1.7.2.3
Tony Lindgren
maintainerPATCH RESEND 1/1 omap: rx51: Add SI4713 FM transmitter
In reply to Jarkko NikulaQuoted 1 line · Jarkko Nikula
Add SI4713 FM transmitter supplies, platform data and setup to RX-51/N900.
Thanks adding to devel-board for the upcoming merge window.
Tony