Lines Matching +full:gpio +full:- +full:lines
22 * -----------
31 * information to the caller and must be re-entrant.
57 * ---------------
62 * DeviceListener can save the QOpts passed to it for re-using it
73 DEV_NVECTORS_UNSPECIFIED = -1,
101 * struct DeviceClass - The base class for all devices.
107 * @sync_config: Callback function invoked when QMP command device-sync-config
136 * ensures a compile-time error if someone attempts to assign
137 * dc->props directly.
142 * @user_creatable: Can user instantiate with -device / device_add?
162 * implement a multi-phase reset.
215 * struct DeviceState - common device state, accessed with qdev helpers
297 * Used to prevent re-entrancy confusing things.
342 * human-readable error message.
362 #define QDEV_HOTPLUG_HANDLER_PROPERTY "hotplug-handler"
406 * typedef GlobalProperty - a global property type
412 * An error is fatal for non-hotplugged devices, when the global is applied.
459 * qdev_is_realized() - check if device is realized
467 return qatomic_load_acquire(&dev->realized); in qdev_is_realized()
510 * via the child<> property, and so the reference-count-drop done here
524 * - unrealize any child buses by calling qbus_unrealize()
526 * - call the unrealize method of @dev
532 * devices which are hot-unpluggable should be unrealized (as part of
544 * qdev_get_hotplug_handler() - Get handler responsible for device wiring
590 * typedef GpioPolarity - Polarity of a GPIO line
592 * GPIO lines use either positive (active-high) logic,
593 * or negative (active-low) logic.
595 * In active-high logic (%GPIO_POLARITY_ACTIVE_HIGH), a pin is
597 * whereas in active-low logic (%GPIO_POLARITY_ACTIVE_LOW), a pin
606 * qdev_get_gpio_in: Get one of a device's anonymous input GPIO lines
607 * @dev: Device whose GPIO we want
608 * @n: Number of the anonymous GPIO line (which must be in range)
610 * Returns the qemu_irq corresponding to an anonymous input GPIO line
612 * @n of the GPIO line must be valid (i.e. be at least 0 and less than
617 * device models to wire up the GPIO lines; usually the return value
619 * connect another device's output GPIO line to this input.
621 * For named input GPIO lines, use qdev_get_gpio_in_named().
623 * Return: qemu_irq corresponding to anonymous input GPIO line
628 * qdev_get_gpio_in_named: Get one of a device's named input GPIO lines
629 * @dev: Device whose GPIO we want
630 * @name: Name of the input GPIO array
631 * @n: Number of the GPIO line in that array (which must be in range)
633 * Returns the qemu_irq corresponding to a single input GPIO line
634 * in a named array of input GPIO lines on a device (which the device
636 * The @name string must correspond to an input GPIO array which exists on
637 * the device, and the index @n of the GPIO line must be valid (i.e.
641 * For anonymous input GPIO lines, use qdev_get_gpio_in().
643 * Return: qemu_irq corresponding to named input GPIO line
648 * qdev_connect_gpio_out: Connect one of a device's anonymous output GPIO lines
649 * @dev: Device whose GPIO to connect
650 * @n: Number of the anonymous output GPIO line (which must be in range)
653 * This function connects an anonymous output GPIO line on a device
655 * output GPIO line, the qemu_irq's callback is invoked.
656 * The index @n of the GPIO line must be valid (i.e. be at least 0 and
660 * Outbound GPIO lines can be connected to any qemu_irq, but the common
661 * case is connecting them to another device's inbound GPIO line, using
664 * It is not valid to try to connect one outbound GPIO to multiple
668 * Instead, for fan-out you can use the TYPE_SPLIT_IRQ device: connect
669 * a device's outbound GPIO to the splitter's input, and connect each
670 * of the splitter's outputs to a different device. For fan-in you
674 * For named output GPIO lines, use qdev_connect_gpio_out_named().
680 * GPIO lines
681 * @dev: Device whose GPIO to connect
682 * @name: Name of the output GPIO array
683 * @n: Number of the output GPIO line within that array (which must be in range)
686 * This function connects a single GPIO output in a named array of output
687 * GPIO lines on a device up to an arbitrary qemu_irq, so that when the
688 * device asserts that output GPIO line, the qemu_irq's callback is invoked.
689 * The @name string must correspond to an output GPIO array which exists on
690 * the device, and the index @n of the GPIO line must be valid (i.e.
694 * Outbound GPIO lines can be connected to any qemu_irq, but the common
695 * case is connecting them to another device's inbound GPIO line, using
698 * It is not valid to try to connect one outbound GPIO to multiple
702 * For anonymous output GPIO lines, use qdev_connect_gpio_out().
708 * qdev_get_gpio_out_connector: Get the qemu_irq connected to an output GPIO
709 * @dev: Device whose output GPIO we are interested in
710 * @name: Name of the output GPIO array
711 * @n: Number of the output GPIO line within that array
714 * output GPIO line of @dev. This will be NULL if the output GPIO line
716 * returned does not belong to @dev -- it will be the input GPIO or
718 * output GPIO.
720 * You probably don't need to use this function -- it is used only
721 * by the platform-bus subsystem.
723 * Return: qemu_irq associated with GPIO or NULL if un-wired.
728 * qdev_intercept_gpio_out: Intercept an existing GPIO connection
729 * @dev: Device to intercept the outbound GPIO line from
731 * @name: Name of the output GPIO array
732 * @n: Number of the GPIO line in the array
736 * and is not suitable for use in non-testing parts of QEMU.
738 * This function breaks an existing connection of an outbound GPIO
754 * qdev_init_gpio_in: create an array of anonymous input GPIO lines
756 * @handler: Function to call when GPIO line value is set
757 * @n: Number of GPIO lines to create
760 * their instance_init or realize methods to create any input GPIO
761 * lines they need. There is no functional difference between
762 * anonymous and named GPIO lines. Stylistically, named GPIOs are
764 * has exactly one uniform kind of GPIO input whose purpose is obvious.
765 * Note that input GPIO lines can serve as 'sinks' for IRQ lines.
768 * hold of an input GPIO line to manipulate it.
773 * qdev_init_gpio_out: create an array of anonymous output GPIO lines
775 * @pins: Pointer to qemu_irq or qemu_irq array for the GPIO lines
776 * @n: Number of GPIO lines to create
780 * GPIO lines they need. There is no functional difference between
781 * anonymous and named GPIO lines. Stylistically, named GPIOs are
783 * has exactly one uniform kind of GPIO output whose purpose is obvious.
788 * lower the GPIO line by calling qemu_set_irq(). (If anything is
789 * connected to the other end of the GPIO this will cause the handler
790 * function for that input GPIO to be called.)
793 * can connect to one of its output GPIO lines.
802 * qdev_init_gpio_out_named: create an array of named output GPIO lines
804 * @pins: Pointer to qemu_irq or qemu_irq array for the GPIO lines
805 * @name: Name to give this array of GPIO lines
806 * @n: Number of GPIO lines to create in this array
808 * Like qdev_init_gpio_out(), but creates an array of GPIO output lines
809 * with a name. Code using the device can then connect these GPIO lines
816 * qdev_init_gpio_in_named_with_opaque() - create an array of input GPIO lines
818 * @handler: Function to call when GPIO line value is set
820 * @name: Name of the GPIO input (must be unique for this device)
821 * @n: Number of GPIO lines in this input set
829 * qdev_init_gpio_in_named() - create an array of input GPIO lines
831 * @handler: a &typedef qemu_irq_handler function to call when GPIO is set
832 * @name: Name of the GPIO input (must be unique for this device)
833 * @n: Number of GPIO lines in this input set
846 * qdev_pass_gpios: create GPIO lines on container which pass through to device
847 * @dev: Device which has GPIO lines
849 * @name: Name of GPIO array to pass through (NULL for the anonymous GPIO array)
854 * to create GPIO arrays on itself which simply pass through to a GPIO
861 * To users of the container device, the GPIO array created on @container
896 * device_cold_reset() - perform a recursive cold reset on a device
905 * bus_cold_reset() - perform a recursive cold reset on a bus
914 * device_is_in_reset() - check device reset state
922 * bus_is_in_reset() - check bus reset state
947 * device_class_set_parent_realize() - set up for chaining realize fns
956 * dc->parent_realize(dev, errp)
977 * device_class_set_parent_unrealize() - set up for chaining unrealize fns
986 * dc->parent_unrealize(dev);
1000 * qdev_get_human_name() - Return a human-readable name for a device
1001 * @dev: The device. Must be a valid and non-NULL pointer.
1025 HotplugHandler *plug_handler = bus->hotplug_handler; in qbus_is_hotpluggable()
1032 if (hdc->is_hotpluggable_bus) { in qbus_is_hotpluggable()
1033 ret = hdc->is_hotpluggable_bus(plug_handler, bus); in qbus_is_hotpluggable()
1052 * can use this function to mark the internal-only buses as full
1054 * created devices will appear on the expansion-port bus where
1059 bus->full = true; in qbus_mark_full()
1066 * qdev_should_hide_device() - check if device should be hidden
1082 /* current_machine is not NULL, but current_machine->accel is NULL. */
1086 * current_machine->accel is not NULL, but the machine properties have
1087 * not been validated and machine_class->init has not yet been called.
1097 * machine_class->init has been called, thus creating any embedded
1099 * this time are considered to be cold-plugged.
1105 * are considered to be hot-plugged. The monitor is not restricted