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

TOMOYO Linux Cross Reference
Linux/arch/arm/mach-imx/mach-imx6sl.c

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ 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  * Copyright 2013 Freescale Semiconductor, Inc.
  4  */
  5 
  6 #include <linux/irqchip.h>
  7 #include <linux/of_platform.h>
  8 #include <linux/mfd/syscon.h>
  9 #include <linux/mfd/syscon/imx6q-iomuxc-gpr.h>
 10 #include <linux/regmap.h>
 11 #include <asm/mach/arch.h>
 12 #include <asm/mach/map.h>
 13 
 14 #include "common.h"
 15 #include "cpuidle.h"
 16 #include "hardware.h"
 17 
 18 static void __init imx6sl_fec_init(void)
 19 {
 20         struct regmap *gpr;
 21 
 22         /* set FEC clock from internal PLL clock source */
 23         gpr = syscon_regmap_lookup_by_compatible("fsl,imx6sl-iomuxc-gpr");
 24         if (!IS_ERR(gpr)) {
 25                 regmap_update_bits(gpr, IOMUXC_GPR1,
 26                         IMX6SL_GPR1_FEC_CLOCK_MUX2_SEL_MASK, 0);
 27                 regmap_update_bits(gpr, IOMUXC_GPR1,
 28                         IMX6SL_GPR1_FEC_CLOCK_MUX1_SEL_MASK, 0);
 29         } else {
 30                 pr_err("failed to find fsl,imx6sl-iomux-gpr regmap\n");
 31         }
 32 }
 33 
 34 static void __init imx6sl_init_late(void)
 35 {
 36         /* imx6sl reuses imx6q cpufreq driver */
 37         if (IS_ENABLED(CONFIG_ARM_IMX6Q_CPUFREQ))
 38                 platform_device_register_simple("imx6q-cpufreq", -1, NULL, 0);
 39 
 40         if (IS_ENABLED(CONFIG_SOC_IMX6SL) && cpu_is_imx6sl())
 41                 imx6sl_cpuidle_init();
 42         else if (IS_ENABLED(CONFIG_SOC_IMX6SLL))
 43                 imx6sx_cpuidle_init();
 44 }
 45 
 46 static void __init imx6sl_init_machine(void)
 47 {
 48         of_platform_default_populate(NULL, NULL, NULL);
 49 
 50         if (cpu_is_imx6sl())
 51                 imx6sl_fec_init();
 52         imx_anatop_init();
 53         imx6sl_pm_init();
 54 }
 55 
 56 static void __init imx6sl_init_irq(void)
 57 {
 58         imx_gpc_check_dt();
 59         imx_init_revision_from_anatop();
 60         imx_init_l2cache();
 61         imx_src_init();
 62         irqchip_init();
 63         if (cpu_is_imx6sl())
 64                 imx6_pm_ccm_init("fsl,imx6sl-ccm");
 65         else
 66                 imx6_pm_ccm_init("fsl,imx6sll-ccm");
 67 }
 68 
 69 static const char * const imx6sl_dt_compat[] __initconst = {
 70         "fsl,imx6sl",
 71         "fsl,imx6sll",
 72         NULL,
 73 };
 74 
 75 DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)")
 76         .l2c_aux_val    = 0,
 77         .l2c_aux_mask   = ~0,
 78         .init_irq       = imx6sl_init_irq,
 79         .init_machine   = imx6sl_init_machine,
 80         .init_late      = imx6sl_init_late,
 81         .dt_compat      = imx6sl_dt_compat,
 82 MACHINE_END
 83 

~ [ 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