Lines Matching refs:bus

137 static u32 get_reserved(struct intel_gmbus *bus)  in get_reserved()  argument
139 struct drm_i915_private *dev_priv = bus->dev_priv; in get_reserved()
145 reserved = I915_READ_NOTRACE(bus->gpio_reg) & in get_reserved()
154 struct intel_gmbus *bus = data; in get_clock() local
155 struct drm_i915_private *dev_priv = bus->dev_priv; in get_clock()
156 u32 reserved = get_reserved(bus); in get_clock()
157 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | GPIO_CLOCK_DIR_MASK); in get_clock()
158 I915_WRITE_NOTRACE(bus->gpio_reg, reserved); in get_clock()
159 return (I915_READ_NOTRACE(bus->gpio_reg) & GPIO_CLOCK_VAL_IN) != 0; in get_clock()
164 struct intel_gmbus *bus = data; in get_data() local
165 struct drm_i915_private *dev_priv = bus->dev_priv; in get_data()
166 u32 reserved = get_reserved(bus); in get_data()
167 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | GPIO_DATA_DIR_MASK); in get_data()
168 I915_WRITE_NOTRACE(bus->gpio_reg, reserved); in get_data()
169 return (I915_READ_NOTRACE(bus->gpio_reg) & GPIO_DATA_VAL_IN) != 0; in get_data()
174 struct intel_gmbus *bus = data; in set_clock() local
175 struct drm_i915_private *dev_priv = bus->dev_priv; in set_clock()
176 u32 reserved = get_reserved(bus); in set_clock()
185 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | clock_bits); in set_clock()
186 POSTING_READ(bus->gpio_reg); in set_clock()
191 struct intel_gmbus *bus = data; in set_data() local
192 struct drm_i915_private *dev_priv = bus->dev_priv; in set_data()
193 u32 reserved = get_reserved(bus); in set_data()
202 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | data_bits); in set_data()
203 POSTING_READ(bus->gpio_reg); in set_data()
209 struct intel_gmbus *bus = container_of(adapter, in intel_gpio_pre_xfer() local
212 struct drm_i915_private *dev_priv = bus->dev_priv; in intel_gpio_pre_xfer()
216 set_data(bus, 1); in intel_gpio_pre_xfer()
217 set_clock(bus, 1); in intel_gpio_pre_xfer()
225 struct intel_gmbus *bus = container_of(adapter, in intel_gpio_post_xfer() local
228 struct drm_i915_private *dev_priv = bus->dev_priv; in intel_gpio_post_xfer()
230 set_data(bus, 1); in intel_gpio_post_xfer()
231 set_clock(bus, 1); in intel_gpio_post_xfer()
236 intel_gpio_setup(struct intel_gmbus *bus, unsigned int pin) in intel_gpio_setup() argument
238 struct drm_i915_private *dev_priv = bus->dev_priv; in intel_gpio_setup()
241 algo = &bus->bit_algo; in intel_gpio_setup()
243 bus->gpio_reg = dev_priv->gpio_mmio_base + in intel_gpio_setup()
246 bus->adapter.algo_data = algo; in intel_gpio_setup()
255 algo->data = bus; in intel_gpio_setup()
479 struct intel_gmbus *bus = container_of(adapter, in gmbus_xfer() local
482 struct drm_i915_private *dev_priv = bus->dev_priv; in gmbus_xfer()
489 if (bus->force_bit) { in gmbus_xfer()
495 I915_WRITE(GMBUS0, bus->reg0); in gmbus_xfer()
589 bus->adapter.name, bus->reg0 & 0xff); in gmbus_xfer()
593 bus->force_bit = 1; in gmbus_xfer()
625 struct intel_gmbus *bus; in intel_setup_gmbus() local
645 bus = &dev_priv->gmbus[pin]; in intel_setup_gmbus()
647 bus->adapter.owner = THIS_MODULE; in intel_setup_gmbus()
648 bus->adapter.class = I2C_CLASS_DDC; in intel_setup_gmbus()
649 snprintf(bus->adapter.name, in intel_setup_gmbus()
650 sizeof(bus->adapter.name), in intel_setup_gmbus()
654 bus->adapter.dev.parent = &dev->pdev->dev; in intel_setup_gmbus()
655 bus->dev_priv = dev_priv; in intel_setup_gmbus()
657 bus->adapter.algo = &gmbus_algorithm; in intel_setup_gmbus()
660 bus->reg0 = pin | GMBUS_RATE_100KHZ; in intel_setup_gmbus()
664 bus->force_bit = 1; in intel_setup_gmbus()
666 intel_gpio_setup(bus, pin); in intel_setup_gmbus()
668 ret = i2c_add_adapter(&bus->adapter); in intel_setup_gmbus()
682 bus = &dev_priv->gmbus[pin]; in intel_setup_gmbus()
683 i2c_del_adapter(&bus->adapter); in intel_setup_gmbus()
699 struct intel_gmbus *bus = to_intel_gmbus(adapter); in intel_gmbus_set_speed() local
701 bus->reg0 = (bus->reg0 & ~(0x3 << 8)) | speed; in intel_gmbus_set_speed()
706 struct intel_gmbus *bus = to_intel_gmbus(adapter); in intel_gmbus_force_bit() local
708 bus->force_bit += force_bit ? 1 : -1; in intel_gmbus_force_bit()
711 bus->force_bit); in intel_gmbus_force_bit()
717 struct intel_gmbus *bus; in intel_teardown_gmbus() local
724 bus = &dev_priv->gmbus[pin]; in intel_teardown_gmbus()
725 i2c_del_adapter(&bus->adapter); in intel_teardown_gmbus()