Commit f23478f6 authored by Paul Cercueil's avatar Paul Cercueil Committed by Paul Burton

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: default avatarPaul Cercueil <paul@crapouillou.net>
Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
parent 61cbfff4
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
/dts-v1/; /dts-v1/;
#include "jz4740.dtsi" #include "jz4740.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ { / {
compatible = "qi,lb60", "ingenic,jz4740"; compatible = "qi,lb60", "ingenic,jz4740";
...@@ -9,6 +10,15 @@ / { ...@@ -9,6 +10,15 @@ / {
chosen { chosen {
stdout-path = &uart0; 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 { &ext {
...@@ -30,4 +40,27 @@ pins_uart0: uart0 { ...@@ -30,4 +40,27 @@ pins_uart0: uart0 {
groups = "uart0-data"; groups = "uart0-data";
bias-disable; 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>;
}; };
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include <asm/mach-jz4740/gpio.h> #include <asm/mach-jz4740/gpio.h>
#include <asm/mach-jz4740/jz4740_fb.h> #include <asm/mach-jz4740/jz4740_fb.h>
#include <asm/mach-jz4740/jz4740_mmc.h>
#include <linux/regulator/fixed.h> #include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
...@@ -377,19 +376,6 @@ static struct platform_device qi_lb60_gpio_keys = { ...@@ -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 */ /* beeper */
static struct pwm_lookup qi_lb60_pwm_lookup[] = { static struct pwm_lookup qi_lb60_pwm_lookup[] = {
PWM_LOOKUP("jz4740-pwm", 4, "pwm-beeper", NULL, 0, PWM_LOOKUP("jz4740-pwm", 4, "pwm-beeper", NULL, 0,
...@@ -440,7 +426,6 @@ static struct gpiod_lookup_table qi_lb60_audio_gpio_table = { ...@@ -440,7 +426,6 @@ static struct gpiod_lookup_table qi_lb60_audio_gpio_table = {
static struct platform_device *jz_platform_devices[] __initdata = { static struct platform_device *jz_platform_devices[] __initdata = {
&jz4740_udc_device, &jz4740_udc_device,
&jz4740_udc_xceiv_device, &jz4740_udc_xceiv_device,
&jz4740_mmc_device,
&jz4740_nand_device, &jz4740_nand_device,
&qi_lb60_keypad, &qi_lb60_keypad,
&qi_lb60_spigpio_device, &qi_lb60_spigpio_device,
...@@ -450,17 +435,12 @@ static struct platform_device *jz_platform_devices[] __initdata = { ...@@ -450,17 +435,12 @@ static struct platform_device *jz_platform_devices[] __initdata = {
&jz4740_codec_device, &jz4740_codec_device,
&jz4740_adc_device, &jz4740_adc_device,
&jz4740_pwm_device, &jz4740_pwm_device,
&jz4740_dma_device,
&qi_lb60_gpio_keys, &qi_lb60_gpio_keys,
&qi_lb60_pwm_beeper, &qi_lb60_pwm_beeper,
&qi_lb60_charger_device, &qi_lb60_charger_device,
&qi_lb60_audio_device, &qi_lb60_audio_device,
}; };
static unsigned long pin_cfg_bias_disable[] = {
PIN_CONFIG_BIAS_DISABLE,
};
static struct pinctrl_map pin_map[] __initdata = { static struct pinctrl_map pin_map[] __initdata = {
/* NAND pin configuration */ /* NAND pin configuration */
PIN_MAP_MUX_GROUP_DEFAULT("jz4740-nand", PIN_MAP_MUX_GROUP_DEFAULT("jz4740-nand",
...@@ -472,16 +452,6 @@ static struct pinctrl_map pin_map[] __initdata = { ...@@ -472,16 +452,6 @@ static struct pinctrl_map pin_map[] __initdata = {
PIN_MAP_MUX_GROUP("jz4740-fb", PINCTRL_STATE_SLEEP, PIN_MAP_MUX_GROUP("jz4740-fb", PINCTRL_STATE_SLEEP,
"10010000.pin-controller", "lcd-no-pins", "lcd"), "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 */ /* PWM pin configuration */
PIN_MAP_MUX_GROUP_DEFAULT("jz4740-pwm", PIN_MAP_MUX_GROUP_DEFAULT("jz4740-pwm",
"10010000.pin-controller", "pwm4", "pwm4"), "10010000.pin-controller", "pwm4", "pwm4"),
...@@ -493,12 +463,10 @@ static int __init qi_lb60_init_platform_devices(void) ...@@ -493,12 +463,10 @@ static int __init qi_lb60_init_platform_devices(void)
jz4740_framebuffer_device.dev.platform_data = &qi_lb60_fb_pdata; jz4740_framebuffer_device.dev.platform_data = &qi_lb60_fb_pdata;
jz4740_nand_device.dev.platform_data = &qi_lb60_nand_pdata; jz4740_nand_device.dev.platform_data = &qi_lb60_nand_pdata;
jz4740_adc_device.dev.platform_data = &qi_lb60_battery_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_audio_gpio_table);
gpiod_add_lookup_table(&qi_lb60_nand_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_spigpio_gpio_table);
gpiod_add_lookup_table(&qi_lb60_mmc_gpio_table);
spi_register_board_info(qi_lb60_spi_board_info, spi_register_board_info(qi_lb60_spi_board_info,
ARRAY_SIZE(qi_lb60_spi_board_info)); ARRAY_SIZE(qi_lb60_spi_board_info));
......
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