Lines Matching +full:reset +full:- +full:gpio
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.
148 * @user_creatable: Can user instantiate with -device / device_add?
165 * @legacy_reset: deprecated device reset method pointer
168 * implement a multi-phase reset.
170 * TODO: remove once every reset callback is unused
221 * struct DeviceState - common device state, accessed with qdev helpers
289 * @reset: ResettableState for the device; handled by Resettable interface.
291 ResettableState reset; member
299 * Used to prevent re-entrancy confusing things.
344 * human-readable error message.
364 #define QDEV_HOTPLUG_HANDLER_PROPERTY "hotplug-handler"
402 * @reset: ResettableState for the bus; handled by Resettable interface.
404 ResettableState reset; member
408 * typedef GlobalProperty - a global property type
414 * An error is fatal for non-hotplugged devices, when the global is applied.
461 * qdev_is_realized() - check if device is realized
469 return qatomic_load_acquire(&dev->realized); in qdev_is_realized()
512 * via the child<> property, and so the reference-count-drop done here
526 * - unrealize any child buses by calling qbus_unrealize()
528 * - call the unrealize method of @dev
534 * devices which are hot-unpluggable should be unrealized (as part of
547 * qdev_get_hotplug_handler() - Get handler responsible for device wiring
593 * typedef GpioPolarity - Polarity of a GPIO line
595 * GPIO lines use either positive (active-high) logic,
596 * or negative (active-low) logic.
598 * In active-high logic (%GPIO_POLARITY_ACTIVE_HIGH), a pin is
600 * whereas in active-low logic (%GPIO_POLARITY_ACTIVE_LOW), a pin
609 * qdev_get_gpio_in: Get one of a device's anonymous input GPIO lines
610 * @dev: Device whose GPIO we want
611 * @n: Number of the anonymous GPIO line (which must be in range)
613 * Returns the qemu_irq corresponding to an anonymous input GPIO line
615 * @n of the GPIO line must be valid (i.e. be at least 0 and less than
620 * device models to wire up the GPIO lines; usually the return value
622 * connect another device's output GPIO line to this input.
624 * For named input GPIO lines, use qdev_get_gpio_in_named().
626 * Return: qemu_irq corresponding to anonymous input GPIO line
631 * qdev_get_gpio_in_named: Get one of a device's named input GPIO lines
632 * @dev: Device whose GPIO we want
633 * @name: Name of the input GPIO array
634 * @n: Number of the GPIO line in that array (which must be in range)
636 * Returns the qemu_irq corresponding to a single input GPIO line
637 * in a named array of input GPIO lines on a device (which the device
639 * The @name string must correspond to an input GPIO array which exists on
640 * the device, and the index @n of the GPIO line must be valid (i.e.
644 * For anonymous input GPIO lines, use qdev_get_gpio_in().
646 * Return: qemu_irq corresponding to named input GPIO line
651 * qdev_connect_gpio_out: Connect one of a device's anonymous output GPIO lines
652 * @dev: Device whose GPIO to connect
653 * @n: Number of the anonymous output GPIO line (which must be in range)
656 * This function connects an anonymous output GPIO line on a device
658 * output GPIO line, the qemu_irq's callback is invoked.
659 * The index @n of the GPIO line must be valid (i.e. be at least 0 and
663 * Outbound GPIO lines can be connected to any qemu_irq, but the common
664 * case is connecting them to another device's inbound GPIO line, using
667 * It is not valid to try to connect one outbound GPIO to multiple
671 * Instead, for fan-out you can use the TYPE_SPLIT_IRQ device: connect
672 * a device's outbound GPIO to the splitter's input, and connect each
673 * of the splitter's outputs to a different device. For fan-in you
677 * For named output GPIO lines, use qdev_connect_gpio_out_named().
683 * GPIO lines
684 * @dev: Device whose GPIO to connect
685 * @name: Name of the output GPIO array
686 * @n: Number of the output GPIO line within that array (which must be in range)
689 * This function connects a single GPIO output in a named array of output
690 * GPIO lines on a device up to an arbitrary qemu_irq, so that when the
691 * device asserts that output GPIO line, the qemu_irq's callback is invoked.
692 * The @name string must correspond to an output GPIO array which exists on
693 * the device, and the index @n of the GPIO line must be valid (i.e.
697 * Outbound GPIO lines can be connected to any qemu_irq, but the common
698 * case is connecting them to another device's inbound GPIO line, using
701 * It is not valid to try to connect one outbound GPIO to multiple
705 * For anonymous output GPIO lines, use qdev_connect_gpio_out().
711 * qdev_get_gpio_out_connector: Get the qemu_irq connected to an output GPIO
712 * @dev: Device whose output GPIO we are interested in
713 * @name: Name of the output GPIO array
714 * @n: Number of the output GPIO line within that array
717 * output GPIO line of @dev. This will be NULL if the output GPIO line
719 * returned does not belong to @dev -- it will be the input GPIO or
721 * output GPIO.
723 * You probably don't need to use this function -- it is used only
724 * by the platform-bus subsystem.
726 * Return: qemu_irq associated with GPIO or NULL if un-wired.
731 * qdev_intercept_gpio_out: Intercept an existing GPIO connection
732 * @dev: Device to intercept the outbound GPIO line from
734 * @name: Name of the output GPIO array
735 * @n: Number of the GPIO line in the array
739 * and is not suitable for use in non-testing parts of QEMU.
741 * This function breaks an existing connection of an outbound GPIO
757 * qdev_init_gpio_in: create an array of anonymous input GPIO lines
759 * @handler: Function to call when GPIO line value is set
760 * @n: Number of GPIO lines to create
763 * their instance_init or realize methods to create any input GPIO
765 * anonymous and named GPIO lines. Stylistically, named GPIOs are
767 * has exactly one uniform kind of GPIO input whose purpose is obvious.
768 * Note that input GPIO lines can serve as 'sinks' for IRQ lines.
771 * hold of an input GPIO line to manipulate it.
776 * qdev_init_gpio_out: create an array of anonymous output GPIO lines
778 * @pins: Pointer to qemu_irq or qemu_irq array for the GPIO lines
779 * @n: Number of GPIO lines to create
783 * GPIO lines they need. There is no functional difference between
784 * anonymous and named GPIO lines. Stylistically, named GPIOs are
786 * has exactly one uniform kind of GPIO output whose purpose is obvious.
791 * lower the GPIO line by calling qemu_set_irq(). (If anything is
792 * connected to the other end of the GPIO this will cause the handler
793 * function for that input GPIO to be called.)
796 * can connect to one of its output GPIO lines.
805 * qdev_init_gpio_out_named: create an array of named output GPIO lines
807 * @pins: Pointer to qemu_irq or qemu_irq array for the GPIO lines
808 * @name: Name to give this array of GPIO lines
809 * @n: Number of GPIO lines to create in this array
811 * Like qdev_init_gpio_out(), but creates an array of GPIO output lines
812 * with a name. Code using the device can then connect these GPIO lines
819 * qdev_init_gpio_in_named_with_opaque() - create an array of input GPIO lines
821 * @handler: Function to call when GPIO line value is set
823 * @name: Name of the GPIO input (must be unique for this device)
824 * @n: Number of GPIO lines in this input set
832 * qdev_init_gpio_in_named() - create an array of input GPIO lines
834 * @handler: a &typedef qemu_irq_handler function to call when GPIO is set
835 * @name: Name of the GPIO input (must be unique for this device)
836 * @n: Number of GPIO lines in this input set
849 * qdev_pass_gpios: create GPIO lines on container which pass through to device
850 * @dev: Device which has GPIO lines
852 * @name: Name of GPIO array to pass through (NULL for the anonymous GPIO array)
857 * to create GPIO arrays on itself which simply pass through to a GPIO
864 * To users of the container device, the GPIO array created on @container
899 * device_cold_reset() - perform a recursive cold reset on a device
900 * @dev: device to reset.
902 * Reset device @dev and perform a recursive processing using the resettable
908 * bus_cold_reset() - perform a recursive cold reset on a bus
909 * @bus: bus to reset
911 * Reset bus @bus and perform a recursive processing using the resettable
917 * device_is_in_reset() - check device reset state
920 * Return: true if the device @dev is currently being reset.
925 * bus_is_in_reset() - check bus reset state
928 * Return: true if the bus @bus is currently being reset.
949 * Validate that the array does not have a legacy terminator at compile-time;
950 * requires -O2 and the array to be const.
956 if ((props)[props_count_ - 1].name == NULL) { \
975 * device_class_set_parent_realize() - set up for chaining realize fns
984 * dc->parent_realize(dev, errp)
991 * device_class_set_legacy_reset(): set the DeviceClass::reset method
993 * @dev_reset: the reset function
995 * This function sets the DeviceClass::reset method. This is widely
997 * Resettable API as documented in docs/devel/reset.rst.
999 * reset methods or which need to be subclassed must use Resettable.
1005 * device_class_set_parent_unrealize() - set up for chaining unrealize fns
1014 * dc->parent_unrealize(dev);
1048 * qdev_get_human_name() - Return a human-readable name for a device
1049 * @dev: The device. Must be a valid and non-NULL pointer.
1073 HotplugHandler *plug_handler = bus->hotplug_handler; in qbus_is_hotpluggable()
1080 if (hdc->is_hotpluggable_bus) { in qbus_is_hotpluggable()
1081 ret = hdc->is_hotpluggable_bus(plug_handler, bus); in qbus_is_hotpluggable()
1100 * can use this function to mark the internal-only buses as full
1102 * created devices will appear on the expansion-port bus where
1107 bus->full = true; in qbus_mark_full()
1114 * qdev_should_hide_device() - check if device should be hidden
1130 /* current_machine is not NULL, but current_machine->accel is NULL. */
1134 * current_machine->accel is not NULL, but the machine properties have
1135 * not been validated and machine_class->init has not yet been called.
1145 * machine_class->init has been called, thus creating any embedded
1147 * this time are considered to be cold-plugged.
1153 * are considered to be hot-plugged. The monitor is not restricted