~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/mach-pxa/generic.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0-only
  2 /*
  3  *  linux/arch/arm/mach-pxa/generic.c
  4  *
  5  *  Author:     Nicolas Pitre
  6  *  Created:    Jun 15, 2001
  7  *  Copyright:  MontaVista Software Inc.
  8  *
  9  * Code common to all PXA machines.
 10  *
 11  * Since this file should be linked before any other machine specific file,
 12  * the __initcall() here will be executed first.  This serves as default
 13  * initialization stuff for PXA machines which can be overridden later if
 14  * need be.
 15  */
 16 #include <linux/gpio.h>
 17 #include <linux/module.h>
 18 #include <linux/kernel.h>
 19 #include <linux/init.h>
 20 #include <linux/soc/pxa/cpu.h>
 21 #include <linux/soc/pxa/smemc.h>
 22 #include <linux/clk/pxa.h>
 23 
 24 #include <asm/mach/map.h>
 25 #include <asm/mach-types.h>
 26 
 27 #include "addr-map.h"
 28 #include "irqs.h"
 29 #include "reset.h"
 30 #include "smemc.h"
 31 #include "pxa3xx-regs.h"
 32 
 33 #include "generic.h"
 34 #include <clocksource/pxa.h>
 35 
 36 void clear_reset_status(unsigned int mask)
 37 {
 38         if (cpu_is_pxa2xx())
 39                 pxa2xx_clear_reset_status(mask);
 40         else {
 41                 /* RESET_STATUS_* has a 1:1 mapping with ARSR */
 42                 ARSR = mask;
 43         }
 44 }
 45 
 46 /*
 47  * For non device-tree builds, keep legacy timer init
 48  */
 49 void __init pxa_timer_init(void)
 50 {
 51         if (cpu_is_pxa25x())
 52                 pxa25x_clocks_init(io_p2v(0x41300000));
 53         if (cpu_is_pxa27x())
 54                 pxa27x_clocks_init(io_p2v(0x41300000));
 55         if (cpu_is_pxa3xx())
 56                 pxa3xx_clocks_init(io_p2v(0x41340000), io_p2v(0x41350000));
 57         pxa_timer_nodt_init(IRQ_OST0, io_p2v(0x40a00000));
 58 }
 59 
 60 void pxa_smemc_set_pcmcia_timing(int sock, u32 mcmem, u32 mcatt, u32 mcio)
 61 {
 62         __raw_writel(mcmem, MCMEM(sock));
 63         __raw_writel(mcatt, MCATT(sock));
 64         __raw_writel(mcio, MCIO(sock));
 65 }
 66 EXPORT_SYMBOL_GPL(pxa_smemc_set_pcmcia_timing);
 67 
 68 void pxa_smemc_set_pcmcia_socket(int nr)
 69 {
 70         switch (nr) {
 71         case 0:
 72                 __raw_writel(0, MECR);
 73                 break;
 74         case 1:
 75                 /*
 76                  * We have at least one socket, so set MECR:CIT
 77                  * (Card Is There)
 78                  */
 79                 __raw_writel(MECR_CIT, MECR);
 80                 break;
 81         case 2:
 82                 /* Set CIT and MECR:NOS (Number Of Sockets) */
 83                 __raw_writel(MECR_CIT | MECR_NOS, MECR);
 84                 break;
 85         }
 86 }
 87 EXPORT_SYMBOL_GPL(pxa_smemc_set_pcmcia_socket);
 88 
 89 void __iomem *pxa_smemc_get_mdrefr(void)
 90 {
 91         return MDREFR;
 92 }
 93 
 94 /*
 95  * Intel PXA2xx internal register mapping.
 96  *
 97  * Note: virtual 0xfffe0000-0xffffffff is reserved for the vector table
 98  *       and cache flush area.
 99  */
100 static struct map_desc common_io_desc[] __initdata = {
101         {       /* Devs */
102                 .virtual        = (unsigned long)PERIPH_VIRT,
103                 .pfn            = __phys_to_pfn(PERIPH_PHYS),
104                 .length         = PERIPH_SIZE,
105                 .type           = MT_DEVICE
106         }
107 };
108 
109 void __init pxa_map_io(void)
110 {
111         debug_ll_io_init();
112         iotable_init(ARRAY_AND_SIZE(common_io_desc));
113 }
114 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php