本文整理汇总了C++中cpu_is_mx6q函数的典型用法代码示例。如果您正苦于以下问题:C++ cpu_is_mx6q函数的具体用法?C++ cpu_is_mx6q怎么用?C++ cpu_is_mx6q使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cpu_is_mx6q函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: busfreq_init
static int __init busfreq_init(void)
{
if (platform_driver_register(&busfreq_driver) != 0) {
printk(KERN_ERR "busfreq_driver register failed\n");
return -ENODEV;
}
printk(KERN_INFO "Bus freq driver module loaded\n");
#ifdef CONFIG_MX6_VPU_352M
if (cpu_is_mx6q())
bus_freq_scaling_is_active = 0;/*disable bus_freq*/
#else
/* Enable busfreq by default. */
bus_freq_scaling_is_active = 1;
#endif
if (cpu_is_mx6q())
set_high_bus_freq(1);
else if (cpu_is_mx6dl())
set_high_bus_freq(0);
printk(KERN_INFO "Bus freq driver Enabled\n");
return 0;
}
开发者ID:brunotl,项目名称:kernel-kobo-mx6sl-ntx,代码行数:25,代码来源:bus_freq.c
示例2: ov5640_mipi_camera_io_init
static void ov5640_mipi_camera_io_init(void)
{
struct clk *clko1;
if (cpu_is_mx6q())
{
mxc_iomux_v3_setup_pad(MX6Q_PAD_CSI0_MCLK__CCM_CLKO);
mxc_iomux_v3_setup_pad(MX6Q_PAD_CSI0_DAT18__GPIO_6_4);
}
else
{
mxc_iomux_v3_setup_pad(MX6DL_PAD_CSI0_MCLK__CCM_CLKO);
mxc_iomux_v3_setup_pad(MX6DL_PAD_CSI0_DAT18__GPIO_6_4);
}
clko1 = clk_get(NULL, "clko_clk");
if (IS_ERR(clko1)) {
pr_err("can't get CLKO1 clock.\n");
} else {
long round = clk_round_rate(clko1, 27000000);
clk_set_rate(clko1, round);
clk_enable(clko1);
}
/* Camera reset */
gpio_request(MX6_CAMERA_RST, "cam-reset");
gpio_direction_output(MX6_CAMERA_RST, 0);
msleep(1);
gpio_set_value(MX6_CAMERA_RST, 1);
msleep(100);
/* for mx6dl, mipi virtual channel 1 connect to csi 0*/
if (cpu_is_mx6dl())
mxc_iomux_set_gpr_register(13, 0, 3, 0);
}
开发者ID:pacificIT,项目名称:udoo_kernel_imx,代码行数:35,代码来源:board-mx6_udoo.c
示例3: imx6_mmu_init
static int imx6_mmu_init(void)
{
void __iomem *l2x0_base = IOMEM(0x00a02000);
u32 val;
if (!cpu_is_mx6())
return 0;
/* Configure the L2 PREFETCH and POWER registers */
val = readl(l2x0_base + L310_PREFETCH_CTRL);
val |= 0x70800000;
/*
* The L2 cache controller(PL310) version on the i.MX6D/Q is r3p1-50rel0
* The L2 cache controller(PL310) version on the i.MX6DL/SOLO/SL is r3p2
* But according to ARM PL310 errata: 752271
* ID: 752271: Double linefill feature can cause data corruption
* Fault Status: Present in: r3p0, r3p1, r3p1-50rel0. Fixed in r3p2
* Workaround: The only workaround to this erratum is to disable the
* double linefill feature. This is the default behavior.
*/
if (cpu_is_mx6q())
val &= ~(1 << 30 | 1 << 23);
writel(val, l2x0_base + L310_PREFETCH_CTRL);
l2x0_init(l2x0_base, 0x0, ~0UL);
return 0;
}
开发者ID:jcobham,项目名称:barebox,代码行数:30,代码来源:imx6.c
示例4: mx6q_csi0_io_init
static void mx6q_csi0_io_init(void)
{
if (cpu_is_mx6q())
mxc_iomux_set_gpr_register(1, 19, 1, 1);
else if (cpu_is_mx6dl())
mxc_iomux_set_gpr_register(13, 0, 3, 4);
}
开发者ID:Electrongod1966,项目名称:mx6-wandboard,代码行数:7,代码来源:board-mx6q_sabreauto.c
示例5: if
struct cpu_op *mx6_get_cpu_op(int *op)
{
if (cpu_is_mx6dl()) {
if (arm_max_freq == CPU_AT_1_2GHz) {
*op = num_cpu_op = ARRAY_SIZE(mx6dl_cpu_op_1_2G);
return mx6dl_cpu_op_1_2G;
} else if (arm_max_freq == CPU_AT_1GHz) {
*op = num_cpu_op = ARRAY_SIZE(mx6dl_cpu_op_1G);
return mx6dl_cpu_op_1G;
} else {
*op = num_cpu_op = ARRAY_SIZE(mx6dl_cpu_op);
return mx6dl_cpu_op;
}
} else if (cpu_is_mx6q()) {
if (arm_max_freq == CPU_AT_1_2GHz) {
*op = num_cpu_op = ARRAY_SIZE(mx6q_cpu_op_1_2G);
return mx6q_cpu_op_1_2G;
} else if (arm_max_freq == CPU_AT_1GHz) {
*op = num_cpu_op = ARRAY_SIZE(mx6q_cpu_op_1G);
return mx6q_cpu_op_1G;
} else {
*op = num_cpu_op = ARRAY_SIZE(mx6q_cpu_op);
return mx6q_cpu_op;
}
} else {
if (arm_max_freq == CPU_AT_1GHz) {
*op = num_cpu_op = ARRAY_SIZE(mx6sl_cpu_op_1G);
return mx6sl_cpu_op_1G;
} else {
*op = num_cpu_op = ARRAY_SIZE(mx6sl_cpu_op);
return mx6sl_cpu_op;
}
}
}
开发者ID:billysmith,项目名称:linux-imx-wandboard,代码行数:34,代码来源:cpu_op-mx6.c
示例6: bus_freq_scaling_enable_store
static ssize_t bus_freq_scaling_enable_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t size)
{
if (strncmp(buf, "1", 1) == 0) {
#ifdef CONFIG_MX6_VPU_352M
if (cpu_is_mx6q())
/*do not enable bus freq*/
bus_freq_scaling_is_active = 0;
printk(KERN_WARNING "Bus frequency can't be enabled if using VPU 352M!\n");
return size;
#else
bus_freq_scaling_is_active = 1;
#endif
set_high_bus_freq(0);
/* Make sure system can enter low bus mode if it should be in
low bus mode */
if (low_freq_bus_used() && !low_bus_freq_mode)
set_low_bus_freq();
} else if (strncmp(buf, "0", 1) == 0) {
if (bus_freq_scaling_is_active)
set_high_bus_freq(1);
bus_freq_scaling_is_active = 0;
}
return size;
}
开发者ID:brunotl,项目名称:kernel-kobo-mx6sl-ntx,代码行数:26,代码来源:bus_freq.c
示例7: arch_idle_multi_core
void arch_idle_multi_core(void)
{
u32 reg;
int cpu = smp_processor_id();
#ifdef CONFIG_LOCAL_TIMERS
if (!tick_broadcast_oneshot_active()
|| !tick_oneshot_mode_active())
return;
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
#endif
/* iMX6Q and iMX6DL */
if ((cpu_is_mx6q() && chip_rev >= IMX_CHIP_REVISION_1_2) ||
(cpu_is_mx6dl() && chip_rev >= IMX_CHIP_REVISION_1_1)) {
/*
* This code should only be executed on MX6QTO1.2 or later
* and MX6DL TO1.1 or later.
* These chips have the HW fix for the WAIT mode issue.
* Ensure that the CGPR bit 17 is set to enable the fix.
*/
reg = __raw_readl(MXC_CCM_CGPR);
reg |= MXC_CCM_CGPR_WAIT_MODE_FIX;
__raw_writel(reg, MXC_CCM_CGPR);
ca9_do_idle();
} else
arch_idle_with_workaround(cpu);
#ifdef CONFIG_LOCAL_TIMERS
clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
#endif
}
开发者ID:Electrongod1966,项目名称:mx6-wandboard,代码行数:34,代码来源:system.c
示例8: mx6_usb_h2_init
void __init mx6_usb_h2_init(void)
{
struct platform_device *pdev, *pdev_wakeup;
static void __iomem *anatop_base_addr = MX6_IO_ADDRESS(ANATOP_BASE_ADDR);
usbh2_config.wakeup_pdata = &usbh2_wakeup_config;
hsic_strobe_start_pad = cpu_is_mx6q() ? MX6Q_PAD_RGMII_TX_CTL__USBOH3_H2_STROBE_START :
(cpu_is_mx6dl() ? MX6DL_PAD_RGMII_TX_CTL__USBOH3_H2_STROBE_START :
(cpu_is_mx6sl() ? MX6SL_PAD_HSIC_STROBE__USB_H_STROBE_START : 0));
if (cpu_is_mx6sl())
pdev = imx6sl_add_fsl_ehci_hs(2, &usbh2_config);
else
pdev = imx6q_add_fsl_ehci_hs(2, &usbh2_config);
usbh2_wakeup_config.usb_pdata[0] = pdev->dev.platform_data;
if (cpu_is_mx6sl())
pdev_wakeup = imx6sl_add_fsl_usb2_hs_wakeup(2, &usbh2_wakeup_config);
else
pdev_wakeup = imx6q_add_fsl_usb2_hs_wakeup(2, &usbh2_wakeup_config);
platform_device_add(pdev);
((struct fsl_usb2_platform_data *)(pdev->dev.platform_data))->wakeup_pdata =
pdev_wakeup->dev.platform_data;
/* Some phy and power's special controls for host2
* 1. Its 480M is from OTG's 480M
* 2. EN_USB_CLKS should always be opened
*/
__raw_writel(BM_ANADIG_USB1_PLL_480_CTRL_EN_USB_CLKS,
anatop_base_addr + HW_ANADIG_USB1_PLL_480_CTRL_SET);
/* must change the clkgate delay to 2 or 3 to avoid
* 24M OSCI clock not stable issue */
__raw_writel(BF_ANADIG_ANA_MISC0_CLKGATE_DELAY(3),
anatop_base_addr + HW_ANADIG_ANA_MISC0);
}
开发者ID:videologyincengineering,项目名称:TFMIPI_Kernel,代码行数:34,代码来源:usb_h2.c
示例9: wand_mux_pads_init_ipu2_lcd0
void wand_mux_pads_init_ipu2_lcd0(void)
{
if (!cpu_is_mx6q())
return;
mxc_iomux_v3_setup_pad(MX6Q_PAD_DI0_DISP_CLK__IPU2_DI0_DISP_CLK);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DI0_PIN2__IPU2_DI0_PIN2); // HSync
mxc_iomux_v3_setup_pad(MX6Q_PAD_DI0_PIN3__IPU2_DI0_PIN3); // VSync
mxc_iomux_v3_setup_pad(MX6Q_PAD_DI0_PIN4__IPU2_DI0_PIN4); // Contrast
mxc_iomux_v3_setup_pad(MX6Q_PAD_DI0_PIN15__IPU2_DI0_PIN15); // DISP0_DRDY
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT0__IPU2_DISP0_DAT_0);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT1__IPU2_DISP0_DAT_1);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT2__IPU2_DISP0_DAT_2);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT3__IPU2_DISP0_DAT_3);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT4__IPU2_DISP0_DAT_4);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT5__IPU2_DISP0_DAT_5);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT6__IPU2_DISP0_DAT_6);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT7__IPU2_DISP0_DAT_7);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT8__IPU2_DISP0_DAT_8);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT9__IPU2_DISP0_DAT_9);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT10__IPU2_DISP0_DAT_10);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT11__IPU2_DISP0_DAT_11);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT12__IPU2_DISP0_DAT_12);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT13__IPU2_DISP0_DAT_13);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT14__IPU2_DISP0_DAT_14);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT15__IPU2_DISP0_DAT_15);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT16__IPU2_DISP0_DAT_16);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT17__IPU2_DISP0_DAT_17);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT18__IPU2_DISP0_DAT_18);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT19__IPU2_DISP0_DAT_19);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT20__IPU2_DISP0_DAT_20);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT21__IPU2_DISP0_DAT_21);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT22__IPU2_DISP0_DAT_22);
mxc_iomux_v3_setup_pad(MX6Q_PAD_DISP0_DAT23__IPU2_DISP0_DAT_23);
}
开发者ID:tkurbad,项目名称:wandboard,代码行数:35,代码来源:board-wand-mux.c
示例10: plt_sd_pad_change
static int plt_sd_pad_change(unsigned int index, int clock)
{
/* LOW speed is the default state of SD pads */
static enum sd_pad_mode pad_mode = SD_PAD_MODE_LOW_SPEED;
iomux_v3_cfg_t *sd_pads_200mhz = NULL;
iomux_v3_cfg_t *sd_pads_100mhz = NULL;
iomux_v3_cfg_t *sd_pads_50mhz = NULL;
u32 sd_pads_200mhz_cnt;
u32 sd_pads_100mhz_cnt;
u32 sd_pads_50mhz_cnt;
if (index != 2) {
printk(KERN_ERR"no such SD host controller index %d\n", index);
return -EINVAL;
}
if (cpu_is_mx6q()) {
sd_pads_200mhz = mx6q_sd3_200mhz;
sd_pads_100mhz = mx6q_sd3_100mhz;
sd_pads_50mhz = mx6q_sd3_50mhz;
sd_pads_200mhz_cnt = ARRAY_SIZE(mx6q_sd3_200mhz);
sd_pads_100mhz_cnt = ARRAY_SIZE(mx6q_sd3_100mhz);
sd_pads_50mhz_cnt = ARRAY_SIZE(mx6q_sd3_50mhz);
} else if (cpu_is_mx6dl()) {
sd_pads_200mhz = mx6dl_sd3_200mhz;
sd_pads_100mhz = mx6dl_sd3_100mhz;
sd_pads_50mhz = mx6dl_sd3_50mhz;
sd_pads_200mhz_cnt = ARRAY_SIZE(mx6dl_sd3_200mhz);
sd_pads_100mhz_cnt = ARRAY_SIZE(mx6dl_sd3_100mhz);
sd_pads_50mhz_cnt = ARRAY_SIZE(mx6dl_sd3_50mhz);
}
if (clock > 100000000) {
if (pad_mode == SD_PAD_MODE_HIGH_SPEED)
return 0;
BUG_ON(!sd_pads_200mhz);
pad_mode = SD_PAD_MODE_HIGH_SPEED;
return mxc_iomux_v3_setup_multiple_pads(sd_pads_200mhz,
sd_pads_200mhz_cnt);
} else if (clock > 52000000) {
if (pad_mode == SD_PAD_MODE_MED_SPEED)
return 0;
BUG_ON(!sd_pads_100mhz);
pad_mode = SD_PAD_MODE_MED_SPEED;
return mxc_iomux_v3_setup_multiple_pads(sd_pads_100mhz,
sd_pads_100mhz_cnt);
} else {
if (pad_mode == SD_PAD_MODE_LOW_SPEED)
return 0;
BUG_ON(!sd_pads_50mhz);
pad_mode = SD_PAD_MODE_LOW_SPEED;
return mxc_iomux_v3_setup_multiple_pads(sd_pads_50mhz,
sd_pads_50mhz_cnt);
}
}
开发者ID:rogrady,项目名称:lin_imx6,代码行数:59,代码来源:board-mx6q_sabreauto.c
示例11: adv7180_io_init
static void adv7180_io_init(void)
{
camera_reset(IMX_GPIO_NR(3, 13), 0, IMX_GPIO_NR(3, 14), -1);
if (cpu_is_mx6q())
mxc_iomux_set_gpr_register(1, 20, 1, 1);
else
mxc_iomux_set_gpr_register(13, 3, 3, 4);
}
开发者ID:blacktigersoftware,项目名称:hummingboard-cuboxi-kernel,代码行数:9,代码来源:board-mx6_nitrogen6x.c
示例12: reduce_bus_freq_handler
static void reduce_bus_freq_handler(struct work_struct *work)
{
unsigned long reg;
if (low_bus_freq_mode || !low_freq_bus_used())
return;
if (audio_bus_freq_mode && lp_audio_freq)
return;
while (!mutex_trylock(&bus_freq_mutex))
msleep(1);
/* PLL3 is used in the DDR freq change process, enable it. */
if (low_bus_freq_mode || !low_freq_bus_used()) {
mutex_unlock(&bus_freq_mutex);
return;
}
if (audio_bus_freq_mode && lp_audio_freq) {
mutex_unlock(&bus_freq_mutex);
return;
}
clk_enable(pll3);
if (lp_audio_freq) {
/* Need to ensure that PLL2_PFD_400M is kept ON. */
clk_enable(pll2_400);
update_ddr_freq(50000000);
audio_bus_freq_mode = 1;
low_bus_freq_mode = 0;
} else {
update_ddr_freq(24000000);
if (audio_bus_freq_mode)
clk_disable(pll2_400);
low_bus_freq_mode = 1;
audio_bus_freq_mode = 0;
}
if (med_bus_freq_mode)
clk_disable(pll2_400);
high_bus_freq_mode = 0;
med_bus_freq_mode = 0;
if (cpu_is_mx6q()) {
/* Power gate the PU LDO. */
org_ldo = reg = __raw_readl(ANADIG_REG_CORE);
reg &= ~(ANADIG_REG_TARGET_MASK << ANADIG_REG1_PU_TARGET_OFFSET);
__raw_writel(reg, ANADIG_REG_CORE);
}
clk_disable(pll3);
mutex_unlock(&bus_freq_mutex);
}
开发者ID:jeremyhammer,项目名称:imx6_linux,代码行数:57,代码来源:bus_freq.c
示例13: mx6q_revision
/*
* Returns:
* the silicon revision of the cpu
* -EINVAL - not a mx50
*/
int mx6q_revision(void)
{
if (!cpu_is_mx6q())
return -EINVAL;
if (cpu_silicon_rev == -1)
cpu_silicon_rev = get_mx6q_srev();
return cpu_silicon_rev;
}
开发者ID:boseji,项目名称:kernel_imx,代码行数:15,代码来源:cpu.c
示例14: hsic_start
static void hsic_start(void)
{
pr_debug("%s", __func__);
/* strobe 47K pull up */
if (cpu_is_mx6q())
mxc_iomux_v3_setup_pad(
MX6Q_PAD_RGMII_RXC__USBOH3_H3_STROBE_START);
else if (cpu_is_mx6dl())
mxc_iomux_v3_setup_pad(
MX6DL_PAD_RGMII_RXC__USBOH3_H3_STROBE_START);
}
开发者ID:brunotl,项目名称:kernel-kobo-mx6sl-ntx,代码行数:11,代码来源:usb_h3.c
示例15: plt_sd3_pad_change
static int plt_sd3_pad_change(int clock) {
static enum sd_pad_mode pad_mode = SD_PAD_MODE_LOW_SPEED;
if (clock > 100000000) {
if (pad_mode == SD_PAD_MODE_HIGH_SPEED)
return 0;
pad_mode = SD_PAD_MODE_HIGH_SPEED;
if (cpu_is_mx6q()) {
return mxc_iomux_v3_setup_multiple_pads(mx6q_sd3_200mhz,
ARRAY_SIZE(mx6dl_sd3_200mhz));
} else if (cpu_is_mx6dl()) {
return mxc_iomux_v3_setup_multiple_pads(mx6dl_sd3_200mhz,
ARRAY_SIZE(mx6dl_sd3_200mhz));
}
} else if (clock > 52000000) {
if (pad_mode == SD_PAD_MODE_MED_SPEED)
return 0;
pad_mode = SD_PAD_MODE_MED_SPEED;
if (cpu_is_mx6q()) {
return mxc_iomux_v3_setup_multiple_pads(mx6q_sd3_100mhz,
ARRAY_SIZE(mx6dl_sd3_200mhz));
} else if (cpu_is_mx6dl()) {
return mxc_iomux_v3_setup_multiple_pads(mx6dl_sd3_100mhz,
ARRAY_SIZE(mx6dl_sd3_200mhz));
}
} else {
if (pad_mode == SD_PAD_MODE_LOW_SPEED)
return 0;
pad_mode = SD_PAD_MODE_LOW_SPEED;
if (cpu_is_mx6q()) {
return mxc_iomux_v3_setup_multiple_pads(mx6q_sd3_50mhz,
ARRAY_SIZE(mx6dl_sd3_200mhz));
} else if (cpu_is_mx6dl()) {
return mxc_iomux_v3_setup_multiple_pads(mx6dl_sd3_50mhz,
ARRAY_SIZE(mx6dl_sd3_200mhz));
}
}
}
开发者ID:sncn-private,项目名称:imx6-linux,代码行数:41,代码来源:board-mx6_seco_uSBC.c
示例16: wand_init_ahci
static __init void wand_init_ahci(void)
{
/* SATA is not supported by MX6DL/Solo */
if (cpu_is_mx6q())
#ifdef CONFIG_SATA_AHCI_PLATFORM
imx6q_add_ahci(0, &wand_sata_data);
#else
wand_sata_init(NULL,
(void __iomem *)ioremap(MX6Q_SATA_BASE_ADDR, SZ_4K));
#endif
}
开发者ID:tkurbad,项目名称:wandboard,代码行数:12,代码来源:board-wand.c
示例17: set_high_bus_freq
/* Set the DDR to either 528MHz or 400MHz for MX6q
* or 400MHz for MX6DL.
*/
int set_high_bus_freq(int high_bus_freq)
{
if (busfreq_suspended)
return 0;
if (!bus_freq_scaling_initialized || !bus_freq_scaling_is_active)
return 0;
if (high_bus_freq_mode && high_bus_freq)
return 0;
if (med_bus_freq_mode && !high_bus_freq)
return 0;
while (!mutex_trylock(&bus_freq_mutex))
msleep(1);
if ((high_bus_freq_mode && (high_bus_freq || lp_high_freq)) ||
(med_bus_freq_mode && !high_bus_freq && lp_med_freq && !lp_high_freq)) {
mutex_unlock(&bus_freq_mutex);
return 0;
}
clk_enable(pll3);
/* Enable the PU LDO */
if (cpu_is_mx6q() && low_bus_freq_mode)
__raw_writel(org_ldo, ANADIG_REG_CORE);
if (high_bus_freq) {
update_ddr_freq(ddr_normal_rate);
if (med_bus_freq_mode)
clk_disable(pll2_400);
high_bus_freq_mode = 1;
med_bus_freq_mode = 0;
} else {
clk_enable(pll2_400);
update_ddr_freq(ddr_med_rate);
high_bus_freq_mode = 0;
med_bus_freq_mode = 1;
}
if (audio_bus_freq_mode)
clk_disable(pll2_400);
low_bus_freq_mode = 0;
audio_bus_freq_mode = 0;
low_bus_freq_mode = 0;
clk_disable(pll3);
mutex_unlock(&bus_freq_mutex);
return 0;
}
开发者ID:jeremyhammer,项目名称:imx6_linux,代码行数:55,代码来源:bus_freq.c
示例18: busfreq_probe
/*!
* This is the probe routine for the bus frequency driver.
*
* @param pdev The platform device structure
*
* @return The function returns 0 on success
*
*/
static int __devinit busfreq_probe(struct platform_device *pdev)
{
u32 err;
busfreq_dev = &pdev->dev;
pll2_400 = clk_get(NULL, "pll2_pfd_400M");
if (IS_ERR(pll2_400)) {
printk(KERN_DEBUG "%s: failed to get axi_clk\n",
__func__);
return PTR_ERR(pll2_400);
}
cpu_clk = clk_get(NULL, "cpu_clk");
if (IS_ERR(cpu_clk)) {
printk(KERN_DEBUG "%s: failed to get cpu_clk\n",
__func__);
return PTR_ERR(cpu_clk);
}
pll3 = clk_get(NULL, "pll3_main_clk");
err = sysfs_create_file(&busfreq_dev->kobj, &dev_attr_enable.attr);
if (err) {
printk(KERN_ERR
"Unable to register sysdev entry for BUSFREQ");
return err;
}
cpu_op_tbl = get_cpu_op(&cpu_op_nr);
low_bus_freq_mode = 0;
high_bus_freq_mode = 1;
med_bus_freq_mode = 0;
bus_freq_scaling_is_active = 0;
bus_freq_scaling_initialized = 1;
if (cpu_is_mx6q()) {
ddr_low_rate = LPAPM_CLK;
ddr_med_rate = DDR_MED_CLK;
ddr_normal_rate = DDR3_NORMAL_CLK;
}
if (cpu_is_mx6dl()) {
ddr_low_rate = LPAPM_CLK;
ddr_normal_rate = ddr_med_rate = DDR_MED_CLK;
}
INIT_DELAYED_WORK(&low_bus_freq_handler, reduce_bus_freq_handler);
mutex_init(&bus_freq_mutex);
return 0;
}
开发者ID:jeremyhammer,项目名称:imx6_linux,代码行数:60,代码来源:bus_freq.c
示例19: mxc_iomux_v3_setup_pads
int mxc_iomux_v3_setup_pads(iomux_v3_cfg_t *mx6q_pad_list,
iomux_v3_cfg_t *mx6dl_solo_pad_list)
{
iomux_v3_cfg_t *p = cpu_is_mx6q() ? mx6q_pad_list : mx6dl_solo_pad_list;
int ret;
while (*p) {
ret = mxc_iomux_v3_setup_pad(*p);
if (ret)
return ret;
p++;
}
return 0;
}
开发者ID:Moretti0,项目名称:gg,代码行数:14,代码来源:board-mx6_h.c
示例20: gpmi_nand_platform_init
static int __init gpmi_nand_platform_init(void)
{
iomux_v3_cfg_t *nand_pads = NULL;
u32 nand_pads_cnt;
if (cpu_is_mx6q()) {
nand_pads = mx6q_gpmi_nand;
nand_pads_cnt = ARRAY_SIZE(mx6q_gpmi_nand);
} else if (cpu_is_mx6dl()) {
nand_pads = mx6dl_gpmi_nand;
nand_pads_cnt = ARRAY_SIZE(mx6dl_gpmi_nand);
}
BUG_ON(!nand_pads);
return mxc_iomux_v3_setup_multiple_pads(nand_pads, nand_pads_cnt);
}
开发者ID:rogrady,项目名称:lin_imx6,代码行数:16,代码来源:board-mx6q_sabreauto.c
注:本文中的cpu_is_mx6q函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论