1. 23 Apr, 2019 1 commit
  2. 11 Apr, 2019 4 commits
    • Katsuhiro Suzuki's avatar
      arm64: dts: rockchip: fix cts, rts pin assign of UART3 for rk3399 · 40a0dd42
      Katsuhiro Suzuki authored
      This patch fixes pin assign of cts and rts signal of UART3.
      
      Currently GPIO3_C2 and C3 pins are assigned but TRM says that
      GPIO3_C0 and C1 are correct.
      
      Refer:
        RK3399 TRM v1.4 - Table 19-1 UART Interface Description
      Signed-off-by: default avatarKatsuhiro Suzuki <katsuhiro@katsuster.net>
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      40a0dd42
    • Heiko Stuebner's avatar
      arm64: dts: rockchip: bulk convert gpios to their constant counterparts · d64420e8
      Heiko Stuebner authored
      Rockchip SoCs use 2 different numbering schemes. Where the gpio-
      controllers just count 0-31 for their 32 gpios, the underlying
      iomux controller splits these into 4 separate entities A-D.
      
      Device-schematics always use these iomux-values to identify pins,
      so to make mapping schematics to devicetree easier Andy Yan introduced
      named constants for the pins but so far we only used them on new
      additions.
      
      Using a sed-script created by Emil Renner Berthing bulk-convert
      the remaining raw gpio numbers into their descriptive counterparts
      and also gets rid of the unhelpful RK_FUNC_x -> x and RK_GPIOx -> x
      mappings:
      
      /rockchip,pins *=/bcheck
      b # to end of script
      :append-next-line
      N
      :check
      /^[^;]*$/bappend-next-line
      s/<RK_GPIO\([0-9]\) /<\1 /g
      s/<\([^ ][^ ]*  *\)0 /<\1RK_PA0 /g
      s/<\([^ ][^ ]*  *\)1 /<\1RK_PA1 /g
      s/<\([^ ][^ ]*  *\)2 /<\1RK_PA2 /g
      s/<\([^ ][^ ]*  *\)3 /<\1RK_PA3 /g
      s/<\([^ ][^ ]*  *\)4 /<\1RK_PA4 /g
      s/<\([^ ][^ ]*  *\)5 /<\1RK_PA5 /g
      s/<\([^ ][^ ]*  *\)6 /<\1RK_PA6 /g
      s/<\([^ ][^ ]*  *\)7 /<\1RK_PA7 /g
      s/<\([^ ][^ ]*  *\)8 /<\1RK_PB0 /g
      s/<\([^ ][^ ]*  *\)9 /<\1RK_PB1 /g
      s/<\([^ ][^ ]*  *\)10 /<\1RK_PB2 /g
      s/<\([^ ][^ ]*  *\)11 /<\1RK_PB3 /g
      s/<\([^ ][^ ]*  *\)12 /<\1RK_PB4 /g
      s/<\([^ ][^ ]*  *\)13 /<\1RK_PB5 /g
      s/<\([^ ][^ ]*  *\)14 /<\1RK_PB6 /g
      s/<\([^ ][^ ]*  *\)15 /<\1RK_PB7 /g
      s/<\([^ ][^ ]*  *\)16 /<\1RK_PC0 /g
      s/<\([^ ][^ ]*  *\)17 /<\1RK_PC1 /g
      s/<\([^ ][^ ]*  *\)18 /<\1RK_PC2 /g
      s/<\([^ ][^ ]*  *\)19 /<\1RK_PC3 /g
      s/<\([^ ][^ ]*  *\)20 /<\1RK_PC4 /g
      s/<\([^ ][^ ]*  *\)21 /<\1RK_PC5 /g
      s/<\([^ ][^ ]*  *\)22 /<\1RK_PC6 /g
      s/<\([^ ][^ ]*  *\)23 /<\1RK_PC7 /g
      s/<\([^ ][^ ]*  *\)24 /<\1RK_PD0 /g
      s/<\([^ ][^ ]*  *\)25 /<\1RK_PD1 /g
      s/<\([^ ][^ ]*  *\)26 /<\1RK_PD2 /g
      s/<\([^ ][^ ]*  *\)27 /<\1RK_PD3 /g
      s/<\([^ ][^ ]*  *\)28 /<\1RK_PD4 /g
      s/<\([^ ][^ ]*  *\)29 /<\1RK_PD5 /g
      s/<\([^ ][^ ]*  *\)30 /<\1RK_PD6 /g
      s/<\([^ ][^ ]*  *\)31 /<\1RK_PD7 /g
      s/<\([^ ][^ ]*  *[^ ][^ ]*  *\)0 /<\1RK_FUNC_GPIO /g
      s/<\([^ ][^ ]*  *[^ ][^ ]*  *\)RK_FUNC_\([1-9]\) /<\1\2 /g
      Suggested-by: default avatarEmil Renner Berthing <esmil@mailme.dk>
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Tested-by: default avatarKatsuhiro Suzuki <katsuhiro@katsuster.net>
      Acked-by: default avatarRobin Murphy <robin.murphy@arm.com>
      d64420e8
    • Leonidas P. Papadakos's avatar
      arm64: dts: rockchip: enable display nodes on rk3328-roc-cc · efd38668
      Leonidas P. Papadakos authored
      Enable necessary nodes to get output on the hdmi port of the board.
      
      This is a port of Heiko's patch for the rock64.
      Signed-off-by: default avatarLeonidas P. Papadakos <papadakospan@gmail.com>
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      efd38668
    • Leonidas P. Papadakos's avatar
      arm64: dts: rockchip: eMMC additions for rk3328-roc-cc · de674862
      Leonidas P. Papadakos authored
      The eMMC 5.x that Libre Computer provide for their boards supports HS200 mode.
      The support is already included in the dts for their newest board:
      
      La Frite (AML-S805X-AC)
      dts: arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
      
      That same eMMC is supported in the ROC-RK3328-CC:
      https://www.loverpi.com/products/libre-computer-board-emmc-5-x-module
      
      This increases the speed of the eMMC significantly.
      Signed-off-by: default avatarLeonidas P. Papadakos <papadakospan@gmail.com>
      [added supplies as suggested by Leonidas]
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      de674862
  3. 27 Mar, 2019 3 commits
    • Christoph Muellner's avatar
      arm64: dts: rockchip: Decrease emmc-phy's drive impedance on rk3399-puma · b4e17282
      Christoph Muellner authored
      The RK3399-Q7 (Puma) requires 33 Ohm drive strength to ensure signal
      integrity at HS-400 (200MHz clock, DDR signalling).
      
      A repeated EMC testing run validates that this increase does not
      negatively impact EMC compliance (emissions have ample distance to
      the regulatory limits).
      Signed-off-by: default avatarChristoph Muellner <christoph.muellner@theobroma-systems.com>
      Signed-off-by: default avatarPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
      Tested-by: default avatarJakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
      Tested-by: default avatarKlaus Goger <klaus.goger@theobroma-systems.com>
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      b4e17282
    • Christoph Muellner's avatar
      arm64: dts: rockchip: Define drive-impedance-ohm for RK3399's emmc-phy. · fb8b7460
      Christoph Muellner authored
      A previous patch introduced the property 'drive-impedance-ohm'
      for the RK3399's emmc phy node. This patch sets this value
      explicitly to the default value of 50 Ohm.
      Signed-off-by: default avatarChristoph Muellner <christoph.muellner@theobroma-systems.com>
      Signed-off-by: default avatarPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      fb8b7460
    • Christoph Muellner's avatar
      arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller. · a3eec13b
      Christoph Muellner authored
      When using direct commands (DCMDs) on an RK3399, we get spurious
      CQE completion interrupts for the DCMD transaction slot (#31):
      
      [  931.196520] ------------[ cut here ]------------
      [  931.201702] mmc1: cqhci: spurious TCN for tag 31
      [  931.206906] WARNING: CPU: 0 PID: 1433 at /usr/src/kernel/drivers/mmc/host/cqhci.c:725 cqhci_irq+0x2e4/0x490
      [  931.206909] Modules linked in:
      [  931.206918] CPU: 0 PID: 1433 Comm: irq/29-mmc1 Not tainted 4.19.8-rt6-funkadelic #1
      [  931.206920] Hardware name: Theobroma Systems RK3399-Q7 SoM (DT)
      [  931.206924] pstate: 40000005 (nZcv daif -PAN -UAO)
      [  931.206927] pc : cqhci_irq+0x2e4/0x490
      [  931.206931] lr : cqhci_irq+0x2e4/0x490
      [  931.206933] sp : ffff00000e54bc80
      [  931.206934] x29: ffff00000e54bc80 x28: 0000000000000000
      [  931.206939] x27: 0000000000000001 x26: ffff000008f217e8
      [  931.206944] x25: ffff8000f02ef030 x24: ffff0000091417b0
      [  931.206948] x23: ffff0000090aa000 x22: ffff8000f008b000
      [  931.206953] x21: 0000000000000002 x20: 000000000000001f
      [  931.206957] x19: ffff8000f02ef018 x18: ffffffffffffffff
      [  931.206961] x17: 0000000000000000 x16: 0000000000000000
      [  931.206966] x15: ffff0000090aa6c8 x14: 0720072007200720
      [  931.206970] x13: 0720072007200720 x12: 0720072007200720
      [  931.206975] x11: 0720072007200720 x10: 0720072007200720
      [  931.206980] x9 : 0720072007200720 x8 : 0720072007200720
      [  931.206984] x7 : 0720073107330720 x6 : 00000000000005a0
      [  931.206988] x5 : ffff00000860d4b0 x4 : 0000000000000000
      [  931.206993] x3 : 0000000000000001 x2 : 0000000000000001
      [  931.206997] x1 : 1bde3a91b0d4d900 x0 : 0000000000000000
      [  931.207001] Call trace:
      [  931.207005]  cqhci_irq+0x2e4/0x490
      [  931.207009]  sdhci_arasan_cqhci_irq+0x5c/0x90
      [  931.207013]  sdhci_irq+0x98/0x930
      [  931.207019]  irq_forced_thread_fn+0x2c/0xa0
      [  931.207023]  irq_thread+0x114/0x1c0
      [  931.207027]  kthread+0x128/0x130
      [  931.207032]  ret_from_fork+0x10/0x20
      [  931.207035] ---[ end trace 0000000000000002 ]---
      
      The driver shows this message only for the first spurious interrupt
      by using WARN_ONCE(). Changing this to WARN() shows, that this is
      happening quite frequently (up to once a second).
      
      Since the eMMC 5.1 specification, where CQE and CQHCI are specified,
      does not mention that spurious TCN interrupts for DCMDs can be simply
      ignored, we must assume that using this feature is not working reliably.
      
      The current implementation uses DCMD for REQ_OP_FLUSH only, and
      I could not see any performance/power impact when disabling
      this optional feature for RK3399.
      
      Therefore this patch disables DCMDs for RK3399.
      Signed-off-by: default avatarChristoph Muellner <christoph.muellner@theobroma-systems.com>
      Signed-off-by: default avatarPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>
      Fixes: 84362d79 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1")
      Cc: stable@vger.kernel.org
      [the corresponding code changes are queued for 5.2 so doing that as well]
      Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
      a3eec13b
  4. 18 Mar, 2019 20 commits
  5. 17 Mar, 2019 12 commits