Skip to content
Snippets Groups Projects
Commit 3dfdab04 authored by Alessandro Rubini's avatar Alessandro Rubini
Browse files

spec-i2c: use sysc registers, remove FD registers

parent 5dd25dcc
No related merge requests found
This diff is collapsed.
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/fmc.h> #include <linux/fmc.h>
#include "spec.h" #include "spec.h"
#include "hw/fd_main_regs.h" #include "hw/wrc_syscon_regs.h"
static int spec_i2c_dump; static int spec_i2c_dump;
...@@ -45,27 +45,23 @@ static void dumpstruct(char *name, void *ptr, int size) ...@@ -45,27 +45,23 @@ static void dumpstruct(char *name, void *ptr, int size)
static void set_sda(struct fmc_device *fmc, int val) static void set_sda(struct fmc_device *fmc, int val)
{ {
uint32_t reg;
reg = fmc_readl(fmc, FD_REG_I2CR) & ~FD_I2CR_SDA_OUT;
if (val) if (val)
reg |= FD_I2CR_SDA_OUT; fmc_writel(fmc, SYSC_GPSR_FMC_SDA, SYSC_REG_GPSR);
fmc_writel(fmc, reg, FD_REG_I2CR); else
fmc_writel(fmc, SYSC_GPCR_FMC_SDA, SYSC_REG_GPCR);
} }
static void set_scl(struct fmc_device *fmc, int val) static void set_scl(struct fmc_device *fmc, int val)
{ {
uint32_t reg;
reg = fmc_readl(fmc, FD_REG_I2CR) & ~FD_I2CR_SCL_OUT;
if (val) if (val)
reg |= FD_I2CR_SCL_OUT; fmc_writel(fmc, SYSC_GPSR_FMC_SCL, SYSC_REG_GPSR);
fmc_writel(fmc, reg, FD_REG_I2CR); else
fmc_writel(fmc, SYSC_GPCR_FMC_SCL, SYSC_REG_GPCR);
} }
static int get_sda(struct fmc_device *fmc) static int get_sda(struct fmc_device *fmc)
{ {
return fmc_readl(fmc, FD_REG_I2CR) & FD_I2CR_SDA_IN ? 1 : 0; return fmc_readl(fmc, SYSC_REG_GPSR) & SYSC_GPSR_FMC_SDA ? 1 : 0;
}; };
static void mi2c_start(struct fmc_device *fmc) static void mi2c_start(struct fmc_device *fmc)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment