cregit-Linux how code gets into the kernel

Release 4.14 arch/powerpc/platforms/85xx/common.c

/*
 * Routines common to most mpc85xx-based boards.
 *
 * This is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <linux/of_irq.h>
#include <linux/of_platform.h>

#include <asm/fsl_pm.h>
#include <soc/fsl/qe/qe.h>
#include <sysdev/cpm2_pic.h>

#include "mpc85xx.h"


const struct fsl_pm_ops *qoriq_pm_ops;


static const struct of_device_id mpc85xx_common_ids[] __initconst = {
	{ .type = "soc", },
	{ .compatible = "soc", },
	{ .compatible = "simple-bus", },
	{ .name = "cpm", },
	{ .name = "localbus", },
	{ .compatible = "gianfar", },
	{ .compatible = "fsl,qe", },
	{ .compatible = "fsl,cpm2", },
	{ .compatible = "fsl,srio", },
	/* So that the DMA channel nodes can be probed individually: */
	{ .compatible = "fsl,eloplus-dma", },
	/* For the PMC driver */
	{ .compatible = "fsl,mpc8548-guts", },
	/* Probably unnecessary? */
	{ .compatible = "gpio-leds", },
	/* For all PCI controllers */
	{ .compatible = "fsl,mpc8540-pci", },
	{ .compatible = "fsl,mpc8548-pcie", },
	{ .compatible = "fsl,p1022-pcie", },
	{ .compatible = "fsl,p1010-pcie", },
	{ .compatible = "fsl,p1023-pcie", },
	{ .compatible = "fsl,p4080-pcie", },
	{ .compatible = "fsl,qoriq-pcie-v2.4", },
	{ .compatible = "fsl,qoriq-pcie-v2.3", },
	{ .compatible = "fsl,qoriq-pcie-v2.2", },
	{ .compatible = "fsl,fman", },
	{},
};


int __init mpc85xx_common_publish_devices(void) { return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
Dmitry Baryshkov18100.00%1100.00%
Total18100.00%1100.00%

#ifdef CONFIG_CPM2
static void cpm2_cascade(struct irq_desc *desc) { struct irq_chip *chip = irq_desc_get_chip(desc); int cascade_irq; while ((cascade_irq = cpm2_get_irq()) >= 0) generic_handle_irq(cascade_irq); chip->irq_eoi(&desc->irq_data); }

Contributors

PersonTokensPropCommitsCommitProp
Dmitry Baryshkov50100.00%1100.00%
Total50100.00%1100.00%


void __init mpc85xx_cpm2_pic_init(void) { struct device_node *np; int irq; /* Setup CPM2 PIC */ np = of_find_compatible_node(NULL, NULL, "fsl,cpm2-pic"); if (np == NULL) { printk(KERN_ERR "PIC init: can not find fsl,cpm2-pic node\n"); return; } irq = irq_of_parse_and_map(np, 0); if (!irq) { of_node_put(np); printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n"); return; } cpm2_pic_init(np); of_node_put(np); irq_set_chained_handler(irq, cpm2_cascade); }

Contributors

PersonTokensPropCommitsCommitProp
Dmitry Baryshkov8798.86%150.00%
Michael Ellerman11.14%150.00%
Total88100.00%2100.00%

#endif #ifdef CONFIG_QUICC_ENGINE
void __init mpc85xx_qe_init(void) { struct device_node *np; np = of_find_compatible_node(NULL, NULL, "fsl,qe"); if (!np) { np = of_find_node_by_name(NULL, "qe"); if (!np) { pr_err("%s: Could not find Quicc Engine node\n", __func__); return; } } if (!of_device_is_available(np)) { of_node_put(np); return; } of_node_put(np); }

Contributors

PersonTokensPropCommitsCommitProp
Xie Xiaobo7598.68%150.00%
Zhao Qiang11.32%150.00%
Total76100.00%2100.00%


void __init mpc85xx_qe_par_io_init(void) { struct device_node *np; np = of_find_node_by_name(NULL, "par_io"); if (np) { struct device_node *ucc; par_io_init(np); of_node_put(np); for_each_node_by_name(ucc, "ucc") par_io_of_config(ucc); } }

Contributors

PersonTokensPropCommitsCommitProp
Xie Xiaobo4277.78%150.00%
Zhao Qiang1222.22%150.00%
Total54100.00%2100.00%

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Dmitry Baryshkov23648.07%215.38%
Xie Xiaobo12425.25%17.69%
Jia Hongtao6413.03%17.69%
Timur Tabi244.89%17.69%
Zhao Qiang142.85%215.38%
Chen-Hui Zhao91.83%17.69%
Igal Liberman71.43%17.69%
Kumar Gala71.43%17.69%
Rob Herring30.61%17.69%
Uwe Kleine-König20.41%17.69%
Michael Ellerman10.20%17.69%
Total491100.00%13100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.