Lines Matching refs:dev

66 static inline u8 matrox_w1_read_reg(struct matrox_device *dev, u8 reg)  in matrox_w1_read_reg()  argument
70 writeb(reg, dev->port_index); in matrox_w1_read_reg()
71 ret = readb(dev->port_data); in matrox_w1_read_reg()
77 static inline void matrox_w1_write_reg(struct matrox_device *dev, u8 reg, u8 val) in matrox_w1_write_reg() argument
79 writeb(reg, dev->port_index); in matrox_w1_write_reg()
80 writeb(val, dev->port_data); in matrox_w1_write_reg()
87 struct matrox_device *dev = data; in matrox_w1_write_ddc_bit() local
92 bit = dev->data_mask; in matrox_w1_write_ddc_bit()
94 ret = matrox_w1_read_reg(dev, MATROX_GET_CONTROL); in matrox_w1_write_ddc_bit()
95 matrox_w1_write_reg(dev, MATROX_GET_CONTROL, ((ret & ~dev->data_mask) | bit)); in matrox_w1_write_ddc_bit()
96 matrox_w1_write_reg(dev, MATROX_GET_DATA, 0x00); in matrox_w1_write_ddc_bit()
102 struct matrox_device *dev = data; in matrox_w1_read_ddc_bit() local
104 ret = matrox_w1_read_reg(dev, MATROX_GET_DATA); in matrox_w1_read_ddc_bit()
109 static void matrox_w1_hw_init(struct matrox_device *dev) in matrox_w1_hw_init() argument
111 matrox_w1_write_reg(dev, MATROX_GET_DATA, 0xFF); in matrox_w1_hw_init()
112 matrox_w1_write_reg(dev, MATROX_GET_CONTROL, 0x00); in matrox_w1_hw_init()
117 struct matrox_device *dev; in matrox_w1_probe() local
123 dev = kzalloc(sizeof(struct matrox_device) + in matrox_w1_probe()
125 if (!dev) in matrox_w1_probe()
128 dev->bus_master = (struct w1_bus_master *)(dev + 1); in matrox_w1_probe()
134 dev->phys_addr = pci_resource_start(pdev, 1); in matrox_w1_probe()
136 dev->virt_addr = ioremap(dev->phys_addr, 16384); in matrox_w1_probe()
137 if (!dev->virt_addr) { in matrox_w1_probe()
138 dev_err(&pdev->dev, "%s: failed to ioremap(0x%lx, %d).\n", in matrox_w1_probe()
139 __func__, dev->phys_addr, 16384); in matrox_w1_probe()
144 dev->base_addr = dev->virt_addr + MATROX_BASE; in matrox_w1_probe()
145 dev->port_index = dev->base_addr + MATROX_PORT_INDEX_OFFSET; in matrox_w1_probe()
146 dev->port_data = dev->base_addr + MATROX_PORT_DATA_OFFSET; in matrox_w1_probe()
147 dev->data_mask = (MATROX_G400_DDC_DATA); in matrox_w1_probe()
149 matrox_w1_hw_init(dev); in matrox_w1_probe()
151 dev->bus_master->data = dev; in matrox_w1_probe()
152 dev->bus_master->read_bit = &matrox_w1_read_ddc_bit; in matrox_w1_probe()
153 dev->bus_master->write_bit = &matrox_w1_write_ddc_bit; in matrox_w1_probe()
155 err = w1_add_master_device(dev->bus_master); in matrox_w1_probe()
159 pci_set_drvdata(pdev, dev); in matrox_w1_probe()
161 dev->found = 1; in matrox_w1_probe()
163 dev_info(&pdev->dev, "Matrox G400 GPIO transport layer for 1-wire.\n"); in matrox_w1_probe()
168 if (dev->virt_addr) in matrox_w1_probe()
169 iounmap(dev->virt_addr); in matrox_w1_probe()
170 kfree(dev); in matrox_w1_probe()
177 struct matrox_device *dev = pci_get_drvdata(pdev); in matrox_w1_remove() local
179 if (dev->found) { in matrox_w1_remove()
180 w1_remove_master_device(dev->bus_master); in matrox_w1_remove()
181 iounmap(dev->virt_addr); in matrox_w1_remove()
183 kfree(dev); in matrox_w1_remove()