cregit-Linux how code gets into the kernel

Release 4.14 arch/mips/sgi-ip32/ip32-platform.c

/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org)
 */
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/serial_8250.h>
#include <linux/rtc/ds1685.h>

#include <asm/ip32/mace.h>
#include <asm/ip32/ip32_ints.h>

extern void ip32_prepare_poweroff(void);


#define MACEISA_SERIAL1_OFFS   offsetof(struct sgi_mace, isa.serial1)

#define MACEISA_SERIAL2_OFFS   offsetof(struct sgi_mace, isa.serial2)


#define MACE_PORT(offset,_irq)						\
{                                                                       \
        .mapbase        = MACE_BASE + offset,                           \
        .irq            = _irq,                                         \
        .uartclk        = 1843200,                                      \
        .iotype         = UPIO_MEM,                                     \
        .flags          = UPF_SKIP_TEST|UPF_IOREMAP,                    \
        .regshift       = 8,                                            \
}


static struct plat_serial8250_port uart8250_data[] = {
	MACE_PORT(MACEISA_SERIAL1_OFFS, MACEISA_SERIAL1_IRQ),
	MACE_PORT(MACEISA_SERIAL2_OFFS, MACEISA_SERIAL2_IRQ),
	{ },
};


static struct platform_device uart8250_device = {
	.name			= "serial8250",
	.id			= PLAT8250_DEV_PLATFORM,
	.dev			= {
		.platform_data	= uart8250_data,
        },
};


static int __init uart8250_init(void) { return platform_device_register(&uart8250_device); }

Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle16100.00%1100.00%
Total16100.00%1100.00%

device_initcall(uart8250_init);
static __init int meth_devinit(void) { struct platform_device *pd; int ret; pd = platform_device_alloc("meth", -1); if (!pd) return -ENOMEM; ret = platform_device_add(pd); if (ret) platform_device_put(pd); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle55100.00%1100.00%
Total55100.00%1100.00%

device_initcall(meth_devinit);
static __init int sgio2audio_devinit(void) { struct platform_device *pd; int ret; pd = platform_device_alloc("sgio2audio", -1); if (!pd) return -ENOMEM; ret = platform_device_add(pd); if (ret) platform_device_put(pd); return ret; }

Contributors

PersonTokensPropCommitsCommitProp
Thomas Bogendoerfer55100.00%1100.00%
Total55100.00%1100.00%

device_initcall(sgio2audio_devinit);
static __init int sgio2btns_devinit(void) { return IS_ERR(platform_device_register_simple("sgibtns", -1, NULL, 0)); }

Contributors

PersonTokensPropCommitsCommitProp
Thomas Bogendoerfer25100.00%2100.00%
Total25100.00%2100.00%

device_initcall(sgio2btns_devinit); #define MACE_RTC_RES_START (MACE_BASE + offsetof(struct sgi_mace, isa.rtc)) #define MACE_RTC_RES_END (MACE_RTC_RES_START + 32767) static struct resource ip32_rtc_resources[] = { { .start = MACEISA_RTC_IRQ, .end = MACEISA_RTC_IRQ, .flags = IORESOURCE_IRQ }, { .start = MACE_RTC_RES_START, .end = MACE_RTC_RES_END, .flags = IORESOURCE_MEM, } }; /* RTC registers on IP32 are each padded by 256 bytes (0x100). */ static struct ds1685_rtc_platform_data ip32_rtc_platform_data[] = { { .regstep = 0x100, .bcd_mode = true, .no_irq = false, .uie_unsupported = false, .alloc_io_resources = true, .plat_prepare_poweroff = ip32_prepare_poweroff, }, }; struct platform_device ip32_rtc_device = { .name = "rtc-ds1685", .id = -1, .dev = { .platform_data = ip32_rtc_platform_data, }, .num_resources = ARRAY_SIZE(ip32_rtc_resources), .resource = ip32_rtc_resources, };
static __init int sgio2_rtc_devinit(void) { return platform_device_register(&ip32_rtc_device); }

Contributors

PersonTokensPropCommitsCommitProp
Joshua Kinard1381.25%266.67%
Thomas Bogendoerfer318.75%133.33%
Total16100.00%3100.00%

device_initcall(sgio2_rtc_devinit);

Overall Contributors

PersonTokensPropCommitsCommitProp
Ralf Bächle15035.89%225.00%
Thomas Bogendoerfer13933.25%450.00%
Joshua Kinard12930.86%225.00%
Total418100.00%8100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.