From: Purna Chandra Mandal <purna.mandal@microchip.com>
To: Rob Herring <robh@kernel.org>
Cc: Joshua Henderson <joshua.henderson@microchip.com>,
<linux-kernel@vger.kernel.org>, <linux-mips@linux-mips.org>,
<ralf@linux-mips.org>, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v2 03/14] DEVICETREE: Add PIC32 clock binding documentation
Date: Sat, 19 Dec 2015 17:18:55 +0530 [thread overview]
Message-ID: <56754427.8050704@microchip.com> (raw)
In-Reply-To: <20151218154444.GA27288@rob-hp-laptop>
On 12/18/2015 09:14 PM, Rob Herring wrote:
> On Mon, Dec 14, 2015 at 03:42:05PM -0700, Joshua Henderson wrote:
>> From: Purna Chandra Mandal <purna.mandal@microchip.com>
>>
>> Document the devicetree bindings for the clock driver found on Microchip
>> PIC32 class devices.
>>
>> Signed-off-by: Purna Chandra Mandal <purna.mandal@microchip.com>
>> Signed-off-by: Joshua Henderson <joshua.henderson@microchip.com>
>> Cc: Ralf Baechle <ralf@linux-mips.org>
> A couple of nits on the example, otherwise:
>
> Acked-by: Rob Herring <robh@kernel.org>
>
>> ---
>> .../devicetree/bindings/clock/microchip,pic32.txt | 256 ++++++++++++++++++++
>> 1 file changed, 256 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/clock/microchip,pic32.txt
>>
>> diff --git a/Documentation/devicetree/bindings/clock/microchip,pic32.txt b/Documentation/devicetree/bindings/clock/microchip,pic32.txt
>> new file mode 100644
>> index 0000000..f50c653
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/microchip,pic32.txt
>> @@ -0,0 +1,256 @@
>> +Binding for a Clock hardware block found on
>> +certain Microchip PIC32 MCU devices.
>> +
>> +Microchip SoC clocks-node consists of few oscillators, PLL, multiplexer
>> +and few divider nodes.
>> +
>> +We will find only the base address of the clock tree, this base
>> +address is common for some of the subnodes, not all. If no address is
>> +specified for any of subnode base address of the clock tree will be
>> +treated as its base. Each of subnodes follow the same common clock
>> +binding with some additional optional properties.
>> +
>> + clocks_node {
>> + reg = <>;
>> +
>> + spll_node {
>> + ...
>> + };
>> +
>> + frcdiv_node {
>> + ...
>> + };
>> +
>> + sysclk_mux_node {
>> + ...
>> + };
>> +
>> + pbdiv_node {
>> + ...
>> + };
>> +
>> + refoclk_node {
>> + ...
>> + };
>> + ...
>> + };
>> +
>> +This binding uses the common clock binding[1].
>> +
>> +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
>> +
>> +Required properties:
>> +- compatible : should be one of "microchip,pic32mzda-clk",
>> + "microchip,pic32mzda-sosc", "microchip,pic32mzda-frcdivclk",
>> + "microchip,pic32mzda-syspll", "microchip,pic32mzda-sysclk-v2",
>> + "microchip,pic32mzda-pbclk", "microchip,pic32mzda-refoclk".
>> +- reg : A Base address and length of the register set.
>> +- interrupts : source of interrupt.
>> +
>> +Optional properties (for subnodes):
>> +- #clock-cells: From common clock binding, should be 0.
>> +- microchip,clock-indices: in multiplexer node clock sources always aren't linear
>> + and contiguous. This property helps define clock-sources with respect to
>> + the mux clock node.
>> +- microchip,ignore-unused : ignore gate request even if the gated clock is unused.
>> +- microchip,status-bit-mask: bitmask for status check. This will be used to confirm
>> + particular operation by clock sub-node is completed. It is dependent sub-node.
>> +- microchip,bit-mask: enable mask, similar to microchip,status-bit-mask.
>> +- microchip,slew-step: enable frequency slewing(stepping) during rate change;
>> + applicable only to sys-clock subnode.
>> +
>> +Example:
>> +
>> +/* PIC32 specific clks */
>> +pic32_clktree {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + reg = <0x1f801200 0x200>;
>> + compatible = "microchip,pic32mzda-clk";
>> + ranges = <0 0x1f801200 0x200>;
>> +
>> + /* secondary oscillator; external input on SOSCI pin */
>> + SOSC:sosc_clk {
> For the ones with reg property, do clock@0 instead of sosc_clk.
ack. Will update.
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-sosc";
>> + clock-frequency = <32768>;
>> + reg = <0x000 0x10>, /* enable reg */
>> + <0x1d0 0x10>; /* status reg */
>> + microchip,bit-mask = <0x02>; /* enable mask */
>> + microchip,status-bit-mask = <0x10>; /* status-mask*/
>> + };
>> +
>> + FRCDIV:frcdiv_clk {
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-frcdivclk";
>> + clocks = <&FRC>;
>> + clock-output-names = "frcdiv_clk";
>> + };
>> +
>> + /* System PLL clock */
>> + SYSPLL:spll_clk {
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-syspll";
>> + reg = <0x020 0x10>, /* SPLL register */
>> + <0x1d0 0x10>; /* CLKSTAT register */
>> + clocks = <&POSC>, <&FRC>;
>> + clock-output-names = "sys_pll";
>> + microchip,status-bit-mask = <0x80>; /* SPLLRDY */
>> + };
>> +
>> + /* system clock; mux with postdiv & slew */
>> + SYSCLK:sys_clk {
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-sysclk-v2";
>> + reg = <0x1c0 0x04>; /* SLEWCON */
>> + clocks = <&FRCDIV>, <&SYSPLL>, <&POSC>, <&SOSC>,
>> + <&LPRC>, <&FRCDIV>;
>> + microchip,clock-indices = <0>, <1>, <2>, <4>, <5>, <7>;
>> + clock-output-names = "sys_clk";
>> + };
>> +
>> + /* UPLL is integral part of USB PHY; UTMI clk for USBCORE */
>> + UPLL:usb_phy_clk {
>> + #clock-cells = <0>;
>> + compatible = "fixed-clocks";
>> + clock-frequency = <24000000>;
>> + clock-output-names = "usbphy_clk";
>> + };
>> +
>> + /* Peripheral bus1 clock */
>> + PBCLK1:pb1_clk {
>> + reg = <0x140 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb1_clk";
>> + /* used by system modules, not gateable */
>> + microchip,ignore-unused;
>> + };
>> +
>> + /* Peripheral bus2 clock */
>> + PBCLK2:pb2_clk {
>> + reg = <0x150 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb2_clk";
>> + /* avoid gating even if unused */
>> + microchip,ignore-unused;
>> + };
>> +
>> + /* Peripheral bus3 clock */
>> + PBCLK3:pb3_clk {
>> + reg = <0x160 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb3_clk";
>> + };
>> +
>> + /* Peripheral bus4 clock(I/O ports, GPIO) */
>> + PBCLK4:pb4_clk {
>> + reg = <0x170 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb4_clk";
>> + };
>> +
>> + /* Peripheral bus clock */
>> + PBCLK5:pb5_clk {
>> + reg = <0x180 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb5_clk";
>> + };
>> +
>> + /* Peripheral Bus6 clock; */
>> + PBCLK6:pb6_clk {
>> + reg = <0x190 0x10>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + #clock-cells = <0>;
>> + };
>> +
>> + /* Peripheral bus7 clock */
>> + PBCLK7:pb7_clk {
>> + reg = <0x1A0 0x10>;
> lower case
ack.
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + /* CPU is driven by this clock; so named */
>> + clock-output-names = "cpu_clk";
>> + clocks = <&SYSCLK>;
>> + };
>> +
>> + /* Reference Oscillator clock for SPI/I2S */
>> + REFCLKO1:refo1_clk {
>> + reg = <0x080 0x20>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>, <9>;
>> + clock-output-names = "refo1_clk";
>> + };
>> +
>> + /* Reference Oscillator clock for SQI */
>> + REFCLKO2:refo2_clk {
>> + reg = <0x0A0 0x20>;
> lower case
ack.
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>, <9>;
>> + clock-output-names = "refo2_clk";
>> + };
>> +
>> + /* Reference Oscillator clock, ADC */
>> + REFCLKO3:refo3_clk {
>> + reg = <0x0C0 0x20>;
> lower case
ack.
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>, <9>;
>> + #clock-cells = <0>;
>> + clock-output-names = "refo3_clk";
>> + };
>> +
>> + /* Reference Oscillator clock */
>> + REFCLKO4:refo4_clk {
>> + reg = <0x0E0 0x20>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>,<1>,<2>,<3>,<4>,<5>,<7>,
>> + <8>,<9>;
>> + #clock-cells = <0>;
>> + clock-output-names = "refo4_clk";
>> + };
>> +
>> + /* Reference Oscillator clock, LCD */
>> + REFCLKO5:refo5_clk {
>> + reg = <0x100 0x20>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>,<&PBCLK1>,<&POSC>,<&FRC>,<&LPRC>,
>> + <&SOSC>,<&SYSPLL>,<&REFIx>,<&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>,<9>;
>> + #clock-cells = <0>;
>> + clock-output-names = "refo5_clk";
>> + };
>> +};
>> +
>> +The clock consumer should specify the desired clock by having the clocks in its
>> +"clock" phandle cell. For example for UART:
>> +
>> +uart2: serial@<> {
>> + compatible = "microchip,pic32mzda-uart";
>> + reg = <>;
>> + interrupts = <>;
>> + clocks = <&PBCLK2>;
>> +}
>> --
>> 1.7.9.5
>>
WARNING: multiple messages have this Message-ID (diff)
From: Purna Chandra Mandal <purna.mandal@microchip.com>
To: Rob Herring <robh@kernel.org>
Cc: Joshua Henderson <joshua.henderson@microchip.com>,
linux-kernel@vger.kernel.org, linux-mips@linux-mips.org,
ralf@linux-mips.org, Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
devicetree@vger.kernel.org
Subject: Re: [PATCH v2 03/14] DEVICETREE: Add PIC32 clock binding documentation
Date: Sat, 19 Dec 2015 17:18:55 +0530 [thread overview]
Message-ID: <56754427.8050704@microchip.com> (raw)
Message-ID: <20151219114855.82mk1b5C3wn5ktGUyQSbPZV9TXog98xLXpt58yx3yVw@z> (raw)
In-Reply-To: <20151218154444.GA27288@rob-hp-laptop>
On 12/18/2015 09:14 PM, Rob Herring wrote:
> On Mon, Dec 14, 2015 at 03:42:05PM -0700, Joshua Henderson wrote:
>> From: Purna Chandra Mandal <purna.mandal@microchip.com>
>>
>> Document the devicetree bindings for the clock driver found on Microchip
>> PIC32 class devices.
>>
>> Signed-off-by: Purna Chandra Mandal <purna.mandal@microchip.com>
>> Signed-off-by: Joshua Henderson <joshua.henderson@microchip.com>
>> Cc: Ralf Baechle <ralf@linux-mips.org>
> A couple of nits on the example, otherwise:
>
> Acked-by: Rob Herring <robh@kernel.org>
>
>> ---
>> .../devicetree/bindings/clock/microchip,pic32.txt | 256 ++++++++++++++++++++
>> 1 file changed, 256 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/clock/microchip,pic32.txt
>>
>> diff --git a/Documentation/devicetree/bindings/clock/microchip,pic32.txt b/Documentation/devicetree/bindings/clock/microchip,pic32.txt
>> new file mode 100644
>> index 0000000..f50c653
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/microchip,pic32.txt
>> @@ -0,0 +1,256 @@
>> +Binding for a Clock hardware block found on
>> +certain Microchip PIC32 MCU devices.
>> +
>> +Microchip SoC clocks-node consists of few oscillators, PLL, multiplexer
>> +and few divider nodes.
>> +
>> +We will find only the base address of the clock tree, this base
>> +address is common for some of the subnodes, not all. If no address is
>> +specified for any of subnode base address of the clock tree will be
>> +treated as its base. Each of subnodes follow the same common clock
>> +binding with some additional optional properties.
>> +
>> + clocks_node {
>> + reg = <>;
>> +
>> + spll_node {
>> + ...
>> + };
>> +
>> + frcdiv_node {
>> + ...
>> + };
>> +
>> + sysclk_mux_node {
>> + ...
>> + };
>> +
>> + pbdiv_node {
>> + ...
>> + };
>> +
>> + refoclk_node {
>> + ...
>> + };
>> + ...
>> + };
>> +
>> +This binding uses the common clock binding[1].
>> +
>> +[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
>> +
>> +Required properties:
>> +- compatible : should be one of "microchip,pic32mzda-clk",
>> + "microchip,pic32mzda-sosc", "microchip,pic32mzda-frcdivclk",
>> + "microchip,pic32mzda-syspll", "microchip,pic32mzda-sysclk-v2",
>> + "microchip,pic32mzda-pbclk", "microchip,pic32mzda-refoclk".
>> +- reg : A Base address and length of the register set.
>> +- interrupts : source of interrupt.
>> +
>> +Optional properties (for subnodes):
>> +- #clock-cells: From common clock binding, should be 0.
>> +- microchip,clock-indices: in multiplexer node clock sources always aren't linear
>> + and contiguous. This property helps define clock-sources with respect to
>> + the mux clock node.
>> +- microchip,ignore-unused : ignore gate request even if the gated clock is unused.
>> +- microchip,status-bit-mask: bitmask for status check. This will be used to confirm
>> + particular operation by clock sub-node is completed. It is dependent sub-node.
>> +- microchip,bit-mask: enable mask, similar to microchip,status-bit-mask.
>> +- microchip,slew-step: enable frequency slewing(stepping) during rate change;
>> + applicable only to sys-clock subnode.
>> +
>> +Example:
>> +
>> +/* PIC32 specific clks */
>> +pic32_clktree {
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + reg = <0x1f801200 0x200>;
>> + compatible = "microchip,pic32mzda-clk";
>> + ranges = <0 0x1f801200 0x200>;
>> +
>> + /* secondary oscillator; external input on SOSCI pin */
>> + SOSC:sosc_clk {
> For the ones with reg property, do clock@0 instead of sosc_clk.
ack. Will update.
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-sosc";
>> + clock-frequency = <32768>;
>> + reg = <0x000 0x10>, /* enable reg */
>> + <0x1d0 0x10>; /* status reg */
>> + microchip,bit-mask = <0x02>; /* enable mask */
>> + microchip,status-bit-mask = <0x10>; /* status-mask*/
>> + };
>> +
>> + FRCDIV:frcdiv_clk {
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-frcdivclk";
>> + clocks = <&FRC>;
>> + clock-output-names = "frcdiv_clk";
>> + };
>> +
>> + /* System PLL clock */
>> + SYSPLL:spll_clk {
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-syspll";
>> + reg = <0x020 0x10>, /* SPLL register */
>> + <0x1d0 0x10>; /* CLKSTAT register */
>> + clocks = <&POSC>, <&FRC>;
>> + clock-output-names = "sys_pll";
>> + microchip,status-bit-mask = <0x80>; /* SPLLRDY */
>> + };
>> +
>> + /* system clock; mux with postdiv & slew */
>> + SYSCLK:sys_clk {
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-sysclk-v2";
>> + reg = <0x1c0 0x04>; /* SLEWCON */
>> + clocks = <&FRCDIV>, <&SYSPLL>, <&POSC>, <&SOSC>,
>> + <&LPRC>, <&FRCDIV>;
>> + microchip,clock-indices = <0>, <1>, <2>, <4>, <5>, <7>;
>> + clock-output-names = "sys_clk";
>> + };
>> +
>> + /* UPLL is integral part of USB PHY; UTMI clk for USBCORE */
>> + UPLL:usb_phy_clk {
>> + #clock-cells = <0>;
>> + compatible = "fixed-clocks";
>> + clock-frequency = <24000000>;
>> + clock-output-names = "usbphy_clk";
>> + };
>> +
>> + /* Peripheral bus1 clock */
>> + PBCLK1:pb1_clk {
>> + reg = <0x140 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb1_clk";
>> + /* used by system modules, not gateable */
>> + microchip,ignore-unused;
>> + };
>> +
>> + /* Peripheral bus2 clock */
>> + PBCLK2:pb2_clk {
>> + reg = <0x150 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb2_clk";
>> + /* avoid gating even if unused */
>> + microchip,ignore-unused;
>> + };
>> +
>> + /* Peripheral bus3 clock */
>> + PBCLK3:pb3_clk {
>> + reg = <0x160 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb3_clk";
>> + };
>> +
>> + /* Peripheral bus4 clock(I/O ports, GPIO) */
>> + PBCLK4:pb4_clk {
>> + reg = <0x170 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb4_clk";
>> + };
>> +
>> + /* Peripheral bus clock */
>> + PBCLK5:pb5_clk {
>> + reg = <0x180 0x10>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + clock-output-names = "pb5_clk";
>> + };
>> +
>> + /* Peripheral Bus6 clock; */
>> + PBCLK6:pb6_clk {
>> + reg = <0x190 0x10>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + clocks = <&SYSCLK>;
>> + #clock-cells = <0>;
>> + };
>> +
>> + /* Peripheral bus7 clock */
>> + PBCLK7:pb7_clk {
>> + reg = <0x1A0 0x10>;
> lower case
ack.
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-pbclk";
>> + /* CPU is driven by this clock; so named */
>> + clock-output-names = "cpu_clk";
>> + clocks = <&SYSCLK>;
>> + };
>> +
>> + /* Reference Oscillator clock for SPI/I2S */
>> + REFCLKO1:refo1_clk {
>> + reg = <0x080 0x20>;
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>, <9>;
>> + clock-output-names = "refo1_clk";
>> + };
>> +
>> + /* Reference Oscillator clock for SQI */
>> + REFCLKO2:refo2_clk {
>> + reg = <0x0A0 0x20>;
> lower case
ack.
>> + #clock-cells = <0>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>, <9>;
>> + clock-output-names = "refo2_clk";
>> + };
>> +
>> + /* Reference Oscillator clock, ADC */
>> + REFCLKO3:refo3_clk {
>> + reg = <0x0C0 0x20>;
> lower case
ack.
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>, <9>;
>> + #clock-cells = <0>;
>> + clock-output-names = "refo3_clk";
>> + };
>> +
>> + /* Reference Oscillator clock */
>> + REFCLKO4:refo4_clk {
>> + reg = <0x0E0 0x20>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>, <&PBCLK1>, <&POSC>, <&FRC>, <&LPRC>,
>> + <&SOSC>, <&SYSPLL>, <&REFIx>, <&BFRC>;
>> + microchip,clock-indices = <0>,<1>,<2>,<3>,<4>,<5>,<7>,
>> + <8>,<9>;
>> + #clock-cells = <0>;
>> + clock-output-names = "refo4_clk";
>> + };
>> +
>> + /* Reference Oscillator clock, LCD */
>> + REFCLKO5:refo5_clk {
>> + reg = <0x100 0x20>;
>> + compatible = "microchip,pic32mzda-refoclk";
>> + clocks = <&SYSCLK>,<&PBCLK1>,<&POSC>,<&FRC>,<&LPRC>,
>> + <&SOSC>,<&SYSPLL>,<&REFIx>,<&BFRC>;
>> + microchip,clock-indices = <0>, <1>, <2>, <3>, <4>, <5>,
>> + <7>, <8>,<9>;
>> + #clock-cells = <0>;
>> + clock-output-names = "refo5_clk";
>> + };
>> +};
>> +
>> +The clock consumer should specify the desired clock by having the clocks in its
>> +"clock" phandle cell. For example for UART:
>> +
>> +uart2: serial@<> {
>> + compatible = "microchip,pic32mzda-uart";
>> + reg = <>;
>> + interrupts = <>;
>> + clocks = <&PBCLK2>;
>> +}
>> --
>> 1.7.9.5
>>
next prev parent reply other threads:[~2015-12-19 11:50 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-14 22:42 [PATCH v2 00/14] Initial Microchip PIC32MZDA Support Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` [PATCH v2 01/14] DEVICETREE: Add bindings for PIC32 interrupt controller Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 23:34 ` Rob Herring
2015-12-14 23:34 ` Rob Herring
2015-12-14 22:42 ` [PATCH v2 02/14] irqchip: irq-pic32-evic: Add support " Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-15 17:00 ` Marc Zyngier
2016-01-05 17:50 ` Joshua Henderson
2016-01-05 17:50 ` Joshua Henderson
2015-12-14 22:42 ` [PATCH v2 03/14] DEVICETREE: Add PIC32 clock binding documentation Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-18 15:44 ` Rob Herring
2015-12-18 15:44 ` Rob Herring
2015-12-19 11:48 ` Purna Chandra Mandal [this message]
2015-12-19 11:48 ` Purna Chandra Mandal
2015-12-14 22:42 ` [PATCH v2 04/14] clk: clk-pic32: Add PIC32 clock driver Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` [PATCH v2 05/14] DEVICETREE: Add bindings for PIC32/MZDA platforms Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-18 15:47 ` Rob Herring
2015-12-14 22:42 ` [PATCH v2 06/14] MIPS: Add support for PIC32MZDA platform Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` [PATCH v2 07/14] DEVICETREE: Add bindings for PIC32 pin control and GPIO Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-15 19:58 ` Rob Herring
2015-12-15 19:58 ` Rob Herring
2015-12-14 22:42 ` [PATCH v2 08/14] pinctrl: pinctrl-pic32: Add PIC32 pin control driver Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` [PATCH v2 09/14] DEVICETREE: Add bindings for PIC32 UART driver Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-15 20:00 ` Rob Herring
2015-12-14 22:42 ` [PATCH v2 10/14] serial: pic32_uart: Add " Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
[not found] ` <1450133093-7053-11-git-send-email-joshua.henderson-UWL1GkI3JZL3oGB3hsPCZA@public.gmane.org>
2015-12-20 16:13 ` Andy Shevchenko
2015-12-20 16:13 ` Andy Shevchenko
2016-01-05 20:29 ` Paul.Thacker
2016-01-05 20:29 ` Paul.Thacker
2016-01-05 20:43 ` One Thousand Gnomes
2016-01-05 20:43 ` One Thousand Gnomes
2016-01-06 22:00 ` Paul.Thacker
2016-01-06 22:00 ` Paul.Thacker
2016-01-06 22:32 ` One Thousand Gnomes
2016-01-06 22:32 ` One Thousand Gnomes
2015-12-14 22:42 ` [PATCH v2 11/14] DEVICETREE: Add bindings for PIC32 SDHCI host controller Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-15 20:00 ` Rob Herring
2015-12-15 20:00 ` Rob Herring
2015-12-14 22:42 ` [PATCH v2 12/14] mmc: sdhci-pic32: Add PIC32 SDHCI host controller driver Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-15 0:32 ` Andy Green
2015-12-16 17:35 ` Paul.Thacker
2015-12-16 17:35 ` Paul.Thacker
2015-12-16 17:35 ` Paul.Thacker
2015-12-16 10:48 ` Ulf Hansson
2015-12-16 10:48 ` Ulf Hansson
2015-12-16 10:48 ` Ulf Hansson
2015-12-16 10:48 ` Ulf Hansson
2015-12-17 18:05 ` Paul.Thacker
2015-12-17 18:05 ` Paul.Thacker
2015-12-17 18:05 ` Paul.Thacker
2015-12-14 22:42 ` [PATCH v2 13/14] MIPS: dts: Add initial DTS for the PIC32MZDA Starter Kit Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
2015-12-14 22:42 ` [PATCH v2 14/14] MIPS: pic32mzda: Add initial PIC32MZDA Starter Kit defconfig Joshua Henderson
2015-12-14 22:42 ` Joshua Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56754427.8050704@microchip.com \
--to=purna.mandal@microchip.com \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=joshua.henderson@microchip.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=ralf@linux-mips.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.