diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2014-06-10 21:28:10 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2014-06-13 20:28:21 +0300 |
commit | 71874f4a52878caabe5c2ccd499bab41633fa156 (patch) | |
tree | 11b3f3ed6b4c1fea8eeee8be9ea9908ac4e976a9 /lib | |
parent | a49906e26616c405d41631d5e1b0be0a366d2c30 (diff) |
tools: Add intel_iosf_sb_{read,write} tools
Add generic tools to poke at IOSF sideband. The user needs to
manually specify SB port as well as the register.
TODO: Maybe add symbolic names for the units? Would avoid having
to trawl the docs for the magic hex value.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/intel_io.h | 2 | ||||
-rw-r--r-- | lib/intel_iosf.c | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/intel_io.h b/lib/intel_io.h index 78a6f4de..8293353c 100644 --- a/lib/intel_io.h +++ b/lib/intel_io.h @@ -50,6 +50,8 @@ uint32_t intel_dpio_reg_read(uint32_t reg, int phy); void intel_dpio_reg_write(uint32_t reg, uint32_t val, int phy); uint32_t intel_flisdsi_reg_read(uint32_t reg); void intel_flisdsi_reg_write(uint32_t reg, uint32_t val); +uint32_t intel_iosf_sb_read(uint32_t port, uint32_t reg); +void intel_iosf_sb_write(uint32_t port, uint32_t reg, uint32_t val); int intel_punit_read(uint8_t addr, uint32_t *val); int intel_punit_write(uint8_t addr, uint32_t val); diff --git a/lib/intel_iosf.c b/lib/intel_iosf.c index ca206389..2f1ef90c 100644 --- a/lib/intel_iosf.c +++ b/lib/intel_iosf.c @@ -173,3 +173,17 @@ void intel_flisdsi_reg_write(uint32_t reg, uint32_t val) { vlv_sideband_rw(IOSF_PORT_FLISDSI, SB_CRWRDA_NP, reg, &val); } + +uint32_t intel_iosf_sb_read(uint32_t port, uint32_t reg) +{ + uint32_t val; + + vlv_sideband_rw(port, SB_CRRDDA_NP, reg, &val); + + return val; +} + +void intel_iosf_sb_write(uint32_t port, uint32_t reg, uint32_t val) +{ + vlv_sideband_rw(port, SB_CRWRDA_NP, reg, &val); +} |