diff options
author | Paul Cercueil <paul@crapouillou.net> | 2019-01-25 17:09:27 -0300 |
---|---|---|
committer | Paul Burton <paul.burton@mips.com> | 2019-07-22 14:28:40 -0700 |
commit | f23478f6ea2ed6c8dccc6f7b902c2362ebc197ef (patch) | |
tree | fe1105f979df2839d75a8148d922a086667e362c | |
parent | 61cbfff4b1a7c15a7e403473ca5a290fd13d5656 (diff) | |
download | blackbird-op-linux-f23478f6ea2ed6c8dccc6f7b902c2362ebc197ef.tar.gz blackbird-op-linux-f23478f6ea2ed6c8dccc6f7b902c2362ebc197ef.zip |
MIPS: qi_lb60: Move MMC configuration to devicetree
Move the MMC configuration from the board C file to devicetree.
The 'power' GPIO was removed and instead the vmmc regulator is used,
to follow the changes introduced in the jz4740-mmc driver.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Paul Burton <paul.burton@mips.com>
-rw-r--r-- | arch/mips/boot/dts/ingenic/qi_lb60.dts | 33 | ||||
-rw-r--r-- | arch/mips/jz4740/board-qi_lb60.c | 32 |
2 files changed, 33 insertions, 32 deletions
diff --git a/arch/mips/boot/dts/ingenic/qi_lb60.dts b/arch/mips/boot/dts/ingenic/qi_lb60.dts index 76aaf8982554..cc26650562c2 100644 --- a/arch/mips/boot/dts/ingenic/qi_lb60.dts +++ b/arch/mips/boot/dts/ingenic/qi_lb60.dts @@ -2,6 +2,7 @@ /dts-v1/; #include "jz4740.dtsi" +#include <dt-bindings/gpio/gpio.h> / { compatible = "qi,lb60", "ingenic,jz4740"; @@ -9,6 +10,15 @@ chosen { stdout-path = &uart0; }; + + mmc_power: fixedregulator { + compatible = "regulator-fixed"; + regulator-name = "mmc_vcc"; + gpio = <&gpd 2 0>; + + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; }; &ext { @@ -30,4 +40,27 @@ groups = "uart0-data"; bias-disable; }; + + pins_mmc: mmc { + mmc { + function = "mmc"; + groups = "mmc-1bit", "mmc-4bit"; + bias-disable; + }; + + mmc-gpios { + pins = "PD0", "PD2"; + bias-disable; + }; + }; +}; + +&mmc { + bus-width = <4>; + max-frequency = <24000000>; + cd-gpios = <&gpd 0 GPIO_ACTIVE_HIGH>; + vmmc-supply = <&mmc_power>; + + pinctrl-names = "default"; + pinctrl-0 = <&pins_mmc>; }; diff --git a/arch/mips/jz4740/board-qi_lb60.c b/arch/mips/jz4740/board-qi_lb60.c index 4a7a80c358c7..f9dab810aab2 100644 --- a/arch/mips/jz4740/board-qi_lb60.c +++ b/arch/mips/jz4740/board-qi_lb60.c @@ -30,7 +30,6 @@ #include <asm/mach-jz4740/gpio.h> #include <asm/mach-jz4740/jz4740_fb.h> -#include <asm/mach-jz4740/jz4740_mmc.h> #include <linux/regulator/fixed.h> #include <linux/regulator/machine.h> @@ -377,19 +376,6 @@ static struct platform_device qi_lb60_gpio_keys = { } }; -static struct jz4740_mmc_platform_data qi_lb60_mmc_pdata = { - /* Intentionally left blank */ -}; - -static struct gpiod_lookup_table qi_lb60_mmc_gpio_table = { - .dev_id = "jz4740-mmc.0", - .table = { - GPIO_LOOKUP("GPIOD", 0, "cd", GPIO_ACTIVE_HIGH), - GPIO_LOOKUP("GPIOD", 2, "power", GPIO_ACTIVE_LOW), - { }, - }, -}; - /* beeper */ static struct pwm_lookup qi_lb60_pwm_lookup[] = { PWM_LOOKUP("jz4740-pwm", 4, "pwm-beeper", NULL, 0, @@ -440,7 +426,6 @@ static struct gpiod_lookup_table qi_lb60_audio_gpio_table = { static struct platform_device *jz_platform_devices[] __initdata = { &jz4740_udc_device, &jz4740_udc_xceiv_device, - &jz4740_mmc_device, &jz4740_nand_device, &qi_lb60_keypad, &qi_lb60_spigpio_device, @@ -450,17 +435,12 @@ static struct platform_device *jz_platform_devices[] __initdata = { &jz4740_codec_device, &jz4740_adc_device, &jz4740_pwm_device, - &jz4740_dma_device, &qi_lb60_gpio_keys, &qi_lb60_pwm_beeper, &qi_lb60_charger_device, &qi_lb60_audio_device, }; -static unsigned long pin_cfg_bias_disable[] = { - PIN_CONFIG_BIAS_DISABLE, -}; - static struct pinctrl_map pin_map[] __initdata = { /* NAND pin configuration */ PIN_MAP_MUX_GROUP_DEFAULT("jz4740-nand", @@ -472,16 +452,6 @@ static struct pinctrl_map pin_map[] __initdata = { PIN_MAP_MUX_GROUP("jz4740-fb", PINCTRL_STATE_SLEEP, "10010000.pin-controller", "lcd-no-pins", "lcd"), - /* MMC pin configuration */ - PIN_MAP_MUX_GROUP_DEFAULT("jz4740-mmc.0", - "10010000.pin-controller", "mmc-1bit", "mmc"), - PIN_MAP_MUX_GROUP_DEFAULT("jz4740-mmc.0", - "10010000.pin-controller", "mmc-4bit", "mmc"), - PIN_MAP_CONFIGS_PIN_DEFAULT("jz4740-mmc.0", - "10010000.pin-controller", "PD0", pin_cfg_bias_disable), - PIN_MAP_CONFIGS_PIN_DEFAULT("jz4740-mmc.0", - "10010000.pin-controller", "PD2", pin_cfg_bias_disable), - /* PWM pin configuration */ PIN_MAP_MUX_GROUP_DEFAULT("jz4740-pwm", "10010000.pin-controller", "pwm4", "pwm4"), @@ -493,12 +463,10 @@ static int __init qi_lb60_init_platform_devices(void) jz4740_framebuffer_device.dev.platform_data = &qi_lb60_fb_pdata; jz4740_nand_device.dev.platform_data = &qi_lb60_nand_pdata; jz4740_adc_device.dev.platform_data = &qi_lb60_battery_pdata; - jz4740_mmc_device.dev.platform_data = &qi_lb60_mmc_pdata; gpiod_add_lookup_table(&qi_lb60_audio_gpio_table); gpiod_add_lookup_table(&qi_lb60_nand_gpio_table); gpiod_add_lookup_table(&qi_lb60_spigpio_gpio_table); - gpiod_add_lookup_table(&qi_lb60_mmc_gpio_table); spi_register_board_info(qi_lb60_spi_board_info, ARRAY_SIZE(qi_lb60_spi_board_info)); |