Date: Mon, 25 Jul 2016 10:32:24 -0600 From: Warner Losh <imp@bsdimp.com> To: Nathan Whitehorn <nwhitehorn@freebsd.org> Cc: Michal Meloun <mmel@freebsd.org>, Svatopluk Kraus <skra@freebsd.org>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>, "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org> Subject: Re: INTRNG (Was: svn commit: r301453....) Message-ID: <CANCZdfr%2BZ4XxXRY0yMiWXwp=8iKq54y3uJ9-OfAOdfxAs1qdtw@mail.gmail.com> In-Reply-To: <e2cace17-0924-2084-5fcf-626f87e41cc3@freebsd.org> References: <201606051620.u55GKD5S066398@repo.freebsd.org> <b9606755-69cb-2cb0-04d7-6be32e4cb89e@freebsd.org> <578E0B5D.3070105@FreeBSD.org> <e026f6fc-76ed-5dbe-00fc-365b6d7bcf94@freebsd.org> <578F6075.7010500@FreeBSD.org> <05a80ac6-4285-ec9d-36e9-2f92c609f746@freebsd.org> <57907B0F.9070204@FreeBSD.org> <9d2a224c-b787-2875-5984-a7a2354e8695@freebsd.org> <57934ABD.6010807@FreeBSD.org> <4e7a3e8f-cc21-f5f2-e3e0-4dbd554a4cd0@freebsd.org> <5794720F.4050303@FreeBSD.org> <8bfd8668-bc49-e109-e610-b5cd470be3ec@freebsd.org> <57950005.6070403@FreeBSD.org> <f82018ee-51e7-60fa-2682-f0ef307a52b5@freebsd.org> <57961549.4020105@FreeBSD.org> <e2cace17-0924-2084-5fcf-626f87e41cc3@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 25, 2016 at 8:05 AM, Nathan Whitehorn <nwhitehorn@freebsd.org> wrote: > That wasn't my question. Are these particular device drivers allocating > interrupts both on the GPIOs in their "interrupts" property (which are > entirely GPIOs in this example) *and* on the GPIOs listed as resources but > not listed as interrupts? If they are, then you need a switching mechanism, > but that seems pretty unlikely given the names of the non-interrupt GPIOs > (they look like outputs). It would also be a somewhat deranged way to set up > a device tree -- not that that rules it out or anything. On Atmel, there's a situation that this covers, I think. The MCI device has an interrupt in the core: mmc0: mmc@fffa8000 { compatible = "atmel,hsmci"; reg = <0xfffa8000 0x600>; interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>; #address-cells = <1>; #size-cells = <0>; pinctrl-names = "default"; clocks = <&mci0_clk>; clock-names = "mci_clk"; status = "disabled"; }; and in other places wires in GPIO interrupts for things like card eject / insertion. mmc0: mmc@f0008000 { pinctrl-0 = < &pinctrl_board_mmc0 &pinctrl_mmc0_slot0_clk_cmd_dat0 &pinctrl_mmc0_slot0_dat1_3>; status = "okay"; slot@0 { reg = <0>; bus-width = <4>; cd-gpios = <&pioD 15 GPIO_ACTIVE_HIGH>; }; }; an interrupt is registered on the cd-gpios pin for when the card changes. At least in linux, FreeBSD doesn't (yet) implement this, but will someday if I get back to the armv6 atmel work I started (see at91-cosino.dts for example, there's others). I think this is an example of what you are asking about, or did I get lost in the twisty maze of conversation zigs and zags... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfr%2BZ4XxXRY0yMiWXwp=8iKq54y3uJ9-OfAOdfxAs1qdtw>