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

s3c6400.c (1867B)


      1// SPDX-License-Identifier: GPL-2.0
      2//
      3// Copyright 2009 Simtec Electronics
      4//	Ben Dooks <ben@simtec.co.uk>
      5//	http://armlinux.simtec.co.uk/
      6
      7/*
      8 * NOTE: Code in this file is not used when booting with Device Tree support.
      9 */
     10
     11#include <linux/kernel.h>
     12#include <linux/types.h>
     13#include <linux/interrupt.h>
     14#include <linux/list.h>
     15#include <linux/timer.h>
     16#include <linux/init.h>
     17#include <linux/clk.h>
     18#include <linux/io.h>
     19#include <linux/device.h>
     20#include <linux/serial_core.h>
     21#include <linux/serial_s3c.h>
     22#include <linux/platform_device.h>
     23#include <linux/of.h>
     24
     25#include <asm/mach/arch.h>
     26#include <asm/mach/map.h>
     27#include <asm/mach/irq.h>
     28
     29#include <asm/irq.h>
     30
     31#include "regs-clock.h"
     32
     33#include "cpu.h"
     34#include "devs.h"
     35#include "sdhci.h"
     36#include "iic-core.h"
     37
     38#include "s3c64xx.h"
     39#include "onenand-core-s3c64xx.h"
     40
     41void __init s3c6400_map_io(void)
     42{
     43	/* setup SDHCI */
     44
     45	s3c6400_default_sdhci0();
     46	s3c6400_default_sdhci1();
     47	s3c6400_default_sdhci2();
     48
     49	/* the i2c devices are directly compatible with s3c2440 */
     50	s3c_i2c0_setname("s3c2440-i2c");
     51
     52	s3c_device_nand.name = "s3c6400-nand";
     53
     54	s3c_onenand_setname("s3c6400-onenand");
     55	s3c64xx_onenand1_setname("s3c6400-onenand");
     56}
     57
     58void __init s3c6400_init_irq(void)
     59{
     60	/* VIC0 does not have IRQS 5..7,
     61	 * VIC1 is fully populated. */
     62	s3c64xx_init_irq(~0 & ~(0xf << 5), ~0);
     63}
     64
     65static struct bus_type s3c6400_subsys = {
     66	.name		= "s3c6400-core",
     67	.dev_name	= "s3c6400-core",
     68};
     69
     70static struct device s3c6400_dev = {
     71	.bus	= &s3c6400_subsys,
     72};
     73
     74static int __init s3c6400_core_init(void)
     75{
     76	/* Not applicable when using DT. */
     77	if (of_have_populated_dt() || soc_is_s3c64xx())
     78		return 0;
     79
     80	return subsys_system_register(&s3c6400_subsys, NULL);
     81}
     82
     83core_initcall(s3c6400_core_init);
     84
     85int __init s3c6400_init(void)
     86{
     87	printk("S3C6400: Initialising architecture\n");
     88
     89	return device_register(&s3c6400_dev);
     90}