mfd: intel-lpss: Pass I2C configuration via properties on BXT
Andy Shevchenko
reviewerPATCH 1/1 mfd: intel-lpss: Pass I2C configuration via properties on BXT
From: Mika Westerberg <[email protected]>
I2C host controller need to be configured properly in order to meet I2C timings specified in the I2C protocol specification. Some Intel Broxton based machines do not have this information in the ACPI namespace (or the boot firmware does not support ACPI at all) so we use build-in device properties instead.
--- drivers/mfd/intel-lpss-acpi.c | 12 ++++++++++++ drivers/mfd/intel-lpss-pci.c | 12 ++++++++++++ 2 files changed, 24 insertions(+)
drivers/mfd/intel-lpss-acpi.c +12 -0
@@ -44,8 +44,20 @@ static const struct intel_lpss_platform_info bxt_info = { .clk_rate = 100000000, }; +static struct property_entry bxt_i2c_properties[] = { +PROPERTY_ENTRY_U32 ("i2c-sda-hold-time-ns" ,42 ), +PROPERTY_ENTRY_U32 ("i2c-sda-falling-time-ns" ,171 ), +PROPERTY_ENTRY_U32 ("i2c-scl-falling-time-ns" ,208 ), + { }, +}; + +static struct property_set bxt_i2c_pset = { + .properties = bxt_i2c_properties, +}; +static const struct intel_lpss_platform_info bxt_i2c_info = { .clk_rate =133000000 , + .pset = &bxt_i2c_pset, };static const struct acpi_device_id intel_lpss_acpi_ids[] = {
drivers/mfd/intel-lpss-pci.c +12 -0
@@ -107,8 +107,20 @@ static const struct intel_lpss_platform_info bxt_uart_info = { .pset = &uart_pset, }; +static struct property_entry bxt_i2c_properties[] = { +PROPERTY_ENTRY_U32 ("i2c-sda-hold-time-ns" ,42 ), +PROPERTY_ENTRY_U32 ("i2c-sda-falling-time-ns" ,171 ), +PROPERTY_ENTRY_U32 ("i2c-scl-falling-time-ns" ,208 ), + { }, +}; + +static struct property_set bxt_i2c_pset = { + .properties = bxt_i2c_properties, +}; +static const struct intel_lpss_platform_info bxt_i2c_info = { .clk_rate =133000000 , + .pset = &bxt_i2c_pset, };static const struct pci_device_id intel_lpss_pci_ids[] = {
Signature · 1 line
2.7.0.rc3
Quoted 10 lines · Andy Shevchenko
From: Mika Westerberg <[email protected]>
I2C host controller need to be configured properly in order to meet I2C timings specified in the I2C protocol specification. Some Intel Broxton based machines do not have this information in the ACPI namespace (or the boot firmware does not support ACPI at all) so we use build-in device properties instead.
Signed-off-by Mika Westerberg <[email protected]>Signed-off-by Andy Shevchenko <[email protected]>
Hi Lee,
Any comments on this patch? If not, could you consider applying it to the MFD tree?
Thanks.
Quoted 57 lines
--- drivers/mfd/intel-lpss-acpi.c | 12 ++++++++++++ drivers/mfd/intel-lpss-pci.c | 12 ++++++++++++ 2 files changed, 24 insertions(+)drivers/mfd/intel-lpss-acpi.c +12
-0@@ -44,8 +44,20 @@ static const struct intel_lpss_platform_info bxt_info = { .clk_rate = 100000000, }; +static struct property_entry bxt_i2c_properties[] = { +PROPERTY_ENTRY_U32 ("i2c-sda-hold-time-ns" ,42 ), +PROPERTY_ENTRY_U32 ("i2c-sda-falling-time-ns" ,171 ), +PROPERTY_ENTRY_U32 ("i2c-scl-falling-time-ns" ,208 ), + { }, +}; + +static struct property_set bxt_i2c_pset = { + .properties = bxt_i2c_properties, +}; +static const struct intel_lpss_platform_info bxt_i2c_info = { .clk_rate =133000000 , + .pset = &bxt_i2c_pset, };static const struct acpi_device_id intel_lpss_acpi_ids[] = {drivers/mfd/intel-lpss-pci.c +12
-0@@ -107,8 +107,20 @@ static const struct intel_lpss_platform_info bxt_uart_info = { .pset = &uart_pset, }; +static struct property_entry bxt_i2c_properties[] = { +PROPERTY_ENTRY_U32 ("i2c-sda-hold-time-ns" ,42 ), +PROPERTY_ENTRY_U32 ("i2c-sda-falling-time-ns" ,171 ), +PROPERTY_ENTRY_U32 ("i2c-scl-falling-time-ns" ,208 ), + { }, +}; + +static struct property_set bxt_i2c_pset = { + .properties = bxt_i2c_properties, +}; +static const struct intel_lpss_platform_info bxt_i2c_info = { .clk_rate =133000000 , + .pset = &bxt_i2c_pset, };static const struct pci_device_id intel_lpss_pci_ids[] = {Signature · 1 line
2.7.0.rc3
Lee Jones
AppliedQuoted 8 lines · Andy Shevchenko
From: Mika Westerberg <[email protected]>
I2C host controller need to be configured properly in order to meet I2C timings specified in the I2C protocol specification. Some Intel Broxton based machines do not have this information in the ACPI namespace (or the boot firmware does not support ACPI at all) so we use build-in device properties instead.
Quoted 6 lines
Signed-off-by Mika Westerberg <[email protected]>Signed-off-by Andy Shevchenko <[email protected]>--- drivers/mfd/intel-lpss-acpi.c | 12 ++++++++++++ drivers/mfd/intel-lpss-pci.c | 12 ++++++++++++ 2 files changed, 24 insertions(+)
Applied, thanks.
Quoted 50 lines
drivers/mfd/intel-lpss-acpi.c +12
-0@@ -44,8 +44,20 @@ static const struct intel_lpss_platform_info bxt_info = { .clk_rate = 100000000, }; +static struct property_entry bxt_i2c_properties[] = { +PROPERTY_ENTRY_U32 ("i2c-sda-hold-time-ns" ,42 ), +PROPERTY_ENTRY_U32 ("i2c-sda-falling-time-ns" ,171 ), +PROPERTY_ENTRY_U32 ("i2c-scl-falling-time-ns" ,208 ), + { }, +}; + +static struct property_set bxt_i2c_pset = { + .properties = bxt_i2c_properties, +}; +static const struct intel_lpss_platform_info bxt_i2c_info = { .clk_rate =133000000 , + .pset = &bxt_i2c_pset, };static const struct acpi_device_id intel_lpss_acpi_ids[] = {drivers/mfd/intel-lpss-pci.c +12
-0@@ -107,8 +107,20 @@ static const struct intel_lpss_platform_info bxt_uart_info = { .pset = &uart_pset, }; +static struct property_entry bxt_i2c_properties[] = { +PROPERTY_ENTRY_U32 ("i2c-sda-hold-time-ns" ,42 ), +PROPERTY_ENTRY_U32 ("i2c-sda-falling-time-ns" ,171 ), +PROPERTY_ENTRY_U32 ("i2c-scl-falling-time-ns" ,208 ), + { }, +}; + +static struct property_set bxt_i2c_pset = { + .properties = bxt_i2c_properties, +}; +static const struct intel_lpss_platform_info bxt_i2c_info = { .clk_rate =133000000 , + .pset = &bxt_i2c_pset, };static const struct pci_device_id intel_lpss_pci_ids[] = {
Signature · 4 lines
Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog