 44598f98b9
			
		
	
	
	44598f98b9
	
	
	
		
			
			Board updates for 3.12. Again, a bit of domain overlap with SoC and DT branches,
 but most of this is around legacy code and board support. We've found that
 platform maintainers have a hard time separating all of these out and might
 move towards fewer branches for next release.
 
 - Removal of a number of Marvell Kirkwood board files, since contents
   is now common and mostly configured via DT.
 - Device-tree updates for Marvell Dove, including irqchip and clocksource
   setup.
 - Defconfig updates. Gotta go somewhere. One new one for Renesas Lager.
 - New backlight drivers for backlights used on Renesas shmobile platforms.
 - Removal of Renesas leds driver.
 - Shuffling of some of the new Broadcom platforms to give room for others in
   the same mach directory. More in 2.13.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iQIcBAABAgAGBQJSKhrfAAoJEIwa5zzehBx3OOAQAJCWhoYaHvWmyAf+xCOQNpX2
 YgAngENW04VpHFOyn6BtoGv6+5JypdB2TmK3GHHlVJd1Im5mD1wgm8hAfgyV8lQ4
 UeJULdA2HZAstKeTirO65BIyUb5QIrWakF24ccfIfg2xeScM8FV0m8cmzeo3fYAf
 DmmeoSCmvTdu/cDWBNlsQZ/as8qCQwyF+5kZg+SMl1btA1Publu2I5lDE02TH46d
 sc5mN+ihw0JG62EJV7pov6uVyeFLExoTbrNfQZ4rixmKkMDS/jq5ZbBS5c0i8ULF
 s1UMSZtYTcUO9rAPv3+MOIc7fq7nKo9lLuwMrA1HHUEDJ2BEi8DIp99F+ZYm/MSL
 WpVxYNwOobPcMJBYGR2fy4GgpIyWB285GgrBUxcq7t0Xi4uBbptwjLhDE4d7LREV
 8guW251R+OEVPYcwFctsubnox0MViyC3CQ1FaAAdtTjpSKomlhk/yaxaQ9nGrxls
 QCZgXHWm4Ir3QYv8XfOn0X9vdP81EnX11SiwtrRSJ71QMs814nB8NdPDqU4VHsw8
 exKmqjq/Lt+F9Kpxn/FevNNuYOdefZNQi00yl3ERchdIGdvRwE/0yA0D69mpwIVr
 E41UwvH3g43vazCo2PMdWPWuFlpGMR3iZ4pXnDLH/w33ppfJWfokYwKSRQ/mu/MN
 LMjkwoZn1X+fZzNSh9/G
 =EGua
 -----END PGP SIGNATURE-----
Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC board updates from Olof Johansson:
 "Board updates for 3.12.  Again, a bit of domain overlap with SoC and
  DT branches, but most of this is around legacy code and board support.
  We've found that platform maintainers have a hard time separating all
  of these out and might move towards fewer branches for next release.
   - Removal of a number of Marvell Kirkwood board files, since contents
     is now common and mostly configured via DT.
   - Device-tree updates for Marvell Dove, including irqchip and
     clocksource setup.
   - Defconfig updates.  Gotta go somewhere.  One new one for Renesas
     Lager.
   - New backlight drivers for backlights used on Renesas shmobile
     platforms.
   - Removal of Renesas leds driver.
   - Shuffling of some of the new Broadcom platforms to give room for
     others in the same mach directory.  More in 3.13"
* tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (67 commits)
  mmc: sdhci-bcm-kona: Staticize sdhci_bcm_kona_card_event
  mmc: sdhci-bcm-kona: Remove unneeded version.h inclusion
  ARM: bcm: Make secure API call optional
  ARM: DT: binding fixup to align with vendor-prefixes.txt (drivers)
  ARM: mmc: fix NONREMOVABLE test in sdhci-bcm-kona
  ARM: bcm: Rename board_bcm
  mmc: sdhci-bcm-kona: make linker-section warning go away
  ARM: tegra: defconfig updates
  ARM: dove: add initial DT file for Globalscale D2Plug
  ARM: dove: add GPIO IR receiver node to SolidRun CuBox
  ARM: dove: add common pinmux functions to DT
  ARM: dove: add cpu device tree node
  ARM: dove: update dove_defconfig with SI5351, PCI, and xHCI
  arch/arm/mach-kirkwood: Avoid using ARRAY_AND_SIZE(e) as a function argument
  ARM: kirkwood: fix DT building and update defconfig
  ARM: kirkwood: Remove all remaining trace of DNS-320/325 platform code
  ARM: configs: disable DEBUG_LL in bcm_defconfig
  ARM: bcm281xx: Board specific reboot code
  ARM bcm281xx: Turn on socket & network support.
  ARM: bcm281xx: Turn on L2 cache.
  ...
		
	
			
		
			
				
	
	
		
			169 lines
		
	
	
	
		
			5.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
	
		
			5.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Lager board support
 | |
|  *
 | |
|  * Copyright (C) 2013  Renesas Solutions Corp.
 | |
|  * Copyright (C) 2013  Magnus Damm
 | |
|  *
 | |
|  * 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; version 2 of the License.
 | |
|  *
 | |
|  * 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.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software
 | |
|  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 | |
|  */
 | |
| 
 | |
| #include <linux/gpio.h>
 | |
| #include <linux/gpio_keys.h>
 | |
| #include <linux/input.h>
 | |
| #include <linux/interrupt.h>
 | |
| #include <linux/kernel.h>
 | |
| #include <linux/leds.h>
 | |
| #include <linux/mmc/host.h>
 | |
| #include <linux/mmc/sh_mmcif.h>
 | |
| #include <linux/pinctrl/machine.h>
 | |
| #include <linux/platform_data/gpio-rcar.h>
 | |
| #include <linux/platform_device.h>
 | |
| #include <linux/regulator/fixed.h>
 | |
| #include <linux/regulator/machine.h>
 | |
| #include <linux/sh_eth.h>
 | |
| #include <mach/common.h>
 | |
| #include <mach/irqs.h>
 | |
| #include <mach/r8a7790.h>
 | |
| #include <asm/mach-types.h>
 | |
| #include <asm/mach/arch.h>
 | |
| 
 | |
| /* LEDS */
 | |
| static struct gpio_led lager_leds[] = {
 | |
| 	{
 | |
| 		.name		= "led8",
 | |
| 		.gpio		= RCAR_GP_PIN(5, 17),
 | |
| 		.default_state	= LEDS_GPIO_DEFSTATE_ON,
 | |
| 	}, {
 | |
| 		.name		= "led7",
 | |
| 		.gpio		= RCAR_GP_PIN(4, 23),
 | |
| 		.default_state	= LEDS_GPIO_DEFSTATE_ON,
 | |
| 	}, {
 | |
| 		.name		= "led6",
 | |
| 		.gpio		= RCAR_GP_PIN(4, 22),
 | |
| 		.default_state	= LEDS_GPIO_DEFSTATE_ON,
 | |
| 	},
 | |
| };
 | |
| 
 | |
| static __initdata struct gpio_led_platform_data lager_leds_pdata = {
 | |
| 	.leds		= lager_leds,
 | |
| 	.num_leds	= ARRAY_SIZE(lager_leds),
 | |
| };
 | |
| 
 | |
| /* GPIO KEY */
 | |
| #define GPIO_KEY(c, g, d, ...) \
 | |
| 	{ .code = c, .gpio = g, .desc = d, .active_low = 1 }
 | |
| 
 | |
| static struct gpio_keys_button gpio_buttons[] = {
 | |
| 	GPIO_KEY(KEY_4,		RCAR_GP_PIN(1, 28),	"SW2-pin4"),
 | |
| 	GPIO_KEY(KEY_3,		RCAR_GP_PIN(1, 26),	"SW2-pin3"),
 | |
| 	GPIO_KEY(KEY_2,		RCAR_GP_PIN(1, 24),	"SW2-pin2"),
 | |
| 	GPIO_KEY(KEY_1,		RCAR_GP_PIN(1, 14),	"SW2-pin1"),
 | |
| };
 | |
| 
 | |
| static __initdata struct gpio_keys_platform_data lager_keys_pdata = {
 | |
| 	.buttons	= gpio_buttons,
 | |
| 	.nbuttons	= ARRAY_SIZE(gpio_buttons),
 | |
| };
 | |
| 
 | |
| /* Fixed 3.3V regulator to be used by MMCIF */
 | |
| static struct regulator_consumer_supply fixed3v3_power_consumers[] =
 | |
| {
 | |
| 	REGULATOR_SUPPLY("vmmc", "sh_mmcif.1"),
 | |
| };
 | |
| 
 | |
| /* MMCIF */
 | |
| static struct sh_mmcif_plat_data mmcif1_pdata __initdata = {
 | |
| 	.caps		= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
 | |
| };
 | |
| 
 | |
| static struct resource mmcif1_resources[] __initdata = {
 | |
| 	DEFINE_RES_MEM_NAMED(0xee220000, 0x80, "MMCIF1"),
 | |
| 	DEFINE_RES_IRQ(gic_spi(170)),
 | |
| };
 | |
| 
 | |
| /* Ether */
 | |
| static struct sh_eth_plat_data ether_pdata __initdata = {
 | |
| 	.phy			= 0x1,
 | |
| 	.edmac_endian		= EDMAC_LITTLE_ENDIAN,
 | |
| 	.register_type		= SH_ETH_REG_FAST_RCAR,
 | |
| 	.phy_interface		= PHY_INTERFACE_MODE_RMII,
 | |
| 	.ether_link_active_low	= 1,
 | |
| };
 | |
| 
 | |
| static struct resource ether_resources[] __initdata = {
 | |
| 	DEFINE_RES_MEM(0xee700000, 0x400),
 | |
| 	DEFINE_RES_IRQ(gic_spi(162)),
 | |
| };
 | |
| 
 | |
| static const struct pinctrl_map lager_pinctrl_map[] = {
 | |
| 	/* SCIF0 (CN19: DEBUG SERIAL0) */
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7790",
 | |
| 				  "scif0_data", "scif0"),
 | |
| 	/* SCIF1 (CN20: DEBUG SERIAL1) */
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.7", "pfc-r8a7790",
 | |
| 				  "scif1_data", "scif1"),
 | |
| 	/* MMCIF1 */
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.1", "pfc-r8a7790",
 | |
| 				  "mmc1_data8", "mmc1"),
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("sh_mmcif.1", "pfc-r8a7790",
 | |
| 				  "mmc1_ctrl", "mmc1"),
 | |
| 	/* Ether */
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-ether", "pfc-r8a7790",
 | |
| 				  "eth_link", "eth"),
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-ether", "pfc-r8a7790",
 | |
| 				  "eth_mdio", "eth"),
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-ether", "pfc-r8a7790",
 | |
| 				  "eth_rmii", "eth"),
 | |
| 	PIN_MAP_MUX_GROUP_DEFAULT("r8a7790-ether", "pfc-r8a7790",
 | |
| 				  "intc_irq0", "intc"),
 | |
| };
 | |
| 
 | |
| static void __init lager_add_standard_devices(void)
 | |
| {
 | |
| 	r8a7790_clock_init();
 | |
| 
 | |
| 	pinctrl_register_mappings(lager_pinctrl_map,
 | |
| 				  ARRAY_SIZE(lager_pinctrl_map));
 | |
| 	r8a7790_pinmux_init();
 | |
| 
 | |
| 	r8a7790_add_standard_devices();
 | |
| 	platform_device_register_data(&platform_bus, "leds-gpio", -1,
 | |
| 				      &lager_leds_pdata,
 | |
| 				      sizeof(lager_leds_pdata));
 | |
| 	platform_device_register_data(&platform_bus, "gpio-keys", -1,
 | |
| 				      &lager_keys_pdata,
 | |
| 				      sizeof(lager_keys_pdata));
 | |
| 	regulator_register_always_on(0, "fixed-3.3V", fixed3v3_power_consumers,
 | |
| 				     ARRAY_SIZE(fixed3v3_power_consumers), 3300000);
 | |
| 	platform_device_register_resndata(&platform_bus, "sh_mmcif", 1,
 | |
| 					  mmcif1_resources, ARRAY_SIZE(mmcif1_resources),
 | |
| 					  &mmcif1_pdata, sizeof(mmcif1_pdata));
 | |
| 
 | |
| 	platform_device_register_resndata(&platform_bus, "r8a7790-ether", -1,
 | |
| 					  ether_resources,
 | |
| 					  ARRAY_SIZE(ether_resources),
 | |
| 					  ðer_pdata, sizeof(ether_pdata));
 | |
| }
 | |
| 
 | |
| static const char *lager_boards_compat_dt[] __initdata = {
 | |
| 	"renesas,lager",
 | |
| 	NULL,
 | |
| };
 | |
| 
 | |
| DT_MACHINE_START(LAGER_DT, "lager")
 | |
| 	.init_early	= r8a7790_init_delay,
 | |
| 	.init_time	= r8a7790_timer_init,
 | |
| 	.init_machine	= lager_add_standard_devices,
 | |
| 	.dt_compat	= lager_boards_compat_dt,
 | |
| MACHINE_END
 |