Lines Matching refs:bus
86 static u32 get_reserved(struct intel_gmbus *bus) in get_reserved() argument
88 struct drm_i915_private *dev_priv = bus->dev_priv; in get_reserved()
94 reserved = I915_READ_NOTRACE(bus->gpio_reg) & in get_reserved()
103 struct intel_gmbus *bus = data; in get_clock() local
104 struct drm_i915_private *dev_priv = bus->dev_priv; in get_clock()
105 u32 reserved = get_reserved(bus); in get_clock()
106 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | GPIO_CLOCK_DIR_MASK); in get_clock()
107 I915_WRITE_NOTRACE(bus->gpio_reg, reserved); in get_clock()
108 return (I915_READ_NOTRACE(bus->gpio_reg) & GPIO_CLOCK_VAL_IN) != 0; in get_clock()
113 struct intel_gmbus *bus = data; in get_data() local
114 struct drm_i915_private *dev_priv = bus->dev_priv; in get_data()
115 u32 reserved = get_reserved(bus); in get_data()
116 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | GPIO_DATA_DIR_MASK); in get_data()
117 I915_WRITE_NOTRACE(bus->gpio_reg, reserved); in get_data()
118 return (I915_READ_NOTRACE(bus->gpio_reg) & GPIO_DATA_VAL_IN) != 0; in get_data()
123 struct intel_gmbus *bus = data; in set_clock() local
124 struct drm_i915_private *dev_priv = bus->dev_priv; in set_clock()
125 u32 reserved = get_reserved(bus); in set_clock()
134 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | clock_bits); in set_clock()
135 POSTING_READ(bus->gpio_reg); in set_clock()
140 struct intel_gmbus *bus = data; in set_data() local
141 struct drm_i915_private *dev_priv = bus->dev_priv; in set_data()
142 u32 reserved = get_reserved(bus); in set_data()
151 I915_WRITE_NOTRACE(bus->gpio_reg, reserved | data_bits); in set_data()
152 POSTING_READ(bus->gpio_reg); in set_data()
158 struct intel_gmbus *bus = container_of(adapter, in intel_gpio_pre_xfer() local
161 struct drm_i915_private *dev_priv = bus->dev_priv; in intel_gpio_pre_xfer()
165 set_data(bus, 1); in intel_gpio_pre_xfer()
166 set_clock(bus, 1); in intel_gpio_pre_xfer()
174 struct intel_gmbus *bus = container_of(adapter, in intel_gpio_post_xfer() local
177 struct drm_i915_private *dev_priv = bus->dev_priv; in intel_gpio_post_xfer()
179 set_data(bus, 1); in intel_gpio_post_xfer()
180 set_clock(bus, 1); in intel_gpio_post_xfer()
185 intel_gpio_setup(struct intel_gmbus *bus, u32 pin) in intel_gpio_setup() argument
187 struct drm_i915_private *dev_priv = bus->dev_priv; in intel_gpio_setup()
190 algo = &bus->bit_algo; in intel_gpio_setup()
193 bus->gpio_reg = dev_priv->gpio_mmio_base + gmbus_ports[pin - 1].reg; in intel_gpio_setup()
195 bus->adapter.algo_data = algo; in intel_gpio_setup()
204 algo->data = bus; in intel_gpio_setup()
434 struct intel_gmbus *bus = container_of(adapter, in gmbus_xfer() local
437 struct drm_i915_private *dev_priv = bus->dev_priv; in gmbus_xfer()
444 if (bus->force_bit) { in gmbus_xfer()
452 I915_WRITE(GMBUS0 + reg_offset, bus->reg0); in gmbus_xfer()
546 bus->adapter.name, bus->reg0 & 0xff); in gmbus_xfer()
550 bus->force_bit = 1; in gmbus_xfer()
595 struct intel_gmbus *bus = &dev_priv->gmbus[i]; in intel_setup_gmbus() local
598 bus->adapter.owner = THIS_MODULE; in intel_setup_gmbus()
599 bus->adapter.class = I2C_CLASS_DDC; in intel_setup_gmbus()
600 snprintf(bus->adapter.name, in intel_setup_gmbus()
601 sizeof(bus->adapter.name), in intel_setup_gmbus()
605 bus->adapter.dev.parent = &dev->pdev->dev; in intel_setup_gmbus()
606 bus->dev_priv = dev_priv; in intel_setup_gmbus()
608 bus->adapter.algo = &gmbus_algorithm; in intel_setup_gmbus()
611 bus->reg0 = port | GMBUS_RATE_100KHZ; in intel_setup_gmbus()
615 bus->force_bit = 1; in intel_setup_gmbus()
617 intel_gpio_setup(bus, port); in intel_setup_gmbus()
619 ret = i2c_add_adapter(&bus->adapter); in intel_setup_gmbus()
630 struct intel_gmbus *bus = &dev_priv->gmbus[i]; in intel_setup_gmbus() local
631 i2c_del_adapter(&bus->adapter); in intel_setup_gmbus()
647 struct intel_gmbus *bus = to_intel_gmbus(adapter); in intel_gmbus_set_speed() local
649 bus->reg0 = (bus->reg0 & ~(0x3 << 8)) | speed; in intel_gmbus_set_speed()
654 struct intel_gmbus *bus = to_intel_gmbus(adapter); in intel_gmbus_force_bit() local
656 bus->force_bit += force_bit ? 1 : -1; in intel_gmbus_force_bit()
659 bus->force_bit); in intel_gmbus_force_bit()
668 struct intel_gmbus *bus = &dev_priv->gmbus[i]; in intel_teardown_gmbus() local
669 i2c_del_adapter(&bus->adapter); in intel_teardown_gmbus()