1. 26 5月, 2019 1 次提交
  2. 12 3月, 2018 1 次提交
    • M
      clk: tegra: Fix pll_u rate configuration · c35b518f
      Marcel Ziswiler 提交于
      Turns out latest upstream U-Boot does not configure/enable pll_u which
      leaves it at some default rate of 500 kHz:
      
      root@apalis-t30:~# cat /sys/kernel/debug/clk/clk_summary | grep pll_u
             pll_u                  3        3        0      500000          0
      
      Of course this won't quite work leading to the following messages:
      
      [    6.559593] usb 2-1: new full-speed USB device number 2 using tegra-
      ehci
      [   11.759173] usb 2-1: device descriptor read/64, error -110
      [   27.119453] usb 2-1: device descriptor read/64, error -110
      [   27.389217] usb 2-1: new full-speed USB device number 3 using tegra-
      ehci
      [   32.559454] usb 2-1: device descriptor read/64, error -110
      [   47.929777] usb 2-1: device descriptor read/64, error -110
      [   48.049658] usb usb2-port1: attempt power cycle
      [   48.759475] usb 2-1: new full-speed USB device number 4 using tegra-
      ehci
      [   59.349457] usb 2-1: device not accepting address 4, error -110
      [   59.509449] usb 2-1: new full-speed USB device number 5 using tegra-
      ehci
      [   70.069457] usb 2-1: device not accepting address 5, error -110
      [   70.079721] usb usb2-port1: unable to enumerate USB device
      
      Fix this by actually allowing the rate also being set from within
      the Linux kernel.
      Signed-off-by: NMarcel Ziswiler <marcel.ziswiler@toradex.com>
      Tested-by: NJon Hunter <jonathanh@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      c35b518f
  3. 24 8月, 2017 7 次提交
  4. 20 3月, 2017 1 次提交
    • P
      clk: tegra: Rework pll_u · e745f992
      Peter De Schrijver 提交于
      In normal operation pll_u is under hardware control and has a fixed rate
      of 480MHz. Hardware will turn on pll_u on whenever any of the XUSB
      powerdomains is on. From a software point of view we model this is if
      pll_u is always on using a fixed rate clock. However the bootloader
      might or might not have configured pll_u this way. So we will check the
      current state of pll_u at boot and reconfigure it if required.
      
      There are 3 possiblities at kernel boot:
      1) pll_u is under hardware control: do nothing
      2) pll_u is under hardware control and enabled: enable hardware control
      3) pll_u is disabled: enable pll_u and enable hardware control
      
      In all cases we also check if UTMIPLL is under hardware control at boot
      and configure it for hardware control if that is not the case.
      The same is done during SC7 resume.
      
      Thanks to Joseph Lo <josephl@nvidia.com> for bug fixes.
      Signed-off-by: NPeter De Schrijver <pdeschrijver@nvidia.com>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      e745f992
  5. 30 6月, 2016 1 次提交
    • A
      clk: tegra: Initialize UTMI PLL when enabling PLLU · 15d68e8c
      Andrew Bresticker 提交于
      Move the UTMI PLL initialization code form clk-tegra<chip>.c files into
      clk-pll.c. UTMI PLL was being configured and set in HW control right
      after registration. However, when the clock init_table is processed and
      child clks of PLLU are enabled, it will call in and enable PLLU as
      well, and initiate SW enabling sequence even though PLLU is already in
      HW control. This leads to getting UTMIPLL stuck with a SEQ_BUSY status.
      
      Doing the initialization once during pllu_enable means we configure it
      properly into HW control.
      
      A side effect of the commonization/localization of the UTMI PLL init
      code, is that it corrects some errors that were present for earlier
      generations. For instance, in clk-tegra124.c, it used to have:
      
          #define UTMIP_PLL_CFG1_ENABLE_DLY_COUNT(x) (((x) & 0x1f) << 6)
      
      when the correct shift to use is present in the new version:
      
          #define UTMIP_PLL_CFG1_ENABLE_DLY_COUNT(x) (((x) & 0x1f) << 27)
      
      which matches the Tegra124 TRM register definition.
      Signed-off-by: NAndrew Bresticker <abrestic@chromium.org>
      [rklein: Merged in some later fixes for potential deadlocks]
      Signed-off-by: NRhyland Klein <rklein@nvidia.com>
      [treding: coding style bike-shedding, remove unused variable]
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      15d68e8c
  6. 28 4月, 2016 1 次提交
  7. 02 2月, 2016 4 次提交
  8. 17 12月, 2015 10 次提交
  9. 21 11月, 2015 10 次提交
  10. 18 11月, 2015 1 次提交
  11. 25 8月, 2015 2 次提交
  12. 21 7月, 2015 1 次提交
    • S
      clk: tegra: Properly include clk.h · 584ac4e9
      Stephen Boyd 提交于
      Clock provider drivers generally shouldn't include clk.h because
      it's the consumer API. Only include clk.h in files that are using
      it. Also add in a clkdev.h include that was missing in a file
      using clkdev APIs.
      
      Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
      Cc: Thierry Reding <treding@nvidia.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      584ac4e9