2013-03-29 12:49:37 +04:00
/*
* 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/interrupt.h>
# include <linux/irqchip.h>
# include <linux/kernel.h>
2013-04-23 06:37:05 +04:00
# include <linux/leds.h>
2013-04-08 13:36:22 +04:00
# include <linux/pinctrl/machine.h>
2013-04-23 06:37:05 +04:00
# include <linux/platform_data/gpio-rcar.h>
2013-03-29 12:49:37 +04:00
# include <linux/platform_device.h>
# include <mach/common.h>
# include <mach/r8a7790.h>
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
2013-04-23 06:37:05 +04:00
/* 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 struct gpio_led_platform_data lager_leds_pdata = {
. leds = lager_leds ,
. num_leds = ARRAY_SIZE ( lager_leds ) ,
} ;
2013-04-08 13:36:22 +04:00
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 " ) ,
} ;
2013-03-29 12:49:37 +04:00
static void __init lager_add_standard_devices ( void )
{
r8a7790_clock_init ( ) ;
2013-04-08 13:36:22 +04:00
pinctrl_register_mappings ( lager_pinctrl_map ,
ARRAY_SIZE ( lager_pinctrl_map ) ) ;
r8a7790_pinmux_init ( ) ;
2013-03-29 12:49:37 +04:00
r8a7790_add_standard_devices ( ) ;
2013-04-23 06:37:05 +04:00
platform_device_register_data ( & platform_bus , " leds-gpio " , - 1 ,
& lager_leds_pdata ,
sizeof ( lager_leds_pdata ) ) ;
2013-03-29 12:49:37 +04:00
}
static const char * lager_boards_compat_dt [ ] __initdata = {
" renesas,lager " ,
NULL ,
} ;
DT_MACHINE_START ( LAGER_DT , " lager " )
. init_irq = irqchip_init ,
2013-04-08 05:23:37 +04:00
. init_time = r8a7790_timer_init ,
2013-03-29 12:49:37 +04:00
. init_machine = lager_add_standard_devices ,
. dt_compat = lager_boards_compat_dt ,
MACHINE_END