Lines Matching full:sensor

20  * Do not add an entry for a sensor that is not actually supported.
76 struct cio2_sensor *sensor, in cio2_bridge_create_fwnode_properties() argument
80 sensor->prop_names = prop_names; in cio2_bridge_create_fwnode_properties()
82 sensor->local_ref[0] = SOFTWARE_NODE_REFERENCE(&sensor->swnodes[SWNODE_CIO2_ENDPOINT]); in cio2_bridge_create_fwnode_properties()
83 sensor->remote_ref[0] = SOFTWARE_NODE_REFERENCE(&sensor->swnodes[SWNODE_SENSOR_ENDPOINT]); in cio2_bridge_create_fwnode_properties()
85 sensor->dev_properties[0] = PROPERTY_ENTRY_U32( in cio2_bridge_create_fwnode_properties()
86 sensor->prop_names.clock_frequency, in cio2_bridge_create_fwnode_properties()
87 sensor->ssdb.mclkspeed); in cio2_bridge_create_fwnode_properties()
88 sensor->dev_properties[1] = PROPERTY_ENTRY_U8( in cio2_bridge_create_fwnode_properties()
89 sensor->prop_names.rotation, in cio2_bridge_create_fwnode_properties()
90 sensor->ssdb.degree); in cio2_bridge_create_fwnode_properties()
92 sensor->ep_properties[0] = PROPERTY_ENTRY_U32( in cio2_bridge_create_fwnode_properties()
93 sensor->prop_names.bus_type, in cio2_bridge_create_fwnode_properties()
95 sensor->ep_properties[1] = PROPERTY_ENTRY_U32_ARRAY_LEN( in cio2_bridge_create_fwnode_properties()
96 sensor->prop_names.data_lanes, in cio2_bridge_create_fwnode_properties()
98 sensor->ssdb.lanes); in cio2_bridge_create_fwnode_properties()
99 sensor->ep_properties[2] = PROPERTY_ENTRY_REF_ARRAY( in cio2_bridge_create_fwnode_properties()
100 sensor->prop_names.remote_endpoint, in cio2_bridge_create_fwnode_properties()
101 sensor->local_ref); in cio2_bridge_create_fwnode_properties()
104 sensor->ep_properties[3] = PROPERTY_ENTRY_U64_ARRAY_LEN( in cio2_bridge_create_fwnode_properties()
105 sensor->prop_names.link_frequencies, in cio2_bridge_create_fwnode_properties()
109 sensor->cio2_properties[0] = PROPERTY_ENTRY_U32_ARRAY_LEN( in cio2_bridge_create_fwnode_properties()
110 sensor->prop_names.data_lanes, in cio2_bridge_create_fwnode_properties()
112 sensor->ssdb.lanes); in cio2_bridge_create_fwnode_properties()
113 sensor->cio2_properties[1] = PROPERTY_ENTRY_REF_ARRAY( in cio2_bridge_create_fwnode_properties()
114 sensor->prop_names.remote_endpoint, in cio2_bridge_create_fwnode_properties()
115 sensor->remote_ref); in cio2_bridge_create_fwnode_properties()
118 static void cio2_bridge_init_swnode_names(struct cio2_sensor *sensor) in cio2_bridge_init_swnode_names() argument
120 snprintf(sensor->node_names.remote_port, in cio2_bridge_init_swnode_names()
121 sizeof(sensor->node_names.remote_port), in cio2_bridge_init_swnode_names()
122 SWNODE_GRAPH_PORT_NAME_FMT, sensor->ssdb.link); in cio2_bridge_init_swnode_names()
123 snprintf(sensor->node_names.port, in cio2_bridge_init_swnode_names()
124 sizeof(sensor->node_names.port), in cio2_bridge_init_swnode_names()
126 snprintf(sensor->node_names.endpoint, in cio2_bridge_init_swnode_names()
127 sizeof(sensor->node_names.endpoint), in cio2_bridge_init_swnode_names()
132 struct cio2_sensor *sensor) in cio2_bridge_create_connection_swnodes() argument
134 struct software_node *nodes = sensor->swnodes; in cio2_bridge_create_connection_swnodes()
136 cio2_bridge_init_swnode_names(sensor); in cio2_bridge_create_connection_swnodes()
138 nodes[SWNODE_SENSOR_HID] = NODE_SENSOR(sensor->name, in cio2_bridge_create_connection_swnodes()
139 sensor->dev_properties); in cio2_bridge_create_connection_swnodes()
140 nodes[SWNODE_SENSOR_PORT] = NODE_PORT(sensor->node_names.port, in cio2_bridge_create_connection_swnodes()
143 sensor->node_names.endpoint, in cio2_bridge_create_connection_swnodes()
145 sensor->ep_properties); in cio2_bridge_create_connection_swnodes()
146 nodes[SWNODE_CIO2_PORT] = NODE_PORT(sensor->node_names.remote_port, in cio2_bridge_create_connection_swnodes()
149 sensor->node_names.endpoint, in cio2_bridge_create_connection_swnodes()
151 sensor->cio2_properties); in cio2_bridge_create_connection_swnodes()
156 struct cio2_sensor *sensor; in cio2_bridge_unregister_sensors() local
160 sensor = &bridge->sensors[i]; in cio2_bridge_unregister_sensors()
161 software_node_unregister_nodes(sensor->swnodes); in cio2_bridge_unregister_sensors()
162 acpi_dev_put(sensor->adev); in cio2_bridge_unregister_sensors()
171 struct cio2_sensor *sensor; in cio2_bridge_connect_sensor() local
185 sensor = &bridge->sensors[bridge->n_sensors]; in cio2_bridge_connect_sensor()
186 strscpy(sensor->name, cfg->hid, sizeof(sensor->name)); in cio2_bridge_connect_sensor()
189 &sensor->ssdb, in cio2_bridge_connect_sensor()
190 sizeof(sensor->ssdb)); in cio2_bridge_connect_sensor()
194 if (sensor->ssdb.lanes > CIO2_MAX_LANES) { in cio2_bridge_connect_sensor()
201 cio2_bridge_create_fwnode_properties(sensor, bridge, cfg); in cio2_bridge_connect_sensor()
202 cio2_bridge_create_connection_swnodes(bridge, sensor); in cio2_bridge_connect_sensor()
204 ret = software_node_register_nodes(sensor->swnodes); in cio2_bridge_connect_sensor()
208 fwnode = software_node_fwnode(&sensor->swnodes[ in cio2_bridge_connect_sensor()
215 sensor->adev = acpi_dev_get(adev); in cio2_bridge_connect_sensor()
218 dev_info(&cio2->dev, "Found supported sensor %s\n", in cio2_bridge_connect_sensor()
227 software_node_unregister_nodes(sensor->swnodes); in cio2_bridge_connect_sensor()
279 * only need one, rather than one per sensor). We include it as a in cio2_bridge_init()