mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
Merge branches 'sh/urgent' and 'sh/regulator' into sh-latest
This commit is contained in:
commit
a3fd869a64
@ -57,6 +57,7 @@ config SH_7724_SOLUTION_ENGINE
|
||||
depends on CPU_SUBTYPE_SH7724
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select SND_SOC_AK4642 if SND_SIMPLE_CARD
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Select 7724 SolutionEngine if configuring for a Hitachi SH7724
|
||||
evaluation board.
|
||||
@ -140,6 +141,7 @@ config SH_RSK
|
||||
bool "Renesas Starter Kit"
|
||||
depends on CPU_SUBTYPE_SH7201 || CPU_SUBTYPE_SH7203 || \
|
||||
CPU_SUBTYPE_SH7264 || CPU_SUBTYPE_SH7269
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Select this option if configuring for any of the RSK+ MCU
|
||||
evaluation platforms.
|
||||
@ -159,6 +161,7 @@ config SH_SDK7786
|
||||
select NO_IOPORT if !PCI
|
||||
select ARCH_WANT_OPTIONAL_GPIOLIB
|
||||
select HAVE_SRAM_POOL
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Select SDK7786 if configuring for a Renesas Technology Europe
|
||||
SH7786-65nm board.
|
||||
@ -173,6 +176,7 @@ config SH_SH7757LCR
|
||||
bool "SH7757LCR"
|
||||
depends on CPU_SUBTYPE_SH7757
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
|
||||
config SH_SH7785LCR
|
||||
bool "SH7785LCR"
|
||||
@ -206,6 +210,7 @@ config SH_MIGOR
|
||||
bool "Migo-R"
|
||||
depends on CPU_SUBTYPE_SH7722
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Select Migo-R if configuring for the SH7722 Migo-R platform
|
||||
by Renesas System Solutions Asia Pte. Ltd.
|
||||
@ -214,6 +219,7 @@ config SH_AP325RXA
|
||||
bool "AP-325RXA"
|
||||
depends on CPU_SUBTYPE_SH7723
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Renesas "AP-325RXA" support.
|
||||
Compatible with ALGO SYSTEM CO.,LTD. "AP-320A"
|
||||
@ -222,6 +228,7 @@ config SH_KFR2R09
|
||||
bool "KFR2R09"
|
||||
depends on CPU_SUBTYPE_SH7724
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
"Kit For R2R for 2009" support.
|
||||
|
||||
@ -230,6 +237,7 @@ config SH_ECOVEC
|
||||
depends on CPU_SUBTYPE_SH7724
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select SND_SOC_DA7210 if SND_SIMPLE_CARD
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Renesas "R0P7724LC0011/21RL (EcoVec)" support.
|
||||
|
||||
@ -305,6 +313,7 @@ config SH_MAGIC_PANEL_R2
|
||||
bool "Magic Panel R2"
|
||||
depends on CPU_SUBTYPE_SH7720
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
help
|
||||
Select Magic Panel R2 if configuring for Magic Panel R2.
|
||||
|
||||
@ -316,6 +325,7 @@ config SH_CAYMAN
|
||||
config SH_POLARIS
|
||||
bool "SMSC Polaris"
|
||||
select CPU_HAS_IPR_IRQ
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
depends on CPU_SUBTYPE_SH7709
|
||||
help
|
||||
Select if configuring for an SMSC Polaris development board
|
||||
@ -323,6 +333,7 @@ config SH_POLARIS
|
||||
config SH_SH2007
|
||||
bool "SH-2007 board"
|
||||
select NO_IOPORT
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
depends on CPU_SUBTYPE_SH7780
|
||||
help
|
||||
SH-2007 is a single-board computer based around SH7780 chip
|
||||
@ -334,6 +345,7 @@ config SH_SH2007
|
||||
config SH_APSH4A3A
|
||||
bool "AP-SH4A-3A"
|
||||
select SH_ALPHA_BOARD
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
depends on CPU_SUBTYPE_SH7785
|
||||
help
|
||||
Select AP-SH4A-3A if configuring for an ALPHAPROJECT AP-SH4A-3A.
|
||||
@ -342,6 +354,7 @@ config SH_APSH4AD0A
|
||||
bool "AP-SH4AD-0A"
|
||||
select SH_ALPHA_BOARD
|
||||
select SYS_SUPPORTS_PCI
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
depends on CPU_SUBTYPE_SH7786
|
||||
help
|
||||
Select AP-SH4AD-0A if configuring for an ALPHAPROJECT AP-SH4AD-0A.
|
||||
|
@ -13,6 +13,8 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
@ -66,6 +68,12 @@ static struct platform_device nor_flash_device = {
|
||||
.resource = nor_flash_resources,
|
||||
};
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
static struct resource smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.name = "smsc911x-memory",
|
||||
@ -105,6 +113,8 @@ static struct platform_device *apsh4a3a_devices[] __initdata = {
|
||||
|
||||
static int __init apsh4a3a_devices_setup(void)
|
||||
{
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
return platform_add_devices(apsh4a3a_devices,
|
||||
ARRAY_SIZE(apsh4a3a_devices));
|
||||
}
|
||||
|
@ -12,12 +12,20 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/clk.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/sizes.h>
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
static struct resource smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.name = "smsc911x-memory",
|
||||
@ -56,6 +64,8 @@ static struct platform_device *apsh4ad0a_devices[] __initdata = {
|
||||
|
||||
static int __init apsh4ad0a_devices_setup(void)
|
||||
{
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
return platform_add_devices(apsh4ad0a_devices,
|
||||
ARRAY_SIZE(apsh4ad0a_devices));
|
||||
}
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
@ -24,6 +26,12 @@
|
||||
#include <asm/heartbeat.h>
|
||||
#include <cpu/sh7720.h>
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
#define LAN9115_READY (__raw_readl(0xA8000084UL) & 0x00000001UL)
|
||||
|
||||
/* Wait until reset finished. Timeout is 100ms. */
|
||||
@ -348,6 +356,8 @@ static struct platform_device *mpr2_devices[] __initdata = {
|
||||
|
||||
static int __init mpr2_devices_setup(void)
|
||||
{
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
return platform_add_devices(mpr2_devices, ARRAY_SIZE(mpr2_devices));
|
||||
}
|
||||
device_initcall(mpr2_devices_setup);
|
||||
|
@ -9,6 +9,8 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/irq.h>
|
||||
@ -22,6 +24,12 @@
|
||||
#define AREA5_WAIT_CTRL (0x1C00)
|
||||
#define WAIT_STATES_10 (0x7)
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
|
||||
};
|
||||
|
||||
static struct resource smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.name = "smsc911x-memory",
|
||||
@ -88,6 +96,8 @@ static int __init polaris_initialise(void)
|
||||
|
||||
printk(KERN_INFO "Configuring Polaris external bus\n");
|
||||
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
/* Configure area 5 with 2 wait states */
|
||||
wcr = __raw_readw(WCR2);
|
||||
wcr &= (~AREA5_WAIT_CTRL);
|
||||
|
@ -6,6 +6,8 @@
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/ata_platform.h>
|
||||
@ -13,6 +15,14 @@
|
||||
#include <asm/machvec.h>
|
||||
#include <mach/sh2007.h>
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x.1"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x.1"),
|
||||
};
|
||||
|
||||
struct smsc911x_platform_config smc911x_info = {
|
||||
.flags = SMSC911X_USE_32BIT,
|
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||
@ -98,6 +108,8 @@ static struct platform_device *sh2007_devices[] __initdata = {
|
||||
|
||||
static int __init sh2007_io_init(void)
|
||||
{
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
platform_add_devices(sh2007_devices, ARRAY_SIZE(sh2007_devices));
|
||||
return 0;
|
||||
}
|
||||
|
@ -12,6 +12,8 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/flash.h>
|
||||
#include <linux/io.h>
|
||||
@ -199,6 +201,15 @@ static struct platform_device sh7757_eth_giga1_device = {
|
||||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI0, MMCIF */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mmcif.0"),
|
||||
};
|
||||
|
||||
/* SH_MMCIF */
|
||||
static struct resource sh_mmcif_resources[] = {
|
||||
[0] = {
|
||||
@ -329,6 +340,9 @@ static struct spi_board_info spi_board_info[] = {
|
||||
|
||||
static int __init sh7757lcr_devices_setup(void)
|
||||
{
|
||||
regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
|
||||
/* RGMII (PTA) */
|
||||
gpio_request(GPIO_FN_ET0_MDC, NULL);
|
||||
gpio_request(GPIO_FN_ET0_MDIO, NULL);
|
||||
|
@ -20,6 +20,8 @@
|
||||
#include <linux/mtd/sh_flctl.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/videodev2.h>
|
||||
@ -34,6 +36,12 @@
|
||||
#include <asm/suspend.h>
|
||||
#include <cpu/sh7723.h>
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
static struct smsc911x_platform_config smsc911x_config = {
|
||||
.phy_interface = PHY_INTERFACE_MODE_MII,
|
||||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
|
||||
@ -423,6 +431,15 @@ static struct platform_device ceu_device = {
|
||||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulators to be used by SDHI0, SDHI1 */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
|
||||
};
|
||||
|
||||
static struct resource sdhi0_cn3_resources[] = {
|
||||
[0] = {
|
||||
.name = "SDHI0",
|
||||
@ -544,6 +561,10 @@ static int __init ap325rxa_devices_setup(void)
|
||||
&ap325rxa_sdram_leave_start,
|
||||
&ap325rxa_sdram_leave_end);
|
||||
|
||||
regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
regulator_register_fixed(1, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
/* LD3 and LD4 LEDs */
|
||||
gpio_request(GPIO_PTX5, NULL); /* RUN */
|
||||
gpio_direction_output(GPIO_PTX5, 1);
|
||||
|
@ -19,6 +19,8 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/usb/r8a66597.h>
|
||||
#include <linux/usb/renesas_usbhs.h>
|
||||
#include <linux/i2c.h>
|
||||
@ -518,10 +520,86 @@ static struct i2c_board_info ts_i2c_clients = {
|
||||
.irq = IRQ0,
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply cn12_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mmcif.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mmcif.0"),
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data cn12_power_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(cn12_power_consumers),
|
||||
.consumer_supplies = cn12_power_consumers,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config cn12_power_info = {
|
||||
.supply_name = "CN12 SD/MMC Vdd",
|
||||
.microvolts = 3300000,
|
||||
.gpio = GPIO_PTB7,
|
||||
.enable_high = 1,
|
||||
.init_data = &cn12_power_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device cn12_power = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &cn12_power_info,
|
||||
},
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MMC_SDHI) || defined(CONFIG_MMC_SDHI_MODULE)
|
||||
/* SDHI0 */
|
||||
static struct regulator_consumer_supply sdhi0_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data sdhi0_power_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(sdhi0_power_consumers),
|
||||
.consumer_supplies = sdhi0_power_consumers,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config sdhi0_power_info = {
|
||||
.supply_name = "CN11 SD/MMC Vdd",
|
||||
.microvolts = 3300000,
|
||||
.gpio = GPIO_PTB6,
|
||||
.enable_high = 1,
|
||||
.init_data = &sdhi0_power_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi0_power = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &sdhi0_power_info,
|
||||
},
|
||||
};
|
||||
|
||||
static void sdhi0_set_pwr(struct platform_device *pdev, int state)
|
||||
{
|
||||
static int power_gpio = -EINVAL;
|
||||
|
||||
if (power_gpio < 0) {
|
||||
int ret = gpio_request(GPIO_PTB6, NULL);
|
||||
if (!ret) {
|
||||
power_gpio = GPIO_PTB6;
|
||||
gpio_direction_output(power_gpio, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Toggle the GPIO regardless, whether we managed to grab it above or
|
||||
* the fixed regulator driver did.
|
||||
*/
|
||||
gpio_set_value(GPIO_PTB6, state);
|
||||
}
|
||||
|
||||
@ -562,13 +640,27 @@ static struct platform_device sdhi0_device = {
|
||||
},
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
|
||||
/* SDHI1 */
|
||||
static void sdhi1_set_pwr(struct platform_device *pdev, int state)
|
||||
static void cn12_set_pwr(struct platform_device *pdev, int state)
|
||||
{
|
||||
static int power_gpio = -EINVAL;
|
||||
|
||||
if (power_gpio < 0) {
|
||||
int ret = gpio_request(GPIO_PTB7, NULL);
|
||||
if (!ret) {
|
||||
power_gpio = GPIO_PTB7;
|
||||
gpio_direction_output(power_gpio, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Toggle the GPIO regardless, whether we managed to grab it above or
|
||||
* the fixed regulator driver did.
|
||||
*/
|
||||
gpio_set_value(GPIO_PTB7, state);
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
|
||||
/* SDHI1 */
|
||||
static int sdhi1_get_cd(struct platform_device *pdev)
|
||||
{
|
||||
return !gpio_get_value(GPIO_PTW7);
|
||||
@ -579,7 +671,7 @@ static struct sh_mobile_sdhi_info sdhi1_info = {
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ | MMC_CAP_POWER_OFF_CARD |
|
||||
MMC_CAP_NEEDS_POLL,
|
||||
.set_pwr = sdhi1_set_pwr,
|
||||
.set_pwr = cn12_set_pwr,
|
||||
.get_cd = sdhi1_get_cd,
|
||||
};
|
||||
|
||||
@ -899,14 +991,9 @@ static struct platform_device vou_device = {
|
||||
|
||||
#if defined(CONFIG_MMC_SH_MMCIF) || defined(CONFIG_MMC_SH_MMCIF_MODULE)
|
||||
/* SH_MMCIF */
|
||||
static void mmcif_set_pwr(struct platform_device *pdev, int state)
|
||||
{
|
||||
gpio_set_value(GPIO_PTB7, state);
|
||||
}
|
||||
|
||||
static void mmcif_down_pwr(struct platform_device *pdev)
|
||||
{
|
||||
gpio_set_value(GPIO_PTB7, 0);
|
||||
cn12_set_pwr(pdev, 0);
|
||||
}
|
||||
|
||||
static struct resource sh_mmcif_resources[] = {
|
||||
@ -929,7 +1016,7 @@ static struct resource sh_mmcif_resources[] = {
|
||||
};
|
||||
|
||||
static struct sh_mmcif_plat_data sh_mmcif_plat = {
|
||||
.set_pwr = mmcif_set_pwr,
|
||||
.set_pwr = cn12_set_pwr,
|
||||
.down_pwr = mmcif_down_pwr,
|
||||
.sup_pclk = 0, /* SH7724: Max Pclk/2 */
|
||||
.caps = MMC_CAP_4_BIT_DATA |
|
||||
@ -960,7 +1047,9 @@ static struct platform_device *ecovec_devices[] __initdata = {
|
||||
&ceu0_device,
|
||||
&ceu1_device,
|
||||
&keysc_device,
|
||||
&cn12_power,
|
||||
#if defined(CONFIG_MMC_SDHI) || defined(CONFIG_MMC_SDHI_MODULE)
|
||||
&sdhi0_power,
|
||||
&sdhi0_device,
|
||||
#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
|
||||
&sdhi1_device,
|
||||
@ -1258,8 +1347,6 @@ static int __init arch_setup(void)
|
||||
gpio_request(GPIO_FN_SDHI0D2, NULL);
|
||||
gpio_request(GPIO_FN_SDHI0D1, NULL);
|
||||
gpio_request(GPIO_FN_SDHI0D0, NULL);
|
||||
gpio_request(GPIO_PTB6, NULL);
|
||||
gpio_direction_output(GPIO_PTB6, 0);
|
||||
#else
|
||||
/* enable MSIOF0 on CN11 (needs DS2.4 set to OFF) */
|
||||
gpio_request(GPIO_FN_MSIOF0_TXD, NULL);
|
||||
@ -1288,8 +1375,6 @@ static int __init arch_setup(void)
|
||||
gpio_request(GPIO_FN_MMC_D0, NULL);
|
||||
gpio_request(GPIO_FN_MMC_CLK, NULL);
|
||||
gpio_request(GPIO_FN_MMC_CMD, NULL);
|
||||
gpio_request(GPIO_PTB7, NULL);
|
||||
gpio_direction_output(GPIO_PTB7, 0);
|
||||
|
||||
cn12_enabled = true;
|
||||
#elif defined(CONFIG_MMC_SDHI) || defined(CONFIG_MMC_SDHI_MODULE)
|
||||
@ -1301,8 +1386,6 @@ static int __init arch_setup(void)
|
||||
gpio_request(GPIO_FN_SDHI1D2, NULL);
|
||||
gpio_request(GPIO_FN_SDHI1D1, NULL);
|
||||
gpio_request(GPIO_FN_SDHI1D0, NULL);
|
||||
gpio_request(GPIO_PTB7, NULL);
|
||||
gpio_direction_output(GPIO_PTB7, 0);
|
||||
|
||||
/* Card-detect, used on CN12 with SDHI1 */
|
||||
gpio_request(GPIO_PTW7, NULL);
|
||||
|
@ -21,6 +21,8 @@
|
||||
#include <linux/input.h>
|
||||
#include <linux/input/sh_keysc.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/usb/r8a66597.h>
|
||||
#include <linux/videodev2.h>
|
||||
#include <linux/sh_intc.h>
|
||||
@ -341,6 +343,13 @@ static struct platform_device kfr2r09_camera = {
|
||||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI0 */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct resource kfr2r09_sh_sdhi0_resources[] = {
|
||||
[0] = {
|
||||
.name = "SDHI0",
|
||||
@ -523,6 +532,9 @@ static int __init kfr2r09_devices_setup(void)
|
||||
&kfr2r09_sdram_leave_start,
|
||||
&kfr2r09_sdram_leave_end);
|
||||
|
||||
regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
|
||||
/* enable SCIF1 serial port for YC401 console support */
|
||||
gpio_request(GPIO_FN_SCIF1_RXD, NULL);
|
||||
gpio_request(GPIO_FN_SCIF1_TXD, NULL);
|
||||
|
@ -17,6 +17,8 @@
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/clk.h>
|
||||
@ -386,6 +388,13 @@ static struct platform_device migor_ceu_device = {
|
||||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI0 */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct resource sdhi_cn9_resources[] = {
|
||||
[0] = {
|
||||
.name = "SDHI",
|
||||
@ -498,6 +507,10 @@ static int __init migor_devices_setup(void)
|
||||
&migor_sdram_enter_end,
|
||||
&migor_sdram_leave_start,
|
||||
&migor_sdram_leave_end);
|
||||
|
||||
regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
|
||||
/* Let D11 LED show STATUS0 */
|
||||
gpio_request(GPIO_FN_STATUS0, NULL);
|
||||
|
||||
|
@ -16,9 +16,17 @@
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/map.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
static const char *part_probes[] = { "cmdlinepart", NULL };
|
||||
|
||||
static struct mtd_partition rsk_partitions[] = {
|
||||
@ -67,6 +75,8 @@ static struct platform_device *rsk_devices[] __initdata = {
|
||||
|
||||
static int __init rsk_devices_setup(void)
|
||||
{
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
return platform_add_devices(rsk_devices,
|
||||
ARRAY_SIZE(rsk_devices));
|
||||
}
|
||||
|
@ -11,6 +11,8 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/irq.h>
|
||||
@ -38,6 +40,12 @@ static struct platform_device heartbeat_device = {
|
||||
.resource = &heartbeat_resource,
|
||||
};
|
||||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
};
|
||||
|
||||
static struct resource smsc911x_resources[] = {
|
||||
[0] = {
|
||||
.name = "smsc911x-memory",
|
||||
@ -236,6 +244,8 @@ static void __init sdk7786_setup(char **cmdline_p)
|
||||
{
|
||||
pr_info("Renesas Technology Europe SDK7786 support:\n");
|
||||
|
||||
regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
sdk7786_fpga_init();
|
||||
sdk7786_nmi_init();
|
||||
|
||||
|
@ -18,6 +18,8 @@
|
||||
#include <linux/mmc/sh_mobile_sdhi.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/smc91x.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/input.h>
|
||||
@ -454,6 +456,15 @@ static struct platform_device sh7724_usb1_gadget_device = {
|
||||
.resource = sh7724_usb1_gadget_resources,
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI0, SDHI1 */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
|
||||
};
|
||||
|
||||
static struct resource sdhi0_cn7_resources[] = {
|
||||
[0] = {
|
||||
.name = "SDHI0",
|
||||
@ -684,6 +695,10 @@ static int __init devices_setup(void)
|
||||
&ms7724se_sdram_enter_end,
|
||||
&ms7724se_sdram_leave_start,
|
||||
&ms7724se_sdram_leave_end);
|
||||
|
||||
regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
|
||||
ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
|
||||
|
||||
/* Reset Release */
|
||||
fpga_out = __raw_readw(FPGA_OUT);
|
||||
/* bit4: NTSC_PDN, bit5: NTSC_RESET */
|
||||
|
Loading…
Reference in New Issue
Block a user