Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 335716
b: refs/heads/master
c: 0133370
h: refs/heads/master
v: v3
  • Loading branch information
Kishon Vijay Abraham I authored and Tony Lindgren committed Nov 7, 2012
1 parent cfb9dfe commit daae852
Show file tree
Hide file tree
Showing 8 changed files with 108 additions and 19 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: 36e42a323cf0de26bd819448b024d3851fc0d865
refs/heads/master: 0133370f93eae5ed3c0f16d9da2b7add7dda6076
4 changes: 2 additions & 2 deletions trunk/arch/arm/boot/dts/tegra30.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@

pinmux: pinmux {
compatible = "nvidia,tegra30-pinmux";
reg = <0x70000868 0xd4 /* Pad control registers */
0x70003000 0x3e4>; /* Mux registers */
reg = <0x70000868 0xd0 /* Pad control registers */
0x70003000 0x3e0>; /* Mux registers */
};

serial@70006000 {
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/arm/mach-highbank/system.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ void highbank_restart(char mode, const char *cmd)
hignbank_set_pwr_soft_reset();

scu_power_mode(scu_base_addr, SCU_PM_POWEROFF);
while (1)
cpu_do_idle();
cpu_do_idle();
}

8 changes: 1 addition & 7 deletions trunk/arch/arm/mach-pxa/hx4700.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
#include <linux/mfd/asic3.h>
#include <linux/mtd/physmap.h>
#include <linux/pda_power.h>
#include <linux/pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/regulator/driver.h>
#include <linux/regulator/gpio-regulator.h>
Expand Down Expand Up @@ -557,7 +556,7 @@ static struct platform_device hx4700_lcd = {
*/

static struct platform_pwm_backlight_data backlight_data = {
.pwm_id = -1, /* Superseded by pwm_lookup */
.pwm_id = 1,
.max_brightness = 200,
.dft_brightness = 100,
.pwm_period_ns = 30923,
Expand All @@ -572,10 +571,6 @@ static struct platform_device backlight = {
},
};

static struct pwm_lookup hx4700_pwm_lookup[] = {
PWM_LOOKUP("pxa27x-pwm.1", 0, "pwm-backlight", NULL),
};

/*
* USB "Transceiver"
*/
Expand Down Expand Up @@ -877,7 +872,6 @@ static void __init hx4700_init(void)
pxa_set_stuart_info(NULL);

platform_add_devices(devices, ARRAY_SIZE(devices));
pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup));

pxa_set_ficp_info(&ficp_info);
pxa27x_set_i2c_power_info(NULL);
Expand Down
8 changes: 6 additions & 2 deletions trunk/arch/arm/mach-pxa/spitz_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,10 @@ static void spitz_discharge1(int on)
gpio_set_value(SPITZ_GPIO_LED_GREEN, on);
}

static unsigned long gpio18_config = GPIO18_GPIO;
static unsigned long gpio18_config[] = {
GPIO18_RDY,
GPIO18_GPIO,
};

static void spitz_presuspend(void)
{
Expand All @@ -109,7 +112,7 @@ static void spitz_presuspend(void)
PGSR3 &= ~SPITZ_GPIO_G3_STROBE_BIT;
PGSR2 |= GPIO_bit(SPITZ_GPIO_KEY_STROBE0);

pxa2xx_mfp_config(&gpio18_config, 1);
pxa2xx_mfp_config(&gpio18_config[0], 1);
gpio_request_one(18, GPIOF_OUT_INIT_HIGH, "Unknown");
gpio_free(18);

Expand All @@ -128,6 +131,7 @@ static void spitz_presuspend(void)

static void spitz_postsuspend(void)
{
pxa2xx_mfp_config(&gpio18_config[1], 1);
}

static int spitz_should_wakeup(unsigned int resume_on_alarm)
Expand Down
68 changes: 65 additions & 3 deletions trunk/drivers/bus/omap-ocp2scp.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,26 @@
#include <linux/pm_runtime.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_data/omap_ocp2scp.h>

/**
* _count_resources - count for the number of resources
* @res: struct resource *
*
* Count and return the number of resources populated for the device that is
* connected to ocp2scp.
*/
static unsigned _count_resources(struct resource *res)
{
int cnt = 0;

while (res->start != res->end) {
cnt++;
res++;
}

return cnt;
}

static int ocp2scp_remove_devices(struct device *dev, void *c)
{
Expand All @@ -34,20 +54,62 @@ static int ocp2scp_remove_devices(struct device *dev, void *c)

static int __devinit omap_ocp2scp_probe(struct platform_device *pdev)
{
int ret;
struct device_node *np = pdev->dev.of_node;
int ret;
unsigned res_cnt, i;
struct device_node *np = pdev->dev.of_node;
struct platform_device *pdev_child;
struct omap_ocp2scp_platform_data *pdata = pdev->dev.platform_data;
struct omap_ocp2scp_dev *dev;

if (np) {
ret = of_platform_populate(np, NULL, NULL, &pdev->dev);
if (ret) {
dev_err(&pdev->dev, "failed to add resources for ocp2scp child\n");
dev_err(&pdev->dev,
"failed to add resources for ocp2scp child\n");
goto err0;
}
} else if (pdata) {
for (i = 0, dev = *pdata->devices; i < pdata->dev_cnt; i++,
dev++) {
res_cnt = _count_resources(dev->res);

pdev_child = platform_device_alloc(dev->drv_name,
PLATFORM_DEVID_AUTO);
if (!pdev_child) {
dev_err(&pdev->dev,
"failed to allocate mem for ocp2scp child\n");
goto err0;
}

ret = platform_device_add_resources(pdev_child,
dev->res, res_cnt);
if (ret) {
dev_err(&pdev->dev,
"failed to add resources for ocp2scp child\n");
goto err1;
}

pdev_child->dev.parent = &pdev->dev;

ret = platform_device_add(pdev_child);
if (ret) {
dev_err(&pdev->dev,
"failed to register ocp2scp child device\n");
goto err1;
}
}
} else {
dev_err(&pdev->dev, "OCP2SCP initialized without plat data\n");
return -EINVAL;
}

pm_runtime_enable(&pdev->dev);

return 0;

err1:
platform_device_put(pdev_child);

err0:
device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices);

Expand Down
3 changes: 1 addition & 2 deletions trunk/drivers/irqchip/irq-bcm2835.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,7 @@ static int __init armctrl_of_init(struct device_node *node,
}

static struct of_device_id irq_of_match[] __initconst = {
{ .compatible = "brcm,bcm2835-armctrl-ic", .data = armctrl_of_init },
{ }
{ .compatible = "brcm,bcm2835-armctrl-ic", .data = armctrl_of_init }
};

void __init bcm2835_init_irq(void)
Expand Down
31 changes: 31 additions & 0 deletions trunk/include/linux/platform_data/omap_ocp2scp.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*
* omap_ocp2scp.h -- ocp2scp header file
*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Author: Kishon Vijay Abraham I <kishon@ti.com>
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/

#ifndef __DRIVERS_OMAP_OCP2SCP_H
#define __DRIVERS_OMAP_OCP2SCP_H

struct omap_ocp2scp_dev {
const char *drv_name;
struct resource *res;
};

struct omap_ocp2scp_platform_data {
int dev_cnt;
struct omap_ocp2scp_dev **devices;
};
#endif /* __DRIVERS_OMAP_OCP2SCP_H */

0 comments on commit daae852

Please sign in to comment.