• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ ctrl_inl函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中ctrl_inl函数的典型用法代码示例。如果您正苦于以下问题:C++ ctrl_inl函数的具体用法?C++ ctrl_inl怎么用?C++ ctrl_inl使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了ctrl_inl函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: pci_fixup_pcic

int pci_fixup_pcic(void)
{
	unsigned long bcr1, mcr;

	bcr1 = ctrl_inl(SH7751_BCR1);
	bcr1 |= 0x40080000;	/* Enable Bit 19 BREQEN, set PCIC to slave */
	pci_write_reg(bcr1, SH4_PCIBCR1);

	/* Enable all interrupts, so we known what to fix */
	pci_write_reg(0x0000c3ff, SH4_PCIINTM);
	pci_write_reg(0x0000380f, SH4_PCIAINTM);
	pci_write_reg(0xfb900047, SH7751_PCICONF1);
	pci_write_reg(0xab000001, SH7751_PCICONF4);

	mcr = ctrl_inl(SH7751_MCR);
	mcr = (mcr & PCIMCR_MRSET_OFF) & PCIMCR_RFSH_OFF;
	pci_write_reg(mcr, SH4_PCIMCR);

	pci_write_reg(0x0c000000, SH7751_PCICONF5);
	pci_write_reg(0xd0000000, SH7751_PCICONF6);
	pci_write_reg(0x0c000000, SH4_PCILAR0);
	pci_write_reg(0x00000000, SH4_PCILAR1);

	return 0;
}
开发者ID:458941968,项目名称:mini2440-kernel-2.6.29,代码行数:25,代码来源:fixups-lboxre2.c


示例2: sh_dmac_get_dma_residue

static int sh_dmac_get_dma_residue(struct dma_channel *chan)
{
	if (!(ctrl_inl(CHCR[chan->chan]) & CHCR_DE))
		return 0;

	return ctrl_inl(DMATCR[chan->chan]) << calc_xmit_shift(chan);
}
开发者ID:12019,项目名称:hg556a_source,代码行数:7,代码来源:dma-sh.c


示例3: sh_eth_reset

/* Chip Reset */
static void sh_eth_reset(struct net_device *ndev)
{
    u32 ioaddr = ndev->base_addr;

#if defined(CONFIG_CPU_SUBTYPE_SH7763)
    int cnt = 100;

    ctrl_outl(EDSR_ENALL, ioaddr + EDSR);
    ctrl_outl(ctrl_inl(ioaddr + EDMR) | EDMR_SRST, ioaddr + EDMR);
    while (cnt > 0) {
        if (!(ctrl_inl(ioaddr + EDMR) & 0x3))
            break;
        mdelay(1);
        cnt--;
    }
    if (cnt < 0)
        printk(KERN_ERR "Device reset fail\n");

    /* Table Init */
    ctrl_outl(0x0, ioaddr + TDLAR);
    ctrl_outl(0x0, ioaddr + TDFAR);
    ctrl_outl(0x0, ioaddr + TDFXR);
    ctrl_outl(0x0, ioaddr + TDFFR);
    ctrl_outl(0x0, ioaddr + RDLAR);
    ctrl_outl(0x0, ioaddr + RDFAR);
    ctrl_outl(0x0, ioaddr + RDFXR);
    ctrl_outl(0x0, ioaddr + RDFFR);
#else
    ctrl_outl(ctrl_inl(ioaddr + EDMR) | EDMR_SRST, ioaddr + EDMR);
    mdelay(3);
    ctrl_outl(ctrl_inl(ioaddr + EDMR) & ~EDMR_SRST, ioaddr + EDMR);
#endif
}
开发者ID:artm1248,项目名称:linux,代码行数:34,代码来源:sh_eth.c


示例4: pmb_seq_show

static int pmb_seq_show(struct seq_file *file, void *iter)
{
	int i;

	seq_printf(file, "V: Valid, C: Cacheable, WT: Write-Through\n"
			 "CB: Copy-Back, B: Buffered, UB: Unbuffered\n");
	seq_printf(file, "ety   vpn  ppn  size   flags\n");

	for (i = 0; i < NR_PMB_ENTRIES; i++) {
		unsigned long addr, data;
		unsigned int size;
		char *sz_str = NULL;

		addr = ctrl_inl(mk_pmb_addr(i));
		data = ctrl_inl(mk_pmb_data(i));

		size = data & PMB_SZ_MASK;
		sz_str = (size == PMB_SZ_16M)  ? " 16MB":
			 (size == PMB_SZ_64M)  ? " 64MB":
			 (size == PMB_SZ_128M) ? "128MB":
					         "512MB";

		/* 02: V 0x88 0x08 128MB C CB  B */
		seq_printf(file, "%02d: %c 0x%02lx 0x%02lx %s %c %s %s\n",
			   i, ((addr & PMB_V) && (data & PMB_V)) ? 'V' : ' ',
			   (addr >> 24) & 0xff, (data >> 24) & 0xff,
			   sz_str, (data & PMB_C) ? 'C' : ' ',
			   (data & PMB_WT) ? "WT" : "CB",
			   (data & PMB_UB) ? "UB" : " B");
	}

	return 0;
}
开发者ID:AppEngine,项目名称:linux-2.6,代码行数:33,代码来源:pmb.c


示例5: clear_pmb_entry

void __uses_jump_to_uncached clear_pmb_entry(struct pmb_entry *pmbe)
{
	unsigned int entry = pmbe->entry;
	unsigned long addr;

	/*
	 * Don't allow clearing of wired init entries, P1 or P2 access
	 * without a corresponding mapping in the PMB will lead to reset
	 * by the TLB.
	 */
	if (unlikely(entry < ARRAY_SIZE(pmb_init_map) ||
		     entry >= NR_PMB_ENTRIES))
		return;

	jump_to_uncached();

	/* Clear V-bit */
	addr = mk_pmb_addr(entry);
	ctrl_outl(ctrl_inl(addr) & ~PMB_V, addr);

	addr = mk_pmb_data(entry);
	ctrl_outl(ctrl_inl(addr) & ~PMB_V, addr);

	back_to_cached();

	clear_bit(entry, &pmb_map);
}
开发者ID:AppEngine,项目名称:linux-2.6,代码行数:27,代码来源:pmb.c


示例6: pwm_irq_enable

/***********************************************************************
 * pwm_irq_enable()
 *
 * Enable interrupt generation by the PWM counter.
 */
void pwm_irq_enable(void)
{
        u32 reg = 0;


        /*
         * TODO : Just enable & ack all the sources for now!
         */

        reg = ctrl_inl(pwm->base + PWM_INT_ACK_REG);
        reg |= CMP1_INT_EN;
        //        reg |= CMP0_INT_EN;
        reg |= CPT1_INT_EN;
        //        reg |= CPT0_INT_EN;
        //        reg |= PWM_INT_EN;
        ctrl_outl(reg, pwm->base + PWM_INT_ACK_REG);

        reg = ctrl_inl(pwm->base + PWM_INT_EN_REG);
        reg |= CMP1_INT_EN;
        //        reg |= CMP0_INT_EN;
        reg |= CPT1_INT_EN;
        //        reg |= CPT0_INT_EN;
        //        reg |= PWM_INT_EN;
        ctrl_outl(reg, pwm->base + PWM_INT_EN_REG);

        return;
}
开发者ID:amalrajt,项目名称:linux-sh4-2.6.23.17_stm23_A18B,代码行数:32,代码来源:op_model_sh7109.c


示例7: migor_setup

static void __init migor_setup(char **cmdline_p)
{
    /* SMC91C111 - Enable IRQ0 */
    ctrl_outw(ctrl_inw(PORT_PJCR) & ~0x0003, PORT_PJCR);

    /* KEYSC */
    ctrl_outw(ctrl_inw(PORT_PYCR) & ~0x0fff, PORT_PYCR);
    ctrl_outw(ctrl_inw(PORT_PZCR) & ~0x0ff0, PORT_PZCR);
    ctrl_outw(ctrl_inw(PORT_PSELA) & ~0x4100, PORT_PSELA);
    ctrl_outw(ctrl_inw(PORT_HIZCRA) & ~0x4000, PORT_HIZCRA);
    ctrl_outw(ctrl_inw(PORT_HIZCRC) & ~0xc000, PORT_HIZCRC);
    ctrl_outl(ctrl_inl(MSTPCR2) & ~0x00004000, MSTPCR2);

    /* NAND Flash */
    ctrl_outw(ctrl_inw(PORT_PXCR) & 0x0fff, PORT_PXCR);
    ctrl_outl((ctrl_inl(BSC_CS6ABCR) & ~0x00000600) | 0x00000200,
          BSC_CS6ABCR);

    /* I2C */
    ctrl_outl(ctrl_inl(MSTPCR1) & ~0x00000200, MSTPCR1);

    /* Touch Panel - Enable IRQ6 */
    ctrl_outw(ctrl_inw(PORT_PZCR) & ~0xc, PORT_PZCR);
    ctrl_outw((ctrl_inw(PORT_PSELA) | 0x8000), PORT_PSELA);
    ctrl_outw((ctrl_inw(PORT_HIZCRC) & ~0x4000), PORT_HIZCRC);
}
开发者ID:274914765,项目名称:C,代码行数:26,代码来源:setup.c


示例8: sh4202_read_vcr

static int sh4202_read_vcr(unsigned long base, struct superhyway_vcr_info *vcr)
{
	u32 vcrh, vcrl;
	u64 tmp;

	/*
	 * XXX: Even though the SH4-202 Evaluation Device documentation
	 * indicates that VCRL is mapped first with VCRH at a + 0x04
	 * offset, the opposite seems to be true.
	 *
	 * Some modules (PBR and ePBR for instance) also appear to have
	 * VCRL/VCRH flipped in the documentation, but on the SH4-202
	 * itself it appears that these are all consistently mapped with
	 * VCRH preceding VCRL.
	 *
	 * Do not trust the documentation, for it is evil.
	 */
	vcrh = ctrl_inl(base);
	vcrl = ctrl_inl(base + sizeof(u32));

	tmp = ((u64)vcrh << 32) | vcrl;
	memcpy(vcr, &tmp, sizeof(u64));

	return 0;
}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:25,代码来源:ops-sh4-202.c


示例9: sh_eth_adjust_link

/* PHY state control function */
static void sh_eth_adjust_link(struct net_device *ndev)
{
    struct sh_eth_private *mdp = netdev_priv(ndev);
    struct phy_device *phydev = mdp->phydev;
    u32 ioaddr = ndev->base_addr;
    int new_state = 0;

    if (phydev->link != PHY_DOWN) {
        if (phydev->duplex != mdp->duplex) {
            new_state = 1;
            mdp->duplex = phydev->duplex;
#if defined(CONFIG_CPU_SUBTYPE_SH7763)
            if (mdp->duplex) { /*  FULL */
                ctrl_outl(ctrl_inl(ioaddr + ECMR) | ECMR_DM,
                          ioaddr + ECMR);
            } else {	/* Half */
                ctrl_outl(ctrl_inl(ioaddr + ECMR) & ~ECMR_DM,
                          ioaddr + ECMR);
            }
#endif
        }

        if (phydev->speed != mdp->speed) {
            new_state = 1;
            mdp->speed = phydev->speed;
#if defined(CONFIG_CPU_SUBTYPE_SH7763)
            switch (mdp->speed) {
            case 10: /* 10BASE */
                ctrl_outl(GECMR_10, ioaddr + GECMR);
                break;
            case 100:/* 100BASE */
                ctrl_outl(GECMR_100, ioaddr + GECMR);
                break;
            case 1000: /* 1000BASE */
                ctrl_outl(GECMR_1000, ioaddr + GECMR);
                break;
            default:
                break;
            }
#endif
        }
        if (mdp->link == PHY_DOWN) {
            ctrl_outl((ctrl_inl(ioaddr + ECMR) & ~ECMR_TXF)
                      | ECMR_DM, ioaddr + ECMR);
            new_state = 1;
            mdp->link = phydev->link;
        }
    } else if (mdp->link) {
        new_state = 1;
        mdp->link = PHY_DOWN;
        mdp->speed = 0;
        mdp->duplex = -1;
    }

    if (new_state)
        phy_print_status(phydev);
}
开发者ID:artm1248,项目名称:linux,代码行数:58,代码来源:sh_eth.c


示例10: sh7750_read_counter

static u64 sh7750_read_counter(int counter)
{
	u32 hi, lo;

	hi = (counter == 0) ? ctrl_inl(PMCTR1H) : ctrl_inl(PMCTR2H);
	lo = (counter == 0) ? ctrl_inl(PMCTR1L) : ctrl_inl(PMCTR2L);

	return (u64)((u64)(hi & 0xffff) << 32) | lo;
}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:9,代码来源:op_model_sh7750.c


示例11: hs7751rvoip_inl

unsigned int hs7751rvoip_inl(unsigned long port)
{
        if (PXSEG(port))
		return ctrl_inl(port);
	else if (is_pci_ioaddr(port) || shifted_port(port))
		return ctrl_inl(pci_ioaddr(port));
	else
		maybebadio(port);
	return 0;
}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:10,代码来源:io.c


示例12: read_mac_address

/*
 * Get MAC address from SuperH MAC address register
 *
 * SuperH's Ethernet device doesn't have 'ROM' to MAC address.
 * This driver get MAC address that use by bootloader(U-boot or sh-ipl+g).
 * When you want use this device, you must set MAC address in bootloader.
 *
 */
static void read_mac_address(struct net_device *ndev)
{
    u32 ioaddr = ndev->base_addr;

    ndev->dev_addr[0] = (ctrl_inl(ioaddr + MAHR) >> 24);
    ndev->dev_addr[1] = (ctrl_inl(ioaddr + MAHR) >> 16) & 0xFF;
    ndev->dev_addr[2] = (ctrl_inl(ioaddr + MAHR) >> 8) & 0xFF;
    ndev->dev_addr[3] = (ctrl_inl(ioaddr + MAHR) & 0xFF);
    ndev->dev_addr[4] = (ctrl_inl(ioaddr + MALR) >> 8) & 0xFF;
    ndev->dev_addr[5] = (ctrl_inl(ioaddr + MALR) & 0xFF);
}
开发者ID:artm1248,项目名称:linux,代码行数:19,代码来源:sh_eth.c


示例13: landisk_inl

u32 landisk_inl(unsigned long port)
{
	if (PXSEG(port))
		return ctrl_inl(port);
	else if (is_pci_ioaddr(port))
		return ctrl_inl(pci_ioaddr(port));
	else
		maybebadio(port);

	return 0;
}
开发者ID:420GrayFox,项目名称:dsl-n55u-bender,代码行数:11,代码来源:io.c


示例14: titan_inl

u32 titan_inl(unsigned long port)
{
        if (PXSEG(port))
                return ctrl_inl(port);
        else if (is_pci_ioaddr(port))
                return ctrl_inl(pci_ioaddr(port));
        else if (port >= 0x2000)
                return ctrl_inw(port2adr(port));
        else
                maybebadio(port);
        return 0;
}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:12,代码来源:io.c


示例15: dma_err

static irqreturn_t dma_err(int irq, void *dev_id, struct pt_regs *regs)
{
	unsigned long dmaor = ctrl_inl(DMAOR);

	printk("DMAE: DMAOR=%lx\n", dmaor);

	ctrl_outl(ctrl_inl(DMAOR)&~DMAOR_NMIF, DMAOR);
	ctrl_outl(ctrl_inl(DMAOR)&~DMAOR_AE, DMAOR);
	ctrl_outl(ctrl_inl(DMAOR)|DMAOR_DME, DMAOR);

	disable_irq(irq);

	return IRQ_HANDLED;
}
开发者ID:12019,项目名称:hg556a_source,代码行数:14,代码来源:dma-sh.c


示例16: sh_eth_set_multicast_list

/* Multicast reception directions set */
static void sh_eth_set_multicast_list(struct net_device *ndev)
{
    u32 ioaddr = ndev->base_addr;

    if (ndev->flags & IFF_PROMISC) {
        /* Set promiscuous. */
        ctrl_outl((ctrl_inl(ioaddr + ECMR) & ~ECMR_MCT) | ECMR_PRM,
                  ioaddr + ECMR);
    } else {
        /* Normal, unicast/broadcast-only mode. */
        ctrl_outl((ctrl_inl(ioaddr + ECMR) & ~ECMR_PRM) | ECMR_MCT,
                  ioaddr + ECMR);
    }
}
开发者ID:artm1248,项目名称:linux,代码行数:15,代码来源:sh_eth.c


示例17: disable_systemh_irq

static void disable_systemh_irq(unsigned int irq)
{
	if (systemh_irq_mask_register) {
		unsigned long val, mask = 0x01 << 1;

		/* Clear the "irq"th bit in the mask and set it in the request */
		val = ctrl_inl((unsigned long)systemh_irq_mask_register);
		val &= ~mask;
		ctrl_outl(val, (unsigned long)systemh_irq_mask_register);

		val = ctrl_inl((unsigned long)systemh_irq_request_register);
		val |= mask;
		ctrl_outl(val, (unsigned long)systemh_irq_request_register);
	}
}
开发者ID:3sOx,项目名称:asuswrt-merlin,代码行数:15,代码来源:irq.c


示例18: aica_rtc_gettimeofday

/**
 * aica_rtc_gettimeofday - Get the time from the AICA RTC
 * @tv: pointer to resulting timeval
 *
 * Grabs the current RTC seconds counter and adjusts it to the Unix Epoch.
 */
void aica_rtc_gettimeofday(struct timeval *tv) {
	unsigned long val1, val2;

	do {
		val1 = ((ctrl_inl(AICA_RTC_SECS_H) & 0xffff) << 16) |
			(ctrl_inl(AICA_RTC_SECS_L) & 0xffff);

		val2 = ((ctrl_inl(AICA_RTC_SECS_H) & 0xffff) << 16) |
			(ctrl_inl(AICA_RTC_SECS_L) & 0xffff);
	} while (val1 != val2);

	tv->tv_sec = val1 - TWENTY_YEARS;

	/* Can't get microseconds with just a seconds counter. */
	tv->tv_usec = 0;
}
开发者ID:SimonKagstrom,项目名称:mci500h-linux-2.4.27,代码行数:22,代码来源:rtc-aica.c


示例19: __flush_wback_region

void __flush_wback_region(void *start, int size)
{
	unsigned long v;
	unsigned long begin, end;
	unsigned long flags;

	begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
	end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
		& ~(L1_CACHE_BYTES-1);

	local_irq_save(flags);
	jump_to_uncached();

	for (v = begin; v < end; v+=L1_CACHE_BYTES) {
		unsigned long addr = CACHE_OC_ADDRESS_ARRAY | (v & 0x000007f0);
		int way;
		for (way = 0; way < 4; way++) {
			unsigned long data =  ctrl_inl(addr | (way << 11));
			if ((data & CACHE_PHYSADDR_MASK) == (v & CACHE_PHYSADDR_MASK)) {
				data &= ~SH_CACHE_UPDATED;
				ctrl_outl(data, addr | (way << 11));
			}
		}
	}

	back_to_cached();
	local_irq_restore(flags);
}
开发者ID:johnny,项目名称:CobraDroidBeta,代码行数:28,代码来源:cache-sh2a.c


示例20: __flush_invalidate_region

void __flush_invalidate_region(void *start, int size)
{
#ifdef CONFIG_CACHE_WRITEBACK
	/*
	 * SH-2 does not support individual line invalidation, only a
	 * global invalidate.
	 */
	unsigned long ccr;
	unsigned long flags;
	local_irq_save(flags);
	jump_to_uncached();

	ccr = ctrl_inl(CCR);
	ccr |= CCR_CACHE_INVALIDATE;
	ctrl_outl(ccr, CCR);

	back_to_cached();
	local_irq_restore(flags);
#else
	unsigned long v;
	unsigned long begin, end;

	begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
	end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
		& ~(L1_CACHE_BYTES-1);

	for (v = begin; v < end; v+=L1_CACHE_BYTES)
		ctrl_outl((v & CACHE_PHYSADDR_MASK),
			  CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
#endif
}
开发者ID:johnny,项目名称:CobraDroidBeta,代码行数:31,代码来源:cache-sh2.c



注:本文中的ctrl_inl函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ ctrl_inw函数代码示例发布时间:2022-05-30
下一篇:
C++ ctrl_err函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap