mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 05:24:26 -04:00 
			
		
		
		
	ath9k: enable GPIO chip only if requested via DT
In case that the atheros device tree binding is used, enable access to the GPIO chip only if the gpio-controller device tree parameter is used for the ath9k node. Signed-off-by: Mathias Kresin <dev@kresin.me>
This commit is contained in:
		
							parent
							
								
									192f0a3db8
								
							
						
					
					
						commit
						20b45df7eb
					
				| @ -196,7 +196,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -136,12 +264,18 @@ void ath_deinit_leds(struct ath_softc *s
 | ||||
| @@ -136,17 +264,24 @@ void ath_deinit_leds(struct ath_softc *s
 | ||||
|   | ||||
|  	while (!list_empty(&sc->leds)) { | ||||
|  		led = list_first_entry(&sc->leds, struct ath_led, list); | ||||
| @ -215,16 +215,27 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||||
|  } | ||||
|   | ||||
|  void ath_init_leds(struct ath_softc *sc) | ||||
| @@ -158,6 +292,8 @@ void ath_init_leds(struct ath_softc *sc)
 | ||||
|   | ||||
|  	ath_fill_led_pin(sc); | ||||
|  { | ||||
|  	struct ath9k_platform_data *pdata = sc->dev->platform_data; | ||||
| +	struct device_node *np = sc->dev->of_node;
 | ||||
|  	char led_name[32]; | ||||
|  	const char *trigger; | ||||
|  	int i; | ||||
| @@ -156,6 +291,13 @@ void ath_init_leds(struct ath_softc *sc)
 | ||||
|  	if (AR_SREV_9100(sc->sc_ah)) | ||||
|  		return; | ||||
|   | ||||
| +	if (!np)
 | ||||
| +		ath9k_register_gpio_chip(sc);
 | ||||
| +
 | ||||
| +	/* setup gpio controller only if requested */
 | ||||
| +	if (of_property_read_bool(np, "gpio-controller"))
 | ||||
| +		ath9k_register_gpio_chip(sc);
 | ||||
| +
 | ||||
|  	ath_fill_led_pin(sc); | ||||
|   | ||||
|  	if (pdata && pdata->leds && pdata->num_leds) | ||||
|  		for (i = 0; i < pdata->num_leds; i++) { | ||||
|  			if (pdata->leds[i].gpio == sc->sc_ah->led_pin) | ||||
| @@ -183,6 +319,7 @@ void ath_init_leds(struct ath_softc *sc)
 | ||||
| @@ -183,6 +325,7 @@ void ath_init_leds(struct ath_softc *sc)
 | ||||
|  	ath_create_gpio_led(sc, sc->sc_ah->led_pin, led_name, trigger, | ||||
|  			   !sc->sc_ah->config.led_active_high); | ||||
|  } | ||||
|  | ||||
| @ -117,10 +117,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||||
|  	while (!list_empty(&sc->leds)) { | ||||
|  		led = list_first_entry(&sc->leds, struct ath_led, list); | ||||
|  #ifdef CONFIG_GPIOLIB | ||||
| @@ -293,6 +362,7 @@ void ath_init_leds(struct ath_softc *sc)
 | ||||
|  	ath_fill_led_pin(sc); | ||||
|   | ||||
| @@ -299,6 +368,7 @@ void ath_init_leds(struct ath_softc *sc)
 | ||||
|  		ath9k_register_gpio_chip(sc); | ||||
|   | ||||
|  	ath_fill_led_pin(sc); | ||||
| +	ath9k_init_buttons(sc);
 | ||||
|   | ||||
|  	if (pdata && pdata->leds && pdata->num_leds) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user