1. 03 Feb, 2021 1 commit
    • Julius Werner's avatar
      qti: spmi_arb: Fix NUM_APID and REG_APID_MAP() argument · de67080f
      Julius Werner authored
      
      
      The NUM_APID value was derived from kernel device tree sources, but I
      made a conversion mistake: the amount of bytes in the APID map is the
      total size of the "core" register range (0x1100) minus the offset of the
      APID map in that range (0x900). This is of course 0x1100 - 0x900 = 0x800
      and not 0x200, so the amount of 4-byte integers it can fit is not 0x80
      but 0x200. Fix this and make the math more explicit so it can be more
      easily factored out and adjusted if that becomes necessary for a future
      SoC.
      
      Also fix a dangerous typo in REG_APID_MAP() where the macro would
      reference a random variable `i` rather than its argument (`apid`), and
      we just got lucky that the only caller in the current code happened to
      pass in a variable called `i` as that argument.
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      Change-Id: I049dd044fa5aeb65be0e7b12150afd6eb4bac0fa
      de67080f
  2. 27 Aug, 2020 1 commit
  3. 25 Aug, 2020 1 commit
    • Julius Werner's avatar
      qti: Add SPMI PMIC arbitrator driver · f40008a4
      Julius Werner authored
      
      
      This patch adds a very rudimentary driver for the SPMI arbitrator used
      to access the PMIC. It doesn't support all the controller's actual
      arbitration features, so it should probably not be used concurrently
      with a running kernel (and it's also not optimized for performance). But
      it can be used to set a few registers during boot or on shutdown to
      control reset handling, which is all we need it for.
      
      Change-Id: I8631c34a2a89ac71aa1ec9b8266e818c922fe34a
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      f40008a4