Lines Matching refs:mc

55 static int mc33880_write_config(struct mc33880 *mc)  in mc33880_write_config()  argument
57 return spi_write(mc->spi, &mc->port_config, sizeof(mc->port_config)); in mc33880_write_config()
61 static int __mc33880_set(struct mc33880 *mc, unsigned offset, int value) in __mc33880_set() argument
64 mc->port_config |= 1 << offset; in __mc33880_set()
66 mc->port_config &= ~(1 << offset); in __mc33880_set()
68 return mc33880_write_config(mc); in __mc33880_set()
74 struct mc33880 *mc = container_of(chip, struct mc33880, chip); in mc33880_set() local
76 mutex_lock(&mc->lock); in mc33880_set()
78 __mc33880_set(mc, offset, value); in mc33880_set()
80 mutex_unlock(&mc->lock); in mc33880_set()
85 struct mc33880 *mc; in mc33880_probe() local
104 mc = devm_kzalloc(&spi->dev, sizeof(struct mc33880), GFP_KERNEL); in mc33880_probe()
105 if (!mc) in mc33880_probe()
108 mutex_init(&mc->lock); in mc33880_probe()
110 spi_set_drvdata(spi, mc); in mc33880_probe()
112 mc->spi = spi; in mc33880_probe()
114 mc->chip.label = DRIVER_NAME, in mc33880_probe()
115 mc->chip.set = mc33880_set; in mc33880_probe()
116 mc->chip.base = pdata->base; in mc33880_probe()
117 mc->chip.ngpio = PIN_NUMBER; in mc33880_probe()
118 mc->chip.can_sleep = true; in mc33880_probe()
119 mc->chip.dev = &spi->dev; in mc33880_probe()
120 mc->chip.owner = THIS_MODULE; in mc33880_probe()
122 mc->port_config = 0x00; in mc33880_probe()
127 ret = mc33880_write_config(mc); in mc33880_probe()
128 mc->port_config = 0x00; in mc33880_probe()
130 ret = mc33880_write_config(mc); in mc33880_probe()
138 ret = gpiochip_add(&mc->chip); in mc33880_probe()
145 mutex_destroy(&mc->lock); in mc33880_probe()
151 struct mc33880 *mc; in mc33880_remove() local
153 mc = spi_get_drvdata(spi); in mc33880_remove()
154 if (!mc) in mc33880_remove()
157 gpiochip_remove(&mc->chip); in mc33880_remove()
158 mutex_destroy(&mc->lock); in mc33880_remove()