Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 293318
b: refs/heads/master
c: 6d70934
h: refs/heads/master
v: v3
  • Loading branch information
Mark Brown committed Feb 9, 2012
1 parent 8fcdaaf commit d0a095f
Show file tree
Hide file tree
Showing 143 changed files with 10,531 additions and 4,029 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 945e5038455fef18e73914c149717878d78cb4c0
refs/heads/master: 6d70934a0248d0d92e01116807c02c00ae172299
24 changes: 24 additions & 0 deletions trunk/Documentation/devicetree/bindings/sound/alc5632.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ALC5632 audio CODEC

This device supports I2C only.

Required properties:

- compatible : "realtek,alc5632"

- reg : the I2C address of the device.

- gpio-controller : Indicates this device is a GPIO controller.

- #gpio-cells : Should be two. The first cell is the pin number and the
second cell is used to specify optional parameters (currently unused).

Example:

alc5632: alc5632@1e {
compatible = "realtek,alc5632";
reg = <0x1a>;

gpio-controller;
#gpio-cells = <2>;
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
NVIDIA Tegra audio complex

Required properties:
- compatible : "nvidia,tegra-audio-alc5632"
- nvidia,model : The user-visible name of this sound complex.
- nvidia,audio-routing : A list of the connections between audio components.
Each entry is a pair of strings, the first being the connection's sink,
the second being the connection's source. Valid names for sources and
sinks are the ALC5632's pins:

ALC5632 pins:

* SPK_OUTP
* SPK_OUTN
* HP_OUT_L
* HP_OUT_R
* AUX_OUT_P
* AUX_OUT_N
* LINE_IN_L
* LINE_IN_R
* PHONE_P
* PHONE_N
* MIC1_P
* MIC1_N
* MIC2_P
* MIC2_N
* MICBIAS1

Board connectors:

* Headset Stereophone
* Int Spk
* Headset Mic

- nvidia,i2s-controller : The phandle of the Tegra I2S controller
- nvidia,audio-codec : The phandle of the ALC5632 audio codec

Example:

sound {
compatible = "nvidia,tegra-audio-alc5632-paz00",
"nvidia,tegra-audio-alc5632";

nvidia,model = "Compal PAZ00";

nvidia,audio-routing =
"Int Spk", "SPK_OUTP",
"Int Spk", "SPK_OUTN",
"Headset Mic","MICBIAS1",
"MIC1_N", "Headset Mic",
"MIC1_P", "Headset Mic",
"Headset Stereophone", "HP_OUT_R",
"Headset Stereophone", "HP_OUT_L";

nvidia,i2s-controller = <&tegra_i2s1>;
nvidia,audio-codec = <&alc5632>;
};
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ nxp NXP Semiconductors
powervr Imagination Technologies
qcom Qualcomm, Inc.
ramtron Ramtron International
realtek Realtek Semiconductor Corp.
samsung Samsung Semiconductor
sbs Smart Battery System
schindler Schindler
Expand Down
3 changes: 3 additions & 0 deletions trunk/Documentation/driver-model/devres.txt
Original file line number Diff line number Diff line change
Expand Up @@ -271,3 +271,6 @@ IOMAP
pcim_iounmap()
pcim_iomap_table() : array of mapped addresses indexed by BAR
pcim_iomap_regions() : do request_region() and iomap() on multiple BARs

REGULATOR
devm_regulator_get()
19 changes: 4 additions & 15 deletions trunk/arch/arm/mach-ep93xx/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -817,23 +817,12 @@ void __init ep93xx_register_i2s(void)
#define EP93XX_I2SCLKDIV_MASK (EP93XX_SYSCON_I2SCLKDIV_ORIDE | \
EP93XX_SYSCON_I2SCLKDIV_SPOL)

int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config)
int ep93xx_i2s_acquire(void)
{
unsigned val;

/* Sanity check */
if (i2s_pins & ~EP93XX_SYSCON_DEVCFG_I2S_MASK)
return -EINVAL;
if (i2s_config & ~EP93XX_I2SCLKDIV_MASK)
return -EINVAL;

/* Must have only one of I2SONSSP/I2SONAC97 set */
if ((i2s_pins & EP93XX_SYSCON_DEVCFG_I2SONSSP) ==
(i2s_pins & EP93XX_SYSCON_DEVCFG_I2SONAC97))
return -EINVAL;

ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_I2S_MASK);
ep93xx_devcfg_set_bits(i2s_pins);
ep93xx_devcfg_set_clear(EP93XX_SYSCON_DEVCFG_I2SONAC97,
EP93XX_SYSCON_DEVCFG_I2S_MASK);

/*
* This is potentially racy with the clock api for i2s_mclk, sclk and
Expand All @@ -843,7 +832,7 @@ int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config)
*/
val = __raw_readl(EP93XX_SYSCON_I2SCLKDIV);
val &= ~EP93XX_I2SCLKDIV_MASK;
val |= i2s_config;
val |= EP93XX_SYSCON_I2SCLKDIV_ORIDE | EP93XX_SYSCON_I2SCLKDIV_SPOL;
ep93xx_syscon_swlocked_write(val, EP93XX_SYSCON_I2SCLKDIV);

return 0;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-ep93xx/include/mach/platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ void ep93xx_register_keypad(struct ep93xx_keypad_platform_data *data);
int ep93xx_keypad_acquire_gpio(struct platform_device *pdev);
void ep93xx_keypad_release_gpio(struct platform_device *pdev);
void ep93xx_register_i2s(void);
int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config);
int ep93xx_i2s_acquire(void);
void ep93xx_i2s_release(void);
void ep93xx_register_ac97(void);

Expand Down
6 changes: 6 additions & 0 deletions trunk/arch/arm/mach-kirkwood/openrd-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,11 @@ static struct i2c_board_info i2c_board_info[] __initdata = {
},
};

static struct platform_device openrd_client_audio_device = {
.name = "openrd-client-audio",
.id = -1,
};

static int __initdata uart1;

static int __init sd_uart_selection(char *str)
Expand Down Expand Up @@ -172,6 +177,7 @@ static void __init openrd_init(void)
kirkwood_i2c_init();

if (machine_is_openrd_client() || machine_is_openrd_ultimate()) {
platform_device_register(&openrd_client_audio_device);
i2c_register_board_info(0, i2c_board_info,
ARRAY_SIZE(i2c_board_info));
kirkwood_audio_init();
Expand Down
6 changes: 6 additions & 0 deletions trunk/arch/arm/mach-kirkwood/t5325-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ static struct platform_device hp_t5325_button_device = {
}
};

static struct platform_device hp_t5325_audio_device = {
.name = "t5325-audio",
.id = -1,
};

static unsigned int hp_t5325_mpp_config[] __initdata = {
MPP0_NF_IO2,
MPP1_SPI_MOSI,
Expand Down Expand Up @@ -179,6 +184,7 @@ static void __init hp_t5325_init(void)
kirkwood_sata_init(&hp_t5325_sata_data);
kirkwood_ehci_init();
platform_device_register(&hp_t5325_button_device);
platform_device_register(&hp_t5325_audio_device);

i2c_register_board_info(0, i2c_board_info, ARRAY_SIZE(i2c_board_info));
kirkwood_audio_init();
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/arm/mach-s3c64xx/mach-crag6410-module.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ static struct wm8962_pdata wm8962_pdata __initdata = {
0x8000 | WM8962_GPIO_FN_DMICDAT,
WM8962_GPIO_FN_IRQ, /* Open drain mode */
},
.in4_dc_measure = true,
};

static struct wm9081_pdata wm9081_pdata __initdata = {
Expand Down
30 changes: 11 additions & 19 deletions trunk/arch/arm/mach-shmobile/board-ap4evb.c
Original file line number Diff line number Diff line change
Expand Up @@ -745,26 +745,18 @@ static int fsi_hdmi_set_rate(struct device *dev, int rate, int enable)
return ret;
}

static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
{
int ret;

if (is_porta)
ret = fsi_ak4642_set_rate(dev, rate, enable);
else
ret = fsi_hdmi_set_rate(dev, rate, enable);

return ret;
}

static struct sh_fsi_platform_info fsi_info = {
.porta_flags = SH_FSI_BRS_INV,

.portb_flags = SH_FSI_BRS_INV |
SH_FSI_BRM_INV |
SH_FSI_LRS_INV |
SH_FSI_FMT_SPDIF,
.set_rate = fsi_set_rate,
.port_a = {
.flags = SH_FSI_BRS_INV,
.set_rate = fsi_ak4642_set_rate,
},
.port_b = {
.flags = SH_FSI_BRS_INV |
SH_FSI_BRM_INV |
SH_FSI_LRS_INV |
SH_FSI_FMT_SPDIF,
.set_rate = fsi_hdmi_set_rate,
},
};

static struct resource fsi_resources[] = {
Expand Down
18 changes: 8 additions & 10 deletions trunk/arch/arm/mach-shmobile/board-mackerel.c
Original file line number Diff line number Diff line change
Expand Up @@ -901,7 +901,7 @@ static int __fsi_set_round_rate(struct clk *clk, long rate, int enable)
return clk_enable(clk);
}

static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
static int fsi_b_set_rate(struct device *dev, int rate, int enable)
{
struct clk *fsib_clk;
struct clk *fdiv_clk = &sh7372_fsidivb_clk;
Expand All @@ -910,10 +910,6 @@ static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
int ackmd_bpfmd;
int ret;

/* FSIA is slave mode. nothing to do here */
if (is_porta)
return 0;

/* clock start */
switch (rate) {
case 44100:
Expand Down Expand Up @@ -957,14 +953,16 @@ static int fsi_set_rate(struct device *dev, int is_porta, int rate, int enable)
}

static struct sh_fsi_platform_info fsi_info = {
.porta_flags = SH_FSI_BRS_INV,

.portb_flags = SH_FSI_BRS_INV |
.port_a = {
.flags = SH_FSI_BRS_INV,
},
.port_b = {
.flags = SH_FSI_BRS_INV |
SH_FSI_BRM_INV |
SH_FSI_LRS_INV |
SH_FSI_FMT_SPDIF,

.set_rate = fsi_set_rate,
.set_rate = fsi_b_set_rate,
}
};

static struct resource fsi_resources[] = {
Expand Down
6 changes: 6 additions & 0 deletions trunk/arch/mips/jz4740/board-qi_lb60.c
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,11 @@ static struct platform_device qi_lb60_charger_device = {
},
};

/* audio */
static struct platform_device qi_lb60_audio_device = {
.name = "qi-lb60-audio",
.id = -1,
};

static struct platform_device *jz_platform_devices[] __initdata = {
&jz4740_udc_device,
Expand All @@ -434,6 +439,7 @@ static struct platform_device *jz_platform_devices[] __initdata = {
&qi_lb60_gpio_keys,
&qi_lb60_pwm_beeper,
&qi_lb60_charger_device,
&qi_lb60_audio_device,
};

static void __init board_gpio_setup(void)
Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/sh/boards/mach-ecovec24/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,9 @@ static struct platform_device camera_devices[] = {

/* FSI */
static struct sh_fsi_platform_info fsi_info = {
.portb_flags = SH_FSI_BRS_INV,
.port_b = {
.flags = SH_FSI_BRS_INV,
},
};

static struct resource fsi_resources[] = {
Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/sh/boards/mach-se/7724/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,9 @@ static struct platform_device ceu1_device = {
/* FSI */
/* change J20, J21, J22 pin to 1-2 connection to use slave mode */
static struct sh_fsi_platform_info fsi_info = {
.porta_flags = SH_FSI_BRS_INV,
.port_a = {
.flags = SH_FSI_BRS_INV,
},
};

static struct resource fsi_resources[] = {
Expand Down
3 changes: 3 additions & 0 deletions trunk/drivers/base/regmap/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ struct regmap {
const void *reg_defaults_raw;
void *cache;
bool cache_dirty;

struct reg_default *patch;
int patch_regs;
};

struct regcache_ops {
Expand Down
11 changes: 11 additions & 0 deletions trunk/drivers/base/regmap/regcache.c
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,17 @@ int regcache_sync(struct regmap *map)
map->cache_ops->name);
name = map->cache_ops->name;
trace_regcache_sync(map->dev, name, "start");

/* Apply any patch first */
for (i = 0; i < map->patch_regs; i++) {
ret = _regmap_write(map, map->patch[i].reg, map->patch[i].def);
if (ret != 0) {
dev_err(map->dev, "Failed to write %x = %x: %d\n",
map->patch[i].reg, map->patch[i].def, ret);
goto out;
}
}

if (!map->cache_dirty)
goto out;
if (map->cache_ops->sync) {
Expand Down
Loading

0 comments on commit d0a095f

Please sign in to comment.