瀏覽代碼

bcma: use chipcommon node from DT for SoC GPIO chip

This will allow us to define GPIO-attached devices (LEDs, buttons) in
the the device tree.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Rafał Miłecki 11 年之前
父節點
當前提交
a0196d1117
共有 2 個文件被更改,包括 16 次插入0 次删除
  1. 12 0
      Documentation/devicetree/bindings/bus/bcma.txt
  2. 4 0
      drivers/bcma/driver_gpio.c

+ 12 - 0
Documentation/devicetree/bindings/bus/bcma.txt

@@ -9,6 +9,11 @@ Required properties:
 The cores on the AXI bus are automatically detected by bcma with the
 The cores on the AXI bus are automatically detected by bcma with the
 memory ranges they are using and they get registered afterwards.
 memory ranges they are using and they get registered afterwards.
 
 
+The top-level axi bus may contain children representing attached cores
+(devices). This is needed since some hardware details can't be auto
+detected (e.g. IRQ numbers). Also some of the cores may be responsible
+for extra things, e.g. ChipCommon providing access to the GPIO chip.
+
 Example:
 Example:
 
 
 	axi@18000000 {
 	axi@18000000 {
@@ -17,4 +22,11 @@ Example:
 		ranges = <0x00000000 0x18000000 0x00100000>;
 		ranges = <0x00000000 0x18000000 0x00100000>;
 		#address-cells = <1>;
 		#address-cells = <1>;
 		#size-cells = <1>;
 		#size-cells = <1>;
+
+		chipcommon {
+			reg = <0x00000000 0x1000>;
+
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
 	};
 	};

+ 4 - 0
drivers/bcma/driver_gpio.c

@@ -217,6 +217,10 @@ int bcma_gpio_init(struct bcma_drv_cc *cc)
 	chip->direction_output	= bcma_gpio_direction_output;
 	chip->direction_output	= bcma_gpio_direction_output;
 #if IS_BUILTIN(CONFIG_BCM47XX)
 #if IS_BUILTIN(CONFIG_BCM47XX)
 	chip->to_irq		= bcma_gpio_to_irq;
 	chip->to_irq		= bcma_gpio_to_irq;
+#endif
+#if IS_BUILTIN(CONFIG_OF)
+	if (cc->core->bus->hosttype == BCMA_HOSTTYPE_SOC)
+		chip->of_node	= cc->core->dev.of_node;
 #endif
 #endif
 	switch (cc->core->bus->chipinfo.id) {
 	switch (cc->core->bus->chipinfo.id) {
 	case BCMA_CHIP_ID_BCM5357:
 	case BCMA_CHIP_ID_BCM5357: