Skip to content
Snippets Groups Projects
Commit 8731ebaf authored by Tobias Kahlki's avatar Tobias Kahlki Committed by Tobias Kahlki
Browse files

driver:pi4io: Edited some comments and small clean-up

parent 208e8c6d
Branches
Tags
No related merge requests found
...@@ -28,31 +28,27 @@ ...@@ -28,31 +28,27 @@
#define PI4IO_DIRECTION_TO_GPIOD(x) ((x) ? GPIOF_DIR_OUT : GPIOF_DIR_IN) #define PI4IO_DIRECTION_TO_GPIOD(x) ((x) ? GPIOF_DIR_OUT : GPIOF_DIR_IN)
#define GPIOD_DIRECTION_TO_PI4IO(x) ((x) == GPIOF_DIR_OUT ? 1 : 0) #define GPIOD_DIRECTION_TO_PI4IO(x) ((x) == GPIOF_DIR_OUT ? 1 : 0)
#define GPIO_OUT_LOW 0
#define GPIO_OUT_HIGH 1
static bool pi4io_readable_reg(struct device *dev, unsigned int reg) static bool pi4io_readable_reg(struct device *dev, unsigned int reg)
{ {
// All readable registers are odd-numbered. /* All readable registers are odd-numbered. */
return (reg % 2) == 1; return (reg % 2) == 1;
} }
static bool pi4io_writeable_reg(struct device *dev, unsigned int reg) static bool pi4io_writeable_reg(struct device *dev, unsigned int reg)
{ {
// All odd-numbered registers are writable except for 0xF. /* All odd-numbered registers are writable except for 0xF. */
if ((reg % 2) == 1) { if ((reg % 2) == 1)
if (reg != PI4IO_INPUT_STATUS) { if (reg != PI4IO_INPUT_STATUS)
return true; return true;
}
}
return false; return false;
} }
static bool pi4io_volatile_reg(struct device *dev, unsigned int reg) static bool pi4io_volatile_reg(struct device *dev, unsigned int reg)
{ {
if (reg == PI4IO_INPUT_STATUS || reg == PI4IO_INTERRUPT_STATUS) { if (reg == PI4IO_INPUT_STATUS || reg == PI4IO_INTERRUPT_STATUS)
return true; return true;
}
return false; return false;
} }
...@@ -106,7 +102,7 @@ static int pi4io_gpio_set_direction( ...@@ -106,7 +102,7 @@ static int pi4io_gpio_set_direction(
return ret; return ret;
} }
// We desire the hi-impedance state to track the output state. /* We desire the hi-impedance state to track the output state. */
ret = regmap_update_bits(pi4io->regmap, PI4IO_OUTPUT_HI_IMPEDANCE, ret = regmap_update_bits(pi4io->regmap, PI4IO_OUTPUT_HI_IMPEDANCE,
1 << offset, direction << offset); 1 << offset, direction << offset);
...@@ -134,9 +130,9 @@ static int pi4io_gpio_get(struct gpio_chip *chip, unsigned offset) ...@@ -134,9 +130,9 @@ static int pi4io_gpio_get(struct gpio_chip *chip, unsigned offset)
return ret; return ret;
} }
if (out & (1 << offset)) { if (out & (1 << offset))
return 1; return 1;
}
return 0; return 0;
} }
...@@ -148,28 +144,30 @@ static void pi4io_gpio_set(struct gpio_chip *chip, unsigned offset, int value) ...@@ -148,28 +144,30 @@ static void pi4io_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
ret = regmap_update_bits( ret = regmap_update_bits(
pi4io->regmap, PI4IO_OUTPUT, 1 << offset, value << offset); pi4io->regmap, PI4IO_OUTPUT, 1 << offset, value << offset);
if (ret) { if (ret)
dev_err(dev, "Failed to write output: %d", ret); dev_err(dev, "Failed to write output: %d", ret);
} }
}
static int pi4io_gpio_direction_input(struct gpio_chip *chip, unsigned offset) static int pi4io_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
{ {
return pi4io_gpio_set_direction(chip, offset, GPIOF_DIR_IN); return pi4io_gpio_set_direction(chip, offset, GPIOF_DIR_IN);
} }
static int pi4io_gpio_direction_output( static int pi4io_gpio_direction_output(struct gpio_chip *chip,
struct gpio_chip *chip, unsigned offset, int value) unsigned offset, int value)
{ {
int ret; int ret;
struct pi4io_priv *pi4io = gpiochip_get_data(chip); struct pi4io_priv *pi4io = gpiochip_get_data(chip);
struct device *dev = &pi4io->i2c->dev; struct device *dev = &pi4io->i2c->dev;
ret = pi4io_gpio_set_direction(chip, offset, GPIOF_DIR_OUT); ret = pi4io_gpio_set_direction(chip, offset, GPIOF_DIR_OUT);
if (ret) { if (ret) {
dev_err(dev, "Failed to set direction: %d", ret); dev_err(dev, "Failed to set direction: %d", ret);
return ret; return ret;
} }
pi4io_gpio_set(chip, offset, value); pi4io_gpio_set(chip, offset, value);
return 0; return 0;
} }
...@@ -178,6 +176,7 @@ static int pi4io_gpio_setup(struct pi4io_priv *pi4io) ...@@ -178,6 +176,7 @@ static int pi4io_gpio_setup(struct pi4io_priv *pi4io)
int ret; int ret;
struct device *dev = &pi4io->i2c->dev; struct device *dev = &pi4io->i2c->dev;
struct gpio_chip *gc = &pi4io->gpio; struct gpio_chip *gc = &pi4io->gpio;
gc->ngpio = 8; gc->ngpio = 8;
gc->label = pi4io->i2c->name; gc->label = pi4io->i2c->name;
gc->parent = &pi4io->i2c->dev; gc->parent = &pi4io->i2c->dev;
...@@ -196,6 +195,7 @@ static int pi4io_gpio_setup(struct pi4io_priv *pi4io) ...@@ -196,6 +195,7 @@ static int pi4io_gpio_setup(struct pi4io_priv *pi4io)
dev_err(dev, "devm_gpiochip_add_data failed: %d", ret); dev_err(dev, "devm_gpiochip_add_data failed: %d", ret);
return ret; return ret;
} }
return 0; return 0;
} }
...@@ -439,7 +439,7 @@ static int pi4io_probe( ...@@ -439,7 +439,7 @@ static int pi4io_probe(
pi4io_reset(pi4io); pi4io_reset(pi4io);
pi4io->regmap = devm_regmap_init_i2c(client, &pi4io_regmap); pi4io->regmap = devm_regmap_init_i2c(pi4io->i2c, &pi4io_regmap);
ret = regmap_read(pi4io->regmap, PI4IO_CHIP_ID, &chip_id); ret = regmap_read(pi4io->regmap, PI4IO_CHIP_ID, &chip_id);
if (ret < 0) { if (ret < 0) {
dev_err(dev, "Failed to read Chip ID: %d", ret); dev_err(dev, "Failed to read Chip ID: %d", ret);
...@@ -447,7 +447,7 @@ static int pi4io_probe( ...@@ -447,7 +447,7 @@ static int pi4io_probe(
} }
if ((chip_id & PI4IO_CHIP_ID_MASK) != PI4IO_CHIP_ID_VAL) { if ((chip_id & PI4IO_CHIP_ID_MASK) != PI4IO_CHIP_ID_VAL) {
dev_err(dev, "Invalid Chip ID!"); dev_err(dev, "Invalid Chip ID");
return -EINVAL; return -EINVAL;
} }
...@@ -495,7 +495,7 @@ static int pi4io_probe( ...@@ -495,7 +495,7 @@ static int pi4io_probe(
return 0; return 0;
fail: fail:
dev_err(dev, "PI4IO probe error %d for '%s'\n", ret, dev_err(dev, "PI4IO probe error %d for %s", ret,
pi4io->i2c->name); pi4io->i2c->name);
return ret; return ret;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment