Re: [PATCH 7/8] ARM: dts: dra7: Add USB related nodes

From: Felipe Balbi
Date: Fri Mar 14 2014 - 15:50:56 EST


On Fri, Mar 14, 2014 at 05:34:29PM +0200, Roger Quadros wrote:
> On 03/14/2014 04:54 PM, Kishon Vijay Abraham I wrote:
> >
> >
> > On Friday 14 March 2014 05:41 PM, Roger Quadros wrote:
> >> On 03/14/2014 12:38 PM, Kishon Vijay Abraham I wrote:
> >>> Hi Roger,
> >>>
> >>> On Friday 07 March 2014 06:39 PM, Roger Quadros wrote:
> >>>> Add nodes for the Super Speed USB controllers, omap-control-usb,
> >>>> USB2 PHY and USB3 PHY devices.
> >>>>
> >>>> Remove ocp2scp1 address space from hwmod data as it is
> >>>> now provided via device tree.
> >>>>
> >>>> Signed-off-by: Roger Quadros <rogerq@xxxxxx>
> >>>> ---
> >>>> arch/arm/boot/dts/dra7.dtsi | 110 ++++++++++++++++++++++++++++++
> >>>> arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 10 ---
> >>>> 2 files changed, 110 insertions(+), 10 deletions(-)
> >>>>
> >>>> diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
> >>>> index 597979b..1e73900 100644
> >>>> --- a/arch/arm/boot/dts/dra7.dtsi
> >>>> +++ b/arch/arm/boot/dts/dra7.dtsi
> >>>> @@ -811,6 +811,116 @@
> >>>> clocks = <&sata_ref_clk>;
> >>>> ti,hwmods = "sata";
> >>>> };
> >>>> +
> >>>> + omap_control_usb2phy1: control-phy@4a002300 {
> >>>> + compatible = "ti,control-phy-usb2";
> >>>> + reg = <0x4a002300 0x4>;
> >>>> + reg-names = "power";
> >>>> + };
> >>>> +
> >>>> + omap_control_usb3phy1: control-phy@4a002370 {
> >>>> + compatible = "ti,control-phy-pipe3";
> >>>> + reg = <0x4a002370 0x4>;
> >>>> + reg-names = "power";
> >>>> + };
> >>>> +
> >>>> + omap_control_usb2phy2: control-phy@0x4a002e74 {
> >>>> + compatible = "ti,control-phy-usb2-dra7";
> >>>> + reg = <0x4a002e74 0x4>;
> >>>> + reg-names = "power";
> >>>> + };
> >>>> +
> >>>> + /* OCP2SCP1 */
> >>>> + ocp2scp@4a080000 {
> >>>> + compatible = "ti,omap-ocp2scp";
> >>>> + #address-cells = <1>;
> >>>> + #size-cells = <1>;
> >>>> + ranges;
> >>>> + reg = <0x4a080000 0x20>;
> >>>> + ti,hwmods = "ocp2scp1";
> >>>> +
> >>>> + usb2_phy1: phy@4a084000 {
> >>>> + compatible = "ti,omap-usb2";
> >>>> + reg = <0x4a084000 0x400>;
> >>>> + ctrl-module = <&omap_control_usb2phy1>;
> >>>> + clocks = <&usb_phy1_always_on_clk32k>,
> >>>> + <&usb_otg_ss1_refclk960m>;
> >>>> + clock-names = "wkupclk",
> >>>> + "refclk";
> >>>> + #phy-cells = <0>;
> >>>> + };
> >>>> +
> >>>> + usb2_phy2: phy@4a085000 {
> >>>> + compatible = "ti,omap-usb2";
> >>>> + reg = <0x4a085000 0x400>;
> >>>> + ctrl-module = <&omap_control_usb2phy2>;
> >>>> + clocks = <&usb_phy2_always_on_clk32k>,
> >>>> + <&usb_otg_ss2_refclk960m>;
> >>>> + clock-names = "wkupclk",
> >>>> + "refclk";
> >>>> + #phy-cells = <0>;
> >>>> + };
> >>>> +
> >>>> + usb3_phy1: phy@4a084400 {
> >>>> + compatible = "ti,omap-usb3";
> >>>> + reg = <0x4a084400 0x80>,
> >>>> + <0x4a084800 0x64>,
> >>>> + <0x4a084c00 0x40>;
> >>>> + reg-names = "phy_rx", "phy_tx", "pll_ctrl";
> >>>> + ctrl-module = <&omap_control_usb3phy1>;
> >>>> + clocks = <&usb_phy3_always_on_clk32k>,
> >>>> + <&sys_clkin1>,
> >>>> + <&usb_otg_ss1_refclk960m>,
> >>>> + <&dpll_core_h13x2_ck>;
> >>>> + clock-names = "wkupclk",
> >>>> + "sysclk",
> >>>> + "refclk",
> >>>> + "optclk";
> >>>
> >>> Do we use this 'optclk' in driver?
> >>
> >> No we don't. Still the device seems to work without it.
> >> This is supposed to be USB_LFPS_TX_GFCLK or USB3PHY_REF_CLK.
> >
> > I think it should be enabled. Did you check the status of this clock
> > in CM_L3INIT_CLKSTCTRL? Moreover USB_LFPS_TX_GFCLK is an interface
> > clock, so IIUC setting the module mode will enable it.
> >
> > Btw how did you tell dpll_core_h13x2_ck enables USB_LFPS_TX_GFCLK?
> >
>
> From the clock tree tool. It looks like the clock is gated
> automatically with the module mode as you suggested. I'll get rid of
> this clock reference then.

note that we can change the input clock of some parts of dwc3, maybe
that's why it works without, we're probably using another clock as
input.

--
balbi

Attachment: signature.asc
Description: Digital signature