Lines Matching +full:d +full:- +full:bus

1 // SPDX-License-Identifier: GPL-2.0-only
2 // Copyright(c) 2019-2020 Intel Corporation.
9 #include "bus.h"
13 * devices physically attached on a bus segment. In practice enabling
14 * the bus operation will result in children devices become active and
25 * sdw-master-N
26 * |---- revision
27 * |---- clk_stop_modes
28 * |---- max_clk_freq
29 * |---- clk_freq
30 * |---- clk_gears
31 * |---- default_row
32 * |---- default_col
33 * |---- dynamic_shape
34 * |---- err_threshold
43 return sprintf(buf, format_string, md->bus->prop.field); \
49 sdw_master_attr(max_clk_freq, "%d\n");
50 sdw_master_attr(default_row, "%d\n");
51 sdw_master_attr(default_col, "%d\n");
52 sdw_master_attr(default_frame_rate, "%d\n");
53 sdw_master_attr(dynamic_frame, "%d\n");
54 sdw_master_attr(err_threshold, "%d\n");
63 for (i = 0; i < md->bus->prop.num_clk_freq; i++) in clock_frequencies_show()
64 size += sprintf(buf + size, "%8d ", in clock_frequencies_show()
65 md->bus->prop.clk_freq[i]); in clock_frequencies_show()
79 for (i = 0; i < md->bus->prop.num_clk_gears; i++) in clock_gears_show()
80 size += sprintf(buf + size, "%8d ", in clock_gears_show()
81 md->bus->prop.clk_gears[i]); in clock_gears_show()
122 * sdw_master_device_add() - create a Linux Master Device representation.
123 * @bus: SDW bus instance
127 int sdw_master_device_add(struct sdw_bus *bus, struct device *parent, in sdw_master_device_add() argument
134 return -EINVAL; in sdw_master_device_add()
138 return -ENOMEM; in sdw_master_device_add()
140 md->dev.bus = &sdw_bus_type; in sdw_master_device_add()
141 md->dev.type = &sdw_master_type; in sdw_master_device_add()
142 md->dev.parent = parent; in sdw_master_device_add()
143 md->dev.groups = master_node_groups; in sdw_master_device_add()
144 md->dev.of_node = parent->of_node; in sdw_master_device_add()
145 md->dev.fwnode = fwnode; in sdw_master_device_add()
146 md->dev.dma_mask = parent->dma_mask; in sdw_master_device_add()
148 dev_set_name(&md->dev, "sdw-master-%d-%d", bus->controller_id, bus->link_id); in sdw_master_device_add()
150 ret = device_register(&md->dev); in sdw_master_device_add()
152 dev_err(parent, "Failed to add master: ret %d\n", ret); in sdw_master_device_add()
157 put_device(&md->dev); in sdw_master_device_add()
162 md->bus = bus; in sdw_master_device_add()
163 bus->dev = &md->dev; in sdw_master_device_add()
164 bus->md = md; in sdw_master_device_add()
166 pm_runtime_set_autosuspend_delay(&bus->md->dev, SDW_MASTER_SUSPEND_DELAY_MS); in sdw_master_device_add()
167 pm_runtime_use_autosuspend(&bus->md->dev); in sdw_master_device_add()
168 pm_runtime_mark_last_busy(&bus->md->dev); in sdw_master_device_add()
169 pm_runtime_set_active(&bus->md->dev); in sdw_master_device_add()
170 pm_runtime_enable(&bus->md->dev); in sdw_master_device_add()
171 pm_runtime_idle(&bus->md->dev); in sdw_master_device_add()
177 * sdw_master_device_del() - delete a Linux Master Device representation.
178 * @bus: bus handle
182 int sdw_master_device_del(struct sdw_bus *bus) in sdw_master_device_del() argument
184 pm_runtime_disable(&bus->md->dev); in sdw_master_device_del()
185 device_unregister(bus->dev); in sdw_master_device_del()