s3c2442.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // SPDX-License-Identifier: GPL-2.0+
  2. //
  3. // Copyright (c) 2004-2005 Simtec Electronics
  4. // http://armlinux.simtec.co.uk/
  5. // Ben Dooks <[email protected]>
  6. //
  7. // S3C2442 core and lock support
  8. #include <linux/init.h>
  9. #include <linux/module.h>
  10. #include <linux/kernel.h>
  11. #include <linux/list.h>
  12. #include <linux/errno.h>
  13. #include <linux/err.h>
  14. #include <linux/device.h>
  15. #include <linux/syscore_ops.h>
  16. #include <linux/interrupt.h>
  17. #include <linux/ioport.h>
  18. #include <linux/mutex.h>
  19. #include <linux/gpio.h>
  20. #include <linux/clk.h>
  21. #include <linux/io.h>
  22. #include <linux/atomic.h>
  23. #include <asm/irq.h>
  24. #include "regs-clock.h"
  25. #include "cpu.h"
  26. #include "pm.h"
  27. #include "gpio-core.h"
  28. #include "gpio-cfg.h"
  29. #include "gpio-cfg-helpers.h"
  30. #include "gpio-samsung.h"
  31. #include "s3c24xx.h"
  32. static struct device s3c2442_dev = {
  33. .bus = &s3c2442_subsys,
  34. };
  35. int __init s3c2442_init(void)
  36. {
  37. printk("S3C2442: Initialising architecture\n");
  38. #ifdef CONFIG_PM_SLEEP
  39. register_syscore_ops(&s3c2410_pm_syscore_ops);
  40. register_syscore_ops(&s3c24xx_irq_syscore_ops);
  41. register_syscore_ops(&s3c244x_pm_syscore_ops);
  42. #endif
  43. return device_register(&s3c2442_dev);
  44. }
  45. void __init s3c2442_map_io(void)
  46. {
  47. s3c244x_map_io();
  48. s3c24xx_gpiocfg_default.set_pull = s3c24xx_gpio_setpull_1down;
  49. s3c24xx_gpiocfg_default.get_pull = s3c24xx_gpio_getpull_1down;
  50. }