cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

setup.c (2058B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 *
      4 * linux/arch/sh/boards/se/7206/setup.c
      5 *
      6 * Copyright (C) 2006  Yoshinori Sato
      7 * Copyright (C) 2007 - 2008  Paul Mundt
      8 *
      9 * Hitachi 7206 SolutionEngine Support.
     10 */
     11#include <linux/init.h>
     12#include <linux/platform_device.h>
     13#include <linux/smc91x.h>
     14#include <mach-se/mach/se7206.h>
     15#include <asm/io.h>
     16#include <asm/machvec.h>
     17#include <asm/heartbeat.h>
     18
     19static struct resource smc91x_resources[] = {
     20	[0] = {
     21		.name		= "smc91x-regs",
     22		.start		= PA_SMSC + 0x300,
     23		.end		= PA_SMSC + 0x300 + 0x020 - 1,
     24		.flags		= IORESOURCE_MEM,
     25	},
     26	[1] = {
     27		.start		= 64,
     28		.end		= 64,
     29		.flags		= IORESOURCE_IRQ,
     30	},
     31};
     32
     33static struct smc91x_platdata smc91x_info = {
     34	.flags	= SMC91X_USE_16BIT,
     35};
     36
     37static struct platform_device smc91x_device = {
     38	.name		= "smc91x",
     39	.id		= -1,
     40	.dev		= {
     41		.dma_mask		= NULL,
     42		.coherent_dma_mask	= 0xffffffff,
     43		.platform_data		= &smc91x_info,
     44	},
     45	.num_resources	= ARRAY_SIZE(smc91x_resources),
     46	.resource	= smc91x_resources,
     47};
     48
     49static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 };
     50
     51static struct heartbeat_data heartbeat_data = {
     52	.bit_pos	= heartbeat_bit_pos,
     53	.nr_bits	= ARRAY_SIZE(heartbeat_bit_pos),
     54};
     55
     56static struct resource heartbeat_resource = {
     57	.start	= PA_LED,
     58	.end	= PA_LED,
     59	.flags	= IORESOURCE_MEM | IORESOURCE_MEM_32BIT,
     60};
     61
     62static struct platform_device heartbeat_device = {
     63	.name		= "heartbeat",
     64	.id		= -1,
     65	.dev	= {
     66		.platform_data	= &heartbeat_data,
     67	},
     68	.num_resources	= 1,
     69	.resource	= &heartbeat_resource,
     70};
     71
     72static struct platform_device *se7206_devices[] __initdata = {
     73	&smc91x_device,
     74	&heartbeat_device,
     75};
     76
     77static int __init se7206_devices_setup(void)
     78{
     79	return platform_add_devices(se7206_devices, ARRAY_SIZE(se7206_devices));
     80}
     81device_initcall(se7206_devices_setup);
     82
     83static int se7206_mode_pins(void)
     84{
     85	return MODE_PIN1 | MODE_PIN2;
     86}
     87
     88/*
     89 * The Machine Vector
     90 */
     91
     92static struct sh_machine_vector mv_se __initmv = {
     93	.mv_name		= "SolutionEngine",
     94	.mv_init_irq		= init_se7206_IRQ,
     95	.mv_mode_pins		= se7206_mode_pins,
     96};