Commit 4401555a authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'devicetree-fixes-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull DeviceTree fixes from Rob Herring:
 - Silence bogus warning for of_irq_parse_pci
 - Fix typo in ARM idle-states binding doc and dts files
 - Various minor binding documentation updates

* tag 'devicetree-fixes-for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
  Documentation: arm: Fix typo in the idle-states bindings examples
  gpio: mention in DT binding doc that <name>-gpio is deprecated
  of_pci_irq: Silence bogus "of_irq_parse_pci() failed ..." messages.
  devicetree: bindings: Extend the bma180 bindings with bma250 info
  of: thermal: Mark cooling-*-level properties optional
  of: thermal: Fix inconsitency between cooling-*-state and cooling-*-level
  Docs: dt: add #msi-cells to GICv3 ITS binding
  of: add vendor prefix for Socionext Inc.
parents cc8b8fae a13f18f5
...@@ -57,6 +57,8 @@ used to route Message Signalled Interrupts (MSI) to the CPUs. ...@@ -57,6 +57,8 @@ used to route Message Signalled Interrupts (MSI) to the CPUs.
These nodes must have the following properties: These nodes must have the following properties:
- compatible : Should at least contain "arm,gic-v3-its". - compatible : Should at least contain "arm,gic-v3-its".
- msi-controller : Boolean property. Identifies the node as an MSI controller - msi-controller : Boolean property. Identifies the node as an MSI controller
- #msi-cells: Must be <1>. The single msi-cell is the DeviceID of the device
which will generate the MSI.
- reg: Specifies the base physical address and size of the ITS - reg: Specifies the base physical address and size of the ITS
registers. registers.
...@@ -83,6 +85,7 @@ Examples: ...@@ -83,6 +85,7 @@ Examples:
gic-its@2c200000 { gic-its@2c200000 {
compatible = "arm,gic-v3-its"; compatible = "arm,gic-v3-its";
msi-controller; msi-controller;
#msi-cells = <1>;
reg = <0x0 0x2c200000 0 0x200000>; reg = <0x0 0x2c200000 0 0x200000>;
}; };
}; };
...@@ -107,12 +110,14 @@ Examples: ...@@ -107,12 +110,14 @@ Examples:
gic-its@2c200000 { gic-its@2c200000 {
compatible = "arm,gic-v3-its"; compatible = "arm,gic-v3-its";
msi-controller; msi-controller;
#msi-cells = <1>;
reg = <0x0 0x2c200000 0 0x200000>; reg = <0x0 0x2c200000 0 0x200000>;
}; };
gic-its@2c400000 { gic-its@2c400000 {
compatible = "arm,gic-v3-its"; compatible = "arm,gic-v3-its";
msi-controller; msi-controller;
#msi-cells = <1>;
reg = <0x0 0x2c400000 0 0x200000>; reg = <0x0 0x2c400000 0 0x200000>;
}; };
}; };
...@@ -497,7 +497,7 @@ cpus { ...@@ -497,7 +497,7 @@ cpus {
}; };
idle-states { idle-states {
entry-method = "arm,psci"; entry-method = "psci";
CPU_RETENTION_0_0: cpu-retention-0-0 { CPU_RETENTION_0_0: cpu-retention-0-0 {
compatible = "arm,idle-state"; compatible = "arm,idle-state";
......
...@@ -16,7 +16,9 @@ properties, each containing a 'gpio-list': ...@@ -16,7 +16,9 @@ properties, each containing a 'gpio-list':
GPIO properties should be named "[<name>-]gpios", with <name> being the purpose GPIO properties should be named "[<name>-]gpios", with <name> being the purpose
of this GPIO for the device. While a non-existent <name> is considered valid of this GPIO for the device. While a non-existent <name> is considered valid
for compatibility reasons (resolving to the "gpios" property), it is not allowed for compatibility reasons (resolving to the "gpios" property), it is not allowed
for new bindings. for new bindings. Also, GPIO properties named "[<name>-]gpio" are valid and old
bindings use it, but are only supported for compatibility reasons and should not
be used for newer bindings since it has been deprecated.
GPIO properties can contain one or more GPIO phandles, but only in exceptional GPIO properties can contain one or more GPIO phandles, but only in exceptional
cases should they contain more than one. If your device uses several GPIOs with cases should they contain more than one. If your device uses several GPIOs with
......
* Bosch BMA180 triaxial acceleration sensor * Bosch BMA180 / BMA250 triaxial acceleration sensor
http://omapworld.com/BMA180_111_1002839.pdf http://omapworld.com/BMA180_111_1002839.pdf
http://ae-bst.resource.bosch.com/media/products/dokumente/bma250/bst-bma250-ds002-05.pdf
Required properties: Required properties:
- compatible : should be "bosch,bma180" - compatible : should be "bosch,bma180" or "bosch,bma250"
- reg : the I2C address of the sensor - reg : the I2C address of the sensor
Optional properties: Optional properties:
...@@ -13,6 +14,9 @@ Optional properties: ...@@ -13,6 +14,9 @@ Optional properties:
- interrupts : interrupt mapping for GPIO IRQ, it should by configured with - interrupts : interrupt mapping for GPIO IRQ, it should by configured with
flags IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING flags IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING
For the bma250 the first interrupt listed must be the one
connected to the INT1 pin, the second (optional) interrupt
listed must be the one connected to the INT2 pin.
Example: Example:
......
...@@ -55,19 +55,11 @@ of heat dissipation). For example a fan's cooling states correspond to ...@@ -55,19 +55,11 @@ of heat dissipation). For example a fan's cooling states correspond to
the different fan speeds possible. Cooling states are referred to by the different fan speeds possible. Cooling states are referred to by
single unsigned integers, where larger numbers mean greater heat single unsigned integers, where larger numbers mean greater heat
dissipation. The precise set of cooling states associated with a device dissipation. The precise set of cooling states associated with a device
(as referred to be the cooling-min-state and cooling-max-state (as referred to by the cooling-min-level and cooling-max-level
properties) should be defined in a particular device's binding. properties) should be defined in a particular device's binding.
For more examples of cooling devices, refer to the example sections below. For more examples of cooling devices, refer to the example sections below.
Required properties: Required properties:
- cooling-min-state: An integer indicating the smallest
Type: unsigned cooling state accepted. Typically 0.
Size: one cell
- cooling-max-state: An integer indicating the largest
Type: unsigned cooling state accepted.
Size: one cell
- #cooling-cells: Used to provide cooling device specific information - #cooling-cells: Used to provide cooling device specific information
Type: unsigned while referring to it. Must be at least 2, in order Type: unsigned while referring to it. Must be at least 2, in order
Size: one cell to specify minimum and maximum cooling state used Size: one cell to specify minimum and maximum cooling state used
...@@ -77,6 +69,15 @@ Required properties: ...@@ -77,6 +69,15 @@ Required properties:
See Cooling device maps section below for more details See Cooling device maps section below for more details
on how consumers refer to cooling devices. on how consumers refer to cooling devices.
Optional properties:
- cooling-min-level: An integer indicating the smallest
Type: unsigned cooling state accepted. Typically 0.
Size: one cell
- cooling-max-level: An integer indicating the largest
Type: unsigned cooling state accepted.
Size: one cell
* Trip points * Trip points
The trip node is a node to describe a point in the temperature domain The trip node is a node to describe a point in the temperature domain
...@@ -225,8 +226,8 @@ cpus { ...@@ -225,8 +226,8 @@ cpus {
396000 950000 396000 950000
198000 850000 198000 850000
>; >;
cooling-min-state = <0>; cooling-min-level = <0>;
cooling-max-state = <3>; cooling-max-level = <3>;
#cooling-cells = <2>; /* min followed by max */ #cooling-cells = <2>; /* min followed by max */
}; };
... ...
...@@ -240,8 +241,8 @@ cpus { ...@@ -240,8 +241,8 @@ cpus {
*/ */
fan0: fan@0x48 { fan0: fan@0x48 {
... ...
cooling-min-state = <0>; cooling-min-level = <0>;
cooling-max-state = <9>; cooling-max-level = <9>;
#cooling-cells = <2>; /* min followed by max */ #cooling-cells = <2>; /* min followed by max */
}; };
}; };
......
...@@ -203,6 +203,7 @@ sitronix Sitronix Technology Corporation ...@@ -203,6 +203,7 @@ sitronix Sitronix Technology Corporation
skyworks Skyworks Solutions, Inc. skyworks Skyworks Solutions, Inc.
smsc Standard Microsystems Corporation smsc Standard Microsystems Corporation
snps Synopsys, Inc. snps Synopsys, Inc.
socionext Socionext Inc.
solidrun SolidRun solidrun SolidRun
solomon Solomon Systech Limited solomon Solomon Systech Limited
sony Sony Corporation sony Sony Corporation
......
...@@ -81,7 +81,7 @@ cpu3: cpu@101 { ...@@ -81,7 +81,7 @@ cpu3: cpu@101 {
}; };
idle-states { idle-states {
entry-method = "arm,psci"; entry-method = "psci";
CPU_SLEEP_0: cpu-sleep-0 { CPU_SLEEP_0: cpu-sleep-0 {
compatible = "arm,idle-state"; compatible = "arm,idle-state";
......
...@@ -106,7 +106,7 @@ core3 { ...@@ -106,7 +106,7 @@ core3 {
}; };
idle-states { idle-states {
entry-method = "arm,psci"; entry-method = "psci";
cpu_sleep: cpu-sleep-0 { cpu_sleep: cpu-sleep-0 {
compatible = "arm,idle-state"; compatible = "arm,idle-state";
......
...@@ -38,8 +38,8 @@ int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq ...@@ -38,8 +38,8 @@ int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq
*/ */
rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin); rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin);
if (rc != 0) if (rc != 0)
return rc; goto err;
/* No pin, exit */ /* No pin, exit with no error message. */
if (pin == 0) if (pin == 0)
return -ENODEV; return -ENODEV;
...@@ -53,8 +53,10 @@ int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq ...@@ -53,8 +53,10 @@ int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq
ppnode = pci_bus_to_OF_node(pdev->bus); ppnode = pci_bus_to_OF_node(pdev->bus);
/* No node for host bridge ? give up */ /* No node for host bridge ? give up */
if (ppnode == NULL) if (ppnode == NULL) {
return -EINVAL; rc = -EINVAL;
goto err;
}
} else { } else {
/* We found a P2P bridge, check if it has a node */ /* We found a P2P bridge, check if it has a node */
ppnode = pci_device_to_OF_node(ppdev); ppnode = pci_device_to_OF_node(ppdev);
...@@ -86,7 +88,13 @@ int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq ...@@ -86,7 +88,13 @@ int of_irq_parse_pci(const struct pci_dev *pdev, struct of_phandle_args *out_irq
out_irq->args[0] = pin; out_irq->args[0] = pin;
laddr[0] = cpu_to_be32((pdev->bus->number << 16) | (pdev->devfn << 8)); laddr[0] = cpu_to_be32((pdev->bus->number << 16) | (pdev->devfn << 8));
laddr[1] = laddr[2] = cpu_to_be32(0); laddr[1] = laddr[2] = cpu_to_be32(0);
return of_irq_parse_raw(laddr, out_irq); rc = of_irq_parse_raw(laddr, out_irq);
if (rc)
goto err;
return 0;
err:
dev_err(&pdev->dev, "of_irq_parse_pci() failed with rc=%d\n", rc);
return rc;
} }
EXPORT_SYMBOL_GPL(of_irq_parse_pci); EXPORT_SYMBOL_GPL(of_irq_parse_pci);
...@@ -105,10 +113,8 @@ int of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin) ...@@ -105,10 +113,8 @@ int of_irq_parse_and_map_pci(const struct pci_dev *dev, u8 slot, u8 pin)
int ret; int ret;
ret = of_irq_parse_pci(dev, &oirq); ret = of_irq_parse_pci(dev, &oirq);
if (ret) { if (ret)
dev_err(&dev->dev, "of_irq_parse_pci() failed with rc=%d\n", ret);
return 0; /* Proper return code 0 == NO_IRQ */ return 0; /* Proper return code 0 == NO_IRQ */
}
return irq_create_of_mapping(&oirq); return irq_create_of_mapping(&oirq);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment