[1/1] ACPI: property: Replicate DT-aligned u32 properties from DisCo for Imaging
Commit Message
MIPI DisCo for Imaging defines properties for camera sensors that
functionally align with DT equivalents. Replicate the values of these
properties so no-one else needs to know about these property names.
Properties replicated are:
"mipi-img-clock-frequency" -> "clock-frequency"
"mipi-img-led-max-current" -> "led-max-microamp"
"mipi-img-flash-max-current" -> "flash-max-microamp"
"mipi-img-flash-max-timeout" -> "flash-max-timeout-us"
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
Hi Rafael,
Could you include this patch in the set? Then I think it's fairly
complete on ACPI framework side.
drivers/acpi/mipi-di.c | 21 +++++++++++++++++++++
include/acpi/acpi_bus.h | 4 ++++
2 files changed, 25 insertions(+)
Comments
On Wed, Nov 1, 2023 at 1:32 PM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
>
> MIPI DisCo for Imaging defines properties for camera sensors that
> functionally align with DT equivalents. Replicate the values of these
> properties so no-one else needs to know about these property names.
>
> Properties replicated are:
>
> "mipi-img-clock-frequency" -> "clock-frequency"
> "mipi-img-led-max-current" -> "led-max-microamp"
> "mipi-img-flash-max-current" -> "flash-max-microamp"
> "mipi-img-flash-max-timeout" -> "flash-max-timeout-us"
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> Hi Rafael,
>
> Could you include this patch in the set? Then I think it's fairly
> complete on ACPI framework side.
I'll do it, thanks!
> drivers/acpi/mipi-di.c | 21 +++++++++++++++++++++
> include/acpi/acpi_bus.h | 4 ++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/drivers/acpi/mipi-di.c b/drivers/acpi/mipi-di.c
> index 13ed09216c37..de8988657e96 100644
> --- a/drivers/acpi/mipi-di.c
> +++ b/drivers/acpi/mipi-di.c
> @@ -591,6 +591,7 @@ static void init_crs_csi2_swnodes(struct crs_csi2 *csi2)
> struct acpi_device *adev;
> acpi_status status;
> unsigned int i;
> + u32 val;
> int ret;
>
> /*
> @@ -622,6 +623,26 @@ static void init_crs_csi2_swnodes(struct crs_csi2 *csi2)
> }
> }
>
> + if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-clock-frequency", &val)) {
> + swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_CLOCK_FREQUENCY)] =
> + PROPERTY_ENTRY_U32("clock-frequency", val);
> + }
> +
> + if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-led-max-current", &val)) {
> + swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_LED_MAX_MICROAMP)] =
> + PROPERTY_ENTRY_U32("led-max-microamp", val);
> + }
> +
> + if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-flash-max-current", &val)) {
> + swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_FLASH_MAX_MICROAMP)] =
> + PROPERTY_ENTRY_U32("flash-max-microamp", val);
> + }
> +
> + if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-flash-max-timeout-us", &val)) {
> + swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_FLASH_MAX_TIMEOUT_US)] =
> + PROPERTY_ENTRY_U32("flash-max-timeout-us", val);
> + }
> +
> status = acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
> if (ACPI_FAILURE(status)) {
> acpi_handle_info(handle, "Unable to get the path name\n");
> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
> index d92799889512..85a27081cced 100644
> --- a/include/acpi/acpi_bus.h
> +++ b/include/acpi/acpi_bus.h
> @@ -371,6 +371,10 @@ struct acpi_gpio_mapping;
>
> enum acpi_device_swnode_dev_props {
> ACPI_DEVICE_SWNODE_DEV_ROTATION,
> + ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY,
> + ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP,
> + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP,
> + ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US,
> ACPI_DEVICE_SWNODE_DEV_NUM_OF,
> ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES
> };
> --
> 2.39.2
>
>
@@ -591,6 +591,7 @@ static void init_crs_csi2_swnodes(struct crs_csi2 *csi2)
struct acpi_device *adev;
acpi_status status;
unsigned int i;
+ u32 val;
int ret;
/*
@@ -622,6 +623,26 @@ static void init_crs_csi2_swnodes(struct crs_csi2 *csi2)
}
}
+ if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-clock-frequency", &val)) {
+ swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_CLOCK_FREQUENCY)] =
+ PROPERTY_ENTRY_U32("clock-frequency", val);
+ }
+
+ if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-led-max-current", &val)) {
+ swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_LED_MAX_MICROAMP)] =
+ PROPERTY_ENTRY_U32("led-max-microamp", val);
+ }
+
+ if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-flash-max-current", &val)) {
+ swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_FLASH_MAX_MICROAMP)] =
+ PROPERTY_ENTRY_U32("flash-max-microamp", val);
+ }
+
+ if (!fwnode_property_read_u32(adev_fwnode, "mipi-img-flash-max-timeout-us", &val)) {
+ swnodes->dev_props[NEXT_PROPERTY(prop_index, DEV_FLASH_MAX_TIMEOUT_US)] =
+ PROPERTY_ENTRY_U32("flash-max-timeout-us", val);
+ }
+
status = acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
if (ACPI_FAILURE(status)) {
acpi_handle_info(handle, "Unable to get the path name\n");
@@ -371,6 +371,10 @@ struct acpi_gpio_mapping;
enum acpi_device_swnode_dev_props {
ACPI_DEVICE_SWNODE_DEV_ROTATION,
+ ACPI_DEVICE_SWNODE_DEV_CLOCK_FREQUENCY,
+ ACPI_DEVICE_SWNODE_DEV_LED_MAX_MICROAMP,
+ ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_MICROAMP,
+ ACPI_DEVICE_SWNODE_DEV_FLASH_MAX_TIMEOUT_US,
ACPI_DEVICE_SWNODE_DEV_NUM_OF,
ACPI_DEVICE_SWNODE_DEV_NUM_ENTRIES
};