Lines Matching refs:dev

106 static __inline__ u8 matrox_w1_read_reg(struct matrox_device *dev, u8 reg)  in matrox_w1_read_reg()  argument
110 writeb(reg, dev->port_index); in matrox_w1_read_reg()
111 ret = readb(dev->port_data); in matrox_w1_read_reg()
117 static __inline__ void matrox_w1_write_reg(struct matrox_device *dev, u8 reg, u8 val) in matrox_w1_write_reg() argument
119 writeb(reg, dev->port_index); in matrox_w1_write_reg()
120 writeb(val, dev->port_data); in matrox_w1_write_reg()
127 struct matrox_device *dev = data; in matrox_w1_write_ddc_bit() local
132 bit = dev->data_mask; in matrox_w1_write_ddc_bit()
134 ret = matrox_w1_read_reg(dev, MATROX_GET_CONTROL); in matrox_w1_write_ddc_bit()
135 matrox_w1_write_reg(dev, MATROX_GET_CONTROL, ((ret & ~dev->data_mask) | bit)); in matrox_w1_write_ddc_bit()
136 matrox_w1_write_reg(dev, MATROX_GET_DATA, 0x00); in matrox_w1_write_ddc_bit()
142 struct matrox_device *dev = data; in matrox_w1_read_ddc_bit() local
144 ret = matrox_w1_read_reg(dev, MATROX_GET_DATA); in matrox_w1_read_ddc_bit()
149 static void matrox_w1_hw_init(struct matrox_device *dev) in matrox_w1_hw_init() argument
151 matrox_w1_write_reg(dev, MATROX_GET_DATA, 0xFF); in matrox_w1_hw_init()
152 matrox_w1_write_reg(dev, MATROX_GET_CONTROL, 0x00); in matrox_w1_hw_init()
157 struct matrox_device *dev; in matrox_w1_probe() local
166 dev = kzalloc(sizeof(struct matrox_device) + in matrox_w1_probe()
168 if (!dev) { in matrox_w1_probe()
169 dev_err(&pdev->dev, in matrox_w1_probe()
176 dev->bus_master = (struct w1_bus_master *)(dev + 1); in matrox_w1_probe()
182 dev->phys_addr = pci_resource_start(pdev, 1); in matrox_w1_probe()
184 dev->virt_addr = ioremap_nocache(dev->phys_addr, 16384); in matrox_w1_probe()
185 if (!dev->virt_addr) { in matrox_w1_probe()
186 dev_err(&pdev->dev, "%s: failed to ioremap(0x%lx, %d).\n", in matrox_w1_probe()
187 __func__, dev->phys_addr, 16384); in matrox_w1_probe()
192 dev->base_addr = dev->virt_addr + MATROX_BASE; in matrox_w1_probe()
193 dev->port_index = dev->base_addr + MATROX_PORT_INDEX_OFFSET; in matrox_w1_probe()
194 dev->port_data = dev->base_addr + MATROX_PORT_DATA_OFFSET; in matrox_w1_probe()
195 dev->data_mask = (MATROX_G400_DDC_DATA); in matrox_w1_probe()
197 matrox_w1_hw_init(dev); in matrox_w1_probe()
199 dev->bus_master->data = dev; in matrox_w1_probe()
200 dev->bus_master->read_bit = &matrox_w1_read_ddc_bit; in matrox_w1_probe()
201 dev->bus_master->write_bit = &matrox_w1_write_ddc_bit; in matrox_w1_probe()
203 err = w1_add_master_device(dev->bus_master); in matrox_w1_probe()
207 pci_set_drvdata(pdev, dev); in matrox_w1_probe()
209 dev->found = 1; in matrox_w1_probe()
211 dev_info(&pdev->dev, "Matrox G400 GPIO transport layer for 1-wire.\n"); in matrox_w1_probe()
216 if (dev->virt_addr) in matrox_w1_probe()
217 iounmap(dev->virt_addr); in matrox_w1_probe()
218 kfree(dev); in matrox_w1_probe()
225 struct matrox_device *dev = pci_get_drvdata(pdev); in matrox_w1_remove() local
227 assert(dev != NULL); in matrox_w1_remove()
229 if (dev->found) { in matrox_w1_remove()
230 w1_remove_master_device(dev->bus_master); in matrox_w1_remove()
231 iounmap(dev->virt_addr); in matrox_w1_remove()
233 kfree(dev); in matrox_w1_remove()