Message ID | 20240808164941.1407327-1-robh@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | ARM: dts: Fix undocumented LM75 compatible nodes | expand |
On 08/08/2024 18:49, Rob Herring (Arm) wrote: > "lm75" without any vendor is undocumented. It works with the Linux > kernel since the I2C subsystem will do matches of the compatible string > without a vendor prefix to the i2c_device_id and/or driver name. > > Mostly replace "lm75" with "national,lm75" as that's the original part > vendor and the compatible which matches what "lm75" matched with. In a > couple of cases the node name or compatible gives a clue to the actual > part and vendor and a more specific compatible can be used. In these > cases, it does change the variant the kernel picks. > > "nct75" is an OnSemi part which is compatible with TI TMP75C based on > a comparison of the OnSemi NCT75 datasheet and configuration the Linux > driver uses. Adding an OnSemi compatible would be an ABI change. > > "nxp,lm75" is most likely an NXP part. NXP makes a LM75A and LM75B. > Both are 11-bit resolution and 100ms sample time, so "national,lm75b" is > the closest match. > > While we're here, fix the node names to use the generic name > "temperature-sensor". > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > --- > SoC maintainers, Please take this directly. > --- Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
"Rob Herring (Arm)" <robh@kernel.org> writes: > "lm75" without any vendor is undocumented. It works with the Linux > kernel since the I2C subsystem will do matches of the compatible string > without a vendor prefix to the i2c_device_id and/or driver name. > > Mostly replace "lm75" with "national,lm75" as that's the original part > vendor and the compatible which matches what "lm75" matched with. In a > couple of cases the node name or compatible gives a clue to the actual > part and vendor and a more specific compatible can be used. In these > cases, it does change the variant the kernel picks. > > "nct75" is an OnSemi part which is compatible with TI TMP75C based on > a comparison of the OnSemi NCT75 datasheet and configuration the Linux > driver uses. Adding an OnSemi compatible would be an ABI change. > > "nxp,lm75" is most likely an NXP part. NXP makes a LM75A and LM75B. > Both are 11-bit resolution and 100ms sample time, so "national,lm75b" is > the closest match. > > While we're here, fix the node names to use the generic name > "temperature-sensor". > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > --- > SoC maintainers, Please take this directly. [...] > arch/arm/boot/dts/ti/omap/am335x-nano.dts | 2 +- For this one... Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Am Donnerstag, 8. August 2024, 18:49:38 CEST schrieb Rob Herring (Arm): > "lm75" without any vendor is undocumented. It works with the Linux > kernel since the I2C subsystem will do matches of the compatible string > without a vendor prefix to the i2c_device_id and/or driver name. > > Mostly replace "lm75" with "national,lm75" as that's the original part > vendor and the compatible which matches what "lm75" matched with. In a > couple of cases the node name or compatible gives a clue to the actual > part and vendor and a more specific compatible can be used. In these > cases, it does change the variant the kernel picks. > > "nct75" is an OnSemi part which is compatible with TI TMP75C based on > a comparison of the OnSemi NCT75 datasheet and configuration the Linux > driver uses. Adding an OnSemi compatible would be an ABI change. > > "nxp,lm75" is most likely an NXP part. NXP makes a LM75A and LM75B. > Both are 11-bit resolution and 100ms sample time, so "national,lm75b" is > the closest match. > > While we're here, fix the node names to use the generic name > "temperature-sensor". > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > --- > SoC maintainers, Please take this directly. > --- > .../aspeed/aspeed-bmc-facebook-greatlakes.dts | 2 +- > .../socfpga/socfpga_cyclone5_vining_fpga.dts | 4 +-- > .../dts/marvell/armada-385-clearfog-gtr.dtsi | 8 ++--- > .../boot/dts/nuvoton/nuvoton-npcm730-kudo.dts | 32 +++++++++---------- > .../boot/dts/nuvoton/nuvoton-npcm750-evb.dts | 6 ++-- > arch/arm/boot/dts/nxp/imx/imx53-mba53.dts | 4 +-- > arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi | 4 +-- > .../dts/nxp/lpc/lpc4357-ea4357-devkit.dts | 4 +-- > .../boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts | 2 +- > arch/arm/boot/dts/ti/omap/am335x-nano.dts | 2 +- > .../boot/dts/xilinx/zynq-zturn-common.dtsi | 4 +-- > 11 files changed, 36 insertions(+), 36 deletions(-) > < [snip] > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts > index 2117de872703..d155b3ec22ef 100644 > --- a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts > +++ b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts > @@ -175,8 +175,8 @@ expander: pca9554@20 { > gpio-controller; > }; > > - sensor2: lm75@49 { > - compatible = "lm75"; > + sensor2: temperature-sensor@49 { > + compatible = "national,lm75"; I checked the old schematics. This is an NXP LM75A, so 'national,lm75a' would be the correct compatible. > reg = <0x49>; > }; > }; > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi b/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi > index b2d7271d1d24..d01c3aee0272 100644 > --- a/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi > +++ b/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi > @@ -254,8 +254,8 @@ pmic: mc34708@8 { > interrupts = <6 4>; /* PATA_DATA6, active high */ > }; > > - sensor1: lm75@48 { > - compatible = "lm75"; > + sensor1: temperature-sensor@48 { > + compatible = "national,lm75"; I checked the old schematics. This is an NXP LM75A, so 'national,lm75a' would be the correct compatible. Best regards, Alexander > reg = <0x48>; > }; > > [snip]
On Fri, Aug 9, 2024 at 1:51 AM Alexander Stein <alexander.stein@ew.tq-group.com> wrote: > > Am Donnerstag, 8. August 2024, 18:49:38 CEST schrieb Rob Herring (Arm): > > "lm75" without any vendor is undocumented. It works with the Linux > > kernel since the I2C subsystem will do matches of the compatible string > > without a vendor prefix to the i2c_device_id and/or driver name. > > > > Mostly replace "lm75" with "national,lm75" as that's the original part > > vendor and the compatible which matches what "lm75" matched with. In a > > couple of cases the node name or compatible gives a clue to the actual > > part and vendor and a more specific compatible can be used. In these > > cases, it does change the variant the kernel picks. > > > > "nct75" is an OnSemi part which is compatible with TI TMP75C based on > > a comparison of the OnSemi NCT75 datasheet and configuration the Linux > > driver uses. Adding an OnSemi compatible would be an ABI change. > > > > "nxp,lm75" is most likely an NXP part. NXP makes a LM75A and LM75B. > > Both are 11-bit resolution and 100ms sample time, so "national,lm75b" is > > the closest match. > > > > While we're here, fix the node names to use the generic name > > "temperature-sensor". > > > > Signed-off-by: Rob Herring (Arm) <robh@kernel.org> > > --- > > SoC maintainers, Please take this directly. > > --- > > .../aspeed/aspeed-bmc-facebook-greatlakes.dts | 2 +- > > .../socfpga/socfpga_cyclone5_vining_fpga.dts | 4 +-- > > .../dts/marvell/armada-385-clearfog-gtr.dtsi | 8 ++--- > > .../boot/dts/nuvoton/nuvoton-npcm730-kudo.dts | 32 +++++++++---------- > > .../boot/dts/nuvoton/nuvoton-npcm750-evb.dts | 6 ++-- > > arch/arm/boot/dts/nxp/imx/imx53-mba53.dts | 4 +-- > > arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi | 4 +-- > > .../dts/nxp/lpc/lpc4357-ea4357-devkit.dts | 4 +-- > > .../boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts | 2 +- > > arch/arm/boot/dts/ti/omap/am335x-nano.dts | 2 +- > > .../boot/dts/xilinx/zynq-zturn-common.dtsi | 4 +-- > > 11 files changed, 36 insertions(+), 36 deletions(-) > > > < [snip] > > diff --git a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts > > index 2117de872703..d155b3ec22ef 100644 > > --- a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts > > +++ b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts > > @@ -175,8 +175,8 @@ expander: pca9554@20 { > > gpio-controller; > > }; > > > > - sensor2: lm75@49 { > > - compatible = "lm75"; > > + sensor2: temperature-sensor@49 { > > + compatible = "national,lm75"; > > I checked the old schematics. This is an NXP LM75A, so 'national,lm75a' > would be the correct compatible. Thanks for checking. That doesn't change the configuration in the driver. lm75 and lm75a are treated the same as both are 9-bit resolution. The NXP LM75A is 11-bit resolution and 10Hz which corresponds to lm75b in the driver. Though it looks to me like the original lm75b was also 9-bit resolution. Rob
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dts index 998598c15fd0..49914a4a179f 100644 --- a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dts +++ b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-greatlakes.dts @@ -201,7 +201,7 @@ eeprom@54 { &i2c12 { status = "okay"; temperature-sensor@4f { - compatible = "lm75"; + compatible = "national,lm75"; reg = <0x4f>; }; }; diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_vining_fpga.dts b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_vining_fpga.dts index 65f390bf8975..84f39dec3c42 100644 --- a/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_vining_fpga.dts +++ b/arch/arm/boot/dts/intel/socfpga/socfpga_cyclone5_vining_fpga.dts @@ -130,8 +130,8 @@ gpio: pca9557@1f { #gpio-cells = <2>; }; - temp: lm75@48 { - compatible = "lm75"; + temp: temperature-sensor@48 { + compatible = "national,lm75"; reg = <0x48>; }; diff --git a/arch/arm/boot/dts/marvell/armada-385-clearfog-gtr.dtsi b/arch/arm/boot/dts/marvell/armada-385-clearfog-gtr.dtsi index f3a3cb6ac311..8208c6a9627a 100644 --- a/arch/arm/boot/dts/marvell/armada-385-clearfog-gtr.dtsi +++ b/arch/arm/boot/dts/marvell/armada-385-clearfog-gtr.dtsi @@ -423,14 +423,14 @@ &i2c0 { status = "okay"; /* U26 temperature sensor placed near SoC */ - temp1: nct75@4c { - compatible = "lm75"; + temp1: temperature-sensor@4c { + compatible = "ti,tmp75c"; reg = <0x4c>; }; /* U27 temperature sensor placed near RTC battery */ - temp2: nct75@4d { - compatible = "lm75"; + temp2: temperature-sensor@4d { + compatible = "ti,tmp75c"; reg = <0x4d>; }; diff --git a/arch/arm/boot/dts/nuvoton/nuvoton-npcm730-kudo.dts b/arch/arm/boot/dts/nuvoton/nuvoton-npcm730-kudo.dts index 1f07ba382910..886a87dfcd0d 100644 --- a/arch/arm/boot/dts/nuvoton/nuvoton-npcm730-kudo.dts +++ b/arch/arm/boot/dts/nuvoton/nuvoton-npcm730-kudo.dts @@ -531,8 +531,8 @@ i2c@4 { reg = <4>; // INLET1_T - lm75@5c { - compatible = "ti,lm75"; + temperature-sensor@5c { + compatible = "national,lm75"; reg = <0x5c>; }; }; @@ -543,8 +543,8 @@ i2c@5 { reg = <5>; // OUTLET1_T - lm75@5c { - compatible = "ti,lm75"; + temperature-sensor@5c { + compatible = "national,lm75"; reg = <0x5c>; }; }; @@ -555,8 +555,8 @@ i2c@6 { reg = <6>; // OUTLET2_T - lm75@5c { - compatible = "ti,lm75"; + temperature-sensor@5c { + compatible = "national,lm75"; reg = <0x5c>; }; }; @@ -567,8 +567,8 @@ i2c@7 { reg = <7>; // OUTLET3_T - lm75@5c { - compatible = "ti,lm75"; + temperature-sensor@5c { + compatible = "national,lm75"; reg = <0x5c>; }; }; @@ -697,8 +697,8 @@ i2c@3 { reg = <3>; // M2_ZONE_T - lm75@28 { - compatible = "ti,lm75"; + temperature-sensor@28 { + compatible = "national,lm75"; reg = <0x28>; }; }; @@ -709,8 +709,8 @@ i2c@4 { reg = <4>; // BATT_ZONE_T - lm75@29 { - compatible = "ti,lm75"; + temperature-sensor@29 { + compatible = "national,lm75"; reg = <0x29>; }; }; @@ -721,8 +721,8 @@ i2c@5 { reg = <5>; // NBM1_ZONE_T - lm75@28 { - compatible = "ti,lm75"; + temperature-sensor@28 { + compatible = "national,lm75"; reg = <0x28>; }; }; @@ -732,8 +732,8 @@ i2c@6 { reg = <6>; // NBM2_ZONE_T - lm75@29 { - compatible = "ti,lm75"; + temperature-sensor@29 { + compatible = "national,lm75"; reg = <0x29>; }; }; diff --git a/arch/arm/boot/dts/nuvoton/nuvoton-npcm750-evb.dts b/arch/arm/boot/dts/nuvoton/nuvoton-npcm750-evb.dts index f53d45fa1de8..bcdcb30c7bf6 100644 --- a/arch/arm/boot/dts/nuvoton/nuvoton-npcm750-evb.dts +++ b/arch/arm/boot/dts/nuvoton/nuvoton-npcm750-evb.dts @@ -198,7 +198,7 @@ &i2c0 { clock-frequency = <100000>; status = "okay"; lm75@48 { - compatible = "lm75"; + compatible = "national,lm75"; reg = <0x48>; status = "okay"; }; @@ -208,8 +208,8 @@ lm75@48 { &i2c1 { clock-frequency = <100000>; status = "okay"; - lm75@48 { - compatible = "lm75"; + temperature-sensor@48 { + compatible = "national,lm75"; reg = <0x48>; status = "okay"; }; diff --git a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts index 2117de872703..d155b3ec22ef 100644 --- a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts +++ b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts @@ -175,8 +175,8 @@ expander: pca9554@20 { gpio-controller; }; - sensor2: lm75@49 { - compatible = "lm75"; + sensor2: temperature-sensor@49 { + compatible = "national,lm75"; reg = <0x49>; }; }; diff --git a/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi b/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi index b2d7271d1d24..d01c3aee0272 100644 --- a/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi @@ -254,8 +254,8 @@ pmic: mc34708@8 { interrupts = <6 4>; /* PATA_DATA6, active high */ }; - sensor1: lm75@48 { - compatible = "lm75"; + sensor1: temperature-sensor@48 { + compatible = "national,lm75"; reg = <0x48>; }; diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts b/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts index 224f80a4a31d..4aefbc01dfc0 100644 --- a/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts +++ b/arch/arm/boot/dts/nxp/lpc/lpc4357-ea4357-devkit.dts @@ -482,8 +482,8 @@ mma7455@1d { reg = <0x1d>; }; - lm75@48 { - compatible = "nxp,lm75"; + temperature-sensor@48 { + compatible = "national,lm75b"; reg = <0x48>; }; diff --git a/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts b/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts index 1f84654df50c..846afb8ccbf1 100644 --- a/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts +++ b/arch/arm/boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts @@ -511,7 +511,7 @@ &i2c1 { clock-frequency = <400000>; sensor@49 { - compatible = "lm75"; + compatible = "national,lm75"; reg = <0x49>; }; diff --git a/arch/arm/boot/dts/ti/omap/am335x-nano.dts b/arch/arm/boot/dts/ti/omap/am335x-nano.dts index 26b5510cb3d1..56929059f5af 100644 --- a/arch/arm/boot/dts/ti/omap/am335x-nano.dts +++ b/arch/arm/boot/dts/ti/omap/am335x-nano.dts @@ -231,7 +231,7 @@ tps: tps@24 { }; temperature-sensor@48 { - compatible = "lm75"; + compatible = "national,lm75"; reg = <0x48>; }; diff --git a/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi b/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi index dfb1fbafe3aa..33b02e05ce82 100644 --- a/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi +++ b/arch/arm/boot/dts/xilinx/zynq-zturn-common.dtsi @@ -97,9 +97,9 @@ &i2c0 { status = "okay"; clock-frequency = <400000>; - stlm75@49 { + temperature-sensor@49 { status = "okay"; - compatible = "lm75"; + compatible = "st,stlm75"; reg = <0x49>; };
"lm75" without any vendor is undocumented. It works with the Linux kernel since the I2C subsystem will do matches of the compatible string without a vendor prefix to the i2c_device_id and/or driver name. Mostly replace "lm75" with "national,lm75" as that's the original part vendor and the compatible which matches what "lm75" matched with. In a couple of cases the node name or compatible gives a clue to the actual part and vendor and a more specific compatible can be used. In these cases, it does change the variant the kernel picks. "nct75" is an OnSemi part which is compatible with TI TMP75C based on a comparison of the OnSemi NCT75 datasheet and configuration the Linux driver uses. Adding an OnSemi compatible would be an ABI change. "nxp,lm75" is most likely an NXP part. NXP makes a LM75A and LM75B. Both are 11-bit resolution and 100ms sample time, so "national,lm75b" is the closest match. While we're here, fix the node names to use the generic name "temperature-sensor". Signed-off-by: Rob Herring (Arm) <robh@kernel.org> --- SoC maintainers, Please take this directly. --- .../aspeed/aspeed-bmc-facebook-greatlakes.dts | 2 +- .../socfpga/socfpga_cyclone5_vining_fpga.dts | 4 +-- .../dts/marvell/armada-385-clearfog-gtr.dtsi | 8 ++--- .../boot/dts/nuvoton/nuvoton-npcm730-kudo.dts | 32 +++++++++---------- .../boot/dts/nuvoton/nuvoton-npcm750-evb.dts | 6 ++-- arch/arm/boot/dts/nxp/imx/imx53-mba53.dts | 4 +-- arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi | 4 +-- .../dts/nxp/lpc/lpc4357-ea4357-devkit.dts | 4 +-- .../boot/dts/nxp/lpc/lpc4357-myd-lpc4357.dts | 2 +- arch/arm/boot/dts/ti/omap/am335x-nano.dts | 2 +- .../boot/dts/xilinx/zynq-zturn-common.dtsi | 4 +-- 11 files changed, 36 insertions(+), 36 deletions(-)