Lines Matching +full:iomuxc +full:- +full:gpr
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
68 * interrupt controller, which is for use when the chip is in deep-sleep mode.
69 * We don't support deep sleep or have a GPC-PIC driver; we need all interrupts
75 * set the world right by just changing the interrupt-parent property of the soc
84 * - SOC node exists and has GPC as its interrupt parent.
85 * - GPC node exists and has GIC as its interrupt parent.
86 * - GIC node exists and is its own interrupt parent or has no parent.
90 * per-soc logic. We handle this at platform attach time rather than via the
94 * This just in: as of the import of dts files from linux 4.15 on 2018-02-10,
104 static const char *propname = "interrupt-parent"; in fix_node_iparent()
107 if ((node = OF_finddevice(nodepath)) == -1) in fix_node_iparent()
125 gicnode = OF_finddevice("/soc/interrupt-controller@00a01000"); in fix_fdt_interrupt_data()
126 if (gicnode == -1) in fix_fdt_interrupt_data()
127 gicnode = OF_finddevice("/soc/interrupt-controller@a01000"); in fix_fdt_interrupt_data()
128 if (gicnode == -1) { in fix_fdt_interrupt_data()
129 gicnode = OF_finddevice("/interrupt-controller@00a01000"); in fix_fdt_interrupt_data()
130 if (gicnode == -1) in fix_fdt_interrupt_data()
131 gicnode = OF_finddevice("/interrupt-controller@a01000"); in fix_fdt_interrupt_data()
132 if (gicnode == -1) in fix_fdt_interrupt_data()
138 result = OF_getencprop(gicnode, "interrupt-parent", &gicipar, in fix_fdt_interrupt_data()
143 gpcnode = OF_finddevice("/soc/aips-bus@02000000/gpc@020dc000"); in fix_fdt_interrupt_data()
144 if (gpcnode == -1) in fix_fdt_interrupt_data()
145 gpcnode = OF_finddevice("/soc/aips-bus@2000000/gpc@20dc000"); in fix_fdt_interrupt_data()
146 if (gpcnode == -1) in fix_fdt_interrupt_data()
148 if (gpcnode == -1) in fix_fdt_interrupt_data()
150 result = OF_getencprop(gpcnode, "interrupt-parent", &gpcipar, in fix_fdt_interrupt_data()
172 * iomuxc-gpr and the regular iomuxc. The -grp node is a simple_mfd and in fix_fdt_iomuxc_data()
173 * a syscon, but it only has access to a small subset of the iomuxc in fix_fdt_iomuxc_data()
174 * registers, so it can't serve as the accessor for the iomuxc driver's in fix_fdt_iomuxc_data()
176 * preventing the real iomuxc driver from allocating its mmio register in fix_fdt_iomuxc_data()
177 * range because it partially overlaps with the -gpr range. in fix_fdt_iomuxc_data()
180 * just disable the iomuxc-gpr node because we don't have a driver for in fix_fdt_iomuxc_data()
183 * If we ever write a -gpr driver, this code should probably switch to in fix_fdt_iomuxc_data()
184 * modifying the reg property so that the range covers all the iomuxc in fix_fdt_iomuxc_data()
185 * regs, then the -gpr driver can be a regular syscon driver that iomuxc in fix_fdt_iomuxc_data()
188 node = OF_finddevice("/soc/aips-bus@2000000/iomuxc-gpr@20e0000"); in fix_fdt_iomuxc_data()
189 if (node == -1) in fix_fdt_iomuxc_data()
190 node = OF_finddevice("/soc/bus@2000000/iomuxc-gpr@20e0000"); in fix_fdt_iomuxc_data()
191 if (node != -1) in fix_fdt_iomuxc_data()
199 /* Fix soc interrupt-parent property. */ in imx6_attach()
202 /* Fix iomuxc-gpr and iomuxc nodes both using the same mmio range. */ in imx6_attach()
222 * This attempts to cover the most-used devices with 1MB section mappings, which
228 * AIPS1/AIPS2 cover most of the on-chip devices such as uart, spi, i2c, etc.
263 * This code is based on the way u-boot does it. Information found on the web
269 * (non-lite flavor). However, Freescale doesn't seem to have assigned it a
275 * register may be ncpu-1.
277 * This hasn't been tested yet on a dual[-lite].