diff options
Diffstat (limited to 'arch/arm/mach-orion5x/ts78xx-setup.c')
-rw-r--r-- | arch/arm/mach-orion5x/ts78xx-setup.c | 55 |
1 files changed, 24 insertions, 31 deletions
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c index c96f37472eda..b4203277f3cd 100644 --- a/arch/arm/mach-orion5x/ts78xx-setup.c +++ b/arch/arm/mach-orion5x/ts78xx-setup.c @@ -8,6 +8,8 @@ * warranty of any kind, whether express or implied. */ +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include <linux/kernel.h> #include <linux/init.h> #include <linux/sysfs.h> @@ -115,7 +117,7 @@ static struct platform_device ts78xx_ts_rtc_device = { * I've used the method TS use in their rtc7800.c example for the detection * * TODO: track down a guinea pig without an RTC to see if we can work out a - * better RTC detection routine + * better RTC detection routine */ static int ts78xx_ts_rtc_load(void) { @@ -141,10 +143,14 @@ static int ts78xx_ts_rtc_load(void) } else rc = platform_device_add(&ts78xx_ts_rtc_device); + if (rc) + pr_info("RTC could not be registered: %d\n", + rc); return rc; } } + pr_info("RTC not found\n"); return -ENODEV; }; @@ -245,8 +251,6 @@ static void ts78xx_ts_nand_read_buf(struct mtd_info *mtd, readsb(io_base, buf, len); } -const char *ts_nand_part_probes[] = { "cmdlinepart", NULL }; - static struct mtd_partition ts78xx_ts_nand_parts[] = { { .name = "mbr", @@ -271,7 +275,6 @@ static struct mtd_partition ts78xx_ts_nand_parts[] = { static struct platform_nand_data ts78xx_ts_nand_data = { .chip = { .nr_chips = 1, - .part_probe_types = ts_nand_part_probes, .partitions = ts78xx_ts_nand_parts, .nr_partitions = ARRAY_SIZE(ts78xx_ts_nand_parts), .chip_delay = 15, @@ -292,11 +295,8 @@ static struct platform_nand_data ts78xx_ts_nand_data = { }, }; -static struct resource ts78xx_ts_nand_resources = { - .start = TS_NAND_DATA, - .end = TS_NAND_DATA + 4, - .flags = IORESOURCE_MEM, -}; +static struct resource ts78xx_ts_nand_resources + = DEFINE_RES_MEM(TS_NAND_DATA, 4); static struct platform_device ts78xx_ts_nand_device = { .name = "gen_nand", @@ -319,6 +319,8 @@ static int ts78xx_ts_nand_load(void) } else rc = platform_device_add(&ts78xx_ts_nand_device); + if (rc) + pr_info("NAND could not be registered: %d\n", rc); return rc; }; @@ -332,11 +334,8 @@ static void ts78xx_ts_nand_unload(void) ****************************************************************************/ #define TS_RNG_DATA (TS78XX_FPGA_REGS_PHYS_BASE | 0x044) -static struct resource ts78xx_ts_rng_resource = { - .flags = IORESOURCE_MEM, - .start = TS_RNG_DATA, - .end = TS_RNG_DATA + 4 - 1, -}; +static struct resource ts78xx_ts_rng_resource + = DEFINE_RES_MEM(TS_RNG_DATA, 4); static struct timeriomem_rng_data ts78xx_ts_rng_data = { .period = 1000000, /* one second */ @@ -363,6 +362,8 @@ static int ts78xx_ts_rng_load(void) } else rc = platform_device_add(&ts78xx_ts_rng_device); + if (rc) + pr_info("RNG could not be registered: %d\n", rc); return rc; }; @@ -402,7 +403,7 @@ static void ts78xx_fpga_supports(void) /* enable devices if magic matches */ switch ((ts78xx_fpga.id >> 8) & 0xffffff) { case TS7800_FPGA_MAGIC: - pr_warning("TS-7800 FPGA: unrecognized revision 0x%.2x\n", + pr_warning("unrecognised FPGA revision 0x%.2x\n", ts78xx_fpga.id & 0xff); ts78xx_fpga.supports.ts_rtc.present = 1; ts78xx_fpga.supports.ts_nand.present = 1; @@ -422,26 +423,20 @@ static int ts78xx_fpga_load_devices(void) if (ts78xx_fpga.supports.ts_rtc.present == 1) { tmp = ts78xx_ts_rtc_load(); - if (tmp) { - pr_info("TS-78xx: RTC not registered\n"); + if (tmp) ts78xx_fpga.supports.ts_rtc.present = 0; - } ret |= tmp; } if (ts78xx_fpga.supports.ts_nand.present == 1) { tmp = ts78xx_ts_nand_load(); - if (tmp) { - pr_info("TS-78xx: NAND not registered\n"); + if (tmp) ts78xx_fpga.supports.ts_nand.present = 0; - } ret |= tmp; } if (ts78xx_fpga.supports.ts_rng.present == 1) { tmp = ts78xx_ts_rng_load(); - if (tmp) { - pr_info("TS-78xx: RNG not registered\n"); + if (tmp) ts78xx_fpga.supports.ts_rng.present = 0; - } ret |= tmp; } @@ -466,7 +461,7 @@ static int ts78xx_fpga_load(void) { ts78xx_fpga.id = readl(TS78XX_FPGA_REGS_VIRT_BASE); - pr_info("TS-78xx FPGA: magic=0x%.6x, rev=0x%.2x\n", + pr_info("FPGA magic=0x%.6x, rev=0x%.2x\n", (ts78xx_fpga.id >> 8) & 0xffffff, ts78xx_fpga.id & 0xff); @@ -494,7 +489,7 @@ static int ts78xx_fpga_unload(void) * UrJTAG SVN since r1381 can be used to reprogram the FPGA */ if (ts78xx_fpga.id != fpga_id) { - pr_err("TS-78xx FPGA: magic/rev mismatch\n" + pr_err("FPGA magic/rev mismatch\n" "TS-78xx FPGA: was 0x%.6x/%.2x but now 0x%.6x/%.2x\n", (ts78xx_fpga.id >> 8) & 0xffffff, ts78xx_fpga.id & 0xff, (fpga_id >> 8) & 0xffffff, fpga_id & 0xff); @@ -525,7 +520,7 @@ static ssize_t ts78xx_fpga_store(struct kobject *kobj, int value, ret; if (ts78xx_fpga.state < 0) { - pr_err("TS-78xx FPGA: borked, you must powercycle asap\n"); + pr_err("FPGA borked, you must powercycle ASAP\n"); return -EBUSY; } @@ -533,10 +528,8 @@ static ssize_t ts78xx_fpga_store(struct kobject *kobj, value = 1; else if (strncmp(buf, "offline", sizeof("offline") - 1) == 0) value = 0; - else { - pr_err("ts78xx_fpga_store: Invalid value\n"); + else return -EINVAL; - } if (ts78xx_fpga.state == value) return n; @@ -614,7 +607,7 @@ static void __init ts78xx_init(void) /* FPGA init */ ts78xx_fpga_devices_zero_init(); ret = ts78xx_fpga_load(); - ret = sysfs_create_file(power_kobj, &ts78xx_fpga_attr.attr); + ret = sysfs_create_file(firmware_kobj, &ts78xx_fpga_attr.attr); if (ret) pr_err("sysfs_create_file failed: %d\n", ret); } |