root/arch/arm/mach-sa1100/lart.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. lart_init
  2. lart_map_io

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * linux/arch/arm/mach-sa1100/lart.c
   4  */
   5 
   6 #include <linux/init.h>
   7 #include <linux/kernel.h>
   8 #include <linux/platform_data/sa11x0-serial.h>
   9 #include <linux/tty.h>
  10 #include <linux/gpio.h>
  11 #include <linux/leds.h>
  12 #include <linux/platform_device.h>
  13 
  14 #include <video/sa1100fb.h>
  15 
  16 #include <mach/hardware.h>
  17 #include <asm/setup.h>
  18 #include <asm/mach-types.h>
  19 #include <asm/page.h>
  20 
  21 #include <asm/mach/arch.h>
  22 #include <asm/mach/map.h>
  23 #include <linux/platform_data/mfd-mcp-sa11x0.h>
  24 #include <mach/irqs.h>
  25 
  26 #include "generic.h"
  27 
  28 static struct mcp_plat_data lart_mcp_data = {
  29         .mccr0          = MCCR0_ADM,
  30         .sclk_rate      = 11981000,
  31 };
  32 
  33 #ifdef LART_GREY_LCD
  34 static struct sa1100fb_mach_info lart_grey_info = {
  35         .pixclock       = 150000,       .bpp            = 4,
  36         .xres           = 320,          .yres           = 240,
  37 
  38         .hsync_len      = 1,            .vsync_len      = 1,
  39         .left_margin    = 4,            .upper_margin   = 0,
  40         .right_margin   = 2,            .lower_margin   = 0,
  41 
  42         .cmap_greyscale = 1,
  43         .sync           = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
  44 
  45         .lccr0          = LCCR0_Mono | LCCR0_Sngl | LCCR0_Pas | LCCR0_4PixMono,
  46         .lccr3          = LCCR3_OutEnH | LCCR3_PixRsEdg | LCCR3_ACBsDiv(512),
  47 };
  48 #endif
  49 #ifdef LART_COLOR_LCD
  50 static struct sa1100fb_mach_info lart_color_info = {
  51         .pixclock       = 150000,       .bpp            = 16,
  52         .xres           = 320,          .yres           = 240,
  53 
  54         .hsync_len      = 2,            .vsync_len      = 3,
  55         .left_margin    = 69,           .upper_margin   = 14,
  56         .right_margin   = 8,            .lower_margin   = 4,
  57 
  58         .lccr0          = LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
  59         .lccr3          = LCCR3_OutEnH | LCCR3_PixFlEdg | LCCR3_ACBsDiv(512),
  60 };
  61 #endif
  62 #ifdef LART_VIDEO_OUT
  63 static struct sa1100fb_mach_info lart_video_info = {
  64         .pixclock       = 39721,        .bpp            = 16,
  65         .xres           = 640,          .yres           = 480,
  66 
  67         .hsync_len      = 95,           .vsync_len      = 2,
  68         .left_margin    = 40,           .upper_margin   = 32,
  69         .right_margin   = 24,           .lower_margin   = 11,
  70 
  71         .sync           = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
  72 
  73         .lccr0          = LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
  74         .lccr3          = LCCR3_OutEnL | LCCR3_PixFlEdg | LCCR3_ACBsDiv(512),
  75 };
  76 #endif
  77 
  78 #ifdef LART_KIT01_LCD
  79 static struct sa1100fb_mach_info lart_kit01_info = {
  80         .pixclock       = 63291,        .bpp            = 16,
  81         .xres           = 640,          .yres           = 480,
  82 
  83         .hsync_len      = 64,           .vsync_len      = 3,
  84         .left_margin    = 122,          .upper_margin   = 45,
  85         .right_margin   = 10,           .lower_margin   = 10,
  86 
  87         .lccr0          = LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
  88         .lccr3          = LCCR3_OutEnH | LCCR3_PixFlEdg
  89 };
  90 #endif
  91 
  92 static void __init lart_init(void)
  93 {
  94         struct sa1100fb_mach_info *inf = NULL;
  95 
  96 #ifdef LART_GREY_LCD
  97         inf = &lart_grey_info;
  98 #endif
  99 #ifdef LART_COLOR_LCD
 100         inf = &lart_color_info;
 101 #endif
 102 #ifdef LART_VIDEO_OUT
 103         inf = &lart_video_info;
 104 #endif
 105 #ifdef LART_KIT01_LCD
 106         inf = &lart_kit01_info;
 107 #endif
 108 
 109         if (inf)
 110                 sa11x0_register_lcd(inf);
 111 
 112         sa11x0_ppc_configure_mcp();
 113         sa11x0_register_mcp(&lart_mcp_data);
 114 }
 115 
 116 static struct map_desc lart_io_desc[] __initdata = {
 117         {       /* main flash memory */
 118                 .virtual        =  0xe8000000,
 119                 .pfn            = __phys_to_pfn(0x00000000),
 120                 .length         = 0x00400000,
 121                 .type           = MT_DEVICE
 122         }, {    /* main flash, alternative location */
 123                 .virtual        =  0xec000000,
 124                 .pfn            = __phys_to_pfn(0x08000000),
 125                 .length         = 0x00400000,
 126                 .type           = MT_DEVICE
 127         }
 128 };
 129 
 130 /* LEDs */
 131 struct gpio_led lart_gpio_leds[] = {
 132         {
 133                 .name                   = "lart:red",
 134                 .default_trigger        = "cpu0",
 135                 .gpio                   = 23,
 136         },
 137 };
 138 
 139 static struct gpio_led_platform_data lart_gpio_led_info = {
 140         .leds           = lart_gpio_leds,
 141         .num_leds       = ARRAY_SIZE(lart_gpio_leds),
 142 };
 143 
 144 static struct platform_device lart_leds = {
 145         .name   = "leds-gpio",
 146         .id     = -1,
 147         .dev    = {
 148                 .platform_data  = &lart_gpio_led_info,
 149         }
 150 };
 151 static void __init lart_map_io(void)
 152 {
 153         sa1100_map_io();
 154         iotable_init(lart_io_desc, ARRAY_SIZE(lart_io_desc));
 155 
 156         sa1100_register_uart(0, 3);
 157         sa1100_register_uart(1, 1);
 158         sa1100_register_uart(2, 2);
 159 
 160         GAFR |= (GPIO_UART_TXD | GPIO_UART_RXD);
 161         GPDR |= GPIO_UART_TXD;
 162         GPDR &= ~GPIO_UART_RXD;
 163         PPAR |= PPAR_UPR;
 164 
 165         platform_device_register(&lart_leds);
 166 }
 167 
 168 MACHINE_START(LART, "LART")
 169         .atag_offset    = 0x100,
 170         .map_io         = lart_map_io,
 171         .nr_irqs        = SA1100_NR_IRQS,
 172         .init_irq       = sa1100_init_irq,
 173         .init_machine   = lart_init,
 174         .init_late      = sa11x0_init_late,
 175         .init_time      = sa1100_timer_init,
 176         .restart        = sa11x0_restart,
 177 MACHINE_END

/* [<][>][^][v][top][bottom][index][help] */