Message ID | 1440405608-3995-4-git-send-email-kernel@martin.sperl.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/24/2015 02:40 AM, kernel@martin.sperl.org wrote: > From: Martin Sperl <kernel@martin.sperl.org> Patch description? > diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-aux.txt b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-aux.txt > +Required properties: > +- compatible: Should be "brcm,bcm2835-aux". > +- reg: Should contain register location and length for the > + enable register As I mentioned before, why not all the aux registers (that aren't part of a sub-device like SPI). > +Example: > + > +aux_enable: aux_enable@0x7e215004 { > + compatible = "bcrm,bcm2835-aux"; > + reg = <0x7e215004 0x04>; I'd expect that to be <0x7e215000 0x8>;
> On 26.08.2015, at 03:44, Stephen Warren <swarren@wwwdotorg.org> wrote: > > On 08/24/2015 02:40 AM, kernel@martin.sperl.org wrote: > >> +Example: >> + >> +aux_enable: aux_enable@0x7e215004 { >> + compatible = "bcrm,bcm2835-aux"; >> + reg = <0x7e215004 0x04>; > > I'd expect that to be <0x7e215000 0x8>; The reason is that we just handle enable with this driver, which just requires access to the 0x7e215004 register. The 0x7e215000 register (interrupt mask) could be used by a cascaded interrupt-controller, but as the spi and uart drivers can run with shared interrupts this is not a necessity. Martin
On 09/04/2015 01:26 AM, Martin Sperl wrote: > >> On 26.08.2015, at 03:44, Stephen Warren <swarren@wwwdotorg.org> wrote: >> >> On 08/24/2015 02:40 AM, kernel@martin.sperl.org wrote: >> >>> +Example: >>> + >>> +aux_enable: aux_enable@0x7e215004 { >>> + compatible = "bcrm,bcm2835-aux"; >>> + reg = <0x7e215004 0x04>; >> >> I'd expect that to be <0x7e215000 0x8>; > > The reason is that we just handle enable with this driver, > which just requires access to the 0x7e215004 register. > > The 0x7e215000 register (interrupt mask) could be used by a > cascaded interrupt-controller, but as the spi and uart drivers > can run with shared interrupts this is not a necessity. The DT is supposed to describe the HW, not any particular SW's use of the HW. If the HW block has 2 registers, so must the DT reg property.
> On 16.09.2015, at 06:12, Stephen Warren <swarren@wwwdotorg.org> wrote: > > On 09/04/2015 01:26 AM, Martin Sperl wrote: >> >>> On 26.08.2015, at 03:44, Stephen Warren <swarren@wwwdotorg.org> wrote: >>> >>> On 08/24/2015 02:40 AM, kernel@martin.sperl.org wrote: >>> >>>> +Example: >>>> + >>>> +aux_enable: aux_enable@0x7e215004 { >>>> + compatible = "bcrm,bcm2835-aux"; >>>> + reg = <0x7e215004 0x04>; >>> >>> I'd expect that to be <0x7e215000 0x8>; >> >> The reason is that we just handle enable with this driver, >> which just requires access to the 0x7e215004 register. >> >> The 0x7e215000 register (interrupt mask) could be used by a >> cascaded interrupt-controller, but as the spi and uart drivers >> can run with shared interrupts this is not a necessity. > > The DT is supposed to describe the HW, not any particular SW's use of > the HW. If the HW block has 2 registers, so must the DT reg property. Please look at V6 of the patch-series, that uses Erics clock-patch.
diff --git a/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-aux.txt b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-aux.txt new file mode 100644 index 0000000..8b79cf3 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-aux.txt @@ -0,0 +1,27 @@ +Broadcom BCM2835 auxiliar device enable register + +the BCM2835 contains 3 auxiliar devices (spi1/spi2/uart1) +which need to get enabled via a shared register. + +Required properties: +- compatible: Should be "brcm,bcm2835-aux". +- reg: Should contain register location and length for the + enable register + +Example: + +aux_enable: aux_enable@0x7e215004 { + compatible = "bcrm,bcm2835-aux"; + reg = <0x7e215004 0x04>; +}; + +Typically used in the respective auxiliar device descriptions +like this: + +uart1: uart@7e215040 { + ... + brcm,aux-enable = <&aux_enable 1>; + ... +}; + +The name of the property can be device/driver specific.