mirror of https://gitee.com/openkylin/linux.git
ARM: arm-soc board specific changes for 3.10, part 1
These changes are all for board specific files. These used to make up a large portion of the ARM changes in the past, but as we are generalizing the support and moving to device tree probing, this has gotten significantly smaller. The only platform actually adding new code here at the moment is Renesas shmobile, as they are still busy converting their code to device tree and have not come far enough to not need it. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJRhKYeAAoJEIwa5zzehBx3ez8QAKLnzjAQJzhfJezJ+g02tXS9 xIikiX1zmEb3HuF8Z/SFRWVj2Zbe+cBaDpr7JERmmOTWWUtxHbqIPFr2xUbyi0qY d1yBFEtAv+Pf6lgIGRHPejCXigInp0ew94+VMih7rOVkXdNZqLBP+Z4CEntoak+H 1+c4MvW/37VlyQUnsrQgUcC7mu9lSIVwJjYXCGJVs4cKwYYnLNH6tLINx62SOCkW cdoJV/eTvRWD6Wx8kxvNE7WJMVNuB8e7R7DKkn5SES9beWJ1tvcGtNS2KaK8rFdC Xee8SNo2RzxDQwtkPYA2iZg9Gs3vxNEiy3AX0Tsvji7a3ipQk/M13NlOa1h+tu4w 8wNZDccYOsFejlnpnDWk64eVmu2w0c58CWbRaPYOOkGJ5pTnZ9+2cO7CLTOmQWrb y2Vdly10vQR7AbnlgLlx9RuIAdAVoMGVwCO1JrnBonRriXQCq/vSEFfhKbLK4/MO FYyW+sy222f+kv1JrEdffO7rdIc/EdHRkiGSeVFQ63ETl6F+wx7zEMwb+RV2ysi3 zQQJDeMTrP9StqKaBfyOS3IF+Jbv/f4dM6oKxwlyR5kwuO+J1H6yFG3ugBSuED82 eUz1O35Q1JY593qS8XD22wMjRQt3xhwdrD0hAZnCbUiJxe1Tatf16bBloBQ8vwsY hHdiINWICRawVJLK7SZB =2cfP -----END PGP SIGNATURE----- Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC board specific changes (part 1) from Olof Johansson: "These changes are all for board specific files. These used to make up a large portion of the ARM changes in the past, but as we are generalizing the support and moving to device tree probing, this has gotten significantly smaller. The only platform actually adding new code here at the moment is Renesas shmobile, as they are still busy converting their code to device tree and have not come far enough to not need it." * tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits) ARM: msm: USB_MSM_OTG needs USB_PHY ARM: davinci: da850 evm: fix const qualifier placement ARM: davinci: da850 board: add remoteproc support ARM: pxa: move debug uart code ARM: pxa: select PXA935 on saar & tavorevb ARM: mmp: add more compatible names in gpio driver ARM: pxa: move PXA_GPIO_TO_IRQ macro ARM: pxa: remove cpu_is_xxx in gpio driver ARM: Kirkwood: update Network Space Mini v2 description ARM: Kirkwood: DT board setup for CloudBox ARM: Kirkwood: sort board entries by ASCII-code order ARM: OMAP: board-4430sdp: Provide regulator to pwm-backlight ARM: OMAP: zoom: Use pwm stack for lcd and keyboard backlight ARM: OMAP2+: omap2plus_defconfig: Add support for BMP085 pressure sensor omap2+: Remove useless Makefile line omap2+: Remove useless Makefile line ARM: OMAP: RX-51: add missing regulator supply definitions for lis3lv02d ARM: OMAP1: fix omap_udc registration ARM: davinci: use is IS_ENABLED macro ARM: kirkwood: add MACH_GURUPLUG_DT to defconfig ...
This commit is contained in:
commit
150a8dcf10
|
@ -1,7 +1,10 @@
|
|||
* Marvell PXA GPIO controller
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "mrvl,pxa-gpio" or "mrvl,mmp-gpio"
|
||||
- compatible : Should be "intel,pxa25x-gpio", "intel,pxa26x-gpio",
|
||||
"intel,pxa27x-gpio", "intel,pxa3xx-gpio",
|
||||
"marvell,pxa93x-gpio", "marvell,mmp-gpio" or
|
||||
"marvell,mmp2-gpio".
|
||||
- reg : Address and length of the register set for the device
|
||||
- interrupts : Should be the port interrupt shared by all gpio pins.
|
||||
There're three gpio interrupts in arch-pxa, and they're gpio0,
|
||||
|
@ -18,7 +21,7 @@ Required properties:
|
|||
Example:
|
||||
|
||||
gpio: gpio@d4019000 {
|
||||
compatible = "mrvl,mmp-gpio";
|
||||
compatible = "marvell,mmp-gpio";
|
||||
reg = <0xd4019000 0x1000>;
|
||||
interrupts = <49>;
|
||||
interrupt-name = "gpio_mux";
|
||||
|
|
|
@ -330,6 +330,13 @@ choice
|
|||
Say Y here if you want kernel low-level debugging support
|
||||
on PicoXcell based platforms.
|
||||
|
||||
config DEBUG_PXA_UART1
|
||||
depends on ARCH_PXA
|
||||
bool "Use PXA UART1 for low-level debug"
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on PXA UART1.
|
||||
|
||||
config DEBUG_REALVIEW_STD_PORT
|
||||
bool "RealView Default UART"
|
||||
depends on ARCH_REALVIEW
|
||||
|
@ -615,6 +622,7 @@ config DEBUG_LL_INCLUDE
|
|||
default "debug/bcm2835.S" if DEBUG_BCM2835
|
||||
default "debug/cns3xxx.S" if DEBUG_CNS3XXX
|
||||
default "debug/exynos.S" if DEBUG_EXYNOS_UART
|
||||
default "debug/highbank.S" if DEBUG_HIGHBANK_UART
|
||||
default "debug/icedcc.S" if DEBUG_ICEDCC
|
||||
default "debug/imx.S" if DEBUG_IMX1_UART || \
|
||||
DEBUG_IMX25_UART || \
|
||||
|
@ -624,20 +632,21 @@ config DEBUG_LL_INCLUDE
|
|||
DEBUG_IMX51_UART || \
|
||||
DEBUG_IMX53_UART ||\
|
||||
DEBUG_IMX6Q_UART
|
||||
default "debug/highbank.S" if DEBUG_HIGHBANK_UART
|
||||
default "debug/mvebu.S" if DEBUG_MVEBU_UART
|
||||
default "debug/mxs.S" if DEBUG_IMX23_UART || DEBUG_IMX28_UART
|
||||
default "debug/nomadik.S" if DEBUG_NOMADIK_UART
|
||||
default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
|
||||
default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
|
||||
default "debug/pxa.S" if DEBUG_PXA_UART1 || DEBUG_MMP_UART2 || \
|
||||
DEBUG_MMP_UART3
|
||||
default "debug/sirf.S" if DEBUG_SIRFPRIMA2_UART1 || DEBUG_SIRFMARCO_UART1
|
||||
default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
|
||||
default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1
|
||||
default "debug/tegra.S" if DEBUG_TEGRA_UART
|
||||
default "debug/ux500.S" if DEBUG_UX500_UART
|
||||
default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
|
||||
DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1
|
||||
default "debug/vt8500.S" if DEBUG_VT8500_UART0
|
||||
default "debug/tegra.S" if DEBUG_TEGRA_UART
|
||||
default "debug/ux500.S" if DEBUG_UX500_UART
|
||||
default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
|
||||
default "mach/debug-macro.S"
|
||||
|
||||
|
|
|
@ -61,7 +61,8 @@ dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
|
|||
dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
|
||||
integratorcp.dtb
|
||||
dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
|
||||
dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
|
||||
dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
|
||||
kirkwood-dns320.dtb \
|
||||
kirkwood-dns325.dtb \
|
||||
kirkwood-dockstar.dtb \
|
||||
kirkwood-dreamplug.dtb \
|
||||
|
@ -75,6 +76,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
|
|||
kirkwood-lschlv2.dtb \
|
||||
kirkwood-lsxhl.dtb \
|
||||
kirkwood-mplcec4.dtb \
|
||||
kirkwood-netgear_readynas_duo_v2.dtb \
|
||||
kirkwood-ns2.dtb \
|
||||
kirkwood-ns2lite.dtb \
|
||||
kirkwood-ns2max.dtb \
|
||||
|
@ -153,7 +155,9 @@ dtb-$(CONFIG_ARCH_U8500) += snowball.dtb \
|
|||
ccu9540.dtb
|
||||
dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \
|
||||
r8a7740-armadillo800eva.dtb \
|
||||
r8a7779-marzen-reference.dtb \
|
||||
sh73a0-kzm9g.dtb \
|
||||
sh73a0-kzm9g-reference.dtb \
|
||||
sh7372-mackerel.dtb
|
||||
dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5.dtb \
|
||||
socfpga_vt.dtb
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
/dts-v1/;
|
||||
|
||||
/include/ "kirkwood.dtsi"
|
||||
/include/ "kirkwood-6281.dtsi"
|
||||
|
||||
/ {
|
||||
model = "LaCie CloudBox";
|
||||
compatible = "lacie,cloudbox", "marvell,kirkwood-88f6702", "marvell,kirkwood";
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8";
|
||||
};
|
||||
|
||||
ocp@f1000000 {
|
||||
pinctrl: pinctrl@10000 {
|
||||
pinctrl-0 = < &pmx_spi &pmx_uart0
|
||||
&pmx_cloudbox_sata0 >;
|
||||
pinctrl-names = "default";
|
||||
|
||||
pmx_cloudbox_sata0: pmx-cloudbox-sata0 {
|
||||
marvell,pins = "mpp15";
|
||||
marvell,function = "sata0";
|
||||
};
|
||||
};
|
||||
|
||||
serial@12000 {
|
||||
clock-frequency = <166666667>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sata@80000 {
|
||||
status = "okay";
|
||||
nr-ports = <1>;
|
||||
};
|
||||
|
||||
spi@10600 {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "mx25l4005a";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <20000000>;
|
||||
mode = <0>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x80000>;
|
||||
label = "u-boot";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
button@1 {
|
||||
label = "Power push button";
|
||||
linux,code = <116>;
|
||||
gpios = <&gpio0 16 1>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
red-fail {
|
||||
label = "cloudbox:red:fail";
|
||||
gpios = <&gpio0 14 0>;
|
||||
};
|
||||
blue-sata {
|
||||
label = "cloudbox:blue:sata";
|
||||
gpios = <&gpio0 15 0>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio_poweroff {
|
||||
compatible = "gpio-poweroff";
|
||||
gpios = <&gpio0 17 0>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,180 @@
|
|||
/dts-v1/;
|
||||
|
||||
/include/ "kirkwood.dtsi"
|
||||
/include/ "kirkwood-6282.dtsi"
|
||||
|
||||
/ {
|
||||
model = "NETGEAR ReadyNAS Duo v2";
|
||||
compatible = "netgear,readynas-duo-v2", "netgear,readynas", "marvell,kirkwood-88f6282", "marvell,kirkwood";
|
||||
|
||||
memory { /* 256 MB */
|
||||
device_type = "memory";
|
||||
reg = <0x00000000 0x10000000>;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n8 earlyprintk";
|
||||
};
|
||||
|
||||
ocp@f1000000 {
|
||||
pinctrl: pinctrl@10000 {
|
||||
|
||||
pinctrl-0 = < &pmx_uart0
|
||||
&pmx_button_power
|
||||
&pmx_button_backup
|
||||
&pmx_button_reset
|
||||
&pmx_led_blue_power
|
||||
&pmx_led_blue_activity
|
||||
&pmx_led_blue_disk1
|
||||
&pmx_led_blue_disk2
|
||||
&pmx_led_blue_backup >;
|
||||
pinctrl-names = "default";
|
||||
|
||||
pmx_button_power: pmx-button-power {
|
||||
marvell,pins = "mpp47";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_button_backup: pmx-button-backup {
|
||||
marvell,pins = "mpp45";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_button_reset: pmx-button-reset {
|
||||
marvell,pins = "mpp13";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_led_blue_power: pmx-led-blue-power {
|
||||
marvell,pins = "mpp31";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_led_blue_activity: pmx-led-blue-activity {
|
||||
marvell,pins = "mpp38";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_led_blue_disk1: pmx-led-blue-disk1 {
|
||||
marvell,pins = "mpp23";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_led_blue_disk2: pmx-led-blue-disk2 {
|
||||
marvell,pins = "mpp22";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
pmx_led_blue_backup: pmx-led-blue-backup {
|
||||
marvell,pins = "mpp29";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
i2c@11000 {
|
||||
status = "okay";
|
||||
|
||||
rs5c372a: rs5c372a@32 {
|
||||
compatible = "ricoh,rs5c372a";
|
||||
reg = <0x32>;
|
||||
};
|
||||
};
|
||||
|
||||
serial@12000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
nand@3000000 {
|
||||
status = "okay";
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x0000000 0x180000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@180000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x180000 0x20000>;
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
label = "uImage";
|
||||
reg = <0x0200000 0x600000>;
|
||||
};
|
||||
|
||||
partition@800000 {
|
||||
label = "minirootfs";
|
||||
reg = <0x0800000 0x1000000>;
|
||||
};
|
||||
|
||||
partition@1800000 {
|
||||
label = "jffs2";
|
||||
reg = <0x1800000 0x6800000>;
|
||||
};
|
||||
};
|
||||
|
||||
sata@80000 {
|
||||
status = "okay";
|
||||
nr-ports = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
power_led {
|
||||
label = "status:blue:power_led";
|
||||
gpios = <&gpio0 31 1>; /* GPIO 31 Active Low */
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
activity_led {
|
||||
label = "status:blue:activity_led";
|
||||
gpios = <&gpio1 6 1>; /* GPIO 38 Active Low */
|
||||
};
|
||||
disk1_led {
|
||||
label = "status:blue:disk1_led";
|
||||
gpios = <&gpio0 23 1>; /* GPIO 23 Active Low */
|
||||
};
|
||||
disk2_led {
|
||||
label = "status:blue:disk2_led";
|
||||
gpios = <&gpio0 22 1>; /* GPIO 22 Active Low */
|
||||
};
|
||||
backup_led {
|
||||
label = "status:blue:backup_led";
|
||||
gpios = <&gpio0 29 1>; /* GPIO 29 Active Low*/
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
button@1 {
|
||||
label = "Power Button";
|
||||
linux,code = <116>; /* KEY_POWER */
|
||||
gpios = <&gpio1 15 1>;
|
||||
};
|
||||
button@2 {
|
||||
label = "Reset Button";
|
||||
linux,code = <0x198>; /* KEY_RESTART */
|
||||
gpios = <&gpio0 13 1>;
|
||||
};
|
||||
button@3 {
|
||||
label = "Backup Button";
|
||||
linux,code = <133>; /* KEY_COPY */
|
||||
gpios = <&gpio1 13 1>;
|
||||
};
|
||||
};
|
||||
|
||||
regulators {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
usb_power: regulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <1>;
|
||||
regulator-name = "USB 3.0 Power";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
gpio = <&gpio1 14 0>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -3,6 +3,7 @@
|
|||
/include/ "kirkwood-ns2-common.dtsi"
|
||||
|
||||
/ {
|
||||
/* This machine is embedded in the first LaCie CloudBox product. */
|
||||
model = "LaCie Network Space Mini v2";
|
||||
compatible = "lacie,netspace_mini_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood";
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ uart4: uart@d4016000 {
|
|||
};
|
||||
|
||||
gpio@d4019000 {
|
||||
compatible = "mrvl,mmp-gpio";
|
||||
compatible = "marvell,mmp2-gpio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xd4019000 0x1000>;
|
||||
|
|
|
@ -77,7 +77,7 @@ uart3: uart@d4026000 {
|
|||
};
|
||||
|
||||
gpio@d4019000 {
|
||||
compatible = "mrvl,mmp-gpio";
|
||||
compatible = "marvell,mmp-gpio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xd4019000 0x1000>;
|
||||
|
|
|
@ -89,7 +89,7 @@ uart3: uart@d4036000 {
|
|||
};
|
||||
|
||||
gpio@d4019000 {
|
||||
compatible = "mrvl,mmp-gpio";
|
||||
compatible = "marvell,mmp-gpio";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xd4019000 0x1000>;
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Reference Device Tree Source for the Marzen board
|
||||
*
|
||||
* Copyright (C) 2013 Renesas Solutions Corp.
|
||||
* Copyright (C) 2013 Simon Horman
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public License
|
||||
* version 2. This program is licensed "as is" without any warranty of any
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "r8a7779.dtsi"
|
||||
|
||||
/ {
|
||||
model = "marzen";
|
||||
compatible = "renesas,marzen-reference", "renesas,r8a7779";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x60000000 0x40000000>;
|
||||
};
|
||||
|
||||
fixedregulator3v3: fixedregulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
lan0@18000000 {
|
||||
compatible = "smsc,lan9220", "smsc,lan9115";
|
||||
reg = <0x18000000 0x100>;
|
||||
phy-mode = "mii";
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 28 0x4>;
|
||||
reg-io-width = <4>;
|
||||
vddvario-supply = <&fixedregulator3v3>;
|
||||
vdd33a-supply = <&fixedregulator3v3>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* Device Tree Source for the KZM-A9-GT board
|
||||
*
|
||||
* Copyright (C) 2012 Horms Solutions Ltd.
|
||||
*
|
||||
* Based on sh73a0-kzm9g.dts
|
||||
* Copyright (C) 2012 Renesas Solutions Corp.
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public License
|
||||
* version 2. This program is licensed "as is" without any warranty of any
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/include/ "sh73a0.dtsi"
|
||||
|
||||
/ {
|
||||
model = "KZM-A9-GT";
|
||||
compatible = "renesas,kzm9g-reference", "renesas,sh73a0";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x41000000 0x1e800000>;
|
||||
};
|
||||
|
||||
reg_1p8v: regulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-1.8V";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
reg_3p3v: regulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
};
|
||||
|
||||
&mmcif {
|
||||
bus-width = <8>;
|
||||
vmmc-supply = <®_1p8v>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhi0 {
|
||||
vmmc-supply = <®_3p3v>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdhi2 {
|
||||
vmmc-supply = <®_3p3v>;
|
||||
bus-width = <4>;
|
||||
broken-cd;
|
||||
status = "okay";
|
||||
};
|
|
@ -1,24 +0,0 @@
|
|||
/*
|
||||
* Device Tree Source for the SH73A0 SoC
|
||||
*
|
||||
* Copyright (C) 2012 Renesas Solutions Corp.
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public License
|
||||
* version 2. This program is licensed "as is" without any warranty of any
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
/include/ "sh73a0.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "renesas,sh73a0";
|
||||
|
||||
mmcif: mmcif@0x10010000 {
|
||||
compatible = "renesas,sh-mmcif";
|
||||
reg = <0xe6bd0000 0x100>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 140 0x4
|
||||
0 141 0x4>;
|
||||
reg-io-width = <4>;
|
||||
};
|
||||
};
|
|
@ -97,4 +97,48 @@ i2c4: i2c@0xe6828000 {
|
|||
0 189 0x4
|
||||
0 190 0x4>;
|
||||
};
|
||||
|
||||
mmcif: mmcif@0x10010000 {
|
||||
compatible = "renesas,sh-mmcif";
|
||||
reg = <0xe6bd0000 0x100>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 140 0x4
|
||||
0 141 0x4>;
|
||||
reg-io-width = <4>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdhi0: sdhi@0xee100000 {
|
||||
compatible = "renesas,r8a7740-sdhi";
|
||||
reg = <0xee100000 0x100>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 83 4
|
||||
0 84 4
|
||||
0 85 4>;
|
||||
cap-sd-highspeed;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */
|
||||
sdhi1: sdhi@0xee120000 {
|
||||
compatible = "renesas,r8a7740-sdhi";
|
||||
reg = <0xee120000 0x100>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 88 4
|
||||
0 89 4>;
|
||||
toshiba,mmc-wrprotect-disable;
|
||||
cap-sd-highspeed;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sdhi2: sdhi@0xee140000 {
|
||||
compatible = "renesas,r8a7740-sdhi";
|
||||
reg = <0xee140000 0x100>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 104 4
|
||||
0 105 4>;
|
||||
toshiba,mmc-wrprotect-disable;
|
||||
cap-sd-highspeed;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -5,6 +5,7 @@ CONFIG_POSIX_MQUEUE=y
|
|||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_EXPERT=y
|
||||
CONFIG_MODULES=y
|
||||
|
|
|
@ -5,6 +5,7 @@ CONFIG_POSIX_MQUEUE=y
|
|||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_EXPERT=y
|
||||
CONFIG_MODULES=y
|
||||
|
|
|
@ -10,45 +10,48 @@ CONFIG_MODULES=y
|
|||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_ARCH_KIRKWOOD=y
|
||||
CONFIG_MACH_D2NET_V2=y
|
||||
CONFIG_MACH_DB88F6281_BP=y
|
||||
CONFIG_MACH_RD88F6192_NAS=y
|
||||
CONFIG_MACH_RD88F6281=y
|
||||
CONFIG_MACH_MV88F6281GTW_GE=y
|
||||
CONFIG_MACH_SHEEVAPLUG=y
|
||||
CONFIG_MACH_DOCKSTAR=y
|
||||
CONFIG_MACH_ESATA_SHEEVAPLUG=y
|
||||
CONFIG_MACH_GURUPLUG=y
|
||||
CONFIG_MACH_DREAMPLUG_DT=y
|
||||
CONFIG_MACH_ICONNECT_DT=y
|
||||
CONFIG_MACH_DLINK_KIRKWOOD_DT=y
|
||||
CONFIG_MACH_IB62X0_DT=y
|
||||
CONFIG_MACH_TS219_DT=y
|
||||
CONFIG_MACH_DOCKSTAR_DT=y
|
||||
CONFIG_MACH_GOFLEXNET_DT=y
|
||||
CONFIG_MACH_LSXL_DT=y
|
||||
CONFIG_MACH_IOMEGA_IX2_200_DT=y
|
||||
CONFIG_MACH_KM_KIRKWOOD_DT=y
|
||||
CONFIG_MACH_INETSPACE_V2_DT=y
|
||||
CONFIG_MACH_MPLCEC4_DT=y
|
||||
CONFIG_MACH_NETSPACE_V2_DT=y
|
||||
CONFIG_MACH_NETSPACE_MAX_V2_DT=y
|
||||
CONFIG_MACH_NETSPACE_LITE_V2_DT=y
|
||||
CONFIG_MACH_NETSPACE_MINI_V2_DT=y
|
||||
CONFIG_MACH_OPENBLOCKS_A6_DT=y
|
||||
CONFIG_MACH_TOPKICK_DT=y
|
||||
CONFIG_MACH_TS219=y
|
||||
CONFIG_MACH_TS41X=y
|
||||
CONFIG_MACH_DOCKSTAR=y
|
||||
CONFIG_MACH_INETSPACE_V2=y
|
||||
CONFIG_MACH_MV88F6281GTW_GE=y
|
||||
CONFIG_MACH_NET2BIG_V2=y
|
||||
CONFIG_MACH_NET5BIG_V2=y
|
||||
CONFIG_MACH_NETSPACE_MAX_V2=y
|
||||
CONFIG_MACH_NETSPACE_V2=y
|
||||
CONFIG_MACH_OPENRD_BASE=y
|
||||
CONFIG_MACH_OPENRD_CLIENT=y
|
||||
CONFIG_MACH_OPENRD_ULTIMATE=y
|
||||
CONFIG_MACH_NETSPACE_V2=y
|
||||
CONFIG_MACH_INETSPACE_V2=y
|
||||
CONFIG_MACH_NETSPACE_MAX_V2=y
|
||||
CONFIG_MACH_D2NET_V2=y
|
||||
CONFIG_MACH_NET2BIG_V2=y
|
||||
CONFIG_MACH_NET5BIG_V2=y
|
||||
CONFIG_MACH_RD88F6192_NAS=y
|
||||
CONFIG_MACH_RD88F6281=y
|
||||
CONFIG_MACH_SHEEVAPLUG=y
|
||||
CONFIG_MACH_T5325=y
|
||||
CONFIG_MACH_TS219=y
|
||||
CONFIG_MACH_TS41X=y
|
||||
CONFIG_MACH_CLOUDBOX_DT=y
|
||||
CONFIG_MACH_DLINK_KIRKWOOD_DT=y
|
||||
CONFIG_MACH_DOCKSTAR_DT=y
|
||||
CONFIG_MACH_DREAMPLUG_DT=y
|
||||
CONFIG_MACH_GOFLEXNET_DT=y
|
||||
CONFIG_MACH_GURUPLUG_DT=y
|
||||
CONFIG_MACH_IB62X0_DT=y
|
||||
CONFIG_MACH_ICONNECT_DT=y
|
||||
CONFIG_MACH_INETSPACE_V2_DT=y
|
||||
CONFIG_MACH_IOMEGA_IX2_200_DT=y
|
||||
CONFIG_MACH_KM_KIRKWOOD_DT=y
|
||||
CONFIG_MACH_LSXL_DT=y
|
||||
CONFIG_MACH_MPLCEC4_DT=y
|
||||
CONFIG_MACH_NETSPACE_LITE_V2_DT=y
|
||||
CONFIG_MACH_NETSPACE_MAX_V2_DT=y
|
||||
CONFIG_MACH_NETSPACE_MINI_V2_DT=y
|
||||
CONFIG_MACH_NETSPACE_V2_DT=y
|
||||
CONFIG_MACH_NSA310_DT=y
|
||||
CONFIG_MACH_OPENBLOCKS_A6_DT=y
|
||||
CONFIG_MACH_READYNAS_DT=y
|
||||
CONFIG_MACH_TOPKICK_DT=y
|
||||
CONFIG_MACH_TS219_DT=y
|
||||
# CONFIG_CPU_FEROCEON_OLD_ID is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_AEABI=y
|
||||
|
|
|
@ -1,72 +1,137 @@
|
|||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_SLAB=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_IOSCHED_DEADLINE is not set
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
# CONFIG_SLUB_DEBUG is not set
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_OPROFILE=y
|
||||
CONFIG_KPROBES=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_ARCH_MSM=y
|
||||
CONFIG_MACH_HALIBUT=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_ARCH_MSM8X60=y
|
||||
CONFIG_ARCH_MSM8960=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_AEABI=y
|
||||
# CONFIG_OABI_COMPAT is not set
|
||||
CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="mem=64M console=ttyMSM,115200n8"
|
||||
CONFIG_PM=y
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_HIGHPTE=y
|
||||
CONFIG_CLEANCACHE=y
|
||||
CONFIG_CC_STACKPROTECTOR=y
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_AUTO_ZRELADDR=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
CONFIG_IP_MULTIPLE_TABLES=y
|
||||
CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
|
||||
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
|
||||
# CONFIG_INET_XFRM_MODE_BEET is not set
|
||||
# CONFIG_INET_DIAG is not set
|
||||
# CONFIG_INET_LRO is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_PARTITIONS=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_RFKILL=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_SCSI_TGT=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_CHR_DEV_SCH=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_LOGGING=y
|
||||
CONFIG_SCSI_SCAN_ASYNC=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_DUMMY=y
|
||||
CONFIG_NET_ETHERNET=y
|
||||
CONFIG_SMC91X=y
|
||||
CONFIG_PPP=y
|
||||
CONFIG_PPP_ASYNC=y
|
||||
CONFIG_PPP_DEFLATE=y
|
||||
CONFIG_PPP_BSDCOMP=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_SLIP=y
|
||||
CONFIG_SLIP_COMPRESSED=y
|
||||
CONFIG_SLIP_MODE_SLIP6=y
|
||||
CONFIG_USB_USBNET=y
|
||||
# CONFIG_USB_NET_AX8817X is not set
|
||||
# CONFIG_USB_NET_ZAURUS is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
# CONFIG_INPUT_MOUSE is not set
|
||||
# CONFIG_MOUSE_PS2 is not set
|
||||
CONFIG_INPUT_JOYSTICK=y
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
# CONFIG_SERIO is not set
|
||||
CONFIG_VT_HW_CONSOLE_BINDING=y
|
||||
CONFIG_INPUT_UINPUT=y
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
CONFIG_SERIAL_MSM=y
|
||||
CONFIG_SERIAL_MSM_CONSOLE=y
|
||||
# CONFIG_LEGACY_PTYS is not set
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_I2C=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_VIDEO_OUTPUT_CONTROL=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SSBI=y
|
||||
CONFIG_DEBUG_GPIO=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_MEDIA_SUPPORT=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_MODE_HELPERS=y
|
||||
CONFIG_FB_TILEBLITTING=y
|
||||
CONFIG_FB_MSM=y
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_SOUND=y
|
||||
CONFIG_SND=y
|
||||
CONFIG_SND_DYNAMIC_MINORS=y
|
||||
# CONFIG_SND_ARM is not set
|
||||
# CONFIG_SND_SPI is not set
|
||||
# CONFIG_SND_USB is not set
|
||||
CONFIG_SND_SOC=y
|
||||
CONFIG_HID_BATTERY_STRENGTH=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_PHY=y
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
CONFIG_USB_MON=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_MSM=y
|
||||
CONFIG_USB_ACM=y
|
||||
CONFIG_USB_SERIAL=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_DEBUG_FILES=y
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=500
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_INOTIFY=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_MSM_IOMMU=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_FUSE_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_CIFS=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_SCHEDSTATS=y
|
||||
CONFIG_DEBUG_MUTEXES=y
|
||||
CONFIG_DEBUG_SPINLOCK_SLEEP=y
|
||||
CONFIG_LOCKUP_DETECTOR=y
|
||||
# CONFIG_DETECT_HUNG_TASK is not set
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_TIMER_STATS=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_LL=y
|
||||
CONFIG_DYNAMIC_DEBUG=y
|
||||
|
|
|
@ -93,6 +93,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
|
|||
CONFIG_SENSORS_LIS3LV02D=m
|
||||
CONFIG_SENSORS_TSL2550=m
|
||||
CONFIG_SENSORS_LIS3_I2C=m
|
||||
CONFIG_BMP085_I2C=m
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Early serial output macro for Marvell PXA/MMP SoC
|
||||
*
|
||||
* Copyright (C) 1994-1999 Russell King
|
||||
* Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
|
||||
*
|
||||
* Copyright (C) 2013 Haojian Zhuang
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_DEBUG_PXA_UART1)
|
||||
#define PXA_UART_REG_PHYS_BASE 0x40100000
|
||||
#define PXA_UART_REG_VIRT_BASE 0xf2100000
|
||||
#elif defined(CONFIG_DEBUG_MMP_UART2)
|
||||
#define PXA_UART_REG_PHYS_BASE 0xd4017000
|
||||
#define PXA_UART_REG_VIRT_BASE 0xfe017000
|
||||
#elif defined(CONFIG_DEBUG_MMP_UART3)
|
||||
#define PXA_UART_REG_PHYS_BASE 0xd4018000
|
||||
#define PXA_UART_REG_VIRT_BASE 0xfe018000
|
||||
#else
|
||||
#error "Select uart for DEBUG_LL"
|
||||
#endif
|
||||
|
||||
.macro addruart, rp, rv, tmp
|
||||
ldr \rp, =PXA_UART_REG_PHYS_BASE
|
||||
ldr \rv, =PXA_UART_REG_VIRT_BASE
|
||||
.endm
|
||||
|
||||
#define UART_SHIFT 2
|
||||
#include <asm/hardware/debug-8250.S>
|
|
@ -297,11 +297,7 @@ static const short da830_evm_emif25_pins[] = {
|
|||
-1
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
|
||||
#define HAS_MMC 1
|
||||
#else
|
||||
#define HAS_MMC 0
|
||||
#endif
|
||||
#define HAS_MMC IS_ENABLED(CONFIG_MMC_DAVINCI)
|
||||
|
||||
#ifdef CONFIG_DA830_UI_NAND
|
||||
static struct mtd_partition da830_evm_nand_partitions[] = {
|
||||
|
|
|
@ -335,12 +335,7 @@ static const short da850_evm_nor_pins[] = {
|
|||
-1
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MMC_DAVINCI) || \
|
||||
defined(CONFIG_MMC_DAVINCI_MODULE)
|
||||
#define HAS_MMC 1
|
||||
#else
|
||||
#define HAS_MMC 0
|
||||
#endif
|
||||
#define HAS_MMC IS_ENABLED(CONFIG_MMC_DAVINCI)
|
||||
|
||||
static inline void da850_evm_setup_nor_nand(void)
|
||||
{
|
||||
|
@ -401,7 +396,7 @@ enum da850_evm_ui_exp_pins {
|
|||
DA850_EVM_UI_EXP_PB1,
|
||||
};
|
||||
|
||||
static const char const *da850_evm_ui_exp[] = {
|
||||
static const char * const da850_evm_ui_exp[] = {
|
||||
[DA850_EVM_UI_EXP_SEL_C] = "sel_c",
|
||||
[DA850_EVM_UI_EXP_SEL_B] = "sel_b",
|
||||
[DA850_EVM_UI_EXP_SEL_A] = "sel_a",
|
||||
|
@ -565,7 +560,7 @@ enum da850_evm_bb_exp_pins {
|
|||
DA850_EVM_BB_EXP_USER_SW8
|
||||
};
|
||||
|
||||
static const char const *da850_evm_bb_exp[] = {
|
||||
static const char * const da850_evm_bb_exp[] = {
|
||||
[DA850_EVM_BB_EXP_DEEP_SLEEP_EN] = "deep_sleep_en",
|
||||
[DA850_EVM_BB_EXP_SW_RST] = "sw_rst",
|
||||
[DA850_EVM_BB_EXP_TP_23] = "tp_23",
|
||||
|
@ -1577,6 +1572,11 @@ static __init void da850_evm_init(void)
|
|||
pr_warn("%s: SATA registration failed: %d\n", __func__, ret);
|
||||
|
||||
da850_evm_setup_mac_addr();
|
||||
|
||||
ret = da8xx_register_rproc();
|
||||
if (ret)
|
||||
pr_warn("%s: dsp/rproc registration failed: %d\n",
|
||||
__func__, ret);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SERIAL_8250_CONSOLE
|
||||
|
@ -1604,4 +1604,5 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
|
|||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
.restart = da8xx_restart,
|
||||
.reserve = da8xx_rproc_reserve_cma,
|
||||
MACHINE_END
|
||||
|
|
|
@ -749,26 +749,11 @@ static int davinci_phy_fixup(struct phy_device *phydev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
|
||||
defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
|
||||
#define HAS_ATA 1
|
||||
#else
|
||||
#define HAS_ATA 0
|
||||
#endif
|
||||
#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
|
||||
|
||||
#if defined(CONFIG_MTD_PHYSMAP) || \
|
||||
defined(CONFIG_MTD_PHYSMAP_MODULE)
|
||||
#define HAS_NOR 1
|
||||
#else
|
||||
#define HAS_NOR 0
|
||||
#endif
|
||||
#define HAS_NOR IS_ENABLED(CONFIG_MTD_PHYSMAP)
|
||||
|
||||
#if defined(CONFIG_MTD_NAND_DAVINCI) || \
|
||||
defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
|
||||
#define HAS_NAND 1
|
||||
#else
|
||||
#define HAS_NAND 0
|
||||
#endif
|
||||
#define HAS_NAND IS_ENABLED(CONFIG_MTD_NAND_DAVINCI)
|
||||
|
||||
static __init void davinci_evm_init(void)
|
||||
{
|
||||
|
|
|
@ -117,12 +117,7 @@ static struct platform_device davinci_nand_device = {
|
|||
},
|
||||
};
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
|
||||
defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
|
||||
#define HAS_ATA 1
|
||||
#else
|
||||
#define HAS_ATA 0
|
||||
#endif
|
||||
#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
|
||||
|
||||
/* CPLD Register 0 bits to control ATA */
|
||||
#define DM646X_EVM_ATA_RST BIT(0)
|
||||
|
|
|
@ -166,20 +166,9 @@ static struct davinci_mmc_config davinci_ntosd2_mmc_config = {
|
|||
.wires = 4,
|
||||
};
|
||||
|
||||
#define HAS_ATA IS_ENABLED(CONFIG_BLK_DEV_PALMCHIP_BK3710)
|
||||
|
||||
#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
|
||||
defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
|
||||
#define HAS_ATA 1
|
||||
#else
|
||||
#define HAS_ATA 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MTD_NAND_DAVINCI) || \
|
||||
defined(CONFIG_MTD_NAND_DAVINCI_MODULE)
|
||||
#define HAS_NAND 1
|
||||
#else
|
||||
#define HAS_NAND 0
|
||||
#endif
|
||||
#define HAS_NAND IS_ENABLED(CONFIG_MTD_NAND_DAVINCI)
|
||||
|
||||
static __init void davinci_ntosd2_init(void)
|
||||
{
|
||||
|
|
|
@ -310,6 +310,11 @@ static __init void omapl138_hawk_init(void)
|
|||
if (ret)
|
||||
pr_warn("%s: watchdog registration failed: %d\n",
|
||||
__func__, ret);
|
||||
|
||||
ret = da8xx_register_rproc();
|
||||
if (ret)
|
||||
pr_warn("%s: dsp/rproc registration failed: %d\n",
|
||||
__func__, ret);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SERIAL_8250_CONSOLE
|
||||
|
@ -337,4 +342,5 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
|
|||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
.restart = da8xx_restart,
|
||||
.reserve = da8xx_rproc_reserve_cma,
|
||||
MACHINE_END
|
||||
|
|
|
@ -119,7 +119,7 @@ void __init davinci_init_ide(void)
|
|||
platform_device_register(&ide_device);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
|
||||
#if IS_ENABLED(CONFIG_MMC_DAVINCI)
|
||||
|
||||
static u64 mmcsd0_dma_mask = DMA_BIT_MASK(32);
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#define DA8XX_USB0_BASE 0x01e00000
|
||||
#define DA8XX_USB1_BASE 0x01e25000
|
||||
|
||||
#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
|
||||
#if IS_ENABLED(CONFIG_USB_MUSB_HDRC)
|
||||
static struct musb_hdrc_eps_bits musb_eps[] = {
|
||||
{ "ep1_tx", 8, },
|
||||
{ "ep1_rx", 8, },
|
||||
|
|
|
@ -2,35 +2,23 @@ if ARCH_KIRKWOOD
|
|||
|
||||
menu "Marvell Kirkwood Implementations"
|
||||
|
||||
config MACH_D2NET_V2
|
||||
bool "LaCie d2 Network v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie d2 Network v2 NAS.
|
||||
|
||||
config MACH_DB88F6281_BP
|
||||
bool "Marvell DB-88F6281-BP Development Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell DB-88F6281-BP Development Board.
|
||||
|
||||
config MACH_RD88F6192_NAS
|
||||
bool "Marvell RD-88F6192-NAS Reference Board"
|
||||
config MACH_DOCKSTAR
|
||||
bool "Seagate FreeAgent DockStar"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell RD-88F6192-NAS Reference Board.
|
||||
|
||||
config MACH_RD88F6281
|
||||
bool "Marvell RD-88F6281 Reference Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell RD-88F6281 Reference Board.
|
||||
|
||||
config MACH_MV88F6281GTW_GE
|
||||
bool "Marvell 88F6281 GTW GE Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell 88F6281 GTW GE Board.
|
||||
|
||||
config MACH_SHEEVAPLUG
|
||||
bool "Marvell SheevaPlug Reference Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell SheevaPlug Reference Board.
|
||||
Seagate FreeAgent DockStar.
|
||||
|
||||
config MACH_ESATA_SHEEVAPLUG
|
||||
bool "Marvell eSATA SheevaPlug Reference Board"
|
||||
|
@ -44,182 +32,41 @@ config MACH_GURUPLUG
|
|||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell GuruPlug Reference Board.
|
||||
|
||||
config ARCH_KIRKWOOD_DT
|
||||
bool "Marvell Kirkwood Flattened Device Tree"
|
||||
select POWER_SUPPLY
|
||||
select POWER_RESET
|
||||
select POWER_RESET_GPIO
|
||||
select REGULATOR
|
||||
select REGULATOR_FIXED_VOLTAGE
|
||||
select MVEBU_CLK_CORE
|
||||
select MVEBU_CLK_GATING
|
||||
select USE_OF
|
||||
config MACH_INETSPACE_V2
|
||||
bool "LaCie Internet Space v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell Kirkwood using flattened device tree.
|
||||
LaCie Internet Space v2 NAS.
|
||||
|
||||
config MACH_GURUPLUG_DT
|
||||
bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
config MACH_MV88F6281GTW_GE
|
||||
bool "Marvell 88F6281 GTW GE Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell GuruPlug Reference Board (Flattened Device Tree).
|
||||
Marvell 88F6281 GTW GE Board.
|
||||
|
||||
config MACH_DREAMPLUG_DT
|
||||
bool "Marvell DreamPlug (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
config MACH_NET2BIG_V2
|
||||
bool "LaCie 2Big Network v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell DreamPlug (Flattened Device Tree).
|
||||
LaCie 2Big Network v2 NAS.
|
||||
|
||||
config MACH_ICONNECT_DT
|
||||
bool "Iomega Iconnect (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here to enable Iomega Iconnect support.
|
||||
|
||||
config MACH_DLINK_KIRKWOOD_DT
|
||||
bool "D-Link Kirkwood-based NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
config MACH_NET5BIG_V2
|
||||
bool "LaCie 5Big Network v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Kirkwood-based D-Link NASes such as DNS-320 & DNS-325,
|
||||
using Flattened Device Tree.
|
||||
LaCie 5Big Network v2 NAS.
|
||||
|
||||
config MACH_IB62X0_DT
|
||||
bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
config MACH_NETSPACE_MAX_V2
|
||||
bool "LaCie Network Space Max v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
RaidSonic IB-NAS6210 & IB-NAS6220 devices, using
|
||||
Flattened Device Tree.
|
||||
LaCie Network Space Max v2 NAS.
|
||||
|
||||
config MACH_TS219_DT
|
||||
bool "Device Tree for QNAP TS-11X, TS-21X NAS"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
select ARM_APPENDED_DTB
|
||||
select ARM_ATAG_DTB_COMPAT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the QNAP
|
||||
TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
|
||||
TS-219P+ Turbo NAS devices using Fattened Device Tree.
|
||||
There are two different Device Tree descriptions, depending
|
||||
on if the device is based on an if the board uses the MV6281
|
||||
or MV6282. If you have the wrong one, the buttons will not
|
||||
work.
|
||||
|
||||
config MACH_DOCKSTAR_DT
|
||||
bool "Seagate FreeAgent Dockstar (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
config MACH_NETSPACE_V2
|
||||
bool "LaCie Network Space v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Seagate FreeAgent Dockstar (Flattened Device Tree).
|
||||
|
||||
config MACH_GOFLEXNET_DT
|
||||
bool "Seagate GoFlex Net (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Seagate GoFlex Net (Flattened Device Tree).
|
||||
|
||||
config MACH_LSXL_DT
|
||||
bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using
|
||||
Flattened Device Tree.
|
||||
|
||||
config MACH_IOMEGA_IX2_200_DT
|
||||
bool "Iomega StorCenter ix2-200 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Iomega StorCenter ix2-200 (Flattened Device Tree).
|
||||
|
||||
config MACH_KM_KIRKWOOD_DT
|
||||
bool "Keymile Kirkwood Reference Design (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Keymile Kirkwood Reference Desgin, using Flattened Device Tree.
|
||||
|
||||
config MACH_INETSPACE_V2_DT
|
||||
bool "LaCie Internet Space v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Internet Space v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_MPLCEC4_DT
|
||||
bool "MPL CEC4 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
MPL CEC4 (Flattened Device Tree).
|
||||
|
||||
config MACH_NETSPACE_V2_DT
|
||||
bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_NETSPACE_MAX_V2_DT
|
||||
bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space Max v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_NETSPACE_LITE_V2_DT
|
||||
bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space Lite v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_NETSPACE_MINI_V2_DT
|
||||
bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space Mini v2 NAS (aka SafeBox), using Flattened
|
||||
Device Tree.
|
||||
|
||||
config MACH_OPENBLOCKS_A6_DT
|
||||
bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Plat'Home OpenBlocks A6 (Flattened Device Tree).
|
||||
|
||||
config MACH_TOPKICK_DT
|
||||
bool "USI Topkick (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
USI Topkick, using Flattened Device Tree
|
||||
|
||||
config MACH_TS219
|
||||
bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
|
||||
TS-219P+ Turbo NAS devices.
|
||||
|
||||
config MACH_TS41X
|
||||
bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
|
||||
NAS devices.
|
||||
|
||||
config MACH_DOCKSTAR
|
||||
bool "Seagate FreeAgent DockStar"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Seagate FreeAgent DockStar.
|
||||
LaCie Network Space v2 NAS.
|
||||
|
||||
config MACH_OPENRD
|
||||
bool
|
||||
|
@ -245,41 +92,23 @@ config MACH_OPENRD_ULTIMATE
|
|||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell OpenRD Ultimate Board.
|
||||
|
||||
config MACH_NETSPACE_V2
|
||||
bool "LaCie Network Space v2 NAS Board"
|
||||
config MACH_RD88F6192_NAS
|
||||
bool "Marvell RD-88F6192-NAS Reference Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie Network Space v2 NAS.
|
||||
Marvell RD-88F6192-NAS Reference Board.
|
||||
|
||||
config MACH_INETSPACE_V2
|
||||
bool "LaCie Internet Space v2 NAS Board"
|
||||
config MACH_RD88F6281
|
||||
bool "Marvell RD-88F6281 Reference Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie Internet Space v2 NAS.
|
||||
Marvell RD-88F6281 Reference Board.
|
||||
|
||||
config MACH_NETSPACE_MAX_V2
|
||||
bool "LaCie Network Space Max v2 NAS Board"
|
||||
config MACH_SHEEVAPLUG
|
||||
bool "Marvell SheevaPlug Reference Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie Network Space Max v2 NAS.
|
||||
|
||||
config MACH_D2NET_V2
|
||||
bool "LaCie d2 Network v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie d2 Network v2 NAS.
|
||||
|
||||
config MACH_NET2BIG_V2
|
||||
bool "LaCie 2Big Network v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie 2Big Network v2 NAS.
|
||||
|
||||
config MACH_NET5BIG_V2
|
||||
bool "LaCie 5Big Network v2 NAS Board"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
LaCie 5Big Network v2 NAS.
|
||||
Marvell SheevaPlug Reference Board.
|
||||
|
||||
config MACH_T5325
|
||||
bool "HP t5325 Thin Client"
|
||||
|
@ -287,6 +116,162 @@ config MACH_T5325
|
|||
Say 'Y' here if you want your kernel to support the
|
||||
HP t5325 Thin Client.
|
||||
|
||||
config MACH_TS219
|
||||
bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
|
||||
TS-219P+ Turbo NAS devices.
|
||||
|
||||
config MACH_TS41X
|
||||
bool "QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo NAS"
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
QNAP TS-410, TS-410U, TS-419P, TS-419P+ and TS-419U Turbo
|
||||
NAS devices.
|
||||
|
||||
comment "Device tree entries"
|
||||
|
||||
config ARCH_KIRKWOOD_DT
|
||||
bool "Marvell Kirkwood Flattened Device Tree"
|
||||
select POWER_SUPPLY
|
||||
select POWER_RESET
|
||||
select POWER_RESET_GPIO
|
||||
select REGULATOR
|
||||
select REGULATOR_FIXED_VOLTAGE
|
||||
select MVEBU_CLK_CORE
|
||||
select MVEBU_CLK_GATING
|
||||
select USE_OF
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell Kirkwood using flattened device tree.
|
||||
|
||||
config MACH_CLOUDBOX_DT
|
||||
bool "LaCie CloudBox NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
CloudBox NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_DLINK_KIRKWOOD_DT
|
||||
bool "D-Link Kirkwood-based NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Kirkwood-based D-Link NASes such as DNS-320 & DNS-325,
|
||||
using Flattened Device Tree.
|
||||
|
||||
config MACH_DOCKSTAR_DT
|
||||
bool "Seagate FreeAgent Dockstar (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Seagate FreeAgent Dockstar (Flattened Device Tree).
|
||||
|
||||
config MACH_DREAMPLUG_DT
|
||||
bool "Marvell DreamPlug (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell DreamPlug (Flattened Device Tree).
|
||||
|
||||
config MACH_GOFLEXNET_DT
|
||||
bool "Seagate GoFlex Net (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Seagate GoFlex Net (Flattened Device Tree).
|
||||
|
||||
config MACH_GURUPLUG_DT
|
||||
bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Marvell GuruPlug Reference Board (Flattened Device Tree).
|
||||
|
||||
config MACH_IB62X0_DT
|
||||
bool "RaidSonic IB-NAS6210, IB-NAS6220 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
RaidSonic IB-NAS6210 & IB-NAS6220 devices, using
|
||||
Flattened Device Tree.
|
||||
|
||||
config MACH_ICONNECT_DT
|
||||
bool "Iomega Iconnect (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here to enable Iomega Iconnect support.
|
||||
|
||||
config MACH_INETSPACE_V2_DT
|
||||
bool "LaCie Internet Space v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Internet Space v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_IOMEGA_IX2_200_DT
|
||||
bool "Iomega StorCenter ix2-200 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Iomega StorCenter ix2-200 (Flattened Device Tree).
|
||||
|
||||
config MACH_KM_KIRKWOOD_DT
|
||||
bool "Keymile Kirkwood Reference Design (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Keymile Kirkwood Reference Desgin, using Flattened Device Tree.
|
||||
|
||||
config MACH_LSXL_DT
|
||||
bool "Buffalo Linkstation LS-XHL, LS-CHLv2 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Buffalo Linkstation LS-XHL & LS-CHLv2 devices, using
|
||||
Flattened Device Tree.
|
||||
|
||||
config MACH_MPLCEC4_DT
|
||||
bool "MPL CEC4 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
MPL CEC4 (Flattened Device Tree).
|
||||
|
||||
config MACH_NETSPACE_LITE_V2_DT
|
||||
bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space Lite v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_NETSPACE_MAX_V2_DT
|
||||
bool "LaCie Network Space Max v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space Max v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_NETSPACE_MINI_V2_DT
|
||||
bool "LaCie Network Space Mini v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space Mini v2 NAS using Flattened Device Tree.
|
||||
|
||||
This board is embedded in a product named CloudBox, which
|
||||
provides automatic backup on a 100GB cloud storage. This
|
||||
should not confused with a more recent LaCie NAS also named
|
||||
CloudBox. For this last, the disk capacity is 1TB or above.
|
||||
|
||||
config MACH_NETSPACE_V2_DT
|
||||
bool "LaCie Network Space v2 NAS (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the LaCie
|
||||
Network Space v2 NAS, using Flattened Device Tree.
|
||||
|
||||
config MACH_NSA310_DT
|
||||
bool "ZyXEL NSA-310 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
|
@ -295,6 +280,43 @@ config MACH_NSA310_DT
|
|||
Say 'Y' here if you want your kernel to support the
|
||||
ZyXEL NSA-310 board (Flattened Device Tree).
|
||||
|
||||
config MACH_OPENBLOCKS_A6_DT
|
||||
bool "Plat'Home OpenBlocks A6 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
Plat'Home OpenBlocks A6 (Flattened Device Tree).
|
||||
|
||||
config MACH_READYNAS_DT
|
||||
bool "NETGEAR ReadyNAS Duo v2 (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
select ARM_APPENDED_DTB
|
||||
select ARM_ATAG_DTB_COMPAT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
NETGEAR ReadyNAS Duo v2 using Fattened Device Tree.
|
||||
|
||||
config MACH_TOPKICK_DT
|
||||
bool "USI Topkick (Flattened Device Tree)"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the
|
||||
USI Topkick, using Flattened Device Tree
|
||||
|
||||
config MACH_TS219_DT
|
||||
bool "Device Tree for QNAP TS-11X, TS-21X NAS"
|
||||
select ARCH_KIRKWOOD_DT
|
||||
select ARM_APPENDED_DTB
|
||||
select ARM_ATAG_DTB_COMPAT
|
||||
help
|
||||
Say 'Y' here if you want your kernel to support the QNAP
|
||||
TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and
|
||||
TS-219P+ Turbo NAS devices using Fattened Device Tree.
|
||||
There are two different Device Tree descriptions, depending
|
||||
on if the device is based on an if the board uses the MV6281
|
||||
or MV6282. If you have the wrong one, the buttons will not
|
||||
work.
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
|
|
|
@ -1,42 +1,44 @@
|
|||
obj-y += common.o addr-map.o irq.o pcie.o mpp.o
|
||||
|
||||
obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_DB88F6281_BP) += db88f6281-bp-setup.o
|
||||
obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o
|
||||
obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
|
||||
obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
|
||||
obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
|
||||
obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
|
||||
obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
|
||||
obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
|
||||
obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
|
||||
obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
|
||||
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
|
||||
obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_INETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_D2NET_V2) += d2net_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv88f6281gtw_ge-setup.o
|
||||
obj-$(CONFIG_MACH_NET2BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_NET5BIG_V2) += netxbig_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_MAX_V2) += netspace_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_V2) += netspace_v2-setup.o lacie_v2-common.o
|
||||
obj-$(CONFIG_MACH_OPENRD) += openrd-setup.o
|
||||
obj-$(CONFIG_MACH_RD88F6192_NAS) += rd88f6192-nas-setup.o
|
||||
obj-$(CONFIG_MACH_RD88F6281) += rd88f6281-setup.o
|
||||
obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
|
||||
obj-$(CONFIG_MACH_T5325) += t5325-setup.o
|
||||
obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
|
||||
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
|
||||
|
||||
obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
|
||||
obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o
|
||||
obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o
|
||||
obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o
|
||||
obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o
|
||||
obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
|
||||
obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o
|
||||
obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o
|
||||
obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o
|
||||
obj-$(CONFIG_MACH_GOFLEXNET_DT) += board-goflexnet.o
|
||||
obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o
|
||||
obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o
|
||||
obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
|
||||
obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o
|
||||
obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_IOMEGA_IX2_200_DT) += board-iomega_ix2_200.o
|
||||
obj-$(CONFIG_MACH_KM_KIRKWOOD_DT) += board-km_kirkwood.o
|
||||
obj-$(CONFIG_MACH_INETSPACE_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_LSXL_DT) += board-lsxl.o
|
||||
obj-$(CONFIG_MACH_MPLCEC4_DT) += board-mplcec4.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_MINI_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_NETSPACE_V2_DT) += board-ns2.o
|
||||
obj-$(CONFIG_MACH_NSA310_DT) += board-nsa310.o
|
||||
obj-$(CONFIG_MACH_OPENBLOCKS_A6_DT) += board-openblocks_a6.o
|
||||
obj-$(CONFIG_MACH_READYNAS_DT) += board-readynas.o
|
||||
obj-$(CONFIG_MACH_TOPKICK_DT) += board-usi_topkick.o
|
||||
obj-$(CONFIG_MACH_TS219_DT) += board-ts219.o tsx1x-common.o
|
||||
|
|
|
@ -139,16 +139,20 @@ static void __init kirkwood_dt_init(void)
|
|||
if (of_machine_is_compatible("keymile,km_kirkwood"))
|
||||
km_kirkwood_init();
|
||||
|
||||
if (of_machine_is_compatible("lacie,inetspace_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_max_v2") ||
|
||||
if (of_machine_is_compatible("lacie,cloudbox") ||
|
||||
of_machine_is_compatible("lacie,inetspace_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_lite_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_mini_v2"))
|
||||
of_machine_is_compatible("lacie,netspace_max_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_mini_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_v2"))
|
||||
ns2_init();
|
||||
|
||||
if (of_machine_is_compatible("mpl,cec4"))
|
||||
mplcec4_init();
|
||||
|
||||
if (of_machine_is_compatible("netgear,readynas-duo-v2"))
|
||||
netgear_readynas_init();
|
||||
|
||||
if (of_machine_is_compatible("plathome,openblocks-a6"))
|
||||
openblocks_a6_init();
|
||||
|
||||
|
@ -171,12 +175,14 @@ static const char * const kirkwood_dt_board_compat[] = {
|
|||
"buffalo,lsxl",
|
||||
"iom,ix2-200",
|
||||
"keymile,km_kirkwood",
|
||||
"lacie,cloudbox",
|
||||
"lacie,inetspace_v2",
|
||||
"lacie,netspace_max_v2",
|
||||
"lacie,netspace_v2",
|
||||
"lacie,netspace_lite_v2",
|
||||
"lacie,netspace_max_v2",
|
||||
"lacie,netspace_mini_v2",
|
||||
"lacie,netspace_v2",
|
||||
"mpl,cec4",
|
||||
"netgear,readynas-duo-v2",
|
||||
"plathome,openblocks-a6",
|
||||
"usi,topkick",
|
||||
"zyxel,nsa310",
|
||||
|
|
|
@ -27,7 +27,8 @@ void __init ns2_init(void)
|
|||
/*
|
||||
* Basic setup. Needs to be called early.
|
||||
*/
|
||||
if (of_machine_is_compatible("lacie,netspace_lite_v2") ||
|
||||
if (of_machine_is_compatible("lacie,cloudbox") ||
|
||||
of_machine_is_compatible("lacie,netspace_lite_v2") ||
|
||||
of_machine_is_compatible("lacie,netspace_mini_v2"))
|
||||
ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
|
||||
kirkwood_ge00_init(&ns2_ge00_data);
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* NETGEAR ReadyNAS Duo v2 Board setup for drivers not already
|
||||
* converted to DT.
|
||||
*
|
||||
* Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mv643xx_eth.h>
|
||||
#include <mach/kirkwood.h>
|
||||
#include "common.h"
|
||||
|
||||
static struct mv643xx_eth_platform_data netgear_readynas_ge00_data = {
|
||||
.phy_addr = MV643XX_ETH_PHY_ADDR(0),
|
||||
};
|
||||
|
||||
void __init netgear_readynas_init(void)
|
||||
{
|
||||
kirkwood_ge00_init(&netgear_readynas_ge00_data);
|
||||
kirkwood_pcie_init(KW_PCIE0);
|
||||
}
|
|
@ -141,12 +141,24 @@ void openblocks_a6_init(void);
|
|||
static inline void openblocks_a6_init(void) {};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_READYNAS_DT
|
||||
void netgear_readynas_init(void);
|
||||
#else
|
||||
static inline void netgear_readynas_init(void) {};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_TOPKICK_DT
|
||||
void usi_topkick_init(void);
|
||||
#else
|
||||
static inline void usi_topkick_init(void) {};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_CLOUDBOX_DT
|
||||
void cloudbox_init(void);
|
||||
#else
|
||||
static inline void cloudbox_init(void) {};
|
||||
#endif
|
||||
|
||||
/* early init functions not converted to fdt yet */
|
||||
char *kirkwood_id(void);
|
||||
void kirkwood_l2_init(void);
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
* publishhed by the Free Software Foundation.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
@ -110,6 +111,10 @@ static unsigned long common_pin_config[] __initdata = {
|
|||
GPIO121_KP_MKIN4,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct smc91x_platdata smc91x_info = {
|
||||
.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
|
||||
};
|
||||
|
@ -242,6 +247,8 @@ static void __init common_init(void)
|
|||
pxa168_add_nand(&aspenite_nand_info);
|
||||
pxa168_add_fb(&aspenite_lcd_info);
|
||||
pxa168_add_keypad(&aspenite_keypad_info);
|
||||
platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&pxa168_device_gpio);
|
||||
|
||||
/* off-chip devices */
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -32,12 +33,18 @@ static unsigned long avengers_lite_pin_config_V16F[] __initdata = {
|
|||
GPIO89_UART2_RXD,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static void __init avengers_lite_init(void)
|
||||
{
|
||||
mfp_config(ARRAY_AND_SIZE(avengers_lite_pin_config_V16F));
|
||||
|
||||
/* on-chip devices */
|
||||
pxa168_add_uart(2);
|
||||
platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&pxa168_device_gpio);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/regulator/max8649.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
|
@ -104,6 +105,10 @@ static unsigned long brownstone_pin_config[] __initdata = {
|
|||
GPIO89_GPIO,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply max8649_supply[] = {
|
||||
REGULATOR_SUPPLY("vcc_core", NULL),
|
||||
};
|
||||
|
@ -202,6 +207,8 @@ static void __init brownstone_init(void)
|
|||
/* on-chip devices */
|
||||
mmp2_add_uart(1);
|
||||
mmp2_add_uart(3);
|
||||
platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&mmp2_device_gpio);
|
||||
mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(brownstone_twsi1_info));
|
||||
mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */
|
||||
|
|
|
@ -98,7 +98,7 @@ static struct clk_lookup mmp2_clkregs[] = {
|
|||
INIT_CLKREG(&clk_twsi5, "pxa2xx-i2c.4", NULL),
|
||||
INIT_CLKREG(&clk_twsi6, "pxa2xx-i2c.5", NULL),
|
||||
INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
|
||||
INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL),
|
||||
INIT_CLKREG(&clk_gpio, "mmp2-gpio", NULL),
|
||||
INIT_CLKREG(&clk_sdh0, "sdhci-pxav3.0", "PXA-SDHCLK"),
|
||||
INIT_CLKREG(&clk_sdh1, "sdhci-pxav3.1", "PXA-SDHCLK"),
|
||||
INIT_CLKREG(&clk_sdh2, "sdhci-pxav3.2", "PXA-SDHCLK"),
|
||||
|
|
|
@ -78,7 +78,7 @@ static struct clk_lookup pxa168_clkregs[] = {
|
|||
INIT_CLKREG(&clk_ssp5, "pxa168-ssp.4", NULL),
|
||||
INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
|
||||
INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL),
|
||||
INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL),
|
||||
INIT_CLKREG(&clk_gpio, "mmp-gpio", NULL),
|
||||
INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL),
|
||||
INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"),
|
||||
INIT_CLKREG(&clk_usb, NULL, "PXA168-USBCLK"),
|
||||
|
|
|
@ -56,7 +56,7 @@ static struct clk_lookup pxa910_clkregs[] = {
|
|||
INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL),
|
||||
INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL),
|
||||
INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
|
||||
INIT_CLKREG(&clk_gpio, "pxa-gpio", NULL),
|
||||
INIT_CLKREG(&clk_gpio, "mmp-gpio", NULL),
|
||||
INIT_CLKREG(&clk_u2o, NULL, "U2OCLK"),
|
||||
INIT_CLKREG(&clk_rtc, "sa1100-rtc", NULL),
|
||||
};
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/smc91x.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -77,6 +78,10 @@ static unsigned long flint_pin_config[] __initdata = {
|
|||
GPIO160_ND_RDY1,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct smc91x_platdata flint_smc91x_info = {
|
||||
.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
|
||||
};
|
||||
|
@ -111,6 +116,8 @@ static void __init flint_init(void)
|
|||
/* on-chip devices */
|
||||
mmp2_add_uart(1);
|
||||
mmp2_add_uart(2);
|
||||
platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&mmp2_device_gpio);
|
||||
|
||||
/* off-chip devices */
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -128,6 +129,10 @@ static unsigned long gplugd_pin_config[] __initdata = {
|
|||
GPIO116_I2S_TXD
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct i2c_board_info gplugd_i2c_board_info[] = {
|
||||
{
|
||||
.type = "isl1208",
|
||||
|
@ -186,6 +191,8 @@ static void __init gplugd_init(void)
|
|||
pxa168_add_uart(3);
|
||||
pxa168_add_ssp(1);
|
||||
pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(gplugd_i2c_board_info));
|
||||
platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&pxa168_device_gpio);
|
||||
|
||||
pxa168_add_eth(&gplugd_eth_platform_data);
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/* arch/arm/mach-mmp/include/mach/debug-macro.S
|
||||
*
|
||||
* Debugging macro include header
|
||||
*
|
||||
* Copied from arch/arm/mach-pxa/include/mach/debug.S
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_DEBUG_MMP_UART2)
|
||||
#define MMP_UART_OFFSET 0x00017000
|
||||
#elif defined(CONFIG_DEBUG_MMP_UART3)
|
||||
#define MMP_UART_OFFSET 0x00018000
|
||||
#else
|
||||
#error "Select uart for DEBUG_LL"
|
||||
#endif
|
||||
|
||||
#include <mach/addr-map.h>
|
||||
|
||||
.macro addruart, rp, rv, tmp
|
||||
ldr \rp, =APB_PHYS_BASE @ physical
|
||||
ldr \rv, =APB_VIRT_BASE @ virtual
|
||||
orr \rp, \rp, #MMP_UART_OFFSET
|
||||
orr \rv, \rv, #MMP_UART_OFFSET
|
||||
.endm
|
||||
|
||||
#define UART_SHIFT 2
|
||||
#include <asm/hardware/debug-8250.S>
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
|
@ -99,6 +100,10 @@ static unsigned long jasper_pin_config[] __initdata = {
|
|||
GPIO151_MMC3_CLK,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data mmp2_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply max8649_supply[] = {
|
||||
REGULATOR_SUPPLY("vcc_core", NULL),
|
||||
};
|
||||
|
@ -165,6 +170,9 @@ static void __init jasper_init(void)
|
|||
mmp2_add_uart(1);
|
||||
mmp2_add_uart(3);
|
||||
mmp2_add_twsi(1, NULL, ARRAY_AND_SIZE(jasper_twsi1_info));
|
||||
platform_device_add_data(&mmp2_device_gpio, &mmp2_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&mmp2_device_gpio);
|
||||
mmp2_add_sdhost(0, &mmp2_sdh_platdata_mmc0); /* SD/MMC */
|
||||
|
||||
regulator_has_full_constraints();
|
||||
|
|
|
@ -28,7 +28,7 @@ static const struct of_dev_auxdata pxa168_auxdata_lookup[] __initconst = {
|
|||
OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4026000, "pxa2xx-uart.2", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
|
||||
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
|
||||
{}
|
||||
};
|
||||
|
@ -39,7 +39,7 @@ static const struct of_dev_auxdata pxa910_auxdata_lookup[] __initconst = {
|
|||
OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4036000, "pxa2xx-uart.2", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4037000, "pxa2xx-i2c.1", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
|
||||
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp-gpio", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
|
||||
{}
|
||||
};
|
||||
|
|
|
@ -31,7 +31,7 @@ static const struct of_dev_auxdata mmp2_auxdata_lookup[] __initconst = {
|
|||
OF_DEV_AUXDATA("mrvl,mmp-uart", 0xd4016000, "pxa2xx-uart.3", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4011000, "pxa2xx-i2c.0", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-twsi", 0xd4025000, "pxa2xx-i2c.1", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-gpio", 0xd4019000, "pxa-gpio", NULL),
|
||||
OF_DEV_AUXDATA("marvell,mmp-gpio", 0xd4019000, "mmp2-gpio", NULL),
|
||||
OF_DEV_AUXDATA("mrvl,mmp-rtc", 0xd4010000, "sa1100-rtc", NULL),
|
||||
{}
|
||||
};
|
||||
|
|
|
@ -164,7 +164,7 @@ struct resource mmp2_resource_gpio[] = {
|
|||
};
|
||||
|
||||
struct platform_device mmp2_device_gpio = {
|
||||
.name = "pxa-gpio",
|
||||
.name = "mmp2-gpio",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(mmp2_resource_gpio),
|
||||
.resource = mmp2_resource_gpio,
|
||||
|
|
|
@ -125,7 +125,7 @@ struct resource pxa168_resource_gpio[] = {
|
|||
};
|
||||
|
||||
struct platform_device pxa168_device_gpio = {
|
||||
.name = "pxa-gpio",
|
||||
.name = "mmp-gpio",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(pxa168_resource_gpio),
|
||||
.resource = pxa168_resource_gpio,
|
||||
|
|
|
@ -152,7 +152,7 @@ struct resource pxa910_resource_gpio[] = {
|
|||
};
|
||||
|
||||
struct platform_device pxa910_device_gpio = {
|
||||
.name = "pxa-gpio",
|
||||
.name = "mmp-gpio",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(pxa910_resource_gpio),
|
||||
.resource = pxa910_resource_gpio,
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
* publishhed by the Free Software Foundation.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
@ -60,6 +61,10 @@ static unsigned long tavorevb_pin_config[] __initdata = {
|
|||
DF_RDY0_DF_RDY0,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct smc91x_platdata tavorevb_smc91x_info = {
|
||||
.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
|
||||
};
|
||||
|
@ -93,6 +98,8 @@ static void __init tavorevb_init(void)
|
|||
|
||||
/* on-chip devices */
|
||||
pxa910_add_uart(1);
|
||||
platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&pxa910_device_gpio);
|
||||
|
||||
/* off-chip devices */
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/platform_data/keypad-pxa27x.h>
|
||||
#include <linux/i2c.h>
|
||||
|
@ -49,6 +50,10 @@ static unsigned long teton_bga_pin_config[] __initdata = {
|
|||
GPIO78_GPIO,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static unsigned int teton_bga_matrix_key_map[] = {
|
||||
KEY(0, 6, KEY_ESC),
|
||||
KEY(0, 7, KEY_ENTER),
|
||||
|
@ -79,6 +84,8 @@ static void __init teton_bga_init(void)
|
|||
pxa168_add_uart(1);
|
||||
pxa168_add_keypad(&teton_bga_keypad_info);
|
||||
pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(teton_bga_i2c_info));
|
||||
platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_device_register(&pxa168_device_gpio);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/i2c/pca953x.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/mfd/88pm860x.h>
|
||||
#include <linux/platform_data/mv_usb.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
@ -75,6 +76,10 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
|
|||
DF_RDY0_DF_RDY0,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
|
||||
.irq_base = MMP_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct mtd_partition ttc_dkb_onenand_partitions[] = {
|
||||
{
|
||||
.name = "bootloader",
|
||||
|
@ -278,6 +283,8 @@ static void __init ttc_dkb_init(void)
|
|||
|
||||
/* off-chip devices */
|
||||
pxa910_add_twsi(0, NULL, ARRAY_AND_SIZE(ttc_dkb_i2c_info));
|
||||
platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
|
||||
sizeof(struct pxa_gpio_platform_data));
|
||||
platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
|
||||
|
||||
#ifdef CONFIG_USB_MV_UDC
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* FIXME correct answer depends on hmc_mode,
|
||||
* as does (on omap1) any nonzero value for config->otg port number
|
||||
*/
|
||||
#ifdef CONFIG_USB_GADGET_OMAP
|
||||
#if IS_ENABLED(CONFIG_USB_OMAP)
|
||||
#define is_usb0_device(config) 1
|
||||
#else
|
||||
#define is_usb0_device(config) 0
|
||||
|
|
|
@ -123,7 +123,7 @@ omap_otg_init(struct omap_usb_config *config)
|
|||
syscon = omap_readl(OTG_SYSCON_1);
|
||||
syscon |= HST_IDLE_EN|DEV_IDLE_EN|OTG_IDLE_EN;
|
||||
|
||||
#ifdef CONFIG_USB_GADGET_OMAP
|
||||
#if IS_ENABLED(CONFIG_USB_OMAP)
|
||||
if (config->otg || config->register_dev) {
|
||||
struct platform_device *udc_device = config->udc_device;
|
||||
int status;
|
||||
|
@ -169,7 +169,7 @@ omap_otg_init(struct omap_usb_config *config)
|
|||
void omap_otg_init(struct omap_usb_config *config) {}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_GADGET_OMAP
|
||||
#if IS_ENABLED(CONFIG_USB_OMAP)
|
||||
|
||||
static struct resource udc_resources[] = {
|
||||
/* order is significant! */
|
||||
|
@ -600,7 +600,7 @@ static void __init omap_1510_usb_init(struct omap_usb_config *config)
|
|||
while (!(omap_readw(ULPD_DPLL_CTRL) & DPLL_LOCK))
|
||||
cpu_relax();
|
||||
|
||||
#ifdef CONFIG_USB_GADGET_OMAP
|
||||
#if IS_ENABLED(CONFIG_USB_OMAP)
|
||||
if (config->register_dev) {
|
||||
int status;
|
||||
|
||||
|
|
|
@ -229,7 +229,6 @@ obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o
|
|||
obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o
|
||||
obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o
|
||||
obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o
|
||||
obj-$(CONFIG_MACH_ENCORE) += board-omap3encore.o
|
||||
obj-$(CONFIG_MACH_OVERO) += board-overo.o
|
||||
obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o
|
||||
obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o
|
||||
|
@ -255,8 +254,6 @@ obj-$(CONFIG_MACH_TOUCHBOOK) += board-omap3touchbook.o
|
|||
obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o
|
||||
obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o
|
||||
|
||||
obj-$(CONFIG_MACH_PCM049) += board-omap4pcm049.o
|
||||
|
||||
obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
|
||||
|
||||
obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o
|
||||
|
|
|
@ -291,6 +291,10 @@ static struct platform_device sdp4430_leds_pwm = {
|
|||
},
|
||||
};
|
||||
|
||||
/* Dummy regulator for pwm-backlight driver */
|
||||
static struct regulator_consumer_supply backlight_supply =
|
||||
REGULATOR_SUPPLY("enable", "pwm-backlight");
|
||||
|
||||
static struct platform_pwm_backlight_data sdp4430_backlight_data = {
|
||||
.max_brightness = 127,
|
||||
.dft_brightness = 127,
|
||||
|
@ -718,6 +722,8 @@ static void __init omap_4430sdp_init(void)
|
|||
|
||||
omap4_i2c_init();
|
||||
omap_sfh7741prox_init();
|
||||
regulator_register_always_on(0, "backlight-enable",
|
||||
&backlight_supply, 1, 0);
|
||||
platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
|
||||
omap_serial_init();
|
||||
omap_sdrc_init(NULL, NULL);
|
||||
|
|
|
@ -547,12 +547,16 @@ static struct regulator_consumer_supply rx51_vio_supplies[] = {
|
|||
REGULATOR_SUPPLY("DVDD", "2-0019"),
|
||||
/* Si4713 IO supply */
|
||||
REGULATOR_SUPPLY("vio", "2-0063"),
|
||||
/* lis3lv02d */
|
||||
REGULATOR_SUPPLY("Vdd_IO", "3-001d"),
|
||||
};
|
||||
|
||||
static struct regulator_consumer_supply rx51_vaux1_consumers[] = {
|
||||
REGULATOR_SUPPLY("vdds_sdi", "omapdss"),
|
||||
/* Si4713 supply */
|
||||
REGULATOR_SUPPLY("vdd", "2-0063"),
|
||||
/* lis3lv02d */
|
||||
REGULATOR_SUPPLY("Vdd", "3-001d"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data rx51_vaux1 = {
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/platform_data/spi-omap2-mcspi.h>
|
||||
#include <video/omapdss.h>
|
||||
|
@ -49,59 +48,6 @@ static void zoom_panel_disable_lcd(struct omap_dss_device *dssdev)
|
|||
{
|
||||
}
|
||||
|
||||
/* Register offsets in TWL4030_MODULE_INTBR */
|
||||
#define TWL_INTBR_PMBR1 0xD
|
||||
#define TWL_INTBR_GPBR1 0xC
|
||||
|
||||
/* Register offsets in TWL_MODULE_PWM */
|
||||
#define TWL_LED_PWMON 0x3
|
||||
#define TWL_LED_PWMOFF 0x4
|
||||
|
||||
static int zoom_set_bl_intensity(struct omap_dss_device *dssdev, int level)
|
||||
{
|
||||
#ifdef CONFIG_TWL4030_CORE
|
||||
unsigned char c;
|
||||
u8 mux_pwm, enb_pwm;
|
||||
|
||||
if (level > 100)
|
||||
return -1;
|
||||
|
||||
twl_i2c_read_u8(TWL4030_MODULE_INTBR, &mux_pwm, TWL_INTBR_PMBR1);
|
||||
twl_i2c_read_u8(TWL4030_MODULE_INTBR, &enb_pwm, TWL_INTBR_GPBR1);
|
||||
|
||||
if (level == 0) {
|
||||
/* disable pwm1 output and clock */
|
||||
enb_pwm = enb_pwm & 0xF5;
|
||||
/* change pwm1 pin to gpio pin */
|
||||
mux_pwm = mux_pwm & 0xCF;
|
||||
twl_i2c_write_u8(TWL4030_MODULE_INTBR,
|
||||
enb_pwm, TWL_INTBR_GPBR1);
|
||||
twl_i2c_write_u8(TWL4030_MODULE_INTBR,
|
||||
mux_pwm, TWL_INTBR_PMBR1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!((enb_pwm & 0xA) && (mux_pwm & 0x30))) {
|
||||
/* change gpio pin to pwm1 pin */
|
||||
mux_pwm = mux_pwm | 0x30;
|
||||
/* enable pwm1 output and clock*/
|
||||
enb_pwm = enb_pwm | 0x0A;
|
||||
twl_i2c_write_u8(TWL4030_MODULE_INTBR,
|
||||
mux_pwm, TWL_INTBR_PMBR1);
|
||||
twl_i2c_write_u8(TWL4030_MODULE_INTBR,
|
||||
enb_pwm, TWL_INTBR_GPBR1);
|
||||
}
|
||||
|
||||
c = ((50 * (100 - level)) / 100) + 1;
|
||||
twl_i2c_write_u8(TWL_MODULE_PWM, 0x7F, TWL_LED_PWMOFF);
|
||||
twl_i2c_write_u8(TWL_MODULE_PWM, c, TWL_LED_PWMON);
|
||||
#else
|
||||
pr_warn("Backlight not enabled\n");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct omap_dss_device zoom_lcd_device = {
|
||||
.name = "lcd",
|
||||
.driver_name = "NEC_8048_panel",
|
||||
|
@ -109,8 +55,6 @@ static struct omap_dss_device zoom_lcd_device = {
|
|||
.phy.dpi.data_lines = 24,
|
||||
.platform_enable = zoom_panel_enable_lcd,
|
||||
.platform_disable = zoom_panel_disable_lcd,
|
||||
.max_backlight_level = 100,
|
||||
.set_backlight = zoom_set_bl_intensity,
|
||||
};
|
||||
|
||||
static struct omap_dss_device *zoom_dss_devices[] = {
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
#include <linux/platform_data/gpio-omap.h>
|
||||
#include <linux/platform_data/omap-twl4030.h>
|
||||
#include <linux/usb/phy.h>
|
||||
#include <linux/pwm.h>
|
||||
#include <linux/leds_pwm.h>
|
||||
#include <linux/pwm_backlight.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -193,6 +196,53 @@ static struct platform_device omap_vwlan_device = {
|
|||
},
|
||||
};
|
||||
|
||||
static struct pwm_lookup zoom_pwm_lookup[] = {
|
||||
PWM_LOOKUP("twl-pwm", 0, "leds_pwm", "zoom::keypad"),
|
||||
PWM_LOOKUP("twl-pwm", 1, "pwm-backlight", "backlight"),
|
||||
};
|
||||
|
||||
static struct led_pwm zoom_pwm_leds[] = {
|
||||
{
|
||||
.name = "zoom::keypad",
|
||||
.max_brightness = 127,
|
||||
.pwm_period_ns = 7812500,
|
||||
},
|
||||
};
|
||||
|
||||
static struct led_pwm_platform_data zoom_pwm_data = {
|
||||
.num_leds = ARRAY_SIZE(zoom_pwm_leds),
|
||||
.leds = zoom_pwm_leds,
|
||||
};
|
||||
|
||||
static struct platform_device zoom_leds_pwm = {
|
||||
.name = "leds_pwm",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &zoom_pwm_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_pwm_backlight_data zoom_backlight_data = {
|
||||
.pwm_id = 1,
|
||||
.max_brightness = 127,
|
||||
.dft_brightness = 127,
|
||||
.pwm_period_ns = 7812500,
|
||||
};
|
||||
|
||||
static struct platform_device zoom_backlight_pwm = {
|
||||
.name = "pwm-backlight",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &zoom_backlight_data,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_device *zoom_devices[] __initdata = {
|
||||
&omap_vwlan_device,
|
||||
&zoom_leds_pwm,
|
||||
&zoom_backlight_pwm,
|
||||
};
|
||||
|
||||
static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = {
|
||||
.board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */
|
||||
};
|
||||
|
@ -301,7 +351,8 @@ void __init zoom_peripherals_init(void)
|
|||
|
||||
omap_hsmmc_init(mmc);
|
||||
omap_i2c_init();
|
||||
platform_device_register(&omap_vwlan_device);
|
||||
pwm_add_table(zoom_pwm_lookup, ARRAY_SIZE(zoom_pwm_lookup));
|
||||
platform_add_devices(zoom_devices, ARRAY_SIZE(zoom_devices));
|
||||
usb_bind_phy("musb-hdrc.0.auto", 0, "twl4030_usb");
|
||||
usb_musb_init(NULL);
|
||||
enable_board_wakeup_source();
|
||||
|
|
|
@ -51,11 +51,13 @@ config MACH_LITTLETON
|
|||
config MACH_TAVOREVB
|
||||
bool "PXA930 Evaluation Board (aka TavorEVB)"
|
||||
select CPU_PXA930
|
||||
select CPU_PXA935
|
||||
select PXA3xx
|
||||
|
||||
config MACH_SAAR
|
||||
bool "PXA930 Handheld Platform (aka SAAR)"
|
||||
select CPU_PXA930
|
||||
select CPU_PXA935
|
||||
select PXA3xx
|
||||
|
||||
comment "Third Party Dev Platforms (sorted by vendor name)"
|
||||
|
|
|
@ -1107,8 +1107,33 @@ struct resource pxa_resource_gpio[] = {
|
|||
},
|
||||
};
|
||||
|
||||
struct platform_device pxa_device_gpio = {
|
||||
.name = "pxa-gpio",
|
||||
struct platform_device pxa25x_device_gpio = {
|
||||
#ifdef CONFIG_CPU_PXA26x
|
||||
.name = "pxa26x-gpio",
|
||||
#else
|
||||
.name = "pxa25x-gpio",
|
||||
#endif
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(pxa_resource_gpio),
|
||||
.resource = pxa_resource_gpio,
|
||||
};
|
||||
|
||||
struct platform_device pxa27x_device_gpio = {
|
||||
.name = "pxa27x-gpio",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(pxa_resource_gpio),
|
||||
.resource = pxa_resource_gpio,
|
||||
};
|
||||
|
||||
struct platform_device pxa3xx_device_gpio = {
|
||||
.name = "pxa3xx-gpio",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(pxa_resource_gpio),
|
||||
.resource = pxa_resource_gpio,
|
||||
};
|
||||
|
||||
struct platform_device pxa93x_device_gpio = {
|
||||
.name = "pxa93x-gpio",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(pxa_resource_gpio),
|
||||
.resource = pxa_resource_gpio,
|
||||
|
|
|
@ -16,7 +16,6 @@ extern struct platform_device pxa_device_ficp;
|
|||
extern struct platform_device sa1100_device_rtc;
|
||||
extern struct platform_device pxa_device_rtc;
|
||||
extern struct platform_device pxa_device_ac97;
|
||||
extern struct platform_device pxa_device_gpio;
|
||||
|
||||
extern struct platform_device pxa27x_device_i2c_power;
|
||||
extern struct platform_device pxa27x_device_ohci;
|
||||
|
@ -46,4 +45,9 @@ extern struct platform_device pxa_device_asoc_ssp2;
|
|||
extern struct platform_device pxa_device_asoc_ssp3;
|
||||
extern struct platform_device pxa_device_asoc_ssp4;
|
||||
|
||||
extern struct platform_device pxa25x_device_gpio;
|
||||
extern struct platform_device pxa27x_device_gpio;
|
||||
extern struct platform_device pxa3xx_device_gpio;
|
||||
extern struct platform_device pxa93x_device_gpio;
|
||||
|
||||
void __init pxa_register_device(struct platform_device *dev, void *data);
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
/* arch/arm/mach-pxa/include/mach/debug-macro.S
|
||||
*
|
||||
* Debugging macro include header
|
||||
*
|
||||
* Copyright (C) 1994-1999 Russell King
|
||||
* Moved from linux/arch/arm/kernel/debug.S by Ben Dooks
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hardware.h"
|
||||
|
||||
.macro addruart, rp, rv, tmp
|
||||
mov \rp, #0x00100000
|
||||
orr \rv, \rp, #io_p2v(0x40000000) @ virtual
|
||||
orr \rp, \rp, #0x40000000 @ physical
|
||||
.endm
|
||||
|
||||
#define UART_SHIFT 2
|
||||
#include <asm/hardware/debug-8250.S>
|
|
@ -208,7 +208,11 @@ static struct clk_lookup pxa25x_clkregs[] = {
|
|||
INIT_CLKREG(&clk_pxa25x_gpio11, NULL, "GPIO11_CLK"),
|
||||
INIT_CLKREG(&clk_pxa25x_gpio12, NULL, "GPIO12_CLK"),
|
||||
INIT_CLKREG(&clk_pxa25x_mem, "pxa2xx-pcmcia", NULL),
|
||||
INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
|
||||
#ifdef CONFIG_CPU_PXA26x
|
||||
INIT_CLKREG(&clk_dummy, "pxa26x-gpio", NULL),
|
||||
#else
|
||||
INIT_CLKREG(&clk_dummy, "pxa25x-gpio", NULL),
|
||||
#endif
|
||||
INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
|
||||
};
|
||||
|
||||
|
@ -340,7 +344,8 @@ void __init pxa25x_map_io(void)
|
|||
}
|
||||
|
||||
static struct pxa_gpio_platform_data pxa25x_gpio_info __initdata = {
|
||||
.gpio_set_wake = gpio_set_wake,
|
||||
.irq_base = PXA_GPIO_TO_IRQ(0),
|
||||
.gpio_set_wake = gpio_set_wake,
|
||||
};
|
||||
|
||||
static struct platform_device *pxa25x_devices[] __initdata = {
|
||||
|
@ -375,7 +380,7 @@ static int __init pxa25x_init(void)
|
|||
register_syscore_ops(&pxa2xx_mfp_syscore_ops);
|
||||
register_syscore_ops(&pxa2xx_clock_syscore_ops);
|
||||
|
||||
pxa_register_device(&pxa_device_gpio, &pxa25x_gpio_info);
|
||||
pxa_register_device(&pxa25x_device_gpio, &pxa25x_gpio_info);
|
||||
ret = platform_add_devices(pxa25x_devices,
|
||||
ARRAY_SIZE(pxa25x_devices));
|
||||
if (ret)
|
||||
|
|
|
@ -237,7 +237,7 @@ static struct clk_lookup pxa27x_clkregs[] = {
|
|||
INIT_CLKREG(&clk_pxa27x_im, NULL, "IMCLK"),
|
||||
INIT_CLKREG(&clk_pxa27x_memc, NULL, "MEMCLK"),
|
||||
INIT_CLKREG(&clk_pxa27x_mem, "pxa2xx-pcmcia", NULL),
|
||||
INIT_CLKREG(&clk_dummy, "pxa-gpio", NULL),
|
||||
INIT_CLKREG(&clk_dummy, "pxa27x-gpio", NULL),
|
||||
INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
|
||||
};
|
||||
|
||||
|
@ -431,7 +431,8 @@ void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
|
|||
}
|
||||
|
||||
static struct pxa_gpio_platform_data pxa27x_gpio_info __initdata = {
|
||||
.gpio_set_wake = gpio_set_wake,
|
||||
.irq_base = PXA_GPIO_TO_IRQ(0),
|
||||
.gpio_set_wake = gpio_set_wake,
|
||||
};
|
||||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
|
@ -470,7 +471,7 @@ static int __init pxa27x_init(void)
|
|||
register_syscore_ops(&pxa2xx_mfp_syscore_ops);
|
||||
register_syscore_ops(&pxa2xx_clock_syscore_ops);
|
||||
|
||||
pxa_register_device(&pxa_device_gpio, &pxa27x_gpio_info);
|
||||
pxa_register_device(&pxa27x_device_gpio, &pxa27x_gpio_info);
|
||||
ret = platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/irq.h>
|
||||
|
@ -92,7 +93,8 @@ static struct clk_lookup pxa3xx_clkregs[] = {
|
|||
INIT_CLKREG(&clk_pxa3xx_mmc1, "pxa2xx-mci.0", NULL),
|
||||
INIT_CLKREG(&clk_pxa3xx_mmc2, "pxa2xx-mci.1", NULL),
|
||||
INIT_CLKREG(&clk_pxa3xx_smemc, "pxa2xx-pcmcia", NULL),
|
||||
INIT_CLKREG(&clk_pxa3xx_gpio, "pxa-gpio", NULL),
|
||||
INIT_CLKREG(&clk_pxa3xx_gpio, "pxa3xx-gpio", NULL),
|
||||
INIT_CLKREG(&clk_pxa3xx_gpio, "pxa93x-gpio", NULL),
|
||||
INIT_CLKREG(&clk_dummy, "sa1100-rtc", NULL),
|
||||
};
|
||||
|
||||
|
@ -435,8 +437,11 @@ void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info)
|
|||
pxa_register_device(&pxa3xx_device_i2c_power, info);
|
||||
}
|
||||
|
||||
static struct pxa_gpio_platform_data pxa3xx_gpio_pdata = {
|
||||
.irq_base = PXA_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static struct platform_device *devices[] __initdata = {
|
||||
&pxa_device_gpio,
|
||||
&pxa27x_device_udc,
|
||||
&pxa_device_pmu,
|
||||
&pxa_device_i2s,
|
||||
|
@ -482,8 +487,18 @@ static int __init pxa3xx_init(void)
|
|||
register_syscore_ops(&pxa3xx_mfp_syscore_ops);
|
||||
register_syscore_ops(&pxa3xx_clock_syscore_ops);
|
||||
|
||||
if (!of_have_populated_dt())
|
||||
ret = platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
if (of_have_populated_dt())
|
||||
return 0;
|
||||
|
||||
ret = platform_add_devices(devices, ARRAY_SIZE(devices));
|
||||
if (ret)
|
||||
return ret;
|
||||
if (cpu_is_pxa300() || cpu_is_pxa310() || cpu_is_pxa320()) {
|
||||
platform_device_add_data(&pxa3xx_device_gpio,
|
||||
&pxa3xx_gpio_pdata,
|
||||
sizeof(pxa3xx_gpio_pdata));
|
||||
ret = platform_device_register(&pxa3xx_device_gpio);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -12,12 +12,15 @@
|
|||
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/gpio-pxa.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/pxa930.h>
|
||||
|
||||
#include "devices.h"
|
||||
|
||||
static struct mfp_addr_map pxa930_mfp_addr_map[] __initdata = {
|
||||
|
||||
MFP_ADDR(GPIO0, 0x02e0),
|
||||
|
@ -190,11 +193,21 @@ static struct mfp_addr_map pxa935_mfp_addr_map[] __initdata = {
|
|||
MFP_ADDR_END,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_platform_data pxa93x_gpio_pdata = {
|
||||
.irq_base = PXA_GPIO_TO_IRQ(0),
|
||||
};
|
||||
|
||||
static int __init pxa930_init(void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (cpu_is_pxa93x()) {
|
||||
mfp_init_base(io_p2v(MFPR_BASE));
|
||||
mfp_init_addr(pxa930_mfp_addr_map);
|
||||
platform_device_add_data(&pxa93x_device_gpio,
|
||||
&pxa93x_gpio_pdata,
|
||||
sizeof(pxa93x_gpio_pdata));
|
||||
ret = platform_device_register(&pxa93x_device_gpio);
|
||||
}
|
||||
|
||||
if (cpu_is_pxa935())
|
||||
|
|
|
@ -104,6 +104,19 @@ config MACH_MARZEN
|
|||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
|
||||
config MACH_MARZEN_REFERENCE
|
||||
bool "MARZEN board - Reference Device Tree Implementation"
|
||||
depends on ARCH_R8A7779
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
select USE_OF
|
||||
---help---
|
||||
Use reference implementation of Marzen board support
|
||||
which makes use of device tree at the expense
|
||||
of not supporting a number of devices.
|
||||
|
||||
This is intended to aid developers
|
||||
|
||||
config MACH_KZM9D
|
||||
bool "KZM9D board"
|
||||
depends on ARCH_EMEV2
|
||||
|
@ -118,6 +131,20 @@ config MACH_KZM9G
|
|||
select SND_SOC_AK4642 if SND_SIMPLE_CARD
|
||||
select USE_OF
|
||||
|
||||
config MACH_KZM9G_REFERENCE
|
||||
bool "KZM-A9-GT board - Reference Device Tree Implementation"
|
||||
depends on ARCH_SH73A0
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select REGULATOR_FIXED_VOLTAGE if REGULATOR
|
||||
select SND_SOC_AK4642 if SND_SIMPLE_CARD
|
||||
select USE_OF
|
||||
---help---
|
||||
Use reference implementation of KZM-A9-GT board support
|
||||
which makes as greater use of device tree at the expense
|
||||
of not supporting a number of devices.
|
||||
|
||||
This is intended to aid developers
|
||||
|
||||
comment "SH-Mobile System Configuration"
|
||||
|
||||
config CPU_HAS_INTEVT
|
||||
|
|
|
@ -38,9 +38,11 @@ obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o
|
|||
obj-$(CONFIG_MACH_KOTA2) += board-kota2.o
|
||||
obj-$(CONFIG_MACH_BONITO) += board-bonito.o
|
||||
obj-$(CONFIG_MACH_MARZEN) += board-marzen.o
|
||||
obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o
|
||||
obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o
|
||||
obj-$(CONFIG_MACH_KZM9D) += board-kzm9d.o
|
||||
obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o
|
||||
obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o
|
||||
|
||||
# Framework support
|
||||
obj-$(CONFIG_SMP) += $(smp-y)
|
||||
|
|
|
@ -29,8 +29,10 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/regulator/driver.h>
|
||||
#include <linux/pinctrl/machine.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
#include <linux/regulator/gpio-regulator.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/sh_eth.h>
|
||||
#include <linux/videodev2.h>
|
||||
|
@ -560,17 +562,121 @@ static struct platform_device gpio_keys_device = {
|
|||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI0, SDHI1, MMCIF */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.1"),
|
||||
/* Fixed 3.3V regulator to be used by SDHI1, MMCIF */
|
||||
static struct regulator_consumer_supply fixed3v3_power_consumers[] = {
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mmcif"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mmcif"),
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI0 */
|
||||
static struct regulator_consumer_supply vcc_sdhi0_consumers[] = {
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data vcc_sdhi0_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(vcc_sdhi0_consumers),
|
||||
.consumer_supplies = vcc_sdhi0_consumers,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config vcc_sdhi0_info = {
|
||||
.supply_name = "SDHI0 Vcc",
|
||||
.microvolts = 3300000,
|
||||
.gpio = GPIO_PORT75,
|
||||
.enable_high = 1,
|
||||
.init_data = &vcc_sdhi0_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device vcc_sdhi0 = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &vcc_sdhi0_info,
|
||||
},
|
||||
};
|
||||
|
||||
/* 1.8 / 3.3V SDHI0 VccQ regulator */
|
||||
static struct regulator_consumer_supply vccq_sdhi0_consumers[] = {
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data vccq_sdhi0_init_data = {
|
||||
.constraints = {
|
||||
.input_uV = 3300000,
|
||||
.min_uV = 1800000,
|
||||
.max_uV = 3300000,
|
||||
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
|
||||
REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(vccq_sdhi0_consumers),
|
||||
.consumer_supplies = vccq_sdhi0_consumers,
|
||||
};
|
||||
|
||||
static struct gpio vccq_sdhi0_gpios[] = {
|
||||
{GPIO_PORT17, GPIOF_OUT_INIT_LOW, "vccq-sdhi0" },
|
||||
};
|
||||
|
||||
static struct gpio_regulator_state vccq_sdhi0_states[] = {
|
||||
{ .value = 3300000, .gpios = (0 << 0) },
|
||||
{ .value = 1800000, .gpios = (1 << 0) },
|
||||
};
|
||||
|
||||
static struct gpio_regulator_config vccq_sdhi0_info = {
|
||||
.supply_name = "vqmmc",
|
||||
|
||||
.enable_gpio = GPIO_PORT74,
|
||||
.enable_high = 1,
|
||||
.enabled_at_boot = 0,
|
||||
|
||||
.gpios = vccq_sdhi0_gpios,
|
||||
.nr_gpios = ARRAY_SIZE(vccq_sdhi0_gpios),
|
||||
|
||||
.states = vccq_sdhi0_states,
|
||||
.nr_states = ARRAY_SIZE(vccq_sdhi0_states),
|
||||
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.init_data = &vccq_sdhi0_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device vccq_sdhi0 = {
|
||||
.name = "gpio-regulator",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &vccq_sdhi0_info,
|
||||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulator to be used by SDHI1 */
|
||||
static struct regulator_consumer_supply vcc_sdhi1_consumers[] = {
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.1"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data vcc_sdhi1_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(vcc_sdhi1_consumers),
|
||||
.consumer_supplies = vcc_sdhi1_consumers,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config vcc_sdhi1_info = {
|
||||
.supply_name = "SDHI1 Vcc",
|
||||
.microvolts = 3300000,
|
||||
.gpio = GPIO_PORT16,
|
||||
.enable_high = 1,
|
||||
.init_data = &vcc_sdhi1_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device vcc_sdhi1 = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 2,
|
||||
.dev = {
|
||||
.platform_data = &vcc_sdhi1_info,
|
||||
},
|
||||
};
|
||||
|
||||
/* SDHI0 */
|
||||
/*
|
||||
* FIXME
|
||||
|
@ -584,10 +690,10 @@ static struct regulator_consumer_supply fixed3v3_power_consumers[] =
|
|||
static struct sh_mobile_sdhi_info sdhi0_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |\
|
||||
MMC_CAP_NEEDS_POLL,
|
||||
.tmio_ocr_mask = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
|
||||
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
|
||||
MMC_CAP_POWER_OFF_CARD,
|
||||
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
|
||||
.cd_gpio = GPIO_PORT167,
|
||||
};
|
||||
|
||||
static struct resource sdhi0_resources[] = {
|
||||
|
@ -626,9 +732,11 @@ static struct platform_device sdhi0_device = {
|
|||
static struct sh_mobile_sdhi_info sdhi1_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ,
|
||||
.tmio_ocr_mask = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
|
||||
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
|
||||
MMC_CAP_POWER_OFF_CARD,
|
||||
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT | TMIO_MMC_USE_GPIO_CD,
|
||||
/* Port72 cannot generate IRQs, will be used in polling mode. */
|
||||
.cd_gpio = GPIO_PORT72,
|
||||
};
|
||||
|
||||
static struct resource sdhi1_resources[] = {
|
||||
|
@ -676,7 +784,6 @@ static const struct pinctrl_map eva_sdhi1_pinctrl_map[] = {
|
|||
/* MMCIF */
|
||||
static struct sh_mmcif_plat_data sh_mmcif_plat = {
|
||||
.sup_pclk = 0,
|
||||
.ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
|
||||
.caps = MMC_CAP_4_BIT_DATA |
|
||||
MMC_CAP_8_BIT_DATA |
|
||||
MMC_CAP_NONREMOVABLE,
|
||||
|
@ -924,6 +1031,8 @@ static struct platform_device *eva_devices[] __initdata = {
|
|||
&lcdc0_device,
|
||||
&gpio_keys_device,
|
||||
&sh_eth_device,
|
||||
&vcc_sdhi0,
|
||||
&vccq_sdhi0,
|
||||
&sdhi0_device,
|
||||
&sh_mmcif_device,
|
||||
&hdmi_device,
|
||||
|
@ -1067,13 +1176,6 @@ static void __init eva_init(void)
|
|||
usb = &usbhsf_device;
|
||||
}
|
||||
|
||||
/* SDHI0 */
|
||||
gpio_request_one(17, GPIOF_OUT_INIT_LOW, NULL); /* SDHI0_18/33_B */
|
||||
gpio_request_one(74, GPIOF_OUT_INIT_HIGH, NULL); /* SDHI0_PON */
|
||||
gpio_request_one(75, GPIOF_OUT_INIT_HIGH, NULL); /* SDSLOT1_PON */
|
||||
|
||||
/* we can use GPIO_FN_IRQ31_PORT167 here for SDHI0 CD irq */
|
||||
|
||||
/* CEU0 */
|
||||
gpio_request(GPIO_FN_VIO0_D7, NULL);
|
||||
gpio_request(GPIO_FN_VIO0_D6, NULL);
|
||||
|
@ -1134,9 +1236,7 @@ static void __init eva_init(void)
|
|||
pinctrl_register_mappings(eva_sdhi1_pinctrl_map,
|
||||
ARRAY_SIZE(eva_sdhi1_pinctrl_map));
|
||||
|
||||
/* SDSLOT2_PON */
|
||||
gpio_request_one(16, GPIOF_OUT_INIT_HIGH, NULL);
|
||||
|
||||
platform_device_register(&vcc_sdhi1);
|
||||
platform_device_register(&sdhi1_device);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
/*
|
||||
* KZM-A9-GT board support - Reference Device Tree Implementation
|
||||
*
|
||||
* Copyright (C) 2012 Horms Solutions Ltd.
|
||||
*
|
||||
* Based on board-kzm9g.c
|
||||
* Copyright (C) 2012 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqchip.h>
|
||||
#include <linux/input.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/pinctrl/machine.h>
|
||||
#include <linux/pinctrl/pinconf-generic.h>
|
||||
#include <mach/sh73a0.h>
|
||||
#include <mach/common.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
static unsigned long pin_pullup_conf[] = {
|
||||
PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_UP, 0),
|
||||
};
|
||||
|
||||
static const struct pinctrl_map kzm_pinctrl_map[] = {
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("e6826000.i2c", "pfc-sh73a0",
|
||||
"i2c3_1", "i2c3"),
|
||||
/* MMCIF */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
|
||||
"mmc0_data8_0", "mmc0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
|
||||
"mmc0_ctrl_0", "mmc0"),
|
||||
PIN_MAP_CONFIGS_PIN_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
|
||||
"PORT279", pin_pullup_conf),
|
||||
PIN_MAP_CONFIGS_GROUP_DEFAULT("e6bd0000.mmcif", "pfc-sh73a0",
|
||||
"mmc0_data8_0", pin_pullup_conf),
|
||||
/* SCIFA4 */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
|
||||
"scifa4_data", "scifa4"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-sh73a0",
|
||||
"scifa4_ctrl", "scifa4"),
|
||||
/* SDHI0 */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
|
||||
"sdhi0_data4", "sdhi0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
|
||||
"sdhi0_ctrl", "sdhi0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
|
||||
"sdhi0_cd", "sdhi0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("ee100000.sdhi", "pfc-sh73a0",
|
||||
"sdhi0_wp", "sdhi0"),
|
||||
/* SDHI2 */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0",
|
||||
"sdhi2_data4", "sdhi2"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("ee140000.sdhi", "pfc-sh73a0",
|
||||
"sdhi2_ctrl", "sdhi2"),
|
||||
};
|
||||
|
||||
static void __init kzm_init(void)
|
||||
{
|
||||
sh73a0_add_standard_devices_dt();
|
||||
pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map));
|
||||
sh73a0_pinmux_init();
|
||||
|
||||
/* enable SD */
|
||||
gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
|
||||
gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
|
||||
|
||||
gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
/* Early BRESP enable, Shared attribute override enable, 64K*8way */
|
||||
l2x0_init(IOMEM(0xf0100000), 0x40460000, 0x82000fff);
|
||||
#endif
|
||||
}
|
||||
|
||||
static const char *kzm9g_boards_compat_dt[] __initdata = {
|
||||
"renesas,kzm9g-reference",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(KZM9G_DT, "kzm9g-reference")
|
||||
.smp = smp_ops(sh73a0_smp_ops),
|
||||
.map_io = sh73a0_map_io,
|
||||
.init_early = sh73a0_init_delay,
|
||||
.nr_irqs = NR_IRQS_LEGACY,
|
||||
.init_irq = irqchip_init,
|
||||
.init_machine = kzm_init,
|
||||
.init_time = shmobile_timer_init,
|
||||
.dt_compat = kzm9g_boards_compat_dt,
|
||||
MACHINE_END
|
|
@ -63,8 +63,8 @@
|
|||
|
||||
/* Dummy supplies, where voltage doesn't matter */
|
||||
static struct regulator_consumer_supply dummy_supplies[] = {
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x"),
|
||||
REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
|
||||
REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -379,13 +379,64 @@ static struct platform_device mmc_device = {
|
|||
.resource = sh_mmcif_resources,
|
||||
};
|
||||
|
||||
/* Fixed 2.8V regulators to be used by SDHI0 and SDHI2 */
|
||||
static struct regulator_consumer_supply fixed2v8_power_consumers[] =
|
||||
/* Fixed 3.3V regulators to be used by SDHI0 */
|
||||
static struct regulator_consumer_supply vcc_sdhi0_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.0"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.0"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data vcc_sdhi0_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(vcc_sdhi0_consumers),
|
||||
.consumer_supplies = vcc_sdhi0_consumers,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config vcc_sdhi0_info = {
|
||||
.supply_name = "SDHI0 Vcc",
|
||||
.microvolts = 3300000,
|
||||
.gpio = 15,
|
||||
.enable_high = 1,
|
||||
.init_data = &vcc_sdhi0_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device vcc_sdhi0 = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
.platform_data = &vcc_sdhi0_info,
|
||||
},
|
||||
};
|
||||
|
||||
/* Fixed 3.3V regulators to be used by SDHI2 */
|
||||
static struct regulator_consumer_supply vcc_sdhi2_consumers[] =
|
||||
{
|
||||
REGULATOR_SUPPLY("vmmc", "sh_mobile_sdhi.2"),
|
||||
REGULATOR_SUPPLY("vqmmc", "sh_mobile_sdhi.2"),
|
||||
};
|
||||
|
||||
static struct regulator_init_data vcc_sdhi2_init_data = {
|
||||
.constraints = {
|
||||
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
||||
},
|
||||
.num_consumer_supplies = ARRAY_SIZE(vcc_sdhi2_consumers),
|
||||
.consumer_supplies = vcc_sdhi2_consumers,
|
||||
};
|
||||
|
||||
static struct fixed_voltage_config vcc_sdhi2_info = {
|
||||
.supply_name = "SDHI2 Vcc",
|
||||
.microvolts = 3300000,
|
||||
.gpio = 14,
|
||||
.enable_high = 1,
|
||||
.init_data = &vcc_sdhi2_init_data,
|
||||
};
|
||||
|
||||
static struct platform_device vcc_sdhi2 = {
|
||||
.name = "reg-fixed-voltage",
|
||||
.id = 1,
|
||||
.dev = {
|
||||
.platform_data = &vcc_sdhi2_info,
|
||||
},
|
||||
};
|
||||
|
||||
/* SDHI */
|
||||
|
@ -393,8 +444,8 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
|
|||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED,
|
||||
.tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ |
|
||||
MMC_CAP_POWER_OFF_CARD,
|
||||
};
|
||||
|
||||
static struct resource sdhi0_resources[] = {
|
||||
|
@ -437,8 +488,7 @@ static struct sh_mobile_sdhi_info sdhi2_info = {
|
|||
.tmio_flags = TMIO_MMC_HAS_IDLE_WAIT |
|
||||
TMIO_MMC_USE_GPIO_CD |
|
||||
TMIO_MMC_WRPROTECT_DISABLE,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED,
|
||||
.tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29,
|
||||
.tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_POWER_OFF_CARD,
|
||||
.cd_gpio = 13,
|
||||
};
|
||||
|
||||
|
@ -598,6 +648,8 @@ static struct platform_device *kzm_devices[] __initdata = {
|
|||
&usbhs_device,
|
||||
&lcdc_device,
|
||||
&mmc_device,
|
||||
&vcc_sdhi0,
|
||||
&vcc_sdhi2,
|
||||
&sdhi0_device,
|
||||
&sdhi2_device,
|
||||
&gpio_keys_device,
|
||||
|
@ -718,11 +770,9 @@ device_initcall(as3711_enable_lcdc_backlight);
|
|||
|
||||
static void __init kzm_init(void)
|
||||
{
|
||||
regulator_register_always_on(0, "fixed-1.8V", fixed1v8_power_consumers,
|
||||
regulator_register_always_on(2, "fixed-1.8V", fixed1v8_power_consumers,
|
||||
ARRAY_SIZE(fixed1v8_power_consumers), 1800000);
|
||||
regulator_register_always_on(1, "fixed-2.8V", fixed2v8_power_consumers,
|
||||
ARRAY_SIZE(fixed2v8_power_consumers), 2800000);
|
||||
regulator_register_fixed(2, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
regulator_register_fixed(3, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
||||
|
||||
pinctrl_register_mappings(kzm_pinctrl_map, ARRAY_SIZE(kzm_pinctrl_map));
|
||||
|
||||
|
@ -740,10 +790,6 @@ static void __init kzm_init(void)
|
|||
|
||||
/* enable SD */
|
||||
gpio_request(GPIO_FN_SDHI0_VCCQ_MC0_ON, NULL);
|
||||
gpio_request_one(15, GPIOF_OUT_INIT_HIGH, NULL); /* power */
|
||||
|
||||
/* enable Micro SD */
|
||||
gpio_request_one(14, GPIOF_OUT_INIT_HIGH, NULL); /* power */
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
/* Early BRESP enable, Shared attribute override enable, 64K*8way */
|
||||
|
|
|
@ -1149,7 +1149,7 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = {
|
|||
.slave_id_rx = SHDMA_SLAVE_MMCIF_RX,
|
||||
};
|
||||
|
||||
static struct platform_device sh_mmcif_device = {
|
||||
static struct platform_device sh_mmcif_device __maybe_unused = {
|
||||
.name = "sh_mmcif",
|
||||
.id = 0,
|
||||
.dev = {
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
* marzen board support - Reference DT implementation
|
||||
*
|
||||
* Copyright (C) 2011 Renesas Solutions Corp.
|
||||
* Copyright (C) 2011 Magnus Damm
|
||||
* Copyright (C) 2013 Simon Horman
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <linux/pinctrl/machine.h>
|
||||
#include <mach/r8a7779.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
static const struct pinctrl_map marzen_pinctrl_map[] = {
|
||||
/* SCIF2 (CN18: DEBUG0) */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.2", "pfc-r8a7779",
|
||||
"scif2_data_c", "scif2"),
|
||||
/* SCIF4 (CN19: DEBUG1) */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.4", "pfc-r8a7779",
|
||||
"scif4_data", "scif4"),
|
||||
/* SDHI0 */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
|
||||
"sdhi0_data4", "sdhi0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
|
||||
"sdhi0_ctrl", "sdhi0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
|
||||
"sdhi0_cd", "sdhi0"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("sh_mobile_sdhi.0", "pfc-r8a7779",
|
||||
"sdhi0_wp", "sdhi0"),
|
||||
/* SMSC */
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
|
||||
"intc_irq1_b", "intc"),
|
||||
PIN_MAP_MUX_GROUP_DEFAULT("smsc911x", "pfc-r8a7779",
|
||||
"lbsc_ex_cs0", "lbsc"),
|
||||
};
|
||||
|
||||
static void __init marzen_init(void)
|
||||
{
|
||||
pinctrl_register_mappings(marzen_pinctrl_map,
|
||||
ARRAY_SIZE(marzen_pinctrl_map));
|
||||
r8a7779_pinmux_init();
|
||||
|
||||
r8a7779_add_standard_devices_dt();
|
||||
}
|
||||
|
||||
static const char *marzen_boards_compat_dt[] __initdata = {
|
||||
"renesas,marzen-reference",
|
||||
NULL,
|
||||
};
|
||||
|
||||
DT_MACHINE_START(MARZEN, "marzen")
|
||||
.smp = smp_ops(r8a7779_smp_ops),
|
||||
.map_io = r8a7779_map_io,
|
||||
.init_early = r8a7779_init_delay,
|
||||
.nr_irqs = NR_IRQS_LEGACY,
|
||||
.init_irq = r8a7779_init_irq_dt,
|
||||
.init_machine = marzen_init,
|
||||
.init_time = shmobile_timer_init,
|
||||
.dt_compat = marzen_boards_compat_dt,
|
||||
MACHINE_END
|
|
@ -67,7 +67,7 @@ static struct resource smsc911x_resources[] = {
|
|||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = gic_spi(28), /* IRQ 1 */
|
||||
.start = gic_iid(0x3c), /* IRQ 1 */
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
@ -97,7 +97,7 @@ static struct resource sdhi0_resources[] = {
|
|||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = gic_spi(104),
|
||||
.start = gic_iid(0x88),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
@ -215,7 +215,7 @@ static struct resource ehci0_resources[] = {
|
|||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = gic_spi(44),
|
||||
.start = gic_iid(0x4c),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
@ -239,7 +239,7 @@ static struct resource ehci1_resources[] = {
|
|||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = gic_spi(45),
|
||||
.start = gic_iid(0x4d),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
@ -269,7 +269,7 @@ static struct resource ohci0_resources[] = {
|
|||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = gic_spi(44),
|
||||
.start = gic_iid(0x4c),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
@ -293,7 +293,7 @@ static struct resource ohci1_resources[] = {
|
|||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = gic_spi(45),
|
||||
.start = gic_iid(0x4d),
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
|
|
@ -221,7 +221,7 @@ void __init mmp2_clk_init(void)
|
|||
|
||||
clk = mmp_clk_register_apbc("gpio", "vctcxo",
|
||||
apbc_base + APBC_GPIO, 10, 0, &clk_lock);
|
||||
clk_register_clkdev(clk, NULL, "pxa-gpio");
|
||||
clk_register_clkdev(clk, NULL, "mmp2-gpio");
|
||||
|
||||
clk = mmp_clk_register_apbc("kpc", "clk32",
|
||||
apbc_base + APBC_KPC, 10, 0, &clk_lock);
|
||||
|
|
|
@ -172,7 +172,7 @@ void __init pxa168_clk_init(void)
|
|||
|
||||
clk = mmp_clk_register_apbc("gpio", "vctcxo",
|
||||
apbc_base + APBC_GPIO, 10, 0, &clk_lock);
|
||||
clk_register_clkdev(clk, NULL, "pxa-gpio");
|
||||
clk_register_clkdev(clk, NULL, "mmp-gpio");
|
||||
|
||||
clk = mmp_clk_register_apbc("kpc", "clk32",
|
||||
apbc_base + APBC_KPC, 10, 0, &clk_lock);
|
||||
|
|
|
@ -177,7 +177,7 @@ void __init pxa910_clk_init(void)
|
|||
|
||||
clk = mmp_clk_register_apbc("gpio", "vctcxo",
|
||||
apbc_base + APBC_GPIO, 10, 0, &clk_lock);
|
||||
clk_register_clkdev(clk, NULL, "pxa-gpio");
|
||||
clk_register_clkdev(clk, NULL, "mmp-gpio");
|
||||
|
||||
clk = mmp_clk_register_apbc("kpc", "clk32",
|
||||
apbc_base + APBC_KPC, 10, 0, &clk_lock);
|
||||
|
|
|
@ -85,20 +85,61 @@ struct pxa_gpio_chip {
|
|||
#endif
|
||||
};
|
||||
|
||||
enum {
|
||||
enum pxa_gpio_type {
|
||||
PXA25X_GPIO = 0,
|
||||
PXA26X_GPIO,
|
||||
PXA27X_GPIO,
|
||||
PXA3XX_GPIO,
|
||||
PXA93X_GPIO,
|
||||
MMP_GPIO = 0x10,
|
||||
MMP2_GPIO,
|
||||
};
|
||||
|
||||
struct pxa_gpio_id {
|
||||
enum pxa_gpio_type type;
|
||||
int gpio_nums;
|
||||
};
|
||||
|
||||
static DEFINE_SPINLOCK(gpio_lock);
|
||||
static struct pxa_gpio_chip *pxa_gpio_chips;
|
||||
static int gpio_type;
|
||||
static enum pxa_gpio_type gpio_type;
|
||||
static void __iomem *gpio_reg_base;
|
||||
|
||||
static struct pxa_gpio_id pxa25x_id = {
|
||||
.type = PXA25X_GPIO,
|
||||
.gpio_nums = 85,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_id pxa26x_id = {
|
||||
.type = PXA26X_GPIO,
|
||||
.gpio_nums = 90,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_id pxa27x_id = {
|
||||
.type = PXA27X_GPIO,
|
||||
.gpio_nums = 121,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_id pxa3xx_id = {
|
||||
.type = PXA3XX_GPIO,
|
||||
.gpio_nums = 128,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_id pxa93x_id = {
|
||||
.type = PXA93X_GPIO,
|
||||
.gpio_nums = 192,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_id mmp_id = {
|
||||
.type = MMP_GPIO,
|
||||
.gpio_nums = 128,
|
||||
};
|
||||
|
||||
static struct pxa_gpio_id mmp2_id = {
|
||||
.type = MMP2_GPIO,
|
||||
.gpio_nums = 192,
|
||||
};
|
||||
|
||||
#define for_each_gpio_chip(i, c) \
|
||||
for (i = 0, c = &pxa_gpio_chips[0]; i <= pxa_last_gpio; i += 32, c++)
|
||||
|
||||
|
@ -431,47 +472,39 @@ static struct irq_chip pxa_muxed_gpio_chip = {
|
|||
.irq_set_wake = pxa_gpio_set_wake,
|
||||
};
|
||||
|
||||
static int pxa_gpio_nums(void)
|
||||
static int pxa_gpio_nums(struct platform_device *pdev)
|
||||
{
|
||||
const struct platform_device_id *id = platform_get_device_id(pdev);
|
||||
struct pxa_gpio_id *pxa_id = (struct pxa_gpio_id *)id->driver_data;
|
||||
int count = 0;
|
||||
|
||||
#ifdef CONFIG_ARCH_PXA
|
||||
if (cpu_is_pxa25x()) {
|
||||
#ifdef CONFIG_CPU_PXA26x
|
||||
count = 89;
|
||||
gpio_type = PXA26X_GPIO;
|
||||
#elif defined(CONFIG_PXA25x)
|
||||
count = 84;
|
||||
gpio_type = PXA26X_GPIO;
|
||||
#endif /* CONFIG_CPU_PXA26x */
|
||||
} else if (cpu_is_pxa27x()) {
|
||||
count = 120;
|
||||
gpio_type = PXA27X_GPIO;
|
||||
} else if (cpu_is_pxa93x()) {
|
||||
count = 191;
|
||||
gpio_type = PXA93X_GPIO;
|
||||
} else if (cpu_is_pxa3xx()) {
|
||||
count = 127;
|
||||
gpio_type = PXA3XX_GPIO;
|
||||
switch (pxa_id->type) {
|
||||
case PXA25X_GPIO:
|
||||
case PXA26X_GPIO:
|
||||
case PXA27X_GPIO:
|
||||
case PXA3XX_GPIO:
|
||||
case PXA93X_GPIO:
|
||||
case MMP_GPIO:
|
||||
case MMP2_GPIO:
|
||||
gpio_type = pxa_id->type;
|
||||
count = pxa_id->gpio_nums - 1;
|
||||
break;
|
||||
default:
|
||||
count = -EINVAL;
|
||||
break;
|
||||
}
|
||||
#endif /* CONFIG_ARCH_PXA */
|
||||
|
||||
#ifdef CONFIG_ARCH_MMP
|
||||
if (cpu_is_pxa168() || cpu_is_pxa910()) {
|
||||
count = 127;
|
||||
gpio_type = MMP_GPIO;
|
||||
} else if (cpu_is_mmp2()) {
|
||||
count = 191;
|
||||
gpio_type = MMP_GPIO;
|
||||
}
|
||||
#endif /* CONFIG_ARCH_MMP */
|
||||
return count;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static struct of_device_id pxa_gpio_dt_ids[] = {
|
||||
{ .compatible = "mrvl,pxa-gpio" },
|
||||
{ .compatible = "mrvl,mmp-gpio", .data = (void *)MMP_GPIO },
|
||||
{ .compatible = "intel,pxa25x-gpio", .data = &pxa25x_id, },
|
||||
{ .compatible = "intel,pxa26x-gpio", .data = &pxa26x_id, },
|
||||
{ .compatible = "intel,pxa27x-gpio", .data = &pxa27x_id, },
|
||||
{ .compatible = "intel,pxa3xx-gpio", .data = &pxa3xx_id, },
|
||||
{ .compatible = "marvell,pxa93x-gpio", .data = &pxa93x_id, },
|
||||
{ .compatible = "marvell,mmp-gpio", .data = &mmp_id, },
|
||||
{ .compatible = "marvell,mmp2-gpio", .data = &mmp2_id, },
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -491,16 +524,18 @@ const struct irq_domain_ops pxa_irq_domain_ops = {
|
|||
|
||||
static int pxa_gpio_probe_dt(struct platform_device *pdev)
|
||||
{
|
||||
int ret, nr_banks, nr_gpios;
|
||||
int ret, nr_gpios;
|
||||
struct device_node *prev, *next, *np = pdev->dev.of_node;
|
||||
const struct of_device_id *of_id =
|
||||
of_match_device(pxa_gpio_dt_ids, &pdev->dev);
|
||||
const struct pxa_gpio_id *gpio_id;
|
||||
|
||||
if (!of_id) {
|
||||
if (!of_id || !of_id->data) {
|
||||
dev_err(&pdev->dev, "Failed to find gpio controller\n");
|
||||
return -EFAULT;
|
||||
}
|
||||
gpio_type = (int)of_id->data;
|
||||
gpio_id = of_id->data;
|
||||
gpio_type = gpio_id->type;
|
||||
|
||||
next = of_get_next_child(np, NULL);
|
||||
prev = next;
|
||||
|
@ -509,14 +544,8 @@ static int pxa_gpio_probe_dt(struct platform_device *pdev)
|
|||
ret = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
for (nr_banks = 1; ; nr_banks++) {
|
||||
next = of_get_next_child(np, prev);
|
||||
if (!next)
|
||||
break;
|
||||
prev = next;
|
||||
}
|
||||
of_node_put(prev);
|
||||
nr_gpios = nr_banks << 5;
|
||||
nr_gpios = gpio_id->gpio_nums;
|
||||
pxa_last_gpio = nr_gpios - 1;
|
||||
|
||||
irq_base = irq_alloc_descs(-1, 0, nr_gpios, 0);
|
||||
|
@ -545,19 +574,18 @@ static int pxa_gpio_probe(struct platform_device *pdev)
|
|||
int gpio, irq, ret, use_of = 0;
|
||||
int irq0 = 0, irq1 = 0, irq_mux, gpio_offset = 0;
|
||||
|
||||
ret = pxa_gpio_probe_dt(pdev);
|
||||
if (ret < 0) {
|
||||
pxa_last_gpio = pxa_gpio_nums();
|
||||
#ifdef CONFIG_ARCH_PXA
|
||||
if (gpio_is_pxa_type(gpio_type))
|
||||
irq_base = PXA_GPIO_TO_IRQ(0);
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_MMP
|
||||
if (gpio_is_mmp_type(gpio_type))
|
||||
irq_base = MMP_GPIO_TO_IRQ(0);
|
||||
#endif
|
||||
info = dev_get_platdata(&pdev->dev);
|
||||
if (info) {
|
||||
irq_base = info->irq_base;
|
||||
if (irq_base <= 0)
|
||||
return -EINVAL;
|
||||
pxa_last_gpio = pxa_gpio_nums(pdev);
|
||||
} else {
|
||||
irq_base = 0;
|
||||
use_of = 1;
|
||||
ret = pxa_gpio_probe_dt(pdev);
|
||||
if (ret < 0)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!pxa_last_gpio)
|
||||
|
@ -594,7 +622,6 @@ static int pxa_gpio_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
/* Initialize GPIO chips */
|
||||
info = dev_get_platdata(&pdev->dev);
|
||||
pxa_init_gpio_chip(pxa_last_gpio, info ? info->gpio_set_wake : NULL);
|
||||
|
||||
/* clear all GPIO edge detects */
|
||||
|
@ -634,12 +661,24 @@ static int pxa_gpio_probe(struct platform_device *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct platform_device_id gpio_id_table[] = {
|
||||
{ "pxa25x-gpio", (unsigned long)&pxa25x_id },
|
||||
{ "pxa26x-gpio", (unsigned long)&pxa26x_id },
|
||||
{ "pxa27x-gpio", (unsigned long)&pxa27x_id },
|
||||
{ "pxa3xx-gpio", (unsigned long)&pxa3xx_id },
|
||||
{ "pxa93x-gpio", (unsigned long)&pxa93x_id },
|
||||
{ "mmp-gpio", (unsigned long)&mmp_id },
|
||||
{ "mmp2-gpio", (unsigned long)&mmp2_id },
|
||||
{ },
|
||||
};
|
||||
|
||||
static struct platform_driver pxa_gpio_driver = {
|
||||
.probe = pxa_gpio_probe,
|
||||
.driver = {
|
||||
.name = "pxa-gpio",
|
||||
.of_match_table = of_match_ptr(pxa_gpio_dt_ids),
|
||||
},
|
||||
.id_table = gpio_id_table,
|
||||
};
|
||||
|
||||
static int __init pxa_gpio_init(void)
|
||||
|
|
|
@ -14,6 +14,7 @@ extern int pxa_last_gpio;
|
|||
extern int pxa_irq_to_gpio(int irq);
|
||||
|
||||
struct pxa_gpio_platform_data {
|
||||
int irq_base;
|
||||
int (*gpio_set_wake)(unsigned int gpio, unsigned int on);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue