您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ syscon_regmap_lookup_by_phandle函数代码示例

51自学网 2021-06-03 08:37:50
  C++
这篇教程C++ syscon_regmap_lookup_by_phandle函数代码示例写得很实用,希望能帮到您。

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

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

示例1: of_get_phy_mode

static void *ipq806x_gmac_of_parse(struct ipq806x_gmac *gmac){	struct device *dev = &gmac->pdev->dev;	gmac->phy_mode = of_get_phy_mode(dev->of_node);	if (gmac->phy_mode < 0) {		dev_err(dev, "missing phy mode property/n");		return ERR_PTR(-EINVAL);	}	if (of_property_read_u32(dev->of_node, "qcom,id", &gmac->id) < 0) {		dev_err(dev, "missing qcom id property/n");		return ERR_PTR(-EINVAL);	}	/* The GMACs are called 1 to 4 in the documentation, but to simplify the	 * code and keep it consistent with the Linux convention, we'll number	 * them from 0 to 3 here.	 */	if (gmac->id < 0 || gmac->id > 3) {		dev_err(dev, "invalid gmac id/n");		return ERR_PTR(-EINVAL);	}	gmac->core_clk = devm_clk_get(dev, "stmmaceth");	if (IS_ERR(gmac->core_clk)) {		dev_err(dev, "missing stmmaceth clk property/n");		return gmac->core_clk;	}	clk_set_rate(gmac->core_clk, 266000000);	/* Setup the register map for the nss common registers */	gmac->nss_common = syscon_regmap_lookup_by_phandle(dev->of_node,							   "qcom,nss-common");	if (IS_ERR(gmac->nss_common)) {		dev_err(dev, "missing nss-common node/n");		return gmac->nss_common;	}	/* Setup the register map for the qsgmii csr registers */	gmac->qsgmii_csr = syscon_regmap_lookup_by_phandle(dev->of_node,							   "qcom,qsgmii-csr");	if (IS_ERR(gmac->qsgmii_csr)) {		dev_err(dev, "missing qsgmii-csr node/n");		return gmac->qsgmii_csr;	}	return NULL;}
开发者ID:DenisLug,项目名称:mptcp,代码行数:49,


示例2: usb_wakeup_of_property_parse

static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,				struct device_node *dn){	struct device *dev = mtk->dev;	/*	* wakeup function is optional, so it is not an error if this property	* does not exist, and in such case, no need to get relative	* properties anymore.	*/	of_property_read_u32(dn, "mediatek,wakeup-src", &mtk->wakeup_src);	if (!mtk->wakeup_src)		return 0;	mtk->wk_deb_p0 = devm_clk_get(dev, "wakeup_deb_p0");	if (IS_ERR(mtk->wk_deb_p0)) {		dev_err(dev, "fail to get wakeup_deb_p0/n");		return PTR_ERR(mtk->wk_deb_p0);	}	mtk->wk_deb_p1 = devm_clk_get(dev, "wakeup_deb_p1");	if (IS_ERR(mtk->wk_deb_p1)) {		dev_err(dev, "fail to get wakeup_deb_p1/n");		return PTR_ERR(mtk->wk_deb_p1);	}	mtk->pericfg = syscon_regmap_lookup_by_phandle(dn,						"mediatek,syscon-wakeup");	if (IS_ERR(mtk->pericfg)) {		dev_err(dev, "fail to get pericfg regs/n");		return PTR_ERR(mtk->pericfg);	}	return 0;}
开发者ID:mkrufky,项目名称:linux,代码行数:35,


示例3: exynos_dp_video_phy_probe

static int exynos_dp_video_phy_probe(struct platform_device *pdev){	struct exynos_dp_video_phy *state;	struct device *dev = &pdev->dev;	const struct of_device_id *match;	struct phy_provider *phy_provider;	struct phy *phy;	state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL);	if (!state)		return -ENOMEM;	state->regs = syscon_regmap_lookup_by_phandle(dev->of_node,						      "samsung,pmu-syscon");	if (IS_ERR(state->regs)) {		dev_err(dev, "Failed to lookup PMU regmap/n");		return PTR_ERR(state->regs);	}	match = of_match_node(exynos_dp_video_phy_of_match, dev->of_node);	state->drvdata = match->data;	phy = devm_phy_create(dev, NULL, &exynos_dp_video_phy_ops);	if (IS_ERR(phy)) {		dev_err(dev, "failed to create Display Port PHY/n");		return PTR_ERR(phy);	}	phy_set_drvdata(phy, state);	phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);	return PTR_ERR_OR_ZERO(phy_provider);}
开发者ID:19Dan01,项目名称:linux,代码行数:33,


示例4: spear1340_miphy_probe

static int spear1340_miphy_probe(struct platform_device *pdev){	struct device *dev = &pdev->dev;	struct spear1340_miphy_priv *priv;	struct phy_provider *phy_provider;	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);	if (!priv)		return -ENOMEM;	priv->misc =		syscon_regmap_lookup_by_phandle(dev->of_node, "misc");	if (IS_ERR(priv->misc)) {		dev_err(dev, "failed to find misc regmap/n");		return PTR_ERR(priv->misc);	}	priv->phy = devm_phy_create(dev, NULL, &spear1340_miphy_ops);	if (IS_ERR(priv->phy)) {		dev_err(dev, "failed to create SATA PCIe PHY/n");		return PTR_ERR(priv->phy);	}	dev_set_drvdata(dev, priv);	phy_set_drvdata(priv->phy, priv);	phy_provider =		devm_of_phy_provider_register(dev, spear1340_miphy_xlate);	if (IS_ERR(phy_provider)) {		dev_err(dev, "failed to register phy provider/n");		return PTR_ERR(phy_provider);	}	return 0;}
开发者ID:020gzh,项目名称:linux,代码行数:35,


示例5: stm32_dwmac_parse_data

static int stm32_dwmac_parse_data(struct stm32_dwmac *dwmac,				  struct device *dev){	struct device_node *np = dev->of_node;	int err;	/*  Get TX/RX clocks */	dwmac->clk_tx = devm_clk_get(dev, "mac-clk-tx");	if (IS_ERR(dwmac->clk_tx)) {		dev_err(dev, "No tx clock provided.../n");		return PTR_ERR(dwmac->clk_tx);	}	dwmac->clk_rx = devm_clk_get(dev, "mac-clk-rx");	if (IS_ERR(dwmac->clk_rx)) {		dev_err(dev, "No rx clock provided.../n");		return PTR_ERR(dwmac->clk_rx);	}	/* Get mode register */	dwmac->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscon");	if (IS_ERR(dwmac->regmap))		return PTR_ERR(dwmac->regmap);	err = of_property_read_u32_index(np, "st,syscon", 1, &dwmac->mode_reg);	if (err)		dev_err(dev, "Can't get sysconfig mode offset (%d)/n", err);	return err;}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:29,


示例6: hix5hd2_sata_phy_probe

static int hix5hd2_sata_phy_probe(struct platform_device *pdev){	struct phy_provider *phy_provider;	struct device *dev = &pdev->dev;	struct resource *res;	struct phy *phy;	struct hix5hd2_priv *priv;	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);	if (!priv)		return -ENOMEM;	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);	if (!res)		return -EINVAL;	priv->base = devm_ioremap(dev, res->start, resource_size(res));	if (!priv->base)		return -ENOMEM;	priv->peri_ctrl = syscon_regmap_lookup_by_phandle(dev->of_node,					"hisilicon,peripheral-syscon");	if (IS_ERR(priv->peri_ctrl))		priv->peri_ctrl = NULL;	phy = devm_phy_create(dev, NULL, &hix5hd2_sata_phy_ops);	if (IS_ERR(phy)) {		dev_err(dev, "failed to create PHY/n");		return PTR_ERR(phy);	}	phy_set_drvdata(phy, priv);	phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);	return PTR_ERR_OR_ZERO(phy_provider);}
开发者ID:19Dan01,项目名称:linux,代码行数:35,


示例7: rockchip_hdmi_parse_dt

static int rockchip_hdmi_parse_dt(struct rockchip_hdmi *hdmi){	struct device_node *np = hdmi->dev->of_node;	hdmi->regmap = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");	if (IS_ERR(hdmi->regmap)) {		DRM_DEV_ERROR(hdmi->dev, "Unable to get rockchip,grf/n");		return PTR_ERR(hdmi->regmap);	}	hdmi->vpll_clk = devm_clk_get(hdmi->dev, "vpll");	if (PTR_ERR(hdmi->vpll_clk) == -ENOENT) {		hdmi->vpll_clk = NULL;	} else if (PTR_ERR(hdmi->vpll_clk) == -EPROBE_DEFER) {		return -EPROBE_DEFER;	} else if (IS_ERR(hdmi->vpll_clk)) {		DRM_DEV_ERROR(hdmi->dev, "failed to get grf clock/n");		return PTR_ERR(hdmi->vpll_clk);	}	hdmi->grf_clk = devm_clk_get(hdmi->dev, "grf");	if (PTR_ERR(hdmi->grf_clk) == -ENOENT) {		hdmi->grf_clk = NULL;	} else if (PTR_ERR(hdmi->grf_clk) == -EPROBE_DEFER) {		return -EPROBE_DEFER;	} else if (IS_ERR(hdmi->grf_clk)) {		DRM_DEV_ERROR(hdmi->dev, "failed to get grf clock/n");		return PTR_ERR(hdmi->grf_clk);	}	return 0;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:32,


示例8: uni_player_parse_dt_audio_glue

static int uni_player_parse_dt_audio_glue(struct platform_device *pdev,					  struct uniperif *player){	struct device_node *node = pdev->dev.of_node;	struct regmap *regmap;	struct reg_field regfield[2] = {		/* PCM_CLK_SEL */		REG_FIELD(SYS_CFG_AUDIO_GLUE,			  8 + player->id,			  8 + player->id),		/* PCMP_VALID_SEL */		REG_FIELD(SYS_CFG_AUDIO_GLUE, 0, 1)	};	regmap = syscon_regmap_lookup_by_phandle(node, "st,syscfg");	if (IS_ERR(regmap)) {		dev_err(&pdev->dev, "sti-audio-clk-glue syscf not found/n");		return PTR_ERR(regmap);	}	player->clk_sel = regmap_field_alloc(regmap, regfield[0]);	player->valid_sel = regmap_field_alloc(regmap, regfield[1]);	return 0;}
开发者ID:AshishNamdev,项目名称:linux,代码行数:26,


示例9: of_flash_probe_gemini

int of_flash_probe_gemini(struct platform_device *pdev,			  struct device_node *np,			  struct map_info *map){	static struct regmap *rmap;	struct device *dev = &pdev->dev;	u32 val;	int ret;	/* Multiplatform guard */	if (!of_device_is_compatible(np, "cortina,gemini-flash"))		return 0;	rmap = syscon_regmap_lookup_by_phandle(np, "syscon");	if (IS_ERR(rmap)) {		dev_err(dev, "no syscon/n");		return PTR_ERR(rmap);	}	ret = regmap_read(rmap, GLOBAL_STATUS, &val);	if (ret) {		dev_err(dev, "failed to read global status register/n");		return -ENODEV;	}	dev_dbg(dev, "global status reg: %08x/n", val);	/*	 * It would be contradictory if a physmap flash was NOT parallel.	 */	if ((val & FLASH_TYPE_MASK) != FLASH_TYPE_PARALLEL) {		dev_err(dev, "flash is not parallel/n");		return -ENODEV;	}	/*	 * Complain if DT data and hardware definition is different.	 */	if (val & FLASH_WIDTH_16BIT) {		if (map->bankwidth != 2)			dev_warn(dev, "flash hardware say flash is 16 bit wide but DT says it is %d bits wide/n",				 map->bankwidth * 8);	} else {		if (map->bankwidth != 1)			dev_warn(dev, "flash hardware say flash is 8 bit wide but DT says it is %d bits wide/n",				 map->bankwidth * 8);	}	/* Activate parallel (NOR flash) mode */	ret = regmap_update_bits(rmap, GLOBAL_MISC_CTRL,				 FLASH_PADS_MASK,				 SFLASH_PADS_DISABLE | NAND_PADS_DISABLE);	if (ret) {		dev_err(dev, "unable to set up physmap pads/n");		return -ENODEV;	}	dev_info(&pdev->dev, "initialized Gemini-specific physmap control/n");	return 0;}
开发者ID:AshishNamdev,项目名称:linux,代码行数:60,


示例10: keystone_rproc_of_get_dev_syscon

static int keystone_rproc_of_get_dev_syscon(struct platform_device *pdev,					    struct keystone_rproc *ksproc){	struct device_node *np = pdev->dev.of_node;	struct device *dev = &pdev->dev;	int ret;	if (!of_property_read_bool(np, "ti,syscon-dev")) {		dev_err(dev, "ti,syscon-dev property is absent/n");		return -EINVAL;	}	ksproc->dev_ctrl =		syscon_regmap_lookup_by_phandle(np, "ti,syscon-dev");	if (IS_ERR(ksproc->dev_ctrl)) {		ret = PTR_ERR(ksproc->dev_ctrl);		return ret;	}	if (of_property_read_u32_index(np, "ti,syscon-dev", 1,				       &ksproc->boot_offset)) {		dev_err(dev, "couldn't read the boot register offset/n");		return -EINVAL;	}	return 0;}
开发者ID:mdamt,项目名称:linux,代码行数:27,


示例11: rockchip_ddr_probe

static int __init rockchip_ddr_probe(struct platform_device *pdev){	struct device_node *np;	np = pdev->dev.of_node;	ddr_data =	    devm_kzalloc(&pdev->dev, sizeof(struct rockchip_ddr), GFP_KERNEL);	if (!ddr_data) {		dev_err(&pdev->dev, "no memory for state/n");		return -ENOMEM;	}	/* ddrpctl */	ddr_data->ddrpctl_regs =	    syscon_regmap_lookup_by_phandle(np, "rockchip,ddrpctl");	if (IS_ERR(ddr_data->ddrpctl_regs)) {		dev_err(&pdev->dev, "%s: could not find ddrpctl dt node/n",			__func__);		return -ENXIO;	}	/* grf */	ddr_data->grf_regs =	    syscon_regmap_lookup_by_phandle(np, "rockchip,grf");	if (IS_ERR(ddr_data->grf_regs)) {		dev_err(&pdev->dev, "%s: could not find grf dt node/n",			__func__);		return -ENXIO;	}	/* msch */	ddr_data->msch_regs =	    syscon_regmap_lookup_by_phandle(np, "rockchip,msch");	if (IS_ERR(ddr_data->msch_regs)) {		dev_err(&pdev->dev, "%s: could not find msch dt node/n",			__func__);		return -ENXIO;	}	platform_set_drvdata(pdev, ddr_data);	ddr_change_freq = _ddr_change_freq;	ddr_round_rate = _ddr_round_rate;	ddr_set_auto_self_refresh = _ddr_set_auto_self_refresh;	ddr_bandwidth_get = _ddr_bandwidth_get;	ddr_recalc_rate = _ddr_recalc_rate;	ddr_init(DDR3_DEFAULT, 0);	pr_info("%s: success/n", __func__);	return 0;}
开发者ID:OneEducation,项目名称:kernel-rk310-lollipop-firefly,代码行数:47,


示例12: gswip_gphy_fw_list

static int gswip_gphy_fw_list(struct gswip_priv *priv,			      struct device_node *gphy_fw_list_np, u32 version){	struct device *dev = priv->dev;	struct device_node *gphy_fw_np;	const struct of_device_id *match;	int err;	int i = 0;	/* The VRX200 rev 1.1 uses the GSWIP 2.0 and needs the older	 * GPHY firmware. The VRX200 rev 1.2 uses the GSWIP 2.1 and also	 * needs a different GPHY firmware.	 */	if (of_device_is_compatible(gphy_fw_list_np, "lantiq,xrx200-gphy-fw")) {		switch (version) {		case GSWIP_VERSION_2_0:			priv->gphy_fw_name_cfg = &xrx200a1x_gphy_data;			break;		case GSWIP_VERSION_2_1:			priv->gphy_fw_name_cfg = &xrx200a2x_gphy_data;			break;		default:			dev_err(dev, "unknown GSWIP version: 0x%x", version);			return -ENOENT;		}	}	match = of_match_node(xway_gphy_match, gphy_fw_list_np);	if (match && match->data)		priv->gphy_fw_name_cfg = match->data;	if (!priv->gphy_fw_name_cfg) {		dev_err(dev, "GPHY compatible type not supported");		return -ENOENT;	}	priv->num_gphy_fw = of_get_available_child_count(gphy_fw_list_np);	if (!priv->num_gphy_fw)		return -ENOENT;	priv->rcu_regmap = syscon_regmap_lookup_by_phandle(gphy_fw_list_np,							   "lantiq,rcu");	if (IS_ERR(priv->rcu_regmap))		return PTR_ERR(priv->rcu_regmap);	priv->gphy_fw = devm_kmalloc_array(dev, priv->num_gphy_fw,					   sizeof(*priv->gphy_fw),					   GFP_KERNEL | __GFP_ZERO);	if (!priv->gphy_fw)		return -ENOMEM;	for_each_available_child_of_node(gphy_fw_list_np, gphy_fw_np) {		err = gswip_gphy_fw_probe(priv, &priv->gphy_fw[i],					  gphy_fw_np, i);		if (err)			goto remove_gphy;		i++;	}
开发者ID:Anjali05,项目名称:linux,代码行数:58,


示例13: syscon_gpio_probe

static int syscon_gpio_probe(struct platform_device *pdev){	struct device *dev = &pdev->dev;	const struct of_device_id *of_id;	struct syscon_gpio_priv *priv;	struct device_node *np = dev->of_node;	int ret;	of_id = of_match_device(syscon_gpio_ids, dev);	if (!of_id)		return -ENODEV;	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);	if (!priv)		return -ENOMEM;	priv->data = of_id->data;	if (priv->data->compatible) {		priv->syscon = syscon_regmap_lookup_by_compatible(					priv->data->compatible);		if (IS_ERR(priv->syscon))			return PTR_ERR(priv->syscon);	} else {		priv->syscon =			syscon_regmap_lookup_by_phandle(np, "gpio,syscon-dev");		if (IS_ERR(priv->syscon))			return PTR_ERR(priv->syscon);		ret = of_property_read_u32_index(np, "gpio,syscon-dev", 1,						 &priv->dreg_offset);		if (ret)			dev_err(dev, "can't read the data register offset!/n");		priv->dreg_offset <<= 3;		ret = of_property_read_u32_index(np, "gpio,syscon-dev", 2,						 &priv->dir_reg_offset);		if (ret)			dev_dbg(dev, "can't read the dir register offset!/n");		priv->dir_reg_offset <<= 3;	}	priv->chip.parent = dev;	priv->chip.owner = THIS_MODULE;	priv->chip.label = dev_name(dev);	priv->chip.base = -1;	priv->chip.ngpio = priv->data->bit_count;	priv->chip.get = syscon_gpio_get;	if (priv->data->flags & GPIO_SYSCON_FEAT_IN)		priv->chip.direction_input = syscon_gpio_dir_in;	if (priv->data->flags & GPIO_SYSCON_FEAT_OUT) {		priv->chip.set = priv->data->set ? : syscon_gpio_set;		priv->chip.direction_output = syscon_gpio_dir_out;	}
开发者ID:BharathKrish,项目名称:HybridMem,代码行数:56,


示例14: ks_sa_rng_probe

static int ks_sa_rng_probe(struct platform_device *pdev){	struct ks_sa_rng	*ks_sa_rng;	struct device		*dev = &pdev->dev;	int			ret;	struct resource		*mem;	ks_sa_rng = devm_kzalloc(dev, sizeof(*ks_sa_rng), GFP_KERNEL);	if (!ks_sa_rng)		return -ENOMEM;	ks_sa_rng->dev = dev;	ks_sa_rng->rng = (struct hwrng) {		.name = "ks_sa_hwrng",		.init = ks_sa_rng_init,		.data_read = ks_sa_rng_data_read,		.data_present = ks_sa_rng_data_present,		.cleanup = ks_sa_rng_cleanup,	};	ks_sa_rng->rng.priv = (unsigned long)dev;	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);	ks_sa_rng->reg_rng = devm_ioremap_resource(dev, mem);	if (IS_ERR(ks_sa_rng->reg_rng))		return PTR_ERR(ks_sa_rng->reg_rng);	ks_sa_rng->regmap_cfg =		syscon_regmap_lookup_by_phandle(dev->of_node,						"ti,syscon-sa-cfg");	if (IS_ERR(ks_sa_rng->regmap_cfg)) {		dev_err(dev, "syscon_node_to_regmap failed/n");		return -EINVAL;	}	pm_runtime_enable(dev);	ret = pm_runtime_get_sync(dev);	if (ret < 0) {		dev_err(dev, "Failed to enable SA power-domain/n");		pm_runtime_disable(dev);		return ret;	}	platform_set_drvdata(pdev, ks_sa_rng);	return devm_hwrng_register(&pdev->dev, &ks_sa_rng->rng);}static int ks_sa_rng_remove(struct platform_device *pdev){	pm_runtime_put_sync(&pdev->dev);	pm_runtime_disable(&pdev->dev);	return 0;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:55,


示例15: dw_hdmi_imx_parse_dt

static int dw_hdmi_imx_parse_dt(struct imx_hdmi *hdmi){	struct device_node *np = hdmi->dev->of_node;	hdmi->regmap = syscon_regmap_lookup_by_phandle(np, "gpr");	if (IS_ERR(hdmi->regmap)) {		dev_err(hdmi->dev, "Unable to get gpr/n");		return PTR_ERR(hdmi->regmap);	}	return 0;}
开发者ID:BigeyeDestroyer,项目名称:linux,代码行数:12,


示例16: vf610_mscm_ir_of_init

static int __init vf610_mscm_ir_of_init(struct device_node *node,			       struct device_node *parent){	struct irq_domain *domain, *domain_parent;	struct regmap *mscm_cp_regmap;	int ret, cpuid;	domain_parent = irq_find_host(parent);	if (!domain_parent) {		pr_err("vf610_mscm_ir: interrupt-parent not found/n");		return -EINVAL;	}	mscm_ir_data = kzalloc(sizeof(*mscm_ir_data), GFP_KERNEL);	if (!mscm_ir_data)		return -ENOMEM;	mscm_ir_data->mscm_ir_base = of_io_request_and_map(node, 0, "mscm-ir");	if (!mscm_ir_data->mscm_ir_base) {		pr_err("vf610_mscm_ir: unable to map mscm register/n");		ret = -ENOMEM;		goto out_free;	}	mscm_cp_regmap = syscon_regmap_lookup_by_phandle(node, "fsl,cpucfg");	if (IS_ERR(mscm_cp_regmap)) {		ret = PTR_ERR(mscm_cp_regmap);		pr_err("vf610_mscm_ir: regmap lookup for cpucfg failed/n");		goto out_unmap;	}	regmap_read(mscm_cp_regmap, MSCM_CPxNUM, &cpuid);	mscm_ir_data->cpu_mask = 0x1 << cpuid;	domain = irq_domain_add_hierarchy(domain_parent, 0,					  MSCM_IRSPRC_NUM, node,					  &mscm_irq_domain_ops, mscm_ir_data);	if (!domain) {		ret = -ENOMEM;		goto out_unmap;	}	cpu_pm_register_notifier(&mscm_ir_notifier_block);	return 0;out_unmap:	iounmap(mscm_ir_data->mscm_ir_base);out_free:	kfree(mscm_ir_data);	return ret;}
开发者ID:19Dan01,项目名称:linux,代码行数:53,


示例17: rockchip_mipi_parse_dt

static int rockchip_mipi_parse_dt(struct dw_mipi_dsi *dsi){	struct device_node *np = dsi->dev->of_node;	dsi->grf_regmap = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");	if (IS_ERR(dsi->grf_regmap)) {		dev_err(dsi->dev, "Unable to get rockchip,grf/n");		return PTR_ERR(dsi->grf_regmap);	}	return 0;}
开发者ID:513855417,项目名称:linux,代码行数:12,


示例18: socfpga_dwmac_parse_data

static int socfpga_dwmac_parse_data(struct socfpga_dwmac *dwmac, struct device *dev){	struct device_node *np = dev->of_node;	struct regmap *sys_mgr_base_addr;	u32 reg_offset, reg_shift;	int ret;	struct device_node *np_splitter;	struct resource res_splitter;	dwmac->interface = of_get_phy_mode(np);	sys_mgr_base_addr = syscon_regmap_lookup_by_phandle(np, "altr,sysmgr-syscon");	if (IS_ERR(sys_mgr_base_addr)) {		dev_info(dev, "No sysmgr-syscon node found/n");		return PTR_ERR(sys_mgr_base_addr);	}	ret = of_property_read_u32_index(np, "altr,sysmgr-syscon", 1, &reg_offset);	if (ret) {		dev_info(dev, "Could not read reg_offset from sysmgr-syscon!/n");		return -EINVAL;	}	ret = of_property_read_u32_index(np, "altr,sysmgr-syscon", 2, &reg_shift);	if (ret) {		dev_info(dev, "Could not read reg_shift from sysmgr-syscon!/n");		return -EINVAL;	}	dwmac->f2h_ptp_ref_clk = of_property_read_bool(np, "altr,f2h_ptp_ref_clk");	np_splitter = of_parse_phandle(np, "altr,emac-splitter", 0);	if (np_splitter) {		if (of_address_to_resource(np_splitter, 0, &res_splitter)) {			dev_info(dev, "Missing emac splitter address/n");			return -EINVAL;		}		dwmac->splitter_base = devm_ioremap_resource(dev, &res_splitter);		if (IS_ERR(dwmac->splitter_base)) {			dev_info(dev, "Failed to mapping emac splitter/n");			return PTR_ERR(dwmac->splitter_base);		}	}	dwmac->reg_offset = reg_offset;	dwmac->reg_shift = reg_shift;	dwmac->sys_mgr_base_addr = sys_mgr_base_addr;	dwmac->dev = dev;	return 0;}
开发者ID:513855417,项目名称:linux,代码行数:52,


示例19: ade_dts_parse

static int ade_dts_parse(struct platform_device *pdev, struct ade_hw_ctx *ctx){	struct resource *res;	struct device *dev = &pdev->dev;	struct device_node *np = pdev->dev.of_node;	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);	ctx->base = devm_ioremap_resource(dev, res);	if (IS_ERR(ctx->base)) {		DRM_ERROR("failed to remap ade io base/n");		return  PTR_ERR(ctx->base);	}	ctx->reset = devm_reset_control_get(dev, NULL);	if (IS_ERR(ctx->reset))		return PTR_ERR(ctx->reset);	ctx->noc_regmap =		syscon_regmap_lookup_by_phandle(np, "hisilicon,noc-syscon");	if (IS_ERR(ctx->noc_regmap)) {		DRM_ERROR("failed to get noc regmap/n");		return PTR_ERR(ctx->noc_regmap);	}	ctx->irq = platform_get_irq(pdev, 0);	if (ctx->irq < 0) {		DRM_ERROR("failed to get irq/n");		return -ENODEV;	}	ctx->ade_core_clk = devm_clk_get(dev, "clk_ade_core");	if (IS_ERR(ctx->ade_core_clk)) {		DRM_ERROR("failed to parse clk ADE_CORE/n");		return PTR_ERR(ctx->ade_core_clk);	}	ctx->media_noc_clk = devm_clk_get(dev, "clk_codec_jpeg");	if (IS_ERR(ctx->media_noc_clk)) {		DRM_ERROR("failed to parse clk CODEC_JPEG/n");		return PTR_ERR(ctx->media_noc_clk);	}	ctx->ade_pix_clk = devm_clk_get(dev, "clk_ade_pix");	if (IS_ERR(ctx->ade_pix_clk)) {		DRM_ERROR("failed to parse clk ADE_PIX/n");		return PTR_ERR(ctx->ade_pix_clk);	}	return 0;}
开发者ID:dznm,项目名称:linux,代码行数:50,


示例20: rockchip_dp_init

static int rockchip_dp_init(struct rockchip_dp_device *dp){	struct device *dev = dp->dev;	struct device_node *np = dev->of_node;	int ret;	dp->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");	if (IS_ERR(dp->grf)) {		dev_err(dev, "failed to get rockchip,grf property/n");		return PTR_ERR(dp->grf);	}	dp->grfclk = devm_clk_get(dev, "grf");	if (PTR_ERR(dp->grfclk) == -ENOENT) {		dp->grfclk = NULL;	} else if (PTR_ERR(dp->grfclk) == -EPROBE_DEFER) {		return -EPROBE_DEFER;	} else if (IS_ERR(dp->grfclk)) {		dev_err(dev, "failed to get grf clock/n");		return PTR_ERR(dp->grfclk);	}	dp->pclk = devm_clk_get(dev, "pclk");	if (IS_ERR(dp->pclk)) {		dev_err(dev, "failed to get pclk property/n");		return PTR_ERR(dp->pclk);	}	dp->rst = devm_reset_control_get(dev, "dp");	if (IS_ERR(dp->rst)) {		dev_err(dev, "failed to get dp reset control/n");		return PTR_ERR(dp->rst);	}	ret = clk_prepare_enable(dp->pclk);	if (ret < 0) {		dev_err(dp->dev, "failed to enable pclk %d/n", ret);		return ret;	}	ret = rockchip_dp_pre_init(dp);	if (ret < 0) {		dev_err(dp->dev, "failed to pre init %d/n", ret);		clk_disable_unprepare(dp->pclk);		return ret;	}	return 0;}
开发者ID:AK101111,项目名称:linux,代码行数:49,


示例21: ti_cpufreq_setup_syscon_register

static int ti_cpufreq_setup_syscon_register(struct ti_cpufreq_data *opp_data){	struct device *dev = opp_data->cpu_dev;	struct device_node *np = opp_data->opp_node;	opp_data->syscon = syscon_regmap_lookup_by_phandle(np,							"syscon");	if (IS_ERR(opp_data->syscon)) {		dev_err(dev,			"/"syscon/" is missing, cannot use OPPv2 table./n");		return PTR_ERR(opp_data->syscon);	}	return 0;}
开发者ID:Gentoo-zh,项目名称:linux-cjktty,代码行数:15,


示例22: digicolor_of_init

static int __init digicolor_of_init(struct device_node *node,				struct device_node *parent){	static void __iomem *reg_base;	unsigned int clr = IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN;	struct regmap *ucregs;	int ret;	reg_base = of_iomap(node, 0);	if (!reg_base) {		pr_err("%s: unable to map IC registers/n", node->full_name);		return -ENXIO;	}	/* disable all interrupts */	writel(0, reg_base + IC_INT0ENABLE_LO);	writel(0, reg_base + IC_INT0ENABLE_XLO);	ucregs = syscon_regmap_lookup_by_phandle(node, "syscon");	if (IS_ERR(ucregs)) {		pr_err("%s: unable to map UC registers/n", node->full_name);		return PTR_ERR(ucregs);	}	/* channel 1, regular IRQs */	regmap_write(ucregs, UC_IRQ_CONTROL, 1);	digicolor_irq_domain =		irq_domain_add_linear(node, 64, &irq_generic_chip_ops, NULL);	if (!digicolor_irq_domain) {		pr_err("%s: unable to create IRQ domain/n", node->full_name);		return -ENOMEM;	}	ret = irq_alloc_domain_generic_chips(digicolor_irq_domain, 32, 1,					     "digicolor_irq", handle_level_irq,					     clr, 0, 0);	if (ret) {		pr_err("%s: unable to allocate IRQ gc/n", node->full_name);		return ret;	}	digicolor_set_gc(reg_base, 0, IC_INT0ENABLE_LO, IC_FLAG_CLEAR_LO);	digicolor_set_gc(reg_base, 32, IC_INT0ENABLE_XLO, IC_FLAG_CLEAR_XLO);	set_handle_irq(digicolor_handle_irq);	return 0;}
开发者ID:020gzh,项目名称:linux,代码行数:48,


示例23: hi6210_i2s_probe

static int hi6210_i2s_probe(struct platform_device *pdev){	struct device_node *node = pdev->dev.of_node;	struct device *dev = &pdev->dev;	struct hi6210_i2s *i2s;	struct resource *res;	int ret;	i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL);	if (!i2s)		return -ENOMEM;	i2s->dev = dev;	spin_lock_init(&i2s->lock);	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);	i2s->base = devm_ioremap_resource(dev, res);	if (IS_ERR(i2s->base))		return PTR_ERR(i2s->base);	i2s->base_phys = (phys_addr_t)res->start;	i2s->dai = hi6210_i2s_dai_init;	dev_set_drvdata(&pdev->dev, i2s);	i2s->sysctrl = syscon_regmap_lookup_by_phandle(node,						"hisilicon,sysctrl-syscon");	if (IS_ERR(i2s->sysctrl))		return PTR_ERR(i2s->sysctrl);	i2s->clk[CLK_DACODEC] = devm_clk_get(&pdev->dev, "dacodec");	if (IS_ERR_OR_NULL(i2s->clk[CLK_DACODEC]))		return PTR_ERR(i2s->clk[CLK_DACODEC]);	i2s->clocks++;	i2s->clk[CLK_I2S_BASE] = devm_clk_get(&pdev->dev, "i2s-base");	if (IS_ERR_OR_NULL(i2s->clk[CLK_I2S_BASE]))		return PTR_ERR(i2s->clk[CLK_I2S_BASE]);	i2s->clocks++;	ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0);	if (ret)		return ret;	ret = devm_snd_soc_register_component(&pdev->dev, &hi6210_i2s_i2s_comp,					 &i2s->dai, 1);	return ret;}
开发者ID:Lyude,项目名称:linux,代码行数:48,


示例24: uniphier_pciephy_probe

static int uniphier_pciephy_probe(struct platform_device *pdev){	struct uniphier_pciephy_priv *priv;	struct phy_provider *phy_provider;	struct device *dev = &pdev->dev;	struct regmap *regmap;	struct resource *res;	struct phy *phy;	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);	if (!priv)		return -ENOMEM;	priv->data = of_device_get_match_data(dev);	if (WARN_ON(!priv->data))		return -EINVAL;	priv->dev = dev;	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);	priv->base = devm_ioremap_resource(dev, res);	if (IS_ERR(priv->base))		return PTR_ERR(priv->base);	priv->clk = devm_clk_get(dev, NULL);	if (IS_ERR(priv->clk))		return PTR_ERR(priv->clk);	priv->rst = devm_reset_control_get_shared(dev, NULL);	if (IS_ERR(priv->rst))		return PTR_ERR(priv->rst);	phy = devm_phy_create(dev, dev->of_node, &uniphier_pciephy_ops);	if (IS_ERR(phy))		return PTR_ERR(phy);	regmap = syscon_regmap_lookup_by_phandle(dev->of_node,						 "socionext,syscon");	if (!IS_ERR(regmap) && priv->data->has_syscon)		regmap_update_bits(regmap, SG_USBPCIESEL,				   SG_USBPCIESEL_PCIE, SG_USBPCIESEL_PCIE);	phy_set_drvdata(phy, priv);	phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);	return PTR_ERR_OR_ZERO(phy_provider);}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:47,


示例25: exynos_mipi_video_phy_probe

static int exynos_mipi_video_phy_probe(struct platform_device *pdev){	struct exynos_mipi_video_phy *state;	struct device *dev = &pdev->dev;	struct phy_provider *phy_provider;	unsigned int i;	state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL);	if (!state)		return -ENOMEM;	state->regmap = syscon_regmap_lookup_by_phandle(dev->of_node, "syscon");	if (IS_ERR(state->regmap)) {		struct resource *res;		dev_info(dev, "regmap lookup failed: %ld/n",			 PTR_ERR(state->regmap));		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);		state->regs = devm_ioremap_resource(dev, res);		if (IS_ERR(state->regs))			return PTR_ERR(state->regs);	}	dev_set_drvdata(dev, state);	spin_lock_init(&state->slock);	for (i = 0; i < EXYNOS_MIPI_PHYS_NUM; i++) {		struct phy *phy = devm_phy_create(dev, NULL,						  &exynos_mipi_video_phy_ops);		if (IS_ERR(phy)) {			dev_err(dev, "failed to create PHY %d/n", i);			return PTR_ERR(phy);		}		state->phys[i].phy = phy;		state->phys[i].index = i;		phy_set_drvdata(phy, &state->phys[i]);	}	phy_provider = devm_of_phy_provider_register(dev,					exynos_mipi_video_phy_xlate);	return PTR_ERR_OR_ZERO(phy_provider);}
开发者ID:020gzh,项目名称:linux,代码行数:45,


示例26: realview_soc_probe

static int realview_soc_probe(struct platform_device *pdev){	static struct regmap *syscon_regmap;	struct soc_device *soc_dev;	struct soc_device_attribute *soc_dev_attr;	struct device_node *np = pdev->dev.of_node;	int ret;	syscon_regmap = syscon_regmap_lookup_by_phandle(np, "regmap");	if (IS_ERR(syscon_regmap))		return PTR_ERR(syscon_regmap);	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);	if (!soc_dev_attr)		return -ENOMEM;	ret = of_property_read_string(np, "compatible",				      &soc_dev_attr->soc_id);	if (ret)		return -EINVAL;	soc_dev_attr->machine = "RealView";	soc_dev_attr->family = "Versatile";	soc_dev = soc_device_register(soc_dev_attr);	if (IS_ERR(soc_dev)) {		kfree(soc_dev_attr);		return -ENODEV;	}	ret = regmap_read(syscon_regmap, REALVIEW_SYS_ID_OFFSET,			  &realview_coreid);	if (ret)		return -ENODEV;	device_create_file(soc_device_to_device(soc_dev), &realview_manf_attr);	device_create_file(soc_device_to_device(soc_dev), &realview_board_attr);	device_create_file(soc_device_to_device(soc_dev), &realview_arch_attr);	device_create_file(soc_device_to_device(soc_dev), &realview_build_attr);	dev_info(&pdev->dev, "RealView Syscon Core ID: 0x%08x, HBI-%03x/n",		 realview_coreid,		 ((realview_coreid >> 16) & 0xfff));	/* FIXME: add attributes for SoC to sysfs */	return 0;}
开发者ID:513855417,项目名称:linux,代码行数:44,


示例27: syscon_poweroff_probe

static int syscon_poweroff_probe(struct platform_device *pdev){	char symname[KSYM_NAME_LEN];	int mask_err, value_err;	map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node, "regmap");	if (IS_ERR(map)) {		dev_err(&pdev->dev, "unable to get syscon");		return PTR_ERR(map);	}	if (of_property_read_u32(pdev->dev.of_node, "offset", &offset)) {		dev_err(&pdev->dev, "unable to read 'offset'");		return -EINVAL;	}	value_err = of_property_read_u32(pdev->dev.of_node, "value", &value);	mask_err = of_property_read_u32(pdev->dev.of_node, "mask", &mask);	if (value_err && mask_err) {		dev_err(&pdev->dev, "unable to read 'value' and 'mask'");		return -EINVAL;	}	if (value_err) {		/* support old binding */		value = mask;		mask = 0xFFFFFFFF;	} else if (mask_err) {		/* support value without mask*/		mask = 0xFFFFFFFF;	}	if (pm_power_off) {		lookup_symbol_name((ulong)pm_power_off, symname);		dev_err(&pdev->dev,		"pm_power_off already claimed %p %s",		pm_power_off, symname);		return -EBUSY;	}	pm_power_off = syscon_poweroff;	return 0;}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:44,


示例28: ltq_wdt_xrx_bootstatus_get

static int ltq_wdt_xrx_bootstatus_get(struct device *dev){	struct regmap *rcu_regmap;	u32 val;	int err;	rcu_regmap = syscon_regmap_lookup_by_phandle(dev->of_node, "regmap");	if (IS_ERR(rcu_regmap))		return PTR_ERR(rcu_regmap);	err = regmap_read(rcu_regmap, LTQ_XRX_RCU_RST_STAT, &val);	if (err)		return err;	if (val & LTQ_XRX_RCU_RST_STAT_WDT)		return WDIOF_CARDRESET;	return 0;}
开发者ID:avagin,项目名称:linux,代码行数:19,


示例29: ltq_wdt_falcon_bootstatus_get

static int ltq_wdt_falcon_bootstatus_get(struct device *dev){	struct regmap *rcu_regmap;	u32 val;	int err;	rcu_regmap = syscon_regmap_lookup_by_phandle(dev->of_node,						     "lantiq,rcu");	if (IS_ERR(rcu_regmap))		return PTR_ERR(rcu_regmap);	err = regmap_read(rcu_regmap, LTQ_FALCON_SYS1_CPU0RS, &val);	if (err)		return err;	if ((val & LTQ_FALCON_SYS1_CPU0RS_MASK) == LTQ_FALCON_SYS1_CPU0RS_WDT)		return WDIOF_CARDRESET;	return 0;}
开发者ID:avagin,项目名称:linux,代码行数:20,


示例30: socfpga_dwmac_parse_data

static int socfpga_dwmac_parse_data(struct socfpga_dwmac *dwmac, struct device *dev){	struct device_node *np = dev->of_node;	struct regmap *sys_mgr_base_addr;	u32 reg_offset, reg_shift;	int ret;	dwmac->stmmac_rst = devm_reset_control_get(dev,						  STMMAC_RESOURCE_NAME);	if (IS_ERR(dwmac->stmmac_rst)) {		dev_info(dev, "Could not get reset control!/n");		return -EINVAL;	}	dwmac->interface = of_get_phy_mode(np);	sys_mgr_base_addr = syscon_regmap_lookup_by_phandle(np, "altr,sysmgr-syscon");	if (IS_ERR(sys_mgr_base_addr)) {		dev_info(dev, "No sysmgr-syscon node found/n");		return PTR_ERR(sys_mgr_base_addr);	}	ret = of_property_read_u32_index(np, "altr,sysmgr-syscon", 1, &reg_offset);	if (ret) {		dev_info(dev, "Could not read reg_offset from sysmgr-syscon!/n");		return -EINVAL;	}	ret = of_property_read_u32_index(np, "altr,sysmgr-syscon", 2, &reg_shift);	if (ret) {		dev_info(dev, "Could not read reg_shift from sysmgr-syscon!/n");		return -EINVAL;	}	dwmac->reg_offset = reg_offset;	dwmac->reg_shift = reg_shift;	dwmac->sys_mgr_base_addr = sys_mgr_base_addr;	dwmac->dev = dev;	return 0;}
开发者ID:AkyZero,项目名称:wrapfs-latest,代码行数:41,



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


C++ sysconf函数代码示例
C++ syscm_get_valid_symbol_smob_arg_unsafe函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。